Opened 5 years ago
Last modified 5 years ago
#3583 assigned enhancement
Better feedback for loading CIF templates
| Reported by: | Tristan Croll | Owned by: | Greg Couch |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Input/Output | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-3.10.0-1127.13.1.el7.x86_64-x86_64-with-centos-7.8.2003-Core
ChimeraX Version: 1.0 (2020-06-04 23:15:07 UTC)
Description
Now that ISOLDE's veering towards allowing active addition of residues, I'm working on adding a button to allow users to load CIF templates for their own custom residues. A couple of stumbling blocks I've run across:
- `mmcif.load_mmCIF_templates()` is silent - so if I deliberately feed it a CIF file that doesn't contain templates (e.g. a model, or structure factors) there is no feedback to say I've done the wrong thing. Probably shouldn't throw an error - but would be really helpful if it could return a list of the templates it just loaded (and possibly add an argument to decide whether or not to replace any existing templates with the same name).
- the attached file is an example of the output from phenix.elbow, which is used to generate refinement restraints for new ligands by anyone using phenix.refine (that is, just about everyone in the community). Unfortunately (but unsurprisingly...) it's not strictly dictionary-compliant - it uses non-standard labels for the atomic coordinates:
{{{
_chem_comp_atom.x
_chem_comp_atom.y
_chem_comp_atom.z
}}}
The result is a bit pathological: mmcif.load_template_residues() creates a template called D3R, but with no atoms in it.
A couple of options I can think of that would help here:
- try to get Nigel Moriarty to fix this on the Phenix side
- make `load_template_residues()` lenient enough to handle these
- provide a method to convert an existing residue loaded in ChimeraX from some other format into a `TmplResidue` (and/or write it out to a template CIF file so it can be loaded back in)
Log:
UCSF ChimeraX version: 1.0 (2020-06-04)
© 2016-2020 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
Successfully installed 'ChimeraX_ISOLDE-1.0rc1-cp37-cp37m-linux_x86_64.whl'
Looking in indexes: https://pypi.org/simple,
https://cxtoolshed.rbvi.ucsf.edu/pypi/
Processing
/home/tic20/.cache/ChimeraX/1.0/installers/ChimeraX_ISOLDE-1.0rc1-cp37-cp37m-linux_x86_64.whl
Requirement already satisfied, skipping upgrade: ChimeraX-Clipper~=0.13.0 in
/home/tic20/.local/share/ChimeraX/1.0/site-packages (from ChimeraX-
ISOLDE==1.0rc1) (0.13.0)
Requirement already satisfied, skipping upgrade: ChimeraX-Arrays~=1.0 in
/opt/UCSF/ChimeraX/lib/python3.7/site-packages (from ChimeraX-ISOLDE==1.0rc1)
(1.0)
Requirement already satisfied, skipping upgrade: ChimeraX-Atomic>=1.0 in
/opt/UCSF/ChimeraX/lib/python3.7/site-packages (from ChimeraX-ISOLDE==1.0rc1)
(1.0)
Requirement already satisfied, skipping upgrade: ChimeraX-
Core~=1.0rc202005052344 in /opt/UCSF/ChimeraX/lib/python3.7/site-packages
(from ChimeraX-ISOLDE==1.0rc1) (1.0)
Requirement already satisfied, skipping upgrade: ChimeraX-Graphics~=1.0 in
/opt/UCSF/ChimeraX/lib/python3.7/site-packages (from ChimeraX-
Atomic>=1.0->ChimeraX-ISOLDE==1.0rc1) (1.0)
Requirement already satisfied, skipping upgrade: ChimeraX-Geometry~=1.0 in
/opt/UCSF/ChimeraX/lib/python3.7/site-packages (from ChimeraX-
Atomic>=1.0->ChimeraX-ISOLDE==1.0rc1) (1.0)
Installing collected packages: ChimeraX-ISOLDE
Attempting uninstall: ChimeraX-ISOLDE
Found existing installation: ChimeraX-ISOLDE 1.0rc1
Uninstalling ChimeraX-ISOLDE-1.0rc1:
Successfully uninstalled ChimeraX-ISOLDE-1.0rc1
Successfully installed ChimeraX-ISOLDE-1.0rc1
Lock 139783708619792 acquired on
/home/tic20/.cache/ChimeraX/1.0/toolshed/bundle_info.cache.lock
Lock 139783708619792 released on
/home/tic20/.cache/ChimeraX/1.0/toolshed/bundle_info.cache.lock
WARNING: You are using pip version 20.1; however, version 20.2 is available.
You should consider upgrading via the '/usr/bin/chimerax -m pip install
--upgrade pip' command.
> isolde start
> set selectionWidth 4
Done loading forcefield
Loaded CIF templates for [r2ycgsf] from
/run/media/tic20/storage/Downloads/2ycg-sf.cif
Loaded CIF templates for [r5lh0sf] from
/run/media/tic20/storage/Downloads/5lh0-sf.cif
Loaded CIF templates for [r5lh7sf] from
/run/media/tic20/storage/Downloads/5lh7-sf.cif
Loaded CIF templates for [6I2M] from
/run/media/tic20/storage/Downloads/6i2m.cif
Loaded CIF templates for [r6i2mAsf] from
/run/media/tic20/storage/Downloads/6i2m-sf.cif
Loaded CIF templates for [r6idosf] from
/run/media/tic20/storage/Downloads/6ido-sf.cif
Loaded CIF templates for [6O24] from
/run/media/tic20/storage/Downloads/6o24_final.cif
Loaded CIF templates for [comp_list, comp_BAM] from
/run/media/tic20/storage/Downloads/bam.cif
Loaded CIF templates for [comp_list, comp_BAM] from
/run/media/tic20/storage/Downloads/BAM.cif
Loaded CIF templates for [CDL] from /run/media/tic20/storage/Downloads/CDL.cif
Loaded CIF templates for [D3R] from /run/media/tic20/storage/Downloads/D3R.cif
You will now be able to add these residues to your model with "isolde add
ligand {ID}". To be able to simulate them, you will need to provide matching
ffXML MD parameterisations.
> ui tool show Shell
/opt/UCSF/ChimeraX/lib/python3.7/site-packages/IPython/core/history.py:226:
UserWarning: IPython History requires SQLite, your history will not be saved
warn("IPython History requires SQLite, your history will not be saved")
> open 1k82 format mmcif fromDatabase pdb
1k82 title:
Crystal structure of E.coli formamidopyrimidine-DNA glycosylase (Fpg)
covalently trapped with DNA [more info...]
Chain information for 1k82 #1
---
Chain | Description
A B C D | formamidopyrimidine-DNA glycosylase
E F G H | 5'-D(*GP*GP*CP*TP*TP*CP*CP*TP*CP*CP*TP*GP*G)-3'
I J K L | 5'-D(*CP*CP*ap*GP*GP*ap*(ped)P*GP*ap*ap*GP*CP*C)-3'
Non-standard residues in 1k82 #1
---
PED — pentane-3,4-diol-5-phosphate (open form of
1'-2'-dideoxyribofuranose-5'-phosphate)
ZN — zinc ion
1k82 mmCIF Assemblies
---
1| author_defined_assembly
2| author_defined_assembly
3| author_defined_assembly
4| author_defined_assembly
1k82 title:
Crystal structure of E.coli formamidopyrimidine-DNA glycosylase (Fpg)
covalently trapped with DNA [more info...]
Chain information for 1k82
---
Chain | Description
1.2/A 1.2/B 1.2/C 1.2/D | formamidopyrimidine-DNA glycosylase
1.2/E 1.2/F 1.2/G 1.2/H | 5'-D(*GP*GP*CP*TP*TP*CP*CP*TP*CP*CP*TP*GP*G)-3'
1.2/I 1.2/J 1.2/K 1.2/L | 5'-D(*CP*CP*ap*GP*GP*ap*(ped)P*GP*ap*ap*GP*CP*C)-3'
Non-standard residues in 1k82 #1.2
---
PED — pentane-3,4-diol-5-phosphate (open form of
1'-2'-dideoxyribofuranose-5'-phosphate)
ZN — zinc ion
1k82 mmCIF Assemblies
---
1| author_defined_assembly
2| author_defined_assembly
3| author_defined_assembly
4| author_defined_assembly
> close #1
Deleting atomic symmetry model...
OpenGL version: 3.3.0 NVIDIA 450.51.05
OpenGL renderer: TITAN Xp/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: Dell Inc.
Model: Precision T5600
OS: CentOS Linux 7 Core
Architecture: 64bit ELF
CPU: 32 Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
Cache Size: 20480 KB
Memory:
total used free shared buff/cache available
Mem: 62G 4.5G 49G 165M 8.7G 57G
Swap: 4.9G 0B 4.9G
Graphics:
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [TITAN Xp] [10de:1b02] (rev a1)
Subsystem: NVIDIA Corporation Device [10de:11df]
Kernel driver in use: nvidia
PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.8
File attachment: elbow.D3R_cif.001.cif
Attachments (1)
Change History (3)
by , 5 years ago
| Attachment: | elbow.D3R_cif.001.cif added |
|---|
comment:1 by , 5 years ago
| Component: | Unassigned → Input/Output |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Better feedback for loading CIF templates |
| Type: | defect → enhancement |
comment:2 by , 5 years ago
Raised the format issue with Nigel... his response was that eLBOW output is really meant primarily to define restraints rather than coordinates, everyone else reads it, and the ones output by REFMAC are even more non-standard. In other words, he doesn't want to change anything. Anyway, it seems more and more that the better solution to allowing the user to provide templates for custom residues would be to allow a `ResidueTemplate` to be created from other file types such as .mol2 (or just from any existing `Residue`)? I asked tonight, and nobody on the Phenix team seems to know of any publicly available package that writes residue cif files to match the standard. On 2020-08-03 19:20, ChimeraX wrote:
Note:
See TracTickets
for help on using tickets.
Added by email2trac