primaryodors / primarydock

PrimaryOdors.org molecular docker.
Other
6 stars 4 forks source link

G-protein based reshaping #268

Closed electronicsbyjulie closed 1 year ago

electronicsbyjulie commented 1 year ago

This PR contains a facility for coupling two proteins, altering the shape of one to conform to the other.

electronicsbyjulie commented 1 year ago

There is a hydrophobic pocket in the cryo-EM model formed by I125, I220, V224, L227 of OR51E2 and L388, L393, L394 of GNAS. As these are not direct contacts between individual aminos but rather a general grouping, there ought to be a way to define such a thing as another form of contact point.

Originally posted by @ssepeq in https://github.com/primaryodors/primarydock/issues/260#issuecomment-1585667301

I125 is part of the MAYDRYVAIC motif. Trying using these as ordinary contacts for now.

primaryodors commented 1 year ago

So this is working now? Ready to run the Big Three tests and then merge?

Then onward to unit tests?

electronicsbyjulie commented 1 year ago

I want to at least get this cronned on the local server. Have to test ORs that have an EXR salt bridge, and write a cronnable PHP script.

primaryodors commented 1 year ago

There's already a PHP script at predict/generate_couple.php, isn't it already set up on the server cron?

electronicsbyjulie commented 1 year ago

And it's failing on OR1A1 + hGNAL.

couple: malloc.c:2379: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed.
Aborted (core dumped)
electronicsbyjulie commented 1 year ago

This is not working. This is not even close to working. OR1A1 is failing horribly with both GNAS and GNAL.

primaryodors commented 1 year ago

Time to put this aside and work on the unit tests.

electronicsbyjulie commented 1 year ago

😭

electronicsbyjulie commented 1 year ago

About to start running the cron on the server. OR1A1 is fixed. Switching gears to the unit tests.

electronicsbyjulie commented 1 year ago

Though the cron has just begun, it has so far identified a handful of OR1A1 agonists that bind better to the G-protein-coupled PDBs than to the inactive PDB. One example:

        "geraniol":
        {
            "inactive": 13.386333333333333,
            "version": 1686708796,
            "Actual": "Agonist",
            "hGNAL": -2.7592,
            "Predicted": "Agonist",
            "hGNAS2": -8.30297
        },

Letting it run for several days to collect more data for predictions. As yet, no non-agonists have been processed. Importantly, not all agonists are giving negative energies in the coupled PDBs, though all but one (dihydrojasmone) give better energies for at least one of the coupled PDBs compared to the inactive model. The ability to expand into other G-proteins will be important, and more work is necessary for the docking itself, which is currently using tumble spheres instead of best-binding.

primaryodors commented 1 year ago

Remember that the goal is not simply to identify agonists, but to reliably distinguish agonists from non-agonists.

Since the protein coupling was the original point of this PR, and that seems to be working well, let's go ahead and test the big three tests and if that looks good then this can be merged. The precise details of protein coupling can be addressed in future issues and PRs. It's fine to include the new prediction method, since having any up to date method is better than not having one, however further development on predictions should also happen in future PRs.

electronicsbyjulie commented 1 year ago

The aminos calculate differently on the local machine vs. the server, so it was important to check in the amino acid SDFs and round the similarities in the grid to the nearest 0.02.

🟩...

electronicsbyjulie commented 1 year ago

🟩🟩🟥

electronicsbyjulie commented 1 year ago

Molecular "ESP" stopped working with the new conform_molecules() function. Restoring that might fix the OR1A1 test.

electronicsbyjulie commented 1 year ago

The problem arises from best-binding not taking the pocket shape into account and pointing the molecule "sideways" when it should be placed in a "vertical" position.

primaryodors commented 1 year ago

Not thrilled to hear that functionality was lost in the rewrite of the multi-molecule function, but let's put the "ESP" feature on hold for now. After finishing this PR, we can rename that feature to "lookahead" and implement it in a new branch.

The big three tests were working before the code changes in this PR. It would be best to start by going backwards through the git log until the test begins working again, in order to narrow down which code change caused it to fail. Then that change should be manually removed from the latest commit.

electronicsbyjulie commented 1 year ago

🟩🟩🟩

electronicsbyjulie commented 1 year ago

It is giving results no better than chance. I'm turning off the cron.

Results for OR1A1:
56 correct predictions (37.33%).
  65 false positives.
  29 false negatives.

Results for OR1A2:
9 correct predictions (47.37%).
  5 false positives.
  5 false negatives.

Results for OR1B1:
2 correct predictions (100%).
  0 false positives.
  0 false negatives.

Results for OR1C1:
3 correct predictions (7.32%).
  24 false positives.
  14 false negatives.

Results for OR1D2:
9 correct predictions (21.95%).
  0 false positives.
  32 false negatives.

Total:
79 correct predictions (31.23%).
  94 false positives.
  80 false negatives.
electronicsbyjulie commented 1 year ago

Uncommenting the template line is causing the TMR5 and TMR6 regions to pivot too much, breaking contact with the hydrophobic pocket and resulting in clashes with side chain atoms of TMR3.

electronicsbyjulie commented 1 year ago

Prolines confuse the new connection code. Also, residues are getting strewn somehow.

electronicsbyjulie commented 1 year ago

🟩🟩🟩

electronicsbyjulie commented 1 year ago

Getting some really nice docks spot checking receptors with known agonists.

OR1D2_hGNAL_bourgeonal.dock.txt OR1D2_hGNAL_floralozone.dock.txt OR2T34_hGNAL_floralozone.dock.txt OR2AG1_hGNAS2_isoamyl acetate.dock.txt