Opened 6 years ago

Closed 3 years ago

#2905 closed defect (fixed)

OpenMM: Multiple matching templates found for residue

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

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.18362
ChimeraX Version: 0.91 (2019-12-23)
Description
(Describe the actions that caused this problem to occur here)

Log:
Startup Messages  
---  
warning | 'clip' is a prefix of an existing command 'clipper'  
  
UCSF ChimeraX version: 0.91 (2019-12-23)  
© 2016-2019 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open "C:\Users\Lenye\Dropbox\thil
> article-2020\Thiaminemonophosphatekinase_refine_44_dimer.pdb"

Summary of feedback from opening C:\Users\Lenye\Dropbox\thil
article-2020\Thiaminemonophosphatekinase_refine_44_dimer.pdb  
---  
warnings | Ignored bad PDB record found on line 1  
REMARK Date 2019-03-12 Time 15:04:44 South Africa Standard Time +0200
(155239588  
  
Ignored bad PDB record found on line 2  
REMARK PHENIX refinement  
  
Ignored bad PDB record found on line 4  
REMARK ****************** INPUT FILES AND LABELS
******************************  
  
Ignored bad PDB record found on line 5  
REMARK Reflections:  
  
Ignored bad PDB record found on line 6  
REMARK file name : C:\Users\Lenye\Desktop\ThiL Molecular Replacement\over  
  
29 messages similar to the above omitted  
  
Chain information for Thiaminemonophosphatekinase_refine_44_dimer.pdb #1  
---  
Chain | Description  
A B | No description available  
  

> isolde start

> set selectionWidth 4

Chain information for Thiaminemonophosphatekinase_refine_44_dimer.pdb  
---  
Chain | Description  
1.1/A 1.1/B | No description available  
  
Done loading forcefield  

QWidget::repaint: Recursive repaint detected  

> addh

Summary of feedback from adding hydrogens to
Thiaminemonophosphatekinase_refine_44_dimer.pdb #1.1  
---  
notes | No usable SEQRES records for
Thiaminemonophosphatekinase_refine_44_dimer.pdb (#1.1) chain A; guessing
termini instead  
No usable SEQRES records for Thiaminemonophosphatekinase_refine_44_dimer.pdb
(#1.1) chain B; guessing termini instead  
Chain-initial residues that are actual N termini: /A LEU 59, /B LEU 59  
Chain-initial residues that are not actual N termini:  
Chain-final residues that are actual C termini:  
Chain-final residues that are not actual C termini: /A TYR 337, /B TYR 337  
1210 hydrogen bonds  
/A TYR 337 is not terminus, removing H atom from 'C'  
/B TYR 337 is not terminus, removing H atom from 'C'  
4490 hydrogens added  
  

> toolshed show ISOLDE

> select

8790 atoms, 8574 bonds, 41 models selected  
Loading residue template for SO4 from internal database  
Traceback (most recent call last):  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\isolde.py", line 2676, in _start_sim_or_toggle_pause  
self.start_sim()  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\isolde.py", line 2696, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 609, in __init__  
raise e  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 1313, in __init__  
sim_params, residue_templates)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 1409, in
_create_openmm_system  
sys = forcefield.createSystem(top, **system_params)  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 1117, in createSystem  
[template, matches] = self._getResidueTemplateMatches(res, bondedToAtom,
ignoreExternalBonds=ignoreExternalBonds)  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 893, in
_getResidueTemplateMatches  
raise Exception('Multiple matching templates found for residue %d (%s): %s.' %
(res.index+1, res.name, ', '.join(match[0].name for match in allMatches)))  
Exception: Multiple matching templates found for residue 568 (HOH): OHE,
GLYCAM_ROH.  
  
Exception: Multiple matching templates found for residue 568 (HOH): OHE,
GLYCAM_ROH.  
  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 893, in
_getResidueTemplateMatches  
raise Exception('Multiple matching templates found for residue %d (%s): %s.' %
(res.index+1, res.name, ', '.join(match[0].name for match in allMatches)))  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\isolde.py", line 2676, in _start_sim_or_toggle_pause  
self.start_sim()  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\isolde.py", line 2696, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 609, in __init__  
raise e  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 1313, in __init__  
sim_params, residue_templates)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 1409, in
_create_openmm_system  
sys = forcefield.createSystem(top, **system_params)  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 1117, in createSystem  
[template, matches] = self._getResidueTemplateMatches(res, bondedToAtom,
ignoreExternalBonds=ignoreExternalBonds)  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 893, in
_getResidueTemplateMatches  
raise Exception('Multiple matching templates found for residue %d (%s): %s.' %
(res.index+1, res.name, ', '.join(match[0].name for match in allMatches)))  
Exception: Multiple matching templates found for residue 568 (HOH): OHE,
GLYCAM_ROH.  
  
Exception: Multiple matching templates found for residue 568 (HOH): OHE,
GLYCAM_ROH.  
  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 893, in
_getResidueTemplateMatches  
raise Exception('Multiple matching templates found for residue %d (%s): %s.' %
(res.index+1, res.name, ', '.join(match[0].name for match in allMatches)))  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\isolde.py", line 2676, in _start_sim_or_toggle_pause  
self.start_sim()  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\isolde.py", line 2696, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 609, in __init__  
raise e  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 1313, in __init__  
sim_params, residue_templates)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 1409, in
_create_openmm_system  
sys = forcefield.createSystem(top, **system_params)  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 1117, in createSystem  
[template, matches] = self._getResidueTemplateMatches(res, bondedToAtom,
ignoreExternalBonds=ignoreExternalBonds)  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 893, in
_getResidueTemplateMatches  
raise Exception('Multiple matching templates found for residue %d (%s): %s.' %
(res.index+1, res.name, ', '.join(match[0].name for match in allMatches)))  
Exception: Multiple matching templates found for residue 568 (HOH): OHE,
GLYCAM_ROH.  
  
Exception: Multiple matching templates found for residue 568 (HOH): OHE,
GLYCAM_ROH.  
  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 893, in
_getResidueTemplateMatches  
raise Exception('Multiple matching templates found for residue %d (%s): %s.' %
(res.index+1, res.name, ', '.join(match[0].name for match in allMatches)))  
  
See log for complete Python traceback.  
  

> select :HOH

860 atoms, 572 bonds, 1 model selected  

> select :HOH

860 atoms, 572 bonds, 1 model selected  

> hide sel atoms

> select :MG

4 atoms, 1 model selected  

> hide sel atoms

> select :SO4

10 atoms, 8 bonds, 1 model selected  

> select clear

> toolshed show ISOLDE

> set selectionWidth 4

Done loading forcefield  

> select

8790 atoms, 8574 bonds, 47 models selected  

> select

8790 atoms, 8574 bonds, 47 models selected  
Loading residue template for SO4 from internal database  
Traceback (most recent call last):  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\isolde.py", line 2676, in _start_sim_or_toggle_pause  
self.start_sim()  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\isolde.py", line 2696, in start_sim  
self.params, self.sim_params, excluded_residues = self.ignored_residues)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 609, in __init__  
raise e  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 591, in __init__  
isolde.forcefield_mgr)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 1313, in __init__  
sim_params, residue_templates)  
File "C:\Users\Lenye\AppData\Local\UCSF\ChimeraX\0.91\site-
packages\chimerax\isolde\openmm\openmm_interface.py", line 1409, in
_create_openmm_system  
sys = forcefield.createSystem(top, **system_params)  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 1117, in createSystem  
[template, matches] = self._getResidueTemplateMatches(res, bondedToAtom,
ignoreExternalBonds=ignoreExternalBonds)  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 893, in
_getResidueTemplateMatches  
raise Exception('Multiple matching templates found for residue %d (%s): %s.' %
(res.index+1, res.name, ', '.join(match[0].name for match in allMatches)))  
Exception: Multiple matching templates found for residue 568 (HOH): OHE,
GLYCAM_ROH.  
  
Exception: Multiple matching templates found for residue 568 (HOH): OHE,
GLYCAM_ROH.  
  
File "C:\Users\Lenye\ChimeraX\bin\lib\site-
packages\simtk\openmm\app\forcefield.py", line 893, in
_getResidueTemplateMatches  
raise Exception('Multiple matching templates found for residue %d (%s): %s.' %
(res.index+1, res.name, ', '.join(match[0].name for match in allMatches)))  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.13542 Core Profile Forward-Compatible Context 25.20.14012.0
OpenGL renderer: AMD Radeon(TM) R2 Graphics
OpenGL vendor: ATI Technologies Inc.

Change History (5)

comment:1 by pett, 6 years ago

Component: UnassignedThird Party
Owner: set to Tristan Croll
Platform: all
Project: ChimeraX
Reporter: changed from Lenye@… to pett@…
Status: newassigned
Summary: ChimeraX bug report submissionOpenMM: Multiple matching templates found for residue

Original email address invalid, so replaced it with my own

comment:2 by Tristan Croll, 6 years ago

My best guess at what has happened here: a water was very close to a metal ion, so AddH only added one hydrogen to it. There's no template for a free hydroxide ion, but there are two templates for pendant OH groups in the AMBER forcefield: a 5' OH for nucleic acids, and one in the GLYCAM forcefield for capping sugar chains. OpenMM recognises that its topology looks like these, and throws up its hands because it hasn't been told which to use. Dealing properly with cases like this is a long-term challenge, but for now I'll see about adding some code to point the user to the offending residue rather than just raising the traceback.

comment:3 by pett, 6 years ago

It would have to be a pretty unusual situation for AddH to strip a proton from a water due to metal proximity. AddH will normally simply orient one of the oxygen lone pairs towards the metal (and have the protons point away). It would have to be a terrifically sterically challenged local environment for the end result to be stripping the water proton.

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

I *have* seen it happen exactly once before. Can't remember the model, 
though.

On 2020-03-10 17:49, ChimeraX wrote:

comment:5 by Tristan Croll, 3 years ago

Resolution: fixed
Status: assignedclosed

While I do occasionally see cases where a tightly-constrained environment causes AddH to only add one hydrogen to a water, these days ISOLDE now catches things like that and helps the user fix them.

Note: See TracTickets for help on using tickets.