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

gnPosSpecificTranslator.h

Go to the documentation of this file.
00001 
00002 // File:            gnPosSpecificTranslator.h
00003 // Purpose:         Special case ORF translation
00004 // Description:     Used to translate sequences differently based on the position of
00005 //                                      input characters.  Useful for tranlating genes because the first
00006 //                                      codon is translated differently
00007 // Changes:        
00008 // Version:         libGenome 0.1.0 
00009 // Author:          Aaron Darling 
00010 // Last Edited:     March 18, 2001, 10:34:50pm 
00011 // Modified by:     
00012 // Copyright:       (c) Aaron Darling 
00013 // Licenses:        Proprietary 
00015 #ifndef _gnPosSpecificTranslator_h_
00016 #define _gnPosSpecificTranslator_h_
00017 
00018 
00019 #include "gn/gnDefs.h"
00020 
00021 #include <string>
00022 #include <vector>
00023 #include <map>
00024 #include "gn/gnClone.h"
00025 #include "gn/gnBaseFilter.h"
00026 #include "gn/gnFastTranslator.h"
00027 
00033 class GNDLLEXPORT gnPosSpecificTranslator : public gnBaseFilter
00034 {
00035 public:
00036 
00037         static const gnPosSpecificTranslator *ProteinDNATranslator();
00038         static const gnPosSpecificTranslator *DNAProteinTranslator();
00039 
00040         enum gnTranslatorType{
00041                 ProteinDNATranslatorType,
00042                 DNAProteinTranslatorType,
00043         };
00044 
00045         gnPosSpecificTranslator();
00046         gnPosSpecificTranslator( gnTranslatorType t_type );
00047         gnPosSpecificTranslator( const gnPosSpecificTranslator& sf );
00048         gnPosSpecificTranslator& operator= (const gnPosSpecificTranslator& sf);
00049         gnPosSpecificTranslator* Clone() const;
00050         
00051 
00052         // gnSeqC 
00053         virtual gnSeqC Filter( const gnSeqC ch ) const;
00054 
00055         virtual void Filter( gnSeqC** seq, uint32& len ) const;
00056         // string
00057         virtual void Filter( string &seq ) const;
00058 
00059 private:
00060         gnTranslatorType m_type;        // defines the type of translator this is
00061         const gnBaseFilter* filter;             // this is the filter used to do the translation
00062         void CreateProteinDNATranslator();
00063         void CreateDNAProteinTranslator();
00064 
00065 };//class gnPosSpecificTranslator
00066 
00067 inline
00068 gnPosSpecificTranslator* gnPosSpecificTranslator::Clone() const
00069 {
00070         return new gnPosSpecificTranslator(*this);
00071 }
00072 
00073 #endif // _gnPosSpecificTranslator_h_

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