Opened 6 years ago

Last modified 6 years ago

#2616 assigned defect

Error in handling of multi-crystal MTZ files

Reported by: JMHolton@… Owned by: Tristan Croll
Priority: normal Milestone:
Component: Third Party Version:
Keywords: Cc: Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Linux-3.10.0-1062.4.1.el7.x86_64-x86_64-with-centos-7.7.1908-Core
ChimeraX Version: 0.91 (2019-11-20)
Description
trying to add hydrogens

Log:
Startup Messages  
---  
warning | 'clip' is a prefix of an existing command 'clipper'  
note | available bundle cache has not been initialized yet  
  
UCSF ChimeraX version: 0.91 (2019-11-20)  
© 2016-2019 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open /home/jamesh/projects/isolde/terified.pdb

Summary of feedback from opening /home/jamesh/projects/isolde/terified.pdb  
---  
warnings | Cannot find LINK/SSBOND residue CYS (76 )  
Cannot find LINK/SSBOND residue CYS (80 )  
Cannot find LINK/SSBOND residue CYS (86 )  
Cannot find LINK/SSBOND residue CYS (90 )  
Cannot find LINK/SSBOND residue CYS (140 )  
183 messages similar to the above omitted  
  
terified.pdb title:  
\--- [more info...]  
  
Chain information for terified.pdb #1  
---  
Chain | Description  
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m
n o p q r s t u v | No description available  
  

> toolshed show ISOLDE

> set selectionWidth 4

terified.pdb title:  
\--- [more info...]  
  
Chain information for terified.pdb  
---  
Chain | Description  
1.3/A 1.3/B 1.3/C 1.3/D 1.3/E 1.3/F 1.3/G 1.3/H 1.3/I 1.3/J 1.3/K 1.3/L 1.3/M
1.3/N 1.3/O 1.3/P 1.3/Q 1.3/R 1.3/S 1.3/T 1.3/U 1.3/V 1.3/W 1.3/X 1.3/Y 1.3/Z
1.3/a 1.3/b 1.3/c 1.3/d 1.3/e 1.3/f 1.3/g 1.3/h 1.3/i 1.3/j 1.3/k 1.3/l 1.3/m
1.3/n 1.3/o 1.3/p 1.3/q 1.3/r 1.3/s 1.3/t 1.3/u 1.3/v | No description
available  
  
Cached rota8000-val data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-leu data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-ile data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-pro data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-phe data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-tyr data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-trp data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-ser data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-thr data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-cys data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-met data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-lys data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-his data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-arg data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-asp data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-asn data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-gln data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rota8000-glu data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rama8000-cispro data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rama8000-transpro data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rama8000-gly-sym data not found. Regenerating from text file. This is
normal if running ISOLDE for the first time  
Cached rama8000-prepro-noGP data not found. Regenerating from text file. This
is normal if running ISOLDE for the first time  
Cached rama8000-ileval-nopreP data not found. Regenerating from text file.
This is normal if running ISOLDE for the first time  
Cached rama8000-general-noGPIVpreP data not found. Regenerating from text
file. This is normal if running ISOLDE for the first time  
Forcefield cache not found or out of date. Regenerating from ffXML files. This
is normal if running ISOLDE for the first time, or after upgrading OpenMM.  
Done loading forcefield  
Discarding unrecognised/unsupported data array /unknown/unknown080319/FOM W  
MTZ file either contains multiple crystal datasets or is a mini-MTZ file.
Checking...  

WARNING: This MTZ file contains data from multiple crystals. Only the data
from the first crystal will be used. If you wish to use the other data, please
split your MTZ file into individual datasets (you can do this using tools from
the PHENIX or CCP suites).  

