Opened 21 months ago
Last modified 21 months ago
#14560 assigned defect
Surface transparency not preserved when coloring
Reported by: | Owned by: | Tom Goddard | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Depiction | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: macOS-14.2.1-arm64-arm-64bit ChimeraX Version: 1.8.dev202401312028 (2024-01-31 20:28:05 UTC) Description Rainbow command does not preserve surface transparency. Also there are various other related surface transparency bugs. For instance if atoms are transparent and a surface is colored by atom color (color #1 byatom) then the atom transparency values are used. But if only some of the atoms are used for coloring then the transparency is not used and the surface coloring is opaque (color #1:1-10 byatom). Also if the surface is for a coordinate set and the the coordinates change, the surface transparency is sometimes preserved and sometimes is not preserved depending on how it was set. For instance rainbow #1, transparency #1 50, coordset #1 3 does not preserve transparency, but rainbow #1 transp 50, coordset #1 4 does preserve transparency. Log: UCSF ChimeraX version: 1.8.dev202401312028 (2024-01-31) © 2016-2024 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open 1mtx format mmcif fromDatabase pdb coordsets true 1mtx title: Determination of the three-dimensional structure of margatoxin by 1H, 13C, 15N triple-resonance nuclear magnetic resonance spectroscopy [more info...] Chain information for 1mtx #1 --- Chain | Description | UniProt A | MARGATOXIN | SCKM_CENMA 1-39 1mtx has 23 coordinate sets > surface > transparency 50 > rainbow > rainbow #1 transparency 50 OpenGL version: 4.1 Metal - 88 OpenGL renderer: Apple M1 Max OpenGL vendor: Apple Python: 3.11.2 Locale: UTF-8 Qt version: PyQt6 6.6.1, Qt 6.6.1 Qt runtime version: 6.6.1 Qt platform: cocoa Hardware: Hardware Overview: Model Name: MacBook Pro Model Identifier: MacBookPro18,2 Model Number: MK1H3LL/A Chip: Apple M1 Max Total Number of Cores: 10 (8 performance and 2 efficiency) Memory: 32 GB System Firmware Version: 10151.61.4 OS Loader Version: 10151.61.4 Software: System Software Overview: System Version: macOS 14.2.1 (23C71) Kernel Version: Darwin 23.2.0 Time since boot: 35 days, 11 hours, 24 minutes Graphics/Displays: Apple M1 Max: Chipset Model: Apple M1 Max Type: GPU Bus: Built-In Total Number of Cores: 32 Vendor: Apple (0x106b) Metal Support: Metal 3 Displays: Color LCD: Display Type: Built-in Liquid Retina XDR Display Resolution: 3456 x 2234 Retina Main Display: Yes Mirror: Off Online: Yes Automatically Adjust Brightness: No Connection Type: Internal Installed Packages: alabaster: 0.7.16 alphashape: 1.3.1 appdirs: 1.4.4 appnope: 0.1.3 asttokens: 2.4.1 Babel: 2.14.0 backcall: 0.2.0 beautifulsoup4: 4.11.2 blockdiag: 3.0.0 blosc2: 2.0.0 build: 0.10.0 certifi: 2022.12.7 cftime: 1.6.3 charset-normalizer: 3.3.2 ChimeraX-AddCharge: 1.5.15 ChimeraX-AddH: 2.2.5 ChimeraX-AlignmentAlgorithms: 2.0.1 ChimeraX-AlignmentHdrs: 3.4.3 ChimeraX-AlignmentMatrices: 2.1 ChimeraX-Alignments: 2.12.3 ChimeraX-AlphaFold: 1.0 ChimeraX-AltlocExplorer: 1.1.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.1 ChimeraX-Atomic: 1.53 ChimeraX-AtomicLibrary: 12.1.4 ChimeraX-AtomSearch: 2.0.1 ChimeraX-AxesPlanes: 2.4 ChimeraX-BasicActions: 1.1.2 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 2.1.2 ChimeraX-BondRot: 2.0.4 ChimeraX-BugReporter: 1.0.1 ChimeraX-BuildStructure: 2.11 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.2.2 ChimeraX-ButtonPanel: 1.0.1 ChimeraX-CageBuilder: 1.0.1 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.4 ChimeraX-ChangeChains: 1.1 ChimeraX-CheckWaters: 1.3.2 ChimeraX-ChemGroup: 2.0.1 ChimeraX-Clashes: 2.2.4 ChimeraX-ColorActions: 1.0.3 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.5.5 ChimeraX-CommandLine: 1.2.5 ChimeraX-ConnectStructure: 2.0.1 ChimeraX-Contacts: 1.0.1 ChimeraX-Core: 1.8.dev202401312028 ChimeraX-CoreFormats: 1.2 ChimeraX-coulombic: 1.4.3 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0.1 ChimeraX-DataFormats: 1.2.3 ChimeraX-Dicom: 1.2 ChimeraX-DistMonitor: 1.4 ChimeraX-DockPrep: 1.1.3 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ESMFold: 1.0 ChimeraX-FileHistory: 1.0.1 ChimeraX-FunctionKey: 1.0.1 ChimeraX-Geometry: 1.3 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.1.1 ChimeraX-Hbonds: 2.4 ChimeraX-Help: 1.2.2 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.1 ChimeraX-ImageFormats: 1.2 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.1 ChimeraX-ItemsInspection: 1.0.1 ChimeraX-IUPAC: 1.0 ChimeraX-Label: 1.1.9 ChimeraX-ListInfo: 1.2.2 ChimeraX-Log: 1.1.6 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.9.1 ChimeraX-Map: 1.1.4 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0.1 ChimeraX-MapFilter: 2.0.1 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.1.1 ChimeraX-Markers: 1.0.1 ChimeraX-Mask: 1.0.2 ChimeraX-MatchMaker: 2.1.2 ChimeraX-MCopy: 1.0 ChimeraX-MDcrds: 2.6.1 ChimeraX-MedicalToolbar: 1.0.2 ChimeraX-Meeting: 1.0.1 ChimeraX-MLP: 1.1.1 ChimeraX-mmCIF: 2.12.1 ChimeraX-MMTF: 2.2 ChimeraX-Modeller: 1.5.15 ChimeraX-ModelPanel: 1.5 ChimeraX-ModelSeries: 1.0.1 ChimeraX-Mol2: 2.0.3 ChimeraX-Mole: 1.0 ChimeraX-Morph: 1.0.2 ChimeraX-MouseModes: 1.2 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nifti: 1.1 ChimeraX-NRRD: 1.1 ChimeraX-Nucleotides: 2.0.3 ChimeraX-OpenCommand: 1.13.1 ChimeraX-PDB: 2.7.3 ChimeraX-PDBBio: 1.0.1 ChimeraX-PDBLibrary: 1.0.4 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0.1 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.1 ChimeraX-PubChem: 2.1 ChimeraX-ReadPbonds: 1.0.1 ChimeraX-Registration: 1.1.2 ChimeraX-RemoteControl: 1.0 ChimeraX-RenderByAttr: 1.2.1 ChimeraX-RenumberResidues: 1.1 ChimeraX-ResidueFit: 1.0.1 ChimeraX-RestServer: 1.2 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 4.0 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.5.1 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0.2 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0.1 ChimeraX-SelInspector: 1.0 ChimeraX-SeqView: 2.11.1 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0.1 ChimeraX-Shortcuts: 1.1.1 ChimeraX-ShowSequences: 1.0.2 ChimeraX-SideView: 1.0.1 ChimeraX-Smiles: 2.1.2 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.15 ChimeraX-STL: 1.0.1 ChimeraX-Storm: 1.0 ChimeraX-StructMeasure: 1.1.2 ChimeraX-Struts: 1.0.1 ChimeraX-Surface: 1.0.1 ChimeraX-SwapAA: 2.0.1 ChimeraX-SwapRes: 2.2.2 ChimeraX-TapeMeasure: 1.0 ChimeraX-TaskManager: 1.0 ChimeraX-Test: 1.0 ChimeraX-TetraScapeCommand: 0.1 ChimeraX-Toolbar: 1.1.2 ChimeraX-ToolshedUtils: 1.2.4 ChimeraX-Topography: 1.0 ChimeraX-ToQuest: 1.0 ChimeraX-Tug: 1.0.1 ChimeraX-UI: 1.33.5 ChimeraX-uniprot: 2.3 ChimeraX-UnitCell: 1.0.1 ChimeraX-ViewDockX: 1.3.2 ChimeraX-VIPERdb: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0.1 ChimeraX-vrml: 1.0 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0.2 ChimeraX-WebServices: 1.1.3 ChimeraX-Zone: 1.0.1 click: 8.1.7 click-log: 0.4.0 colorama: 0.4.6 comm: 0.2.1 contourpy: 1.2.0 cxservices: 1.2.2 cycler: 0.12.1 Cython: 0.29.33 debugpy: 1.8.0 decorator: 5.1.1 docutils: 0.19 executing: 2.0.1 filelock: 3.9.0 fonttools: 4.47.2 funcparserlib: 2.0.0a0 glfw: 2.6.4 grako: 3.16.5 h5py: 3.10.0 html2text: 2020.1.16 idna: 3.6 ihm: 0.43 imagecodecs: 2024.1.1 imagesize: 1.4.1 ipykernel: 6.23.2 ipython: 8.14.0 ipython-genutils: 0.2.0 ipywidgets: 8.1.1 jedi: 0.18.2 Jinja2: 3.1.2 jupyter-client: 8.2.0 jupyter-core: 5.7.1 jupyterlab-widgets: 3.0.9 kiwisolver: 1.4.5 line-profiler: 4.0.2 lxml: 4.9.2 lz4: 4.3.3 MarkupSafe: 2.1.3 matplotlib: 3.8.2 matplotlib-inline: 0.1.6 msgpack: 1.0.7 nest-asyncio: 1.5.9 netCDF4: 1.6.5 networkx: 3.2.1 nibabel: 5.0.1 nptyping: 2.5.0 numexpr: 2.8.8 numpy: 1.26.3 openvr: 1.26.701 packaging: 21.3 ParmEd: 3.4.3 parso: 0.8.3 pep517: 0.13.0 pexpect: 4.9.0 pickleshare: 0.7.5 pillow: 10.2.0 pip: 23.0 pkginfo: 1.9.6 platformdirs: 4.1.0 prompt-toolkit: 3.0.43 psutil: 5.9.7 ptyprocess: 0.7.0 pure-eval: 0.2.2 py-cpuinfo: 9.0.0 pycollada: 0.8 pydicom: 2.3.0 Pygments: 2.16.1 pynmrstar: 3.3.2 pynrrd: 1.0.0 PyOpenGL: 3.1.7 PyOpenGL-accelerate: 3.1.7 pyopenxr: 1.0.3301 pyparsing: 3.1.1 pyproject-hooks: 1.0.0 PyQt6-commercial: 6.6.1 PyQt6-Qt6: 6.6.1 PyQt6-sip: 13.6.0 PyQt6-WebEngine-commercial: 6.6.0 PyQt6-WebEngine-Qt6: 6.6.1 python-dateutil: 2.8.2 pytz: 2023.3.post1 pyzmq: 25.1.2 qtconsole: 5.4.3 QtPy: 2.4.1 RandomWords: 0.4.0 requests: 2.31.0 Rtree: 1.1.0 scipy: 1.11.4 setuptools: 67.4.0 setuptools-scm: 7.0.5 sfftk-rw: 0.8.1 shapely: 2.0.2 six: 1.16.0 snowballstemmer: 2.2.0 sortedcontainers: 2.4.0 soupsieve: 2.5 sphinx: 6.1.3 sphinx-autodoc-typehints: 1.22 sphinxcontrib-applehelp: 1.0.8 sphinxcontrib-blockdiag: 3.0.0 sphinxcontrib-devhelp: 1.0.6 sphinxcontrib-htmlhelp: 2.0.5 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.7 sphinxcontrib-serializinghtml: 1.1.10 stack-data: 0.6.3 superqt: 0.5.0 tables: 3.8.0 tcia-utils: 1.5.1 tifffile: 2023.12.9 tinyarray: 1.2.4 tomli: 2.0.1 tornado: 6.4 traitlets: 5.9.0 trimesh: 4.0.8 typing-extensions: 4.9.0 tzdata: 2023.4 urllib3: 2.1.0 wcwidth: 0.2.13 webcolors: 1.12 wheel: 0.38.4 wheel-filename: 1.4.1 widgetsnbextension: 4.0.9
Change History (2)
comment:1 by , 21 months ago
Component: | Unassigned → Depiction |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Surface transparency not preserved when coloring |
comment:2 by , 21 months ago
While it would be good to fix this quirky wrong behavior of molecular surface transparency it is rarely encountered. Enrico Martinez alerted me to the problem on the ChimeraX mailing list today
Because it is rare and easy to work around and probably requires many changes to fix, changes which may break more important coloring behavior, I think it best to leave it as is for now.
Note:
See TracTickets
for help on using tickets.
All of these bugs are related.
The source of many of the problems with preserving surface transparency is a bug in the MolecularSurface color_atom_patches() method. It is documented that if the opacity argument is None then it preserves the current surface transparency ignoring the any transparency given in the color, per_atom_colors, vertex_colors arguments. That is how it behaves if only a subset of surface atoms are specified. But if all surface atoms are specified then it uses the argument transparency replacing the current surface transparency. While the method could be fixed to never use the color, per_atom_colors, and vertex_colors transparency components as documented, that would break other commands, for instance "color #1 byatom" would no longer apply the atom transparency to the surface. Maybe that is correct, since the general behavior of the color commands is supposed to change colors and not change transparencies unless the transparency option is specified. But the current color command syntax would then not allow copying transparencies from atoms, and there is no other command (e.g. transparency command) that can do that.