Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改文件中fasta序列名称的格式,包括序列中的核苷酸编号_Python - Fatal编程技术网

Python 更改文件中fasta序列名称的格式,包括序列中的核苷酸编号

Python 更改文件中fasta序列名称的格式,包括序列中的核苷酸编号,python,Python,我不太懂编程,但我正在学习Linux和Python。 我有一个序列文件,里面有13500个序列。序列的名称是一种形式 >MP_scaffold_001_1 我想计算每个序列中核苷酸的数量,并想把它的名字改为 >MP_scaffold_001_1 <TAB> <Number_of_nucleotides> >MP_脚手架_001_1 如果您在Python中使用生物序列,则不会出错。该类包含用于处理序列的工具,包括FASTA格式的序列。以下代码应该可以帮助您开

我不太懂编程,但我正在学习Linux和Python。 我有一个序列文件,里面有13500个序列。序列的名称是一种形式

>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。如果你提供一个输入数据的例子(不是一个完整的文件,开玩笑的几块演示格式)会更好。啊哈,我在维基百科上看了一下格式。