blast_types.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: blast_types.hpp,v $
  4.  * PRODUCTION Revision 1000.4  2004/06/01 18:02:51  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.12
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: blast_types.hpp,v 1000.4 2004/06/01 18:02:51 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * Author:  Ilya Dondoshansky
  35.  *
  36.  */
  37. /** @file blast_types.hpp
  38.  * Definitions of special type used in BLAST
  39.  */
  40. #ifndef ALGO_BLAST_API___BLAST_TYPE__HPP
  41. #define ALGO_BLAST_API___BLAST_TYPE__HPP
  42. #include <corelib/ncbistd.hpp>
  43. #include <objects/seqloc/Seq_loc.hpp>
  44. #include <objects/seqalign/Seq_align_set.hpp>
  45. #include <objmgr/scope.hpp>
  46. BEGIN_NCBI_SCOPE
  47. BEGIN_SCOPE(blast)
  48. /// Enumeration analogous to blast_type_* defines from blast_def.h
  49. enum EProgram {
  50.     eBlastn = 0,        //< Nucl-Nucl (traditional blastn)
  51.     eBlastp,            //< Protein-Protein
  52.     eBlastx,            //< Translated nucl-Protein
  53.     eTblastn,           //< Protein-Translated nucl
  54.     eTblastx,           //< Translated nucl-Translated nucl
  55.     eRPSBlast,          //< protein-pssm (reverse-position-specific BLAST)
  56.     eRPSTblastn,        //< nucleotide-pssm (RPS blast with translated query)
  57.     eMegablast,         //< Nucl-Nucl (traditional megablast)
  58.     eDiscMegablast, //< Nucl-Nucl using discontiguous megablast
  59.     ePSIBlast,          //< PSI Blast
  60.     eBlastProgramMax    //< Undefined program
  61. };
  62. struct SSeqLoc {
  63.     CConstRef<objects::CSeq_loc>     seqloc;
  64.     mutable CRef<objects::CScope>    scope;
  65.     CConstRef<objects::CSeq_loc>     mask;
  66.     SSeqLoc()
  67.         : seqloc(), scope(), mask() {}
  68.     SSeqLoc(const objects::CSeq_loc* sl, objects::CScope* s)
  69.         : seqloc(sl), scope(s), mask(0) {}
  70.     SSeqLoc(const objects::CSeq_loc& sl, objects::CScope& s)
  71.         : seqloc(&sl), scope(&s), mask(0) {}
  72.     SSeqLoc(const objects::CSeq_loc* sl, objects::CScope* s,
  73.             const objects::CSeq_loc* m)
  74.         : seqloc(sl), scope(s), mask(m) {}
  75.     SSeqLoc(const objects::CSeq_loc& sl, objects::CScope& s,
  76.             const objects::CSeq_loc& m)
  77.         : seqloc(&sl), scope(&s), mask(&m) {}
  78. };
  79. typedef vector<SSeqLoc>   TSeqLocVector;
  80. typedef vector< CRef<objects::CSeq_align_set> > TSeqAlignVector;
  81. END_SCOPE(blast)
  82. END_NCBI_SCOPE
  83. /*
  84. * ===========================================================================
  85. *
  86. * $Log: blast_types.hpp,v $
  87. * Revision 1000.4  2004/06/01 18:02:51  gouriano
  88. * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.12
  89. *
  90. * Revision 1.12  2004/05/19 14:52:00  camacho
  91. * 1. Added doxygen tags to enable doxygen processing of algo/blast/core
  92. * 2. Standardized copyright, CVS $Id string, $Log and rcsid formatting and i
  93. *    location
  94. * 3. Added use of @todo doxygen keyword
  95. *
  96. * Revision 1.11  2004/05/17 18:07:19  bealer
  97. * - Add PSI Blast support.
  98. *
  99. * Revision 1.10  2004/04/16 14:32:54  papadopo
  100. * add eRPSBlast and eRPSTblastn, moved the megablast enums so that the list of enums still corresponds to the list in blast_def.h
  101. *
  102. * Revision 1.9  2004/03/10 14:55:19  madden
  103. * Added enum type for eRPSBlast
  104. *
  105. * Revision 1.8  2003/12/09 17:07:58  camacho
  106. * Added missing initializer
  107. *
  108. * Revision 1.7  2003/11/26 18:22:16  camacho
  109. * +Blast Option Handle classes
  110. *
  111. * Revision 1.6  2003/10/07 17:27:38  dondosha
  112. * Lower case mask removed from options, added to the SSeqLoc structure
  113. *
  114. * Revision 1.5  2003/09/05 01:48:38  ucko
  115. * Use full headers rather than forward declarations, which are
  116. * insufficient for arguments of C(Const)Ref<>.
  117. *
  118. * Revision 1.4  2003/08/25 17:21:12  camacho
  119. * Use forward declarations whenever possible
  120. *
  121. * Revision 1.3  2003/08/21 12:12:37  dicuccio
  122. * Changed constructors of SSeqLoc to take pointers insted of CConstRef<>/CRef<>.
  123. * Added constructors to take C++ references
  124. *
  125. * Revision 1.2  2003/08/20 14:45:26  dondosha
  126. * All references to CDisplaySeqalign moved to blast_format.hpp
  127. *
  128. * Revision 1.1  2003/08/19 22:10:10  dondosha
  129. * Special types definitions for use in BLAST
  130. *
  131. *
  132. * ===========================================================================
  133. */
  134. #endif  /* ALGO_BLAST_API___BLAST_TYPE__HPP */