/** * @param diseaseHyp haploid disease hypothesis that starts with NONE and includes rest of * nucleotides (see <code>HypothesesDisease</code>). * @param genome selects family member with father starting at 0. * @return true iff the disease hypothesis is consistent with the disease status of this family * member (aka genome). Assumes disease is dominant. */ private boolean q(final int diseaseHyp, final int genome) { final int hyp = mCurrentHypotheses[genome]; final boolean contains; final Code code = mIndividualHypotheses.code(); final int dis = diseaseHyp - 1; // TODO implement recessive version controlled by flag. if (code.homozygous(hyp)) { contains = code.a(hyp) == dis; } else { contains = code.a(hyp) == dis || code.b(hyp) == dis; } return contains == mFamily.isDiseased(genome); }