BA_MLS-P16

Bioinformatics Algorithms

Populate and intersect arrays (sheet1.py)

  • Part 1: populate arrays
    • Task 1: populate preallocated array with random values
    • Task 2: populate non-preallocated array with random values
      • Task 2.1: write nested for loop
      • Task 2.2: use inbuilt append
    • Task 3: check runtime of the tested methods
  • Part 2: intersect arrays
    • Task 1: naive nested for loop
    • Task 2: while loop on sorted arrays
    • Task 3: hash function
    • Task 4: check runtime of the tested methods

Binary search and exact sequence matching (sheet2.py)

  • Part 1: search arrays
    • Task 1: naive loop
    • Task 2: binary search
    • Task 3: check runtime of the tested methods
  • Part 2: exact sequence matching
    • Task 1: convert a word into a position in the array
    • Task 2: count and save the occurences of words
    • Task 3: obtain the fractal images out of sequence matching
    • Task 4: generate all possible permutations using a recursion

Dynamic programming (sheet3.py)

  • Part 1: Needleman–Wunsch
    • Task 1: implement Needleman–Wunsch
    • Task 2: test the implementation
  • Part 2: permutation test and Gumble distribution
    • Task 1: randomly shuffle a string
    • Task 2: generate a reference score and calculate the score for 1000 randomly shuffled sequences
    • Task 3: plot a histogram of the calculated permutation scores
    • Task 4: compute the associate p-value for the reference score
    • Task 5: compute the associate p-value using an estimated gumble distribution
    • Task 6: plot the histogram and the fitted probability density function

Network problems (sheet4.py)

  • Part 1: Dijkstra's algorithm
    • Task 1: prepare environment for Dijkstra
    • Task 2: implement Dijkstra