【发布时间】:2014-02-01 08:25:21
【问题描述】:
我正在尝试根据 ID 列表从 fasta 文件中提取序列子集,到目前为止一切顺利。 我的问题是我的 ID 列表包含额外的第二列(代表序列的编码部分),我想将其保留在新的 fasta 文件中
File 1: Id list
>TCONS_00000004 654:819
>TCONS_00000006 238:367
>TCONS_00000009 956:1555
File 2: fasta file
>TCONS_00000004
AAAATAATAAACTTTGCAAAGAGCAAATTTGAAGAAGCAGTTGATATACGTCGAGAGATTTCTGCAACAG
CGCGATTATATTACATTCAATTAATTAAAATGCAGTACAGAGACATCCACGATTTCGTCAACATACCAGG
>TCONS_00000006
AAAATAATAAACTTTGCAAAGAGCAAATTTGAAGAAGCAGTTGATATACGTCGAGAGATTTCTGCAACAG
CGCGATTATATTACATTCAATTAATTAAAATGCAGTACAGAGACATCCACGATTTCGTCAACATACCAGG
>TCONS_00000009
AAAATAATAAACTTTGCAAAGAGCAAATTTGAAGAAGCAGTTGATATACGTCGAGAGATTTCTGCAACAG
CGCGATTATATTACATTCAATTAATTAAAATGCAGTACAGAGACATCCACGATTTCGTCAACATACCAGG
Expected outcome:
>TCONS_00000004 654:819
AAAATAATAAACTTTGCAAAGAGCAAATTTGAAGAAGCAGTTGATATACGTCGAGAGATTTCTGCAACAG
CGCGATTATATTACATTCAATTAATTAAAATGCAGTACAGAGACATCCACGATTTCGTCAACATACCAGG
>TCONS_00000006 238:367
AAAATAATAAACTTTGCAAAGAGCAAATTTGAAGAAGCAGTTGATATACGTCGAGAGATTTCTGCAACAG
CGCGATTATATTACATTCAATTAATTAAAATGCAGTACAGAGACATCCACGATTTCGTCAACATACCAGG
>TCONS_00000009 956:1555
AAAATAATAAACTTTGCAAAGAGCAAATTTGAAGAAGCAGTTGATATACGTCGAGAGATTTCTGCAACAG
CGCGATTATATTACATTCAATTAATTAAAATGCAGTACAGAGACATCCACGATTTCGTCAACATACCAGG
我尝试使用以下 biopython 命令,但它只会从 file2 中提取而没有我需要的其他数字。
from Bio import SeqIO
id = []
for line in open("test.txt","r"):
id.append(line.rstrip().strip('\t'))
for rec in SeqIO.parse("mymodified_transcript.fa","fasta"):
if rec.id in id:
print rec.format("fasta")
如何保留额外的数字并从 file2 中提取序列?或者将文件2中的名称替换为文件1中的名称? 感谢您的帮助
【问题讨论】: