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         //map an input string to an output string
00076         map<string, string> m_transCache;
00077         const gnTranslator * m_translator;
00078         
00079         boolean use_default;
00080         gnSeqC m_defaultChar;
00081 };//class gnFastTranslator
00082 
00083 inline
00084 gnFastTranslator* gnFastTranslator::Clone() const
00085 {
00086         return new gnFastTranslator(*this);
00087 }
00088 
00089 inline
00090 void gnFastTranslator::SetDefaultChar( const gnSeqC ch1 )
00091 {
00092         m_defaultChar = ch1;
00093         use_default = true;
00094 }
00095 inline
00096 gnSeqC gnFastTranslator::GetDefaultChar() const
00097 {
00098         return m_defaultChar;
00099 }
00100 
00101 inline
00102 void gnFastTranslator::UseDefaultChar(const boolean use)
00103 {
00104         use_default = use;
00105 }
00106 
00107 #endif // _gnFastTranslator_h_

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