HomeAboutSoftwarePublicationsPostsMicroBinfie Podcast

MicroBinfie Podcast, 92 Avoid dependency hell and get up and running fast

Released on October 27, 2022

Back to episode list

Navigating Dependency Hell in Bioinformatics

Often, the hard part of bioinformatics isn't the analysis—it's setting up and installing all the software you need. Join us on this journey and avoid dependency hell. In the MicroBinfie podcast, the hosts discuss the struggles of installing, managing, and dealing with dependencies in bioinformatics software.

Challenges in Bioinformatics Software Installation

In the past, software installations were a nightmare. It was common to edit lines of code and manage dependencies manually, often causing conflicts like the infamous "diamond dependency." To ease this process, the hosts suggest using containers, virtual machines, and local environments. They stress the importance of adhering to semantic versioning guidelines and understanding the end-user's perspective for proper documentation, testing, and clarity regarding dependencies. Additionally, software maintenance is critical for its longevity and usability.

Handling Different Architectures

The hosts also address software dependency management with different chip architectures and operating systems. For example, the M1 Apple architecture presents unique challenges compared to traditional computer processors, causing compatibility issues and slowing down emulation. These difficulties can significantly impact bioinformatics workflows.

Solutions for Dependency Management

To resolve these problems, the hosts recommend using separate Conda environments for each project or employing Mamba as a package manager. Mamba can solve dependency-related issues, although it might take shortcuts that create conflicts with specific programs. Other package managers discussed include Homebrew and APT.

Benefits of Docker and Singularity

The episode also covers the advantages of using Docker and Singularity to manage software packages on a local machine. Docker is particularly useful for databases, web servers, and complicated pipelines, while Singularity excels with more complex software and performs better with high-performance computing (HPC) environments.

Tips for Team Environments

The hosts offer practical advice for team environments—such as passing containers instead of binary files—and emphasize using Docker and Singularity as tools to streamline the software package management workflow.

Overall, the episode provides valuable insights and tips for researchers managing bioinformatics software, helping to streamline their workflows and enhance productivity.

Episode 92 transcript