我有成千上萬的DNA序列,範圍在100到5000 bp之間,我需要對齊並計算指定對的身份分數。 Biopython pairwise2做的不錯,但只適用於短序列,並且當序列大小大於2kb時,即使使用'score_only'和'one_alignment_only'選項,也會顯示嚴重的內存泄漏,導致'MemoryError'!對齊Python中的DNA序列
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)
我知道有其他工具進行比對,但他們主要是可以只寫在輸出文件中的得分,需要加以檢索再次讀取和分析並使用對齊分數。 是否有任何工具可以對齊序列並返回python環境中的對齊分數,因爲pairwise2會但沒有內存泄漏?
不幸的是NWalign不適用於Python3! – user3015703