FUNCTION FindDisulfides (Pept, Prot, dM, Prec)
CONST dMCys := −1.007825 – mass modification on Cys-residue
Input
Pept – anchor peptide sequence (contains at least 1 Cys)
Prot - protein sequence containing Pept
dM – mass difference to explain (k * dMCys: k=1,2,3,…)
Prec – mass precision in amu (0.005)
Output
Disulfides – array of disulfides explaining dM in Pept-Prot
context
Main Loop
cntC – count of Cys residues in prefix and suffix part of Pept
Pept1 – Prot predicted peptide linked to Pept via disulfide bond
Pept1M – expected mass of Pept1
IF (cntC MOD 2 = 0) THEN
FOR i := 1 TO cntC \ 2
IF Abs(dM − i * 2 * dMCys) < Prec THEN
[Pept & “d-bond” & i] -> Disulfides
END IF
END FOR
ELSE
CPos := Find 1st Cys in (Prot-Pept); −1 if not found
DO WHILE CPos > 0
Pept1M := dM – dMCys
i := 0
DO WHILE Pept1M > (dM – (cntC – 1) * dMCys - Prec)
GENERATE all sequences Seq around CPos such that
Abs(Pept1M – SeqM) < Prec
IF i > 0 THEN
[[Pept & “d-bond” & i] & “d-bond” & Seq] ->
Disulfides
ELSE
[Pept & “d-bond” & Seq] -> Disulfides
END IF
Pept1M := dM – 2 * dMCys
i := i −1
LOOP
CPos := Find next Cys in (Prot-Pept); −1 if not found
LOOP
END IF
RETURN Disulfides
|