Bio Python имеет оболочку командной строки для программы множественного выравнивания MAFFT :
>>> from Bio.Align.Applications import MafftCommandline
>>> mafft_exe = "/opt/local/mafft"
>>> in_file = "../Doc/examples/opuntia.fasta"
>>> mafft_cline = MafftCommandline(mafft_exe, input=in_file)
>>> print(mafft_cline)
/opt/local/mafft ../Doc/examples/opuntia.fasta
Если двоичный файл mafft находится на пути (обычно в случае Unix стиль операционной системы), тогда вам не нужно указывать расположение исполняемого файла:
>>> from Bio.Align.Applications import MafftCommandline
>>> in_file = "../Doc/examples/opuntia.fasta"
>>> mafft_cline = MafftCommandline(input=in_file)
>>> print(mafft_cline)
mafft ../Doc/examples/opuntia.fasta
Обратите внимание, что MAFFT запишет выравнивание в стандартный вывод, который вы можете сохранить в файл, а затем проанализировать, например :
stdout, stderr = mafft_cline()
with open("aligned.fasta", "w") as handle:
handle.write(stdout)
from Bio import AlignIO
align = AlignIO.read("aligned.fasta", "fasta")
В качестве альтернативы, чтобы проанализировать вывод напрямую с помощью AlignIO, вы можете использовать StringIO, чтобы превратить строку в дескриптор:
stdout, stderr = mafft_cline()
from StringIO import StringIO
from Bio import AlignIO
align = AlignIO.read(StringIO(stdout), "fasta")