我正在使用 Biopython 打开一个大的单条目 fasta 文件(514 兆碱基),这样我就可以从特定坐标中提取 DNA 序列。返回序列的速度相当慢,我只是想知道是否有更快的方法来执行我还没有想到的这项任务。速度不会只是一两次点击的问题,但我正在遍历 145,000 个坐标的列表,这需要几天时间:/
import sys
from Bio import SeqIO
from Bio.Seq import Seq
def get_seq(fasta, cont_start, cont_end, strand):
f = fasta
start_pos = cont_start
end_pos = cont_end
for seq_record in SeqIO.parse(f, "fasta"):
if strand == '-' :
return seq_record.seq[int(start_pos):int(end_pos)].reverse_complement()
elif strand == '+':
return seq_record.seq[int(start_pos):int(end_pos)]
else :
print ' Invalid syntax!
sys.exit(1)