Opened 4 weeks ago
Last modified 4 weeks ago
#19283 assigned defect
MemoryError processing surface
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Graphics | Version: | |
| Keywords: | Cc: | Eric Pettersen | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Windows-10-10.0.26100
ChimeraX Version: 1.10.1 (2025-07-24 20:15:27 UTC)
Description
Replace this text with list of actions that caused this problem to occur
Log:
UCSF ChimeraX version: 1.10.1 (2025-07-24)
© 2016-2025 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open "F:\\\PBMC SELEX\\\Results\\\MD
> simulation\\\apt5-CD35\\\apt5complex.pdb"
Summary of feedback from opening F:\\\PBMC SELEX\\\Results\\\MD
simulation\\\apt5-CD35\\\apt5complex.pdb
---
warnings | Ignored bad PDB record found on line 1
REMARK Number: 3
Ignored bad PDB record found on line 2
REMARK Ligand: lig_68fc9bea19dfb.pdb
Ignored bad PDB record found on line 3
REMARK Contact: 0 0 0
Ignored bad PDB record found on line 4
REMARK Score: -289.02
Ignored bad PDB record found on line 5
REMARK RMSD: 135.73
Chain information for apt5complex.pdb #1
---
Chain | Description
? | No description available
A | No description available
Computing secondary structure
> set bgColor white
> nucleotides fill
> style nucleic stick
Changed 1973 atom styles
> nucleotides stubs
> nucleotides fill
> style nucleic stick
Changed 1973 atom styles
> select /A
14975 atoms, 15427 bonds, 1945 residues, 1 model selected
> coulombic sel
Using Amber 20 recommended default charges and atom types for standard
residues
Coulombic values for apt5complex.pdb_A SES surface #1.1: minimum, -21.82, mean
-1.68, maximum 10.96
To also show corresponding color key, enter the above coulombic command and
add key true
> coulombic sel
Coulombic values for apt5complex.pdb_A SES surface #1.1: minimum, -21.82, mean
-1.68, maximum 10.96
To also show corresponding color key, enter the above coulombic command and
add key true
> coulombic sel
Coulombic values for apt5complex.pdb_A SES surface #1.1: minimum, -21.82, mean
-1.68, maximum 10.96
To also show corresponding color key, enter the above coulombic command and
add key true
> select add #1
16948 atoms, 17637 bonds, 2041 residues, 2 models selected
> select subtract #1
1 model selected
> select add #1
16948 atoms, 17637 bonds, 2041 residues, 2 models selected
> hide #!1 models
> show #!1 models
Traceback (most recent call last):
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\core\triggerset.py",
line 149, in invoke
return self._func(self._name, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\model_panel\tool.py",
line 214, in <lambda>
lambda *args, ft=self._fill_tree, ar=always_rebuild: ft(always_rebuild=ar))
^^^^^^^^^^^^^^^^^^^^^
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\model_panel\tool.py",
line 255, in _fill_tree
self._get_info(model, all_selected_models, part_selected_models)
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\model_panel\tool.py",
line 356, in _get_info
bg_color = self._model_color(obj)
^^^^^^^^^^^^^^^^^^^^^^
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\model_panel\tool.py",
line 401, in _model_color
return model.overall_color
^^^^^^^^^^^^^^^^^^^
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\atomic\molsurf.py",
line 404, in _get_overall_color
return self.color if vc is None or len(vc) == 0 else most_common_color(vc)
^^^^^^^^^^^^^^^^^^^^^
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\core\colors.py", line
825, in most_common_color
unique, indices, counts = unique(as32, return_index=True, return_counts=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\numpy\lib\arraysetops.py", line
274, in unique
ret = _unique1d(ar, return_index, return_inverse, return_counts,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\numpy\lib\arraysetops.py", line
333, in _unique1d
perm = ar.argsort(kind='mergesort' if return_index else 'quicksort')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MemoryError
Error processing trigger "new frame":
MemoryError
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\numpy\lib\arraysetops.py", line
333, in _unique1d
perm = ar.argsort(kind='mergesort' if return_index else 'quicksort')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
See log for complete Python traceback.
An error occurred in drawing the scene. Redrawing graphics is now stopped to
avoid a continuous stream of error messages. To restart graphics use the
command "graphics restart" after changing the settings that caused the error.
Unable to allocate 9.07 MiB for an array with shape (792276, 3) and data type
int32
Traceback (most recent call last):
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\core\updateloop.py",
line 84, in draw_new_frame
view.draw(check_for_changes = False)
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\graphics\view.py",
line 188, in draw
self._draw_scene(camera, drawings)
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\graphics\view.py",
line 259, in _draw_scene
draw_opaque(r, opaque_drawings)
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\graphics\drawing.py",
line 1559, in draw_opaque
_draw_multiple(drawings, renderer, Drawing.OPAQUE_DRAW_PASS)
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\graphics\drawing.py",
line 1572, in _draw_multiple
d.draw(renderer, draw_pass)
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\graphics\drawing.py",
line 784, in draw
self.draw_self(renderer, draw_pass)
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\graphics\drawing.py",
line 791, in draw_self
self._draw_geometry(renderer, opaque_only = any_transp)
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\graphics\drawing.py",
line 815, in _draw_geometry
self._update_buffers()
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\graphics\drawing.py",
line 942, in _update_buffers
dss.update_element_buffer(ta, style, tmsel, em)
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\graphics\drawing.py",
line 1788, in update_element_buffer
e = self.masked_elements(triangles, style, triangle_mask, edge_mask)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\ChimeraX 1.10.1\bin\Lib\site-packages\chimerax\graphics\drawing.py",
line 1816, in masked_elements
ta = ta[tmask, :]
~~^^^^^^^^^^
numpy.core._exceptions._ArrayMemoryError: Unable to allocate 9.07 MiB for an
array with shape (792276, 3) and data type int32
OpenGL version: 3.3.0 NVIDIA 560.94
OpenGL renderer: NVIDIA GeForce RTX 3070 Ti/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Python: 3.11.4
Locale: zh_CN.cp936
Qt version: PyQt6 6.8.1, Qt 6.8.2
Qt runtime version: 6.8.2
Qt platform: windows
Installed Packages:
alabaster: 1.0.0
appdirs: 1.4.4
asttokens: 3.0.0
babel: 2.17.0
beautifulsoup4: 4.13.3
blockdiag: 3.0.0
blosc2: 3.6.1
build: 1.2.2.post1
certifi: 2025.7.14
cftime: 1.6.4.post1
charset-normalizer: 3.4.2
ChimeraX-AddCharge: 1.5.19
ChimeraX-AddH: 2.2.7
ChimeraX-AlignmentAlgorithms: 2.0.2
ChimeraX-AlignmentHdrs: 3.6.1
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.20.2
ChimeraX-AlphaFold: 1.0.1
ChimeraX-AltlocExplorer: 1.1.2
ChimeraX-AmberInfo: 1.0
ChimeraX-Aniso: 1.1.4
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.60.7
ChimeraX-AtomicLibrary: 14.1.19
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.4
ChimeraX-BasicActions: 1.1.3
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 3.0.0
ChimeraX-Boltz: 1.0
ChimeraX-BondRot: 2.0.4
ChimeraX-BugReporter: 1.0.2
ChimeraX-BuildStructure: 2.13.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.5.1
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.4
ChimeraX-ChangeChains: 1.1
ChimeraX-CheckWaters: 1.5
ChimeraX-ChemGroup: 2.0.2
ChimeraX-Clashes: 2.3
ChimeraX-ColorActions: 1.0.5
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.8
ChimeraX-CommandLine: 1.3
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.10.1
ChimeraX-CoreFormats: 1.2
ChimeraX-coulombic: 1.4.5
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.4
ChimeraX-Dicom: 1.2.7
ChimeraX-DistMonitor: 1.4.2
ChimeraX-DockPrep: 1.1.4
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.4.1
ChimeraX-Hbonds: 2.5.1
ChimeraX-Help: 1.3
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.3
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-IUPAC: 1.0
ChimeraX-KVFinder: 1.6.2
ChimeraX-Label: 1.1.14
ChimeraX-ListInfo: 1.2.2
ChimeraX-Log: 1.2
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.9.1
ChimeraX-Map: 1.3
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.2.2
ChimeraX-MCopy: 1.0
ChimeraX-MDcrds: 2.10.1
ChimeraX-MedicalToolbar: 1.1
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.16
ChimeraX-MMTF: 2.2
ChimeraX-ModelArchive: 1.0
ChimeraX-Modeller: 1.5.19
ChimeraX-ModelPanel: 1.5.1
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0.3
ChimeraX-Mole: 1.0
ChimeraX-Morph: 1.0.2
ChimeraX-MouseModes: 1.2
ChimeraX-Movie: 1.0
ChimeraX-MutationScores: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nifti: 1.2
ChimeraX-NMRSTAR: 1.0.2
ChimeraX-NRRD: 1.2
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.14.1
ChimeraX-OrthoPick: 1.0.1
ChimeraX-PDB: 2.7.10
ChimeraX-PDBBio: 1.0.1
ChimeraX-PDBLibrary: 1.0.4
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1.3
ChimeraX-ProfileGrids: 1.1.3
ChimeraX-PubChem: 2.2
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.2
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.6.3
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.3.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 4.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.3
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-Segmentations: 3.5.7
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.17.1
ChimeraX-Shape: 1.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.2.1
ChimeraX-ShowSequences: 1.0.3
ChimeraX-SideView: 1.0.1
ChimeraX-SimilarStructures: 1.0.1
ChimeraX-Smiles: 2.1.2
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.19.1
ChimeraX-STL: 1.0.1
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.2.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0.1
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.5.2
ChimeraX-TapeMeasure: 1.0
ChimeraX-TaskManager: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.2.3
ChimeraX-ToolshedUtils: 1.2.4
ChimeraX-Topography: 1.0
ChimeraX-ToQuest: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.45.2
ChimeraX-Umap: 1.0
ChimeraX-uniprot: 2.3.1
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.4.4
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-vrml: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.2
ChimeraX-WebServices: 1.1.5
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.2.2
comtypes: 1.4.10
contourpy: 1.3.2
coverage: 7.10.0
cxservices: 1.2.3
cycler: 0.12.1
Cython: 3.0.12
debugpy: 1.8.15
decorator: 5.2.1
docutils: 0.21.2
executing: 2.2.0
filelock: 3.18.0
fonttools: 4.59.0
funcparserlib: 2.0.0a0
glfw: 2.9.0
grako: 3.16.5
h5py: 3.14.0
html2text: 2024.2.26
idna: 3.10
ihm: 2.2
imagecodecs: 2024.6.1
imagesize: 1.4.1
iniconfig: 2.1.0
ipykernel: 6.29.5
ipython: 8.26.0
ipywidgets: 8.1.7
jedi: 0.19.1
Jinja2: 3.1.6
jupyter_client: 8.6.3
jupyter_core: 5.8.1
jupyterlab_widgets: 3.0.15
kiwisolver: 1.4.8
line_profiler: 4.2.0
lxml: 5.3.1
lz4: 4.3.2
MarkupSafe: 3.0.2
matplotlib: 3.10.1
matplotlib-inline: 0.1.7
msgpack: 1.1.0
ndindex: 1.10.0
nest-asyncio: 1.6.0
netCDF4: 1.6.5
networkx: 3.3
nibabel: 5.2.0
nptyping: 2.5.0
numexpr: 2.11.0
numpy: 1.26.4
nvidia-nvjitlink-cu12: 12.9.86
OpenMM: 8.2.0
OpenMM-CUDA-12: 8.2.0
openvr: 1.26.701
packaging: 24.2
ParmEd: 4.2.2
parso: 0.8.4
pep517: 0.13.1
pickleshare: 0.7.5
pillow: 10.4.0
pip: 25.0.1
pkginfo: 1.11.1
platformdirs: 4.3.8
pluggy: 1.6.0
prompt_toolkit: 3.0.51
psutil: 7.0.0
pure_eval: 0.2.3
py-cpuinfo: 9.0.0
pycollada: 0.8
pydicom: 2.4.4
Pygments: 2.18.0
pynmrstar: 3.3.5
pynrrd: 1.0.0
PyOpenGL: 3.1.9
PyOpenGL-accelerate: 3.1.9
pyopenxr: 1.1.4501
pyparsing: 3.2.3
pyproject_hooks: 1.2.0
PyQt6-commercial: 6.8.1
PyQt6-Qt6: 6.8.2
PyQt6-WebEngine-commercial: 6.8.0
PyQt6-WebEngine-Qt6: 6.8.2
PyQt6_sip: 13.10.0
pytest: 8.4.1
pytest-cov: 6.2.1
python-dateutil: 2.9.0.post0
pytz: 2025.2
pywin32: 310
pyzmq: 27.0.0
qtconsole: 5.5.2
QtPy: 2.4.3
qtshim: 1.1
RandomWords: 0.4.0
requests: 2.32.3
roman-numerals-py: 3.1.0
scipy: 1.14.0
setuptools: 78.1.0
sfftk-rw: 0.8.1
six: 1.16.0
snowballstemmer: 3.0.1
sortedcontainers: 2.4.0
soupsieve: 2.7
Sphinx: 8.2.3
sphinx-autodoc-typehints: 3.1.0
sphinxcontrib-applehelp: 2.0.0
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 2.0.0
sphinxcontrib-htmlhelp: 2.1.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 2.0.0
sphinxcontrib-serializinghtml: 2.0.0
stack-data: 0.6.3
superqt: 0.7.1
tables: 3.10.2
tcia_utils: 1.5.1
tifffile: 2025.3.13
tinyarray: 1.2.4
tornado: 6.5.1
traitlets: 5.14.3
typing_extensions: 4.14.1
tzdata: 2025.2
urllib3: 2.5.0
wcwidth: 0.2.13
webcolors: 24.11.1
wheel: 0.45.1
wheel-filename: 1.4.2
widgetsnbextension: 4.0.14
WMI: 1.5.1
Change History (6)
comment:1 by , 4 weeks ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Graphics |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → MemoryError processing surface |
comment:2 by , 4 weeks ago
Yes, 800,000 triangles is about right for 17000 atoms. For example, the solvent accessible surface area of 1a43 with ~17000 atoms is 50,000 square Angstroms. The surface calculation uses a grid spacing of 0.5 Angstroms, so about 8 triangles of 0.5 Angstrom edge length to cover 1 square Angstrom. But the method probably on average produces smaller triangles than that, say it needs twice as many so 16 triangles per square angstrom. Wala! 16 * 50,000 = 800,000.
The real mystery to me is why all the out of memory errors we get are on Windows. This one is trying to allocate just 9 Mbytes. Strangely the bug report does not include the amount of computer memory (I guess the query produced an error). Remember when we had some serious memory leak just opening atomic models on Windows? I'm not sure that was ever understood and fixed. With the modest size structures in this report I would not expect to run into memory problems unless the machine has just 4 GB.
comment:3 by , 4 weeks ago
The out-of-memory error when opening mmCIF files on Windows was indeed fixed by Greg several moons ago.
comment:4 by , 4 weeks ago
This bug report only opens .pdb files. It is possible they have very little memory but seems unlikely with a relatively recent and somewhat expensive graphics card Nvidia 3070 Ti. Possibly there is something deficient about Windows memory management that causes all the out of memory errors to be on Windows.
comment:5 by , 4 weeks ago
Yeah, weird, normally you get a report of total system memory on all platforms, including Windows (e.g. #19281)
comment:6 by , 4 weeks ago
I guess the call to get the system memory failed also due to insufficient memory.
It seems like an about 17K atom structure had a surface with 800K vertices? Does that seems right?