View Single Post
Old 02-9-2014, 09:57 AM   #5
Reincarnate
x'); DROP TABLE FFR;--
Retired StaffFFR Veteran
 
Reincarnate's Avatar
 
Join Date: Nov 2010
Posts: 6,332
Default Re: Python pattern matching algorithm tuple error

something like this maybe

Code:
def stringScore( mat, baseMap, seq1, seq2, g = -5 ):

    if len(seq1) != len(seq2):
        raise Exception("Fix your shit, both strings must be of equal length")

    score = 0
    
    for base1,base2 in zip(seq1,seq2):
        if base1 != base2:
            score -= mat[baseMap[base1]][baseMap[base2]]
        elif base1 == "-" or base2 == "-":
            score += g
        else:
            score += mat[baseMap[base1]][baseMap[base2]]
        
    return score



mat = [[20, 10, 5, 5],
       [10, 20, 5, 5],
       [5, 5, 20, 10],
       [5, 5, 10, 20]]

alphabet = "TCAG"
baseMap = {base:index for index,base in enumerate(alphabet)}

seq1 = 'ATGTTAT'
seq2 = 'ATCGTAG'

print stringScore(mat, baseMap, seq1, seq2)

Last edited by Reincarnate; 02-9-2014 at 10:02 AM..
Reincarnate is offline   Reply With Quote