public void TestConvertNumericToMultiNumeric()
        {
            var mBase = PerseusFactory.CreateMatrixData();

            mBase.AddStringColumn("Id", "", new [] { "n1;n2", "n3" });
            var mdata = PerseusFactory.CreateMatrixData(new[, ] {
                { 0.0 }, { 1.0 }, { 2.0 }
            });

            mdata.AddStringColumn("Id", "", new [] { "n1", "n2", "n3" });
            var match     = new MatchingRowsByName();
            var errString = string.Empty;
            var param     = match.GetParameters(new [] { mBase, mdata }, ref errString);

            param.GetParam <int[]>("Copy main columns").Value        = new[] { 0 };
            param.GetParam <int>("Combine copied main values").Value = 5;
            IMatrixData[]   supplTables = null;
            IDocumentData[] documents   = null;
            var             result      = match.ProcessData(new[] { mBase, mdata }, param, ref supplTables, ref documents,
                                                            BaseTest.CreateProcessInfo());

            Assert.AreEqual(result.MultiNumericColumnCount, 1);
            CollectionAssert.AreEqual(new [] { 0.0, 1.0 }, result.MultiNumericColumns[0][0]);
            CollectionAssert.AreEqual(new [] { 2.0 }, result.MultiNumericColumns[0][1]);
        }
Exemplo n.º 2
0
        public void TestSmallExample()
        {
            var m1 = PerseusFactory.CreateMatrixData(new double[, ] {
                { 0, 1 }, { 2, 3 }
            }, new List <string> {
                "col 1", "col 2"
            });
            var m2 = PerseusFactory.CreateMatrixData(new double[, ] {
                { 4, 5 }, { 6, 7 }
            }, new List <string> {
                "col 2", "col 3"
            });

            var m          = new[] { m1, m2 };
            var matching   = new MatchingColumnsByName();
            var errString  = string.Empty;
            var parameters = matching.GetParameters(m, ref errString);

            Assert.IsTrue(string.IsNullOrEmpty(errString));

            IMatrixData[]   supplTables = null;
            IDocumentData[] documents   = null;
            var             pInfo       = BaseTest.CreateProcessInfo();
            var             result      = matching.ProcessData(m, parameters, ref supplTables, ref documents, pInfo);

            Assert.IsTrue(string.IsNullOrEmpty(pInfo.ErrString));

            Assert.AreEqual(4, result.RowCount);
            CollectionAssert.AreEqual(new [] { "col 2", "col 1", "col 3" }, result.ColumnNames);
            CollectionAssert.AreEqual(new [] { 1, 3, 4, 6.0 }, result.Values.GetColumn(0).ToArray());
            CollectionAssert.AreEqual(new [] { 0, 2, double.NaN, double.NaN }, result.Values.GetColumn(1).ToArray());
            CollectionAssert.AreEqual(new [] { double.NaN, double.NaN, 5, 7 }, result.Values.GetColumn(2).ToArray());
        }
Exemplo n.º 3
0
        public void TestSmallExampleWithAnnotationColumns()
        {
            var m1 = PerseusFactory.CreateMatrixData(new double[, ] {
                { 0, 1 }, { 2, 3 }
            }, new List <string> {
                "col 1", "col 2"
            });

            m1.AddStringColumn("m1", "", new[] { "a", "b" });
            m1.AddStringColumn("common string column", "", new[] { "c", "d" });
            m1.AddNumericColumn("m1", "", new[] { 0, 1.0 });
            m1.AddNumericColumn("common numeric column", "", new[] { 2, 3.0 });
            m1.AddCategoryColumn("common category column", "", new [] { new [] { "cat1" }, new [] { "cat2", "cat3" } });
            var m2 = PerseusFactory.CreateMatrixData(new double[, ] {
                { 4, 5 }, { 6, 7 }
            }, new List <string> {
                "col 2", "col 3"
            });

            m2.AddStringColumn("common string column", "", new [] { "e", "f" });
            m2.AddStringColumn("m2", "", new [] { "g", "h" });
            m2.AddNumericColumn("common numeric column", "", new[] { 4, 5.0 });
            m2.AddCategoryColumn("common category column", "", new [] { new [] { "cat2" }, new [] { "cat1", "cat4" } });

            var m          = new[] { m1, m2 };
            var matching   = new MatchingColumnsByName();
            var errString  = string.Empty;
            var parameters = matching.GetParameters(m, ref errString);

            Assert.IsTrue(string.IsNullOrEmpty(errString));

            IMatrixData[]   supplTables = null;
            IDocumentData[] documents   = null;
            var             pInfo       = BaseTest.CreateProcessInfo();
            var             result      = matching.ProcessData(m, parameters, ref supplTables, ref documents, pInfo);

            Assert.IsTrue(string.IsNullOrEmpty(pInfo.ErrString));

            CollectionAssert.AreEqual(new [] { "common string column", "m1", "m2" }, result.StringColumnNames);
            CollectionAssert.AreEqual(new [] { "c", "d", "e", "f" }, result.StringColumns[0]);
            CollectionAssert.AreEqual(new [] { "a", "b", "", "" }, result.StringColumns[1]);
            CollectionAssert.AreEqual(new [] { "", "", "g", "h" }, result.StringColumns[2]);

            CollectionAssert.AreEqual(new [] { "common numeric column", "m1" }, result.NumericColumnNames);
            CollectionAssert.AreEqual(new [] { 2, 3, 4, 5.0 }, result.NumericColumns[0]);
            CollectionAssert.AreEqual(new [] { 0, 1, double.NaN, double.NaN }, result.NumericColumns[1]);

            CollectionAssert.AreEqual(new [] { "common category column" }, result.CategoryColumnNames);
            var actual   = result.GetCategoryColumnAt(0);
            var expected = new[] { new[] { "cat1" }, new[] { "cat2", "cat3" }, new[] { "cat2" }, new[] { "cat1", "cat4" } };

            Assert.AreEqual(expected.Length, actual.Length);
            for (int i = 0; i < actual.Length; i++)
            {
                CollectionAssert.AreEqual(expected[i], actual[i]);
            }
        }
Exemplo n.º 4
0
        public void TestReadEmptyMatrixFromFile()
        {
            var data = PerseusFactory.CreateDataWithAnnotationColumns();

            PerseusUtils.ReadDataWithAnnotationColumns(data, BaseTest.CreateProcessInfo(), () =>
            {
                var memstream = new MemoryStream(Encoding.UTF8.GetBytes("Node\n#!{Type}T\n"));
                return(new StreamReader(memstream));
            }, "test", '\t');
            Assert.AreEqual(0, data.RowCount);
        }
        public void TestInitialize()
        {
            double[,] peptidesValues = { { 9.0 } };
            peptides = PerseusFactory.CreateMatrixData(peptidesValues, new List <string> {
                "pep_MS/MS Count"
            });
            peptides.AddNumericColumn("pep_Intensity", "", new [] { 0.0 });
            peptides.AddStringColumn("pep_id", "", new [] { "35" });
            peptides.AddStringColumn("pep_Protein group IDs", "", new [] { "13;21" });
            peptides.Quality.Init(1, 1);
            peptides.Quality.Set(0, 0, 1);
            ExpandMultiNumeric multiNum    = new ExpandMultiNumeric();
            string             errorString = string.Empty;
            Parameters         parameters2 = multiNum.GetParameters(peptides, ref errorString);

            parameters2.GetParam <int[]>("Text columns").Value = new[] { 1 };
            IMatrixData[]   suppl = null;
            IDocumentData[] docs  = null;
            multiNum.ProcessData(peptides, parameters2, ref suppl, ref docs, BaseTest.CreateProcessInfo());

            double[,] proteinMainValues =
            {
                { 166250000.0 },
                {   8346000.0 }
            };
            proteinMain = PerseusFactory.CreateMatrixData(proteinMainValues, new List <string> {
                "prot_LFQ intensity"
            });
            proteinMain.Name = "protein main";
            proteinMain.AddStringColumn("prot_id", "", new [] { "13", "21" });
            proteinMain.AddStringColumn("prot_gene name", "", new [] { "geneA", "geneB" });
            double[,] expandValues =
            {
                { 9.0 },
                { 9.0 }
            };
            expand = PerseusFactory.CreateMatrixData(expandValues, new List <string> {
                "pep_MS/MS Count"
            });
            expand.Name = "expand";
            expand.AddNumericColumn("pep_Intensity", "", new [] { 0.0, 0.0 });
            expand.AddStringColumn("pep_id", "", new [] { "35", "35" });
            expand.AddStringColumn("pep_Protein group IDs", "", new [] { "13", "21" });

            matching = new MatchingRowsByName();
            string err = string.Empty;

            parameters = matching.GetParameters(new[] { expand, proteinMain }, ref err);
        }
