ExcitedStates / qfit-3.0

qFit: Automated and unbiased multi-conformer models from X-ray and EM maps.
MIT License
35 stars 11 forks source link

qFit-ligand failed to produce any valid conformers #330

Closed ndmaduro closed 5 months ago

ndmaduro commented 1 year ago

When running qfit_ligand on two different structures containing a 3-sugar carbohydrate ligand I get two errors:

1) MainProcess qfit.qfit : qFit-ligand failed to produce a valid conformer. 2) MainProcess qfit.qfit_ligand : qFit-ligand failed to produce any valid conformers.

This is despite conformers being found in the earlier stages:

"2023-04-24 16:34:52,832 [INFO ] MainProcess qfit.qfit : Starting local search 2023-04-24 16:34:54,197 [INFO ] MainProcess qfit.qfit : Converting conformers to density 2023-04-24 16:34:54,887 [INFO ] MainProcess qfit.qfit : Solving QP 2023-04-24 16:34:55,155 [INFO ] MainProcess qfit.qfit : Converting conformers to density 2023-04-24 16:34:55,159 [INFO ] MainProcess qfit.qfit : Solving MIQP 2023-04-24 16:34:55,184 [INFO ] MainProcess qfit.qfit : Starting sample internal dofs 2023-04-24 16:34:55,200 [INFO ] MainProcess qfit.qfit : Nconf: 72 2023-04-24 16:34:55,200 [INFO ] MainProcess qfit.qfit : Converting conformers to density 2023-04-24 16:34:55,241 [INFO ] MainProcess qfit.qfit : Solving QP 2023-04-24 16:34:55,244 [INFO ] MainProcess qfit.qfit : Converting conformers to density 2023-04-24 16:34:55,246 [INFO ] MainProcess qfit.qfit : Solving MIQP 2023-04-24 16:34:56,724 [INFO ] MainProcess qfit.qfit : Nconf: 1296 2023-04-24 16:34:56,724 [INFO ] MainProcess qfit.qfit : Converting conformers to density 2023-04-24 16:34:57,679 [INFO ] MainProcess qfit.qfit : Solving QP 2023-04-24 16:34:58,042 [INFO ] MainProcess qfit.qfit : Converting conformers to density 2023-04-24 16:34:58,049 [INFO ] MainProcess qfit.qfit : Solving MIQP 2023-04-24 16:34:59,596 [INFO ] MainProcess qfit.qfit : Nconf: 1296 2023-04-24 16:34:59,597 [INFO ] MainProcess qfit.qfit : Converting conformers to density 2023-04-24 16:35:00,551 [INFO ] MainProcess qfit.qfit : Solving QP 2023-04-24 16:35:00,903 [INFO ] MainProcess qfit.qfit : Converting conformers to density 2023-04-24 16:35:00,909 [INFO ] MainProcess qfit.qfit : Solving MIQP 2023-04-24 16:35:00,946 [INFO ] MainProcess qfit.qfit : Nconf: 0"

I know that modeling alternate conformations for the ligand is possible, as I've done this with Ensemble Refinement (ER) in Phenix. However, the result I get there is poorer than I had hoped (I have significant patches of negative density, despite ~80 conformations modeled). I do know that I had to restrain the portion of the ligand that's known to bind in a specific conformation for ER because it relies on pseudo-molecular dynamics, otherwise the ligand ends up unbound (this is not unexpected, due to the nature of the ligand). Am I maybe running into the same issue here? Or is this maybe due to the poor ligand density outside of the region which binds the active site?

I've attached the full Qfit-log and an image of the electron density at 1 sigma for the ligand (in green; well defined portion of the ligand is to the right side). Unfortunately, the structure is not yet published and I cannot share the map & coordinates.

Software & OS Version:

qfit_ligand.log

Screen Shot 2023-04-24 at 5 00 01 PM
blake-riley commented 1 year ago

Hi Nick, Thanks for giving qFit a spin. Understood re not being able to share the map & coordinates.

As you admit, that sugar you present in the screenshot doesn't have particularly strong supporting density outside of the active site. If the portion that binds the active site suggests full occupancy (and assuming there's nothing else funky going on with your ligand), then the ideal model (imo) would be a few altconfs for this portion of your ligand, and a few waters in this pocket that have corresponding altconfs. If the ligand's not there, then something else has to fill in the space.

To answer your question --- no, we're not running any sort of molecular dynamics, so restraints aren't gonna be the issue here. qFit enumerates a bunch of feasible conformations (rigid body and rotations in QFitLigand), and then evaluates fit to density. "Sample and select". I think it's due to the density outside the active-site binding region.

My suggestions for paths forward:

  1. I would (with caution, it uses a lot of file space for qfit_protein) turn on --write-intermediate-conformers just to see what 'conformational sampling' qFit is doing before it does its scoring. Recent investigation has also highlighted that the BIC routine needs to be retuned for qfit_ligand, so --no-threshold-selection might be useful to prevent qFit from trying to be parsimonious in its selection. These flags are unlikely to solve the problem, but might help diagnose it.

  2. I would then look at using a different map. While we recommend (and you used!) composite omit maps because they tend to reduce model bias, there's no reason qFit can't be used with different maps (or that a different map would aid you in model building more generally). Depending how far out your ligand protrudes from the surface of your protein, you may find a polder omit map helps reveal the weak density around your ligand.

I hope this is somewhat helpful? LMK if you get anywhere with this / how you fix it. Good luck! Blake