include/gn/gnFASSource.h

Go to the documentation of this file.
00001 00002 // File: gnFASSource.h 00003 // Purpose: Implements gnBaseSource for .FAS files 00004 // Description: 00005 // Changes: 00006 // Version: libGenome 0.5.1 00007 // Author: Aaron Darling 00008 // Modified by: 00009 // Copyright: (c) Aaron Darling 00010 // Licenses: See COPYING file for details 00012 #ifndef _gnFASSource_h_ 00013 #define _gnFASSource_h_ 00014 00015 #include "gn/gnDefs.h" 00016 00017 #include <string> 00018 #include <fstream> 00019 #include <vector> 00020 #include "gn/gnFileSource.h" 00021 #include "gn/gnSequence.h" 00022 00023 #define FAS_LINE_WIDTH 80 00024 00032 class GNDLLEXPORT gnFASSource : public gnFileSource 00033 { 00034 public: 00038 gnFASSource(); 00043 gnFASSource( const gnFASSource& s ); 00047 ~gnFASSource(); 00051 gnFASSource* Clone() const; 00052 00053 uint32 GetContigListLength() const; 00054 boolean HasContig( const string& name ) const; 00055 uint32 GetContigID( const string& name ) const; 00056 string GetContigName( const uint32 i ) const; 00057 gnSeqI GetContigSeqLength( const uint32 i ) const; 00058 gnFileContig* GetContig( const uint32 i ) const; 00059 00060 boolean SeqRead( const gnSeqI start, char* buf, gnSeqI& bufLen, const uint32 contigI=ALL_CONTIGS ) ; 00061 00076 static void Write(gnSequence& sequence, const string& filename, boolean write_coords = true, boolean enforce_unique_names = true); 00077 00091 static void Write(gnSequence& sequence, ostream& m_ostream, boolean write_coords = true, boolean enforce_unique_names = true); 00092 00099 static boolean Write(gnBaseSource *source, const string& filename); 00100 00101 gnGenomeSpec *GetSpec() const; 00102 00103 gnFileContig* GetFileContig( const uint32 contigI ) const; 00104 private: 00105 boolean SeqSeek( const gnSeqI start, const uint32 contigI, uint64& startPos, uint64& readableBytes ); 00106 boolean SeqStartPos( const gnSeqI start, gnFileContig& contig, uint64& startPos, uint64& readableBytes ); 00107 boolean ParseStream( istream& fin ); 00108 00109 vector< gnFileContig* > m_contigList; 00110 };// class gnFASSource 00111 00112 inline 00113 gnFASSource* gnFASSource::Clone() const 00114 { 00115 return new gnFASSource( *this ); 00116 } 00117 00118 inline 00119 uint32 gnFASSource::GetContigListLength() const 00120 { 00121 return m_contigList.size(); 00122 } 00123 00124 #endif 00125 // _gnFASSource_h_

Generated on Mon Feb 14 19:28:17 2005 for libGenome by doxygen 1.3.8