Opened 2 years ago

Closed 23 months ago

#9214 closed defect (fixed)

ChimeraX 1.6.1 can not save as mmcif format while computedSheets is true

Reported by: huwl2022@… Owned by: pett
Priority: normal Milestone: 1.7
Component: Input/Output Version:
Keywords: Cc: Greg Couch
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description (last modified by Greg Couch)

Hi,

(Describe the actions that caused this problem to occur here)

In the chimerax version 1.6.1 on the platform of Windows-10-10.0.22621,when I run the following command to save a 120-chains-virus pdb as mmcif format, it seems something wrong. BTW, why is it so slow to open a mmcif file in the Chimera? Is there something wrong in my file?

save 0619_F&G_final_computedSheets.mmcif computedSheets true

Not saving entity_poly_seq for non-authoritative sequences
old strand order: ('S1', 1) ('S2', 3)
old strand order: ('S1', 3) ('S2', 3)
old strand order: ('S1', 5) ('S2', 3)
old strand order: ('S1', 5) ('S2', 4)
old strand order: ('S2', 3) ('S1', 1)
old strand order: ('S2', 3) ('S1', 3)
old strand order: ('S2', 3) ('S1', 5)
old strand order: ('S2', 4) ('S1', 5)
old strand order: ('S3', 2) ('S242', 1)
old strand order: ('S3', 1) ('S242', 2)
Traceback (most recent call last):
File "D:\ChimeraX\ChimeraX1.6\bin\lib\site-packages\chimerax\cmd_line\tool.py", line 319, in execute
cmd.run(cmd_text)
File "D:\ChimeraX\ChimeraX1.6\bin\lib\site-packages\chimerax\core\commands\cli.py", line 2897, in run
result = ci.function(session, **kw_args)
File "D:\ChimeraX\ChimeraX1.6\bin\lib\site-packages\chimerax\save_command\cmd.py", line 75, in cmd_save
Command(session, registry=registry).run(provider_cmd_text, log=log)
File "D:\ChimeraX\ChimeraX1.6\bin\lib\site-packages\chimerax\core\commands\cli.py", line 2897, in run
result = ci.function(session, **kw_args)
File "D:\ChimeraX\ChimeraX1.6\bin\lib\site-packages\chimerax\save_command\cmd.py", line 90, in provider_save
saver_info.save(session, path, **provider_kw)
File "D:\ChimeraX\ChimeraX1.6\bin\lib\site-packages\chimerax\mmcif\__init__.py", line 112, in save
mmcif_write.write_mmcif(session, path, **kw)
File "src\mmcif_write.pyx", line 149, in chimerax.mmcif.mmcif_write.write_mmcif
File "src\mmcif_write.pyx", line 156, in chimerax.mmcif.mmcif_write.write_mmcif
File "src\mmcif_write.pyx", line 892, in chimerax.mmcif.mmcif_write.save_structure
File "src\mmcif_write.pyx", line 915, in chimerax.mmcif.mmcif_write.save_structure
KeyError: 11
KeyError: 11

File "src\mmcif_write.pyx", line 915, in chimerax.mmcif.mmcif_write.save_structure


OpenGL version: 3.3.0 NVIDIA 512.89
OpenGL renderer: NVIDIA GeForce RTX 3050 Laptop GPU/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

Python: 3.9.11
Locale: zh_CN.cp936
Qt version: PyQt6 6.4.2, Qt 6.4.2
Qt runtime version: 6.4.3
Qt platform: windows

Manufacturer: MECHREVO
Model: Z3 Air Series GM5TGEO
OS: Microsoft Windows 11 家庭中文版 (Build 22621)
Memory: 16,911,499,264
MaxProcessMemory: 137,438,953,344
CPU: 16 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
OSLanguage: zh-CN

