31class Person :
public PedigreeGlobals
61 bool isHalfSib(Person & sib)
63 return hasBothParents &&
64 ((sib.father == father) ^(sib.mother == mother));
67 bool isSib(Person & sib)
69 return hasBothParents &&
70 (sib.father == father) && (sib.mother == mother);
73 bool isTwin(Person & twin)
75 return (zygosity != 0) && (zygosity == twin.zygosity) && isSib(twin);
78 bool isMzTwin(Person & mzTwin)
80 return (zygosity & 1) && (zygosity == mzTwin.zygosity) && isSib(mzTwin);
93 return !hasBothParents;
99 bool isGenotyped(
int m)
101 return markers[m].isKnown();
103 bool isFullyGenotyped()
105 return ngeno == markerCount;
107 bool isControlled(
int c)
109 return covariates[c] != _NAN_;
111 bool isFullyControlled()
113 return hasAllCovariates;
115 bool isPhenotyped(
int t)
117 return traits[t] != _NAN_;
119 bool isFullyPhenotyped()
123 bool isDiagnosed(
int a)
125 return affections[a] != 0;
127 bool isFullyDiagnosed()
129 return hasAllAffections;
132 bool isAncestor(Person * descendant);
134 int GenotypedMarkers();
136 static void Order(Person * & p1, Person * & p2);
138 void Copy(Person & rhs);
139 void CopyIDs(Person & rhs);
140 void CopyPhenotypes(Person & rhs);
141 void WipePhenotypes(
bool remove_genotypes =
true);
145 bool hasAllCovariates, hasAllTraits,
146 hasAllAffections, hasBothParents;