Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

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.1.0 
00007 // Author:          Aaron Darling 
00008 // Last Edited:     April 15, 2001, 10:34:50pm 
00009 // Modified by:     
00010 // Copyright:       (c) Aaron Darling 
00011 // Licenses:        Proprietary 
00013 #ifndef _gnTranslator_h_
00014 #define _gnTranslator_h_
00015 
00016 
00017 #include "gn/gnDefs.h"
00018 
00019 #include <string>
00020 #include <vector>
00021 #include "gn/gnClone.h"
00022 #include "gn/gnBaseFilter.h"
00023 #include "gn/gnCompare.h"
00024 
00025 
00037 class GNDLLEXPORT gnTranslator : public gnBaseFilter
00038 {
00039 public:
00040 
00041         static const gnTranslator *ProteinDNATranslator();
00042         static const gnTranslator *ProteinRNATranslator();
00043         static const gnTranslator *DNAProteinTranslator();
00044         static const gnTranslator *RNAProteinTranslator();
00045 
00046         enum gnTranslatorType{
00047                 ProteinDNATranslatorType,
00048                 ProteinRNATranslatorType,
00049                 DNAProteinTranslatorType,
00050                 RNAProteinTranslatorType,
00051         };
00052         
00053         gnTranslator();
00054         gnTranslator( gnTranslatorType t_type );
00055         gnTranslator( const gnTranslator& sf );
00056 
00057         gnTranslator* Clone() const;
00058 
00059         // gnSeqC 
00060         virtual gnSeqC Filter( const gnSeqC ch ) const;
00061 
00062         virtual void Filter( gnSeqC** seq, uint32& len ) const;
00063         // string
00064         virtual void Filter( string &seq ) const;
00065 
00066         // Default gnSeqC
00071         void SetDefaultChar( const gnSeqC ch1 );
00077         gnSeqC GetDefaultChar() const;
00082         void UseDefaultChar( const boolean use = true);
00088         void SetDefaultInputWidth( const uint32 defaultInputWidth);
00094         uint32 GetDefaultInputWidth() const;
00095 
00096         // fill map
00104         void SetPair( const string& input, const string& output );
00110         void RemovePair( const string& input );
00116         void SetCompare( const gnCompare* comp );
00117 private:
00118         void CreateProteinDNATranslator();
00119         void CreateProteinRNATranslator();
00120         void CreateDNAProteinTranslator();
00121         void CreateRNAProteinTranslator();
00122 
00123         //for each entry in the input table there is a corresponding
00124         //entry in the output table.
00125         vector<string> m_inputTable, m_outputTable;
00126 
00127         const gnCompare* compare;
00128         
00129         boolean use_default;
00130         gnSeqC m_defaultChar;
00131         uint32 m_defaultInputWidth;
00132 };//class gnTranslator
00133 
00134 inline
00135 gnTranslator* gnTranslator::Clone() const
00136 {
00137         return new gnTranslator(*this);
00138 }
00139 
00140 inline
00141 void gnTranslator::SetDefaultChar( const gnSeqC ch1 )
00142 {
00143         m_defaultChar = ch1;
00144         use_default = true;
00145 }
00146 inline
00147 gnSeqC gnTranslator::GetDefaultChar() const
00148 {
00149         return m_defaultChar;
00150 }
00151 
00152 inline
00153 void gnTranslator::UseDefaultChar(const boolean use)
00154 {
00155         use_default = use;
00156 }
00157 
00158 inline
00159 void gnTranslator::SetDefaultInputWidth( const uint32 defaultInputWidth){
00160         m_defaultInputWidth = defaultInputWidth;
00161 }
00162 
00163 inline
00164 uint32 gnTranslator::GetDefaultInputWidth() const{
00165         return m_defaultInputWidth;
00166 }
00167 
00168 inline
00169 void gnTranslator::SetCompare( const gnCompare* comp ){
00170         compare = comp;
00171 }
00172 
00173 #endif // _gnTranslator_h_

Generated at Thu Apr 4 01:52:03 2002 for libGenome by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001