Opened 4 years ago

Last modified 4 years ago

#6551 accepted defect

Bad atom spec causes traceback

Reported by: Tristan Croll Owned by: pett
Priority: normal Milestone:
Component: Command Line Version:
Keywords: Cc:
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.4.dev202204060217 (2022-04-06 02:17:56 UTC)
Description
"sel @@bfactor<50&coil" causes a traceback. "sel coil&@@bfactor<50" or "sel @@bfactor<50 & coil" both work. 

Log:
> isolde shorthand
    
    
    Initialising ISOLDE-specific command aliases:
    Alias	Equivalent full command
    -------------------------------------------------
    st	isolde step {arguments}
    aw	isolde add water {arguments}
    awsf	isolde add water {arguments} sim false
    al	isolde add ligand {arguments}
    aa	isolde add aa $1 sel {arguments}
    ht	isolde mod his sel {arguments}
    so	setattr sel atoms occupancy {arguments}
    ab	isolde adjust bfactors {arguments}
    ss	isolde sim start sel
    rt	isolde release torsions sel {arguments}
    rd	isolde release distances sel {arguments}
    ra	rd; rt
    pf	isolde pepflip sel
    cf	isolde cisflip sel
    cbb	color bfactor {arguments}
    cbo	color byattr occupancy {arguments}
    cbc	color {arguments} bychain; color {arguments} byhet
    cs	clipper set contourSensitivity {arguments}
    

  
UCSF ChimeraX version: 1.4.dev202204060217 (2022-04-06)  
© 2016-2022 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> alphafold fetch Q9NGQ2 pae true

Fetching compressed AlphaFold Q9NGQ2 from
https://alphafold.ebi.ac.uk/files/AF-Q9NGQ2-F1-model_v2.cif  
Chain information for AlphaFold Q9NGQ2 #1  
---  
Chain | Description | UniProt  
A | Kinesin-related protein 1 | KIF1_DICDI  
  
Fetching compressed AlphaFold PAE Q9NGQ2 from
https://alphafold.ebi.ac.uk/files/AF-Q9NGQ2-F1-predicted_aligned_error_v2.json  

> ui tool show Shell

> select clear

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\cmd_line\tool.py", line 319, in execute  
cmd.run(cmd_text)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2853, in run  
prev_annos = self._process_positional_arguments()  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2629, in
_process_positional_arguments  
value, text = self._parse_arg(anno, text, session, False)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2488, in _parse_arg  
value, replacement, rest = annotation.parse(text, session)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 1298, in parse  
objects = aspec.evaluate(session)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 1070, in evaluate  
results = self._left_spec.evaluate(  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 980, in evaluate  
return self.find_matches(session, models, results, ordered,
add_implied=add_implied)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 983, in find_matches  
self._specifier.find_matches(session, models, results, ordered,
add_implied=add_implied)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 444, in find_matches  
model_spec.find_matches(session, model_list, results, ordered,
add_implied=add_implied)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 606, in find_matches  
_add_model_parts(session, model, self.sub_parts, results, ordered)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 626, in _add_model_parts  
chain_spec.find_selected_parts(model, atoms, num_atoms, my_results)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 561, in find_selected_parts  
subpart.find_selected_parts(model, atoms, num_atoms, sub_results)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 561, in find_selected_parts  
subpart.find_selected_parts(model, atoms, num_atoms, sub_results)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 550, in find_selected_parts  
atoms = self._filter_parts(model, atoms, num_atoms)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 568, in _filter_parts  
mask = model.atomspec_filter(self.Symbol, atoms, num_atoms,  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\atomic\structure.py", line 904, in atomspec_filter  
return self._atomspec_filter_atom(atoms, num_atoms, parts, attrs)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\atomic\structure.py", line 986, in _atomspec_filter_atom  
selected = self._atomspec_attr_filter(atoms, selected, attrs)  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\atomic\structure.py", line 939, in _atomspec_attr_filter  
selected = [(selected[i] and choose(obj)) for i, obj in enumerate(objects)]  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\atomic\structure.py", line 939, in <listcomp>  
selected = [(selected[i] and choose(obj)) for i, obj in enumerate(objects)]  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 900, in matcher  
return op(v, attr_value)  
TypeError: '<' not supported between instances of 'float' and 'str'  
  
TypeError: '  
File "C:\Program Files\ChimeraX-daily\bin\lib\site-
packages\chimerax\core\commands\atomspec.py", line 900, in matcher  
return op(v, attr_value)  
  
See log for complete Python traceback.  
  

> select coil&@@bfactor<50

4897 atoms, 4921 bonds, 651 residues, 1 model selected  

> select @@bfactor<50 & coil

4897 atoms, 4921 bonds, 651 residues, 1 model selected  




OpenGL version: 3.3.0 NVIDIA 497.29
OpenGL renderer: NVIDIA GeForce RTX 2080/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

Python: 3.9.11
Locale: en_GB.cp1252
Qt version: PyQt6 6.2.3, Qt 6.2.3
Qt platform: windows

Manufacturer: Notebook                        
Model: P7xxTM1
OS: Microsoft Windows 10 Education (Build 19041)
Memory: 68,654,501,888
MaxProcessMemory: 137,438,953,344
CPU: 16 Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
OSLanguage: en-GB

Installed Packages:
    -himerax-isolde: 1.4.dev0
    alabaster: 0.7.12
    appdirs: 1.4.4
    Babel: 2.9.1
    backcall: 0.2.0
    blockdiag: 3.0.0
    certifi: 2021.10.8
    cftime: 1.6.0
    charset-normalizer: 2.0.12
    ChimeraX-AddCharge: 1.2.3
    ChimeraX-AddH: 2.1.11
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.2.1
    ChimeraX-AlignmentMatrices: 2.0
    ChimeraX-Alignments: 2.4
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.0.2
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.37.1
    ChimeraX-AtomicLibrary: 7.0
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.1
    ChimeraX-BasicActions: 1.1
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.0
    ChimeraX-BondRot: 2.0
    ChimeraX-BugReporter: 1.0
    ChimeraX-BuildStructure: 2.6.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.1
    ChimeraX-ButtonPanel: 1.0
    ChimeraX-CageBuilder: 1.0
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.2
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.2.3
    ChimeraX-Clipper: 0.18.0
    ChimeraX-ColorActions: 1.0
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.1
    ChimeraX-CommandLine: 1.2.3
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0
    ChimeraX-Core: 1.4.dev202204060217
    ChimeraX-CoreFormats: 1.1
    ChimeraX-coulombic: 1.3.2
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0
    ChimeraX-DataFormats: 1.2.2
    ChimeraX-Dicom: 1.0
    ChimeraX-DistMonitor: 1.1.5
    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.1
    ChimeraX-Hbonds: 2.1.2
    ChimeraX-Help: 1.2
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.1
    ChimeraX-ISOLDE: 1.4.dev0
    ChimeraX-ItemsInspection: 1.0
    ChimeraX-Label: 1.1
    ChimeraX-ListInfo: 1.1.1
    ChimeraX-Log: 1.1.5
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.8.1
    ChimeraX-Map: 1.1
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1
    ChimeraX-Markers: 1.0
    ChimeraX-Mask: 1.0
    ChimeraX-MatchMaker: 2.0.6
    ChimeraX-MDcrds: 2.6
    ChimeraX-MedicalToolbar: 1.0.1
    ChimeraX-Meeting: 1.0
    ChimeraX-MLP: 1.1
    ChimeraX-mmCIF: 2.7
    ChimeraX-MMTF: 2.1
    ChimeraX-Modeller: 1.5.5
    ChimeraX-ModelPanel: 1.3.2
    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.2
    ChimeraX-OpenCommand: 1.8
    ChimeraX-PDB: 2.6.6
    ChimeraX-PDBBio: 1.0
    ChimeraX-PDBLibrary: 1.0.2
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1
    ChimeraX-PubChem: 2.1
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-ResidueFit: 1.0
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0.1
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.6
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0
    ChimeraX-Shortcuts: 1.1
    ChimeraX-ShowAttr: 1.0
    ChimeraX-ShowSequences: 1.0
    ChimeraX-SideView: 1.0
    ChimeraX-Smiles: 2.1
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.8
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.0.1
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0
    ChimeraX-SwapRes: 2.1.1
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1
    ChimeraX-ToolshedUtils: 1.2.1
    ChimeraX-Tug: 1.0
    ChimeraX-UI: 1.16.4
    ChimeraX-uniprot: 2.2
    ChimeraX-UnitCell: 1.0
    ChimeraX-ViewDockX: 1.1.2
    ChimeraX-VIPERdb: 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.4
    comtypes: 1.1.10
    cxservices: 1.2
    cycler: 0.11.0
    Cython: 0.29.26
    debugpy: 1.6.0
    decorator: 5.1.1
    docutils: 0.17.1
    entrypoints: 0.4
    filelock: 3.4.2
    fonttools: 4.31.2
    funcparserlib: 1.0.0a0
    grako: 3.16.5
    h5py: 3.6.0
    html2text: 2020.1.16
    idna: 3.3
    ihm: 0.27
    imagecodecs: 2021.11.20
    imagesize: 1.3.0
    ipykernel: 6.6.1
    ipython: 7.31.1
    ipython-genutils: 0.2.0
    jedi: 0.18.1
    Jinja2: 3.0.3
    jupyter-client: 7.1.0
    jupyter-core: 4.9.2
    kiwisolver: 1.4.2
    line-profiler: 3.4.0
    lxml: 4.7.1
    lz4: 3.1.10
    MarkupSafe: 2.1.1
    matplotlib: 3.5.1
    matplotlib-inline: 0.1.3
    msgpack: 1.0.3
    nest-asyncio: 1.5.5
    netCDF4: 1.5.8
    networkx: 2.6.3
    numexpr: 2.8.1
    numpy: 1.22.1
    openvr: 1.16.802
    packaging: 21.3
    ParmEd: 3.4.3
    parso: 0.8.3
    pickleshare: 0.7.5
    Pillow: 9.0.1
    pip: 21.3.1
    pkginfo: 1.8.2
    prompt-toolkit: 3.0.29
    psutil: 5.9.0
    pycollada: 0.7.2
    pydicom: 2.2.2
    Pygments: 2.11.2
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 3.0.7
    PyQt6-commercial: 6.2.3
    PyQt6-sip: 13.2.0
    PyQt6-WebEngine-commercial: 6.2.1
    python-dateutil: 2.8.2
    pytz: 2022.1
    pywin32: 303
    pyzmq: 22.3.0
    qtconsole: 5.3.0
    QtPy: 2.0.1
    RandomWords: 0.3.0
    requests: 2.27.1
    scipy: 1.7.3
    setuptools: 59.8.0
    sfftk-rw: 0.7.1
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    Sphinx: 4.3.2
    sphinx-autodoc-typehints: 1.15.2
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 3.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-community: 1.0.0
    tables: 3.7.0
    tifffile: 2021.11.2
    tinyarray: 1.2.4
    tornado: 6.1
    traitlets: 5.1.1
    urllib3: 1.26.9
    wcwidth: 0.2.5
    webcolors: 1.11.1
    wheel: 0.37.1
    wheel-filename: 1.3.0
    WMI: 1.5.1

Change History (1)

comment:1 by pett, 4 years ago

Component: UnassignedCommand Line
Owner: set to pett
Platform: all
Project: ChimeraX
Status: newaccepted
Summary: ChimeraX bug report submissionBad atom spec causes traceback

Since the values that attributes are tested against can in some cases be arbitrary strings, and since the lexer (which breaks the string into tokens for the parser) has no idea what the value type will be, attribute-test values have to be space terminated. Nonetheless, it should not produce a traceback -- so that much is a bug.

Note: See TracTickets for help on using tickets.