1
$\begingroup$

I am using Biopython to examine protein sequences including the Kyte and Doolittle hydrophobicity. However, for short sequences, this returns an empty value; the value is not allowed if the window does not have 20 values.

from Bio.SeqUtils.ProtParam import ProteinAnalysis

window_length=20
edge=1
kyte = {'A': 1.8, 'R': -4.5, 'N': -3.5, 'D': -3.5, 'C': 2.5, 'Q': -3.5, 'E': -3.5, 'G': -0.4, 'H': -3.2, 'I': 4.5,
        'L': 3.8, 'K': -3.9, 'M': 1.9, 'F': 2.8, 'P': -1.6, 'S': -0.8, 'T': -0.7, 'W': -0.9, 'Y': -1.3, 'V': 4.2}

full_sequence_analysis = ProteinAnalysis("CYGTGAVYLLGLGIGGFS")
kyte_window = full_sequence_analysis.protein_scale(kyte, window_length, edge)

Is there are a built in Biopython option in this for "allow half windows/short windows" for incomplete windows? There is nothing I can see to suggest so in the docs.

$\endgroup$
3
  • $\begingroup$ @Chris_Rands This would fix the error. However, it would change the absolute values. Ideally, I would like to keep the window length at ±10 residues (up to 20 residues) if possible. $\endgroup$
    – James
    Apr 5, 2019 at 15:35
  • 1
    $\begingroup$ Have you tried odd values for window_length? web.expasy.org/protscale allows 3 5 7 ... 21 $\endgroup$ Apr 8, 2019 at 12:58
  • $\begingroup$ @nicolallias The issue would still remain. Even if I had 3 residue window length when I sample the final residue in the sequence, there are only 2 residues available for the window (the final residue, and the preceding residue), so no value is generated because 3 residues are needed for the windowed value. $\endgroup$
    – James
    Apr 9, 2019 at 9:37

1 Answer 1

3
$\begingroup$

You can choose between a window_size of 20 for sequences longer than 20 AAs, and the length of the sequence for those shorter::

seq = "CYGTGAVYLLGLGIGGFS"
window_length = min(len(seq), 20)

full_sequence_analysis = ProteinAnalysis(seq)
kyte_window = full_sequence_analysis.protein_scale(kyte, window_length, edge)
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.