示例#1
0
        public void Test_modification2_hash_set()
        {
            ModificationMotif.TryGetMotif("K", out ModificationMotif motif);
            ModificationWithLocation m1 = new ModificationWithLocation(null, new Tuple <string, string>("item1", "item2"), motif, ModificationSites.K, new Dictionary <string, IList <string> >(), "modificationType");
            ModificationWithLocation m2 = new ModificationWithLocation(null, new Tuple <string, string>("item1", "item2"), motif, ModificationSites.K, new Dictionary <string, IList <string> >(), "modificationType");

            m1.linksToOtherDbs.Add("key", new List <string> {
                "value"
            });
            m2.linksToOtherDbs.Add("key", new List <string> {
                "value"
            });
            HashSet <Modification> mods = new HashSet <Modification>(new Modification[] { m1, m2 });

            Assert.True(m1.Equals(m2));
            Assert.AreEqual(1, mods.Count);
        }
示例#2
0
        public void Test_modification2_hash_set()
        {
            ModificationMotif.TryGetMotif("K", out ModificationMotif motif);
            ModificationWithLocation m1 = new ModificationWithLocation("id1", "modificationType", motif, TerminusLocalization.Any, new Dictionary <string, IList <string> >());
            ModificationWithLocation m2 = new ModificationWithLocation("id1", "modificationType", motif, TerminusLocalization.Any);

            m1.linksToOtherDbs.Add("key", new List <string> {
                "value"
            });
            m2.linksToOtherDbs.Add("key", new List <string> {
                "value"
            });
            HashSet <Modification> mods = new HashSet <Modification>(new Modification[] { m1, m2 });

            Assert.True(m1.Equals(m2));
            Assert.AreEqual(1, mods.Count);
        }
