/usr/include/InsightToolkit/Algorithms/itkBioGene.h is in libinsighttoolkit3-dev 3.20.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | /*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: itkBioGene.h
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) Insight Software Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef __itkBioGene_h
#define __itkBioGene_h
#ifdef _MSC_VER
#pragma warning ( disable : 4786 )
#endif
#include <string>
#include <vector>
#include <map>
namespace itk {
namespace bio {
/** \class Gene
* \brief This class implement the abstraction of a biological gene.
*
* The gene has a name and a specification of promoters and represor binding
* sites. Promoter and represors encode a boolean expression that allows to
* control the expression of the gene. These boolean expression will result in
* a polynome in a finite different equation determining the rate at which
* protein is syntethizied by this gene.
*/
class Gene
{
public:
typedef std::string NameType;
typedef std::string DomainType;
typedef double AffinityType;
typedef std::map< DomainType, AffinityType > ProteinDomainsType;
typedef struct
{
DomainType m_Domain;
bool m_Type;
} ControlDomainType;
typedef std::vector< ControlDomainType > GeneControlDomainsType;
public:
Gene();
virtual ~Gene();
void Copy( const Gene & genome );
/** Set/Get the name of the gene. This uses a std::string type. */
void SetName( const NameType & name );
void SetName( const char * name );
const char * GetName() const;
/** Add a protein domain along with an affinity. The name of the domain
here actually refers to the one for which this protein will have
binding affinity. For example, adding "SH2" with affinity 0.05 will
means that this gene will synthetize a proteing with a domain that has
0.05 affinity for a standard SH2 domain. */
void AddProteinDomain( const DomainType & domain, AffinityType affinity );
/** Add a control domain to the gene. A control domain is an enhancer or silencer.
A gene can have any number of them. The type will indicate if they are enhancers
or silencers. */
void AddGeneControlDomain( const DomainType & domain, bool type );
private:
NameType m_Name;
GeneControlDomainsType m_ControlDomains;
ProteinDomainsType m_ProteinDomains;
};
} // end namespace bio
} // end namespace itk
#endif
|