Пример #1
0
        public void ValidateBooleanStatisticsAsDiscreteStatistics()
        {
            BooleanStatistics  boolStat1 = BooleanStatistics.GetInstance(true);
            DiscreteStatistics dStat     = boolStat1.AsDiscreteStatistics();

            Assert.AreEqual(boolStat1, dStat.AsBooleanStatistics());
        }
Пример #2
0
        public void ValidateGaussianStatisticsAsBooleanStatistics()
        {
            GaussianStatistics boolStat1 = GaussianStatistics.GetInstance(0, 2, 2);
            BooleanStatistics  gStat     = boolStat1.AsBooleanStatistics();

            Assert.AreEqual(0, gStat.AsGaussianStatistics().Mean);
        }
Пример #3
0
        public void ValidateBooleanStatisticsAsContinuousStatistics()
        {
            BooleanStatistics    boolStat1 = BooleanStatistics.GetInstance(true);
            ContinuousStatistics cStat     = boolStat1.AsContinuousStatistics();

            Assert.AreEqual(1, cStat.Value);
        }
Пример #4
0
        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)");
            }
        }
Пример #5
0
        public void ValidateBooleanStatisticsAsStatisticsList()
        {
            BooleanStatistics boolStat1 = BooleanStatistics.GetInstance(true);
            StatisticsList    sList     = boolStat1.AsStatisticsList();

            Assert.AreEqual(1, sList.Count);
        }
Пример #6
0
        public void ValidateBooleanStatisticsAsGaussianStatistics()
        {
            BooleanStatistics  boolStat1 = BooleanStatistics.GetInstance(true);
            GaussianStatistics gStat     = boolStat1.AsGaussianStatistics();

            Assert.AreEqual(boolStat1, gStat.AsBooleanStatistics());
        }
Пример #7
0
        public void ValidateBooleanStatisticsTryParse()
        {
            SufficientStatistics result   = null;
            BooleanStatistics    boolStat = BooleanStatistics.GetInstance(true);

            Assert.IsTrue(BooleanStatistics.TryParse("true", out result));
            Assert.IsTrue(boolStat.Equals(result));
        }
Пример #8
0
        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());
        }
Пример #10
0
        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());
        }
Пример #11
0
        public void ValidateBooleanStatisticsExplicitMissingStatistics()
        {
            MissingStatistics missStat  = MissingStatistics.GetInstance;
            BooleanStatistics boolStat2 = (BooleanStatistics)missStat;

            Assert.IsTrue(boolStat2.IsMissing());

            MissingStatistics missStat2 = null;

            Assert.IsNull((BooleanStatistics)missStat2);
        }
Пример #12
0
        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"]);
        }
Пример #13
0
        /// <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);
        }
Пример #14
0
        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);
        }
Пример #15
0
        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());
        }
Пример #16
0
        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);
        }
Пример #17
0
        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));
        }
Пример #18
0
        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));
        }
Пример #19
0
        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)");
            }
        }
Пример #20
0
        public void ValidateBooleanStatisticsGetHashCode()
        {
            BooleanStatistics boolStat1 = BooleanStatistics.GetInstance(true);

            Assert.AreEqual(372029325, boolStat1.GetHashCode());
        }
Пример #21
0
        public void ValidateBooleanStatisticsGetMissingInstance()
        {
            BooleanStatistics boolStat = BooleanStatistics.GetMissingInstance;

            Assert.IsTrue(boolStat.IsMissing());
        }