Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making sense of PDB files generated by DiffDock-PP #10

Open
PatWalters opened this issue May 9, 2023 · 4 comments
Open

Making sense of PDB files generated by DiffDock-PP #10

PatWalters opened this issue May 9, 2023 · 4 comments

Comments

@PatWalters
Copy link

Thank you for providing an example showing how to run DiffDock-PP inference with PDB files. I was able to run the example you provided, but I'm confused by the output. The pdb files generated by the inference script don't look like protein structures. As an example, consider the reference receptor for the 1A2K example. If I look at only the alpha carbons for the 1A2K_r_b.pdb I see this, which looks like a normal protein structure.

image

However the resulting protein and ligand pdb files look nothing like proteins. Is this a bug or am I missing something?

image
@aretasg-alchemab
Copy link

aretasg-alchemab commented May 26, 2023

I would be interested in an answer too. I am confused as to why a "rigid" docking tool attempts to alter the receptor conformation in any way.

@grahamtholt
Copy link

grahamtholt commented Jun 11, 2023

I believe that this is an issue with the format of the output PDB files. It does not appear to me that conformations are being altered. You can confirm this by viewing the "spheres" representation in PyMol, it shows C_alpha atoms in the correct places.

I have found that modifying the output PDB files in the following manner allows PyMol to correctly display the C_alpha trace:

  • Remove the extra chain code character present in column 23
  • Add residue numbers in columns 23-26

For more info see the ATOM record guidelines found here, among other places.

My guess is that this is just a minor bug in the PDB write code.

@PatWalters
Copy link
Author

Thank you, @grahamtholt, that was incredibly helpful. I found that I could fix the pdb files with three lines of code using Prody.

import prody

def fix_pdb(infile_name, outfile_name):
    prot = prody.parsePDB(infile_name)
    prody.writePDB(outfile_name, prot)

You can also add the code below to make Prody less chatty.

prody.confProDy(verbosity='critical')

@Sue-Fwl
Copy link

Sue-Fwl commented Oct 26, 2024

Hello @PatWalters,
Can you please share the method you parsed with the output list of HeteroData? I couldn't find much clues in the repo.
Running the example file a list of HeteroData were returned in the pickle file and I couldn't find much data to parse into a pdb file.

HeteroData( name='1A2K', center=[1, 3], receptor={ pos=[248, 3], x=[248, 1281], }, ligand={ pos=[196, 3], x=[196, 1281], }, (receptor, contact, receptor)={ edge_index=[2, 4960] }, (ligand, contact, ligand)={ edge_index=[2, 3920] } ), inf)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants