-
Notifications
You must be signed in to change notification settings - Fork 141
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
Optimisation of flexible side chains #73
Conversation
breaking flexible residues
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 I'm envisioning is a clean break between molgridlayer and gnina where gnina says to molgrid "these are the receptor atoms", "these are the ligand atoms" and molgrid doesn't need to worry if what's flexible or not - all molgrid needs are the types and coordinates. This means you need to splice together rigid and flexible atoms (and then separate them) but seems like a much cleaner interface to me.
If a class variable is used to assemble/dissassemble the atoms, this should be relatively efficient (no need to allocate/deallocate memory, just copying a few numbers).
@dkoes, thanks for the code review and the comments.
Isn't this similar to what I'm doing (after @Jsunseri code review)?
which explicitly differentiate between ligand and receptor atoms (both flexible and not; flexible ones are just put at the beginning and tracked with The functions I think the current implementation is very similar to what you describe (since there are almost no changes to |
A possible improvement I see at the moment is that |
Updated PR description to reflect latest changes. |
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.
At first glance, isn't obvious to me why you aren't clearing a vector
GSoC 2019
Goal
Implement optimisation of flexible side chains using the CNN scoring function.
Tasks:
Changes
--cnn_freeze_receptor
) when minimising with CNN scoring function (--cnn_scoring --minimize
)CNNScorer::ligand_coords
andCNNScorer::ligand_smtypes
attributes to store ligand coordinates andsmina
atom typesCNNScorer::receptor_coords
andCNNScorer::receptor_smtypes
attributes to store receptor coordinates andsmina
atom typesCNNScorer::setReceptor
andCNNScorer::setLigand
private members to automatically fillCNNScorer::ligand_coords
,CNNScorer::ligand_smtypes
,CNNScorer::receptor_coords
and andCNNScorer::receptor_smtypes
frommodel::atoms
,model::coorsd
andmodel::grid_atoms
MolGRidDayaLayer::setReceptor
andMolGRidDayaLayer::setLigand
API, accepting ligand/receptor coordinates and smina atom typesCNNScorer::setGradient
private member correctly extracting ligand (and flexible residues) gradient fromMolGridDataLayer
.gnina
bannerFlexInfo::printFlex
function