Installed Packages:
alabaster: 0.7.13
appdirs: 1.4.4
asttokens: 2.2.1
Babel: 2.12.1
backcall: 0.2.0
beautifulsoup4: 4.11.2
blockdiag: 3.0.0
build: 0.10.0
certifi: 2023.5.7
cftime: 1.6.2
charset-normalizer: 3.1.0
ChimeraX-AddCharge: 1.5.9.1
ChimeraX-AddH: 2.2.5
ChimeraX-AlignmentAlgorithms: 2.0.1
ChimeraX-AlignmentHdrs: 3.3.1
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.9.3
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.3
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.43.10
ChimeraX-AtomicLibrary: 10.0.6
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.3.2
ChimeraX-BasicActions: 1.1.2
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.2
ChimeraX-BondRot: 2.0.1
ChimeraX-BugReporter: 1.0.1
ChimeraX-BuildStructure: 2.8
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.2.2
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.3.2
ChimeraX-ChangeChains: 1.0.2
ChimeraX-CheckWaters: 1.3.1
ChimeraX-ChemGroup: 2.0.1
ChimeraX-Clashes: 2.2.4
ChimeraX-ColorActions: 1.0.3
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.3
ChimeraX-CommandLine: 1.2.5
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.6.1
ChimeraX-CoreFormats: 1.1
ChimeraX-coulombic: 1.4.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.3
ChimeraX-Dicom: 1.2
ChimeraX-DistMonitor: 1.4
ChimeraX-DockPrep: 1.1.1
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ESMFold: 1.0
ChimeraX-FileHistory: 1.0.1
ChimeraX-FunctionKey: 1.0.1
ChimeraX-Geometry: 1.3
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.1.1
ChimeraX-Hbonds: 2.4
ChimeraX-Help: 1.2.1
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.1
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-Label: 1.1.7
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.5
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.2
ChimeraX-Map: 1.1.4
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0.1
ChimeraX-MapFilter: 2.0.1
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1.1
ChimeraX-Markers: 1.0.1
ChimeraX-Mask: 1.0.2
ChimeraX-MatchMaker: 2.0.12
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.2
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.12
ChimeraX-MMTF: 2.2
ChimeraX-Modeller: 1.5.9
ChimeraX-ModelPanel: 1.3.7
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0
ChimeraX-Mole: 1.0
ChimeraX-Morph: 1.0.2
ChimeraX-MouseModes: 1.2
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nifti: 1.0
ChimeraX-NRRD: 1.0
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.10.1
ChimeraX-PDB: 2.7.2
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1
ChimeraX-PubChem: 2.1
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.1
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 3.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5.1
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0.1
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.8.3
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.1.1
ChimeraX-ShowSequences: 1.0.1
ChimeraX-SideView: 1.0.1
ChimeraX-Smiles: 2.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.10.3
ChimeraX-STL: 1.0.1
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.1.2
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0.1
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.2.1
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1.2
ChimeraX-ToolshedUtils: 1.2.1
ChimeraX-Topography: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.28.4
ChimeraX-uniprot: 2.2.2
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.2
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.2
ChimeraX-WebServices: 1.1.1
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.1.3
comtypes: 1.1.14
contourpy: 1.0.7
cxservices: 1.2.2
cycler: 0.11.0
Cython: 0.29.33
debugpy: 1.6.7
decorator: 5.1.1
docutils: 0.19
executing: 1.2.0
filelock: 3.9.0
fonttools: 4.39.3
funcparserlib: 1.0.1
grako: 3.16.5
h5py: 3.8.0
html2text: 2020.1.16
idna: 3.4
ihm: 0.35
imagecodecs: 2022.9.26
imagesize: 1.4.1
importlib-metadata: 6.6.0
ipykernel: 6.21.1
ipython: 8.10.0
ipython-genutils: 0.2.0
ipywidgets: 8.0.6
jedi: 0.18.2
Jinja2: 3.1.2
jupyter-client: 8.0.2
jupyter-core: 5.3.0
jupyterlab-widgets: 3.0.7
kiwisolver: 1.4.4
line-profiler: 4.0.2
lxml: 4.9.2
lz4: 4.3.2
MarkupSafe: 2.1.2
matplotlib: 3.6.3
matplotlib-inline: 0.1.6
msgpack: 1.0.4
nest-asyncio: 1.5.6
netCDF4: 1.6.2
networkx: 2.8.8
nibabel: 5.0.1
nptyping: 2.5.0
numexpr: 2.8.4
numpy: 1.23.5
openvr: 1.23.701
packaging: 23.1
ParmEd: 3.4.3
parso: 0.8.3
pep517: 0.13.0
pickleshare: 0.7.5
Pillow: 9.3.0
pip: 23.0
pkginfo: 1.9.6
platformdirs: 3.5.0
prompt-toolkit: 3.0.38
psutil: 5.9.4
pure-eval: 0.2.2
pycollada: 0.7.2
pydicom: 2.3.0
Pygments: 2.14.0
pynrrd: 1.0.0
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.9
pyproject-hooks: 1.0.0
PyQt6-commercial: 6.4.2
PyQt6-Qt6: 6.4.3
PyQt6-sip: 13.4.1
PyQt6-WebEngine-commercial: 6.4.0
PyQt6-WebEngine-Qt6: 6.4.3
python-dateutil: 2.8.2
pytz: 2023.3
pywin32: 305
pyzmq: 25.0.2
qtconsole: 5.4.0
QtPy: 2.3.1
RandomWords: 0.4.0
requests: 2.28.2
scipy: 1.9.3
setuptools: 67.4.0
sfftk-rw: 0.7.3
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
soupsieve: 2.4.1
sphinx: 6.1.3
sphinx-autodoc-typehints: 1.22
sphinxcontrib-applehelp: 1.0.4
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 2.0.1
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.5
stack-data: 0.6.2
tables: 3.7.0
tcia-utils: 1.2.0
tifffile: 2022.10.10
tinyarray: 1.2.4
tomli: 2.0.1
tornado: 6.3.1
traitlets: 5.9.0
typing-extensions: 4.5.0
tzdata: 2023.3
urllib3: 1.26.15
wcwidth: 0.2.6
webcolors: 1.12
wheel: 0.38.4
wheel-filename: 1.4.1
widgetsnbextension: 4.0.7
WMI: 1.5.1
zipp: 3.15.0

Change History (12)

comment:1 by pett, 2 years ago

Component: UnassignedInput/Output
Owner: set to Greg Couch
Platform: all
Project: ChimeraX
Status: newassigned

comment:2 by Greg Couch, 2 years ago

Milestone: 1.7

comment:3 by Greg Couch, 2 years ago

Description: modified (diff)

comment:4 by Greg Couch, 2 years ago

Status: assignedfeedback

Chimera is slow reading a mmCIF file due to the code all being in Python. ChimeraX's mmCIF reading is at least an order of magnitude faster because it uses C++ to parse the mmCIF file. If ChimeraX is slow, my guess is that is because it tries to fetch residue templates via the network. And if the network is slow, that would be noticeable. All of those templates are cached, so subsequent opens will be much faster.

I suspect that there is something with ChimeraX's internal data structures that is confusing the mmCIF writing code. Please send me a ChimeraX session or input file that reproduces the problem -- either as an email attachement in response to this email, or, to keep it private, directly to me at gregc@…, or via dropbox, etc.

comment:5 by Greg Couch, 2 years ago

Please provide a way of reproducing this error so I can fix it. Can you send me the 120-chains-virus pdb? If you need to keep it private, send it to me directly at gregc@….

comment:6 by Greg Couch, 2 years ago

Thank for the test file.

For a workaround, instead of:

save 0619_F&G_final_computedSheets.mmcif computedSheets true

do:

dssp
save 0619_F&G_final_helixSheets.mmcif

That will save the helix information as well.

comment:7 by Greg Couch, 2 years ago

My mistake. You need to both (a) run the dssp command and (b) use the computedSheets option to get the full secondary structure information into the output file.

comment:8 by pett, 2 years ago

Status: feedbackaccepted

comment:9 by pett, 2 years ago

Cc: Greg Couch added
Owner: changed from Greg Couch to pett
Status: acceptedassigned

Eric needs to investigate whether DSSP output is correct or buggy.

comment:10 by Greg Couch, 2 years ago

Today's daily build has a fix that replaces the traceback with a warning that a bug should be filed.

comment:11 by Greg Couch, 2 years ago

Tweaked computed_sheets output to also output the helix information if there wasn't any helix information in the structure. This avoids running dssp twice, once to get the helix and strand information, and a second time to get the sheet information.

comment:12 by pett, 23 months ago

Resolution: fixed
Status: assignedclosed

The sheet-computation code was doing all the right things when merging two sheets except for actually putting the merged sheet into the sheet map. Fixed in both daily build and 1.7 release candidate.

Fix: https://github.com/RBVI/ChimeraX/commit/ba79f4b5f77bac553d0e1e7fe115238bdaa31425

Note: See TracTickets for help on using tickets.