00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkBioGene_h_
00018
#define __itkBioGene_h_
00019
00020
#ifdef _MSC_VER
00021
#pragma warning ( disable : 4786 )
00022
#endif
00023
00024
#include <string>
00025
#include <vector>
00026
#include <map>
00027
00028
namespace itk {
00029
00030 namespace bio {
00031
00041 class Gene
00042 {
00043
public:
00044 typedef std::string
NameType;
00045 typedef std::string
DomainType;
00046 typedef double AffinityType;
00047 typedef std::map< DomainType, AffinityType >
ProteinDomainsType;
00048
00049 typedef struct {
DomainType domain;
bool type; }
ControlDomainType;
00050 typedef std::vector< ControlDomainType >
GeneControlDomainsType;
00051
00052
public:
00053
Gene();
00054
virtual ~Gene();
00055
00056
void Copy(
const Gene & genome );
00057
00059
void SetName(
const NameType & name );
00060
void SetName(
const char * name );
00061
const char *
GetName() const;
00062
00068
void AddProteinDomain( const
DomainType & domain,
AffinityType affinity );
00069
00070
00074
void AddGeneControlDomain( const
DomainType & domain,
bool type );
00075
00076 private:
00077
NameType m_Name;
00078
GeneControlDomainsType m_ControlDomains;
00079
ProteinDomainsType m_ProteinDomains;
00080 };
00081
00082
00083 }
00084
00085 }
00086
00087 #endif
00088
00089