RosettaCommons / RosettaCommons/rosetta
GlycanDock parsing issue, `maintain_links true` ignored ?
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 470
- Forks
- 169
- Avg merge
- 16d 23h
- Merged PRs (30d)
- 2
Description
Hello,
I'm trying to run GlycanDock for a glycan ligand and a protein receptor but it seems to ignore my LINK record structure and replace them with erroneous connections.
The ligand has been generated with PyRosetta so I suppose everything should be fine. I combine it (ligand.pdb) with the receptor (receptor.pdb) in a single file (input_complex.pdb) as chain X and A respectively as the publication suggests. I also use constraints (interface.cst) which is irrelevant here but helps for visualization as without it the erroneous ligand flies away.
receptor.pdb.txt
ligand.pdb.txt
input_complex.pdb.txt
interface.cst.txt
(I added a .txt at the end of the files so that GitHub would accept them as attachments.)
I then proceed to run GlycanDock with the following commands:
#!/bin/bash -e
ROSETTA_BIN="$HOME/programs/rosetta/rosetta.source.release-371/main/source/bin"
GLYCAN_DOCK="$ROSETTA_BIN/GlycanDock.default.macosclangrelease"
mkdir -p "output"
"$GLYCAN_DOCK" \
-include_sugars \
-maintain_links true \
-load_PDB_components false \
-nstruct 10 \
-ncycles 10 \
-carbohydrates:glycan_dock:refine_only true \
-in:file:s "input_complex.pdb" \
-docking:partners A_X \
-cst_fa_file "interface.cst" \
-constraints:cst_fa_weight 1.0 \
-out:path:all "output"
In the terminal, among other logs, I get this:
...
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 578 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 579 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 580 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 582 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 583 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 584 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 587 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 587 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 588 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 589 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 589 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 590 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 591 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 592 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 592 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 593 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 594 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 594 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 595 not properly linked. A patch file for branching from the parent might be missing.
core.io.pose_from_sfr.PoseFromSFRBuilder: [ WARNING ] Carbohydrate residue 596 not properly linked. A patch file for branching from the parent might be missing.
core.conformation.Conformation: Connecting residues: 578 ( ->4)-beta-D-Glcp:->6)-branch ) and 579 ( ->4)-beta-D-Glcp:->6)-branch ) at atoms O6 and O6
core.conformation.Conformation: with mutual distances: 6.86978 and 7.02196
core.conformation.Conformation: Connecting residues: 580 ( ->4)-beta-D-Glcp:->6)-branch ) and 582 ( ->4)-beta-D-Glcp:->6)-branch ) at atoms O6 and O6
core.conformation.Conformation: with mutual distances: 8.55945 and 7.12797
core.conformation.Conformation: Connecting residues: 583 ( ->4)-beta-D-Glcp:->6)-branch ) and 584 ( ->4)-beta-D-Glcp:->6)-branch ) at atoms O6 and O6
core.conformation.Conformation: with mutual distances: 8.79835 and 8.99689
core.conformation.carbohydrates.GlycanTreeSet: Setting up Glycan Trees
core.conformation.carbohydrates.GlycanTreeSet: Found 1 glycan trees.
...
The issue is the connecting residues part which should not be happening as it is messing up the strucutre.
Here's an example output complex, clearly showing an erroneously linked sugar:
Am I doing something wrong with my inputs or is it a bug? I would suppose that maintain_links true would avoid such behaviour.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the GlycanDock command with input_complex.pdb, ligand.pdb.txt, receptor.pdb.txt, and maintain_links true, then inspect the carbohydrate-linking warnings and the generated input_complex_0001.pdb.txt. Trace the GlycanDock and pose-loading entry points responsible for connecting residues. Done means the provided glycan structure is preserved without the erroneous connections.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- bioinformatics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100