CryoPROS on Biowulf

CryoPROS is a computational framework specifically designed to tackle misalignment errors caused by preferred orientation issues in single-particle cryo-EM. It addresses these challenges by co-refining synthesized and experimental data. By utilizing a self-supervised deep generative model, cryoPROS synthesizes auxiliary particles that effectively eliminate these misalignment errors through a co-refinement process.

References:

Documentation
Important Notes
Interactive job
Interactive jobs should be used for debugging, graphics, or applications that cannot be run as batch jobs.

Allocate an interactive session and run the program. Sample session for cryopros-train and cryopros-generate (user input in bold, check tutorial for other steps):

[user@biowulf]$ sinteractive --gres=gpu:v100x:2,lscratch:100 --cpus-per-task=8 --mem=40g
salloc: Pending job allocation 5879778
salloc: job 5879778 queued and waiting for resources
salloc: job 5879778 has been allocated resources
salloc: Granted job allocation 5879778
salloc: Waiting for resource configuration
salloc: Nodes cn4466 are ready for job

[user@cn4466 ~]$ module load cryopros
[user@cn4466 ~]$ cryopros-train --help
[user@cn4466 ~]$ cd /lscratch/$SLURM_JOBID
[user@cn4466 ~]$ cp -r $CRYOPROS_EXAMPLES ./
[user@cn4466 ~]$ cd examples
[user@cn4466 examples]$ cryopros-train \
> --opt $TRAIN_OPT \
> --gpu_ids 0 2 \
> --task_name HAtrimer_iteration_1 \
> --box_size 256 \
> --Apix 1.31 \
> --volume_scale 50 \
> --init_volume_path 6idd_align_lp10.mrc \
> --data_path T00_HA_130K-Equalized-Particle-Stack.mrcs \
> --param_path autorefinement.star \
> --invert \
> --dataloader_batch_size 8 \ 
> --dataloader_num_workers 0
Generate auxiliary particles:
[user@cn4466 examples]$ export CUDA_VISIBLE_DEVICES=0
[user@cn4466 examples]$ cryopros-generate \
> --model_path HAtrimer_iteration_1.pth \
> --param_path autorefinement.star \
> --output_path generated_HAtrimer_iteration_1 \
> --gen_name HAtrimer_iteration_1_generated_particles \
> --batch_size 50 \
> --box_size 256 \
> --Apix 1.31 \
> --invert \
> --gen_mode 2 \
Sbatch job


cryopros-train sample session (user input in bold):


[user@biowulf]$ cat << 'EOS' > cryopros_train.sh 
> #!/bin/bash
> ml cryopros
> cryopros-train \
> --opt $TRAIN_OPT \
> --gpu_ids 0 2 \
> --task_name HAtrimer_iteration_1 \
> --box_size 256 \
> --Apix 1.31 \
> --volume_scale 50 \
> --init_volume_path 6idd_align_lp10.mrc \ 
> --data_path T00_HA_130K-Equalized-Particle-Stack.mrcs \ 
> --param_path autorefinement.star \ 
> --invert \ 
> --dataloader_batch_size 8 \ 
> --dataloader_num_workers 0 
> EOS
[user@biowulf]$ sbatch --partition=gpu --gres=gpu:v100x:2 --cpus-per-task=8 --mem=40g cryopros_train.sh


cryopros-generate sample session (user input in bold):


[user@biowulf]$ cat << 'EOS' > cryopros_generate.sh 
> export CUDA_VISIBLE_DEVICES=0
> cryopros-generate \
> --model_path HAtrimer_iteration_1.pth \
> --param_path autorefinement.star \
> --output_path generated_HAtrimer_iteration_1 \
> --gen_name HAtrimer_iteration_1_generated_particles \
> --batch_size 50 \
> --box_size 256 \
> --Apix 1.31 \
> --invert \
> --gen_mode 2
> EOS
[user@biowulf]$ sbatch --partition=gpu --gres=gpu:v100x:1 --cpus-per-task=8 --mem=30g cryopros_generate.sh