Installation

There are two ways to install XCP-D:

Container Technologies

XCP-D is ideally run via a Docker or Singularity container. If you are running XCP-D locally, we suggest Docker. However, for security reasons, many HPCs do not allow Docker containers, but do allow Singularity containers. The improved security for multi-tenant systems comes at the price of some limitations and extra steps necessary for execution.

Docker Installation

For every new version of xcp_d that is released, a corresponding Docker image is generated.

In order to run xcp_d via Docker images, the Docker Engine must be installed.

If you have used xcp_d via Docker in the past, you might need to pull down a more recent version of the image:

$ docker pull pennlinc/xcp_d:<latest-version>

The image can also be found here: https://hub.docker.com/r/pennlinc/xcp_d

xcp_d can be run interacting directly with the Docker Engine via the docker run command, or through a lightweight wrapper that was created for convenience.

Singularity Installation

Singularity version >= 2.5: If the version of Singularity installed on your HPC system is modern enough, you can create a Singularity image directly on the system using the following command:

$ singularity build xcp_d-<version>.simg docker://pennlinc/xcp_d:<version>

where <version> should be replaced with the desired version of xcp-d that you want to download.

Manually Prepared Environment (Python 3.10)

Warning

This method is not recommended! Please use container alternatives in Running XCP-D via Docker containers, and Running XCP-D via Singularity containers.

XCP-D requires some External Dependencies. These tools must be installed and their binaries available in the system’s $PATH.

On a functional Python 3.10 environment with pip installed, XCP-D can be installed using the habitual command

$ pip install git+https://github.com/pennlinc/xcp_d.git

Check your installation with the --version argument

$ xcp_d --version

External Dependencies

XCP-D is written using Python 3.10, is based on nipype, and requires some other neuroimaging software tools that are not handled by the Python’s packaging system (PyPi) used to deploy the XCP-D package: