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

📄 blast_setup.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: blast_setup.hpp,v $ * PRODUCTION Revision 1000.2  2004/06/01 18:05:55  gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.21 * PRODUCTION * =========================================================================== *//*  $Id: blast_setup.hpp,v 1000.2 2004/06/01 18:05:55 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:  Christiam Camacho * *//** @file blast_setup.hpp * Auxiliary setup functions for Blast objects interface */#ifndef ALGO_BLAST_API___BLAST_SETUP__HPP#define ALGO_BLAST_API___BLAST_SETUP__HPP#include <algo/blast/api/blast_types.hpp>#include <algo/blast/api/blast_aux.hpp>#include <algo/blast/core/blast_options.h>#include <algo/blast/api/blast_exception.hpp>BEGIN_NCBI_SCOPEBEGIN_SCOPE(objects)    class CSeq_loc;    class CScope;END_SCOPE(objects)BEGIN_SCOPE(blast)class CBlastOptions;voidSetupQueryInfo(const TSeqLocVector& queries, const CBlastOptions& options,                BlastQueryInfo** qinfo); // outvoidSetupQueries(const TSeqLocVector& queries, const CBlastOptions& options,             const CBlastQueryInfo& qinfo, BLAST_SequenceBlk** seqblk);voidSetupSubjects(const TSeqLocVector& subjects,               EProgram program,              vector<BLAST_SequenceBlk*>* seqblk_vec,               unsigned int* max_subjlen);/// Allows specification of whether sentinel bytes should be used or notenum ESentinelType {    eSentinels,    eNoSentinels};/** Retrieves a sequence using the object manager * @param sl seqloc of the sequence to obtain [in] * @param encoding encoding for the sequence retrieved. *        Supported encodings include: NCBI2NA_ENCODING, NCBI4NA_ENCODING, *        BLASTNA_ENCODING, and BLASTP_ENCODING. [in] * @param scope Scope from which the sequences are retrieved [in] * @param strand strand to retrieve (applies to nucleotide only). *        N.B.: When requesting the NCBI2NA_ENCODING, only the plus strand *        is retrieved, because BLAST only requires one strand on the subject *        sequences (as in BLAST databases). [in] * @param sentinel Use eSentinels to guard nucleotide sequence with sentinel  *        bytes (ignored for protein sequences, which always have sentinels)  *        When using NCBI2NA_ENCODING, this argument should be set to *        eNoSentinels as a sentinel byte cannot be represented in this  *        encoding. [in] * @return pair containing the buffer and its length.  */pair<AutoPtr<Uint1, CDeleter<Uint1> >, TSeqPos>GetSequence(const objects::CSeq_loc& sl, Uint1 encoding,             objects::CScope* scope,            objects::ENa_strand strand = objects::eNa_strand_plus,             ESentinelType sentinel = eSentinels)            THROWS((CBlastException, CException));/** Calculates the length of the buffer to allocate given the desired encoding, * strand (if applicable) and use of sentinel bytes around sequence * @param sequence_length Length of the sequence [in] * @param encoding Desired encoding for calculation (supported encodings are *        listed in GetSequence()) [in] * @param strand Which strand to use for calculation [in] * @param sentinel Whether to include or not sentinels in calculation. Same *        criteria as GetSequence() applies [in] * @return Length of the buffer to allocate to contain original sequence of *        length sequence_length for given encoding and parameter constraints */TSeqPosCalculateSeqBufferLength(TSeqPos sequence_length, Uint1 encoding,                         objects::ENa_strand strand =                         objects::eNa_strand_unknown,                         ESentinelType sentinel = eSentinels)                         THROWS((CBlastException));/** Convenience function to centralize the knowledge of which sentinel bytes we * use for supported encodings. Note that only BLASTP_ENCODING, * BLASTNA_ENCODING, and NCBI4NA_ENCODING support sentinel bytes, any other * values for encoding will cause an exception to be thrown. * @param encoding Encoding for which a sentinel byte is needed [in] * @return sentinel byte */Uint1 GetSentinelByte(Uint1 encoding) THROWS((CBlastException));#if 0// not used right now/** Translates nucleotide query sequences to protein in the requested frame * @param nucl_seq forward (plus) strand of the nucleotide sequence [in] * @param nucl_seq_rev reverse (minus) strand of the nucleotide sequence [in] * @param nucl_length length of a single strand of the nucleotide sequence [in] * @param frame frame to translate, allowed values: 1,2,3,-1,-2,-3 [in] * @param translation buffer to hold the translation, should be allocated * outside this function [out] */voidBLASTGetTranslation(const Uint1* nucl_seq, const Uint1* nucl_seq_rev,                     const int nucl_length, const short frame, Uint1* translation);#endif/** Retrieves the requested genetic code in Ncbistdaa format.  * @param genetic_code numeric identifier for genetic code requested [in] */AutoPtr<Uint1, ArrayDeleter<Uint1> >FindGeneticCode(int genetic_code);/** Returns the path (including a trailing path separator) to the location * where the matrix can be found. * @param matrix_name matrix to search for * @param is_prot true if this is a protein matrix */stringFindMatrixPath(const char* matrix_name, bool is_prot);/** Returns the path (including a trailing path separator) to the location * where the BLAST database can be found. * @param dbname Database to search for * @param is_prot true if this is a protein matrix */stringFindBlastDbPath(const char* dbname, bool is_prot);/** Returns the number of frames for a given BLAST program * @param p program  */unsigned int GetNumberOfFrames(EProgram p);END_SCOPE(blast)END_NCBI_SCOPE/** ===========================================================================** $Log: blast_setup.hpp,v $* Revision 1000.2  2004/06/01 18:05:55  gouriano* PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.21** Revision 1.21  2004/05/19 14:52:01  camacho* 1. Added doxygen tags to enable doxygen processing of algo/blast/core* 2. Standardized copyright, CVS $Id string, $Log and rcsid formatting and i*    location* 3. Added use of @todo doxygen keyword** Revision 1.20  2004/04/06 20:45:28  dondosha* Added function FindBlastDbPath: should be moved to seqdb library** Revision 1.19  2004/03/15 19:57:52  dondosha* SetupSubjects takes just program argument instead of CBlastOptions*** Revision 1.18  2004/03/06 00:39:47  camacho* Some refactorings, changed boolen parameter to enum in GetSequence** Revision 1.17  2003/12/29 17:03:47  camacho* Added documentation to GetSequence** Revision 1.16  2003/10/29 04:45:58  camacho* Use fixed AutoPtr for GetSequence return value** Revision 1.15  2003/09/12 17:52:42  camacho* Stop using pair<> as return value from GetSequence** Revision 1.14  2003/09/11 20:55:01  camacho* Temporary fix for AutoPtr return value** Revision 1.13  2003/09/11 17:45:03  camacho* Changed CBlastOption -> CBlastOptions** Revision 1.12  2003/09/10 04:25:28  camacho* Minor change to return type of GetSequence** Revision 1.11  2003/09/09 15:57:23  camacho* Fix indentation** Revision 1.10  2003/09/09 12:57:15  camacho* + internal setup functions, use smart pointers to handle memory mgmt** Revision 1.9  2003/08/28 22:43:02  camacho* Change BLASTGetSequence signature** Revision 1.8  2003/08/19 13:45:21  dicuccio* Removed 'USING_SCOPE(objects)'.  Changed #include guards to be standards* compliant.  Added 'objects::' where necessary.** Revision 1.7  2003/08/18 20:58:56  camacho* Added blast namespace, removed *__.hpp includes** Revision 1.6  2003/08/11 19:55:04  camacho* Early commit to support query concatenation and the use of multiple scopes.* Compiles, but still needs work.** Revision 1.5  2003/08/11 13:58:51  dicuccio* Added export specifiers.  Fixed problem with unimplemented private copy ctor* (truly make unimplemented)** Revision 1.4  2003/08/01 22:35:02  camacho* Added function to get matrix path (fixme)** Revision 1.3  2003/07/30 15:00:01  camacho* Do not use Malloc/MemNew/MemFree** Revision 1.2  2003/07/23 21:29:06  camacho* Update BLASTFindGeneticCode to get genetic code string with C++ toolkit** Revision 1.1  2003/07/10 18:34:19  camacho* Initial revision*** ===========================================================================*/#endif  /* ALGO_BLAST_API___BLAST_SETUP__HPP */

⌨️ 快捷键说明

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