Algorithms in Bioinformatics

BIOINF4399 Advanced Java for Bioinformatics

Name BIOINF4399 - Advanced Java for bioinformatics
Lecturer Prof. Daniel Huson, Banu Cetinkaya and Anupam Gautam

Thursdays, 8:15-10:00, A301, Sand 1

Mondays, 16-17h, Q&A via Zoom


A) Thursdays, 16:15-18h, C118, Sand 14

B) Mondays, 8:15-10, C118, Sand 14


This course is intended for MSc students in bioinformatics and medical informatics.

Students in other programs will be admitted if space permits.

Grades will be based on the quality of a software project that you will undertake in this course.

Language English

Alma Ilias



In this course, we we learn how to build a fully featured, fully functional bioinformatics application. This will include fundamentals such implementing menus, toolbars, undo-redo, copy and paste, open and save. We will also learn how to implement visualization and interaction, including 3D visualization, animation and meshes.

This course will cover the following topics:

- Java 18 and JavaFX 18

- Coding using Intellij

- Version control using GitHub

- Design patterns such as MVP

- Concurrent programming in Java

- GUI design, animation and 3D graphics using JavaFX

-RESTful web services, client and server

All topics will be taught in the context of a bioinformatics project.

The topic will be implementing an advanced viewer for phylogenetic trees, including novel, interactive+animated 3D visualizations.

Alternatively, we will look into developing an application that connects to and uses an alpha-fold web server.


We will write a lot of code, so a keen interest in programming is essential.

This is not an introduction to Java, you must already know some Java to participate in this course. 

Assignments and tutorials

Weekly assignments are handed out in class and are posted on this webpage. In the second half of the course, you will work on a project and the resulting code will be the basis of your grade.

We will setup GitHub-classrooms to work with. 

We will discuss how to hand in your first assignment in the lecture on 21.4. Please enroll in the course using Ilias.


In the second part of the course you will work on a bioinformatics software project. 



The following time-table is only an outline and is subject to changes

Date Topic Assignments...
21.04.2022 1. Introduction, scene graph Assignment 1
28.04.2022 2. Events and controls

Assignment 2

Deadline: Wed., 4-May, 10am

05.05.2022 3. FXML and SceneBuilder

Assignment 3

Deadline: Wed., 11-May, 10am

12.05.2022 4. Model View-Presenter, 5. Shapes

Assignment 4

Deadline: Wed., 18-May, 10am

19.05.2022 6. 3D-Shapes,  7. Properties

Assignment 5

Deadline: Wed., 25-May, 10am


Assignment 6

Deadline: Wed., 1-June, 10am

02.06.2022 8. Meshes, 9.Services and concurreny Start project
23.06.2022 10. Selection model, 11. Undo-redo Project progress
30.06.2022 12. Web client 13. CSS Project progress
07.07.2022 14. Charts, 15. Canvas Project progress
14.07.2022 16. Animation, 17. WebView Project progress
21.07.2022 18. Web server, 19. SQL Project due
28.07.2022 Project presentations