Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from Bio import SeqIO
- def multiple_lcs_length(input):
- fasta_sequences = SeqIO.parse(open(input), 'fasta')
- first = str(next(fasta_sequences).seq)
- second = str(next(fasta_sequences).seq)
- third = str(next(fasta_sequences).seq)
- matr = [[[]]]
- for i in range(len(first) + 1):
- matr[0][0].append("")
- for i in range(1, len(second) + 1):
- matr[0].append([""])
- for _ in range(len(first)):
- matr[0][i].append("")
- for i in range(1, len(third)):
- matr.append([[""]])
- for _ in range(len(first)):
- matr[i][0].append("")
- print(matr)
- for x in range(1, len(third) + 1):
- for y in range(1, len(second) + 1):
- tmpy = [[]]
- for z in range(1, len(first) + 1):
- count = len(matr[x-1][y-1][z-1])
- if first[z-1] == second[y-1] and second[y-1] == third[x-1]:
- count += 1
- if len(matr[x-1][y][z]) > count:
- count = len(matr[x-1][y][z])
- tmp = matr[x-1][y][z]
- if len(matr[x][y-1][z]) > count:
- count = len(matr[x][y-1][z])
- tmp = matr[x][y-1][z]
- if len(matr[x][y][z-1] > count) :
- tmp = matr[x - 1][y - 1][z - 1]
- if first[z-1] == second[y-1] and second[y-1] == third[x-1]:
- tmp += first[z-1]
- tmpy.append(tmp)
- print("yes")
- matr.append(tmpy)
- return matr[-1][-1][-1]
- print(multiple_lcs_length('data012.fna'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement