bioinformatics - 将 Ns 添加到可变长度序列以使它们都等于 150bp 的最快方法

标签 bioinformatics biopython dna-sequence

假设我有一个包含 3 个序列的 fasta ......

ATTTTTGGA
AT
A

我希望我的序列数据如下所示:
ATTTTTGGA
ATTNNNNNN
ANNNNNNNN

是否有任何程序或脚本可以在合理的时间范围内完成此任务。我有成千上万的序列。谢谢!

我在胡闹并尝试过这个,文件最终是空白的,但这是我得到的。
import sys
from Bio import SeqIO
from Bio.Seq import Seq
in_file = open(sys.argv[1],'r')
sequences = SeqIO.parse(in_file, "fasta")
output_in_file = open("test.fasta", "w")
for record in sequences:
    n = 150
    record.seq = record.seq + ("N" * n)
    seq = seq[:n]
output_in_file.close()
in_file.close()

最佳答案

改进你的代码,

import sys
from Bio import SeqIO
from Bio.Seq import Seq
with open(sys.argv[1], "r") as in_file:
    sequences = list(SeqIO.parse(in_file, "fasta"))
    n = max(map(len, sequences))   #find max len in sequences
    for record in sequences:
        record.seq = record.seq + ("N" * (n-len(record)))
    SeqIO.write(sequences, "test.fasta", "fasta")

你得到,在 test.fasta
>id_1
ATTTTTGGA
>id_2
ATNNNNNNN
>id_3
ANNNNNNNN

for "all equal 150bp"

import sys
from Bio import SeqIO
from Bio.Seq import Seq
with open(sys.argv[1], "r") as in_file:
    sequences = list(SeqIO.parse(in_file, "fasta"))
    n = 150
    for record in sequences:
        record.seq = record.seq + ("N" * (n-len(record)))
    SeqIO.write(sequences, "test.fasta", "fasta")

你得到,

>id_1
ATTTTTGGANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
>id_2
ATNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
>id_3
ANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN

关于bioinformatics - 将 Ns 添加到可变长度序列以使它们都等于 150bp 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42429295/

相关文章:

java - 将 char 与 java 与 python 中的字符串索引进行比较

r - 如何在R中按列值范围过滤行?

python - 多 FASTA 文件序列的成对比对

python - 在 pythonanywhere 上从源代码安装工具

r - 如何在R中用方括号{}包围字符串中的多个字符?

biopython - 在没有输入文件的情况下在 Biopython 中创建比对

r - 如何找到密码子的特定频率?

python - 使用 Biopython (Python) 从 FASTA 文件中提取序列

xml - 如何使用 entrez.efetch 获取特定的蛋白质序列?

bioinformatics - RNA 剪接 Python