00001 00002 // File: gnProteinSequence.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 _gnProteinSequence_h_ 00014 #define _gnProteinSequence_h_ 00015 00016 #include "gn/gnDefs.h" 00017 00018 #include <string> 00019 #include <list> 00020 #include "gn/gnSequence.h" 00021 #include "gn/gnFilter.h" 00022 00028 class GNDLLEXPORT gnProteinSequence : public gnSequence 00029 { 00030 public: 00034 gnProteinSequence(); 00039 gnProteinSequence( const gnSeqC* seq ); 00044 gnProteinSequence( const string& str ); 00049 gnProteinSequence( const gnGenomeSpec& gngs ); 00054 gnProteinSequence( const gnFragmentSpec& gnfs ); 00059 gnProteinSequence( const gnContigSpec& gncs ); 00065 gnProteinSequence( gnSeqC *bases, const gnSeqI length); 00070 gnProteinSequence( const gnProteinSequence& seq); 00071 private: 00072 gnGenomeSpec *spec; 00073 list<const gnBaseFilter*> filter_list; 00074 const gnCompare* comparator; 00075 }; // class gnProteinSequence 00076 00077 inline 00078 gnProteinSequence::gnProteinSequence() : gnSequence(){ 00079 filter_list.push_back(gnFilter::proteinSeqFilter()); 00080 comparator = gnCompare::ProteinSeqCompare(); 00081 } 00082 inline 00083 gnProteinSequence::gnProteinSequence( const gnSeqC* seq ) : gnSequence(seq){ 00084 filter_list.push_back(gnFilter::proteinSeqFilter()); 00085 comparator = gnCompare::ProteinSeqCompare(); 00086 } 00087 inline 00088 gnProteinSequence::gnProteinSequence( const string& str ) : gnSequence(str){ 00089 filter_list.push_back(gnFilter::proteinSeqFilter()); 00090 comparator = gnCompare::ProteinSeqCompare(); 00091 } 00092 inline 00093 gnProteinSequence::gnProteinSequence( const gnGenomeSpec& gngs ) : gnSequence(gngs){ 00094 filter_list.push_back(gnFilter::proteinSeqFilter()); 00095 comparator = gnCompare::ProteinSeqCompare(); 00096 } 00097 inline 00098 gnProteinSequence::gnProteinSequence( const gnFragmentSpec& gnfs ) : gnSequence(gnfs){ 00099 filter_list.push_back(gnFilter::proteinSeqFilter()); 00100 comparator = gnCompare::ProteinSeqCompare(); 00101 } 00102 inline 00103 gnProteinSequence::gnProteinSequence( const gnContigSpec& gncs ) : gnSequence(gncs){ 00104 filter_list.push_back(gnFilter::proteinSeqFilter()); 00105 comparator = gnCompare::ProteinSeqCompare(); 00106 } 00107 inline 00108 gnProteinSequence::gnProteinSequence( gnSeqC *bases, const gnSeqI length) : gnSequence(bases, length){ 00109 filter_list.push_back(gnFilter::proteinSeqFilter()); 00110 comparator = gnCompare::ProteinSeqCompare(); 00111 } 00112 inline 00113 gnProteinSequence::gnProteinSequence( const gnProteinSequence& seq) : gnSequence(seq){ 00114 filter_list.push_back(gnFilter::proteinSeqFilter()); 00115 comparator = gnCompare::ProteinSeqCompare(); 00116 } 00117 00118 #endif 00119 // _gnProteinSequence_h_