46 lines
1.6 KiB
C++
46 lines
1.6 KiB
C++
#pragma once
|
|
#include <string>
|
|
/*
|
|
Ðàçíèöà ìåæäó çíà÷åíèÿìè ãåíîâ è ïðèçíàêîâ ñîñòîèò â òîì, ÷òî
|
|
çíà÷åíèÿ ãåíîâ íàñëåäóþòñÿ "êàê åñòü" (çà èñêëþ÷åíèåì ìóòàöèé),
|
|
à çíà÷åíèÿ ïðèçíàêîâ âû÷èñëÿþòñÿ èñõîäÿ èç
|
|
1) çíà÷åíèé ãåíîâ äâóõ àëëåëüíûõ âàðèàíòîâ
|
|
2) ãåíåòè÷åñêîãî è/èëè àëëåëüíîãî îêðóæåíèÿ ãåíîâ â õðîìîñîìå
|
|
3) ïëåéîòðîïèè è/èëè ïîëèãåíèè
|
|
4) âíóòðåííåãî ñîñòîÿíèÿ îðãàíèçìà (â ò.÷. è âîçðàñò???)
|
|
5) îêðóæàþùåé ñðåäû, ñóáñòðàòû, ñòðåññ è ò.ä.
|
|
*/
|
|
|
|
class Gene {
|
|
friend class Derevyanko2015RecpmbinationStrategy;
|
|
public:
|
|
enum GeneType { Continious, Discrete, Sequence };
|
|
typedef unsigned int idType;
|
|
|
|
protected:
|
|
GeneType geneType; // Äèñêðåòíûé èëè íåïðåðûâíûé
|
|
idType ID; // Èäåíòèôèêàòîð
|
|
std::string name; // Íàçâàíèå ïðèçíàêà
|
|
float geneValueCont;// Çíà÷åíèå ïðèçíàêà, åñëè îí íåïðåðûâíûé
|
|
int geneValueDiscr; // Çíà÷åíèå ïðèçíàêà, åñëè îí äèñêðåòíûé
|
|
std::string sequence;
|
|
|
|
public:
|
|
Gene(idType _ID, std::string _name, float value);
|
|
Gene(idType _ID, std::string _name, int value);
|
|
Gene(idType _ID, std::string _name, std::string seq);
|
|
|
|
GeneType getGeneType() const { return geneType; }
|
|
idType getID() const { return ID; }
|
|
std::string getName() const { return name; }
|
|
float getGeneValueCont() const { return geneValueCont; }
|
|
int getGeneValueDiscr() const { return geneValueDiscr; }
|
|
std::string getSequence()const { return sequence; }
|
|
|
|
void setName(const std::string& _name) { name = _name; }
|
|
void setID(idType _ID) { ID = _ID; }
|
|
void setGeneValue(float _value);
|
|
void setGeneValue(int _value);
|
|
void setGeneValue(std::string _seq);
|
|
};
|