-
Notifications
You must be signed in to change notification settings - Fork 13
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
pocket mode=specific is not callable #9
Comments
This is quite late, but I finally have some time to push some changes and wanted to follow up on this. If you don't mind looking back, what options did you supply to run in specific mode? I think I will add an option to prevent falling back to default behavior and add better log information to explain unexpected behavior like this. |
I also meet the issue when trying to use |
I realize that the code is unhelpfully opaque here. Any PyMOL inputs get cleaned up to remove improperly formatted inputs and then are processed with calls into PyMOL. The 'largest' mode is the default, so if the specification fails it reverts to that behavior but apparently without enough transparency. @bertadenes in your case it doesn't like the residue selection. That must be a PyMOL selection string that specifies the residue. If you want to use the residue number, the 'resid' parameter is the correct alternative. @Christinele14 can you provide the generated config file? |
Because it met error, the config file cannot be generated. Here is the cfg file I used to run pyvol with specific mode together with a ligand which binds with protein in the pocket I would like to calculate volume.
|
Hey all, I've stumbled upon this issue today. The documentation is indeed pretty opaque about this. The relevant piece of code is in identify.py: elif opts.get("mode") == "specific":
if opts.get("coordinates") is not None:
coordinate = opts.get("coordinates")
logger.info("Specific pocket identified from coordinate: {0}".format(opts.get("coordinates")))
elif opts.get("resid") is not None:
resid = str(opts.get("resid"))
chain = None
if not resid[0].isdigit():
chain = resid[0]
resid = int(resid[1:])
else:
resid = int(resid)
coordinate = utilities.coordinates_for_resid(opts.get("prot_file"), resid=resid, chain=chain)
logger.info("Specific pocket identified from residue: {0} -> {1} (truncated)".format(opts.get("resid"), coordinate[0,:]))
elif l_s is not None:
lig_coords = l_s.xyz
coordinate = np.mean(l_s.xyz, axis=0).reshape(1, -1)
logger.info("Specific pocket identified from mean ligand position: {0}".format(coordinate))
else:
logger.error("A coordinate, ligand, or residue must be supplied to run in specific mode")
return None I haven't tried to make it work with [Specification]
mode = specific
coordinates = -2.335 -2.01 -3.167 The coordinates should be delimited with a single space ( Another important thing is that
|
Weird enough though, there are cases in which searching around a coordinate fails with "Binding pocket not correctly identified--try an alternative method to specify the binding pocket" even if the coordinate is inside the pocket. Try https://alphafold.ebi.ac.uk/files/AF-A0A1L2YW92-F1-model_v4.pdb with |
Exploring the module, looks pretty decent. However, every attempt running specific mode reverts back to run 'largest' instead:
Running with opensource pymol 2.3.0 on Ubuntu 20.04.1, msms v2.6.1
The text was updated successfully, but these errors were encountered: