public void ValidateBooleanStatisticsAsDiscreteStatistics() { BooleanStatistics boolStat1 = BooleanStatistics.GetInstance(true); DiscreteStatistics dStat = boolStat1.AsDiscreteStatistics(); Assert.AreEqual(boolStat1, dStat.AsBooleanStatistics()); }
public void ValidateGaussianStatisticsAsBooleanStatistics() { GaussianStatistics boolStat1 = GaussianStatistics.GetInstance(0, 2, 2); BooleanStatistics gStat = boolStat1.AsBooleanStatistics(); Assert.AreEqual(0, gStat.AsGaussianStatistics().Mean); }
public void ValidateBooleanStatisticsAsContinuousStatistics() { BooleanStatistics boolStat1 = BooleanStatistics.GetInstance(true); ContinuousStatistics cStat = boolStat1.AsContinuousStatistics(); Assert.AreEqual(1, cStat.Value); }
public void ValidateBooleanStatisticsExplicitInt() { DiscreteStatistics discreteStat2 = DiscreteStatistics.GetInstance(5); BooleanStatistics boolStat2 = (BooleanStatistics)discreteStat2; Assert.AreEqual(5, (int)boolStat2); Assert.IsFalse((bool)boolStat2); try { DiscreteStatistics discreteStat = DiscreteStatistics.GetMissingInstance; BooleanStatistics boolStat1 = (BooleanStatistics)discreteStat; Assert.IsFalse((bool)boolStat1); int temp = (int)boolStat1; } catch (InvalidCastException) { Console.WriteLine("BooleanStatistics : Successfully validated the int(0)"); } DiscreteStatistics discreteStat3 = null; try { BooleanStatistics boolStat3 = (BooleanStatistics)discreteStat3; Assert.Fail(); } catch (ArgumentException) { Console.WriteLine("BooleanStatistics : Successfully validated the int(booleanstatistics)"); } }
public void ValidateBooleanStatisticsAsStatisticsList() { BooleanStatistics boolStat1 = BooleanStatistics.GetInstance(true); StatisticsList sList = boolStat1.AsStatisticsList(); Assert.AreEqual(1, sList.Count); }
public void ValidateBooleanStatisticsAsGaussianStatistics() { BooleanStatistics boolStat1 = BooleanStatistics.GetInstance(true); GaussianStatistics gStat = boolStat1.AsGaussianStatistics(); Assert.AreEqual(boolStat1, gStat.AsBooleanStatistics()); }
public void ValidateBooleanStatisticsTryParse() { SufficientStatistics result = null; BooleanStatistics boolStat = BooleanStatistics.GetInstance(true); Assert.IsTrue(BooleanStatistics.TryParse("true", out result)); Assert.IsTrue(boolStat.Equals(result)); }
public void ValidateBooleanStatisticsToString() { BooleanStatistics boolStat1 = BooleanStatistics.GetInstance(true); BooleanStatistics boolStat2 = BooleanStatistics.GetMissingInstance; Assert.AreEqual("1", boolStat1.ToString()); Assert.AreEqual("-1", boolStat2.ToString()); }
public void ValidateBooleanStatisticsGetHashCode() { // This is a stupid test. It likely changes on each release of the .NET framework since // we are using an integer as our value here. So it broke for .NET 4.5, I am simply removing // it because it doesn't test anything anyway. BooleanStatistics boolStat1 = BooleanStatistics.GetInstance(true); Assert.AreEqual(372029325, boolStat1.GetHashCode()); }
public void ValidateCharToSufficientStatisticsConverter() { CharToSufficientStatisticsConverter ctssConverter = new CharToSufficientStatisticsConverter(); DiscreteStatistics discreteStat = DiscreteStatistics.GetInstance(1); char convertedChar = ctssConverter.ConvertBackward(discreteStat); Assert.AreEqual('1', convertedChar); BooleanStatistics convertedBooleanStat = ctssConverter.ConvertForward('1') as BooleanStatistics; Assert.AreEqual("1", convertedBooleanStat.ToString()); }
public void ValidateBooleanStatisticsExplicitMissingStatistics() { MissingStatistics missStat = MissingStatistics.GetInstance; BooleanStatistics boolStat2 = (BooleanStatistics)missStat; Assert.IsTrue(boolStat2.IsMissing()); MissingStatistics missStat2 = null; Assert.IsNull((BooleanStatistics)missStat2); }
public void ValidateBooleanStatisticsConvertToBooleanStatistics() { BooleanStatistics boolStat1 = BooleanStatistics.GetInstance(true); SufficientStatistics suffStats = (SufficientStatistics)boolStat1; Dictionary <string, SufficientStatistics> testSuffStats = new Dictionary <string, SufficientStatistics>(); testSuffStats.Add("Test", suffStats); Dictionary <string, BooleanStatistics> boolStats = BooleanStatistics.ConvertToBooleanStatistics(testSuffStats); Assert.AreEqual(boolStat1, boolStats["Test"]); }
/// <summary> /// Converts positional variations in sequences to statistics /// </summary> /// <param name="positionalAminoAcidDistribution">Positional distribution of alphabets.</param> /// <param name="sequences">List of List of positional sequence variation.</param> /// <param name="keepOneValueVariables">Keeps variables with single value only.</param> /// <param name="rowValues">Values in rows</param> /// <returns>Positional sequence statistics</returns> private static IList <List <SufficientStatistics> > CreateSequenceStatistics( HashSet <byte>[] positionalAminoAcidDistribution, IList <IList <IList <byte> > > sequences, bool keepOneValueVariables, out IList <string> rowValues) { IList <List <SufficientStatistics> > statistics = new List <List <SufficientStatistics> >(); rowValues = new List <string>(); for (int pos = 0; pos < positionalAminoAcidDistribution.Length; pos++) { foreach (byte aa in positionalAminoAcidDistribution[pos]) { string merAndPos = (pos + 1) + "@" + (char)aa; int?[] values = new int?[sequences.Count]; HashSet <int> nonMissingValues = new HashSet <int>(); for (int pidIdx = 0; pidIdx < sequences.Count; pidIdx++) { int? value; IList <byte> observedAAs = sequences[pidIdx][pos]; if (observedAAs.Contains(Alphabets.Protein.Gap) || observedAAs.Contains(Alphabets.AmbiguousProtein.X) || observedAAs.Count == 0 || (observedAAs.Count > 1 && MixtureSemanticsValue == MixtureSemantics.none && observedAAs.Contains(aa))) { value = null; } else if (observedAAs.Contains(aa) && (MixtureSemanticsValue != MixtureSemantics.pure || observedAAs.Count == 1)) { value = 1; } else { value = 0; } values[pidIdx] = value; if (value != null) { nonMissingValues.Add((int)value); } } if (nonMissingValues.Count > 1 || (keepOneValueVariables && nonMissingValues.Count == 1 && nonMissingValues.First() == 1)) { rowValues.Add(merAndPos); statistics.Add( values.Select(value => value.HasValue ? (value.Value > 0 ? BooleanStatistics.GetInstance(true) : BooleanStatistics.GetInstance(false)) : MissingStatistics.GetInstance).ToList <SufficientStatistics>()); } } } return(statistics); }
protected override void WriteDistilled(IEnumerable <KeyValuePair <string, List <HlaIGenotype> > > patientsAndGenotypes, bool multipleGenotypesPerPatient) { var patientsAndGenotypesAsList = patientsAndGenotypes.ToList(); Dictionary <string, MultinomialStatistics> pidToMultinomial = new Dictionary <string, MultinomialStatistics>(); Dictionary <string, HlaIGenotype> pidGenoNameToGeno = new Dictionary <string, HlaIGenotype>(patientsAndGenotypesAsList.Count); foreach (var pidAndGenos in patientsAndGenotypes) { if (pidAndGenos.Value.Count == 1) { pidGenoNameToGeno.Add(pidAndGenos.Key, pidAndGenos.Value.Single()); } else { pidToMultinomial.Add(pidAndGenos.Key, MultinomialStatistics.GetInstance(pidAndGenos.Value.Select(g => g.Probability))); // keep track of the probabilities in this dictionary HlaIGenotype unionGenotype = HlaIGenotype.Union(pidAndGenos.Value.ToArray()); pidGenoNameToGeno.Add(pidAndGenos.Key, unionGenotype); //Add the union genotype to the matrix. for (int i = 0; i < pidAndGenos.Value.Count; i++) { string pidGenoId = pidAndGenos.Key + "_" + i; pidGenoNameToGeno.Add(pidGenoId, pidAndGenos.Value[i]); } } } Matrix <string, string, SufficientStatistics> m = DenseMatrix <string, string, SufficientStatistics> .CreateDefaultInstance( HlaEnumerator.GenerateHlas(patientsAndGenotypes.SelectMany(pidAndGenos => pidAndGenos.Value)), pidGenoNameToGeno.Keys, MissingStatistics.GetInstance()); foreach (string hlastr in m.RowKeys) { HlaI hla = HlaI.Parse(hlastr); foreach (string pid in m.ColKeys) { bool?match = pidGenoNameToGeno[pid].Matches(hla, MixtureSemantics); m.SetValueOrMissing(hlastr, pid, BooleanStatistics.GetInstance(match)); //m.SetValueOrMissing(hlastr, pid, !match.HasValue ? "?" : match.Value ? "1" : "0"); } } m.WriteDense(this.Out.CreateTextOrUseConsole()); string baseName = Path.GetFileNameWithoutExtension(this.Out.ToString()); string probabilityFile = this.Out.ToString() == "-" ? "HaplotypeCompletionProbs.txt" : this.Out.ToString().Replace(baseName, baseName + "_haplotypeProbs"); pidToMultinomial.WriteDelimitedFile(probabilityFile); }
public void ValidateStatisticsListAsBooleanStatistics() { StatisticsList statList = new StatisticsList(); GaussianStatistics gaussStat = GaussianStatistics.GetInstance(2.33, 1.256, 7); DiscreteStatistics discreteStat = DiscreteStatistics.GetInstance(1); MissingStatistics missingStat = MissingStatistics.GetInstance; statList.Add(gaussStat); statList.Add(discreteStat); statList.Add(missingStat); BooleanStatistics dStat = statList.AsBooleanStatistics(); Assert.AreEqual(statList, dStat.AsStatisticsList()); }
public void ValidateStatisticsListRemoveRangeAndRemove() { StatisticsList statList = new StatisticsList(); GaussianStatistics gaussStat = GaussianStatistics.GetInstance(2.33, 1.256, 7); DiscreteStatistics discreteStat = DiscreteStatistics.GetInstance(1); ContinuousStatistics contStat = ContinuousStatistics.GetInstance(2.333); MissingStatistics missingStat = MissingStatistics.GetInstance; BooleanStatistics boolStat = BooleanStatistics.GetInstance(true); statList.Add(gaussStat); statList.Add(discreteStat); statList.Add(contStat); statList.Add(missingStat); statList.Add(boolStat); Assert.AreEqual(5, statList.Count); statList.RemoveRange(3, 2); Assert.AreEqual(3, statList.Count); statList.Remove(2); Assert.AreEqual(2, statList.Count); }
public void ValidateStatisticsListTryParse() { StatisticsList statList = new StatisticsList(); GaussianStatistics gaussStat = GaussianStatistics.GetInstance(2.33, 1.256, 7); DiscreteStatistics discreteStat = DiscreteStatistics.GetInstance(1); ContinuousStatistics contStat = ContinuousStatistics.GetInstance(2.333); MissingStatistics missingStat = MissingStatistics.GetInstance; BooleanStatistics boolStat = BooleanStatistics.GetInstance(true); statList.Add(gaussStat); statList.Add(discreteStat); statList.Add(contStat); statList.Add(missingStat); statList.Add(boolStat); Assert.AreEqual(5, statList.Count); SufficientStatistics result = null; StatisticsList statListSubSequence = (StatisticsList)statList.SubSequence(0, 2); Assert.IsTrue(StatisticsList.TryParse(statList.ToString(), out result)); Assert.IsTrue(StatisticsList.TryParse(statListSubSequence.ToString(), out result)); }
public void ValidateBooleanStatisticsEquals() { SufficientStatistics suffStat = BooleanStatistics.GetInstance(false); BooleanStatistics boolStat = BooleanStatistics.GetMissingInstance; Assert.IsFalse(boolStat.Equals(suffStat)); suffStat = (SufficientStatistics)boolStat; Assert.IsTrue(boolStat.Equals(suffStat)); boolStat = BooleanStatistics.GetInstance(true); suffStat = (SufficientStatistics)boolStat; Assert.IsTrue(boolStat.Equals(suffStat)); boolStat = BooleanStatistics.GetInstance(false); suffStat = (SufficientStatistics)boolStat; Assert.IsTrue(boolStat.Equals(suffStat)); object suffStatObj = (object)boolStat; Assert.IsTrue(boolStat.Equals(suffStat)); }
public void ValidateBooleanStatisticsExplicitDiscrete() { DiscreteStatistics discreteStat2 = DiscreteStatistics.GetInstance(5); BooleanStatistics boolStat2 = (BooleanStatistics)discreteStat2; Assert.AreEqual(5, (int)(DiscreteStatistics)boolStat2); DiscreteStatistics discreteStat = DiscreteStatistics.GetMissingInstance; BooleanStatistics boolStat1 = (BooleanStatistics)discreteStat; Assert.AreEqual(discreteStat, (DiscreteStatistics)boolStat1); DiscreteStatistics discreteStat3 = null; try { BooleanStatistics boolStat3 = (BooleanStatistics)discreteStat3; Assert.Fail(); } catch (ArgumentException) { Console.WriteLine("BooleanStatistics : Successfully validated the BooleanStatistics(Discrete)"); } }
public void ValidateBooleanStatisticsGetHashCode() { BooleanStatistics boolStat1 = BooleanStatistics.GetInstance(true); Assert.AreEqual(372029325, boolStat1.GetHashCode()); }
public void ValidateBooleanStatisticsGetMissingInstance() { BooleanStatistics boolStat = BooleanStatistics.GetMissingInstance; Assert.IsTrue(boolStat.IsMissing()); }