示例#3
0
        public void TestFullProteinReadWrite()
        {
            Modification mod = new Modification("mod1", "modType1");

            ModificationMotif.TryGetMotif("E", out ModificationMotif motif);
            ModificationWithLocation mod2 = new ModificationWithLocation("mod2", "modType1", motif, TerminusLocalization.Any, null);

            ModificationMotif.TryGetMotif("N", out ModificationMotif motif3);
            ModificationWithMass mod3 = new ModificationWithMass("mod3", "modType1", motif3, TerminusLocalization.Any, 10, null, null, null);

            List <Tuple <string, string> > gene_names = new List <Tuple <string, string> > {
                new Tuple <string, string>("a", "b")
            };
            IDictionary <int, List <Modification> > oneBasedModifications = new Dictionary <int, List <Modification> >
            {
                { 3, new List <Modification> {
                      mod
                  } },
                { 4, new List <Modification> {
                      mod2
                  } },
                { 5, new List <Modification> {
                      mod3
                  } }
            };
            List <ProteolysisProduct> proteolysisProducts = new List <ProteolysisProduct> {
                new ProteolysisProduct(1, 2, "propeptide")
            };

            string name = "testName";

            string full_name = "testFullName";

            List <DatabaseReference> databaseReferences = new List <DatabaseReference> {
                new DatabaseReference("type1", "id1", new List <Tuple <string, string> > {
                    new Tuple <string, string>("e1", "e2")
                })
            };

            List <SequenceVariation> sequenceVariations = new List <SequenceVariation> {
                new SequenceVariation(3, "Q", "N", "replace Q by N"),
                new SequenceVariation(3, 4, "QE", "NN", "replace QE by NN")
            };

            List <DisulfideBond> disulfideBonds = new List <DisulfideBond> {
                new DisulfideBond(1, "ds1"), new DisulfideBond(2, 3, "ds2")
            };

            Protein p1 = new Protein("SEQENCE",
                                     "a1",
                                     gene_names: gene_names,
                                     oneBasedModifications: oneBasedModifications,
                                     proteolysisProducts: proteolysisProducts,
                                     name: name,
                                     full_name: full_name,
                                     isDecoy: false,
                                     isContaminant: true,
                                     databaseReferences: databaseReferences,
                                     sequenceVariations: sequenceVariations,
                                     disulfideBonds: disulfideBonds,
                                     databaseFilePath: Path.Combine(TestContext.CurrentContext.TestDirectory, @"bnueiwhf.xml"));

            // Generate data for files
            ProteinDbWriter.WriteXmlDatabase(new Dictionary <string, HashSet <Tuple <int, Modification> > >(), new List <Protein> {
                p1
            }, Path.Combine(TestContext.CurrentContext.TestDirectory, @"bnueiwhf.xml"));

            IEnumerable <string>       modTypesToExclude     = new List <string>();
            IEnumerable <Modification> allKnownModifications = new List <Modification>();
            List <Protein>             ok = ProteinDbLoader.LoadProteinXML(Path.Combine(TestContext.CurrentContext.TestDirectory, @"bnueiwhf.xml"), true, DecoyType.None, allKnownModifications, true, modTypesToExclude, out Dictionary <string, Modification> unknownModifications);

            Assert.AreEqual(p1.Accession, ok[0].Accession);
            Assert.AreEqual(p1.BaseSequence, ok[0].BaseSequence);
            Assert.AreEqual(p1.DatabaseReferences.First().Id, ok[0].DatabaseReferences.First().Id);
            Assert.AreEqual(p1.DatabaseReferences.First().Properties.First().Item1, ok[0].DatabaseReferences.First().Properties.First().Item1);
            Assert.AreEqual(p1.DatabaseReferences.First().Properties.First().Item2, ok[0].DatabaseReferences.First().Properties.First().Item2);
            Assert.AreEqual(p1.DatabaseReferences.First().Type, ok[0].DatabaseReferences.First().Type);

            Assert.AreEqual(p1.DisulfideBonds.First().Description, ok[0].DisulfideBonds.First().Description);
            Assert.AreEqual(p1.DisulfideBonds.First().OneBasedBeginPosition, ok[0].DisulfideBonds.First().OneBasedBeginPosition);
            Assert.AreEqual(p1.DisulfideBonds.First().OneBasedEndPosition, ok[0].DisulfideBonds.First().OneBasedEndPosition);
            Assert.AreEqual(p1.DisulfideBonds.Last().Description, ok[0].DisulfideBonds.Last().Description);
            Assert.AreEqual(p1.DisulfideBonds.Last().OneBasedBeginPosition, ok[0].DisulfideBonds.Last().OneBasedBeginPosition);
            Assert.AreEqual(p1.DisulfideBonds.Last().OneBasedEndPosition, ok[0].DisulfideBonds.Last().OneBasedEndPosition);

            Assert.AreEqual(p1.FullDescription, ok[0].FullDescription);
            Assert.AreEqual(p1.FullName, ok[0].FullName);
            Assert.AreEqual(p1.GeneNames, ok[0].GeneNames);
            Assert.AreEqual(p1.IsContaminant, ok[0].IsContaminant);
            Assert.AreEqual(p1.IsDecoy, ok[0].IsDecoy);
            Assert.AreEqual(p1.Length, ok[0].Length);
            Assert.AreEqual(p1.Name, ok[0].Name);
            Assert.AreEqual(p1.DatabaseFilePath, ok[0].DatabaseFilePath);
            Assert.AreEqual(p1.OneBasedPossibleLocalizedModifications[3][0], ok[0].OneBasedPossibleLocalizedModifications[3][0]);
            Assert.AreEqual(p1.OneBasedPossibleLocalizedModifications[3][0].id, ok[0].OneBasedPossibleLocalizedModifications[3][0].id);
            Assert.AreEqual(p1.OneBasedPossibleLocalizedModifications[3][0].modificationType, ok[0].OneBasedPossibleLocalizedModifications[3][0].modificationType);

            Assert.AreEqual(p1.OneBasedPossibleLocalizedModifications[4][0].id, ok[0].OneBasedPossibleLocalizedModifications[4][0].id);
            Assert.AreEqual(p1.OneBasedPossibleLocalizedModifications[4][0].modificationType, ok[0].OneBasedPossibleLocalizedModifications[4][0].modificationType);
            Assert.AreEqual((p1.OneBasedPossibleLocalizedModifications[4][0] as ModificationWithLocation).linksToOtherDbs, (ok[0].OneBasedPossibleLocalizedModifications[4][0] as ModificationWithLocation).linksToOtherDbs);
            Assert.AreEqual((p1.OneBasedPossibleLocalizedModifications[4][0] as ModificationWithLocation).motif, (ok[0].OneBasedPossibleLocalizedModifications[4][0] as ModificationWithLocation).motif);
            Assert.AreEqual((p1.OneBasedPossibleLocalizedModifications[4][0] as ModificationWithLocation).terminusLocalization, (ok[0].OneBasedPossibleLocalizedModifications[4][0] as ModificationWithLocation).terminusLocalization);

            Assert.AreEqual((p1.OneBasedPossibleLocalizedModifications[5][0] as ModificationWithMass).diagnosticIons, (ok[0].OneBasedPossibleLocalizedModifications[5][0] as ModificationWithMass).diagnosticIons);
            Assert.AreEqual((p1.OneBasedPossibleLocalizedModifications[5][0] as ModificationWithMass).neutralLosses, (ok[0].OneBasedPossibleLocalizedModifications[5][0] as ModificationWithMass).neutralLosses);
            Assert.AreEqual((p1.OneBasedPossibleLocalizedModifications[5][0] as ModificationWithMass).monoisotopicMass, (ok[0].OneBasedPossibleLocalizedModifications[5][0] as ModificationWithMass).monoisotopicMass);

            Assert.AreEqual(p1.ProteolysisProducts.First().OneBasedBeginPosition, ok[0].ProteolysisProducts.First().OneBasedBeginPosition);
            Assert.AreEqual(p1.ProteolysisProducts.First().OneBasedEndPosition, ok[0].ProteolysisProducts.First().OneBasedEndPosition);
            Assert.AreEqual(p1.ProteolysisProducts.First().Type, ok[0].ProteolysisProducts.First().Type);

            Assert.AreEqual(p1.SequenceVariations.First().Description, ok[0].SequenceVariations.First().Description);
            Assert.AreEqual(p1.SequenceVariations.First().OneBasedBeginPosition, ok[0].SequenceVariations.First().OneBasedBeginPosition);
            Assert.AreEqual(p1.SequenceVariations.First().OneBasedEndPosition, ok[0].SequenceVariations.First().OneBasedEndPosition);
            Assert.AreEqual(p1.SequenceVariations.First().OriginalSequence, ok[0].SequenceVariations.First().OriginalSequence);
            Assert.AreEqual(p1.SequenceVariations.First().VariantSequence, ok[0].SequenceVariations.First().VariantSequence);
            Assert.AreEqual(p1.SequenceVariations.Last().Description, ok[0].SequenceVariations.Last().Description);
            Assert.AreEqual(p1.SequenceVariations.Last().OneBasedBeginPosition, ok[0].SequenceVariations.Last().OneBasedBeginPosition);
            Assert.AreEqual(p1.SequenceVariations.Last().OneBasedEndPosition, ok[0].SequenceVariations.Last().OneBasedEndPosition);
            Assert.AreEqual(p1.SequenceVariations.Last().OriginalSequence, ok[0].SequenceVariations.Last().OriginalSequence);
            Assert.AreEqual(p1.SequenceVariations.Last().VariantSequence, ok[0].SequenceVariations.Last().VariantSequence);
        }