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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: nw_formatter.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 18:02:27  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.5
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef ALGO___NW_FORMAT__HPP
  10. #define ALGO___NW_FORMAT__HPP
  11. /* $Id: nw_formatter.hpp,v 1000.1 2004/06/01 18:02:27 gouriano Exp $
  12. * ===========================================================================
  13. *
  14. *                            public DOMAIN NOTICE                          
  15. *               National Center for Biotechnology Information
  16. *                                                                          
  17. *  This software/database is a "United States Government Work" under the   
  18. *  terms of the United States Copyright Act.  It was written as part of    
  19. *  the author's official duties as a United States Government employee and 
  20. *  thus cannot be copyrighted.  This software/database is freely available 
  21. *  to the public for use. The National Library of Medicine and the U.S.    
  22. *  Government have not placed any restriction on its use or reproduction.  
  23. *                                                                          
  24. *  Although all reasonable efforts have been taken to ensure the accuracy  
  25. *  and reliability of the software and data, the NLM and the U.S.          
  26. *  Government do not and cannot warrant the performance or results that    
  27. *  may be obtained by using this software or data. The NLM and the U.S.    
  28. *  Government disclaim all warranties, express or implied, including       
  29. *  warranties of performance, merchantability or fitness for any particular
  30. *  purpose.                                                                
  31. *                                                                          
  32. *  Please cite the author in any work or product based on this material.
  33. *
  34. * ===========================================================================
  35. *
  36. * Author:  Yuri Kapustin
  37. *
  38. * File Description:
  39. *   Library's formatting functionality.
  40. */
  41. /** @addtogroup AlgoAlignFormat
  42.  *
  43.  * @{
  44.  */
  45. #include <corelib/ncbistd.hpp>
  46. #include <corelib/ncbiobj.hpp>
  47. BEGIN_NCBI_SCOPE
  48. class CNWAligner;
  49. BEGIN_SCOPE(objects)
  50.     class CSeq_align;
  51. END_SCOPE(objects)
  52. class NCBI_XALGOALIGN_EXPORT CNWFormatter: public CObject
  53. {
  54. public:
  55.     CNWFormatter(const CNWAligner& aligner);
  56.     // setters
  57.     void SetSeqIds(const string& id1, const string& id2) {
  58.         m_Seq1Id = id1;
  59.         m_Seq2Id = id2;
  60.     }
  61.     // supported text formats
  62.     enum ETextFormatType {
  63.         eFormatType1,
  64.         eFormatType2,
  65.         eFormatAsn,
  66.         eFormatFastA,
  67.         eFormatExonTable,  // spliced alignments
  68.         eFormatExonTableEx //
  69.     };
  70.     void AsText(string* output, ETextFormatType type,
  71.                 size_t line_width = 100) const;
  72.     void AsSeqAlign(objects::CSeq_align* output) const;
  73. private:
  74.     const CNWAligner* m_aligner;
  75.     string            m_Seq1Id, m_Seq2Id;
  76.     size_t x_ApplyTranscript(vector<char>* seq1_transformed,
  77.                              vector<char>* seq2_transformed) const;
  78.     
  79. };
  80. END_NCBI_SCOPE
  81. /* @} */
  82. /*
  83.  * ===========================================================================
  84.  * $Log: nw_formatter.hpp,v $
  85.  * Revision 1000.1  2004/06/01 18:02:27  gouriano
  86.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.5
  87.  *
  88.  * Revision 1.5  2004/05/17 14:50:46  kapustin
  89.  * Add/remove/rearrange some includes and object declarations
  90.  *
  91.  * Revision 1.4  2003/10/27 20:46:41  kapustin
  92.  * Derive from CObject.
  93.  *
  94.  * Revision 1.3  2003/09/26 14:43:01  kapustin
  95.  * Remove exception specifications
  96.  *
  97.  * Revision 1.2  2003/09/10 20:12:47  kapustin
  98.  * Update Doxygen tags
  99.  *
  100.  * Revision 1.1  2003/09/02 22:26:34  kapustin
  101.  * Initial revision
  102.  *
  103.  * ===========================================================================
  104.  */
  105. #endif  /* ALGO___NW_FORMATTER__HPP */