00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkBioGenome_H
00018 #define __itkBioGenome_H
00019
00020 #if defined(_MSC_VER)
00021 #pragma warning ( disable : 4786 )
00022 #endif
00023
00024 #if defined(_WIN32)
00025 #include "itkWindows.h"
00026 #endif
00027
00028 #include <map>
00029 #include <string>
00030 #include <math.h>
00031
00032 namespace itk {
00033
00034 namespace bio {
00035
00043 class Genome
00044 {
00045 public:
00046 typedef std::string GeneIdType;
00047 typedef std::map< GeneIdType, double > MapType;
00048
00049 public:
00050 Genome();
00051 virtual ~Genome();
00052
00053 void Copy( const Genome & genome );
00054
00055 void InsertGene( const GeneIdType & geneId );
00056 void KnockOutGene( const GeneIdType & geneId );
00057
00058 double GetExpressionLevel( const GeneIdType & geneId );
00059 void SetExpressionLevel( const GeneIdType & geneId, double level );
00060
00063 static double Sigmoide( double threshold, double slant, double value )
00064 {
00065 return atan( ( value - threshold ) / slant ) / 3.1416 + 0.5001;
00066 }
00067
00068 private:
00069 MapType m_Map;
00070
00071 };
00072
00073
00074 }
00075
00076 }
00077
00078 #endif
00079
00080