Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.49 KB | None | 0 0
  1. x = []
  2. y = []
  3. plik1 = open('seqProtein1.fasta',"r").readlines()
  4. plik2 = open('seqProtein2.fasta',"r").readlines()
  5. seq = ""
  6. for linia in plik1[1:]:
  7.     x += linia.rstrip();
  8. for linia in plik2[1:]:
  9.     y += linia.rstrip();
  10.  
  11. print(x)
  12. print(y)
  13.  
  14.  
  15. a = len(x)
  16. b = len(y)
  17. # S={'AA': 1, 'AT': -1, 'AG':-1,'AC': -1, 'TA': -1, 'TT': 1,'TG':-1, 'TC': -1, 'GA': -1, 'GT':-1,'GG': 1, 'GC': -1,  'CA': -1,'CT':-1, 'CG': -1, 'CC': 1, }
  18. S ={'A': {'A':5, 'G': -4, 'C':-4,'T': -4}, 'G': {'A': -4, 'G':5,'C': -4, 'T': -4},'C': {'A':-4,'G': -4, 'C': 5, 'T': -4},'T':{'A': -4, 'G': -4, 'C': -4,'T':5}}
  19.  
  20. import numpy as np
  21.  
  22. F = np.zeros((len(x) + 1, len(y) + 1))
  23. #print(F)
  24. d = -2
  25. for i in range(0, a+1):
  26.     F[i][0] = d * i;
  27. for j in range(0, b+1):
  28.     F[0][j] = d * j;
  29.  
  30.  
  31. for i in range(1, a+1):
  32.     for j in range(1, b+1):
  33.         Match = F[i - 1][j - 1] + S[x[i-1]][y[j-1]]
  34.         Delete = F[i - 1][j] + d
  35.         Insert = F[i, j - 1] + d
  36.         F[i][j] = max(Match, Insert, Delete);
  37.  
  38. alX = ""
  39. alY = ""
  40. i = a
  41. j = b
  42. while(i > 0 or j > 0):
  43.     if(i > 0 and j > 0 and F[i][j] == F[i - 1][j - 1] +
  44. S[x[i-1]][y[j-1]] ):       #+S.values([x[i-1], y[j]] )
  45.         alX = x[i-1] + alX
  46.         alY = y[j-1] + alY
  47.         i = i - 1
  48.         j = j - 1
  49.  
  50.  
  51.     elif(i > 0 and F[i,j] == F[i-1][j] + d):
  52.         alX = x[i-1] + alX
  53.         alY = "-" + alY
  54.         i = i-1
  55.     else:
  56.         alX = "-" + alX
  57.         alX = y[j-1] + alY
  58.         j = j - 1
  59.  
  60. #print(F[i][j])
  61. print(F)
  62. print(alX)
  63. print(alY)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement