00001 ///////////////////////////////////////////////////////////////////////////// 00002 // File: gnRNASequence.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 00012 ///////////////////////////////////////////////////////////////////////////// 00013 #ifndef _gnRNASequence_h_ 00014 #define _gnRNASequence_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 00023 /** 00024 * gnRNASequence is a special kind of gnSequence which can be used for RNA sequences 00025 * It sets the default filters and comparators to the RNA filters and comparators. 00026 */ 00027 00028 class GNDLLEXPORT gnRNASequence : public gnSequence 00029 { 00030 public: 00031 /** 00032 * Empty Constructor, creates an empty gnRNASequence. 00033 */ 00034 gnRNASequence(); 00035 /** 00036 * Creates a gnRNASequence with a single contig containing the bases in "seq". 00037 * @param seq The null terminated array of base pairs to use. 00038 */ 00039 gnRNASequence( const gnSeqC* seq ); 00040 /** 00041 * Creates a gnRNASequence with a single contig containing the bases in "str". 00042 * @param str The base pairs to use. 00043 */ 00044 gnRNASequence( const string& str ); 00045 /** 00046 * Creates a gnRNASequence with the contigs stored in "gngs". 00047 * @param gngs the gnGenomeSpec to get contigs from. 00048 */ 00049 gnRNASequence( const gnGenomeSpec& gngs ); 00050 /** 00051 * Creates a gnRNASequence with the contigs stored in "gnfs". 00052 * @param gnfs the gnFragmentSpec to get contigs from. 00053 */ 00054 gnRNASequence( const gnFragmentSpec& gnfs ); 00055 /** 00056 * Creates a gnRNASequence with the contigs stored in "gncs". 00057 * @param gncs the gnContigSpec to get contigs from. 00058 */ 00059 gnRNASequence( const gnContigSpec& gncs ); 00060 /** 00061 * Creates a gnRNASequence with a single contig containing the bases in "bases". 00062 * @param bases The base pairs to use 00063 * @param length The length of the base pair array. 00064 */ 00065 gnRNASequence( gnSeqC *bases, const gnSeqI length); 00066 /** 00067 * Copies the gnRNASequence "seq". 00068 * @param seq The gnRNASequence to copy. 00069 */ 00070 gnRNASequence( const gnRNASequence& seq); 00071 private: 00072 gnGenomeSpec *spec; 00073 list<const gnBaseFilter*> filter_list; 00074 const gnCompare* comparator; 00075 }; // class gnRNASequence 00076 00077 inline 00078 gnRNASequence::gnRNASequence() : gnSequence(){ 00079 filter_list.push_back(gnFilter::fullRNASeqFilter()); 00080 comparator = gnCompare::RNASeqCompare(); 00081 } 00082 inline 00083 gnRNASequence::gnRNASequence( const gnSeqC* seq ) : gnSequence(seq){ 00084 filter_list.push_back(gnFilter::fullRNASeqFilter()); 00085 comparator = gnCompare::RNASeqCompare(); 00086 } 00087 inline 00088 gnRNASequence::gnRNASequence( const string& str ) : gnSequence(str){ 00089 filter_list.push_back(gnFilter::fullRNASeqFilter()); 00090 comparator = gnCompare::RNASeqCompare(); 00091 } 00092 inline 00093 gnRNASequence::gnRNASequence( const gnGenomeSpec& gngs ) : gnSequence(gngs){ 00094 filter_list.push_back(gnFilter::fullRNASeqFilter()); 00095 comparator = gnCompare::RNASeqCompare(); 00096 } 00097 inline 00098 gnRNASequence::gnRNASequence( const gnFragmentSpec& gnfs ) : gnSequence(gnfs){ 00099 filter_list.push_back(gnFilter::fullRNASeqFilter()); 00100 comparator = gnCompare::RNASeqCompare(); 00101 } 00102 inline 00103 gnRNASequence::gnRNASequence( const gnContigSpec& gncs ) : gnSequence(gncs){ 00104 filter_list.push_back(gnFilter::fullRNASeqFilter()); 00105 comparator = gnCompare::RNASeqCompare(); 00106 } 00107 inline 00108 gnRNASequence::gnRNASequence( gnSeqC *bases, const gnSeqI length) : gnSequence(bases, length){ 00109 filter_list.push_back(gnFilter::fullRNASeqFilter()); 00110 comparator = gnCompare::RNASeqCompare(); 00111 } 00112 inline 00113 gnRNASequence::gnRNASequence( const gnRNASequence& seq) : gnSequence(seq){ 00114 filter_list.push_back(gnFilter::fullRNASeqFilter()); 00115 comparator = gnCompare::RNASeqCompare(); 00116 } 00117 00118 #endif 00119 // _gnRNASequence_h_