0
Matlabda bir işlev olarak needleman wunsh algoritmasını uygulamaya çalışıyorum. İşlev, aynı boyuttaki sekanslar için doğru şekilde çalışır ancak farklı boyutlarda, iki dizinin en yüksek uzunluğa sahip olduğu puan matrisini genişletir. Birisi bana bunun neden olduğunu söyleyebilir mi? Teşekkürler.needleman wunsh loop matlab'ı sonlandırmıyor
function [ mat, direction ] = build_score_mat(seq1, seq2)
%BUILD_SCORE_MAT Takes two sequences and builds a score matrix for global
%alignment
m = length(seq1);
n = length(seq2);
mat = zeros(m+2,n+2);
dir_mat = zeros(m+2,n+2);
direction = zeros(m+2,n+2);
mat(1,3:m+2) = seq1;
mat(3:n+2,1) = seq2;
mat(2,3:m+2) = -2:-2:-2*m;
mat(3:n+2,2) = -2:-2:-2*n;
for i=3:m+2
for j=3:n+2
if(mat(i,1) == mat(1,j))
score = 5; %diagnol align
else
score = -1;
end
list = [mat(i-1,j-1)+score, mat(i,j-1)-2, mat(i-1,j)-2];
[mat(i,j), dir_mat(i,j)]= max(list);
direction(i,j) = dir_mat(i,j);
end
end
end
"Seq1" ve "seq2" ve "mat", "output" girişleri nedir açıklayabilir misiniz? Bu işlevi nasıl kullanacağınızı anlamak için lütfen bir [MCVE] (http://stackoverflow.com/help/mcve) belirtin. – codeaviator
seq1 ve seq2, hizalanacak dizelerdir. mat, hizalamadan sonra çıktı matrisidir ve yön, geri tepme için yönlendirme matrisinin, bunları girdi olarak alan başka bir işlev kullanılarak yapılacak hizalanmış kelimeleri/dizileri elde etmesini sağlayan yön matrisidir. –