Toolkit for interfacing with CryoSPARC. Read the documentation at tools.cryosparc.com
For usage questions and general discussion about cryosparc-tools
scripts and functions, please post to the CryoSPARC discussion forum under the Scripting category.
If you would like to request or propose a feature, change or fix for cryosparc-tools
source code, please either report an issue or submit a pull request.
See CONTRIBUTING.md for full details.
- Git and Git LFS
- Python >= 3.7
- Miniconda3
- C compiler such as GCC or Clang
- Clone this repository
git clone --recursive https://github.com/cryoem-uoft/cryosparc-tools.git cd cryosparc-tools git lfs pull
- (Optional) Create and activate a virtual environment
python3 -m venv .venv source .venv/bin/activate # macOS / Linux # OR .venv\Scripts\activate.bat # Windows
- Install dev dependencies and build native modules
pip install -U pip wheel pip install -e ".[dev]"
- Install pre-commit hooks
pre-commit install
Recompile native modules after making changes to C code:
python -m setup build_ext -i
Install build dependencies
pip install -e ".[build]"
Run the build
python -m build
Packages for the current architecture and python version are added to the
dist/
directory.
Documentation is located in the docs
directory and is powered by Jupyter Book.
To build the docs, install build dependencies
pip install -e ".[build]"
Then run Jupyter Book
jupyter-book build docs
Site will be be built into the docs/_build/html
directory.
Note: Jupyter Book is not configured to re-run example notebooks upon build since the notebooks require an active CryoSPARC instance to run.
See the Run Example Notebooks section for instructions on how to run the notebooks.
Inline source documentation is compiled to HTML via Sphinx and uses Google Style Python docstrings.
The Jupyter notebooks in the example documentation require additional dependencies to execute, including the following system configuration:
- Nvidia GPU and driver
- Miniconda installed
- CryoSPARC running at
localhost:40000
orcryoem0:40000
(can aliascryoem0
to localhost)
Clean previous build artefacts:
rm -rf cryosparc/*.so build dist *.egg-info
Install dependencies into a new conda environment:
conda create -n cryosparc-tools-example -c conda-forge \
python=3 numpy==1.18.5 \
pyqt=5 libtiff wxPython=4.1.1 adwaita-icon-theme
conda activate cryosparc-tools-example
pip install -U pip
pip install nvidia-pyindex matplotlib~=3.4.0 pandas==1.1.4 notebook
pip install "cryolo[c11]"
pip install -e ".[build]"
Run the notebook server with the following environment variables:
CRYOSPARC_LICENSE_ID
with Structura-issued CryoSPARC licenseCRYOSPARC_EMAIL
with a CryoSPARC user account emailCRYOSPARC_PASSWORD
with a CryoSPARC user account password
You may also need to include LD_LIBRARY_PATH
which includes the location of
CUDA Toolkit and cuDNN runtime libraries (e.g., ~/miniconda3/envs/tools/lib/python3.8/site-packages/nvidia/*/lib
).
CRYOSPARC_LICENSE_ID="xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx" \
CRYOSPARC_EMAIL="ali@example.com" \
CRYOSPARC_PASSWORD="password123" \
jupyter notebook
Find examples in docs/examples
directory
cryosparc-tools is licensed under the BSD-3-Clause license.