#!/usr/bin/env python3 # -*- coding: utf-8 -*- class DynamicMatrix: '''stores a matrix |S|x|T| (|S|+1 lines and |T|+1columns), sequences S and T and the score system (match, mismatch, gap) defines some global alignment functions ''' def __init__(self, S, T, match, mismatch, gap): ''' defines and stores initial values''' self.S=S self.T=T self.gap=gap self.match=match self.mismatch=mismatch self.matrix = [0 for i in range(len(S)+1)] for i in range(len(S)+1): self.matrix[i] = [0 for j in range(len(T)+1)] def printMatrix(self): ''' prints the matrix''' width = 4 vide = " " line = f"{vide:>{2*width}}" for j in range(0,len(self.T)): line += f"{self.T[j]:>{width}}" print(line) line = f"{vide:>{width}}" for j in range(0,len(self.T)+1): line += f"{self.matrix[0][j]:>{width}}" print(line) for i in range(1,len(self.S)+1): line = f"{self.S[i-1]:>{width}}" for j in range(0,len(self.T)+1): line += f"{self.matrix[i][j]:>{width}}" print(line) dm = DynamicMatrix("GGATAGC", "AATGAATC", +2, -1, -2) dm.printMatrix()