This is my code for the Bioinformatics Contest 2021.
I ended up completing the qualification problems with 100% score and 2244.92 points in the final round (147th place).
I have left the code in the state that it was when time ran out, apart from some comments on the performance on each test (in __main__).
Please note that this is a timed competition and that the ugly and haphazard state of the code and utter lack of comments is a direct result of that.
Diagnosis, Epigenomic Marks and Metabolite Annotation were qualification round problems. They all worked but I did spend some extra time trying to find more efficient solutions for Diagnosis and Metabolite Annotation since running my solutions required like 64gb of RAM. I couldn't get my alternate solutions to work before the end of the qualifiers, so I ran the code on a Cloud VPS with enough RAM.
The final round took place on the 26/06/2021 from 13:00 UTC and lasted 24 hours. You had to complete 5 problems. Unfortunately I had plans (and Denmark was playing Wales in the Euro2020) on the evening of the Final Round, so I lost about 7 hours. The competition started 15:00 local time. I started 15:30 untill around 17:00. Then again from 24:00 until 06:00. Then from 9:15 till the end at 15:00.
I started with Problem 1 (Genotype Imputation), which in hind sight was a mistake. I should have taken the time to read through all problems and begun on the easiest to comprehend. This is especially true for these types of problems, since some questions can take a few tries to fully understand.
After spending many hours trying to engineer a solution for problem 1, I finally opted to use a premade tool (MACH1). After this started giving points at 03:27 (according to git) I finally moved on to problem 2, 3 and 5. I didn't have time to make any attempts for problem 4.
I don't think any of my solutions are especially efficient. My goto method is usually to try a brute force attempt first to make sure I understand the problem. Then, if a more efficient solution is necesary, i attempt to optimize. I didn't have time to attempt any optimized solutions for the Final Round.