-
Notifications
You must be signed in to change notification settings - Fork 4
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
Coupled Homology #290
Coupled Homology #290
Conversation
The IDs of the removed PDBs are: 2ydo |
It is downloading the PDBs, opening the receptors and alpha subunits, uprighting the assemblies, and outputing them beautifully to example coupled PDBs. Next step will be to examine the mTAAR9-hGNAS2 examples having different ligands, and see how much they vary in order to estimate whether "soft" docks will be necessary. Soft docking is far more CPU intensive than normal docking. A small variance between models may mean that soft docking would not be important, but ORs have "softer" binding pockets than TAARs. Then there will have to be some kind of layer between the coupled PDBs and the PrimaryDock app, or else a new feature internal to the app, to do the conformational change of the OR in parallel to the coupled PDB and its inactive counterpart. This functionality will first apply the changes to activate the inactive OR for a given G protein, then fine-tune the receptor's shape to optimize G protein contact, optimize internal contacts such as Y6.55-D/E45.51, and minimize clashes. Finally, the custom tuned receptor will be ready for dock. |
The results are looking great! Recall that we want to create coupled versions of the odor receptor PDBs and store them in the |
Also, hydrogenate means hydrogenate. Not add a bunch of non-coplanar heavy pi atoms that cause warnings in the program output.
…dors/primarydock into ssepeq-coupled-homology
…dors/primarydock into ssepeq-coupled-homology
This is almost ready, just have to figure out how best to fit in reshaping the receptors to minimize internal clashes and clashes with the G protein. It's making promising looking predictions so far. I'm thinking of readying this for merge and starting on a UI feature that would display predictions on the odorant page in the web app. |
Test succeeded. |
@@ -699,12 +714,6 @@ AminoAcid::AminoAcid(const char letter, AminoAcid* prevaa, bool minintc) | |||
Atom* CA = get_atom("CA"); | |||
Atom* CB = get_atom("CB"); | |||
|
|||
if (CA && CB) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does deleting this block have a favorable effect on clashes in peptides?
src/classes/aminoacid.cpp
Outdated
@@ -1958,12 +1969,57 @@ void AminoAcid::hydrogenate(bool steric_only) | |||
if (!oxt->get_bond_between(C)) oxt->bond_to(C, 1); | |||
} | |||
|
|||
int i, j, k, l, n; | |||
|
|||
if (residue_no == 349) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like some debug code didn't get removed.
src/classes/constants.h
Outdated
@@ -328,7 +335,7 @@ | |||
#define _dbg_null_flexions 0 | |||
#define _dbg_repack 0 | |||
#define _dbg_multiflex 0 | |||
#define _dbg_homology 0 | |||
#define _dbg_homology 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All debug constants are to be turned off for production.
src/classes/atom.cpp
Outdated
@@ -1170,7 +1170,7 @@ Bond* Atom::get_bond_by_idx(int bidx) | |||
|
|||
void Atom::consolidate_bonds() | |||
{ | |||
|
|||
// |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does this function do? If it is not in use, we should remove it.
src/classes/intera.cpp
Outdated
return anomaly; | ||
} | ||
|
||
float InteratomicForce::covalent_bond_radius(Atom* a, Atom* b, float cardinality) | ||
{ | ||
if (!read_forces_dat && !reading_forces) read_all_forces(); | ||
InteratomicForce** retval = new InteratomicForce*[16]; | ||
init_nulls(retval, 16); | ||
/*InteratomicForce** retval = new InteratomicForce*[16]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should remove this dead code.
IF %motif > 0 THEN ECHO "Found PMLNPLIYSLRNKD motif at " %motif | ||
|
||
SEARCH 1 %SEQLENA "XXXXXXXXXX$" %motif | ||
IF %motif > 0 THEN ECHO "Found KLFNKRISS motif at " %motif |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should just say terminal motif or XXXX$ motif, rather than assuming the sequence.
@@ -4,7 +4,7 @@ Point pt is not in bounding box [pt1, pt2]. | |||
Point pt3 is in bounding box [pt1, pt2]. | |||
Points pt and pt1 are 90 degrees apart relative to [0,0,0]. | |||
SCoord v from point pt5 has r=3.55809, theta=60.6047, phi=246.371. | |||
Point pt6 from SCoord v is 3.57628e-07 Angstroms from pt5. | |||
Point pt6 from SCoord v is 3.52537e-07 Angstroms from pt5. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can this be rounded down to zero, or else just indicated that it's less than some threshold value?
@@ -47,6 +47,8 @@ | |||
"6.40" => "HCMDENQ", | |||
]; | |||
|
|||
$gprots = [ "hGNAL", "hGNAS2", "hGNAQ", "hGNAO1" ]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be preferable to make this a dynamic list vs. hard coded.
Feel free to open an issue if this would be more than a quick 15 minute task.
@@ -71,7 +73,52 @@ function load_viewer(obj) | |||
$("[type=file]", embdd.contentDocument).hide(); | |||
var filediv = $("#filediv", embdd.contentDocument)[0]; | |||
|
|||
<?php if (file_exists("../pdbs/coupled/$fam/{$rcpid}_hGNAL.pdb")) { ?> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't rely on GNAL being always present; if any G protein coupled model exists, it should trigger the appearance of the dropdown.
Not wanting to wait for the requested changes on this ticket, the 3 letter fix has been added to |
printf "${RED}TAAR test FAILED: bad contacts.${NC}\n" | ||
else | ||
printf "${GRN}TAAR test succeeded.${NC}\n" | ||
if [ -z "$TAARPDB" ]; then | ||
printf "${RED}TAAR test FAILED: bad PDB data.${NC}\n" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's also add the 3 letter test to the d-limonene test dock.
PR rejected. |
This is mutually exclusive with #286 and #289 as there would be many conflicts due to copied code.
Trying something different. If we can do homologous conformational changes to ORs based on the OR51E2 cryo-EM, then why not for the mTAAR9 cryo-EMs and various other experimental models of coupled GPCRs. The placement of the G protein can be part of the homology model.