def nwprofile(S, gap, seq, residues,sc): '''A function that performs the global alignment of a sequence to a profile''' f=frequency(S,residues) M=PSSM(seq,sc,residues,S) F=[[0.0] * (len(f)+1) for i in range (0, len(seq)+1)] for i in range(1, len(seq)+1): for j in range(1, len(f)+1): F[i][j]=max([F[i-1][j]+gap, F[i][j-1]+gap, F[i-1][j-1]+M[i-1][j-1]]) return F[i][j] return F
def smprofile(S, gap, seq, residues,sc): '''A function that performs the local alignment of a sequence to a profile''' f=frequency(S,residues) M=PSSM(seq,sc,residues,S) F=[[0.0] * (len(f)+1) for i in range (0, len(seq)+1)] for i in range(1, len(seq)+1): for j in range(1, len(f)+1): F[i][j]=max([F[i-1][j]+gap, F[i][j-1]+gap, F[i-1][j-1]+M[i-1][j-1],0.0]) maxscore=0 for i in range(1, len(seq)+1): for j in range(1, len(f)+1): if F[i][j]>maxscore: maxscore=F[i][j] print F print maxscore