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.
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 0Generate 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 \
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