⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 db_blast.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: db_blast.hpp,v $ * PRODUCTION Revision 1000.3  2004/06/01 18:02:57  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.18 * PRODUCTION * =========================================================================== *//*  $Id: db_blast.hpp,v 1000.3 2004/06/01 18:02:57 gouriano Exp $* ===========================================================================**                            PUBLIC DOMAIN NOTICE*               National Center for Biotechnology Information**  This software/database is a "United States Government Work" under the*  terms of the United States Copyright Act.  It was written as part of*  the author's official duties as a United States Government employee and*  thus cannot be copyrighted.  This software/database is freely available*  to the public for use. The National Library of Medicine and the U.S.*  Government have not placed any restriction on its use or reproduction.**  Although all reasonable efforts have been taken to ensure the accuracy*  and reliability of the software and data, the NLM and the U.S.*  Government do not and cannot warrant the performance or results that*  may be obtained by using this software or data. The NLM and the U.S.*  Government disclaim all warranties, express or implied, including*  warranties of performance, merchantability or fitness for any particular*  purpose.**  Please cite the author in any work or product based on this material.** ===========================================================================** Author:  Ilya Dondoshansky** File Description:*   Database BLAST class interface**/#ifndef ALGO_BLAST_API___DBBLAST__HPP#define ALGO_BLAST_API___DBBLAST__HPP#include <algo/blast/api/blast_options.hpp>#include <algo/blast/api/blast_options_handle.hpp>#include <algo/blast/core/blast_seqsrc.h>#include <algo/blast/core/blast_engine.h>BEGIN_NCBI_SCOPEBEGIN_SCOPE(objects)    class CSeq_loc;    class CSeq_align_set;END_SCOPE(objects)BEGIN_SCOPE(blast)// Type definition for a vector of error messages from the BLAST enginetypedef vector<Blast_Message*> TBlastError;/// Runs the BLAST algorithm between a set of sequences and BLAST databaseclass NCBI_XBLAST_EXPORT CDbBlast : public CObject{public:    /// Contructor, creating default options for a given program    CDbBlast(const TSeqLocVector& queries,              BlastSeqSrc* bssp, EProgram p, RPSInfo* rps_info=0);    // Constructor using a prebuilt options handle    CDbBlast(const TSeqLocVector& queries, BlastSeqSrc* bssp,              CBlastOptionsHandle& opts, RPSInfo* rps_info=0);    virtual ~CDbBlast();    void SetQueries(const TSeqLocVector& queries);    const TSeqLocVector& GetQueries() const;    CBlastOptions& SetOptions();    const CBlastOptions& GetOptions() const;    CBlastOptionsHandle& SetOptionsHandle();    const CBlastOptionsHandle& GetOptionsHandle() const;    // Perform BLAST search    virtual TSeqAlignVector Run();    // Run BLAST search without traceback    virtual void PartialRun();        // Remove extra results if a limit is provided on total number of HSPs    void TrimBlastHSPResults();    /// Retrieves regions filtered on the query/queries    //const TSeqLocVector& GetFilteredQueryRegions() const;    const BlastMaskLoc* GetFilteredQueryRegions() const;    void SetSeqSrc(BlastSeqSrc* seq_src, bool free_old_src=false);    BlastSeqSrc* GetSeqSrc() const;    BlastHSPResults* GetResults() const;    BlastDiagnostics* GetDiagnostics() const;    BlastScoreBlk* GetScoreBlk() const;    const CBlastQueryInfo& GetQueryInfo() const;    TBlastError& GetErrorMessage();protected:    virtual int SetupSearch();    virtual void RunSearchEngine();    virtual TSeqAlignVector x_Results2SeqAlign();    virtual void x_ResetQueryDs();    virtual void x_ResetResultDs();    virtual void x_InitFields();    BlastScoringOptions* GetScoringOpts() const;    BlastEffectiveLengthsOptions* GetEffLenOpts() const;    BlastExtensionOptions * GetExtnOpts() const;    BlastHitSavingOptions * GetHitSaveOpts() const;    QuerySetUpOptions * GetQueryOpts() const;    BlastDatabaseOptions * GetDbOpts() const;    PSIBlastOptions * GetPSIBlastOpts() const;        RPSInfo * GetRPSInfo() const;        /// Internal data structures used in this and all derived classes     bool                m_ibQuerySetUpDone;    CBLAST_SequenceBlk  m_iclsQueries;  // one for all queries    CBlastQueryInfo     m_iclsQueryInfo; // one for all queries    BlastScoreBlk*      m_ipScoreBlock; // Karlin-Altschul parameters    /// Statistical return structures    BlastDiagnostics*    m_ipDiagnostics;    /// Error (info, warning) messages    TBlastError         m_ivErrors;       /// Results structure - not private, because derived class will need to    /// set it    BlastHSPResults*    m_ipResults;private:    // Data members received from client code    TSeqLocVector        m_tQueries;         //< query sequence(s)    BlastSeqSrc*         m_pSeqSrc;          //< Subject sequences sorce    RPSInfo*             m_pRpsInfo; ///< RPS BLAST database information    CRef<CBlastOptionsHandle>  m_OptsHandle; //< Blast options    /// Prohibit copy constructor    CDbBlast(const CDbBlast& rhs);    /// Prohibit assignment operator    CDbBlast& operator=(const CDbBlast& rhs);    /************ Internal data structures (m_i = internal members)**********/    LookupTableWrap*    m_ipLookupTable; // one for all queries    ListNode*           m_ipLookupSegments; /* Intervals for which lookup                                                table is created: complement of                                               filtered regions */    BlastMaskLoc*       m_ipFilteredRegions; // Filtered regions};inline voidCDbBlast::SetQueries(const TSeqLocVector& queries){    x_ResetQueryDs();    m_tQueries.clear();    m_tQueries = queries;}inline const TSeqLocVector&CDbBlast::GetQueries() const{    return m_tQueries;}inline CBlastOptions&CDbBlast::SetOptions(){    m_ibQuerySetUpDone = false;    return m_OptsHandle->SetOptions();}inline const CBlastOptions&CDbBlast::GetOptions() const{    return m_OptsHandle->GetOptions();}inline CBlastOptionsHandle&CDbBlast::SetOptionsHandle(){    m_ibQuerySetUpDone = false;    return *m_OptsHandle;}inline const CBlastOptionsHandle&CDbBlast::GetOptionsHandle() const{    return *m_OptsHandle;}inline const BlastMaskLoc*CDbBlast::GetFilteredQueryRegions() const{    return m_ipFilteredRegions;}inline void CDbBlast::SetSeqSrc(BlastSeqSrc* seq_src, bool free_old_src){    x_ResetResultDs();    if (free_old_src)        BlastSeqSrcFree(m_pSeqSrc);    m_pSeqSrc = seq_src;}inline BlastSeqSrc* CDbBlast::GetSeqSrc() const{    return m_pSeqSrc;}inline BlastHSPResults* CDbBlast::GetResults() const{    return m_ipResults;}inline BlastDiagnostics* CDbBlast::GetDiagnostics() const{    return m_ipDiagnostics;}inline BlastScoreBlk* CDbBlast::GetScoreBlk() const{    return m_ipScoreBlock;}inline const CBlastQueryInfo& CDbBlast::GetQueryInfo() const{    return m_iclsQueryInfo;}inline TBlastError& CDbBlast::GetErrorMessage(){    return m_ivErrors;}inline RPSInfo * CDbBlast::GetRPSInfo() const{    return m_pRpsInfo;}inline BlastScoringOptions* CDbBlast::GetScoringOpts() const{    return m_OptsHandle->GetOptions().GetScoringOpts();}inline BlastEffectiveLengthsOptions* CDbBlast::GetEffLenOpts() const{    return m_OptsHandle->GetOptions().GetEffLenOpts();}inline BlastExtensionOptions * CDbBlast::GetExtnOpts() const{    return m_OptsHandle->GetOptions().GetExtnOpts();}inline BlastHitSavingOptions * CDbBlast::GetHitSaveOpts() const{    return m_OptsHandle->GetOptions().GetHitSaveOpts();}inline QuerySetUpOptions * CDbBlast::GetQueryOpts() const{    return m_OptsHandle->GetOptions().GetQueryOpts();}inline BlastDatabaseOptions * CDbBlast::GetDbOpts() const{    return m_OptsHandle->GetOptions().GetDbOpts();}inline PSIBlastOptions * CDbBlast::GetPSIBlastOpts() const{    return m_OptsHandle->GetOptions().GetPSIBlastOpts();}END_SCOPE(blast)END_NCBI_SCOPE/** ===========================================================================** $Log: db_blast.hpp,v $* Revision 1000.3  2004/06/01 18:02:57  gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.18** Revision 1.18  2004/05/17 18:07:19  bealer* - Add PSI Blast support.** Revision 1.17  2004/05/14 17:15:59  dondosha* BlastReturnStat structure changed to BlastDiagnostics and refactored** Revision 1.16  2004/05/07 15:39:23  papadopo* add getter for the RPSInfo private member, since the scale factor is now explicitly needed in the implementation of this class** Revision 1.15  2004/05/05 15:28:31  dondosha* Added SetSeqSrc method** Revision 1.14  2004/05/04 14:05:30  dondosha* Removed extra unimplemented SetOptions method** Revision 1.13  2004/03/16 23:29:55  dondosha* Added optional RPSInfo* argument to constructors; added function x_InitFields; changed mi_ to m_i in member field names** Revision 1.12  2004/02/27 15:42:18  rsmith* No class specifiers inside that class's declaration** Revision 1.11  2004/02/25 15:44:47  dondosha* Corrected prototype for GetErrorMessage to eliminate warning on Sun compiler** Revision 1.10  2004/02/24 20:38:20  dondosha* Removed irrelevant CVS log comments** Revision 1.9  2004/02/24 18:18:54  dondosha* Made some private variables and methods protected - needed for derived class; added getters for various options** Revision 1.8  2004/02/19 21:10:25  dondosha* Added vector of error messages to the CDbBlast class** Revision 1.7  2004/02/18 23:48:45  dondosha* Added TrimBlastHSPResults method to remove extra HSPs if limit on total number is provided** Revision 1.6  2003/12/15 15:52:29  dondosha* Added constructor with options handle argument** Revision 1.5  2003/12/10 20:08:59  dondosha* Added function to retrieve the query info structure** Revision 1.4  2003/12/08 22:43:05  dondosha* Added getters for score block and return stats structures** Revision 1.3  2003/12/03 16:36:07  dondosha* Renamed BlastMask to BlastMaskLoc, BlastResults to BlastHSPResults** Revision 1.2  2003/11/26 18:36:44  camacho* Renaming blast_option*pp -> blast_options*pp** Revision 1.1  2003/10/29 22:37:21  dondosha* Database BLAST search class* ===========================================================================*/#endif  /* ALGO_BLAST_API___DBBLAST__HPP */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -