public static Allele FromBinomial(BinomialAlleles alleles) { switch (alleles) { case (BinomialAlleles.AA): return(Allele.A); case (BinomialAlleles.AB): return((Random.Range(0.0f, 1.0f) < 0.5f) ? Allele.A : Allele.B); case (BinomialAlleles.BB): return(Allele.B); default: return(Allele.UNKNOWN); } }
public static BinomialAlleles Punnet(BinomialAlleles a, BinomialAlleles b) { Allele aInherit = FromBinomial(a); Allele bInherit = FromBinomial(b); if (aInherit == bInherit) { if (aInherit == Allele.A) { return(BinomialAlleles.AA); } else { return(BinomialAlleles.BB); } } else { return(BinomialAlleles.AB); } }
public static string GetBinomialTrait(string traitName, BinomialAlleles alleles) { if (!binomialTraitDict.ContainsKey(traitName)) { return("N/A"); } switch (alleles) { case (BinomialAlleles.AA): return(binomialTraitDict[traitName].aa); case (BinomialAlleles.AB): return(binomialTraitDict[traitName].ab); case (BinomialAlleles.BB): return(binomialTraitDict[traitName].bb); default: return("N/A"); } }