This report responds to an assignment prompt requesting a Python implementation to decode the relationship between gene sequences that have undergone random mutations. Each base letter of a gene sequence has a probability of undergoing a mutation, which can take the form of an insertions, deletions or changes of a base letter to another.
The report specifically adresses the following requirements:
- The implementation of an algorithmic strategy that outputs all Longest Common Subsequences (LCS) between two gene sequences.
- Generating and studing a matrix of lentgths of LCSs for a given set of gene sequences.
- The implementation of two strategies, a local and a global one, to reconstructing the genealogy of a given set of sequences.
- A study of the computational complexity of each approach.
- A discussion of which approach may be prefered in which situation.
- An estimation of the probabilities of insertion, deletion and base changes based on the derived genealogical relationship.