Search Docs by Keyword
CryoSPARC
Description
CryoSPARC is a closed source, commercially-developed piece software for analyzing single-particle cryoelectron microscopy data. It supports CUDA based GPU-accelerated analysis through the PyCUDA library. It consists of several applications which are bundled in two separate binary packages, termed
- CryoSPARC Master (
cryosparcm
) - CryoSPARC Worker
The Master package is meant to use relative little compute resources, and at least some sysadmins seem to have decided to allow users to run this directly on login nodes. CryoSPARC Worker can be run on a separate node or the same node, but typically should have access to GPU compute resources. The worker nodes must have password-less SSH access to the master node as well as unfettered TCP on a number of ports. The authoritative list of requirements for installation can be found in the CryoSPARC guide.
In addition to instantiating worker nodes and connecting them to the Master node, CryoSPARC can also be configured with a “Cluster Lane” which submits jobs via the SLURM job scheduler. This is the install strategy described in this document.
CryoSPARC Master Program
The master program is called with the cryosparcm
command documented here. The major mechanism for customizing the behavior of cryosparcm
is the config file located in cryosparc_master/config.sh
. It has the license, path to the MongoDB database, master hostname, and the base tcp port. Ensure these settings in your config.sh
file are correct or you will experience errors.
See the User Code repo for examples.
CryoSPARC Operation
At the top level, cryosparcm
is really a Supervisor
based shell
script which manages at least six different applications. For instance, running cryosparcm start
will bring up the following applications
- app (cli)
- command_core
- command_rtp
- command_vis
- database (MongoDB)
- webapp
These mostly communicate with one another over TCP
. The TCP
ports used by each of the component programs are not individually configurable, but the base port to which the user connects is configurable in the cryosparc_master/config.sh
. Of note, the hostname of the node running the master application is also typically hardcoded in this config.sh
file. However, if this is left unset, it will take the hostname of the machine on which cryosparcm start
is called.
Obtaining a Free Academic CryoSPARC License
CryoSPARC is free for academic use. However, it does require a license. You can request a license on the CryoSPARC webpage. The process of requesting a license is described in detailed here.
Installing CryoSPARC on Cannon
We provide a configure script to get up and running with CryoSPARC on Cannon, found in our FASRC/User_Codes git repo. When running CryoSPARC, use a GPU computing node so that the correct CUDA modules are loaded and functioning.
Examples
There are example config files for your environment available in FASRC/User_Codes on git to help you get up and running with CryoSPARC, and some additions for your .bashrc
file.