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_itf_referenceitf_ 28 #define _hpp_ngs_itf_referenceitf_ 29 30 #ifndef _hpp_ngs_itf_refcount_ 31 #include <ngs/itf/Refcount.hpp> 32 #endif 33 34 struct NGS_Reference_v1; 35 36 namespace ngs 37 { 38 39 /*---------------------------------------------------------------------- 40 * forwards 41 */ 42 class StringItf; 43 class PileupItf; 44 class AlignmentItf; 45 46 /*---------------------------------------------------------------------- 47 * Reference 48 */ 49 class ReferenceItf : public Refcount < ReferenceItf, NGS_Reference_v1 > 50 { 51 public: 52 53 StringItf * getCommonName () const 54 NGS_THROWS ( ErrorMsg ); 55 StringItf * getCanonicalName () const 56 NGS_THROWS ( ErrorMsg ); 57 bool getIsCircular () const 58 NGS_THROWS ( ErrorMsg ); 59 bool getIsLocal () const 60 NGS_THROWS ( ErrorMsg ); 61 uint64_t getLength () const 62 NGS_THROWS ( ErrorMsg ); 63 StringItf * getReferenceBases ( uint64_t offset ) const 64 NGS_THROWS ( ErrorMsg ); 65 StringItf * getReferenceBases ( uint64_t offset, uint64_t length ) const 66 NGS_THROWS ( ErrorMsg ); 67 StringItf * getReferenceChunk ( uint64_t offset ) const 68 NGS_THROWS ( ErrorMsg ); 69 StringItf * getReferenceChunk ( uint64_t offset, uint64_t length ) const 70 NGS_THROWS ( ErrorMsg ); 71 uint64_t getAlignmentCount () const 72 NGS_THROWS ( ErrorMsg ); 73 uint64_t getAlignmentCount ( uint32_t categories ) const 74 NGS_THROWS ( ErrorMsg ); 75 AlignmentItf * getAlignment ( const char * alignmentId ) const 76 NGS_THROWS ( ErrorMsg ); 77 AlignmentItf * getAlignments ( uint32_t categories ) const 78 NGS_THROWS ( ErrorMsg ); 79 AlignmentItf * getAlignmentSlice ( int64_t start, uint64_t length ) const 80 NGS_THROWS ( ErrorMsg ); 81 AlignmentItf * getAlignmentSlice ( int64_t start, uint64_t length, uint32_t categories ) const 82 NGS_THROWS ( ErrorMsg ); 83 AlignmentItf * getFilteredAlignmentSlice ( int64_t start, uint64_t length, uint32_t categories, uint32_t filters, int32_t mappingQuality ) const 84 NGS_THROWS ( ErrorMsg ); 85 PileupItf * getPileups ( uint32_t categories ) const 86 NGS_THROWS ( ErrorMsg ); 87 PileupItf * getFilteredPileups ( uint32_t categories, uint32_t filters, int32_t mappingQuality ) const 88 NGS_THROWS ( ErrorMsg ); 89 PileupItf * getPileupSlice ( int64_t start, uint64_t length ) const 90 NGS_THROWS ( ErrorMsg ); 91 PileupItf * getPileupSlice ( int64_t start, uint64_t length, uint32_t categories ) const 92 NGS_THROWS ( ErrorMsg ); 93 PileupItf * getFilteredPileupSlice ( int64_t start, uint64_t length, uint32_t categories, uint32_t filters, int32_t mappingQuality ) const 94 NGS_THROWS ( ErrorMsg ); 95 bool nextReference () 96 NGS_THROWS ( ErrorMsg ); 97 }; 98 99 } // namespace ngs 100 101 #endif // _hpp_ngs_itf_referenceitf_ 102