libStatGen Software 1
Loading...
Searching...
No Matches
Alleles Class Reference

Public Member Functions

char & operator[] (int i)
 
bool isKnown ()
 
bool isHeterozygous ()
 
bool isHomozygous ()
 
bool hasAllele (int a)
 
bool isHeterozygousFor (int a)
 
bool isHomozygousFor (int a)
 
int countAlleles (int a)
 
int otherAllele (int a)
 
int identicalTo (Alleles &al)
 
int countIBS (Alleles &al)
 
int operator== (Alleles &rhs)
 
int operator!= (Alleles &rhs)
 
char Hi ()
 
char Lo ()
 
int SequenceCoded ()
 
longint BinaryCoded ()
 
void Intersect (Alleles &geno)
 
void Intersect (char allele)
 
bool AddAllele (char allele)
 
void Wipe ()
 

Public Attributes

char one
 
char two
 

Detailed Description

Definition at line 23 of file PedigreeAlleles.h.

Constructor & Destructor Documentation

◆ Alleles()

Alleles::Alleles ( )
inline

Definition at line 29 of file PedigreeAlleles.h.

30 {
31 one = two = 0;
32 }

Member Function Documentation

◆ AddAllele()

bool Alleles::AddAllele ( char  allele)
inline

Definition at line 158 of file PedigreeAlleles.h.

159 {
160 if (one == allele || two == allele)
161 return true;
162
163 if (one != 0 && two != 0)
164 return false;
165
166 if (one == 0) one = allele;
167 else two = allele;
168 return true;
169 }

◆ BinaryCoded()

longint Alleles::BinaryCoded ( )
inline

Definition at line 119 of file PedigreeAlleles.h.

120 {
121 if (isKnown())
122 {
123 longint allele1(1);
124 longint allele2(1);
125
126 allele1 <<= one - 1;
127 allele2 <<= two - 1;
128
129 return allele1 | allele2;
130 }
131 else
132 return NOTZERO;
133 }

◆ countAlleles()

int Alleles::countAlleles ( int  a)
inline

Definition at line 68 of file PedigreeAlleles.h.

69 {
70 return ((one == a) ? 1 : 0) + ((two == a) ? 1 : 0);
71 }

◆ countIBS()

int Alleles::countIBS ( Alleles al)
inline

Definition at line 87 of file PedigreeAlleles.h.

88 {
89 return (one == al.one) ?
90 ((two == al.two) ? 2 : 1) :
91 ((one == al.two) ?
92 ((two == al.one) ? 2 : 1) :
93 (((two == al.one) || (two == al.two)) ? 1 : 0));
94 }

◆ hasAllele()

bool Alleles::hasAllele ( int  a)
inline

Definition at line 52 of file PedigreeAlleles.h.

53 {
54 return (one == a) || (two == a);
55 }

◆ Hi()

char Alleles::Hi ( )
inline

Definition at line 105 of file PedigreeAlleles.h.

106 {
107 return one > two ? one : two;
108 }

◆ identicalTo()

int Alleles::identicalTo ( Alleles al)
inline

Definition at line 80 of file PedigreeAlleles.h.

81 {
82 return ((al.one == one) && (al.two == two)) ||
83 ((al.two == one) && (al.one == two));
84 }

◆ Intersect() [1/2]

void Alleles::Intersect ( Alleles geno)
inline

Definition at line 135 of file PedigreeAlleles.h.

136 {
137 char a1 = Lo(), a2 = Hi();
138 char b1 = geno.Lo(), b2 = geno.Hi();
139
140 if (a1 == b1 && a2 == b2)
141 return;
142 if (a1 == b1 || a1 == b2)
143 one = two = a1;
144 else if (a2 == b1 || a2 == b2)
145 one = two = a2;
146 else
147 one = two = 0;
148 }

◆ Intersect() [2/2]

void Alleles::Intersect ( char  allele)
inline

Definition at line 150 of file PedigreeAlleles.h.

151 {
152 if (one != allele && two != allele)
153 one = two = 0;
154 else
155 one = two = allele;
156 }

◆ isHeterozygous()

bool Alleles::isHeterozygous ( )
inline

Definition at line 44 of file PedigreeAlleles.h.

45 {
46 return isKnown() && (one != two);
47 }

◆ isHeterozygousFor()

bool Alleles::isHeterozygousFor ( int  a)
inline

Definition at line 58 of file PedigreeAlleles.h.

59 {
60 return isHeterozygous() && hasAllele(a);
61 }

◆ isHomozygous()

bool Alleles::isHomozygous ( )
inline

Definition at line 48 of file PedigreeAlleles.h.

49 {
50 return isKnown() && (one == two);
51 }

◆ isHomozygousFor()

bool Alleles::isHomozygousFor ( int  a)
inline

Definition at line 62 of file PedigreeAlleles.h.

63 {
64 return !(isHeterozygousFor(a));
65 }

◆ isKnown()

bool Alleles::isKnown ( )
inline

Definition at line 40 of file PedigreeAlleles.h.

41 {
42 return (one * two) != 0;
43 }

◆ Lo()

char Alleles::Lo ( )
inline

Definition at line 109 of file PedigreeAlleles.h.

110 {
111 return one > two ? two : one;
112 }

◆ operator!=()

int Alleles::operator!= ( Alleles rhs)
inline

Definition at line 100 of file PedigreeAlleles.h.

101 {
102 return !identicalTo(rhs);
103 }

◆ operator==()

int Alleles::operator== ( Alleles rhs)
inline

Definition at line 96 of file PedigreeAlleles.h.

97{
98 return identicalTo(rhs);
99 }

◆ operator[]()

char & Alleles::operator[] ( int  i)
inline

Definition at line 34 of file PedigreeAlleles.h.

35 {
36 return (i == 1) ? one : two;
37 }

◆ otherAllele()

int Alleles::otherAllele ( int  a)
inline

Definition at line 74 of file PedigreeAlleles.h.

75 {
76 return ((one == a) ? two : one);
77 }

◆ SequenceCoded()

int Alleles::SequenceCoded ( )
inline

Definition at line 114 of file PedigreeAlleles.h.

115 {
116 return isKnown() ? Hi() *(Hi() - 1) / 2 + Lo() : 0;
117 }

◆ Wipe()

void Alleles::Wipe ( )
inline

Definition at line 171 of file PedigreeAlleles.h.

172 {
173 one = two = 0;
174 }

Member Data Documentation

◆ one

char Alleles::one

Definition at line 26 of file PedigreeAlleles.h.

◆ two

char Alleles::two

Definition at line 27 of file PedigreeAlleles.h.


The documentation for this class was generated from the following file: