Opened 6 years ago
Closed 6 years ago
#2572 closed defect (fixed)
Atom matching occurring in input order rather than name order
Reported by: | Owned by: | Conrad Huang | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Command Line | Version: | |
Keywords: | Cc: | Eric Pettersen | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Darwin-19.0.0-x86_64-i386-64bit ChimeraX Version: 0.91 (2019-11-09) Description There is a problem with the alignment of the small molecules. It seems that the command "align #1 to #2" selects the two atom groups based on the order they appear in the input files and does not take into account the atom names. This leads to incorrect alignment of the two GLU residues in the attached file. If the two atom groups are explicitly given ("align #1@c,ca,cb,cg,cd,o,oe1,oe2,n to #2@c,ca,cb,cg,cd,o,oe1,oe2,n") than it works correctly. Log: UCSF ChimeraX version: 0.91 (2019-11-09) © 2016-2019 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open /Users/andrei/tmp/test/glu_superimpose/glu-184-D-10077_residue_shift.cif Summary of feedback from opening /Users/andrei/tmp/test/glu_superimpose/glu-184-D-10077_residue_shift.cif --- warnings | Unknown polymer entity '1' near line 88 Missing or incomplete entity_poly_seq table. Inferred polymer connectivity. > open /Users/andrei/tmp/test/glu_superimpose/glu-189-A-9918_residue_shift.cif Summary of feedback from opening /Users/andrei/tmp/test/glu_superimpose/glu-189-A-9918_residue_shift.cif --- warnings | Unknown polymer entity '1' near line 24 Missing or incomplete entity_poly_seq table. Inferred polymer connectivity. > align #8@c* toAtoms #5@c* No atoms paired for alignment > align #1@c* toAtoms #2@c* RMSD between 5 atom pairs is 1.943 angstroms > align #1 toAtoms #2 RMSD between 9 atom pairs is 2.595 angstroms > align #1 toAtoms #2 RMSD between 9 atom pairs is 2.595 angstroms > align #1 toAtoms #2 RMSD between 9 atom pairs is 2.595 angstroms > align #1@ca,cb,cd toAtoms #2@ca,cb,cd RMSD between 3 atom pairs is 0.020 angstroms > align #1 toAtoms #2 RMSD between 9 atom pairs is 2.595 angstroms > label #1 > label #1@ca > ~label #1 > label #1@ca > label #1@ca > label #1@cb > select #1@cb 1 atom, 1 model selected > label #1@cb > align #1@c* toAtoms #2@c* RMSD between 5 atom pairs is 1.943 angstroms > align #1@c,ca,cb,cg,cd toAtoms #2@c,ca,cb,cg,cd RMSD between 5 atom pairs is 0.075 angstroms > align #1@c,ca,cb,cg,cd toAtoms #2@c,ca,cb,cg,cd RMSD between 5 atom pairs is 0.075 angstroms > align #1@c,ca,cb,cg,cd,o toAtoms #2@c,ca,cb,cg,cd,o RMSD between 6 atom pairs is 0.494 angstroms > align #1@c,ca,cb,cg,cd,o,oe1,oe2 toAtoms #2@c,ca,cb,cg,cd,o,oe1,oe2 RMSD between 8 atom pairs is 1.177 angstroms > select 18 atoms, 16 bonds, 3 models selected > select #2@c,ca,cb,cg,cd,o,oe1,oe2 8 atoms, 7 bonds, 1 model selected > align #1@c,ca,cb,cg,cd,o,oe1,oe2,n toAtoms #2@c,ca,cb,cg,cd,o,oe1,oe2,n RMSD between 9 atom pairs is 1.120 angstroms > align #1 toAtoms #2 RMSD between 9 atom pairs is 2.595 angstroms > align #1 toAtoms #2 RMSD between 9 atom pairs is 2.595 angstroms > align #1@n,c,ca,cb,cg,cd,o,oe1,oe2 toAtoms #2@c,ca,cb,cg,cd,o,oe1,oe2,n RMSD between 9 atom pairs is 2.730 angstroms > close session > open /Users/andrei/tmp/test/glu_superimpose/glu-184-D-10077_residue_shift.cif Summary of feedback from opening /Users/andrei/tmp/test/glu_superimpose/glu-184-D-10077_residue_shift.cif --- warnings | Unknown polymer entity '1' near line 26 Missing or incomplete entity_poly_seq table. Inferred polymer connectivity. > open /Users/andrei/tmp/test/glu_superimpose/glu-189-A-9918_residue_shift.cif Summary of feedback from opening /Users/andrei/tmp/test/glu_superimpose/glu-189-A-9918_residue_shift.cif --- warnings | Unknown polymer entity '1' near line 24 Missing or incomplete entity_poly_seq table. Inferred polymer connectivity. > align #1@n,c,ca,cb,cg,cd,o,oe1,oe2 toAtoms #2@c,ca,cb,cg,cd,o,oe1,oe2,n RMSD between 9 atom pairs is 2.730 angstroms > align #1 toAtoms #2 RMSD between 9 atom pairs is 2.595 angstroms > align #1@c,ca,cb,cg,cd,o,oe1,oe2,n toAtoms #2@c,ca,cb,cg,cd,o,oe1,oe2,n RMSD between 9 atom pairs is 1.120 angstroms > matchmaker #1@c,ca,cb,cg,cd,o,oe1,oe2,n to #2@c,ca,cb,cg,cd,o,oe1,oe2,n Reference and/or match model contains no nucleic or amino acid chains. Use the command-line 'match' command to superimpose small molecules/ligands. > matchmaker #1 to #2 Reference and/or match model contains no nucleic or amino acid chains. Use the command-line 'match' command to superimpose small molecules/ligands. > matchmaker #1@c,ca,cb,cg,cd,o,oe1,oe2,n to #2@c,ca,cb,cg,cd,o,oe1,oe2,n Reference and/or match model contains no nucleic or amino acid chains. Use the command-line 'match' command to superimpose small molecules/ligands. > align #1@c,ca,cb,cg,cd,o,oe1,oe2,n toAtoms #2@c,ca,cb,cg,cd,o,oe1,oe2,n RMSD between 9 atom pairs is 1.120 angstroms > align #1@c,ca,cb,cg,cd,o,oe1,oe2,n toAtoms #2@c,ca,cb,cg,cd,o,oe1,oe2,n RMSD between 9 atom pairs is 1.120 angstroms OpenGL version: 4.1 ATI-3.0.68 OpenGL renderer: AMD Radeon Pro 560 OpenGL Engine OpenGL vendor: ATI Technologies Inc. File attachment: glu.zip
Attachments (1)
Change History (4)
by , 6 years ago
comment:1 by , 6 years ago
Cc: | added |
---|---|
Component: | Unassigned → Command Line |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Atom matching occurring in input order rather than name order |
Like Chimera, ChimeraX needs to sort atoms by name when the atom names haven't been given explicitly.
Reported by Andrei Istrate
comment:2 by , 6 years ago
I looked into what is needed here. AtomSpec.evaluate() would need to accept a 'ordered' boolean (default False) which would eventually be passed around to Structure.atomspec_atoms (well, Model.atomspec_atoms from AtomSpec's point of view). That way I can implement an OrderedAtomsArg that uses the boolean when it calls evaluate().
I could have Structure.atomspec_atoms *always* returned the sorted order, but that varies from very expensive to mildly expensive performance-wise in the general case, depending on how much effort is expended on the sort implementation.
comment:3 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
"align" command now asks for the implied atoms to be sorted.
Added by email2trac