Пример #1
0
        public static int[] GetSequenceCoverage(this AminoAcidPolymer baseSequence, IEnumerable <AminoAcidPolymer> allPolymers, bool useLeucineSequence)
        {
            int[] bits = new int[baseSequence.Length];

            string masterSequence = useLeucineSequence ? baseSequence.BaseLeucineSequence : baseSequence.BaseSequence;

            foreach (AminoAcidPolymer polymer in allPolymers)
            {
                string seq = useLeucineSequence ? polymer.BaseLeucineSequence : polymer.BaseSequence;

                int startIndex = 0;
                while (true)
                {
                    int index = masterSequence.IndexOf(seq, startIndex, StringComparison.Ordinal);

                    if (index < 0)
                    {
                        break;
                    }

                    for (int aa = index; aa < index + polymer.Length; aa++)
                    {
                        bits[aa]++;
                    }

                    startIndex = index + 1;
                }
            }
            return(bits);
        }
Пример #2
0
 /// <summary>
 /// Create a new peptide based on another amino acid polymer
 /// </summary>
 /// <param name="aminoAcidPolymer">The other amino acid polymer to copy</param>
 /// <param name="includeModifications">Whether to copy the modifications to the new peptide</param>
 public Peptide(AminoAcidPolymer aminoAcidPolymer, bool includeModifications)
     : base(aminoAcidPolymer, includeModifications)
 {
     Parent       = aminoAcidPolymer;
     StartResidue = 0;
     EndResidue   = Length - 1;
 }
Пример #3
0
 public Fragment(FragmentTypes type, int number, double monoisotopicMass, AminoAcidPolymer parent)
 {
     FragmentType     = type;
     Number           = number;
     Parent           = parent;
     MonoisotopicMass = monoisotopicMass;
 }
Пример #4
0
 public Peptide(AminoAcidPolymer aminoAcidPolymer, int firstResidue, int length, bool includeModifications)
     : base(aminoAcidPolymer, firstResidue, length, includeModifications)
 {
     Parent          = aminoAcidPolymer;
     StartResidue    = firstResidue;
     EndResidue      = firstResidue + length - 1;
     PreviousResidue = aminoAcidPolymer.GetResidue(StartResidue - 1);
     NextResidue     = aminoAcidPolymer.GetResidue(EndResidue + 1);
 }
Пример #5
0
 public ChemicalFormulaFragment(FragmentTypes type, int number, ChemicalFormula formula, AminoAcidPolymer parent)
     : base(type, number, formula.MonoisotopicMass, parent)
 {
     ThisChemicalFormula = ChemicalFormula.ParseFormula(formula.Formula);
 }
Пример #6
0
 public Peptide(AminoAcidPolymer aminoAcidPolymer, int firstResidue, int length)
     : this(aminoAcidPolymer, firstResidue, length, true)
 {
 }
Пример #7
0
 public Peptide(AminoAcidPolymer aminoAcidPolymer)
     : this(aminoAcidPolymer, true)
 {
 }
Пример #8
0
 public static int[] GetSequenceCoverage(this AminoAcidPolymer baseSequence, IEnumerable <AminoAcidPolymer> sequences)
 {
     return(GetSequenceCoverage(baseSequence, sequences, true));
 }
Пример #9
0
 public static double GetSequenceCoverageFraction(this AminoAcidPolymer baseSequence, IEnumerable <AminoAcidPolymer> sequences, bool useLeucineSequence)
 {
     int[] counts = baseSequence.GetSequenceCoverage(sequences, useLeucineSequence);
     return(((double)counts.Count(x => x > 0)) / baseSequence.Length);
 }
Пример #10
0
 public static double GetSequenceCoverageFraction(this AminoAcidPolymer baseSequence, IEnumerable <AminoAcidPolymer> sequences)
 {
     return(GetSequenceCoverageFraction(baseSequence, sequences, true));
 }