【发布时间】:2016-11-22 16:40:29
【问题描述】:
我对 Python 编程非常陌生。我有包含某些植物物种蛋白质序列的 fasta 文件。
我想根据每个序列包含的氨基酸数量过滤它们。标准是那些>20个氨基酸的序列。
我可以通过biopython cookbook 上的资源获得超过 20 个氨基酸序列。但是,当我尝试将它们写入文件时,它给了我这个Error。我无法解决此错误。此外,我还想在输出文件中包含每个序列的 ID。请帮我!
代码:
import Bio
from Bio import SeqIO
for s_record in SeqIO.parse('arabidopsis_thaliana_proteome.ath.tfa','fasta'):
name = s_record.id
seq = s_record.seq
seqLen = len(s_record)
if seqLen >20:
desired_proteins=seq
output_file=SeqIO.write(desired_proteins, "filtered.fasta","fasta")
output_file
输入文件:Arabidopsis Thaliana
>AT5G16970
MTATNKQVILKDYVSGFPTESDFDFTTTTVELRVPEGTNSVLVKNLYLSCDPYMRIRMGKPDPSTAALAQAYTPGQPIQGYGVSRIIESGHPDYKKGDLLWGIVAWEEYSVITPMTHAHFKIQHTDVPLSYYTGLLGMPGMTAYAGFYEVCSPKEGETVYVSAASGAVGQLVGQLAKMMGCYVVGSAGSKEKVDLLKTKFGFDDAFNYKEESDLTAALKRCFPNGIDIYFENVGGKMLDAVLVNMNMHGRIAVCGMISQYNLENQEGVHNLSNIIYKRIRIQGFVVSDFYDKYSKFLEFVLPHIREGKITYVEDVADGLEKAPEALVGLFHGKNVGKQVVVVARE*
>AT4G32100
MATNACKFLCLVLLFAFVTQGYGDDSYSLESLSVIQSKTGNMVENKPEWEVKVLNSSPCYFTHTTLSCVRFKSVTPIDSKVLSKSGDTCLLGNGDSIHDISFKYVWDTSFDLKVVDGYIACS*
提前谢谢你:)
【问题讨论】:
-
你得到的错误信息是什么?
-
AttributeError: 'str' 对象没有属性 'id'
-
请输出准确的错误信息,以及复制错误的示例输入。
-
嗨@Vince,我已经编辑了问题,带有错误快照和示例输入。
-
你已经设置了desired_proteins = seq = s_record.seq,这是一个类似字符串的Seq对象。 write 函数需要一个 SeqRecord 对象,即您的示例中的 s_record 应该可以工作。
标签: python-2.7 bioinformatics biopython