1 #ifndef ALGO_BLAST_API___PSIBLAST_OPTIONS__HPP
2 #define ALGO_BLAST_API___PSIBLAST_OPTIONS__HPP
3 
4 /*  $Id: psiblast_options.hpp 472241 2015-07-08 15:24:13Z fongah2 $
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:  Kevin Bealer
30  *
31  */
32 
33 /// @file psiblast_options.hpp
34 /// Declares the CPSIBlastOptionsHandle class.
35 
36 
37 #include <algo/blast/api/blast_advprot_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 
53 class NCBI_XBLAST_EXPORT CPSIBlastOptionsHandle : public CBlastAdvancedProteinOptionsHandle
54 {
55 public:
56 
57     /// Creates object with default options set
58     CPSIBlastOptionsHandle(EAPILocality locality = CBlastOptions::eLocal);
59 
CPSIBlastOptionsHandle(CRef<CBlastOptions> opt)60     CPSIBlastOptionsHandle(CRef<CBlastOptions> opt):CBlastAdvancedProteinOptionsHandle(opt) {}
61     /// Destructor
~CPSIBlastOptionsHandle()62     ~CPSIBlastOptionsHandle() {}
63 
64     /******************* PSI options ***********************/
65     /// Returns InclusionThreshold
GetInclusionThreshold() const66     double GetInclusionThreshold() const { return m_Opts->GetInclusionThreshold(); }
67     /// Sets InclusionThreshold
68     /// @param incthr InclusionThreshold [in]
SetInclusionThreshold(double incthr)69     void SetInclusionThreshold(double incthr) { m_Opts->SetInclusionThreshold(incthr); }
70 
71     /// Returns PseudoCount
GetPseudoCount() const72     int GetPseudoCount() const { return m_Opts->GetPseudoCount(); }
73     /// Sets PseudoCount
74     /// @param p PseudoCount [in]
SetPseudoCount(int p)75     void SetPseudoCount(int p) { m_Opts->SetPseudoCount(p); }
76 
77     /// Sets default options for psi tblastn search
78     void SetPSITblastnDefaults();
79 
80 protected:
81     /// Set the program and service name for remote blast.
SetRemoteProgramAndService_Blast3()82     virtual void SetRemoteProgramAndService_Blast3()
83     {
84         m_Opts->SetRemoteProgramAndService_Blast3("blastp", "psi");
85     }
86 
87     /// Override the parent class' default for filtering query sequence (i.e.:
88     /// no filtering applied to the query by default)
89     virtual void SetQueryOptionDefaults();
90 
91     /// Sets PSIBlastDefaults
92     void SetPSIBlastDefaults();
93 
94 private:
95     /// Disallow copy constructor
96     CPSIBlastOptionsHandle(const CPSIBlastOptionsHandle& rhs);
97     /// Disallow assignment operator
98     CPSIBlastOptionsHandle& operator=(const CPSIBlastOptionsHandle& rhs);
99 };
100 
101 END_SCOPE(blast)
102 END_NCBI_SCOPE
103 
104 
105 /* @} */
106 
107 #endif  /* ALGO_BLAST_API___PSIBLAST_OPTIONS__HPP */
108