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