MLI-lab / DeepDeWedge

Self-supervised deep learning for denoising and missing wedge reconstruction of cryo-ET tomograms
BSD 2-Clause "Simplified" License
32 stars 8 forks source link
cryo-et deep-learning denoising missing-wedge self-supervised-learning tomography

DeepDeWedge

This repository contains an implementation of the DeepDeWedge method as described in our manuscript "A Deep Learning Method for Simultaneous Denoising and Missing Wedge Reconstruction in Cryogenic Electron Tomography". Our implementation comes as a Python package with an accompanying command line interface.

Installation

The first step is to clone this repository, e.g. via

git clone https://github.com/MLI-lab/DeepDeWedge
cd DeepDeWedge

We recommend to continue the installation in a fresh Python 3.10.13 environment. To create such an environment, you can for example use Anaconda:

conda create -n ddw_env python=3.10.13 pip=23.2.1
conda activate ddw_env

Next, you have to install a version of PyTorch that is compatible with your CUDA version. DeepDeWedge was developed using Pytorch 2.2.0 and CUDA 11.8, so we recommend this combination. The corresponding conda install command is

conda install pytorch==2.2.0 pytorch-cuda=11.8 -c pytorch -c nvidia

You can find a list of all PyTorch versions and the compatible CUDA versions here. The remaining requirements can be istalled via

pip install -r requirements.txt

Finally, you can, install the DeepDeWedge package via

pip install .

The installation should not take more than a few minutes in total. Upon successful installation, running the command

ddw --help

should display a help message for the DeepDeWedge command line interface.

Usage

The DeepDeWedge command line interface provides three commands which correspond to the three steps of the algorithm outlined in our paper:

Each command has its own set of arguments which can be displayed by running ddw <command> --help. All agruments can be either specified via the command line or by providing a YAML configuration file (see Tutorial). Moreover, all DeepDeWedge commands are available as Python functions inside the ddw package.

We encourage developers, researchers and interested users to have a look at the ddw.utils package which contains most of the actual implementation of DeepDeWedge.

Tutorial

To get started with the DeepDeWedge command line interface, we strongly encourage you to have a look at our tutorial Jupyter notebooks in the tutorial/ directory. There, we reconstruct the flagella of Chlamydomonas Reinhardtii based on data from the Tomo110 dataset, which was used in the tutorial for the related CryoCARE denoising method.

FAQ

If you have a question that is not answered here, please do not hesitate to contact us.

Contact

If you have any questions or problems, or if you found a bug in the code, please do not hesitate to contact us or to open an issue on GitHub.

Citation

@article{wiedemann2024deep,
  title={A deep learning method for simultaneous denoising and missing wedge reconstruction in cryogenic electron tomography},
  author={Wiedemann, Simon and Heckel, Reinhard},
  journal={Nature Communications},
  volume={15},
  number={1},
  pages={8255},
  year={2024},
  publisher={Nature Publishing Group UK London}
}

License

All files are provided under the terms of the BSD 2-Clause license.