我想用 MUSCLE 算法做多序列比对。
from Bio.Align.Applications import MuscleCommandline
muscle_exe = r"C:\Program file\muscle3.8.31_i86win32.exe"
in_file = r"non_aligned.fasta"
out_file = r"aligned.fasta"
muscle_cline = MuscleCommandline(muscle_exe, input=in_file, out=out_file)
print(muscle_cline)
stdout, stderr = muscle_cline()
但是,我想以不同的方式使用它,如下所示:
nsequences = len(sequences)
for i in range(nsequences):
for j in range(i+1, nsequences):
aln = alignment_function(sequences[i], sequences[j])
print (sequences[i], sequences[j], aln)
其中sequences是文件non_aligned.fasta中包含的序列,而nsequences是序列的数量。所以,我想通过MUSCLE对齐两个序列,每次都像我在上面的代码中提到的那样打印每两个序列。
seq1 seq2 aln12
seq1 seq3 aln13
seq2 seq3 aln23
首先尝试从命令行像的一个对齐:
import os
os.system("muscle -profile -in1 seq1.aln -in2 seq2.aln -out combinedAlignment.fasta -maxmb 15000")
其中,seq1.aln 是您的第一个序列,seq2,aln 是您的第二个序列,输出是 combinedAlignment.fasta,maxmb 是可选的,但总是更好地使用。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(78条)