Files
DEC/DEC_GUI/DEC-0.0/individual/genome/Gene.h
2024-10-03 18:43:04 +07:00

45 lines
1.5 KiB
C++

#pragma once
#include <string>
/*
Ðàçíèöà ìåæäó çíà÷åíèÿìè ãåíîâ è ïðèçíàêîâ ñîñòîèò â òîì, ÷òî
çíà÷åíèÿ ãåíîâ íàñëåäóþòñÿ "êàê åñòü" (çà èñêëþ÷åíèåì ìóòàöèé),
à çíà÷åíèÿ ïðèçíàêîâ âû÷èñëÿþòñÿ èñõîäÿ èç
1) çíà÷åíèé ãåíîâ äâóõ àëëåëüíûõ âàðèàíòîâ
2) ãåíåòè÷åñêîãî è/èëè àëëåëüíîãî îêðóæåíèÿ ãåíîâ â õðîìîñîìå
3) ïëåéîòðîïèè è/èëè ïîëèãåíèè
4) âíóòðåííåãî ñîñòîÿíèÿ îðãàíèçìà (â ò.÷. è âîçðàñò???)
5) îêðóæàþùåé ñðåäû, ñóáñòðàòû, ñòðåññ è ò.ä.
*/
class Gene {
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);
};