Speaker
Description
Neuroscience is a multi-disciplinary field that involves scientists from diverse backgrounds such as biology, computer science, engineering, and medicine. These scientists work together to understand how the brain operates in health and disease. The areas of application in neuroscience that require software are as diverse as the scientific backgrounds and programming skills of the scientists, ranging from experimental control and data collection to simulations, data analysis, and management. Python has established itself as the de-facto standard in modern neuroscience due to its accessibility and broad scope of applicability.
However, the software tooling supporting Python workflows has to be handled by often inexperienced end-users leveraging well-established scientific libraries shipped across dozens, sometimes hundreds of dependent packages. Setting these up in a robust and reproducible manner is crucial for the quality of the research but oftentimes not trivial to accomplish. For example, the dependencies of one package may be incompatible with another resulting in a conflict that has to be resolved manually. Python’s lack of a standardized package manager spurred the emergence of several third-party solutions, such as pip, conda, and poetry, making this task even more complex.
To ease the initial burden of dependency management, we built the Python distribution neuro-conda as an accessible entry point into the existing universe of software tools for neuroscience. It provides an easy-to-install, ready-to-use computational working environment for neuroscience supporting all major desktop operating systems (Windows, macOS, and Linux). Installation from scratch can be done with a single one-liner from the command line. Adding neuro-conda to existing conda installations is also possible. Through curation of the included packages and providing explanatory package lists, neuro-conda simplifies the setup process and ensures reproducibility of the research. It is available from https://github.com/neuro-conda.
We aim to prepare bi-annual releases that bring new feature updates of included libraries to end-users while previous releases remain available. The neuro-conda version provides a unique identifier of a complete environment, making it citable and reproducible. Each release is tested automatically in a continuous integration pipeline to ensure support for multiple Python versions and operating systems.
In summary, the neuro-conda distribution bundles commonly used neuroscience packages into curated conda environments, which are rigorously tested and validated for consistency and reliability.