.. include:: links.rst ############ Installation ############ *BDT* should be installed using container technologies. .. code-block:: bash docker pull nipreps/bdt:main ************************************************ Containerized execution (Docker and Singularity) ************************************************ *BDT* is a *NiPreps* application, and therefore follows some overarching principles of containerized execution drawn from the BIDS-Apps protocols. For detailed information of containerized execution of *NiPreps*, please visit the corresponding `Docker `__ or `Singularity `__ subsections. External Dependencies ===================== *BDT* is written using Python 3.12, and is based on nipype_. The Python environment (nipype, `niworkflows`, `pybids`, and related NiPreps libraries) is resolved with `pixi `__ from ``pixi.lock``. The container image additionally bundles a small set of neuroimaging tools that are not handled by Python's packaging system: - `Connectome Workbench `_ (version 1.5.0) — surface/CIFTI parcellation and label resampling. - AFNI_ (a minimal subset of programs, e.g. ``3dresample``, ``3dTshift``). - `bids-validator `_ (version 1.14.10, installed via ``npm``). .. note:: The full atlas-transform toolchain described in the design (ANTs ``ApplyTransforms`` for volumetric atlas resampling, and the Rust binaries ``trxrs`` / ``giftirs`` / ``odx`` for streamline, surface, and diffusion-model transforms) is **not yet part of the container image**. These will be added as the corresponding workflows are implemented. If you run *BDT* outside the container, install the tools required by the operations you use. *********************************************** Not running on a local machine? - Data transfer *********************************************** If you intend to run *BDT* on a remote system, you will need to make your data available within that system first. For instance, here at the Poldrack Lab we use Stanford's :abbr:`HPC (high-performance computing)` system, called Sherlock. Sherlock enables `the following data transfer options `_. Alternatively, more comprehensive solutions such as `Datalad `_ will handle data transfers with the appropriate settings and commands. Datalad also performs version control over your data.