00001 00002 // File: gnDNASequence.h 00003 // Purpose: Sequence class 00004 // Description: Provides a high level sequence interface to all types of 00005 // sequence data. 00006 // Changes: 00007 // Version: libGenome 0.5.1 00008 // Author: Aaron Darling 00009 // Modified by: 00010 // Copyright: (c) Aaron Darling 00011 // Licenses: See COPYING file for details 00013 #ifndef _gnDNASequence_h_ 00014 #define _gnDNASequence_h_ 00015 00016 #include "gn/gnDefs.h" 00017 00018 #include <string> 00019 #include <list> 00020 #include "gn/gnSequence.h" 00021 #include "gn/gnFilter.h" 00027 class GNDLLEXPORT gnDNASequence : public gnSequence 00028 { 00029 public: 00033 gnDNASequence(); 00038 gnDNASequence( const gnSeqC* seq ); 00043 gnDNASequence( const string& str ); 00048 gnDNASequence( const gnGenomeSpec& gngs ); 00053 gnDNASequence( const gnFragmentSpec& gnfs ); 00058 gnDNASequence( const gnContigSpec& gncs ); 00064 gnDNASequence( gnSeqC *bases, const gnSeqI length); 00069 gnDNASequence( const gnDNASequence& seq); 00070 private: 00071 gnGenomeSpec *spec; 00072 list<const gnBaseFilter*> filter_list; 00073 const gnCompare* comparator; 00074 }; // class gnDNASequence 00075 00076 inline 00077 gnDNASequence::gnDNASequence() : gnSequence(){ 00078 filter_list.push_back(gnFilter::fullDNASeqFilter()); 00079 comparator = gnCompare::DNASeqCompare(); 00080 } 00081 inline 00082 gnDNASequence::gnDNASequence( const gnSeqC* seq ) : gnSequence(seq){ 00083 filter_list.push_back(gnFilter::fullDNASeqFilter()); 00084 comparator = gnCompare::DNASeqCompare(); 00085 } 00086 inline 00087 gnDNASequence::gnDNASequence( const string& str ) : gnSequence(str){ 00088 filter_list.push_back(gnFilter::fullDNASeqFilter()); 00089 comparator = gnCompare::DNASeqCompare(); 00090 } 00091 inline 00092 gnDNASequence::gnDNASequence( const gnGenomeSpec& gngs ) : gnSequence(gngs){ 00093 filter_list.push_back(gnFilter::fullDNASeqFilter()); 00094 comparator = gnCompare::DNASeqCompare(); 00095 } 00096 inline 00097 gnDNASequence::gnDNASequence( const gnFragmentSpec& gnfs ) : gnSequence(gnfs){ 00098 filter_list.push_back(gnFilter::fullDNASeqFilter()); 00099 comparator = gnCompare::DNASeqCompare(); 00100 } 00101 inline 00102 gnDNASequence::gnDNASequence( const gnContigSpec& gncs ) : gnSequence(gncs){ 00103 filter_list.push_back(gnFilter::fullDNASeqFilter()); 00104 comparator = gnCompare::DNASeqCompare(); 00105 } 00106 inline 00107 gnDNASequence::gnDNASequence( gnSeqC *bases, const gnSeqI length) : gnSequence(bases, length){ 00108 filter_list.push_back(gnFilter::fullDNASeqFilter()); 00109 comparator = gnCompare::DNASeqCompare(); 00110 } 00111 inline 00112 gnDNASequence::gnDNASequence( const gnDNASequence& seq) : gnSequence(seq){ 00113 filter_list.push_back(gnFilter::fullDNASeqFilter()); 00114 comparator = gnCompare::DNASeqCompare(); 00115 } 00116 00117 #endif 00118 // _gnDNASequence_h_