Bad residue number: match  
Adding hydrogens  
Summary of feedback from adding hydrogens to terified.pdb #1.3  
---  
notes | No usable SEQRES records for terified.pdb (#1.3) chain A; guessing
termini instead  
No usable SEQRES records for terified.pdb (#1.3) chain B; guessing termini
instead  
No usable SEQRES records for terified.pdb (#1.3) chain C; guessing termini
instead  
No usable SEQRES records for terified.pdb (#1.3) chain D; guessing termini
instead  
No usable SEQRES records for terified.pdb (#1.3) chain E; guessing termini
instead  
43 messages similar to the above omitted  
Chain-initial residues that are actual N termini: /A VAL 1, /B VAL 65, /C VAL
129, /D VAL 193, /E VAL 257, /F VAL 321, /G VAL 385, /H VAL 449, /I VAL 513,
/J VAL 577, /K VAL 641, /L VAL 705, /M VAL 769, /N VAL 833, /O VAL 897, /P VAL
961, /Q VAL 1025, /R VAL 1089, /S VAL 1153, /T VAL 1217, /U VAL 1281, /V VAL
1345, /W VAL 1409, /X VAL 1473, /Y VAL 1537, /Z VAL 1601, /a VAL 1665, /b VAL
1729, /c VAL 1793, /d VAL 1857, /e VAL 1921, /f VAL 1985, /g VAL 2049, /h VAL
2113, /i VAL 2177, /j VAL 2241, /k VAL 2305, /l VAL 2369, /m VAL 2433, /n VAL
2497, /o VAL 2561, /p VAL 2625, /q VAL 2689, /r VAL 2753, /s VAL 2817, /t VAL
2881, /u VAL 2945, /v VAL 3009  
Chain-initial residues that are not actual N termini:  
Chain-final residues that are actual C termini: /A HIS 64, /B HIS 128, /C HIS
192, /D HIS 256, /E HIS 320, /F HIS 384, /G HIS 448, /H HIS 512, /I HIS 576,
/J HIS 640, /K HIS 704, /L HIS 768, /M HIS 832, /N HIS 896, /O HIS 960, /P HIS
1024, /Q HIS 1088, /R HIS 1152, /S HIS 1216, /T HIS 1280, /U HIS 1344, /V HIS
1408, /W HIS 1472, /X HIS 1536, /Y HIS 1600, /Z HIS 1664, /a HIS 1728, /b HIS
1792, /c HIS 1856, /d HIS 1920, /e HIS 1984, /f HIS 2048, /g HIS 2112, /h HIS
2176, /i HIS 2240, /j HIS 2304, /k HIS 2368, /l HIS 2432, /m HIS 2496, /n HIS
2560, /o HIS 2624, /p HIS 2688, /q HIS 2752, /r HIS 2816, /s HIS 2880, /t HIS
2944, /u HIS 3008, /v HIS 3072  
Chain-final residues that are not actual C termini:  
3410 hydrogen bonds  
22828 hydrogens added  
  
Updating bulk solvent parameters...  
Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1274, in __init__  
sim_params, residue_templates)  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1372, in
_create_openmm_system  
sys = forcefield.createSystem(top, **system_params)  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 1114, in createSystem  
raise Exception('User-supplied template %s does not match the residue %d (%s)'
% (tname, res.index+1, res.name))  
Exception: User-supplied template CYM does not match the residue 19 (CYS)  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/chimerax/isolde/isolde.py", line 2650, in _start_sim_or_toggle_pause  
self.start_sim()  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/chimerax/isolde/isolde.py", line 2670, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 606, in __init__  
if self._parse_explicit_template_error(e):  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 646, in
_parse_explicit_template_error  
self.isolde._handle_bad_template(residue)  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/chimerax/isolde/isolde.py", line 2756, in _handle_bad_template  
self._sim_end_cb()  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/chimerax/isolde/isolde.py", line 2803, in _sim_end_cb  
xmapset.live_xmap_mgr.bulk_solvent_optimization_needed()  
AttributeError: 'NoneType' object has no attribute
'bulk_solvent_optimization_needed'  
  
AttributeError: 'NoneType' object has no attribute
'bulk_solvent_optimization_needed'  
  
File "/opt/UCSF/ChimeraX-daily/lib/python3.7/site-
packages/chimerax/isolde/isolde.py", line 2803, in _sim_end_cb  
xmapset.live_xmap_mgr.bulk_solvent_optimization_needed()  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.0 NVIDIA 418.87.01
OpenGL renderer: GeForce RTX 2080/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

Change History (4)

comment:1 by pett, 6 years ago

Cc: Tom Goddard added
Component: UnassignedThird Party
Owner: set to Tristan Croll
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionOpenMM: User-supplied template CYM does not match the residue

Reported by James Holton

in reply to:  2 ; comment:2 by Tristan Croll, 6 years ago

I’m curious about what’s going on here. Any chance you can send me the data (directly, not via the bug tracker) to take a look?
 

 


comment:3 by Tristan Croll, 6 years ago

OK, things get a little bit complicated here. The root cause of the traceback here actually has nothing directly to do with the cysteines or adding hydrogens - it just happened to be triggered by the addition of hydrogens. The true cause is that the Clipper plugin doesn't yet know how to deal with MTZ files where the data is spread across multiple crystals - there are so many different variations on how people (mis-)use this layout that I've left it in the too-hard basket to date. In your case the MTZ file has only the HKLs and free flags in one "crystal", and the actual data in another. You can see the message in the log:

WARNING: This MTZ file contains data from multiple crystals. Only the data
from the first crystal will be used. If you wish to use the other data, please
split your MTZ file into individual datasets (you can do this using tools from
the PHENIX or CCP suites).

... which in this case means that no experimental data was actually used... but my code is still acting as if it was, and trying to do a bulk solvent optimisation on a non-existent dataset. Will fix that... but in the meantime your best bet would be to split out just the free flags and the F/sigF into a single-crystal MTZ file.

You have another problem with your model that will also need to be dealt with, I'm afraid. When expanding out to multiple copies of your ASU you kept all the copies as chain A but incremented the residue numbering. This would probably work *if* the numbering wasn't continuous from one chain to the next (that is, if it jumped from residue 128 (C-terminus) to residue 130 (N-terminus of the next chain). With the continuous numbering, though, ChimeraX assumes a continuous chain and builds the bonds accordingly - and ISOLDE respects those and tries to minimise them. Everything would work better if all the chains had different IDs, honestly.

comment:4 by Tristan Croll, 6 years ago

Summary: OpenMM: User-supplied template CYM does not match the residueError in handling of multi-crystal MTZ files
Note: See TracTickets for help on using tickets.