Skip to main content

CAJAL

Build and Test codecov GitHub release (latest by date including pre-releases)

CAJAL is a Python library for multi-modal cell morphology analyses using Gromov-Wasserstein (GW) distance. Detailed information about the methods implemented in CAJAL can be found in:

K. W. Govek, P. Nicodemus, Y. Lin, J. Crawford, A. B. Saturnino, H. Cui, K. Zoga, M. P. Hart, P. G. Camara, CAJAL enables analysis and integration of single-cell morphological data using metric geometry. Nature Communications 14 (2023) 3672. DOI:10.1038/s41467-023-39424-2

R. Hu, N. N. Naseri, O. Shalem, P. G. Camara, Morphology-robust quantification of subcellular organization in complex cells. bioRxiv [Preprint] (2026) DOI:10.64898/2026.05.28.728543

Installation

CAJAL is hosted on the Python Package Index - https://pypi.org/project/cajal/

It is recommended to install CAJAL via pip, which should automatically retrieve the correct wheel for your platform and Python version. It is strongly recommended to create a virtual environment.

pip install cajal

Depending on your use case, you can install additional dependencies:

pip install "cajal[notebooks]" # dependencies for tutorial notebooks
pip install "cajal[vis]"       # visualization helpers such as ipywidgets and plotly
pip install "cajal[dl]"        # deep-learning dependencies such as torch

Installation on a standard desktop computer should take a few minutes.


CAJAL can be also built from source, by cloning the Github repository.

pip install git+https://github.com/CamaraLab/CAJAL.git

To build CAJAL from source, a C++ compiler is required for the Gromov-Wasserstein computation and may be required for the potpourri3d library if the precompiled binaries are not compatible with your system. On Windows, we recommend Microsoft Visual C++ 14.0 or greater, which can be installed via the Microsoft C++ Build Tools. On Ubuntu, it requires g++ and may require the package python3.x-dev, which registers the Python header files with g++. The Unbalanced Gromov-Wasserstein module requires a Gnu C compiler, such as is available through MinGW, and a library implementing pthreads on windows.

CAJAL contains numerous dependencies which are currently hosted only on PyPI; as such, it is not possible at this time to provide a CAJAL conda package. (conda packages require all their dependencies to also be conda packages.) However, it should be possible to install CAJAL in a conda is conscious of, using a conda-managed Python installation and calling pip from within a conda environment.


The easiest way to run CAJAL is via Jupyter. Install Jupyter with

pip install notebook

Then start up Jupyter from terminal / Powershell using

jupyter notebook

Docker image

We provide a Docker image which contains CAJAL and its dependencies, cajal:latest is built on top of the Docker image jupyter/base-notebook and contains numerous data science tools for further analysis of the output of CAJAL. Running the following command will launch a Jupyter notebook server on localhost with CAJAL and its dependencies installed:

docker run -it -p 8888:8888 -v C:\Users\myusername\Documents\myfolder:/home/jovyan/work camaralab/cajal:latest

The -p flag controls the port number on local host. For example, writing -p 4264:8888 will let you access the Jupyter server from 127.0.0.1:4264. The -v "bind mount" flag allows one to mount a local directory on the host machine to a folder inside the container so that you can read and write files on the host machine from within the Docker image. Here one must mount the folder on the host machine as /home/jovyan/work or /home/jovyan/some_other_folder as the primary user "jovyan" in the Docker image only has access to that directory and to the /opt/conda folder. See the Jupyter docker image documentation for more information.

Documentation

Extensive documentation, including several tutorials, can be found in CAJAL's readthedocs.io website.

New in this release

Version 2.0 of CAJAL incorporates CellAligner, an unsupervised framework that uses fused unbalanced Gromov-Wasserstein couplings to map protein distributions from morphologically distinct cells into shared anchor-cell geometries, enabling morphology-robust comparison of subcellular localization. The new functionalities are discussed in the new worked examples tutorial 6 and tutorial 7 and here.

Metadata

Release files for cajal 2.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cajal 2.0.3
File Size Uploaded
cajal-2.0.3.tar.gz 12.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for cajal 2.0.3
File
cajal-2.0.3-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
cajal-2.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
cajal-2.0.3-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
cajal-2.0.3-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
cajal-2.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
cajal-2.0.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
cajal-2.0.3-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
cajal-2.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
cajal-2.0.3-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
cajal-2.0.3-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
cajal-2.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
cajal-2.0.3-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details

Total release size: 161.7 MB

Release files / cajal-2.0.3.tar.gz

Download URL cajal-2.0.3.tar.gz
Size 12.7 MB
Tags Source
SHA-256 checksum
How to use checksums
6a27b79d03068b7d67648cd54e9aeac62500bad57280ab96768882879a6dd9a6
BLAKE2b-256 checksum
How to use checksums
aa99cc58ca46812adc050ec3ccffbe548b57d3ef91d01800dfb68f82265ab7b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL cajal-2.0.3-cp312-cp312-musllinux_1_2_x86_64.whl
Size 15.4 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
6c4a310df772847a2b3c0a7fb7098d5e0995573f5e12341b1f40ff62691ab240
BLAKE2b-256 checksum
How to use checksums
47207859758fb67101ff9d7800afc5a0f19d668c69bb5b18acc30d10730c82f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL cajal-2.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 14.6 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
09254b66b474978e8036147fa38299007c01f704b23c3321df2f861a211bfd24
BLAKE2b-256 checksum
How to use checksums
6cae77b9e32267a8578f60cec74fca036f3ef84a106b711363208c61f0bd12ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL cajal-2.0.3-cp312-cp312-macosx_11_0_arm64.whl
Size 7.3 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d60b2d24532f2461f416e942cbb1c4cf4815577eec89801027c10fc9b18ccc50
BLAKE2b-256 checksum
How to use checksums
3a1711727519abf7748a816e0d0d41eaaa22eff3084765cfa3db8e67473193a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL cajal-2.0.3-cp311-cp311-musllinux_1_2_x86_64.whl
Size 15.4 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e96b163756e9df2d6742c40821b3a847e28b02c60181d5e5acccf83a50b339f0
BLAKE2b-256 checksum
How to use checksums
93234c9dbdb95d7176a343f830950644e61abad314b66ff3ef735bbfe75d7b91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL cajal-2.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 14.6 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a95328203da81355f3b1d6633dc7576990be46548c7272eac4a0e5e3b0fa2b4e
BLAKE2b-256 checksum
How to use checksums
c517ffa5b219359d01eeec7b4ce686e2c0dccb198386895ab328c5efeb61bdad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL cajal-2.0.3-cp311-cp311-macosx_11_0_arm64.whl
Size 7.3 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1584506dfb083dca03abd47a6471d5772887e0caa7ffe5aba7c829a380f47280
BLAKE2b-256 checksum
How to use checksums
2ca2a9053d2f18f6928974f1fcdcf2faa6a0d4ce9c5f14a1c56fef79ac8d361d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL cajal-2.0.3-cp310-cp310-musllinux_1_2_x86_64.whl
Size 15.3 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
44468a0f8f2f3149508308971b2a6f5ff9a4fef9fdab94cbbe8b03114cf9b78d
BLAKE2b-256 checksum
How to use checksums
f60c79e2c653541c75a82d3a5cb16ba1659500defcffbaa40a153bd937157dbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL cajal-2.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 14.6 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
40018bd12ad73feaff37e676f58235b9417834b8c0dfd808e4b35590d0392be5
BLAKE2b-256 checksum
How to use checksums
d28174d7d5db401ffb25708326d805d4d6bf68661e52f91e352dcf939e56a449
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp310-cp310-macosx_11_0_arm64.whl

Download URL cajal-2.0.3-cp310-cp310-macosx_11_0_arm64.whl
Size 7.3 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
673560dd05d7dd32e6f96a30a0ac3574fbb7319e376fb4e535e3d4a0d0b7c3d2
BLAKE2b-256 checksum
How to use checksums
9013459247ace75aa667868c556ddd10bf8409ecd39b800640d2644ae89680b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL cajal-2.0.3-cp39-cp39-musllinux_1_2_x86_64.whl
Size 15.3 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
29121a90bd836083e9278439b7573076e3047f52e03bbb704bbb476a69e46075
BLAKE2b-256 checksum
How to use checksums
590e5c91c37a5153036fac5e8fc45c662c525ff0950373e3b1207c5b2dc8f996
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL cajal-2.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 14.6 MB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d6b1fda124291ddd04ceb5d084e420974a47bae01224a58fb4b33d3cd1fc106c
BLAKE2b-256 checksum
How to use checksums
5c0a3b348df788233d833e0b3c848bfa8aacdb01dd96616eeedbd0493a463d8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release files / cajal-2.0.3-cp39-cp39-macosx_11_0_arm64.whl

Download URL cajal-2.0.3-cp39-cp39-macosx_11_0_arm64.whl
Size 7.3 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
20366abfbaf79a7aa9fcf73b8b014281704bb897da7f38f2135a47d6315aa933
BLAKE2b-256 checksum
How to use checksums
e0670c3f0d49aa52ea5a4d5a47134803073dcd77a2fe911f0bb95126477a3c3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.3 This release

13 release files

2.0.2

13 release files

2.0.1

13 release files

2.0

13 release files

1.5

17 release files

1.0.4

17 release files

1.0.3

41 release files

1.0.2

37 release files

1.0.0

26 release files

0.0.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page