danaroth's picture
Publish scitomo native DeepDeWedge tutorial checkpoint revision 1
5e00643
|
Raw
History Blame Contribute Delete
6.51 kB
---
license: cc-by-4.0
library_name: scitomo
tags: [cryo-electron-tomography, denoising, missing-wedge, safetensors, scitomo]
---
# DeepDeWedge tutorial checkpoint for scitomo
This repository contains the official DeepDeWedge tutorial checkpoint converted
to a scitomo-native, non-executable Safetensors package. It reinstantiates the
scitomo `UNet3D` used by the `deepdewedge` restoration method. It is not a
PyTorch Lightning trainer-resume checkpoint and does not contain optimizer,
scheduler, callback, random-number-generator, or dataloader state.
Package identity:
- scitomo catalog name: `deepdewedge_tutorial`
- native package id: `deepdewedge_tutorial`
- package revision: `1`
- minimum scitomo version: `0.5.4`
- learned-checkpoint format: `1`
- method: restoration / `deepdewedge`
- construction fingerprint:
`sha256:c9da7decd489f0f4f893dce565f37db25abc63d0d3efcacad9835305ffd97cb2`
- inference fingerprint:
`sha256:c2c5eba72579510265258dcfce3a5be2f851f9276c7e53d92330d78eb37720dd`
## Source and attribution
The original checkpoint is part of **DeepDeWedge Tutorial Data**, authored by
Simon Wiedemann and published on Figshare under CC BY 4.0:
- DOI: <https://doi.org/10.6084/m9.figshare.25043435.v1>
- Figshare file id: `45582309`
- archive: `tutorial_data.zip`
- archive member: `tutorial_data/fitted_model.ckpt`
- archive SHA-256:
`7c871342e51f5a66a773fe427d72944b5d2cc8ff41c5b7415ab38dbfc9ac6d58`
- original checkpoint SHA-256:
`5262f6c11e85fd662b02e59efe936fa7b69913758e841235be2683f7bd03ec76`
The method and upstream implementation are described by:
> Simon Wiedemann and Reinhard Heckel. “A deep learning method for
> simultaneous denoising and missing wedge reconstruction in cryogenic
> electron tomography.” Nature Communications 15, 8255 (2024).
> <https://doi.org/10.1038/s41467-024-51438-y>
Upstream code:
<https://github.com/MLI-lab/DeepDeWedge/tree/072075692a44a8f17394214369e6e762abe52bc3>
The conversion changed the serialization, state names, and executable
construction mechanism. It did not intentionally alter tensor values. Two
learned normalization values that upstream stored as non-trainable parameters
are native scitomo buffers with identical values. See `ATTRIBUTION.md`,
`conversion/conversion-record.json`, and `LICENSES/`.
## Native construction and inference
`construction.json` specifies a residual single-input/single-output 3D U-Net
with 64 initial channels, three downsampling blocks, strided-convolution
downsampling, transposed-convolution upsampling, leaky-ReLU activations, and
the learned input-normalization location and scale from the tutorial
checkpoint.
Volume tensors use scitomo's canonical trailing-axis layout `(..., Z, Y, X)`.
The network layout is `(..., C, Z, Y, X)`, with one scalar volume channel.
The canonical rotation axis is `Z`; at theta zero the beam axis is `Y`, and
detector `(V, U)` corresponds to `(Z, X)`.
The frozen DeepDeWedge inference profile requires:
- paired half-tomograms, refined separately and averaged;
- a 50-degree full-width missing-wedge Fourier mask on each half;
- `96 x 96 x 96` patches with overlap `32 x 32 x 32`;
- trailing reflection padding for full coverage;
- patch-statistic normalization and network denormalization;
- linear-ramp weighted patch reassembly; and
- no full-tomogram standardization.
The package was converted from the tutorial's fitted network. It assumes the
same scientific meaning, preprocessing, normalization, missing-wedge
convention, and paired-half workflow. It is not a general-purpose cryo-ET
foundation model.
## Files and identities
| File | Bytes | SHA-256 |
| --- | ---: | --- |
| `construction.json` | 2,175 | `d4c7eced057042438827de168d47b7900311fba742ce52445675be7f40343432` |
| `inference.json` | 968 | `217636919d17d9332aa49474e893064ed1dfb29f016a468cf22d439cf16887a0` |
| `weights.safetensors` | 109,294,940 | `2a34aeb61dba5da5c7b78f4cc26de9b8a9134ac12dc08876a8e93bf02776c795` |
| `conversion/conversion-record.json` | 13,953 | `e55c35f9e233e0ba04ea1332306b179b96db12158b4eb0cd8d5dcd3609ac8e54` |
| `validation/validation-record.json` | 1,946 | `eb2f9153d49e7124a8aeb1951230b6124f5fdc18ea1f53b2c9e28db55273cc3f` |
`manifest.json` binds these files plus this model card, attribution, and
license resources by exact size and SHA-256. The immutable Hugging Face commit
and scitomo learned-weight catalog bind the complete distribution, including
the manifest and documentation resources, without a self-referential checksum
inside this README.
## Validation
All 56 source tensors were mapped one-to-one and exactly matched after native
assignment.
Predetermined CPU float32 checks:
| Case | Tolerance | Result |
| --- | --- | --- |
| Synthetic forward parity | `atol=1e-6`, `rtol=1e-5` | bit-exact; max absolute error `0`; relative L2 `0` |
| Real tutorial-volume crop | relative L2 `<=1e-4` | max absolute error `7.152557373046875e-7`; relative L2 `1.2612566990810592e-7` |
The real-data case used a centered `32 x 32 x 32` crop from
`tutorial_data/tomo_even_frames.rec`. Vendor and native outputs were finite,
had identical shapes, and had the same absolute-peak spatial landmark at
`(Z, Y, X) = (25, 13, 0)`.
The evidence proves native network-state and reviewed forward parity for the
frozen inputs. It does not establish accuracy on every microscope, specimen,
acquisition protocol, missing-wedge angle, or preprocessing pipeline, nor does
it replace validation of a complete user workflow.
## Safe loading
The repository contains declared data files only. Loading does not execute
remote code, import the vendor project, or use Python pickle. scitomo requires
the exact catalog commit and verifies every declared size and SHA-256 before
opening `weights.safetensors`. Hugging Face `trust_remote_code` is never used.
Install the learned and catalog extras before resolving the catalog package:
```text
pip install "scitomo[learned,catalog]"
```
Normal runtime loading is owned by scitomo's central learned-checkpoint API.
Do not load the original Lightning checkpoint in an ordinary runtime.
## Licenses
- Converted weights and their source tutorial dataset: CC BY 4.0. See
`LICENSES/DeepDeWedge-Tutorial-Data-CC-BY-4.0.txt`.
- Upstream DeepDeWedge code and behavior used for construction/conversion:
BSD 2-Clause. See `LICENSES/DeepDeWedge-Code-BSD-2-Clause.txt`.
The CC BY 4.0 attribution and modification notice are provided in
`ATTRIBUTION.md`. No endorsement by the original authors or rights holders is
implied.