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

gnFastTranslator.h

Go to the documentation of this file.
00001 
00002 // File:            gnFastTranslator.h
00003 // Purpose:         Fast translator for all Sequences
00004 // Description:     Caches translations of each possible sequence in a tree
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 _gnFastTranslator_h_
00014 #define _gnFastTranslator_h_
00015 
00016 
00017 #include "gn/gnDefs.h"
00018 
00019 #include <string>
00020 #include <vector>
00021 #include <map>
00022 #include "gn/gnClone.h"
00023 #include "gn/gnBaseFilter.h"
00024 #include "gn/gnTranslator.h"
00025 
00026 class GNDLLEXPORT gnFastTranslator : public gnBaseFilter
00027 {
00028 public:
00029 
00030         static const gnFastTranslator *ProteinDNATranslator();
00031         static const gnFastTranslator *DNAProteinTranslator();
00032 
00033         enum gnTranslatorType{
00034                 ProteinDNATranslatorType,
00035                 DNAProteinTranslatorType,
00036         };
00037 
00038         gnFastTranslator();
00039         gnFastTranslator( gnTranslatorType t_type );
00040         gnFastTranslator( const gnFastTranslator& sf );
00041         gnFastTranslator& operator= (const gnFastTranslator& sf);
00042         gnFastTranslator* Clone() const;
00043         
00053         virtual void CacheTranslator(const gnTranslator* tranny, string inputs, const gnSeqI input_width);
00054 
00055         // gnSeqC 
00056         virtual gnSeqC Filter( const gnSeqC ch ) const;
00057 
00058         virtual void Filter( gnSeqC** seq, uint32& len ) const;
00059         // string
00060         virtual void Filter( string &seq ) const;
00061 
00062         // Default gnSeqC
00063         void SetDefaultChar( const gnSeqC ch1 );
00064         gnSeqC GetDefaultChar() const;
00065         void UseDefaultChar( const boolean use = true);
00066         // fill map
00067         void SetPair( const string& ch1, const string& ch2 );
00068         void RemovePair( const string& ch );
00069 
00070 private:
00071 
00072         void CreateProteinDNATranslator();
00073         void CreateDNAProteinTranslator();
00074 
00075         string m_name;
00076 
00077         //map an input string to an output string
00078         map<string, string> m_transCache;
00079         const gnTranslator * m_translator;
00080         
00081         boolean use_default;
00082         gnSeqC m_defaultChar;
00083 };//class gnFastTranslator
00084 
00085 inline
00086 gnFastTranslator* gnFastTranslator::Clone() const
00087 {
00088         return new gnFastTranslator(*this);
00089 }
00090 
00091 inline
00092 void gnFastTranslator::SetDefaultChar( const gnSeqC ch1 )
00093 {
00094         m_defaultChar = ch1;
00095         use_default = true;
00096 }
00097 inline
00098 gnSeqC gnFastTranslator::GetDefaultChar() const
00099 {
00100         return m_defaultChar;
00101 }
00102 
00103 inline
00104 void gnFastTranslator::UseDefaultChar(const boolean use)
00105 {
00106         use_default = use;
00107 }
00108 
00109 #endif // _gnFastTranslator_h_

Generated at Fri Nov 30 15:36:51 2001 for libGenome by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001