Researchers at Leiden University’s LACDR were struggling with a slow, error-prone manual workflow for differential gene expression analysis(DGE). To solve this they had created an R package, TEMPO. However, it crashed on large datasets, required manual code edits to configure, and took hours to run.
We, team AURORA, attempted to solve these issues. We wrapped TEMPO in an automated pipeline: bottleneck functions were rewritten in C++ for speed, a Snakemake workflow enforces step ordering and caching for reproducibility, and a Shiny web application allows researchers to upload data and run the full analysis without writing any code.
In the end, our work has made TEMPO easier to use, run without unknown crashes and saves countless hours in computational time. Along with that, any researcher at LACDR, regardless of programming background, can now run a standardized, reproducible gene expression analysis through a simple web interface.
Six developers, zero biology knowledge, somehow we ended up optimizing a gene expression pipeline and presenting it to a biology university department.
Our client was Lucy Sinke, a researcher at the Leiden Academic Centre for Drug Research (LACDR), Leiden University, with a background in Neuroscience, Medical Statistics, and Bioinformatics. We also had regular contact with her colleagues Imke and Gerhard.
Communication was smooth and collaborative throughout the project. We held biweekly meetings where we presented progress, gathered feedback, and refined requirements together. We were also able to ask question on Teams during our sprints to get immediate feedback or support when needed. This close collaboration was essential given the highly domain-specific nature of the work, helping us translate biological research needs into concrete technical solutions.
Hey, i got it working first try!" - "You sure you did it correctly?
The team consisted of six people: Iustin Raducanu as Scrum Master, Jort Kemp as Product Owner, and Stefan Diaconu, Christiaan Moussa, Kylian Bot, and Cagatay Akar as the development team. Stefan also served as group spokesperson for presentations and led the sprint meetings with the clients.
Work was divided by expertise, availability and interests, at the start of each sprint tasks were defined and divided amongst the group members according to the previously mentioned categories. The team met two to three times a week in person at the Gorlaeus computer labs to work together, share progress, and help each other when we faced issued with our tasks. This ensured a smooth integration across the different parts of the pipeline.
The biggest challenge was entering an entirely unfamiliar domain, none of us had a background in biology or bioinformatics. Bridging that gap required self-study of gene expression concepts during the first few weeks and close collaboration with the client in the later weeks. Estimating task durations also proved difficult early on, with several issues spilling across sprints. These were however picked up and eventually we were able to deliver our goals and deliver a workable product to our client which they can develop further if wanted.
We are most proud of delivering a fully functional web application on top of all the original optimization requirements, within just two additional sprints. At the start of the project many things were optional and the main goal was optimization and fixing, in the end we were able to complete most of the bonus tasks as well which none of us expected to achieve when the project started.
I never want to merge anything again
Languages:
Important frameworks and libraries:
Tooling:
Deployment: