include/gn/gnTranslator.h

Go to the documentation of this file.
00001 00002 // File: gnTranslator.h 00003 // Purpose: Translator for all Sequences 00004 // Description: Translates DNA and protein sequences 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 _gnTranslator_h_ 00013 #define _gnTranslator_h_ 00014 00015 00016 #include "gn/gnDefs.h" 00017 00018 #include <string> 00019 #include <vector> 00020 #include "gn/gnClone.h" 00021 #include "gn/gnBaseFilter.h" 00022 #include "gn/gnCompare.h" 00023 00024 00036 class GNDLLEXPORT gnTranslator : public gnBaseFilter 00037 { 00038 public: 00039 00040 static const gnTranslator *ProteinDNATranslator(); 00041 static const gnTranslator *ProteinRNATranslator(); 00042 static const gnTranslator *DNAProteinTranslator(); 00043 static const gnTranslator *RNAProteinTranslator(); 00044 00045 enum gnTranslatorType{ 00046 ProteinDNATranslatorType, 00047 ProteinRNATranslatorType, 00048 DNAProteinTranslatorType, 00049 RNAProteinTranslatorType, 00050 }; 00051 00052 gnTranslator(); 00053 gnTranslator( gnTranslatorType t_type ); 00054 gnTranslator( const gnTranslator& sf ); 00055 00056 gnTranslator* Clone() const; 00057 00058 // gnSeqC 00059 virtual gnSeqC Filter( const gnSeqC ch ) const; 00060 00061 virtual void Filter( gnSeqC** seq, gnSeqI& len ) const; 00062 // string 00063 virtual void Filter( string &seq ) const; 00064 00065 // Default gnSeqC 00070 void SetDefaultChar( const gnSeqC ch1 ); 00076 gnSeqC GetDefaultChar() const; 00081 void UseDefaultChar( const boolean use = true); 00087 void SetDefaultInputWidth( const uint32 defaultInputWidth); 00093 uint32 GetDefaultInputWidth() const; 00094 00095 // fill map 00103 void SetPair( const string& input, const string& output ); 00109 void RemovePair( const string& input ); 00115 void SetCompare( const gnCompare* comp ); 00116 private: 00117 void CreateProteinDNATranslator(); 00118 void CreateProteinRNATranslator(); 00119 void CreateDNAProteinTranslator(); 00120 void CreateRNAProteinTranslator(); 00121 00122 //for each entry in the input table there is a corresponding 00123 //entry in the output table. 00124 vector<string> m_inputTable, m_outputTable; 00125 00126 const gnCompare* compare; 00127 00128 boolean use_default; 00129 gnSeqC m_defaultChar; 00130 uint32 m_defaultInputWidth; 00131 };//class gnTranslator 00132 00133 inline 00134 gnTranslator* gnTranslator::Clone() const 00135 { 00136 return new gnTranslator(*this); 00137 } 00138 00139 inline 00140 void gnTranslator::SetDefaultChar( const gnSeqC ch1 ) 00141 { 00142 m_defaultChar = ch1; 00143 use_default = true; 00144 } 00145 inline 00146 gnSeqC gnTranslator::GetDefaultChar() const 00147 { 00148 return m_defaultChar; 00149 } 00150 00151 inline 00152 void gnTranslator::UseDefaultChar(const boolean use) 00153 { 00154 use_default = use; 00155 } 00156 00157 inline 00158 void gnTranslator::SetDefaultInputWidth( const uint32 defaultInputWidth){ 00159 m_defaultInputWidth = defaultInputWidth; 00160 } 00161 00162 inline 00163 uint32 gnTranslator::GetDefaultInputWidth() const{ 00164 return m_defaultInputWidth; 00165 } 00166 00167 inline 00168 void gnTranslator::SetCompare( const gnCompare* comp ){ 00169 compare = comp; 00170 } 00171 00172 #endif // _gnTranslator_h_

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