Skip to content

Combination of fasta, yaml and yaml (with affinity) information gives error. #448

@Anindyadeep

Description

@Anindyadeep

Hey, first of all, never seen such clean codebase for a while now. Really appreciate it. So I have been running predictions for these three files.

(prot.fasta)

>A|protein
MVTPEGNVSLVDESLLVGVTDEDRAVRSAHQFYER...
>B|protein
MVTPEGNVSLVDESLLVGVTDEDRAVRSAHQFYERLIGLWAP...
>C|ccd
SAH
>D|ccd
SAH
>E|smiles
N[C@@H](Cc1ccc(O)cc1)C(=O)O
>F|smiles
N[C@@H](Cc1ccc(O)cc1)C(=O)O

(pocket.yaml)

>A|protein
MVTPEGNVSLVDESLLVGVTDEDRAVRSAHQFYER....
>B|protein
MVTPEGNVSLVDESLLVGVTDEDRAVRSAHQFYERLI....
>C|ccd
SAH
>D|ccd
SAH
>E|smiles
N[C@@H](Cc1ccc(O)cc1)C(=O)O
>F|smiles
N[C@@H](Cc1ccc(O)cc1)C(=O)O

(affinity.yaml)

version: 1  # Optional, defaults to 1
sequences:
  - protein:
      id: A
      sequence: MVTPEGNVSLVDESLLVGVTDEDRAVRSA....
  - ligand:
      id: B
      smiles: 'N[C@@H](Cc1ccc(O)cc1)C(=O)O'
properties:
  - affinity:
      binder: B

So when I run the following:

boltz predict input_data/ --out_dir output/ --cache volume --use_msa_server

Where these above files are stored in the input_data folder, then I get this error:

Predicting property: affinity

Checking input data for affinity.
Running affinity prediction for 3 inputs.
/usr/local/lib/python3.11/site-packages/pytorch_lightning/utilities/migration/utils.py:56: The loaded checkpoint was produced with Lightning v2.5.0.post0, which is newer than your current Lightning version: v2.5.0
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Predicting: |                                                                                                                                        | 0/? [00:00<?, ?it/s]Traceback (most recent call last):
  File "/usr/local/bin/boltz", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/coder/boltz/src/boltz/main.py", line 1271, in predict
    trainer.predict(
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/trainer/trainer.py", line 859, in predict
    return call._call_and_handle_interrupt(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/trainer/call.py", line 47, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/trainer/trainer.py", line 898, in _predict_impl
    results = self._run(model, ckpt_path=ckpt_path)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/trainer/trainer.py", line 982, in _run
    results = self._run_stage()
              ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/trainer/trainer.py", line 1021, in _run_stage
    return self.predict_loop.run()
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/loops/utilities.py", line 179, in _decorator
    return loop_run(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/loops/prediction_loop.py", line 122, in run
    batch, batch_idx, dataloader_idx = next(data_fetcher)
                                       ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/loops/fetchers.py", line 134, in __next__
    batch = super().__next__()
            ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/loops/fetchers.py", line 61, in __next__
    batch = next(self.iterator)
            ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/utilities/combined_loader.py", line 341, in __next__
    out = next(self._iterator)
          ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pytorch_lightning/utilities/combined_loader.py", line 142, in __next__
    out = next(self.iterators[0])
          ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/torch/utils/data/dataloader.py", line 733, in __next__
    data = self._next_data()
           ^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/torch/utils/data/dataloader.py", line 1515, in _next_data
    return self._process_data(data, worker_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/torch/utils/data/dataloader.py", line 1550, in _process_data
    data.reraise()
  File "/usr/local/lib/python3.11/site-packages/torch/_utils.py", line 750, in reraise
    raise exception
FileNotFoundError: Caught FileNotFoundError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/torch/utils/data/_utils/worker.py", line 349, in _worker_loop
    data = fetcher.fetch(index)  # type: ignore[possibly-undefined]
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/torch/utils/data/_utils/fetch.py", line 52, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/torch/utils/data/_utils/fetch.py", line 52, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
            ~~~~~~~~~~~~^^^^^
  File "/home/coder/boltz/src/boltz/data/module/inferencev2.py", line 219, in __getitem__
    input_data = load_input(
                 ^^^^^^^^^^^
  File "/home/coder/boltz/src/boltz/data/module/inferencev2.py", line 63, in load_input
    structure = StructureV2.load(
                ^^^^^^^^^^^^^^^^^
  File "/home/coder/boltz/src/boltz/data/types.py", line 33, in load
    return cls(**np.load(path, allow_pickle=True))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/numpy/lib/npyio.py", line 427, in load
    fid = stack.enter_context(open(os_fspath(file), "rb"))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'output/boltz_results_input_data/predictions/something/pre_affinity_something.npz'

Predicting: |          | 0/? [00:04<?, ?it/s]                                                                                                                              
root@modal:/home/coder# 

Basically it is not checking from the manifest, on whether some file has affinity computation calculation or not. Would be great to have an enhancement to compute every type of files (with or w/o affininty info at the same time)

Also this is the output file structure it generates

output/boltz_results_input_data/predictions/
├── aff
│   ├── aff_model_0.cif
│   ├── confidence_aff_model_0.json
│   ├── pae_aff_model_0.npz
│   ├── pde_aff_model_0.npz
│   ├── plddt_aff_model_0.npz
│   └── pre_affinity_aff.npz
├── pocket
│   ├── confidence_pocket_model_0.json
│   ├── pae_pocket_model_0.npz
│   ├── pde_pocket_model_0.npz
│   ├── plddt_pocket_model_0.npz
│   └── pocket_model_0.cif
└── something (this was prot.fasta file)
    ├── confidence_something_model_0.json
    ├── pae_something_model_0.npz
    ├── pde_something_model_0.npz
    ├── plddt_something_model_0.npz
    └── something_model_0.cif

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions