Opened 5 years ago
Closed 5 years ago
#3112 closed defect (fixed)
geometry.find_closest_points index problem(?)
Reported by: | Tristan Croll | Owned by: | Tom Goddard |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core | 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-1062.9.1.el7.x86_64-x86_64-with-centos-7.7.1908-Core ChimeraX Version: 0.93 (2020-04-03) Description Not sure if this is a bug or just me not understanding, but in chimerax.geometry.find_closest_points: i1, i2, near1 = find_closest_points(coords1, coords2) ... the documentation says: near1 : numpy int32 array A third array is returned that gives the index in set 2 of the closest for each point in set 1. This array has length equal to the number of points in set 1. If a set 1 point has no point from set 2 within the distance range then index returned is -1. Is this array supposed to be ordered such that the first value is the index of the point in coords2 closest to coords1[0], and so on? Because at the moment, that's not the case (it contains all the correct indices, but they're in random order). Log: UCSF ChimeraX version: 0.93 (2020-04-03) © 2016-2020 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open 6vsb_1_1_1.pdb Summary of feedback from opening 6vsb_1_1_1.pdb --- warnings | Duplicate atom serial number found: 69277 Duplicate atom serial number found: 69278 Duplicate atom serial number found: 69279 Duplicate atom serial number found: 69280 Duplicate atom serial number found: 69276 925 messages similar to the above omitted Chain information for 6vsb_1_1_1.pdb #1 --- Chain | Description A B C | No description available > open 6vsb 6vsb title: Prefusion 2019-nCoV spike glycoprotein with a single receptor-binding domain up [more info...] Chain information for 6vsb #2 --- Chain | Description A B C | Spike glycoprotein Non-standard residues in 6vsb #2 --- NAG — N-acetyl-D-glucosamine > open 21375 fromDatabase emdb Opened emd_21375.map, grid size 432,432,432, pixel 1.05, shown at level 0.0501, step 2, values float32 > sequence chain #2/A Alignment identifier is 2.A > 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") ERROR:ipykernel.inprocess.ipkernel:Exception in message handler: Traceback (most recent call last): File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell yield gen.maybe_future(handler(stream, idents, msg)) File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/tornado/gen.py", line 735, in run value = future.result() File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/tornado/gen.py", line 209, in wrapper yielded = next(result) File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/ipykernel/kernelbase.py", line 579, in complete_request matches = yield gen.maybe_future(self.do_complete(code, cursor_pos)) File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/ipykernel/ipkernel.py", line 354, in do_complete return self._experimental_do_complete(code, cursor_pos) File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/ipykernel/ipkernel.py", line 379, in _experimental_do_complete completions = list(_rectify_completions(code, raw_completions)) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/IPython/core/completer.py", line 484, in rectify_completions completions = list(completions) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/IPython/core/completer.py", line 1815, in completions for c in self._completions(text, offset, _timeout=self.jedi_compute_type_timeout/1000): File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/IPython/core/completer.py", line 1859, in _completions full_text=full_text, cursor_line=cursor_line, cursor_pos=cursor_column) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/IPython/core/completer.py", line 1983, in _complete text = self.splitter.split_line(line_buffer, cursor_pos) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/IPython/core/completer.py", line 562, in split_line l = line if cursor_pos is None else line[:cursor_pos] TypeError: 'NoneType' object is not subscriptable Traceback (most recent call last): File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/qtconsole/console_widget.py", line 427, in eventFilter return self._event_filter_console_keypress(event) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/qtconsole/frontend_widget.py", line 349, in _event_filter_console_keypress return super(FrontendWidget, self)._event_filter_console_keypress(event) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/qtconsole/console_widget.py", line 1405, in _event_filter_console_keypress if self._tab_pressed(): File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/qtconsole/frontend_widget.py", line 293, in _tab_pressed self._complete() File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/qtconsole/frontend_widget.py", line 735, in _complete msg_id = self.kernel_client.complete(code=code, cursor_pos=cursor_pos) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/ipykernel/inprocess/client.py", line 110, in complete self._dispatch_to_kernel(msg) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/ipykernel/inprocess/client.py", line 172, in _dispatch_to_kernel idents, reply_msg = self.session.recv(stream, copy=False) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/jupyter_client/session.py", line 803, in recv msg_list = socket.recv_multipart(mode, copy=copy) File "/opt/UCSF/ChimeraX/lib/python3.7/site- packages/ipykernel/inprocess/socket.py", line 57, in recv_multipart return self.queue.get_nowait() File "/opt/UCSF/ChimeraX/lib/python3.7/queue.py", line 198, in get_nowait return self.get(block=False) File "/opt/UCSF/ChimeraX/lib/python3.7/queue.py", line 167, in get raise Empty _queue.Empty _queue.Empty File "/opt/UCSF/ChimeraX/lib/python3.7/queue.py", line 167, in get raise Empty See log for complete Python traceback. > select #2/A:691-810@CA 120 atoms, 1 model selected > select #2/A:691-810@CA 120 atoms, 1 model selected > select #1/A:691-810@CA 120 atoms, 1 model selected > select #1 74033 atoms, 75355 bonds, 1 model selected > hide #!2 models > select clear > clipper associate #3 toModel #1 Chain information for 6vsb_1_1_1.pdb --- Chain | Description 1.2/A 1.2/B 1.2/C | No description available > isolde start > set selectionWidth 4 Done loading forcefield > select #1 74033 atoms, 75355 bonds, 12 models selected > select clear > select up 7491 atoms, 7637 bonds, 1 model selected > select up 7505 atoms, 7652 bonds, 1 model selected > select up 8397 atoms, 8547 bonds, 1 model selected > isolde ignore sel ISOLDE: currently ignoring 476 residues in model 1.2 > select clear > save 1_1_1_starting.cxs > select up 92 atoms, 92 bonds, 1 model selected > select up 185 atoms, 191 bonds, 1 model selected > select up 24677 atoms, 25118 bonds, 1 model selected > select down 185 atoms, 191 bonds, 1 model selected > select up 213 atoms, 220 bonds, 1 model selected > select up 239 atoms, 247 bonds, 1 model selected > select up 264 atoms, 273 bonds, 1 model selected > select up 24677 atoms, 25118 bonds, 1 model selected > select down 264 atoms, 273 bonds, 1 model selected > select :ILE@CD 228 atoms, 1 model selected > select clear > view sel > view /A:1098 > view /C:1098 > view /A:1098 > view /B:1098 > select up 13 atoms, 12 bonds, 1 model selected > set bgColor white Traceback (most recent call last): File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause self.start_sim() File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/isolde.py", line 2705, in start_sim self.params, self.sim_params, excluded_residues = self.ignored_residues) File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__ raise e File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__ isolde.forcefield_mgr) File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__ template_dict = find_residue_templates(sim_construct.all_residues, ff, ligand_db=ligand_db, logger=session.logger) File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/openmm_interface.py", line 3044, in find_residue_templates tname, prot_res = find_glycan_template_name_and_link(sugar) File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/amberff/glycam.py", line 133, in find_glycan_template_name_and_link return ('GLYCAM_'+_glycam_prefix[bonded_atom_numbers]+core_name, link_res) KeyError: (3, 4, 5) KeyError: (3, 4, 5) File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/amberff/glycam.py", line 133, in find_glycan_template_name_and_link return ('GLYCAM_'+_glycam_prefix[bonded_atom_numbers]+core_name, link_res) See log for complete Python traceback. > select ~protein 16079 atoms, 16734 bonds, 19 models selected > select clear > view /A:1 > select /A:1 45 atoms, 44 bonds, 1 model selected > select ~protein 16079 atoms, 16734 bonds, 19 models selected > select clear > select @C5 658 atoms, 2 models selected > select @O5 640 atoms, 2 models selected > select ~protein 16079 atoms, 16734 bonds, 19 models selected > select clear > select up 51 atoms, 52 bonds, 1 model selected > show sel > select clear > select @C5 658 atoms, 2 models selected > hide HC > select :AFU@C6,O6 114 atoms, 36 bonds, 1 model selected > select up 25 atoms, 25 bonds, 1 model selected > select up 24664 atoms, 25106 bonds, 1 model selected > select down 12 atoms, 12 bonds, 1 model selected > show sel > select up 12 atoms, 13 bonds, 1 model selected > show sel > select up 12 atoms, 13 bonds, 1 model selected Expected an objects specifier or a keyword > select sel&@C6,O6 3 atoms, 1 bond, 1 model selected > delete sel > preset custom "make bond" executed make_bond.py Preset implemented in Python; no expansion to individual ChimeraX commands available. > select up 10 atoms, 10 bonds, 1 model selected > style sel stick Changed 10 atom styles > select up 23 atoms, 23 bonds, 1 model selected > style sel stick Changed 23 atom styles > delete sel > select :AFU@C6,O6 112 atoms, 35 bonds, 1 model selected > select clear > select clear > select ~protein 16040 atoms, 16660 bonds, 1 pseudobond, 20 models selected Expected an objects specifier or a keyword > select /A&~protein 5326 atoms, 5532 bonds, 1 pseudobond, 3 models selected > select /B&~protein 5357 atoms, 5564 bonds, 2 models selected > select /C&~protein 5357 atoms, 5564 bonds, 2 models selected > select clear > view /B:1098 No objects specified. > select clear > select /C&~protein 5357 atoms, 5564 bonds, 2 models selected > select clear > select /B:3098 Nothing selected > view /A:1098 No objects specified. > view sel > select clear > select :ASN 5303 atoms, 4864 bonds, 2 models selected > view /A:99 > select up 14 atoms, 13 bonds, 1 model selected > view /B:1098 > select clear Traceback (most recent call last): File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause self.start_sim() File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/isolde.py", line 2705, in start_sim self.params, self.sim_params, excluded_residues = self.ignored_residues) File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__ raise e File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__ isolde.forcefield_mgr) File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__ template_dict = find_residue_templates(sim_construct.all_residues, ff, ligand_db=ligand_db, logger=session.logger) File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/openmm_interface.py", line 3044, in find_residue_templates tname, prot_res = find_glycan_template_name_and_link(sugar) File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/amberff/glycam.py", line 133, in find_glycan_template_name_and_link return ('GLYCAM_'+_glycam_prefix[bonded_atom_numbers]+core_name, link_res) KeyError: (3, 4, 5) KeyError: (3, 4, 5) File "/home/tic20/.local/share/ChimeraX/0.93/site- packages/chimerax/isolde/openmm/amberff/glycam.py", line 133, in find_glycan_template_name_and_link return ('GLYCAM_'+_glycam_prefix[bonded_atom_numbers]+core_name, link_res) See log for complete Python traceback. > select ~protein 16040 atoms, 16660 bonds, 1 pseudobond, 20 models selected > select clear > view /A:2022 > select /A:2022@C5,O6 2 atoms, 1 model selected > select /A:2022@C6,O6 2 atoms, 1 bond, 1 model selected > select /A:2027@C6,O6 4 atoms, 2 bonds, 1 model selected > select :AMA 4596 atoms, 4659 bonds, 1 model selected > select :AMA@C6,O6 576 atoms, 288 bonds, 1 model selected > preset custom "make bond" executed make_bond.py Preset implemented in Python; no expansion to individual ChimeraX commands available. > select :AMA@C1 195 atoms, 1 model selected > select :BMA@O6 66 atoms, 1 model selected > select :AMA@C1 195 atoms, 1 model selected > select :AMA@C1|:BMA@O6 261 atoms, 70 bonds, 1 model selected > select :AMA@C1 195 atoms, 1 model selected > select :BMA@O6 66 atoms, 1 model selected > select :AMA@C1|:BMA@O6 261 atoms, 66 bonds, 1 model selected > select clear > select :AMA@C1|:BMA@O6 261 atoms, 66 bonds, 1 model selected OpenGL version: 3.3.0 NVIDIA 440.33.01 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 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
Change History (4)
comment:1 by , 5 years ago
Component: | Unassigned → Core |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → geometry.find_closest_points index problem(?) |
comment:2 by , 5 years ago
follow-up: 3 comment:3 by , 5 years ago
Ah - that makes more sense! On 2020-04-27 19:13, ChimeraX wrote:
comment:4 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed doc string. Now reads
near1numpy int32 array
A third array is returned that gives the index in xyz2 of the closest point for each xyz1 point in the i1 array. This array has length equal to the length of array i1.
Note:
See TracTickets
for help on using tickets.
Sorry, the doc string is wrong. The near1 array is the same length as the i1 array and near1[k] is the index in set 2 closest to i1[k] in set 1. I will fix the doc string.