Opened 6 years ago
Closed 6 years ago
#2091 closed defect (fixed)
mmCIF not writing "exptl"/"exptl data" headers
Reported by: | 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-957.12.2.el7.x86_64-x86_64-with-centos-7.6.1810-Core ChimeraX Version: 0.9 (2019-06-06) Description First bug report since the ISOLDE release, and it's me reporting it. :) Turns out that mmCIF files saved by ChimeraX are currently breaking my Clipper code, since they're not writing the "exptl"/"exptl data" headers that you'd find in an mmCIF downloaded from the PDB. The issue here is that I have to set cell and spacegroup parameters even for cryo-EM models (since that's what the Clipper API expects). If it's a cryo-EM model then these values are of course essentially meaningless, and it's customary to just specify a P1 box a few times larger than the model itself. The problem is in working out whether the model *is* actually a cryo-EM one. Reporting as a ChimeraX bug because this information really should be passed through to the output mmCIF, but in the meantime I'll have a think about what to do in Clipper (since it seems futile to expect that *every* mmCIF file will provide the "exptl" loop). Simply trusting the cell/spacegroup information provided without knowing if it's a crystal structure seems dangerous... people could be putting just about anything in there. My inclination is that if no 'exptl' info is given to just put it in the P1 box, and defer the assignment of real cell/spacegroup parameters to the loading of the first structure factor file into the model. Log: UCSF ChimeraX version: 0.9 (2019-06-06) © 2016-2019 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open 4v9o.cif Summary of feedback from opening 4v9o.cif --- warnings | Atom H1 is not in the residue template for MET #1 in chain AD Atom H1 is not in the residue template for MET #1 in chain AE Atom H1 is not in the residue template for MET #1 in chain AH Atom H1 is not in the residue template for MET #1 in chain AJ Atom H1 is not in the residue template for MET #1 in chain AK 62 messages similar to the above omitted Chain information for 4v9o.cif #1 --- Chain | Description A0 C0 E0 G0 | 50S ribosomal protein L32 A1 C1 E1 G1 | 50S ribosomal protein L33 A2 C2 E2 G2 | 50S ribosomal protein L34 A3 C3 E3 G3 | 50S ribosomal protein L35 A4 C4 E4 G4 | 50S ribosomal protein L36 A5 C5 E5 | 50S ribosomal protein L10 A6 | 50S ribosomal protein L7/L12 AA CA EA GA | 23S rRNA AB CB EB GB | 5S rRNA AC CC EC GC | 50S ribosomal protein L2 AD CD ED GD | 50S ribosomal protein L3 AE CE EE GE | 50S ribosomal protein L4 AF CF EF GF | 50S ribosomal protein L5 AG CG EG GG | 50S ribosomal protein L6 AH CH EH GH | 50S ribosomal protein L9 AI CI EI GI | 50S ribosomal protein L11 AJ CJ EJ GJ | 50S ribosomal protein L13 AK CK EK GK | 50S ribosomal protein L14 AL CL EL GL | 50S ribosomal protein L15 AM CM EM GM | 50S ribosomal protein L16 AN CN EN GN | 50S ribosomal protein L17 AO CO EO GO | 50S ribosomal protein L18 AP CP EP GP | 50S ribosomal protein L19 AQ CQ EQ GQ | 50S ribosomal protein L20 AR CR ER GR | 50S ribosomal protein L21 AS CS ES GS | 50S ribosomal protein L22 AT CT ET GT | 50S ribosomal protein L23 AU CU EU GU | 50S ribosomal protein L24 AV CV EV GV | 50S ribosomal protein L25 AW CW EW GW | 50S ribosomal protein L27 AX CX EX GX | 50S ribosomal protein L28 AY CY EY GY | 50S ribosomal protein L29 AZ CZ EZ GZ | 50S ribosomal protein L30 BA DA FA HA | 16S rRNA BB DB FB HB | 30S ribosomal protein S2 BC DC FC HC | 30S ribosomal protein S3 BD DD FD HD | 30S ribosomal protein S4 BE DE FE HE | 30S ribosomal protein S5 BF DF FF HF | 30S ribosomal protein S6 BG DG FG HG | 30S ribosomal protein S7 BH DH FH HH | 30S ribosomal protein S8 BI DI FI HI | 30S ribosomal protein S9 BJ DJ FJ HJ | 30S ribosomal protein S10 BK DK FK HK | 30S ribosomal protein S11 BL DL FL HL | 30S ribosomal protein S12 BM DM FM HM | 30S ribosomal protein S13 BN DN FN HN | 30S ribosomal protein S14 BO DO FO HO | 30S ribosomal protein S15 BP DP FP HP | 30S ribosomal protein S16 BQ DQ FQ HQ | 30S ribosomal protein S17 BR DR FR HR | 30S ribosomal protein S18 BS DS FS HS | 30S ribosomal protein S19 BT DT FT HT | 30S ribosomal protein S20 BU DU FU HU | 30S ribosomal protein S21 BV DV FV HV | Elongation factor G 4v9o.cif mmCIF Assemblies --- 1| author_defined_assembly 2| author_defined_assembly 3| author_defined_assembly 4| author_defined_assembly > open 4v9o.mtz structureModel #1 Traceback (most recent call last): File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/chimerax/cmd_line/tool.py", line 254, in execute cmd.run(cmd_text) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/chimerax/core/commands/cli.py", line 2632, in run result = ci.function(session, **kw_args) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/chimerax/core/commands/open.py", line 64, in open path_models = session.models.open(paths, format=format, name=name, **kw) File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/chimerax/core/models.py", line 601, in open session, filenames, format=format, name=name, **kw) File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/chimerax/core/io.py", line 477, in open_multiple_data models, status = open_data(session, fspec, format=format, name=name, **kw) File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/chimerax/core/io.py", line 433, in open_data models, status = open_func(*args, **kw) File "/home/tic20/.local/share/ChimeraX/0.9/site- packages/chimerax/clipper/__init__.py", line 128, in open_file over_sampling=over_sampling) File "/home/tic20/.local/share/ChimeraX/0.9/site- packages/chimerax/clipper/cmd.py", line 30, in open_structure_factors mmgr = get_map_mgr(structure_model, create=True) File "/home/tic20/.local/share/ChimeraX/0.9/site- packages/chimerax/clipper/symmetry.py", line 166, in get_map_mgr sh = get_symmetry_handler(structure, create=create, auto_add_to_session=auto_add_to_session) File "/home/tic20/.local/share/ChimeraX/0.9/site- packages/chimerax/clipper/symmetry.py", line 151, in get_symmetry_handler sh = _get_symmetry_handler(structure, create) File "/home/tic20/.local/share/ChimeraX/0.9/site- packages/chimerax/clipper/symmetry.py", line 162, in _get_symmetry_handler return Symmetry_Manager(structure) File "/home/tic20/.local/share/ChimeraX/0.9/site- packages/chimerax/clipper/symmetry.py", line 458, in __init__ self.cell, self.spacegroup, self.grid, self._has_symmetry = f(*args) File "/home/tic20/.local/share/ChimeraX/0.9/site- packages/chimerax/clipper/symmetry.py", line 183, in symmetry_from_model_metadata return symmetry_from_model_metadata_mmcif(model) File "/home/tic20/.local/share/ChimeraX/0.9/site- packages/chimerax/clipper/symmetry.py", line 234, in symmetry_from_model_metadata_mmcif if 'X-RAY DIFFRACTION' not in metadata['exptl data']: KeyError: 'exptl data' KeyError: 'exptl data' File "/home/tic20/.local/share/ChimeraX/0.9/site- packages/chimerax/clipper/symmetry.py", line 234, in symmetry_from_model_metadata_mmcif if 'X-RAY DIFFRACTION' not in metadata['exptl data']: See log for complete Python traceback. > toolshed 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") OpenGL version: 3.3.0 NVIDIA 415.27 OpenGL renderer: TITAN Xp/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation
Change History (7)
comment:1 by , 6 years ago
Component: | Unassigned → Input/Output |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → mmCIF not writing "exptl"/"exptl data" headers |
comment:2 by , 6 years ago
comment:3 by , 6 years ago
Ah. I think of "exptl"/"exptl data" as one table. Do you just want exptl or are others needed?
comment:4 by , 6 years ago
Anyway, I've added the exptl table to the ones that ChimeraX keeps in metadata.
comment:7 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
exptl table is now in mmCIF output if it was in the input.
Note:
See TracTickets
for help on using tickets.
I don't see "exptl_data" as a known mmCIF category. The ones documented are: exptl, exptl_crystal, exptl_crystal_face, exptl_crystal_grow, exptl_crystal_grow_comp, pdbx_exptl_crystal_cryo_treatment, pdbx_exptl_crystal_grow_comp, and pdbx_exptl_crystal_grow_sol.