我有一个fasta格式的文件,里面有几个DNA序列。我想将每个序列的内容更改为另一个较小的序列,保持相同的序列id。 新序列在一个列表中。在
with open("outfile.fa", "w") as f:
for seq_record in SeqIO.parse("ma-all-mito.fa", "fasta"):
for i in range(len(newSequences_ok)):
f.write(str(seq_record.id[i]) + "\n")
f.write(str(newSequences_ok[i]) + "\n")
但我得到:
^{pr2}$如何更改代码使其正常工作?我认为问题是我需要迭代原始fasta文件和新序列的列表。在
原始fasta文件如下所示:
>Sequence1
ATGATGCATGG
>Sequence2
TTTTGGGAATC
>Sequence3
GGGCTAACTAC
>Sequence4
ATCTCAGGAA
新序列的列表与此类似:
newSequences_ok=[ATGG,TTTC,GGTA,CTCG]
我想得到的输出是:
>Sequence1
ATGG
>Sequence2
TTTC
>Sequence3
GGTA
>Sequence4
CTCG
我认为这可能有效:
如果没有(即使有),你真的需要了解Biopython是如何工作的。您将
SeqIO.parse
视为直接返回文件行的内容。相反,它返回SeqRecord
对象,这些对象具有一个seq
属性,该属性返回Seq
对象,这些对象本身有两个属性,seq
属性(这正是您想要的)和alphabet
属性。在尝试修改之前,您应该集中精力提取您感兴趣的信息。在相关问题 更多 >
编程相关推荐