.. image:: https://img.shields.io/badge/License-MIT-4c4c4c.svg :target: https://github.com/garikoitz/launchcontainers/blob/main/LICENSE :alt: License: MIT .. image:: https://img.shields.io/badge/Documentation-online-4caf50.svg :target: https://garikoitz.github.io/launchcontainers :alt: Documentation online .. image:: https://img.shields.io/github/actions/workflow/status/garikoitz/launchcontainers/ci.yml?label=CI&logo=github :target: https://github.com/garikoitz/launchcontainers/actions :alt: CI passing | .. raw:: html

launchcontainers

**launchcontainers** is an open-source Python framework for running neuroimaging analysis pipelines on high-performance computing (HPC) clusters in a reproducible, BIDS-compliant way. It was developed at the `Basque Center on Cognition, Brain and Language (BCBL) - LMC Group `_ to address the practical challenges of managing large multi-subject, multi-session neuroimaging datasets across heterogeneous computing environments. The framework wraps complex container-based and Python-based pipelines — from DWI preprocessing and tractography to fMRI first-level GLM and population receptive field (PRF) analysis — behind a single, consistent command-line interface. Rather than requiring researchers to manually track config files, input paths, and job scripts for dozens of subjects, launchcontainers handles all of that automatically: it validates inputs before any job is submitted, freezes a snapshot of every config used, and generates ready-to-submit HPC scripts tailored to your cluster's scheduler. A key design principle is that the **analysis directory** produced at the prepare stage is fully self-contained. Every run is fully traceable — you can always inspect exactly which config, which software version, and which subject list was used to produce a given result. Quality control is built into the workflow as a first-class step, generating per-subject pass/fail reports and a ``failed_subseslist.tsv`` that feeds directly back into the next prepare cycle with no manual editing required. ---- Key features ------------ .. list-table:: :widths: 5 95 * - 🔁 - **Three-phase workflow** — ``prepare → run → qc`` keeps validation, execution, and quality control cleanly separated; each phase reads only from the self-contained analysis directory, never from your original config files. * - 📦 - **Container and analysis pipelines** — supports six DWI/structural Apptainer containers (``anatrois``, ``freesurferator``, ``rtppreproc``, ``rtp-pipeline``, ``rtp2-preproc``, ``rtp2-pipeline``, ``fMRIPrep``) and fMRI analysis types (``glm``, ``prf``) through an extensible registry. * - 🖥️ - **Multi-cluster support** — works with SLURM (DIPC), SGE (BCBL), and local execution out of the box; adding a new host requires only one config block. * - 🔒 - **Reproducibility by design** — configs, subject lists, and software versions are frozen into the analysis directory at prepare time, making every result fully auditable. * - ✅ - **Built-in QC** — outputs are validated after every run; failures are reported and exported as a ready-to-resubmit subject list. * - 🧩 - **Extensible** — adding a new analysis type requires only a subclass and one line in the registry; no existing code needs to change. ---- Installation ------------ For **users** — install the latest release from PyPI: .. code-block:: console pip install launchcontainers For **developers** — clone the repo and install with Poetry: .. code-block:: console pip install pipx && pipx install poetry git clone https://github.com/garikoitz/launchcontainers.git cd launchcontainers poetry env use python3 && poetry install poetry shell See the :doc:`installation` page for full requirements, verification steps, and instructions for building the documentation locally. ---- How to cite ----------- If you use launchcontainers in your research, please cite: .. code-block:: text Lerma-Usabiaga, G., Lei, Y., Liu, M., Lecca, L., Linhardt, D., Tellaetxe, I., & others (2023). launchcontainers: a Python framework for reproducible neuroimaging pipeline execution on HPC clusters. [Software]. https://github.com/garikoitz/launchcontainers ---- .. toctree:: :hidden: :maxdepth: 2 :caption: Getting Started installation concepts .. toctree:: :hidden: :maxdepth: 2 :caption: User Guide tutorial cli_reference configuration .. toctree:: :hidden: :maxdepth: 2 :caption: Developer Guide extending code_structure .. toctree:: :hidden: :maxdepth: 1 :caption: Other changelog api