Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.46 KB | None | 0 0
  1. f1=open("acids.txt", "r") ## reading acids
  2. ak=f1.readline()
  3. f1.close()
  4.  
  5. bm=[] ## reading matrix
  6. f1=open("blosum50.txt", "r")
  7. for i in range(20):
  8.     line=f1.readline()
  9.     vc=line.split()
  10.     bm.append(vc[:])
  11. for i in range(20): ## integer matrix
  12.     for j in range(20):
  13.         bm[i][j]=int(bm[i][j])
  14.  
  15. x='PEW'
  16. y='GALAPAWALA'
  17.  
  18. m=len(x)
  19. n=len(y)
  20.  
  21. sm=[] ## score matrix
  22. tmp=[]
  23. for i in range(m+1):
  24.     tmp.append(0)
  25. for i in range(n+1):
  26.     sm.append(tmp[:])
  27.  
  28. maxV = 0
  29. maxC = (0, 0)
  30.  
  31. ## rekurzija
  32. for i in range(1,n+1):
  33.     for j in range(1,m+1):
  34.         bb=bm[ak.index(y[i-1])][ak.index(x[j-1])]
  35.         sm[i][j] = max([sm[i-1][j] - 8, sm[i][j - 1] - 8, sm[i - 1][j - 1] + bb, 0])
  36.         if sm[i][j] > maxV:
  37.             maxV = sm[i][j]
  38.             maxC = (i, j)
  39.  
  40. a1 = ""
  41. a2 = ""
  42.  
  43. s = map(lambda r : "\t".join(r), [[str(e) for e in row] for row in sm])
  44.  
  45. print("\nMatrica:")
  46. for r in s:
  47.     print(r)
  48.  
  49. i = maxC[0]
  50. j = maxC[1]
  51.  
  52. print("\nPoravnanje:\n")
  53. while i > 0 or j > 0:
  54.    
  55.     if sm[i][j] == 0:
  56.         break
  57.     if i > 0 and j > 0 and sm[i][j] == sm[i - 1][j - 1] + bm[ak.index(y[i - 1])][ak.index(x[j - 1])]:
  58.         a1 = x[j - 1] + a1
  59.         a2 = y[i - 1] + a2
  60.         i = i - 1
  61.         j = j - 1
  62.     elif i > 0 and sm[i][j] == sm[i - 1][j] - 8:
  63.         a1 = "-" + a1
  64.         a2 = y[i - 1] + a2
  65.         i = i - 1
  66.     else:
  67.         a1 = x[j - 1] + a1
  68.         a2 = "-" + a2
  69.         j = j - 1
  70.  
  71. print(a1)
  72. print(a2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement