This repository contains project assignments for the course Functional Programming for Biology, where you will implement a biologically motivated algorithm or statistical method in F#.
You must choose one project from the list below and implement it independently.
Projects focusing on statistical reasoning, hypothesis testing, and probabilistic modelling of biological data.
-
Statistical Hypothesis Testing Using Permutation Tests Permutation_Tests.md
-
Likelihood Ratio Test for Competing Biological Models Likelihood_Ratio_Test.md
Projects focusing on classical and modern algorithms used in computational biology and bioinformatics.
-
Genome Assembly with de Bruijn Graphs Genome_Assembly_with_de_Bruijn_Graphs.md
-
Fast Sequence Similarity Using MinHash Sketches Sequence_Similarity_Using_MinHash_Sketches.md
-
Gene Finding with a Hidden Markov Model and the Viterbi Algorithm Gene_Finding_with_Viterbi_Algorithm.md
-
Fast Exact Pattern Matching with the FM-Index (Lite) Pattern_Matching_with_FM-Index.md
You are expected to build your project on top of the foundational libraries introduced in the lecture. These libraries may be used for basic data structures, numerical operations, plotting, and biological utilities, but not as black-box replacements for the core algorithm of your chosen project.
The following libraries are recommended and supported:
-
FsMath Numerical foundations and functional math utilities https://github.com/fslaborg/FsMath
-
Plotly.NET Visualization of results, distributions, and intermediate outputs https://github.com/plotly/Plotly.NET
-
BioFSharp Basic bioinformatics data structures and parsers (e.g. FASTA handling) https://github.com/BioFSharp/BioFSharp
If you are unsure whether a particular function is allowed, assume:
Infrastructure is allowed, core algorithmic logic must be implemented by you.