Python 更改文件中fasta序列名称的格式,包括序列中的核苷酸编号
我不太懂编程,但我正在学习Linux和Python。 我有一个序列文件,里面有13500个序列。序列的名称是一种形式Python 更改文件中fasta序列名称的格式,包括序列中的核苷酸编号,python,Python,我不太懂编程,但我正在学习Linux和Python。 我有一个序列文件,里面有13500个序列。序列的名称是一种形式 >MP_scaffold_001_1 我想计算每个序列中核苷酸的数量,并想把它的名字改为 >MP_scaffold_001_1 <TAB> <Number_of_nucleotides> >MP_脚手架_001_1 如果您在Python中使用生物序列,则不会出错。该类包含用于处理序列的工具,包括FASTA格式的序列。以下代码应该可以帮助您开
>MP_scaffold_001_1
我想计算每个序列中核苷酸的数量,并想把它的名字改为
>MP_scaffold_001_1 <TAB> <Number_of_nucleotides>
>MP_脚手架_001_1
如果您在Python中使用生物序列,则不会出错。该类包含用于处理序列的工具,包括FASTA格式的序列。以下代码应该可以帮助您开始:
from Bio import SeqIO
with open("input.fasta", "r") as input, open("output.fasta", "w") as output:
for seq in SeqIO.parse(input, "fasta"):
length = "\t%d" % len(seq)
seq.description += length
SeqIO.write(seq, output, "fasta")
此代码首先打开两个文件处理程序,输入
和输出
,当处理完成时,它们将自动关闭。接下来,使用该方法迭代input
中的每个序列(seq
)。序列的长度由Python内置的len()
函数确定,格式字符串由制表符\t
和len()
返回的数字生成。然后,通过将length
变量的内容添加到每个seq
的description
字符串的末尾来修改该字符串。最后,新修改的记录以FASTA格式写入输出文件
我强烈建议阅读Biopython's,以熟悉模块提供的所有内容。该文件如何指定每个序列中有多少核苷酸?@inspectorG4dget通常一个FASTA文件包含一行或多行,以
开头,给出序列的元数据,那么序列本身就在下一行,而不是以
开头。序列只是一个字母串,在这个例子中是DNA-a,T,C和G。如果你提供一个输入数据的例子(不是一个完整的文件,开玩笑的几块演示格式)会更好。啊哈,我在维基百科上看了一下格式。