计算FASTA文件中的二氨基酸频率(Bigram频率)

时间:2012-08-19 21:52:47

标签: python bioinformatics biopython n-gram fasta

鉴于大量的FASTA文件(用于分泌肽的各种生物的肽组),如何用Python(或Matlab)读取FASTA文件(来自UNIProt),并计算每种氨基酸的频率,以及氨基酸“双”配对?

(I.E-输出应具有每个氨基酸的百分比(22个字母/字母中的百分比)和氨基酸配对的频率。

实际上,我想计算字母对的二元组(或者易于实现的n-gram)频率。

22个氨基酸各自由FASTA文件中的独特字母表示,并且每个蛋白质的名称在其行之前由>开始。 (已经解析了它,所以只剩下相关的字符)

  

文件样本:

     

FFKA

     

FLRN

     

MTTVSYVTILLTVLVQVLTSDAKATNNKRELSSGLKERSLSDDAPQFWKGRFSRSEEDPQ   FWKGRFSDPQFWKGRFSDPQFWKGRFSDPQFWKGRFSDPQFWKGRFSDPQFWKGRFSDPQ   FWKGRFSDGTKRENDPQYWKGRFSRSFEDQPDSEAQFWKGRFARTSSGEKREPQYWKGRF   SRDSVPGRYGRELQGRFGRELQGRFGREAQGRFGRELQGRFGREFQGRFGREDQGRFGRE   DQGRFGREDQGRFGREDQGRFGREDQGRFGREDQGRFGRELQGRFGREFQGRFGREDQGR   FGREDQGRFGRELQGRFGREDQGRFGREDQGRFGREDLAKEDQGRFGREDLAKEDQGRFG   REDIAEADQGRFGRNAAAAAAAAAAAKKRTIDVIDIESDPKPQTRFRDGKDMQEKRKVEK   KDKIEKSDDALAKTS

非常感谢!

1 个答案:

答案 0 :(得分:3)

这看起来如何?

>>> sequence = "LTSDAKAARFSDPQFWKGRFSDPQFWKGRSAAKGRFARTSSGAAEKREPQAAYWKGRF "
>>> occurrenceAA = str(sequence.count("AA"))   # counting occurence of n-aminos
>>> percent_occurrenceAA = float(occurrenceAA)/len(sequence)*100   # calculate percent total of protein
>>> print occurrenceAA, " Double-alanines in your sequence"
4 Double-alanines in your sequence
>>> print round(percent_occurrenceAA,2), " % of total"   # rounding off % to 2 decimal places
6.78  % of total