2015-01-09 3 views
2

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) 

시퀀스하여 파일 non_aligned.fasta에 포함 된 시퀀스 및 nsequences은 는 시퀀스 수입니다. 그래서 위의 코드에서 언급 한 것처럼 매번 근육으로 두 시퀀스를 정렬하고 두 시퀀스를 모두 인쇄하려고합니다. alignment_function (sequences [i], sequences [j])은 두 시퀀스의 정렬을 MUSCLE으로 수행하는 함수입니다. 어떻게해야합니까? 이것은해야 같은 후 출력 뭔가 :

seq1 seq2 aln12 
seq1 seq3 aln13 
seq2 seq3 aln23 
+0

도와주세요 !!!!!!!!!!!!! – user3216969

+1

당신의 문제가 실제로 무엇인지는 분명하지 않습니다. 단순히 pairwise 시퀀스 그룹을 얻으려고합니다. 중첩 된 루프를 통해 실행하면됩니다 (시퀀스를 통해 시퀀스를 사용하여 셀 수는 있지만 직접 계산할 필요는 없지만). 파일에서가 아니라 메모리에서 시퀀스를 정렬하기 위해 근육을 얻는 것이 문제입니까? – iayork

+0

모든 페어 와이즈 정렬을 얻으려면 – user3216969

답변

0

은 처음에는 아래와 같은 명령 줄에서 하나의 정렬을 시도 :

seq1.aln이며,
import os 
os.system("muscle -profile -in1 seq1.aln -in2 seq2.aln -out combinedAlignment.fasta -maxmb 15000") 

가, seq2는, AlN으로는 두 번째 순서 첫 번째 순서입니다 귀하의 출력은 combinedAlignment.fasta, maxmb는 선택 사항이지만 항상 사용하는 것이 좋습니다.