Given two sequences of data (of equal length) and quality values for each data point, I want to calculate a similarity score based upon a given scoring matrix.
What is the most efficient way to vectorize the following loop:
score = 0
for i in xrange(len(seq1)):
score += similarity[seq1[i], seq2[i], qual1[i], qual2[i]]
similarity is a 4-dimensional float array, shape=(32, 32, 100, 100);
seq1, seq2, qual1 and qual2 are 1-dimensional int arrays of equal length (of the order 1000 - 40000).