예제 #1
0
        public void TestGetModifiedAminiacids()
        {
            var actual = ModificationUtils.GetModifiedAminiacids("^SEETAY*FVWLGK@");

            Assert.AreEqual(2, actual.Count);
            Assert.AreEqual('Y', actual[5]);
            Assert.AreEqual('K', actual[11]);
        }
예제 #2
0
        public void TestParseProbability()
        {
            var probs = ModificationUtils.ParseProbability("S(1): 0.0; S(3): 0.4; S(4): 99.6");

            Assert.AreEqual(3, probs.Count);
            Assert.IsTrue(probs.All(l => l.Aminoacid.Equals("S")));
            Assert.AreEqual(4, probs[2].Site);
            Assert.AreEqual(99.6, probs[2].Probability);
        }
예제 #3
0
        public void TestFilterSiteProbability()
        {
            var actual = ModificationUtils.FilterSiteProbability("SQSS*PR", "S(1): 0.0; S(3): 0.4; S(4): 99.6");

            Assert.AreEqual("S(4): 99.6", actual);

            actual = ModificationUtils.FilterSiteProbability("^SQSS*PR", "S(1): 0.0; S(3): 0.4; S(4): 99.6");
            Assert.AreEqual("S(4): 99.6", actual);

            actual = ModificationUtils.FilterSiteProbability("^SRK@T*SSVSSSPST*PT*QVT*K@", "Too many isoforms");
            Assert.AreEqual("K(3): 0; T(4): 0; T(13): 0; T(15): 0; T(18): 0; K(19): 0", actual);
        }
예제 #4
0
        public void TestParseFromOutFileLine()
        {
            Dictionary <char, double> map =
                ModificationUtils.ParseFromOutFileLine(
                    "(STY* +79.96633) (M# +15.99492) (ST@ -18.00000) C=160.16523  Enzyme:Trypsin(KR) (1)");

            Assert.AreEqual(4, map.Count);
            Assert.AreEqual(79.96633, map['*'], 0.00001);
            Assert.AreEqual(15.99492, map['#'], 0.00001);
            Assert.AreEqual(-18.00000, map['@'], 0.00001);
            Assert.AreEqual(160.16523, map['C'], 0.00001);
        }
        public bool Validate(string sequence)
        {
            if (sequence == null || sequence.Length == 0)
            {
                return(false);
            }

            int specialAminoAcidCount  = 0;
            int modifiedAminoAcidCount = 0;
            int i = 0;

            while (i < sequence.Length)
            {
                if (aminoAcids.IndexOf(sequence[i]) < 0)
                {
                    i++;
                    continue;
                }

                specialAminoAcidCount++;
                i++;

                if (i < sequence.Length)
                {
                    if (ModificationUtils.IsModification(sequence[i]))
                    {
                        modifiedAminoAcidCount++;
                        i++;
                    }
                }
            }

            if (0 == specialAminoAcidCount)
            {
                return(false);
            }

            return(0 == modifiedAminoAcidCount || modifiedAminoAcidCount == specialAminoAcidCount);
        }
예제 #6
0
 public void TestIsModification()
 {
     Assert.IsTrue(ModificationUtils.IsModification('*'));
     Assert.IsTrue(ModificationUtils.IsModification('p'));
     Assert.IsFalse(ModificationUtils.IsModification('A'));
 }