/DNA-SplicingAndIdentification

Algorithms simulating DNA splicing and segment matching.

Primary LanguagePython

DNA Splicing and Segment Identification

Designed and implemented an algorithm to efficiently identify segments of DNA and simulate the operation of inserting a segment into a given sequence, as well as identify genetic sequence across multiple strands.

Task 1

1a and 1b implement different versions for identifying segments of DNA and performing "splicing", that is, inserting a sequence at a target location and index.

1a uses simple string operations provided by Python's library.

1b implements a Singly-linked-list approach the code for which can be found in LinkedList.py.

1bii goes further than just string comparison and uses a hashing function to speed up string search.

Task 2

The purpose of the algorithms specified in (2) is to identify common sequences in gene strands.

2a implements an exponential (in time) solution whilst 2b has a polynomial complexity.

2d is the same as 2b but allows finding sequences across multiple strands.

Tasks 1c and 2c

Those visualize the results and effectiveness of the different algorithms. (Requires numpy and pyplot).