【发布时间】:2016-02-10 22:46:46
【问题描述】:
我有数千个范围在 100 到 5000 bp 之间的 DNA 序列,我需要比对并计算指定对的同一性得分。 Biopython pairwise2 做得很好,但仅适用于短序列,当序列大小大于 2kb 时,即使使用了 'score_only' 和 'one_alignment_only' 选项,它也会显示严重的内存泄漏,从而导致 'MemoryError'!
whole_coding_scores={}
from Bio import pairwise2
for genes in whole_coding: # whole coding is a <25Mb dict providing DNA sequences
alignment=pairwise2.align.globalxx(whole_coding[genes][3],whole_coding[genes][4],score_only=True,one_alignment_only=True)
whole_coding_scores[genes]=alignment/min(len(whole_coding[genes][3]),len(whole_coding[genes][4]))
超级计算机返回的结果:
Max vmem = 256.114G #Memory usage of the script
failed assumedly after job because:
job 4945543.1 died through signal XCPU (24)
我知道还有其他对齐工具,但它们主要可以将分数写入输出文件,需要再次读取和解析以检索和使用对齐分数。 是否有任何工具可以像pairwise2那样在python环境中对齐序列并返回对齐分数但没有内存泄漏?
【问题讨论】:
标签: python alignment biopython