1 #ifndef ALGO_BLAST_API___DELTABLAST_OPTIONS__HPP
2 #define ALGO_BLAST_API___DELTABLAST_OPTIONS__HPP
3 
4 /*  $Id: deltablast_options.hpp 349728 2012-01-12 18:51:12Z boratyng $
5  * ===========================================================================
6  *
7  *                            PUBLIC DOMAIN NOTICE
8  *               National Center for Biotechnology Information
9  *
10  *  This software/database is a "United States Government Work" under the
11  *  terms of the United States Copyright Act.  It was written as part of
12  *  the author's official duties as a United States Government employee and
13  *  thus cannot be copyrighted.  This software/database is freely available
14  *  to the public for use. The National Library of Medicine and the U.S.
15  *  Government have not placed any restriction on its use or reproduction.
16  *
17  *  Although all reasonable efforts have been taken to ensure the accuracy
18  *  and reliability of the software and data, the NLM and the U.S.
19  *  Government do not and cannot warrant the performance or results that
20  *  may be obtained by using this software or data. The NLM and the U.S.
21  *  Government disclaim all warranties, express or implied, including
22  *  warranties of performance, merchantability or fitness for any particular
23  *  purpose.
24  *
25  *  Please cite the author in any work or product based on this material.
26  *
27  * ===========================================================================
28  *
29  * Authors:  Greg Boratyn
30  *
31  */
32 
33 /// @file deltablast_options.hpp
34 /// Declares the CDeltaBlastOptionsHandle class.
35 
36 
37 #include <algo/blast/api/psiblast_options.hpp>
38 
39 /** @addtogroup AlgoBlast
40  *
41  * @{
42  */
43 
44 BEGIN_NCBI_SCOPE
45 BEGIN_SCOPE(blast)
46 
47 /// Handle to the protein-protein options to the BLAST algorithm.
48 ///
49 /// Adapter class for protein-protein BLAST comparisons.
50 /// Exposes an interface to allow manipulation the options that are relevant to
51 /// this type of search.
52 class NCBI_XBLAST_EXPORT CDeltaBlastOptionsHandle : public CPSIBlastOptionsHandle
53 {
54 public:
55 
56     /// Creates object with default options set
57     CDeltaBlastOptionsHandle(EAPILocality locality = CBlastOptions::eLocal);
58     /// Destructor
~CDeltaBlastOptionsHandle()59     ~CDeltaBlastOptionsHandle() {}
60 
61     /******************* DELTA BLAST options ***********************/
62 
63     /// Get e-value threshold for including domains in Pssm calculation
64     /// @return E-value cutoff for domains
GetDomainInclusionThreshold(void) const65     double GetDomainInclusionThreshold(void) const
66     { return m_Opts->GetDomainInclusionThreshold(); }
67 
68     /// Set e-value threshold for including domains in Pssm calculation
69     /// @param th E-value cutoff for domains [in]
SetDomainInclusionThreshold(double th)70     void SetDomainInclusionThreshold(double th)
71     { m_Opts->SetDomainInclusionThreshold(th); }
72 
73     /// Get e-value threshold for including sequences in Pssm calculation
74     /// @return E-value cutoff for sequences
75     ///
76     /// Same as GetInclusionThreshold().It was added for clear distinction
77     /// between Psi and Delta Blast inclusion thresholds
GetPSIInclusionThreshold(void) const78     double GetPSIInclusionThreshold(void) const
79     {return GetInclusionThreshold(); }
80 
81     /// Set e-value threshold for including sequences in Pssm calculation
82     /// @param th E-value cutoff for sequences [in]
83     ///
84     /// Same as SetInclusionThreshold().It was added for clear distinction
85     /// between Psi and Delta Blast inclusion thresholds
SetPSIInclusionThreshold(double th)86     void SetPSIInclusionThreshold(double th)
87     { SetInclusionThreshold(th); }
88 
89 protected:
90 
91     /// Set the program and service name for remote blast
SetRemoteProgramAndService_Blast3()92     virtual void SetRemoteProgramAndService_Blast3()
93     {
94         m_Opts->SetRemoteProgramAndService_Blast3("blastp", "delta_blast");
95     }
96 
97     /// Override the parent class' default for filtering query sequence (i.e.:
98     /// no filtering applied to the query by default)
99     virtual void SetQueryOptionDefaults();
100 
101     /// Override the parent class' defaults for gapped extension (i.e.:
102     /// composition based statistics 1)
103     virtual void SetGappedExtensionDefaults();
104 
105     /// Sets Delta Blast defaults
106     void SetDeltaBlastDefaults();
107 
108 private:
109     /// Disallow copy constructor
110     CDeltaBlastOptionsHandle(const CDeltaBlastOptionsHandle& rhs);
111     /// Disallow assignment operator
112     CDeltaBlastOptionsHandle& operator=(const CDeltaBlastOptionsHandle& rhs);
113 };
114 
115 END_SCOPE(blast)
116 END_NCBI_SCOPE
117 
118 
119 /* @} */
120 
121 #endif  /* ALGO_BLAST_API___DELTABLAST_OPTIONS__HPP */
122