bytedance / bytedance/Protenix
"ENDMOL tag not found" w/ protenix==1.1.0
- Dominant language
- Python
- Stars
- 2.1k
- Forks
- 310
- PR merge metrics
- No merged PRs in 30d
Description
I installed: `pip install -v protenix==1.1.0` and ran `protenix pred -i /app/examples/input/input.json -o /app/examples/output` where `input.json` = https://github.com/bytedance/Protenix/blob/main/examples/input.json.
This is the result:
```
$ less ERR/user_test.txt
Bad pickle format: ENDMOL tag not found.:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/dist-packages/protenix/data/inference/infer_dataloader.py", line 284, in __getitem__
data, atom_array, _ = self.process_one(
^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/protenix/data/inference/infer_dataloader.py", line 158, in process_one
sample2feat = SampleDictToFeatures(
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/protenix/data/inference/json_to_feature.py", line 39, in __init__
self.input_dict = add_entity_atom_array(single_sample_dict)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/protenix/data/inference/json_parser.py", line 621, in add_entity_atom_array
atom_info = build_polymer(entity_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/protenix/data/inference/json_parser.py", line 364, in build_polymer
chain_array = add_reference_features(chain_array)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/protenix/data/inference/json_parser.py", line 107, in add_reference_features
ref_info = ccd.get_ccd_ref_info(res_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/protenix/data/core/ccd.py", line 244, in get_ccd_ref_info
mol = get_component_rdkit_mol(ccd_code)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/dist-packages/protenix/data/core/ccd.py", line 210, in get_component_rdkit_mol
_ccd_rdkit_mols = pickle.load(f)
^^^^^^^^^^^^^^
RuntimeError: Bad pickle format: ENDMOL tag not found.
```
And this was the stdout before the error:
```
root@e4f6eca57346:/app# protenix pred -i /app/examples/input/input.json -o /app/examples/output
2026-03-28 03:38:49,277 [/usr/local/lib/python3.11/dist-packages/runner/batch_inference.py:814] INFO runner.batch_inference: Run infer with input=/app/examples/input/input.json, out_dir=/app/examples/output, sample=5
2026-03-28 03:38:49,278 [/usr/local/lib/python3.11/dist-packages/runner/batch_inference.py:841] INFO runner.batch_inference: Using default params for model protenix_base_default_v1.0.0: cycle=10, step=200, use_msa=True
2026-03-28 03:38:49,278 [/usr/local/lib/python3.11/dist-packages/runner/batch_inference.py:499] INFO runner.batch_inference: Will infer with 1 jsons
2026-03-28 03:38:49,348 [/usr/local/lib/python3.11/dist-packages/runner/batch_inference.py:403] INFO runner.batch_inference: Inference by Protenix: model_size: base, with_feature: default, model_version: v1.0.0, dtype: bf16
2026-03-28 03:38:49,348 [/usr/local/lib/python3.11/dist-packages/runner/batch_inference.py:408] INFO runner.batch_inference: Triangle_multiplicative kernel: cuequivariance, Triangle_attention kernel: cuequivariance
2026-03-28 03:38:49,348 [/usr/local/lib/python3.11/dist-packages/runner/batch_inference.py:412] INFO runner.batch_inference: enable_diffusion_shared_vars_cache: True, enable_efficient_fusion: True, enable_tf32: True
2026-03-28 03:38:49,348 [/usr/local/lib/python3.11/dist-packages/runner/inference.py:246] INFO runner.inference: Distributed environment: world size: 1, global rank: 0, local rank: 0
2026-03-28 03:38:49,348 [/usr/local/lib/python3.11/dist-packages/runner/inference.py:98] INFO root: LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0,1,2,3,4,5,6]
2026-03-28 03:38:49,348 [/usr/local/lib/python3.11/dist-packages/runner/inference.py:123] INFO root: Kernels will be compiled when fast_layernorm is first called.
2026-03-28 03:38:49,348 [/usr/local/lib/python3.11/dist-packages/runner/inference.py:127] INFO root: Finished environment initialization.
train scheduler 16.0
inference scheduler 16.0
Diffusion Module has 16.0
2026-03-28 03:39:26,178 [/usr/local/lib/python3.11/dist-packages/runner/inference.py:246] INFO runner.inference: Loading from /root/checkpoint/protenix_base_default_v1.0.0.pt, strict: True
2026-03-28 03:39:26,800 [/usr/local/lib/python3.11/dist-packages/runner/inference.py:246] INFO runner.inference: Sampled key: module.input_embedder.atom_attention_encoder.linear_no_bias_ref_pos.weight
2026-03-28 03:39:26,858 [/usr/local/lib/python3.11/dist-packages/runner/inference.py:246] INFO runner.inference: Finish loading checkpoint.
2026-03-28 03:39:26,862 [/usr/local/lib/python3.11/dist-packages/runner/inference.py:246] INFO runner.inference: Model parameters: 368.48M
0%| | 0/1 [00:00=12.6, please update your driver to a newer version, or use an earlier cuda container: unknown.` and wanted to avoid updating my driver if possible so I tried my own install of the most recent Protenix version listed at https://pypi.org/project/protenix/#history
Contributor guide
Research direction
Start with protenix/data/core/ccd.py, especially get_component_rdkit_mol, and then trace the call from protenix/data/inference/json_parser.py. Re-run `protenix pred -i /app/examples/input/input.json -o /app/examples/output` while checking the reported RDKit pickle version warning. Done means the published installation can load the CCD data and complete inference without the ENDMOL error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100