Exemplo n.º 6
0
        public void TestSmallExample()
        {
            double[,] values = new[, ]
            {
                { 0.0, 1.0, 0, 5 },
                { 2.0, 3.0, 0, 5 }
            };
            IMatrixData mdata = PerseusFactory.CreateMatrixData(values, new List <string> {
                "Col___1", "Col___2", "Col___3", "No expand"
            });

            mdata.ColumnDescriptions = new List <string> {
                "Description Col", "Col", "Col", "Description No expand"
            };
            double[][] multiNum = new[]
            {
                new[] { 0.0, 1.0 },
                new[] { 2.0 }
            };
            mdata.AddMultiNumericColumn("MultiNum", "", multiNum);
            string[] stringCol = new[] { "row1", "row2" };
            mdata.AddStringColumn("String", "", stringCol);
            ExpandSiteTable expand = new ExpandSiteTable();

            IMatrixData[]   supplData = null;
            IDocumentData[] docs      = null;
            expand.ProcessData(mdata, new Parameters(), ref supplData, ref docs, BaseTest.CreateProcessInfo());
            Assert.AreEqual(2, mdata.ColumnCount);
            CollectionAssert.AreEqual(new [] { "No expand", "Col" }, mdata.ColumnNames.ToArray());
            Assert.AreEqual(2, mdata.ColumnDescriptions.Count);
            CollectionAssert.AreEqual(new [] { "Description No expand", "Description Col" }, mdata.ColumnDescriptions.ToArray());
            Assert.AreEqual(6, mdata.RowCount);
            Assert.AreEqual(2, mdata.StringColumnCount);
            CollectionAssert.AreEqual(new [] { "String", "Unique identifier" }, mdata.StringColumnNames);
            CollectionAssert.AreEqual(stringCol.Concat(stringCol).Concat(stringCol).ToArray(), mdata.StringColumns[0]);
            Assert.AreEqual(1, mdata.MultiNumericColumnCount);
            CollectionAssert.AreEqual(multiNum.Concat(multiNum).Concat(multiNum).ToArray(), mdata.MultiNumericColumns[0]);
        }
        public void TestSmallExample()
        {
            SingleChoiceParam matchColParam1 = (SingleChoiceParam)parameters.GetParam <int>("Matching column in table 1");

            CollectionAssert.AreEqual(new [] { "pep_id", "pep_Protein group IDs", "pep_Intensity" }, matchColParam1.Values.ToArray());
            matchColParam1.Value = 1;
            Assert.AreEqual("pep_Protein group IDs", matchColParam1.StringValue);
            IMatrixData[]   supplTables = null;
            IDocumentData[] documents   = null;
            IMatrixData     matched     = matching.ProcessData(new[] { expand, proteinMain }, parameters, ref supplTables, ref documents, BaseTest.CreateProcessInfo());

            CollectionAssert.AreEqual(new [] { "pep_MS/MS Count", "pep_id", "pep_Protein group IDs", "pep_Intensity" },
                                      matched.ColumnNames.Concat(matched.StringColumnNames).Concat(matched.NumericColumnNames).ToArray());
            Assert.AreEqual(2, matched.RowCount);
            Assert.AreEqual(1, matched.ColumnCount);
            Assert.AreEqual(1, matched.NumericColumnCount);
        }
        public void TestMatchingCaseInSensitive()
        {
            var mBase = PerseusFactory.CreateMatrixData();

            mBase.AddStringColumn("Name", "", new [] { "A", "a", "B", "b", "C", "c" });
            Assert.IsTrue(mBase.IsConsistent(out var mBaseConsistent), mBaseConsistent);

            var mdata = PerseusFactory.CreateMatrixData();

            mdata.AddStringColumn("Name", "", new [] { "a", "B" });
            Assert.IsTrue(mdata.IsConsistent(out var mdataConsistent), mdataConsistent);
            var match     = new MatchingRowsByName();
            var errString = string.Empty;
            var param     = match.GetParameters(new [] { mBase, mdata }, ref errString);

            param.GetParam <bool>("Add indicator").Value = true;
            param.GetParam <bool>("Ignore case").Value   = true;
            IMatrixData[]   supplTables = null;
            IDocumentData[] documents   = null;
            var             result      = match.ProcessData(new[] { mBase, mdata }, param, ref supplTables, ref documents, BaseTest.CreateProcessInfo());
            var             indicator   = result.GetCategoryColumnAt(0).Select(cats => cats.SingleOrDefault() ?? "").ToArray();

            CollectionAssert.AreEqual(new [] { "+", "+", "+", "+", "", "" }, indicator);
        }
        public void TestConvertNumericToMultiNumeric()
        {
            var mBase = PerseusFactory.CreateMatrixData();

            mBase.AddStringColumn("Id", "", new [] { "n1;n2", "n3", "n5" });
            Assert.IsTrue(mBase.IsConsistent(out var mBaseConsistent), mBaseConsistent);
            var mdata = PerseusFactory.CreateMatrixData(new[, ] {
                { 0.0 }, { 1.0 }, { 2.0 }, { 3.0 }
            });

            mdata.AddStringColumn("Id", "", new [] { "n1", "n2", "n3", "n4" });
            Assert.IsTrue(mdata.IsConsistent(out var mdataConsistent), mdataConsistent);
            var match     = new MatchingRowsByName();
            var errString = string.Empty;
            var param     = match.GetParameters(new [] { mBase, mdata }, ref errString);

            param.GetParam <int[]>("Copy main columns").Value        = new[] { 0 };
            param.GetParam <int>("Combine copied main values").Value = 5;
            param.GetParam <int>("Join style").Value                = 1;
            param.GetParam <bool>("Add indicator").Value            = true;
            param.GetParam <bool>("Add original row numbers").Value = true;
            IMatrixData[]   supplTables = null;
            IDocumentData[] documents   = null;
            var             result      = match.ProcessData(new[] { mBase, mdata }, param, ref supplTables, ref documents, BaseTest.CreateProcessInfo());
            var             indicator   = result.GetCategoryColumnAt(0).Select(cats => cats.SingleOrDefault() ?? "");

            CollectionAssert.AreEqual(new [] { "+", "+", "", "+" }, indicator);
            CollectionAssert.AreEqual(new [] { "n1;n2", "n3", "n5", "n4" }, result.GetStringColumn("Id"));
            CollectionAssert.AreEqual(new [] { "Original row numbers", "Column 1" }, result.MultiNumericColumnNames);
            CollectionAssert.AreEqual(new [] { 0.0, 1.0 }, result.MultiNumericColumns[0][0]);
            CollectionAssert.AreEqual(new [] { 2.0 }, result.MultiNumericColumns[0][1]);
            CollectionAssert.AreEqual(new double[0], result.MultiNumericColumns[0][2]);
            CollectionAssert.AreEqual(new [] { 3.0 }, result.MultiNumericColumns[0][3]);
            CollectionAssert.AreEqual(new [] { 0.0, 1.0 }, result.MultiNumericColumns[1][0]);
            CollectionAssert.AreEqual(new [] { 2.0 }, result.MultiNumericColumns[1][1]);
            CollectionAssert.AreEqual(new double[0], result.MultiNumericColumns[1][2]);
            CollectionAssert.AreEqual(new [] { 3.0 }, result.MultiNumericColumns[1][3]);
        }