ml-struct-bio/cryodrgn

analyze error: assert m is not None

siayouyang opened this issue · 7 comments

after training for 50 epochs successfully
(INFO) (train_vae.py) (03-Feb-24 12:24:59) # =====> Epoch: 50 Average gen loss = nan, KLD = 4174575710066.985352, total loss = nan; Finished in 1:11:20.645890
(INFO) (train_vae.py) (03-Feb-24 12:24:59) Evaluating z
(INFO) (train_vae.py) (03-Feb-24 12:26:15) Training complete
(INFO) (train_vae.py) (03-Feb-24 12:26:15) Evaluating z
(INFO) (train_vae.py) (03-Feb-24 12:27:31) Finished in 2 days, 12:38:56.559360 (1:12:46.731187 per epoch

run:
nohup cryodrgn analyze 00_J602_vae256 49 --Apix 1.0825 &

error messages:
(INFO) (eval_vol.py) (03-Feb-24 15:32:03) Finished in 0:12:23.313976
(INFO) (analyze.py) (03-Feb-24 15:32:03) Running UMAP...
(INFO) (analyze.py) (03-Feb-24 15:35:14) Generating plots...
Traceback (most recent call last):
File "/home/xyy/anaconda3/envs/cryodrgn/bin/cryodrgn", line 8, in
sys.exit(main())
File "/home/xyy/anaconda3/envs/cryodrgn/lib/python3.9/site-packages/cryodrgn/main.py", line 74, in main
args.func(args)
File "/home/xyy/anaconda3/envs/cryodrgn/lib/python3.9/site-packages/cryodrgn/commands/analyze.py", line 443, in main
analyze_zN(
File "/home/xyy/anaconda3/envs/cryodrgn/lib/python3.9/site-packages/cryodrgn/commands/analyze.py", line 140, in analyze_zN
loss = analysis.parse_loss(f"{workdir}/run.log")
File "/home/xyy/anaconda3/envs/cryodrgn/lib/python3.9/site-packages/cryodrgn/analysis.py", line 29, in parse_loss
assert m is not None
AssertionError

Just wanted to add, same issue here.
0.73A images of box size 600, downsampled to 256. Trained on 100 epochs with 1024 x 3 architecture with no error messages. Ran:
cryodrgn analyze J319_vae256_1 99 --Apix 1.7109375

Error seemed to occur when trying to plot the UMAPs, and correspondingly, there are no UMAP outputs in the analyze directory, but the kmeans volumes and PC1/2 directories are present.

Error output:
(INFO) (eval_vol.py) (04-Feb-24 20:35:09) Finished in 0:02:37.054760
(INFO) (analyze.py) (04-Feb-24 20:35:09) Running UMAP...
(INFO) (analyze.py) (04-Feb-24 20:36:03) Generating plots...
Traceback (most recent call last):
File "/home/xyz/miniconda3/envs/cryodrgn/bin/cryodrgn", line 8, in
sys.exit(main())
File "/home/xyz/miniconda3/envs/cryodrgn/lib/python3.10/site-packages/cryodrgn/main.py", line 74, in main
args.func(args)
File "/home/xyz/miniconda3/envs/cryodrgn/lib/python3.10/site-packages/cryodrgn/commands/analyze.py", line 443, in main
analyze_zN(
File "/home/xyz/miniconda3/envs/cryodrgn/lib/python3.10/site-packages/cryodrgn/commands/analyze.py", line 140, in analyze_zN
loss = analysis.parse_loss(f"{workdir}/run.log")
File "/home/xyz/miniconda3/envs/cryodrgn/lib/python3.10/site-packages/cryodrgn/analysis.py", line 29, in parse_loss
assert m is not None
AssertionError

Thanks!

Is there any update here?

I trained successfully with cryodrgn3.1 and got same error when UMAP is calculated during analysis step.

**

.....(INFO) (eval_vol.py) (22-Apr-24 15:23:59) [-1.54320431 -0.55205655 -0.76349568 -1.33955109 -0.30333209 -0.23093295
-0.46337044 0.84459388]
(INFO) (eval_vol.py) (22-Apr-24 15:24:02) Finished in 0:00:27.171158
(INFO) (analyze.py) (22-Apr-24 15:24:02) Running UMAP...
/usr/struct_bio/anaconda3/envs/cryodrgn-3.2.0-beta/lib/python3.10/site-packages/numba/np/ufunc/parallel.py:371: NumbaWarning: The TBB threading layer requires TBB version 2021 update 6 or later i.e., TBB_INTERFACE_VERSION >= 12060. Found TBB_INTERFACE_VERSION = 12050. The TBB threading layer is disabled.
warnings.warn(problem)
(WARNING) (utils.py) (22-Apr-24 15:29:17) Warning: analyze_00_vae192_k10/umap.pkl already exists. Overwriting.
(INFO) (analyze.py) (22-Apr-24 15:29:17) Generating plots...
Traceback (most recent call last):
File "/usr/struct_bio/anaconda3/envs/cryodrgn-3.2.0-beta/bin/cryodrgn", line 8, in
sys.exit(main_commands())
File "/usr/struct_bio/anaconda3/envs/cryodrgn-3.2.0-beta/lib/python3.10/site-packages/cryodrgn/command_line.py", line 65, in main_commands
_get_commands(
File "/usr/struct_bio/anaconda3/envs/cryodrgn-3.2.0-beta/lib/python3.10/site-packages/cryodrgn/command_line.py", line 60, in _get_commands
args.func(args)
File "/usr/struct_bio/anaconda3/envs/cryodrgn-3.2.0-beta/lib/python3.10/site-packages/cryodrgn/commands/analyze.py", line 443, in main
analyze_zN(
File "/usr/struct_bio/anaconda3/envs/cryodrgn-3.2.0-beta/lib/python3.10/site-packages/cryodrgn/commands/analyze.py", line 140, in analyze_zN
loss = analysis.parse_loss(f"{workdir}/run.log")
File "/usr/struct_bio/anaconda3/envs/cryodrgn-3.2.0-beta/lib/python3.10/site-packages/cryodrgn/analysis.py", line 29, in parse_loss
assert m is not None
AssertionError

**