Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1.  
  2. from Bio import SeqIO
  3.  
  4. def multiple_lcs_length(input):
  5. fasta_sequences = SeqIO.parse(open(input), 'fasta')
  6. first = str(next(fasta_sequences).seq)
  7. second = str(next(fasta_sequences).seq)
  8. third = str(next(fasta_sequences).seq)
  9. matr = [[[]]]
  10. for i in range(len(first) + 1):
  11. matr[0][0].append("")
  12.  
  13. for i in range(1, len(second) + 1):
  14. matr[0].append([""])
  15. for _ in range(len(first)):
  16. matr[0][i].append("")
  17.  
  18. for i in range(1, len(third)):
  19. matr.append([[""]])
  20. for _ in range(len(first)):
  21. matr[i][0].append("")
  22.  
  23.  
  24. print(matr)
  25.  
  26. for x in range(1, len(third) + 1):
  27. for y in range(1, len(second) + 1):
  28. tmpy = [[]]
  29. for z in range(1, len(first) + 1):
  30. count = len(matr[x-1][y-1][z-1])
  31. if first[z-1] == second[y-1] and second[y-1] == third[x-1]:
  32. count += 1
  33. if len(matr[x-1][y][z]) > count:
  34. count = len(matr[x-1][y][z])
  35. tmp = matr[x-1][y][z]
  36.  
  37. if len(matr[x][y-1][z]) > count:
  38. count = len(matr[x][y-1][z])
  39. tmp = matr[x][y-1][z]
  40. if len(matr[x][y][z-1] > count) :
  41. tmp = matr[x - 1][y - 1][z - 1]
  42. if first[z-1] == second[y-1] and second[y-1] == third[x-1]:
  43. tmp += first[z-1]
  44.  
  45. tmpy.append(tmp)
  46. print("yes")
  47. matr.append(tmpy)
  48.  
  49. return matr[-1][-1][-1]
  50.  
  51. print(multiple_lcs_length('data012.fna'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement