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);
        }
예제 #2
0
 public void TestIsModification()
 {
     Assert.IsTrue(ModificationUtils.IsModification('*'));
     Assert.IsTrue(ModificationUtils.IsModification('p'));
     Assert.IsFalse(ModificationUtils.IsModification('A'));
 }