Skip to content

Question about using LigandMPNN in a protein design pipeline and a one_hot runtime error #62

@DazLe-Q

Description

@DazLe-Q

Hello authors,

I am working on a peptide-protein binding design project and am using a computational pipeline that involves RFdiffusion (for backbone generation) -> ProteinMPNN (for sequence design) -> AlphaFold2 (for structure prediction and validation).

I have two questions regarding the potential use of LigandMPNN to replace ProteinMPNN in this pipeline:

Replacing ProteinMPNN with LigandMPNN: Since my goal is to design a peptide that binds to a target protein, I understand that LigandMPNN is specifically designed for tasks with ligand context. Is replacing ProteinMPNN with LigandMPNN in this pipeline a recommended approach for generating high-quality protein-ligand sequences?

Error with pack_side_chains feature: I encountered an error when running LigandMPNN with the pack_side_chains feature enabled. I noticed that this is an optional feature. Is it a mandatory feature for generating high-quality designs, or can I skip it and still get reliable sequences for subsequent experimental validation?

Here is the error and the command I used:

Command:

python ../../run.py \
    --model_type "ligand_mpnn" \
    --pdb_path "./inputs/1BC8.pdb" \
    --out_folder "./outputs/ligandmpnn_default"
    --batch_size 3 \
    --number_of_batches 2 \
    --pack_side_chains 1 \
    --number_of_packs_per_design 1

Traceback:

Packing side chains...
Traceback (most recent call last):
  File "G:\LigandMPNN\run.py", line 990, in <module>
    main(args)
  File "G:\LigandMPNN\run.py", line 526, in main
    sc_dict = pack_side_chains(
                  ^^^^^^^^^^^^^^^^^
  File "G:\LigandMPNN\sc_utils.py", line 114, in pack_side_chains
    xyz14_noised = feats.frames_and_literature_positions_to_atom14_pos(
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "G:\LigandMPNN\openfold\utils\feats.py", line 253, in frames_and_literature_positions_to_atom14_pos
    group_mask = nn.functional.one_hot(
                      ^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: one_hot is only applicable to index tensor.

Thank you for your time and assistance!

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