Overview
This repo contains components to install a CryoSPARC interactive app for use with Open OnDemand on HPC.
CryoSPARC is installed in a shared Singularity image using the --standalone install option where the master and worker nodes are on the same node.
bc_cryosparc_standalone is an Open OnDemand Batch Connect app that launches CryoSPARC as an interactive session on HPC clusters. It is designed for researchers and students who need CryoSPARC processing on a GPU node.
The singularity --fakeroot option is needed if root privileges are unavailable. The --fakeroot option is hardcoded in the INSTALL/build_cryosparc4ood.sh script.
Screenshots

Features
- Launches CryoSPARC via VNC desktop on compute nodes
- Supports CPU and GPU execution but most CryoSPARC jobs require a GPU
- Configurable memory, cores, and wall time via the launch form
- Containerized via Singularity/Apptainer; build script included
- Lmod .lua file included for interacting with the CryoSPARC session via command line
- A database is created for each user using the email field and the first 8 characters of the user's License ID as the password
Requirements
Compute Node Software
- Singularity or Apptainer
- XFCE Windows Manager
- Firefox module; or reconfigure to use SSH tunneling
Open OnDemand
- Open OnDemand minimum version 4.0.1+ for dynamic labels
- Scheduler: Slurm
- Lmod. The provided module file is needed for interactive CLI commands but not required to launch the GUI.
Optional
- The CryoSPARC GUI is launched using Firefox but can be reconfigured if SSH tunneling is allowed on your HPC
App Installation
Run the INSTALL/build_cryosparc4ood.sh script to generate the Singularity image. (build_cryosparc.sh --help)
- Singularity image installation requires a GPU and internet access.
1. Clone the repository
# Batch Connect apps:
cd /var/www/ood/apps/sys
git clone https://github.com/tamu-edu/bc_cryosparc_standalone.git
cd bc_cryosparc_standalone
# Pin to a release (recommended)
git checkout v1.0.0
2. Configure for your site
form.yml Attributes
Edit form.yml and update these values for your cluster:
| Attribute | Description | Default |
|---|---|---|
cluster |
Target cluster ID | "my_cluster" |
version |
CryoSPARC version | "4.7.1" |
num_hours |
Maximum wall time (hours) | 1 |
num_cores |
Number of cores | 1 |
mem_per_node |
GB memory for one node | "64" |
manifest.yml Attributes
Edit manifest.yml and update these values for your organization:
| Attribute | Change to |
|---|---|
description |
Your cluster and your documentation |
Environment variables
| Variable | Required | Description |
|---|---|---|
SINGULARITYENV_http_proxy |
No | proxy IP if needed by compute nodes |
SINGULARITYENV_https_proxy |
No | proxy IP if needed by compute nodes |
3. Verify
No OOD restart is needed (Batch Connect apps are detected automatically). Visit your OOD dashboard and look for CryoSPARC under Interactive Apps > Imaging.
Troubleshooting
Job starts but app doesn't appear (Batch Connect)
- Check the job's
output.login~/ondemand/data/sys/bc_cryosparc_standalone/ - Verify the Firefox module loads correctly:
module load Firefox - For VNC apps, verify the window manager is installed:
which xfwm4
"Module not found" error
The module name in form.yml doesn't match your system. Run module spider software to find the correct name and update the modules attribute.
Connection timeout
The app may need more time to start. Increase the connection timeout or check that the compute node can open the required port.
Testing
| Site | OOD Version | Scheduler | Status |
|---|---|---|---|
| Texas A&M University | 4.0.1 | Slurm 25.05.6 | Tested |
To verify your installation:
- Launch the app from the OOD dashboard with default settings
- Confirm the application loads in the browser
- Run one of the built-in CryoSPARC benchmark jobs
Known Limitations
- Multi-node jobs are not supported
- A new database is created for each major.minor version (one 4.7 db used for v4.7.0 and v4.7.1) to reduce the chance of databases not updating properly when using a newer CryoSPARC major.minor version.
Contributing
Contributions are welcome. To contribute:
- Fork this repository
- Create a feature branch (
git checkout -b feature/my-improvement) - Submit a pull request with a description of your changes
For bugs or feature requests, open an issue.
This app is part of the OOD Appverse. Join the Appverse Affinity Group to connect with other contributors.
References
- CryoSPARC — the application launched by this OOD app
- Open OnDemand — the HPC portal framework
Software Installation
The INSTALL/build_cryosparc4ood.sh script will create a Singularity image which will be used by all users but each user will have their own copy of the database and log files which will be stored in their $SCRATCH directory. Run "build_cryosparc4ood -h" for usage.
Prerequisites
You will need to review and update any of the following as needed
- In the template/script.sh file:
- Update the http_proxy variable if your compute nodes do not have internet access.
- Update the singularity_image= value to the path of the singulairty image.sif file
- Update the user_cryosparc_directory variable if your cluster does not use $SCRATCH
- the $TMPDIR is used on the compute node to write the .lock files which are automatically removed when the $TMPDIR is deleted after a job ends
- configure the ssdquota and quotamax variables
- In the INSTALL/build_cryosparc4ood.sh script
- update nvidia/cuda base image version as needed from https://hub.docker.com/r/nvidia/cuda
- update the nvidia-driver and nvidia-dkms package versions if needed
- remove the --fakeroot singularity option if you do not have it enabled on your cluster
License
Acknowledgments
This work is supported by NSF award number 2112356.