Opened 3 years ago
Closed 3 years ago
#8394 closed defect (fixed)
RFE: EMDB-SFF transform
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Volume Data | Version: | |
| Keywords: | Cc: | martin.schorb@… | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: macOS-10.16-x86_64-i386-64bit
ChimeraX Version: 1.6.dev202301242251 (2023-01-24 22:51:10 UTC)
Description
To the best of my understanding, ChimeraX displays images and associated segmentations in physical space not image space. However, segmentations are performed in image space. EMDB-SFF uses the first transform in the transforms_list field (with id=0) as the image-to-physical transform. (https://emdb-empiar.github.io/EMDB-SFF/v0.8.0.dev1/segmentation_da_xsd.html#segmentation_transform_list)
I've tested with two files having the same segmentation but different values for transform 0 and they render the same.
Could you please implement this feature in ChimeraX? Just to clarify: what are the units of physical space in ChimeraX: Å or nm?
Log:
UCSF ChimeraX version: 1.6.dev202301242251 (2023-01-24)
© 2016-2023 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
OpenGL version: 4.1 ATI-4.9.51
OpenGL renderer: AMD Radeon Pro 560X OpenGL Engine
OpenGL vendor: ATI Technologies Inc.
Python: 3.9.11
Locale: UTF-8
Qt version: PyQt6 6.4.0, Qt 6.4.0
Qt runtime version: 6.4.2
Qt platform: cocoa
Hardware:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: MacBookPro15,1
Processor Name: 6-Core Intel Core i9
Processor Speed: 2.9 GHz
Number of Processors: 1
Total Number of Cores: 6
L2 Cache (per Core): 256 KB
L3 Cache: 12 MB
Hyper-Threading Technology: Enabled
Memory: 32 GB
System Firmware Version: 1916.80.2.0.0 (iBridge: 20.16.3045.0.0,0)
OS Loader Version: 564.40.4~66
Software:
System Software Overview:
System Version: macOS 13.2 (22D49)
Kernel Version: Darwin 22.3.0
Time since boot: 1 day, 3 hours, 20 minutes
Graphics/Displays:
Intel UHD Graphics 630:
Chipset Model: Intel UHD Graphics 630
Type: GPU
Bus: Built-In
VRAM (Dynamic, Max): 1536 MB
Vendor: Intel
Device ID: 0x3e9b
Revision ID: 0x0000
Automatic Graphics Switching: Supported
gMux Version: 5.0.0
Metal Support: Metal 3
Radeon Pro 560X:
Chipset Model: Radeon Pro 560X
Type: GPU
Bus: PCIe
PCIe Lane Width: x8
VRAM (Total): 4 GB
Vendor: AMD (0x1002)
Device ID: 0x67ef
Revision ID: 0x00c2
ROM Revision: 113-C980AL-075
VBIOS Version: 113-C97501U-005
EFI Driver Version: 01.A1.075
Automatic Graphics Switching: Supported
gMux Version: 5.0.0
Metal Support: Metal 3
Displays:
Color LCD:
Display Type: Built-In Retina LCD
Resolution: 2880 x 1800 Retina
Framebuffer Depth: 30-Bit Color (ARGB2101010)
Main Display: Yes
Mirror: Off
Online: Yes
Automatically Adjust Brightness: Yes
Connection Type: Internal
BenQ PD3200U:
Resolution: 6016 x 3384
UI Looks like: 3008 x 1692 @ 60.00Hz
Framebuffer Depth: 30-Bit Color (ARGB2101010)
Display Serial Number: N8K00404019
Mirror: Off
Online: Yes
Rotation: Supported
Connection Type: Thunderbolt/DisplayPort
Installed Packages:
alabaster: 0.7.13
appdirs: 1.4.4
appnope: 0.1.3
asttokens: 2.2.1
Babel: 2.11.0
backcall: 0.2.0
blockdiag: 3.0.0
build: 0.8.0
certifi: 2021.10.8
cftime: 1.6.2
charset-normalizer: 2.1.1
ChimeraX-AddCharge: 1.5.8
ChimeraX-AddH: 2.2.3
ChimeraX-AlignmentAlgorithms: 2.0.1
ChimeraX-AlignmentHdrs: 3.3.1
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.8
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.3
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.43.6
ChimeraX-AtomicLibrary: 10.0.2
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.3.2
ChimeraX-BasicActions: 1.1.2
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.2
ChimeraX-BondRot: 2.0.1
ChimeraX-BugReporter: 1.0.1
ChimeraX-BuildStructure: 2.7.2
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.2
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.3.2
ChimeraX-ChangeChains: 1.0.2
ChimeraX-CheckWaters: 1.3.1
ChimeraX-ChemGroup: 2.0.1
ChimeraX-Clashes: 2.2.4
ChimeraX-ColorActions: 1.0.3
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.3
ChimeraX-CommandLine: 1.2.5
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.6.dev202301242251
ChimeraX-CoreFormats: 1.1
ChimeraX-coulombic: 1.4.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.3
ChimeraX-Dicom: 1.1
ChimeraX-DistMonitor: 1.3.2
ChimeraX-DockPrep: 1.1
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ESMFold: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0.1
ChimeraX-FunctionKey: 1.0.1
ChimeraX-Geometry: 1.2.1
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.1.1
ChimeraX-Hbonds: 2.4
ChimeraX-Help: 1.2.1
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-Label: 1.1.7
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.5
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.2
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.0.11
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.2
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.11
ChimeraX-MMTF: 2.2
ChimeraX-Modeller: 1.5.8
ChimeraX-ModelPanel: 1.3.6
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0
ChimeraX-Mole: 1.0
ChimeraX-Morph: 1.0.2
ChimeraX-MouseModes: 1.2
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.10
ChimeraX-PDB: 2.6.12
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
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.1
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.0
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 3.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.1
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.8.1
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.1.1
ChimeraX-ShowSequences: 1.0.1
ChimeraX-SideView: 1.0.1
ChimeraX-Smiles: 2.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.10.1
ChimeraX-STL: 1.0.1
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.1.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0.1
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.2
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1.2
ChimeraX-ToolshedUtils: 1.2.1
ChimeraX-Topography: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.26
ChimeraX-uniprot: 2.2.2
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.1.6
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.2
ChimeraX-WebServices: 1.1.1
ChimeraX-Zone: 1.0.1
colorama: 0.4.5
comm: 0.1.2
contourpy: 1.0.7
cxservices: 1.2.2
cycler: 0.11.0
Cython: 0.29.32
debugpy: 1.6.6
decorator: 5.1.1
docutils: 0.19
entrypoints: 0.4
executing: 1.2.0
filelock: 3.7.1
fonttools: 4.38.0
funcparserlib: 1.0.1
grako: 3.16.5
h5py: 3.8.0
html2text: 2020.1.16
idna: 3.4
ihm: 0.35
imagecodecs: 2022.9.26
imagesize: 1.4.1
importlib-metadata: 6.0.0
ipykernel: 6.19.2
ipython: 8.7.0
ipython-genutils: 0.2.0
jedi: 0.18.2
Jinja2: 3.1.2
jupyter-client: 7.4.8
jupyter-core: 5.1.5
kiwisolver: 1.4.4
line-profiler: 3.5.1
lxml: 4.9.1
lz4: 4.0.2
MarkupSafe: 2.1.2
matplotlib: 3.6.2
matplotlib-inline: 0.1.6
msgpack: 1.0.4
nest-asyncio: 1.5.6
netCDF4: 1.6.0
networkx: 2.8.8
numexpr: 2.8.4
numpy: 1.23.5
openvr: 1.23.701
packaging: 21.3
ParmEd: 3.4.3
parso: 0.8.3
pep517: 0.13.0
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 9.3.0
pip: 22.2.2
pkginfo: 1.8.3
platformdirs: 2.6.2
prompt-toolkit: 3.0.36
psutil: 5.9.4
ptyprocess: 0.7.0
pure-eval: 0.2.2
pycollada: 0.7.2
pydicom: 2.3.0
Pygments: 2.12.0
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.9
PyQt6-commercial: 6.4.0
PyQt6-Qt6: 6.4.2
PyQt6-sip: 13.4.0
PyQt6-WebEngine-commercial: 6.4.0
PyQt6-WebEngine-Qt6: 6.4.2
python-dateutil: 2.8.2
pytz: 2022.7.1
pyzmq: 25.0.0
qtconsole: 5.4.0
QtPy: 2.3.0
RandomWords: 0.4.0
requests: 2.28.1
scipy: 1.9.3
setuptools: 65.1.1
setuptools-scm: 7.0.5
sfftk-rw: 0.7.2
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
Sphinx: 5.1.1
sphinx-autodoc-typehints: 1.19.1
sphinxcontrib-applehelp: 1.0.4
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
stack-data: 0.6.2
tables: 3.7.0
tifffile: 2022.10.10
tinyarray: 1.2.4
tomli: 2.0.1
tornado: 6.2
traitlets: 5.8.0
typing-extensions: 4.4.0
urllib3: 1.26.14
wcwidth: 0.2.6
webcolors: 1.12
wheel: 0.37.1
wheel-filename: 1.4.1
zipp: 3.11.0
Attachments (4)
Change History (10)
comment:1 by , 3 years ago
| Component: | Unassigned → Volume Data |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → RFE: EMDB-SFF transform |
comment:2 by , 3 years ago
| Cc: | added |
|---|
From: Paul Korir <pkorir@ebi.ac.uk> Subject: Re: [chimerax-users] EMDB-SFF segmentation file: application of transform 0 for image-to-physical projection Date: February 2, 2023 at 5:49:17 AM PST To: Tom Goddard Thanks, Tom. Once you have a build ready let me know and I'll test on the data I have.
Hi Paul,
The current ChimeraX EMDB SFF reader tries to apply the correct transformation, but I guess you have a case where it does not work. It would help to have the SFF file and the density map it is supposed to align to that demonstrates the problem. With that it should be very easy to fix.
Tom
follow-up: 3 comment:3 by , 3 years ago
Hi Tom, OK. I can confirm that it works (attached screenshot). @Martin, Did you manage to get both image and segmentation to render correctly? Kind regards, *Paul K. Korir, PhD* /3D Visualisation Lead/ CS3DB *EMBL-EBI* On 02/02/2023 18:14, ChimeraX wrote:
comment:4 by , 3 years ago
Hi Tom, While it does work implicitly for segmentations based on label masks (lattices), it doesn't seem to work with meshes. Attached is an EMDB-SFF with meshes for which the corresponding image is available from: https://www.ebi.ac.uk/empiar/EMPIAR-10087/ with name C2_tomo02.mrc Let me know if you need anything else. *Paul K. Korir, PhD* /3D Visualisation Lead/ CS3DB *EMBL-EBI* On 03/02/2023 09:57, ChimeraX wrote:
follow-up: 4 comment:5 by , 3 years ago
Thanks! The EMPIAR 10087 example should help me quickly fix this. Hope to have a fix in today.
comment:6 by , 3 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed. In tonight's daily builds dated Feb 4.
The ChimeraX EMDB SFF file reader was not applying any transform to the meshes because the SFFMesh.transform_id in the file was None for all the segmentation meshes. The code expected the transform_id to be 0 if it is intended that transform 0 is supposed to be applied. I've changed the ChimeraX code so it applies transform 0 if the the transform_id is None. It seems like this is a problem with the file, but I do not know the intended meaning of transform_id = None.
by , 3 years ago
| Attachment: | empiar_10087_c2_tomo02.png added |
|---|
Alignment of empiar 10087 segmentation with fixed code.
Reported by Paul Korir