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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: test_objmgr_title.cpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/01 19:47:20  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.2
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: test_objmgr_title.cpp,v 1000.1 2004/06/01 19:47:20 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:  Aaron Ucko
  35. *
  36. * File Description:
  37. *   test code for CScope::GetTitle
  38. */
  39. #include <ncbi_pch.hpp>
  40. #include <corelib/ncbistd.hpp>
  41. #include <corelib/ncbiapp.hpp>
  42. #include <corelib/ncbiargs.hpp>
  43. #include <corelib/ncbienv.hpp>
  44. #include <objmgr/object_manager.hpp>
  45. #include <objmgr/scope.hpp>
  46. #include <objmgr/bioseq_handle.hpp>
  47. #include <objtools/data_loaders/genbank/gbloader.hpp>
  48. #include <objmgr/util/sequence.hpp>
  49. // (BEGIN_NCBI_SCOPE must be followed by END_NCBI_SCOPE later in this file)
  50. BEGIN_NCBI_SCOPE
  51. USING_SCOPE(objects);
  52. USING_SCOPE(sequence);
  53. class CTitleTester : public CNcbiApplication
  54. {
  55.     virtual void Init(void);
  56.     virtual int  Run(void);
  57. };
  58. void CTitleTester::Init(void)
  59. {
  60.     auto_ptr<CArgDescriptions> arg_desc(new CArgDescriptions);
  61.     arg_desc->SetUsageContext(GetArguments().GetProgramBasename(),
  62.                               "Show a sequence's title", false);
  63.     arg_desc->AddKey("gi", "SeqEntryID", "GI id of the Seq-Entry to examine",
  64.                      CArgDescriptions::eInteger);
  65.     arg_desc->AddFlag("reconstruct", "Reconstruct title");
  66.     arg_desc->AddFlag("accession", "Prepend accession");
  67.     arg_desc->AddFlag("organism", "Append organism name");
  68.     SetupArgDescriptions(arg_desc.release());
  69. }
  70. int CTitleTester::Run(void)
  71. {
  72.     const CArgs&   args = GetArgs();
  73.     CObjectManager objmgr;
  74.     CScope         scope(objmgr);
  75.     CSeq_id        id;
  76.     
  77.     id.SetGi(args["gi"].AsInteger());
  78.     objmgr.RegisterDataLoader(*(new CGBDataLoader), CObjectManager::eDefault);
  79.     scope.AddDefaults();
  80.     CBioseq_Handle handle = scope.GetBioseqHandle(id);
  81.     TGetTitleFlags flags  = 0;
  82.     if (args["reconstruct"]) {
  83.         flags |= fGetTitle_Reconstruct;
  84.     }
  85.     if (args["organism"]) {
  86.         flags |= fGetTitle_Organism;
  87.     }
  88.     NcbiCout << GetTitle(handle, flags) << NcbiEndl;
  89.     return 0;
  90. }
  91. // (END_NCBI_SCOPE must be preceded by BEGIN_NCBI_SCOPE)
  92. END_NCBI_SCOPE
  93. USING_NCBI_SCOPE;
  94. int main(int argc, const char** argv)
  95. {
  96.     return CTitleTester().AppMain(argc, argv);
  97. }
  98. /*
  99. * ===========================================================================
  100. *
  101. * $Log: test_objmgr_title.cpp,v $
  102. * Revision 1000.1  2004/06/01 19:47:20  gouriano
  103. * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.2
  104. *
  105. * Revision 1.2  2004/05/21 21:42:56  gorelenk
  106. * Added PCH ncbi_pch.hpp
  107. *
  108. * Revision 1.1  2003/12/16 17:51:22  kuznets
  109. * Code reorganization
  110. *
  111. * Revision 1.12  2003/06/02 16:06:39  dicuccio
  112. * Rearranged src/objects/ subtree.  This includes the following shifts:
  113. *     - src/objects/asn2asn --> arc/app/asn2asn
  114. *     - src/objects/testmedline --> src/objects/ncbimime/test
  115. *     - src/objects/objmgr --> src/objmgr
  116. *     - src/objects/util --> src/objmgr/util
  117. *     - src/objects/alnmgr --> src/objtools/alnmgr
  118. *     - src/objects/flat --> src/objtools/flat
  119. *     - src/objects/validator --> src/objtools/validator
  120. *     - src/objects/cddalignview --> src/objtools/cddalignview
  121. * In addition, libseq now includes six of the objects/seq... libs, and libmmdb
  122. * replaces the three libmmdb? libs.
  123. *
  124. * Revision 1.11  2002/11/15 17:53:28  ucko
  125. * Only print the title once.
  126. * Move CVS log to end.
  127. *
  128. * Revision 1.10  2002/06/07 16:13:34  ucko
  129. * GetTitle() is now in sequence::.
  130. *
  131. * Revision 1.9  2002/06/07 14:34:33  ucko
  132. * More changes for GetTitle(): pull in <objects/util/sequence.hpp>, drop
  133. * CBioseq_Handle:: from flag-related identifiers.
  134. *
  135. * Revision 1.8  2002/06/06 19:47:38  clausen
  136. * Removed usage of fGetTitle_Accession
  137. *
  138. * Revision 1.7  2002/05/06 03:28:53  vakatov
  139. * OM/OM1 renaming
  140. *
  141. * Revision 1.6  2002/03/27 22:08:46  ucko
  142. * Use high-level GB loader instead of low-level ID1 reader.
  143. *
  144. * Revision 1.5  2002/02/21 19:27:08  grichenk
  145. * Rearranged includes. Added scope history. Added searching for the
  146. * best seq-id match in data sources and scopes. Updated tests.
  147. *
  148. * Revision 1.4  2002/01/29 18:21:07  grichenk
  149. * CScope::GetTitle() -> CBioseq_Handle::GetTitle()
  150. *
  151. * Revision 1.3  2002/01/23 21:59:34  grichenk
  152. * Redesigned seq-id handles and mapper
  153. *
  154. * Revision 1.2  2002/01/15 21:36:41  grichenk
  155. * Fixed to work with the new OM and scopes
  156. *
  157. * Revision 1.1  2002/01/11 19:06:28  gouriano
  158. * restructured objmgr
  159. *
  160. * Revision 1.4  2001/12/07 19:39:19  butanaev
  161. * Minor code improvements.
  162. *
  163. * Revision 1.3  2001/12/07 16:43:35  butanaev
  164. * Switching to new reader interfaces.
  165. *
  166. * Revision 1.2  2001/10/17 20:51:54  ucko
  167. * Pass flags to GetTitle.
  168. *
  169. * Revision 1.1  2001/10/12 21:20:37  ucko
  170. * Add test for CScope::GetTitle
  171. *
  172. * ===========================================================================
  173. */