Calculating Pose Errors
To measure differences in pose rotations, use the script metrics/pose_error/rot_error.py
:
$ conda activate cryodrgn_bench
(cryodrgn_bench)$ python ~/dev/CryoBench/metrics/pose_error/rot_error.py cryobench_input/003_IgG-1D_cdrgn2/ IgG-1D/combined_poses.pkl --epoch 19 --labels IgG-1D/gt_latents.pkl --save-err cBench-output_rot-error/cdrgn2_003/ -N 1000
(INFO) (rot_error.py) (31-Oct-24 15:31:54) data and method: None, cryodrgn
[mean; median] rotation errors:
| Frobenius | Geodesic
-----------------------------------------------
Class 0 | 2.28629; 0.01434 | 48.8299; 4.85279
Class 1 | 2.25831; 0.01280 | 48.1765; 4.58377
Class 2 | 2.32355; 0.01326 | 49.4976; 4.66694
Class 3 | 2.26333; 0.01263 | 48.2141; 4.55397
Class 4 | 2.31252; 0.01367 | 49.2712; 4.73768
Class 5 | 2.38035; 0.01424 | 50.5677; 4.83671
Class 6 | 2.17202; 0.01145 | 46.4500; 4.33566
Class 7 | 2.38993; 0.01375 | 50.8914; 4.75143
Class 8 | 2.42007; 0.01272 | 51.4988; 4.57106
Class 9 | 2.34367; 0.01104 | 49.8928; 4.25786
Class 10 | 2.48324; 0.01191 | 52.4141; 4.42310
Class 11 | 2.34483; 0.01060 | 49.7976; 4.17073
Class 12 | 2.40204; 0.01191 | 50.8825; 4.42174
Class 13 | 2.34567; 0.00995 | 49.9040; 4.04298
Class 14 | 2.19823; 0.00946 | 46.7401; 3.94062
Class 15 | 2.25355; 0.00845 | 48.0625; 3.72419
Class 16 | 2.30888; 0.00877 | 49.0484; 3.79437
Class 17 | 2.32488; 0.00960 | 49.4834; 3.97099
To calculate translation errors, use the script metrics/pose_error/trans_error.py
:
(cryodrgn_bench)$ python ~/dev/CryoBench/metrics/pose_error/trans_error.py 003_IgG-1D_cdrgn2/pose.29.pkl IgG-1D/combined_poses.pkl --rot IgG-1D/combined_poses.pkl --s1 128 --s2 128 --save-err cryobench_output/IgG-1D/
Mean error: 5.941426
Median error: 6.259296
offset3d: [[ 1.887853 -1.124303 6.08783 ]]
Mean error after adjustment: 4.046715
Median error after adjustment: 3.881309
Currently supported output formats for this analysis are cryoDRGN, DRGN-AI, and CryoSPARC
Last updated