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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: blast_seqalign.hpp,v $
  4.  * PRODUCTION Revision 1000.3  2004/04/12 17:49:23  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.20
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: blast_seqalign.hpp,v 1000.3 2004/04/12 17:49:23 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:  Christiam Camacho
  35. *
  36. */
  37. /// @file blast_seqalign.hpp
  38. /// Utility function to convert internal BLAST result structures into
  39. /// objects::CSeq_align_set objects.
  40. #ifndef ALGO_BLAST_API___BLAST_SEQALIGN__HPP
  41. #define ALGO_BLAST_API___BLAST_SEQALIGN__HPP
  42. #include <corelib/ncbistd.hpp>
  43. #include <algo/blast/api/blast_options.hpp>
  44. #include <algo/blast/core/blast_hits.h>
  45. #include <algo/blast/core/gapinfo.h>
  46. /** @addtogroup AlgoBlast
  47.  *
  48.  * @{
  49.  */
  50. BEGIN_NCBI_SCOPE
  51. BEGIN_SCOPE(objects)
  52.     class CSeq_align_set;
  53. END_SCOPE(objects)
  54. BEGIN_SCOPE(blast)
  55. /** Converts BlastHSPResults structure into a vector of CSeq_align_set classes
  56.  * Returns one vector element per query sequence; all subject matches form a 
  57.  * list of discontinuous CSeq_align's. 
  58.  * @param results results from running the BLAST algorithm [in]
  59.  * @param prog type of BLAST program [in]
  60.  * @param query All query sequences [in]
  61.  * @param seq_src handle to BLAST Sequence Source ADT [in]
  62.  * @param score_options contains scoring options [in]
  63.  * @param sbp scoring and statistical information [in]
  64.  * @return Vector of seqalign sets (one set per query sequence).
  65.  */
  66. TSeqAlignVector
  67. BLAST_Results2CSeqAlign(const BlastHSPResults* results, 
  68.                           EProgram prog,
  69.                           TSeqLocVector &query, 
  70.                           const BlastSeqSrc* seq_src, 
  71.                           const BlastScoringOptions* score_options, 
  72.                           const BlastScoreBlk* sbp);
  73. /** Extracts from the BlastHSPResults structure results for only one subject 
  74.  * sequence, identified by its index, and converts them into a vector of 
  75.  * CSeq_align_set classes. Returns one vector element per query sequence; 
  76.  * The CSeq_align_set (list of CSeq_align's) consists of exactly one 
  77.  * discontinuous CSeq_align for each vector element.
  78.  * @param results results from running the BLAST algorithm [in]
  79.  * @param prog type of BLAST program [in]
  80.  * @param query All query sequences [in]
  81.  * @param seq_src handle to BLAST Sequence Source ADT [in]
  82.  * @param index Index of the desired subject in the sequence source [in]
  83.  * @param score_options contains scoring options [in]
  84.  * @param sbp scoring and statistical information [in]
  85.  * @return Vector of seqalign sets (one set per query sequence).
  86.  */
  87. TSeqAlignVector
  88. BLAST_OneSubjectResults2CSeqAlign(const BlastHSPResults* results, 
  89.                           EProgram prog,
  90.                           TSeqLocVector &query, 
  91.                           const BlastSeqSrc* seq_src, Int4 index,
  92.                           const BlastScoringOptions* score_options, 
  93.                           const BlastScoreBlk* sbp);
  94. END_SCOPE(blast)
  95. END_NCBI_SCOPE
  96. /* @} */
  97. /*
  98. * ===========================================================================
  99. *
  100. * $Log: blast_seqalign.hpp,v $
  101. * Revision 1000.3  2004/04/12 17:49:23  gouriano
  102. * PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.20
  103. *
  104. * Revision 1.20  2004/03/19 19:22:55  camacho
  105. * Move to doxygen group AlgoBlast, add missing CVS logs at EOF
  106. *
  107. * Revision 1.19  2004/03/15 19:58:55  dondosha
  108. * Added BLAST_OneSubjectResults2CSeqalign function to retrieve single subject results from BlastHSPResults
  109. *
  110. * Revision 1.18  2003/12/03 16:43:47  dondosha
  111. * Renamed BlastMask to BlastMaskLoc, BlastResults to BlastHSPResults
  112. *
  113. * Revision 1.17  2003/11/26 18:36:45  camacho
  114. * Renaming blast_option*pp -> blast_options*pp
  115. *
  116. * Revision 1.16  2003/10/30 21:40:36  dondosha
  117. * Removed unneeded extra argument from BLAST_Results2CSeqAlign
  118. *
  119. * Revision 1.15  2003/08/19 20:24:17  dondosha
  120. * Added TSeqAlignVector type as a return type for results-to-seqalign functions and input for formatting
  121. *
  122. * Revision 1.14  2003/08/19 13:45:21  dicuccio
  123. * Removed 'USING_SCOPE(objects)'.  Changed #include guards to be standards
  124. * compliant.  Added 'objects::' where necessary.
  125. *
  126. * Revision 1.13  2003/08/18 20:58:56  camacho
  127. * Added blast namespace, removed *__.hpp includes
  128. *
  129. * Revision 1.12  2003/08/18 17:07:41  camacho
  130. * Introduce new SSeqLoc structure (replaces pair<CSeq_loc, CScope>).
  131. * Change in function to read seqlocs from files.
  132. *
  133. * Revision 1.11  2003/08/15 15:54:55  dondosha
  134. * Pass seqloc-scope pairs to results2seqalign conversion functions
  135. *
  136. * Revision 1.10  2003/08/12 19:18:45  dondosha
  137. * Use TSeqLocVector type in functions
  138. *
  139. * Revision 1.9  2003/08/11 19:55:04  camacho
  140. * Early commit to support query concatenation and the use of multiple scopes.
  141. * Compiles, but still needs work.
  142. *
  143. * Revision 1.8  2003/08/11 15:18:50  dondosha
  144. * Added algo/blast/core to all #included headers
  145. *
  146. * Revision 1.7  2003/08/11 13:58:51  dicuccio
  147. * Added export specifiers.  Fixed problem with unimplemented private copy ctor
  148. * (truly make unimplemented)
  149. *
  150. * Revision 1.6  2003/08/08 19:42:14  dicuccio
  151. * Compilation fixes: #include file relocation; fixed use of 'list' and 'vector'
  152. * as variable names
  153. *
  154. * Revision 1.5  2003/08/01 17:40:56  dondosha
  155. * Use renamed functions and structures from local blastkar.h
  156. *
  157. * Revision 1.4  2003/07/31 19:45:33  camacho
  158. * Eliminate Ptr notation
  159. *
  160. * Revision 1.3  2003/07/25 22:12:46  camacho
  161. * Use BLAST Sequence Source to retrieve sequence identifier
  162. *
  163. * Revision 1.2  2003/07/23 21:28:23  camacho
  164. * Use new local gapinfo structures
  165. *
  166. * Revision 1.1  2003/07/10 18:34:19  camacho
  167. * Initial revision
  168. *
  169. *
  170. * ===========================================================================
  171. */
  172. #endif  /* ALGO_BLAST_API___BLAST_SEQALIGN__HPP */