[英]How do I calculate percentage amino acid composition of sequences contained in a large FASTA file
我想計算 FASTA 文件中單獨包含的每個序列的氨基酸組成,但我很難做到這一點。 我知道我可以使用下面的代碼來做到這一點,但這涉及我分別輸入每個序列,而不是將 FASTA 文件作為一個整體並以這種方式計算。
from Bio.SeqUtils.ProtParam import ProteinAnalysis
X = ProteinAnalysis("MAEGEITTFTALTEKFNLPPGNYKKPKLLYCSNGGHFLRILPDGTVDGT"
"RDRSDQHIQLQLSAESVGEVYIKSTETGQYLAMDTSGLLYGSQTPSEEC"
"LFLERLEENHYNTYTSKKHAEKNWFVGLKKNGSCKRGPRTHYGQKAILF"
"LPLPV")
print(X.count_amino_acids()['A'])
print(X.count_amino_acids()['E'])
print("%0.2f" % X.get_amino_acids_percent()['K'])
print("%0.2f" % X.get_amino_acids_percent()['L'])
print("%0.2f" % X.molecular_weight())
print("%0.2f" % X.aromaticity())
print("%0.2f" % X.instability_index())
print("%0.2f" % X.isoelectric_point())
sec_struc = X.secondary_structure_fraction()
print("%0.2f" % sec_struc[0])
epsilon_prot = X.molar_extinction_coefficient()
print(epsilon_prot[0])
print(epsilon_prot[1])
您只需要使用SeqIO.parse()
讀取序列的 FASTA 文件:
from Bio import SeqIO
from Bio.SeqUtils.ProtParam import ProteinAnalysis
for record in SeqIO.parse('myfasta.fa', 'fasta'):
X = ProteinAnalysis(str(record.seq))
print('\n### Results for record: {} ###'.format(record.id))
print(X.count_amino_acids()['A'])
print(X.count_amino_acids()['E'])
print("%0.2f" % X.get_amino_acids_percent()['K'])
print("%0.2f" % X.get_amino_acids_percent()['L'])
print("%0.2f" % X.molecular_weight())
print("%0.2f" % X.aromaticity())
print("%0.2f" % X.instability_index())
print("%0.2f" % X.isoelectric_point())
sec_struc = X.secondary_structure_fraction()
print("%0.2f" % sec_struc[0])
epsilon_prot = X.molar_extinction_coefficient()
print(epsilon_prot[0])
print(epsilon_prot[1])
我想你想從FastaIO
模塊中得到一些東西,例如:
from Bio.SeqUtils.ProtParam import ProteinAnalysis
from Bio.SeqIO import FastaIO
with open('myfile.fasta') as fd:
for name, sequence in FastaIO.SimpleFastaParser(fd):
X = ProteinAnalysis(sequence)
print(name, X.count_amino_acids()['A'])
以及任何你想計算的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.