Opened 4 years ago
Closed 3 years ago
#5822 closed defect (fixed)
ISOLDE: .cif does not appear to contain any valid residue templates
Reported by: | Owned by: | Tristan Croll | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Third Party | Version: | |
Keywords: | Cc: | Greg Couch | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: macOS-10.15.7-x86_64-i386-64bit ChimeraX Version: 1.2.5 (2021-05-24 04:13:57 UTC) Description Attempted to load mmcif of AIB monomer from ccp4 library. Previously saved as mmCIF from monomer import in coot. Log: > alias mapPrep volume #1-100 step 1 level 0.05 ; set bgColor white ; lighting > simple > alias cartoons select all ; hide target a ; show target c > alias isoPrep addh ; hide @hc UCSF ChimeraX version: 1.2.5 (2021-05-24) © 2016-2021 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open > "/Users/kirk.n/Desktop/Work/EliLilly_Project/maps/cryosparc_P18_J732_005_volume_map_sharp > (1).mrc" format mrc Opened cryosparc_P18_J732_005_volume_map_sharp (1).mrc as #1, grid size 400,400,400, pixel 1.06, shown at level 0.0145, step 2, values float32 > open > /Users/kirk.n/Desktop/Work/EliLilly_Project/Phenix/RealSpaceRefine_50/IM459_Final_noH_real_space_refined_050.pdb Chain information for IM459_Final_noH_real_space_refined_050.pdb #2 --- Chain | Description A | No description available B | No description available C | No description available > mapPrep > isoPrep Summary of feedback from adding hydrogens to IM459_Final_noH_real_space_refined_050.pdb #2 --- notes | No usable SEQRES records for IM459_Final_noH_real_space_refined_050.pdb (#2) chain A; guessing termini instead No usable SEQRES records for IM459_Final_noH_real_space_refined_050.pdb (#2) chain B; guessing termini instead No usable SEQRES records for IM459_Final_noH_real_space_refined_050.pdb (#2) chain C; guessing termini instead Chain-initial residues that are actual N termini: /A SER 1, /B CYS 304, /C GLY 5 Chain-initial residues that are not actual N termini: /C GLU 154, /C ASN 168, /C PHE 178, /C TYR 277, /C LEU 299 Chain-final residues that are actual C termini: /C ASN 594 Chain-final residues that are not actual C termini: /A LEU 31, /B ALA 592, /C ASP 150, /C CYS 159, /C VAL 173, /C LYS 265, /C SER 296 664 hydrogen bonds Adding 'H' to /C GLU 154 Adding 'H' to /C ASN 168 Adding 'H' to /C PHE 178 Adding 'H' to /C TYR 277 Adding 'H' to /C LEU 299 /A LEU 31 is not terminus, removing H atom from 'C' /B ALA 592 is not terminus, removing H atom from 'C' 6989 hydrogens added > cartoons 14138 atoms, 14327 bonds, 5 pseudobonds, 882 residues, 4 models selected /Applications/ChimeraX-1.2.5.app/Contents/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site- packages/simtk/openmm/app/desmonddmsfile.py:411: SyntaxWarning: "is" with a literal. Did you mean "=="? if implicitSolvent is 'AGBNP3': /Applications/ChimeraX-1.2.5.app/Contents/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site- packages/simtk/openmm/app/desmonddmsfile.py:433: SyntaxWarning: "is" with a literal. Did you mean "=="? if implicitSolvent is 'GVolSA': /Applications/ChimeraX-1.2.5.app/Contents/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site- packages/simtk/openmm/app/desmonddmsfile.py:440: SyntaxWarning: "is" with a literal. Did you mean "=="? if implicitSolvent is 'AGBNP': > isolde start > set selectionWidth 4 Chain information for IM459_Final_noH_real_space_refined_050.pdb --- Chain | Description 2.2/A | No description available 2.2/B | No description available 2.2/C | No description available Done loading forcefield Opened cryosparc_P18_J732_005_volume_map_sharp (1).mrc as #2.1.1.1, grid size 400,400,400, pixel 1.06, shown at step 1, values float32 File /Users/kirk.n/Desktop/monomer-AIB.cif does not appear to contain any valid residue templates. Traceback (most recent call last): File "/Users/kirk.n/Library/Application Support/ChimeraX/1.2/site- packages/chimerax/isolde/isolde.py", line 1222, in _add_cif_template_files_gui load_cif_templates(self.session, files) File "/Users/kirk.n/Library/Application Support/ChimeraX/1.2/site- packages/chimerax/isolde/atomic/template_utils.py", line 604, in load_cif_templates raise RuntimeError('No files successfully loaded.') RuntimeError: No files successfully loaded. RuntimeError: No files successfully loaded. File "/Users/kirk.n/Library/Application Support/ChimeraX/1.2/site- packages/chimerax/isolde/atomic/template_utils.py", line 604, in load_cif_templates raise RuntimeError('No files successfully loaded.') See log for complete Python traceback. OpenGL version: 4.1 INTEL-14.7.20 OpenGL renderer: Intel Iris Pro OpenGL Engine OpenGL vendor: Intel Inc.Hardware: Hardware Overview: Model Name: MacBook Pro Model Identifier: MacBookPro11,4 Processor Name: Quad-Core Intel Core i7 Processor Speed: 2.2 GHz Number of Processors: 1 Total Number of Cores: 4 L2 Cache (per Core): 256 KB L3 Cache: 6 MB Hyper-Threading Technology: Enabled Memory: 16 GB Boot ROM Version: 428.40.10.0.0 SMC Version (system): 2.29f24 Software: System Software Overview: System Version: macOS 10.15.7 (19H1519) Kernel Version: Darwin 19.6.0 Time since boot: 4 days 23:28 Graphics/Displays: Intel Iris Pro: Chipset Model: Intel Iris Pro Type: GPU Bus: Built-In VRAM (Dynamic, Max): 1536 MB Vendor: Intel Device ID: 0x0d26 Revision ID: 0x0008 Metal: Supported, feature set macOS GPUFamily1 v4 Displays: Color LCD: Display Type: Built-In Retina LCD Resolution: 2880 x 1800 Retina Framebuffer Depth: 24-Bit Color (ARGB8888) Main Display: Yes Mirror: Off Online: Yes Automatically Adjust Brightness: No Connection Type: Internal Locale: (None, 'UTF-8') PyQt5 5.15.2, Qt 5.15.2 Installed Packages: alabaster: 0.7.12 appdirs: 1.4.4 appnope: 0.1.2 Babel: 2.9.1 backcall: 0.2.0 blockdiag: 2.0.1 certifi: 2020.12.5 cftime: 1.5.0 chardet: 3.0.4 ChimeraX-AddCharge: 1.0.1 ChimeraX-AddH: 2.1.6 ChimeraX-AlignmentAlgorithms: 2.0 ChimeraX-AlignmentHdrs: 3.2 ChimeraX-AlignmentMatrices: 2.0 ChimeraX-Alignments: 2.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.0 ChimeraX-Atomic: 1.13.2 ChimeraX-AtomicLibrary: 3.1.3 ChimeraX-AtomSearch: 2.0 ChimeraX-AtomSearchLibrary: 1.0 ChimeraX-AxesPlanes: 2.0 ChimeraX-BasicActions: 1.1 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 1.1 ChimeraX-BondRot: 2.0 ChimeraX-BugReporter: 1.0 ChimeraX-BuildStructure: 2.5.2 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.1 ChimeraX-ButtonPanel: 1.0 ChimeraX-CageBuilder: 1.0 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.1 ChimeraX-ChemGroup: 2.0 ChimeraX-Clashes: 2.1 ChimeraX-Clipper: 0.16.1 ChimeraX-ColorActions: 1.0 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.2.1 ChimeraX-CommandLine: 1.1.4 ChimeraX-ConnectStructure: 2.0 ChimeraX-Contacts: 1.0 ChimeraX-Core: 1.2.5 ChimeraX-CoreFormats: 1.0 ChimeraX-coulombic: 1.1.1 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0 ChimeraX-DataFormats: 1.1 ChimeraX-Dicom: 1.0 ChimeraX-DistMonitor: 1.1.3 ChimeraX-DistUI: 1.0 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ExperimentalCommands: 1.0 ChimeraX-FileHistory: 1.0 ChimeraX-FunctionKey: 1.0 ChimeraX-Geometry: 1.1 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.0 ChimeraX-Hbonds: 2.1 ChimeraX-Help: 1.1 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.0 ChimeraX-ImageFormats: 1.1 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.1 ChimeraX-ISOLDE: 1.2.2 ChimeraX-Label: 1.0 ChimeraX-ListInfo: 1.1.1 ChimeraX-Log: 1.1.2 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.8.1 ChimeraX-Map: 1.0.2 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0 ChimeraX-MapFilter: 2.0 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.0 ChimeraX-Markers: 1.0 ChimeraX-Mask: 1.0 ChimeraX-MatchMaker: 1.2.1 ChimeraX-MDcrds: 2.2 ChimeraX-MedicalToolbar: 1.0.1 ChimeraX-Meeting: 1.0 ChimeraX-MLP: 1.1 ChimeraX-mmCIF: 2.3 ChimeraX-MMTF: 2.1 ChimeraX-Modeller: 1.0.1 ChimeraX-ModelPanel: 1.0.1 ChimeraX-ModelSeries: 1.0 ChimeraX-Mol2: 2.0 ChimeraX-Morph: 1.0 ChimeraX-MouseModes: 1.1 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nucleotides: 2.0.1 ChimeraX-OpenCommand: 1.5 ChimeraX-PDB: 2.4.1 ChimeraX-PDBBio: 1.0 ChimeraX-PDBLibrary: 1.0.1 ChimeraX-PDBMatrices: 1.0 ChimeraX-Phenix: 0.3 ChimeraX-PickBlobs: 1.0 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.0.1 ChimeraX-PubChem: 2.0.1 ChimeraX-ReadPbonds: 1.0 ChimeraX-Registration: 1.1 ChimeraX-RemoteControl: 1.0 ChimeraX-ResidueFit: 1.0 ChimeraX-RestServer: 1.1 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 2.0 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.4 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0 ChimeraX-SeqView: 2.3 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0 ChimeraX-Shortcuts: 1.0 ChimeraX-ShowAttr: 1.0 ChimeraX-ShowSequences: 1.0 ChimeraX-SideView: 1.0 ChimeraX-Smiles: 2.0.1 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.3.1 ChimeraX-STL: 1.0 ChimeraX-Storm: 1.0 ChimeraX-Struts: 1.0 ChimeraX-Surface: 1.0 ChimeraX-SwapAA: 2.0 ChimeraX-SwapRes: 2.1 ChimeraX-TapeMeasure: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.0.1 ChimeraX-ToolshedUtils: 1.2 ChimeraX-Tug: 1.0 ChimeraX-UI: 1.7.6 ChimeraX-uniprot: 2.1 ChimeraX-UnitCell: 1.0 ChimeraX-ViewDockX: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0 ChimeraX-WebServices: 1.0 ChimeraX-Zone: 1.0 colorama: 0.4.3 comtypes: 1.1.7 cxservices: 1.0 cycler: 0.10.0 Cython: 0.29.21 decorator: 5.0.9 distlib: 0.3.1 docutils: 0.16 filelock: 3.0.12 funcparserlib: 0.3.6 grako: 3.16.5 h5py: 2.10.0 html2text: 2020.1.16 idna: 2.10 ihm: 0.17 imagecodecs: 2020.5.30 imagesize: 1.2.0 ipykernel: 5.3.4 ipython: 7.18.1 ipython-genutils: 0.2.0 jedi: 0.17.2 Jinja2: 2.11.2 jupyter-client: 6.1.7 jupyter-core: 4.7.1 kiwisolver: 1.3.1 line-profiler: 2.1.2 lxml: 4.6.2 lz4: 3.1.0 MarkupSafe: 2.0.1 matplotlib: 3.3.2 matplotlib-inline: 0.1.2 msgpack: 1.0.0 netCDF4: 1.5.4 networkx: 2.5 numexpr: 2.7.3 numpy: 1.19.2 numpydoc: 1.1.0 openvr: 1.14.1501 packaging: 20.9 ParmEd: 3.2.0 parso: 0.7.1 pexpect: 4.8.0 pickleshare: 0.7.5 Pillow: 7.2.0 pip: 21.0.1 pkginfo: 1.5.0.1 prompt-toolkit: 3.0.18 psutil: 5.7.2 ptyprocess: 0.7.0 pycollada: 0.7.1 pydicom: 2.0.0 Pygments: 2.7.1 PyOpenGL: 3.1.5 PyOpenGL-accelerate: 3.1.5 pyparsing: 2.4.7 PyQt5-commercial: 5.15.2 PyQt5-sip: 12.8.1 PyQtWebEngine-commercial: 5.15.2 python-dateutil: 2.8.1 pytz: 2021.1 pyzmq: 22.0.3 qtconsole: 4.7.7 QtPy: 1.9.0 RandomWords: 0.3.0 requests: 2.24.0 scipy: 1.5.2 setuptools: 50.3.2 sfftk-rw: 0.6.7.dev1 six: 1.15.0 snowballstemmer: 2.1.0 sortedcontainers: 2.2.2 Sphinx: 3.2.1 sphinxcontrib-applehelp: 1.0.2 sphinxcontrib-blockdiag: 2.0.0 sphinxcontrib-devhelp: 1.0.2 sphinxcontrib-htmlhelp: 2.0.0 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.3 sphinxcontrib-serializinghtml: 1.1.5 suds-jurko: 0.6 tables: 3.6.1 tifffile: 2020.9.3 tinyarray: 1.2.3 tornado: 6.1 traitlets: 5.0.5 urllib3: 1.25.11 wcwidth: 0.2.5 webcolors: 1.11.1 wheel: 0.36.0 wheel-filename: 1.3.0
Change History (4)
comment:1 by , 4 years ago
Cc: | added |
---|---|
Component: | Unassigned → Third Party |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → ISOLDE: .cif does not appear to contain any valid residue templates |
comment:2 by , 4 years ago
If I'm being honest, I'd completely forgotten I added that button (it's hidden by default, only accessible by switching to "advanced" mode).
The basic problem: the .cif format is really just a catch-all text-based database format that can contain all sorts of things (models, structure factors, residue definitions, residue *restraints*, ...) - and unfortunately the only way to determine what a given .cif file contains is to parse the thing with code that knows what it's looking for. In this case, what ISOLDE (actually, the ChimeraX .cif reader written by Greg) is looking for is a residue *definition* (i.e. as would be provided by the Chemical Components Dictionary, http://ligand-expo.rcsb.org/), which it uses to provide initial coordinates and element/bond information when adding a new residue to the model. My initial aim for this was to provide a mechanism via the existing framework for users to add templates for ligands that aren't already in the components dictionary... but it wasn't until *after* I added it that I realised there doesn't seem to be any publicly-accessible code for actually *writing* templates in that format, making it pretty useless.
What you've tried to load is a *restraints* template - a perfectly reasonable assumption on your part, but not something ISOLDE can do anything with (it uses the AMBER MD forcefield, not classic refinement restraints). Things get even messier with these, since there doesn't appear to be any agreed-upon standard - the files written by CCP4 are different from those written by Phenix (and I'm guessing those written by the Grade server, but I admit I haven't checked). Some of them contain coordinates, some of them don't - and of those that do, at least the Phenix ones use a completely different set of variable names to the official components dictionary files. It's a real mess, and I think a non-starter for ISOLDE's purposes.
What I *really* need to do is provide a framework allowing any loaded residue to become a template for ISOLDE's purposes, and replace this button with something like "use current residue as template" and/or "load template from file" (taking any valid coordinate file containing a single residue).
That covers the button itself. But I'm guessing what you really wanted to do here was load parameters to allow an AIB that's already in your model to be used in simulations. Unfortunately that's still going to be a bit tricky... if it were a noncovalent ligand it would be easy (just "isolde parameterise :AIB") - but unfortunately built-in parameterisation of residues with covalent bonds to other residues is still in the too-hard basket. I'm gradually working in that direction (and talking with people who have some interesting new developments that could make it much easier), but it will be a while before anything's ready.
That being said, it looks like AMBER parameters for alpha,alpha-dialkylated amino acids do exist (https://pubs.rsc.org/en/content/articlelanding/2013/cp/c3cp52721b). If I can track them down, I'll get them converted into OpenMM's format and add them to the built-in forcefield (and send you a copy so you can get it going for yourself).
follow-up: 3 comment:3 by , 4 years ago
Thank you very much. Appreciate the detailed answer! Best, Nick. ________________________________ From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> Sent: Wednesday, 22 December 2021 7:53 AM Cc: gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; Nicholas Kirk <kirk.n@wehi.edu.au>; Tristan Croll <tic20@cam.ac.uk> Subject: Re: [ChimeraX] #5822: ISOLDE: .cif does not appear to contain any valid residue templates #5822: ISOLDE: .cif does not appear to contain any valid residue templates ----------------------------------+--------------------------- Reporter: kirk.n@… | Owner: Tristan Croll Type: defect | Status: assigned Priority: normal | Milestone: Component: Third Party | Version: Resolution: | Keywords: Blocked By: | Blocking: Notify when closed: | Platform: all Project: ChimeraX | ----------------------------------+--------------------------- Comment (by Tristan Croll): If I'm being honest, I'd completely forgotten I added that button (it's hidden by default, only accessible by switching to "advanced" mode). The basic problem: the .cif format is really just a catch-all text-based database format that can contain all sorts of things (models, structure factors, residue definitions, residue *restraints*, ...) - and unfortunately the only way to determine what a given .cif file contains is to parse the thing with code that knows what it's looking for. In this case, what ISOLDE (actually, the ChimeraX .cif reader written by Greg) is looking for is a residue *definition* (i.e. as would be provided by the Chemical Components Dictionary, http://ligand-expo.rcsb.org/), which it uses to provide initial coordinates and element/bond information when adding a new residue to the model. My initial aim for this was to provide a mechanism via the existing framework for users to add templates for ligands that aren't already in the components dictionary... but it wasn't until *after* I added it that I realised there doesn't seem to be any publicly-accessible code for actually *writing* templates in that format, making it pretty useless. What you've tried to load is a *restraints* template - a perfectly reasonable assumption on your part, but not something ISOLDE can do anything with (it uses the AMBER MD forcefield, not classic refinement restraints). Things get even messier with these, since there doesn't appear to be any agreed-upon standard - the files written by CCP4 are different from those written by Phenix (and I'm guessing those written by the Grade server, but I admit I haven't checked). Some of them contain coordinates, some of them don't - and of those that do, at least the Phenix ones use a completely different set of variable names to the official components dictionary files. It's a real mess, and I think a non- starter for ISOLDE's purposes. What I *really* need to do is provide a framework allowing any loaded residue to become a template for ISOLDE's purposes, and replace this button with something like "use current residue as template" and/or "load template from file" (taking any valid coordinate file containing a single residue). That covers the button itself. But I'm guessing what you really wanted to do here was load parameters to allow an AIB that's already in your model to be used in simulations. Unfortunately that's still going to be a bit tricky... if it were a noncovalent ligand it would be easy (just "isolde parameterise :AIB") - but unfortunately built-in parameterisation of residues with covalent bonds to other residues is still in the too-hard basket. I'm gradually working in that direction (and talking with people who have some interesting new developments that could make it much easier), but it will be a while before anything's ready. That being said, it looks like AMBER parameters for alpha,alpha- dialkylated amino acids do exist (https://pubs.rsc.org/en/content/articlelanding/2013/cp/c3cp52721b). If I can track them down, I'll get them converted into OpenMM's format and add them to the built-in forcefield (and send you a copy so you can get it going for yourself). -- Ticket URL: <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/5822#comment:2> ChimeraX <https://www.rbvi.ucsf.edu/chimerax/> ChimeraX Issue Tracker
comment:4 by , 3 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Never did hear back about those templates, I'm afraid. Anyway, as of ISOLDE 1.4 the rebuilt GUI no longer includes the offending button. Won't be able to support the dialkylated amino acids for the time being, but there are some developments in the works that might make it possible in the medium-term future.
Reported by Nicholas Kirk