Opened 4 years ago
Closed 4 years ago
#4767 closed defect (fixed)
Coulombic: can't invert matrix
Reported by: | Owned by: | pett | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Surface/Binding Analysis | Version: | |
Keywords: | Cc: | Tom Goddard | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Windows-10-10.0.19041 ChimeraX Version: 1.2.5 (2021-05-24 04:13:57 UTC) Description (Describe the actions that caused this problem to occur here) Log: UCSF ChimeraX version: 1.2.5 (2021-05-24) © 2016-2021 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > ui tool show "Build Structure" > help help:quickstart > ui tool show "Command Line Interface" > open 1zeh Summary of feedback from opening 1zeh fetched from pdb --- notes | Fetching compressed mmCIF 1zeh from http://files.rcsb.org/download/1zeh.cif Fetching CCD CRS from http://ligand-expo.rcsb.org/reports/C/CRS/CRS.cif Fetching CCD ZN from http://ligand-expo.rcsb.org/reports/Z/ZN/ZN.cif Fetching CCD CL from http://ligand-expo.rcsb.org/reports/C/CL/CL.cif 1zeh title: Structure of insulin [more info...] Chain information for 1zeh #1 --- Chain | Description A C | insulin B D | insulin Non-standard residues in 1zeh #1 --- CL — chloride ion CRS — M-cresol ZN — zinc ion 1zeh mmCIF Assemblies --- 1| author_and_software_defined_assembly 2| author_and_software_defined_assembly 3| software_defined_assembly 4| software_defined_assembly 5| software_defined_assembly 6| software_defined_assembly 7| software_defined_assembly Drag select of 151 atoms, 102 residues, 4 pseudobonds, 126 bonds > select clear > show #!1 target m > view #1 clip false > ui tool show "Color Actions" > ui tool show "Model Panel" > select #1 963 atoms, 872 bonds, 4 pseudobonds, 218 residues, 2 models selected > ~select #1 Nothing selected > ui tool show "Surface Color" Surface Color: no surface chosen No surface chosen for coloring Drag select of 151 atoms, 102 residues, 4 pseudobonds, 126 bonds Surface Color: no surface chosen > ui tool show "Surface Color" > style sel stick Changed 860 atom styles > style sel sphere Changed 860 atom styles > style sel ball Changed 860 atom styles > undo > undo > undo > select clear > show cartoons Drag select of 151 atoms, 102 residues, 4 pseudobonds, 126 bonds > show sel atoms > show sel cartoons > lighting simple > lighting soft > lighting full > lighting soft > lighting simple > lighting soft > lighting full > lighting soft > lighting full > show sel surfaces > hide sel surfaces > nucleotides sel atoms > style nucleic & sel stick Changed 0 atom styles > nucleotides sel ladder > nucleotides sel atoms > style nucleic & sel stick Changed 0 atom styles > color sel bynucleotide > color sel byhetero > color sel bychain > color sel bynucleotide > color sel bychain > rainbow sel > coulombic sel Traceback (most recent call last): File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\toolbar\tool.py", line 202, in callback bundle_info.run_provider(session, name, session.toolbar, display_name=display_name) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\core\toolshed\info.py", line 379, in run_provider return api._api_caller.run_provider(api, session, name, mgr, **kw) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\core\toolshed\\__init__.py", line 1285, in run_provider return cls._get_func(api, "run_provider")(session, name, mgr, **kw) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\shortcuts\\__init__.py", line 52, in run_provider shortcuts.run_provider(session, name) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\shortcuts\shortcuts.py", line 1333, in run_provider keyboard_shortcuts(session).try_shortcut(name) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\shortcuts\shortcuts.py", line 389, in try_shortcut self.run_shortcut(keys) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\shortcuts\shortcuts.py", line 407, in run_shortcut sc.run(self.session, status = self._enabled) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\shortcuts\shortcuts.py", line 326, in run f(s) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\shortcuts\shortcuts.py", line 61, in func_plus_tip func(cmd + " %s")(session) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\shortcuts\shortcuts.py", line 568, in run_expanded_command run(session, cmd) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\shortcuts\shortcuts.py", line 511, in run run_command(session, command, **kw) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\core\commands\run.py", line 36, in run results = command.run(text, log=log, return_json=return_json) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\core\commands\cli.py", line 2852, in run result = ci.function(session, **kw_args) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\coulombic\cmd.py", line 90, in cmd_coulombic assign_charges(session, needs_assignment, his_scheme, charge_method, File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\coulombic\coulombic.py", line 74, in assign_charges cmd_addh(session, addh_structures, hbond=hbond) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\addh\cmd.py", line 63, in cmd_addh add_h_func(session, structures, template=template, in_isolation=in_isolation, **prot_schemes) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\addh\cmd.py", line 170, in hbond_add_hydrogens add_hydrogens(session, atoms, type_info_for_atom, naming_schemas, hydrogen_totals, File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\addh\hbond.py", line 632, in add_hydrogens positions = bond_positions(at_pos, geom, File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\atomic\bond_geom.py", line 78, in bond_positions return tetra_pos(bondee, bonded, bond_len, toward, away, toward2, away2) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\atomic\bond_geom.py", line 158, in tetra_pos pos = angle_pos(bondee, cur_bonded[0], bond_len, 109.5, coplanar=coplanar) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\atomic\bond_geom.py", line 247, in angle_pos points.append(xform.inverse() * angle) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\geometry\place.py", line 190, in inverse self._inverse = Place(m34.invert_matrix(self._matrix)) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\chimerax\geometry\matrix.py", line 130, in invert_matrix rinv[:, :] = matrix_inverse(r) File "<__array_function__ internals>", line 5, in inv File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\numpy\linalg\linalg.py", line 546, in inv ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj) File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\numpy\linalg\linalg.py", line 88, in _raise_linalgerror_singular raise LinAlgError("Singular matrix") numpy.linalg.LinAlgError: Singular matrix numpy.linalg.LinAlgError: Singular matrix File "C:\Program Files\ChimeraX 1.2.5\bin\lib\site- packages\numpy\linalg\linalg.py", line 88, in _raise_linalgerror_singular raise LinAlgError("Singular matrix") See log for complete Python traceback. OpenGL version: 3.3.0 NVIDIA 456.71 OpenGL renderer: GeForce GTX 1050 Ti/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation Manufacturer: LOGIN INFORMATICA LTDA Model: LOG-B250M-G OS: Microsoft Windows 10 Pro (Build 19043) Memory: 17,053,159,424 MaxProcessMemory: 137,438,953,344 CPU: 4 Intel(R) Core(TM) i5-7600 CPU @ 3.50GHz OSLanguage: en-US Locale: ('en_US', 'cp1252') PyQt5 5.15.2, Qt 5.15.2 Installed Packages: alabaster: 0.7.12 appdirs: 1.4.4 Babel: 2.9.1 backcall: 0.2.0 blockdiag: 2.0.1 certifi: 2020.12.5 cftime: 1.5.0 chardet: 3.0.4 ChimeraX-AddCharge: 1.0.1 ChimeraX-AddH: 2.1.6 ChimeraX-AlignmentAlgorithms: 2.0 ChimeraX-AlignmentHdrs: 3.2 ChimeraX-AlignmentMatrices: 2.0 ChimeraX-Alignments: 2.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.0 ChimeraX-Atomic: 1.13.2 ChimeraX-AtomicLibrary: 3.1.3 ChimeraX-AtomSearch: 2.0 ChimeraX-AtomSearchLibrary: 1.0 ChimeraX-AxesPlanes: 2.0 ChimeraX-BasicActions: 1.1 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 1.1 ChimeraX-BondRot: 2.0 ChimeraX-BugReporter: 1.0 ChimeraX-BuildStructure: 2.5.2 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.1 ChimeraX-ButtonPanel: 1.0 ChimeraX-CageBuilder: 1.0 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.1 ChimeraX-ChemGroup: 2.0 ChimeraX-Clashes: 2.1 ChimeraX-ColorActions: 1.0 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.2.1 ChimeraX-CommandLine: 1.1.4 ChimeraX-ConnectStructure: 2.0 ChimeraX-Contacts: 1.0 ChimeraX-Core: 1.2.5 ChimeraX-CoreFormats: 1.0 ChimeraX-coulombic: 1.1.1 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0 ChimeraX-DataFormats: 1.1 ChimeraX-Dicom: 1.0 ChimeraX-DistMonitor: 1.1.3 ChimeraX-DistUI: 1.0 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ExperimentalCommands: 1.0 ChimeraX-FileHistory: 1.0 ChimeraX-FunctionKey: 1.0 ChimeraX-Geometry: 1.1 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.0 ChimeraX-Hbonds: 2.1 ChimeraX-Help: 1.1 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.0 ChimeraX-ImageFormats: 1.1 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.1 ChimeraX-Label: 1.0 ChimeraX-ListInfo: 1.1.1 ChimeraX-Log: 1.1.2 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.8.1 ChimeraX-Map: 1.0.2 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0 ChimeraX-MapFilter: 2.0 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.0 ChimeraX-Markers: 1.0 ChimeraX-Mask: 1.0 ChimeraX-MatchMaker: 1.2.1 ChimeraX-MDcrds: 2.2 ChimeraX-MedicalToolbar: 1.0.1 ChimeraX-Meeting: 1.0 ChimeraX-MLP: 1.1 ChimeraX-mmCIF: 2.3 ChimeraX-MMTF: 2.1 ChimeraX-Modeller: 1.0.1 ChimeraX-ModelPanel: 1.0.1 ChimeraX-ModelSeries: 1.0 ChimeraX-Mol2: 2.0 ChimeraX-Morph: 1.0 ChimeraX-MouseModes: 1.1 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nucleotides: 2.0.1 ChimeraX-OpenCommand: 1.5 ChimeraX-PDB: 2.4.1 ChimeraX-PDBBio: 1.0 ChimeraX-PDBLibrary: 1.0.1 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.0.1 ChimeraX-PubChem: 2.0.1 ChimeraX-ReadPbonds: 1.0 ChimeraX-Registration: 1.1 ChimeraX-RemoteControl: 1.0 ChimeraX-ResidueFit: 1.0 ChimeraX-RestServer: 1.1 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 2.0 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.4 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0 ChimeraX-SeqView: 2.3 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0 ChimeraX-Shortcuts: 1.0 ChimeraX-ShowAttr: 1.0 ChimeraX-ShowSequences: 1.0 ChimeraX-SideView: 1.0 ChimeraX-Smiles: 2.0.1 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.3.1 ChimeraX-STL: 1.0 ChimeraX-Storm: 1.0 ChimeraX-Struts: 1.0 ChimeraX-Surface: 1.0 ChimeraX-SwapAA: 2.0 ChimeraX-SwapRes: 2.1 ChimeraX-TapeMeasure: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.0.1 ChimeraX-ToolshedUtils: 1.2 ChimeraX-Tug: 1.0 ChimeraX-UI: 1.7.6 ChimeraX-uniprot: 2.1 ChimeraX-UnitCell: 1.0 ChimeraX-ViewDockX: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0 ChimeraX-WebServices: 1.0 ChimeraX-Zone: 1.0 colorama: 0.4.3 comtypes: 1.1.7 cxservices: 1.0 cycler: 0.10.0 Cython: 0.29.21 decorator: 5.0.9 distlib: 0.3.1 docutils: 0.16 filelock: 3.0.12 funcparserlib: 0.3.6 grako: 3.16.5 h5py: 2.10.0 html2text: 2020.1.16 idna: 2.10 ihm: 0.17 imagecodecs: 2020.5.30 imagesize: 1.2.0 ipykernel: 5.3.4 ipython: 7.18.1 ipython-genutils: 0.2.0 jedi: 0.17.2 Jinja2: 2.11.2 jupyter-client: 6.1.7 jupyter-core: 4.7.1 kiwisolver: 1.3.1 line-profiler: 2.1.2 lxml: 4.6.2 lz4: 3.1.0 MarkupSafe: 2.0.1 matplotlib: 3.3.2 msgpack: 1.0.0 netCDF4: 1.5.4 networkx: 2.5 numexpr: 2.7.3 numpy: 1.19.2 numpydoc: 1.1.0 openvr: 1.14.1501 packaging: 20.9 ParmEd: 3.2.0 parso: 0.7.1 pickleshare: 0.7.5 Pillow: 7.2.0 pip: 21.0.1 pkginfo: 1.5.0.1 prompt-toolkit: 3.0.18 psutil: 5.7.2 pycollada: 0.7.1 pydicom: 2.0.0 Pygments: 2.7.1 PyOpenGL: 3.1.5 PyOpenGL-accelerate: 3.1.5 pyparsing: 2.4.7 PyQt5-commercial: 5.15.2 PyQt5-sip: 12.8.1 PyQtWebEngine-commercial: 5.15.2 python-dateutil: 2.8.1 pytz: 2021.1 pywin32: 228 pyzmq: 22.0.3 qtconsole: 4.7.7 QtPy: 1.9.0 RandomWords: 0.3.0 requests: 2.24.0 scipy: 1.5.2 setuptools: 50.3.2 sfftk-rw: 0.6.7.dev1 six: 1.15.0 snowballstemmer: 2.1.0 sortedcontainers: 2.2.2 Sphinx: 3.2.1 sphinxcontrib-applehelp: 1.0.2 sphinxcontrib-blockdiag: 2.0.0 sphinxcontrib-devhelp: 1.0.2 sphinxcontrib-htmlhelp: 2.0.0 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.3 sphinxcontrib-serializinghtml: 1.1.5 suds-jurko: 0.6 tables: 3.6.1 tifffile: 2020.9.3 tinyarray: 1.2.3 tornado: 6.1 traitlets: 5.0.5 urllib3: 1.25.11 wcwidth: 0.2.5 webcolors: 1.11.1 wheel: 0.36.0 wheel-filename: 1.3.0 WMI: 1.5.1
Change History (5)
comment:1 by , 4 years ago
Component: | Unassigned → Surface/Binding Analysis |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → accepted |
Summary: | ChimeraX bug report submission → Coulombic: can't invert matrix |
comment:2 by , 4 years ago
Cc: | added |
---|---|
Owner: | changed from | to
Status: | accepted → assigned |
comment:3 by , 4 years ago
Cc: | added; removed |
---|---|
Owner: | changed from | to
The call to look_at() in angle_pos() in bond_geom.py produces a singular matrix with atom_pos and bond_pos both along z-axis and up direction along z axis.
comment:4 by , 4 years ago
Two water atoms in the structure have the exact same xy coordinates only differ in Z.
comment:5 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Don't try for coplanar positioning if the points involved are collinear.
Note:
See TracTickets
for help on using tickets.
I'm not enough of a matrix-math wizard to tell if this is a problem with the code calling invert() or with the invert code itself, so reassigning to T.G. to figure out that part. Running "coulombic" on 1zeh winds up throwing a "Singular matrix" error when trying to invert: