Opened 4 years ago
Closed 4 years ago
#5433 closed defect (fixed)
Bond connectivity changes don't update ribbon
Reported by: | Tristan Croll | Owned by: | pett |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Depiction | Version: | |
Keywords: | Cc: | Tom Goddard | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Linux-3.10.0-1160.25.1.el7.x86_64-x86_64-with-glibc2.17 ChimeraX Version: 1.3.dev202110120902 (2021-10-12 09:02:44 UTC) Description Also noticed while reporting #5432: the `bond` and `~bond` commands don't properly update the cartoon. If I delete a N-C backbone bond the cartoon remains connected even after a new call to `cartoon`; if I create a bond between previously-disconnected backbone atoms the cartoon doesn't update without a new explicit `cartoon` command. Log: > alias preview_toolshed toolshed url https://cxtoolshed- > preview.rbvi.ucsf.edu; toolshed reload available > alias production_toolshed toolshed url https://cxtoolshed.rbvi.ucsf.edu; > toolshed reload available > 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.3.dev202110120902 (2021-10-12) © 2016-2021 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open 3io0 3io0 title: Crystal structure of EtuB from Clostridium kluyveri [more info...] Chain information for 3io0 #1 --- Chain | Description | UniProt A | EtuB protein | A5N734_CLOK5 3io0 mmCIF Assemblies --- 1| author_and_software_defined_assembly > open 3io0 3io0 title: Crystal structure of EtuB from Clostridium kluyveri [more info...] Chain information for 3io0 #2 --- Chain | Description | UniProt A | EtuB protein | A5N734_CLOK5 3io0 mmCIF Assemblies --- 1| author_and_software_defined_assembly > delete #2&~:268-273 > delete #1:268-273 > ui tool show Shell Shell commands: from chimerax.atomic import AtomicStructure m1, m2 = session.models.list(type=AtomicStructure) m1.combine(m2, {},m1.position) > hide #2 models > save test.pdb #1 > save test.cif #1 > open test.pdb Chain information for test.pdb #3 --- Chain | Description A | No description available > open test.cif Chain information for test.cif #4 --- Chain | Description A | EtuB protein test.cif mmCIF Assemblies --- 1| author_and_software_defined_assembly > save test_session.cxs > hide #!3 models > hide #4 models > ~cartoon > cartoon > bond #1:267@C|#1:268@N Created 1 bond > bond #1:273@C|#1:274@N Created 1 bond > ~cartoon > cartoon > close #4#3 > save test.pdb #1 > save test.cif #1 > open test.pdb Chain information for test.pdb #3 --- Chain | Description A | No description available > open test.cif Chain information for test.cif #4 --- Chain | Description A | EtuB protein test.cif mmCIF Assemblies --- 1| author_and_software_defined_assembly > hide #3 models > select #4:272 8 atoms, 6 bonds, 2 residues, 1 model selected > select clear > save test_session.cxs > hide #1 models > show #1 models > hide #!4 models > show #1 > select #1/A:137 7 atoms, 6 bonds, 1 residue, 1 model selected > ~cartoon sel > select #1/A:136 4 atoms, 3 bonds, 1 residue, 1 model selected > select up 94 atoms, 94 bonds, 14 residues, 1 model selected > select down 4 atoms, 3 bonds, 1 residue, 1 model selected > ~cartoon sel > select clear > cartoon > ~bond sel > cartoon > select #1/A:136 4 atoms, 2 bonds, 1 pseudobond, 1 residue, 2 models selected > select add #1/A:137 11 atoms, 8 bonds, 1 pseudobond, 2 residues, 2 models selected > ~cartoon sel > select clear > cartoon > ~cartoon > select #1/A:136@CA 1 atom, 1 residue, 1 model selected > select add #1/A:136@C 2 atoms, 1 residue, 1 model selected > bond sel Created 1 bond > ~bond sel > cartoon > select clear > ~cartoon > cartoon OpenGL version: 3.3.0 NVIDIA 465.19.01 OpenGL renderer: NVIDIA TITAN Xp/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation Manufacturer: Dell Inc. Model: Precision T5600 OS: CentOS Linux 7 Core Architecture: 64bit ELF Virutal Machine: none CPU: 32 Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz Cache Size: 20480 KB Memory: total used free shared buff/cache available Mem: 62G 14G 22G 444M 25G 47G Swap: 4.9G 0B 4.9G 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 Locale: ('en_GB', 'UTF-8') 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: 2021.10.8 cftime: 1.5.1 charset-normalizer: 2.0.7 ChimeraX-AddCharge: 1.1.4 ChimeraX-AddH: 2.1.10 ChimeraX-AlignmentAlgorithms: 2.0 ChimeraX-AlignmentHdrs: 3.2 ChimeraX-AlignmentMatrices: 2.0 ChimeraX-Alignments: 2.2.2 ChimeraX-AlphaFold: 1.0 ChimeraX-AltlocExplorer: 1.0.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.0 ChimeraX-Atomic: 1.30.2 ChimeraX-AtomicLibrary: 4.1.4 ChimeraX-AtomSearch: 2.0 ChimeraX-AtomSearchLibrary: 1.0 ChimeraX-AxesPlanes: 2.0 ChimeraX-BasicActions: 1.1 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 2.0 ChimeraX-BondRot: 2.0 ChimeraX-BugReporter: 1.0 ChimeraX-BuildStructure: 2.6 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.1.1 ChimeraX-Clipper: 0.17.0 ChimeraX-ColorActions: 1.0 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.5 ChimeraX-CommandLine: 1.1.5 ChimeraX-ConnectStructure: 2.0 ChimeraX-Contacts: 1.0 ChimeraX-Core: 1.3.dev202110120902 ChimeraX-CoreFormats: 1.1 ChimeraX-coulombic: 1.3.1 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.1 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.3.dev32 ChimeraX-ItemsInspection: 1.0 ChimeraX-Label: 1.1 ChimeraX-LinuxSupport: 1.0 ChimeraX-ListInfo: 1.1.1 ChimeraX-Log: 1.1.4 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.3 ChimeraX-MDcrds: 2.6 ChimeraX-MedicalToolbar: 1.0.1 ChimeraX-Meeting: 1.0 ChimeraX-MLP: 1.1 ChimeraX-mmCIF: 2.4 ChimeraX-MMTF: 2.1 ChimeraX-Modeller: 1.2.2 ChimeraX-ModelPanel: 1.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.7 ChimeraX-PDB: 2.6.4 ChimeraX-PDBBio: 1.0 ChimeraX-PDBLibrary: 1.0.2 ChimeraX-PDBMatrices: 1.0 ChimeraX-Phenix: 0.3 ChimeraX-PickBlobs: 1.0 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.0.1 ChimeraX-PubChem: 2.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-Sample: 0.1 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.4.4 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.6 ChimeraX-STL: 1.0 ChimeraX-Storm: 1.0 ChimeraX-StructMeasure: 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.1 ChimeraX-ToolshedUtils: 1.2 ChimeraX-Tug: 1.0 ChimeraX-UI: 1.13.4 ChimeraX-uniprot: 2.2 ChimeraX-UnitCell: 1.0 ChimeraX-ViewDockX: 1.0.1 ChimeraX-VIPERdb: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0 ChimeraX-Voyager: 0.1 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0 ChimeraX-WebServices: 1.0 ChimeraX-Zone: 1.0 colorama: 0.4.4 cxservices: 1.1 cycler: 0.10.0 Cython: 0.29.24 decorator: 5.1.0 distro: 1.6.0 docutils: 0.17.1 filelock: 3.0.12 funcparserlib: 0.3.6 grako: 3.16.5 h5py: 3.4.0 html2text: 2020.1.16 idna: 3.2 ihm: 0.21 imagecodecs: 2021.4.28 imagesize: 1.2.0 ipykernel: 5.5.5 ipython: 7.23.1 ipython-genutils: 0.2.0 jedi: 0.18.0 Jinja2: 3.0.1 jsonpickle: 2.0.0 jupyter-client: 6.1.12 jupyter-core: 4.8.1 kiwisolver: 1.3.2 line-profiler: 3.3.0 lxml: 4.6.3 lz4: 3.1.3 MarkupSafe: 2.0.1 matplotlib: 3.4.3 matplotlib-inline: 0.1.3 msgpack: 1.0.2 netCDF4: 1.5.7 networkx: 2.6.2 numexpr: 2.7.3 numpy: 1.21.2 openvr: 1.16.801 packaging: 21.0 ParmEd: 3.2.0 parso: 0.8.2 pexpect: 4.8.0 pickleshare: 0.7.5 Pillow: 8.3.2 pip: 21.2.4 pkginfo: 1.7.1 prompt-toolkit: 3.0.20 psutil: 5.8.0 ptyprocess: 0.7.0 pycollada: 0.7.1 pydicom: 2.1.2 Pygments: 2.10.0 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.2 python-igraph: 0.9.6 pytz: 2021.3 pyvis: 0.1.9 pyzmq: 22.3.0 qtconsole: 5.1.1 QtPy: 1.11.2 RandomWords: 0.3.0 rdkit-pypi: 2021.3.5.1 requests: 2.26.0 scipy: 1.7.1 setuptools: 57.5.0 sfftk-rw: 0.7.1 six: 1.16.0 snowballstemmer: 2.1.0 sortedcontainers: 2.4.0 Sphinx: 4.2.0 sphinx-autodoc-typehints: 1.12.0 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 texttable: 1.6.4 tifffile: 2021.4.8 tinyarray: 1.2.3 tornado: 6.1 traitlets: 5.1.0 urllib3: 1.26.7 wcwidth: 0.2.5 webcolors: 1.11.1 wheel: 0.37.0 wheel-filename: 1.3.0
Change History (4)
comment:1 by , 4 years ago
Cc: | added |
---|---|
Component: | Unassigned → Depiction |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → accepted |
Summary: | ChimeraX bug report submission → Bond connectivity changes don't update ribbon |
comment:2 by , 4 years ago
Cc: | added; removed |
---|---|
Owner: | changed from | to
Status: | accepted → assigned |
comment:3 by , 4 years ago
Cc: | added; removed |
---|---|
Owner: | changed from | to
The graphics updating does not monitor ChangeTracker. The C++ code should call the ribbon graphics changed method structure.set_gc_ribbon().
comment:4 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Adding chain-forming bond now updates ribbons.
Note:
See TracTickets
for help on using tickets.
I wouldn't expect deleting an N→C backbone bond to disconnect the ribbon. That bond should automatically be replaced with a missing-structure pseudobond and the chain remains connected, and therefore the ribbon remains unchanged.
You are correct about the cartoon not updating on bond formation. The cartoon code needs to react to the 'chains' part of the atomic changes trigger, specifically ChangeTracker::REASON_RESIDUES. I'm switching the ownership of this ticket to Tom for this.