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

📄 multiseq_src.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: multiseq_src.hpp,v $ * PRODUCTION Revision 1000.0  2004/04/12 17:53:03  gouriano * PRODUCTION PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.6 * PRODUCTION * =========================================================================== */#ifndef ALGO_BLAST_API___MULTISEQ_SRC__HPP#define ALGO_BLAST_API___MULTISEQ_SRC__HPP/*  $Id: multiseq_src.hpp,v 1000.0 2004/04/12 17:53:03 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 multiseq_src.hpp/// Implementation of the BlastSeqSrc interface for a vector of sequence /// locations.#include <algo/blast/core/blast_seqsrc.h>#include <algo/blast/core/blast_def.h>#include <algo/blast/core/blast_message.h>#include <algo/blast/api/blast_types.hpp>/** @addtogroup AlgoBlast * * @{ */BEGIN_NCBI_SCOPEBEGIN_SCOPE(blast)/// Encapsulates the arguments needed to initialize multi-sequence source.struct SMultiSeqSrcNewArgs {    TSeqLocVector seq_vector;    EProgram program;};/// Contains information about all sequences in a set.class CMultiSeqInfo : public CObject {public:     /// Constructor from a vector of sequence location/scope pairs and a     /// BLAST program type.    CMultiSeqInfo(const TSeqLocVector& seq_vector, EProgram program);    ~CMultiSeqInfo();    /// Setter and getter functions for the private fields    Uint4 GetMaxLength();    void SetMaxLength(Uint4 val);    Uint4 GetAvgLength();    void SetAvgLength(Uint4 val);    bool GetIsProtein();    Uint4 GetNumSeqs();    BLAST_SequenceBlk* GetSeqBlk(int index);    void* GetSeqId(int index);    void* GetSeqLoc(int index);    Blast_Message* GetErrorMessage();private:    /// Passed from outside - not owned:    TSeqLocVector m_vSeqVector; ///< Vector of sequence locations    /// Internal fields    bool m_ibIsProt; ///< Are these sequences protein or nucleotide?     vector<BLAST_SequenceBlk*> m_ivSeqBlkVec; ///< Vector of sequence blocks    unsigned int m_iMaxLength; ///< Length of the longest sequence in this set    unsigned int m_iAvgLength; ///< Average length of sequences in this set    Blast_Message* m_icErrMsg; ///< Error message in case of set up failure};inline Uint4 CMultiSeqInfo::GetMaxLength(){    return m_iMaxLength;}inline void CMultiSeqInfo::SetMaxLength(Uint4 length){    m_iMaxLength = length;}inline Uint4 CMultiSeqInfo::GetAvgLength(){    return m_iAvgLength;}inline void CMultiSeqInfo::SetAvgLength(Uint4 length){    m_iAvgLength = length;}inline bool CMultiSeqInfo::GetIsProtein(){    return m_ibIsProt;}inline Uint4 CMultiSeqInfo::GetNumSeqs(){    return m_ivSeqBlkVec.size();}inline BLAST_SequenceBlk* CMultiSeqInfo::GetSeqBlk(int index){    return m_ivSeqBlkVec[index];}inline Blast_Message* CMultiSeqInfo::GetErrorMessage(){    return m_icErrMsg;}/// The following 2 functions interact with the C API, and have to be /// declared extern "C".extern "C" {/** Multi-sequence source constructor  * @param seq_src BlastSeqSrc structure (already allocated) to populate [in] * @param args Pointer to MultiSeqSrcNewArgs structure above [in] * @return Updated bssp structure (with all function pointers initialized */BlastSeqSrc* MultiSeqSrcNew(BlastSeqSrc* seq_src, void* args);/** Multi sequence source destructor: frees its internal data structure and the * BlastSeqSrc structure itself. * @param seq_src BlastSeqSrc structure to free [in] * @return NULL */BlastSeqSrc* MultiSeqSrcFree(BlastSeqSrc* seq_src);} // extern "C"/** Initialize the sequence source structure. * @param seq_vector Vector of sequence locations [in] * @param program Type of BLAST to be performed [in] * @bug There is no guarantee that error_msg->code maps to a  * CBlastException error code, this could be meaningless * @sa FIXME usage of calloc */BlastSeqSrc* MultiSeqSrcInit(const TSeqLocVector& seq_vector, EProgram program);END_SCOPE(blast)END_NCBI_SCOPE/* @} *//* * =========================================================================== * $Log: multiseq_src.hpp,v $ * Revision 1000.0  2004/04/12 17:53:03  gouriano * PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.6 * * Revision 1.6  2004/03/25 17:18:28  camacho * typedef not needed for C++ structs * * Revision 1.5  2004/03/23 14:14:12  camacho * Moved comment from source file to header * * Revision 1.4  2004/03/19 18:56:48  camacho * Change class & structure names to follow C++ toolkit conventions * * Revision 1.3  2004/03/15 22:34:50  dondosha * Added extern "C" for 2 functions to eliminate Sun compiler warnings * * Revision 1.2  2004/03/15 18:34:19  dondosha * Made doxygen comments and top #ifndef adhere to toolkit standard * * =========================================================================== */#endif /* ALGO_BLAST_API___MULTISEQ_SRC__HPP */

⌨️ 快捷键说明

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