鉴于大量的FASTA文件(用于分泌肽的各种生物的肽组),如何用Python(或Matlab)读取FASTA文件(来自UNIProt),并计算每种氨基酸的频率,以及氨基酸“双”配对?
(I.E-输出应具有每个氨基酸的百分比(22个字母/字母中的百分比)和氨基酸配对的频率。
实际上,我想计算字母对的二元组(或者易于实现的n-gram)频率。
22个氨基酸各自由FASTA文件中的独特字母表示,并且每个蛋白质的名称在其行之前由>开始。 (已经解析了它,所以只剩下相关的字符)
文件样本:
FFKA
FLRN
MTTVSYVTILLTVLVQVLTSDAKATNNKRELSSGLKERSLSDDAPQFWKGRFSRSEEDPQ FWKGRFSDPQFWKGRFSDPQFWKGRFSDPQFWKGRFSDPQFWKGRFSDPQFWKGRFSDPQ FWKGRFSDGTKRENDPQYWKGRFSRSFEDQPDSEAQFWKGRFARTSSGEKREPQYWKGRF SRDSVPGRYGRELQGRFGRELQGRFGREAQGRFGRELQGRFGREFQGRFGREDQGRFGRE DQGRFGREDQGRFGREDQGRFGREDQGRFGREDQGRFGRELQGRFGREFQGRFGREDQGR FGREDQGRFGRELQGRFGREDQGRFGREDQGRFGREDLAKEDQGRFGREDLAKEDQGRFG REDIAEADQGRFGRNAAAAAAAAAAAKKRTIDVIDIESDPKPQTRFRDGKDMQEKRKVEK KDKIEKSDDALAKTS
非常感谢!
答案 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