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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: Seq_entry.cpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 19:34:56  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R6.27
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /* $Id: Seq_entry.cpp,v 1000.1 2004/06/01 19:34:56 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:  .......
  35.  *
  36.  * File Description:
  37.  *   .......
  38.  *
  39.  * Remark:
  40.  *   This code was originally generated by application DATATOOL
  41.  *   using specifications from the ASN data definition file
  42.  *   'seqset.asn'.
  43.  */
  44. // standard includes
  45. // generated includes
  46. #include <ncbi_pch.hpp>
  47. #include <objects/seqset/Seq_entry.hpp>
  48. #include <objects/seqset/Bioseq_set.hpp>
  49. #include <objects/seq/Bioseq.hpp>
  50. // generated classes
  51. BEGIN_NCBI_SCOPE
  52. BEGIN_objects_SCOPE // namespace ncbi::objects::
  53. // destructor
  54. CSeq_entry::~CSeq_entry(void)
  55. {
  56. }
  57. void CSeq_entry::ResetParentEntry(void)
  58. {
  59.     m_ParentEntry = 0;
  60. }
  61. void CSeq_entry::SetParentEntry(CSeq_entry* entry)
  62. {
  63.     m_ParentEntry = entry;
  64. }
  65. void CSeq_entry::Parentize(void)
  66. {
  67.     switch ( Which() ) {
  68.     case e_Seq:
  69.         SetSeq().SetParentEntry(this);
  70.         break;
  71.     case e_Set:
  72.         NON_CONST_ITERATE ( CBioseq_set::TSeq_set, si, SetSet().SetSeq_set() ) {
  73.             (*si)->SetParentEntry(this);
  74.             (*si)->Parentize();
  75.         }
  76.         break;
  77.     }
  78. }
  79. void CSeq_entry::ParentizeOneLevel(void)
  80. {
  81.     switch ( Which() ) {
  82.     case e_Seq:
  83.         SetSeq().SetParentEntry(this);
  84.         break;
  85.     case e_Set:
  86.         NON_CONST_ITERATE ( CBioseq_set::TSeq_set, si, SetSet().SetSeq_set() ) {
  87.             (*si)->SetParentEntry(this);
  88.         }
  89.         break;
  90.     }
  91. }
  92. void CSeq_entry::UserOp_Assign(const CSerialUserOp& source)
  93. {
  94.     const CSeq_entry& src = dynamic_cast<const CSeq_entry&>(source);
  95.     m_ParentEntry = 0;
  96.     ParentizeOneLevel();
  97. }
  98. bool CSeq_entry::UserOp_Equals(const CSerialUserOp& /*object*/) const
  99. {
  100.     return true;
  101. }
  102. END_objects_SCOPE // namespace ncbi::objects::
  103. END_NCBI_SCOPE
  104. /*
  105.  * ===========================================================================
  106.  *
  107.  * $Log: Seq_entry.cpp,v $
  108.  * Revision 1000.1  2004/06/01 19:34:56  gouriano
  109.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R6.27
  110.  *
  111.  * Revision 6.27  2004/05/19 17:26:48  gorelenk
  112.  * Added include of PCH - ncbi_pch.hpp
  113.  *
  114.  * Revision 6.26  2003/06/04 17:25:05  ucko
  115.  * Move FASTA reader to objtools/readers.
  116.  *
  117.  * Revision 6.25  2003/05/31 15:55:48  lavr
  118.  * Explicit 'int'->'bool' casts to avoid compiler warnings
  119.  *
  120.  * Revision 6.24  2003/05/23 20:27:50  ucko
  121.  * Enhance ReadFasta: recognize various types of comment, and optionally
  122.  * report lowercase characters' location.
  123.  *
  124.  * Revision 6.23  2003/05/15 18:50:41  kuznets
  125.  * Implemented ReadFastaFileMap function. Function reads multientry FASTA
  126.  * file filling SFastaFileMap structure(seq_id, sequence offset, description)
  127.  *
  128.  * Revision 6.22  2003/05/14 15:06:30  ucko
  129.  * ReadFasta: if unable to conclude anything from the IDs, try passing the
  130.  * first line of data to CFormatGuess::SequenceType (unless ForceType is set)
  131.  *
  132.  * Revision 6.21  2003/05/09 21:46:27  ucko
  133.  * ReadFasta: fix initial data assignment to avoid ten leading "A"s;
  134.  * also, fix some typos (including one that identified everything as NA)
  135.  *
  136.  * Revision 6.20  2003/05/09 16:08:35  ucko
  137.  * Rename fReadFasta_Redund to fReadFasta_AllSeqIds.
  138.  *
  139.  * Revision 6.19  2003/05/09 15:48:59  ucko
  140.  * +fReadFasta_{Redund,NoSeqData} (suggested by Michel Dumontier)
  141.  * Split off s_ParseFastaDefline.
  142.  *
  143.  * Revision 6.18  2003/04/24 16:14:12  vasilche
  144.  * Fixed Parentize().
  145.  *
  146.  * Revision 6.17  2003/03/11 15:56:34  kuznets
  147.  * iterate -> ITERATE
  148.  *
  149.  * Revision 6.16  2003/03/10 21:18:27  grichenk
  150.  * Fixed Parentize()
  151.  *
  152.  * Revision 6.15  2003/03/10 21:08:19  grichenk
  153.  * UserOp_Assign resets m_Parent
  154.  *
  155.  * Revision 6.14  2003/02/24 20:03:11  gouriano
  156.  * use template-based exceptions instead of errno and parse exceptions
  157.  *
  158.  * Revision 6.13  2003/01/13 20:01:24  gouriano
  159.  * corrected parsing fasta seq ids
  160.  *
  161.  * Revision 6.12  2003/01/10 19:34:50  gouriano
  162.  * corrected s_EndOfFastaID in case of incomplete CSeq_id::e_Other
  163.  *
  164.  * Revision 6.11  2003/01/06 16:14:04  gouriano
  165.  * corrected ReadFasta: set sequence's molecule class
  166.  *
  167.  * Revision 6.10  2003/01/03 13:16:08  dicuccio
  168.  * Minor formatting change.  Added comment about intentional fall-through.  Fixed
  169.  * big in parsing of FastA IDs: must skip trailing space in ID string
  170.  *
  171.  * Revision 6.9  2002/11/25 18:50:01  ucko
  172.  * Skip initial > when parsing IDs (caught by Mike DiCuccio)
  173.  *
  174.  * Revision 6.8  2002/11/04 21:29:17  grichenk
  175.  * Fixed usage of const CRef<> and CRef<> constructor
  176.  *
  177.  * Revision 6.7  2002/10/30 02:34:41  ucko
  178.  * Change seq to seq.NotEmpty() in compound test to make MSVC happy.
  179.  *
  180.  * Revision 6.6  2002/10/29 22:09:36  ucko
  181.  * +fReadFasta_OneSeq
  182.  *
  183.  * Revision 6.5  2002/10/23 19:23:15  ucko
  184.  * Move the FASTA reader from objects/util/sequence.?pp to
  185.  * objects/seqset/Seq_entry.?pp because it doesn't need the OM.
  186.  * Move the CVS log to the end of the file per current practice.
  187.  *
  188.  * Revision 6.4  2002/07/25 15:01:55  grichenk
  189.  * Replaced non-const GetXXX() with SetXXX()
  190.  *
  191.  * Revision 6.3  2002/05/22 14:03:41  grichenk
  192.  * CSerialUserOp -- added prefix UserOp_ to Assign() and Equals()
  193.  *
  194.  * Revision 6.2  2001/07/16 16:22:50  grichenk
  195.  * Added CSerialUserOp class to create Assign() and Equals() methods for
  196.  * user-defind classes.
  197.  * Added SerialAssign<>() and SerialEquals<>() functions.
  198.  *
  199.  * Revision 6.1  2001/06/13 14:59:33  grichenk
  200.  * Initial revision
  201.  *
  202.  * ===========================================================================
  203.  */
  204. /* Original file checksum: lines: 61, chars: 1886, CRC32: 18c50f7 */