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.