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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: test_reader_pubseq.cpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 19:42:37  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: test_reader_pubseq.cpp,v 1000.1 2004/06/01 19:42:37 gouriano Exp $
  10. * ===========================================================================
  11. *                            PUBLIC DOMAIN NOTICE
  12. *               National Center for Biotechnology Information
  13. *
  14. *  This software/database is a "United States Government Work" under the
  15. *  terms of the United States Copyright Act.  It was written as part of
  16. *  the author's official duties as a United States Government employee and
  17. *  thus cannot be copyrighted.  This software/database is freely available
  18. *  to the public for use. The National Library of Medicine and the U.S.
  19. *  Government have not placed any restriction on its use or reproduction.
  20. *
  21. *  Although all reasonable efforts have been taken to ensure the accuracy
  22. *  and reliability of the software and data, the NLM and the U.S.
  23. *  Government do not and cannot warrant the performance or results that
  24. *  may be obtained by using this software or data. The NLM and the U.S.
  25. *  Government disclaim all warranties, express or implied, including
  26. *  warranties of performance, merchantability or fitness for any particular
  27. *  purpose.
  28. *
  29. *  Please cite the author in any work or product based on this material.
  30. * ===========================================================================
  31. */
  32. #include <ncbi_pch.hpp>
  33. #include <iostream>
  34. #include <serial/serial.hpp>
  35. #include <objects/seqset/Seq_entry.hpp>
  36. #include <objects/seqloc/Seq_id.hpp>
  37. #include <objects/seqloc/Textseq_id.hpp>
  38. #include <serial/objistrasnb.hpp>
  39. #include <serial/objostrasn.hpp>
  40. #include <objtools/data_loaders/genbank/readers/pubseqos/reader_pubseq.hpp>
  41. #include <objmgr/impl/tse_info.hpp>
  42. #include <connect/ncbi_util.h>
  43. #include <connect/ncbi_core_cxx.hpp>
  44. USING_NCBI_SCOPE;
  45. USING_SCOPE(objects);
  46. using namespace std;
  47. int main()
  48. {
  49.     for(int k = 0; k < 10; ++k) {
  50.         cout << "K: " << k << endl;
  51.         CPubseqReader reader;
  52.         int gi = 156895+k-1;
  53.         vector< CRef<CSeqref> > sr;
  54.         reader.RetrieveSeqrefs(sr, gi, 0);
  55.         ITERATE ( vector< CRef<CSeqref> >, i, sr ) {
  56.             const CSeqref& seqRef = **i;
  57.             cout << "gi: " << gi << " SatKey=" << seqRef.GetSatKey() << " Flags=" << seqRef.GetFlags() << endl;
  58.       
  59.             CRef<CTSE_Info> info = reader.GetBlob(seqRef, 0);
  60.             if (!info) {
  61.                 cout << "blob is not availablen";
  62.                 continue;
  63.             }
  64.             cout <<"gi: " << gi << " " << 1 << " blobs" << endl;
  65.         }
  66.     }
  67.     return 0;
  68. }
  69. /*
  70. * $Log: test_reader_pubseq.cpp,v $
  71. * Revision 1000.1  2004/06/01 19:42:37  gouriano
  72. * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.4
  73. *
  74. * Revision 1.4  2004/05/21 21:42:52  gorelenk
  75. * Added PCH ncbi_pch.hpp
  76. *
  77. * Revision 1.3  2003/12/30 22:14:45  vasilche
  78. * Updated genbank loader and readers plugins.
  79. *
  80. * Revision 1.2  2003/12/23 14:16:57  kuznets
  81. * Fixed include path
  82. *
  83. * Revision 1.1  2003/12/16 17:51:23  kuznets
  84. * Code reorganization
  85. *
  86. * Revision 1.10  2003/11/26 17:56:04  vasilche
  87. * Implemented ID2 split in ID1 cache.
  88. * Fixed loading of splitted annotations.
  89. *
  90. * Revision 1.9  2003/09/30 16:22:06  vasilche
  91. * Updated internal object manager classes to be able to load ID2 data.
  92. * SNP blobs are loaded as ID2 split blobs - readers convert them automatically.
  93. * Scope caches results of requests for data to data loaders.
  94. * Optimized CSeq_id_Handle for gis.
  95. * Optimized bioseq lookup in scope.
  96. * Reduced object allocations in annotation iterators.
  97. * CScope is allowed to be destroyed before other objects using this scope are
  98. * deleted (feature iterators, bioseq handles etc).
  99. * Optimized lookup for matching Seq-ids in CSeq_id_Mapper.
  100. * Added 'adaptive' option to objmgr_demo application.
  101. *
  102. * Revision 1.8  2003/08/14 20:05:20  vasilche
  103. * Simple SNP features are stored as table internally.
  104. * They are recreated when needed using CFeat_CI.
  105. *
  106. * Revision 1.7  2003/07/17 20:06:02  vasilche
  107. * Added OBJMGR_LIBS definition.
  108. *
  109. * Revision 1.6  2003/06/02 16:06:39  dicuccio
  110. * Rearranged src/objects/ subtree.  This includes the following shifts:
  111. *     - src/objects/asn2asn --> arc/app/asn2asn
  112. *     - src/objects/testmedline --> src/objects/ncbimime/test
  113. *     - src/objects/objmgr --> src/objmgr
  114. *     - src/objects/util --> src/objmgr/util
  115. *     - src/objects/alnmgr --> src/objtools/alnmgr
  116. *     - src/objects/flat --> src/objtools/flat
  117. *     - src/objects/validator --> src/objtools/validator
  118. *     - src/objects/cddalignview --> src/objtools/cddalignview
  119. * In addition, libseq now includes six of the objects/seq... libs, and libmmdb
  120. * replaces the three libmmdb? libs.
  121. *
  122. * Revision 1.5  2003/04/15 14:23:11  vasilche
  123. * Added missing includes.
  124. *
  125. * Revision 1.4  2002/07/22 22:49:05  kimelman
  126. * test fixes for confidential data retrieval
  127. *
  128. * Revision 1.3  2002/05/06 03:28:52  vakatov
  129. * OM/OM1 renaming
  130. *
  131. * Revision 1.2  2002/04/12 14:52:34  butanaev
  132. * Typos fixed, code cleanup.
  133. *
  134. * Revision 1.1  2002/04/08 21:45:58  butanaev
  135. * Added test for pubseq reader.
  136. *
  137. * Revision 1.7  2002/03/27 20:23:50  butanaev
  138. * Added connection pool.
  139. *
  140. * Revision 1.6  2002/03/26 18:48:59  butanaev
  141. * Fixed bug not deleting streambuf.
  142. *
  143. * Revision 1.5  2002/03/26 17:17:04  kimelman
  144. * reader stream fixes
  145. *
  146. * Revision 1.4  2002/03/25 17:49:13  kimelman
  147. * ID1 failure handling
  148. *
  149. * Revision 1.3  2002/03/21 19:14:55  kimelman
  150. * GB related bugfixes
  151. *
  152. * Revision 1.2  2002/01/23 21:59:34  grichenk
  153. * Redesigned seq-id handles and mapper
  154. *
  155. * Revision 1.1  2002/01/11 19:06:27  gouriano
  156. * restructured objmgr
  157. *
  158. * Revision 1.3  2001/12/10 20:08:02  butanaev
  159. * Code cleanup.
  160. *
  161. * Revision 1.2  2001/12/07 21:25:00  butanaev
  162. * Interface development, code beautyfication.
  163. *
  164. * Revision 1.1  2001/12/07 16:43:35  butanaev
  165. * Switching to new reader interfaces.
  166. *
  167. * Revision 1.6  2001/12/06 20:37:05  butanaev
  168. * Fixed timeout problem.
  169. *
  170. * Revision 1.5  2001/12/06 18:06:22  butanaev
  171. * Ported to linux.
  172. *
  173. * Revision 1.4  2001/12/06 14:35:22  butanaev
  174. * New streamable interfaces designed, ID1 reimplemented.
  175. *
  176. * Revision 1.3  2001/11/29 21:24:03  butanaev
  177. * Classes working with PUBSEQ transferred to separate lib. Code cleanup.
  178. * Test app redesigned.
  179. *
  180. * Revision 1.2  2001/10/11 15:47:34  butanaev
  181. * Loader from ID1 implemented.
  182. *
  183. * Revision 1.1  2001/09/10 20:03:04  butanaev
  184. * Initial checkin.
  185. */