1 /*=========================================================================== 2 * 3 * PUBLIC DOMAIN NOTICE 4 * National Center for Biotechnology Information 5 * 6 * This software/database is a "United States Government Work" under the 7 * terms of the United States Copyright Act. It was written as part of 8 * the author's official duties as a United States Government employee and 9 * thus cannot be copyrighted. This software/database is freely available 10 * to the public for use. The National Library of Medicine and the U.S. 11 * Government have not placed any restriction on its use or reproduction. 12 * 13 * Although all reasonable efforts have been taken to ensure the accuracy 14 * and reliability of the software and data, the NLM and the U.S. 15 * Government do not and cannot warrant the performance or results that 16 * may be obtained by using this software or data. The NLM and the U.S. 17 * Government disclaim all warranties, express or implied, including 18 * warranties of performance, merchantability or fitness for any particular 19 * purpose. 20 * 21 * Please cite the author in any work or product based on this material. 22 * 23 * =========================================================================== 24 * 25 */ 26 27 #ifndef _hpp_ngs_ncbi_NGS_ 28 #define _hpp_ngs_ncbi_NGS_ 29 30 #ifndef _hpp_ngs_read_collection_ 31 #include <ngs/ReadCollection.hpp> 32 #endif 33 34 #ifndef _hpp_ngs_reference_sequence_ 35 #include <ngs/ReferenceSequence.hpp> 36 #endif 37 38 39 /*========================================================================== 40 * NCBI NGS Engine 41 * this class binds the NGS interface to NCBI's NGS implementation 42 * all of the code operates natively on SRA files 43 */ 44 namespace ncbi 45 { 46 47 /*---------------------------------------------------------------------- 48 * typedefs used to import names from ngs namespace 49 */ 50 typedef :: ngs :: String String; 51 typedef :: ngs :: ErrorMsg ErrorMsg; 52 typedef :: ngs :: ReadCollection ReadCollection; 53 typedef :: ngs :: ReferenceSequence ReferenceSequence; 54 55 56 /*====================================================================== 57 * NGS 58 * static implementation root 59 */ 60 class NGS 61 { 62 public: 63 64 /* setAppVersionString 65 * updates User-Agent header in HTTP communications 66 * 67 * example usage: 68 * ncbi::NGS::setAppVersionString ( "pileup-stats.1.0.0" ); 69 */ 70 static 71 void setAppVersionString ( const String & app_version ); 72 /*nothrow*/ 73 74 /* openReadCollection 75 * create an object representing a named collection of reads 76 * "spec" may be a path to an object 77 * or may be an id, accession, or URL 78 */ 79 static 80 ReadCollection openReadCollection ( const String & spec ); 81 /*NGS_THROWS ( ErrorMsg );*/ 82 83 /* openReferenceSequence 84 * create an object representing a named reference 85 * "spec" may be a path to an object 86 * or may be an id, accession, or URL 87 */ 88 static 89 ReferenceSequence openReferenceSequence ( const String & spec ); 90 /*NGS_THROWS ( ErrorMsg );*/ 91 }; 92 93 } // ncbi 94 95 #endif // _hpp_ngs_ncbi_NGS_ 96