Skip to content

MLI-lab/ProPicker

Repository files navigation

ProPicker

This repo contains an implementation of ProPicker as described in our paper. The repo covers prompt-based picking and particle-specific fine-tuning. We also provide code to train ProPicker from scratch.

Installation and Setup

  1. Use Conda to install the necessary dependencies in a new environment. From the root of the repository, run:

    conda env create -f environment.yml
    conda activate ppicker
    
  2. Install ProPicker itself:

    pip install .
    
  3. You need the checkpoint of our pre-trained model, as well as the checkpoint of the TomoTwin model we used as prompt encoder.

    • You can download the ProPicker checkpoint here here

    • You can download the TomoTwin checkpoint by running bash download_tomotwin_ckpt.sh

    After downloading, place the files in the ProPicker directory.

  4. Set the following environment variables to point to the model files:

    export PROPICKER_MODEL_FILE=/abs/path/to/propicker.ckpt
    export TOMOTWIN_MODEL_FILE=/abs/path/to/tomotwin.pth
    

Usage

(I) Recommended: Python package and scripts

We provide Jupyter notebooks as entry points for readers who want to try ProPicker or reproduce the qualitative behavior and performance trends reported in the paper.

(II) Experimental: Interactive exploration via GUI

The GUI/CLI is for interactive exploration and application of ProPicker. The GUI uses the same underlying model and inference code, but is intended for exploratory use rather than for reproducing the quantitative results reported in the paper.

Training ProPicker from Scratch

Training from scratch lives in propicker/training_from_scratch/train.py, with parameters in propicker/training_from_scratch/train_cfg.py.

To download the training data, you can use datasets/download_train_data.sh.

Note: The training data is large, so you might want to download it to a different location. To do this, modify datasets/download_train_data.sh; also adjust the training data path in propicker/paths.py.

Note

This repository contains code copied and modified from DeepETPicker, DeePiCt, and TomoTwin. All derived code is explicitly marked.

Citation

@article{wiedemann2026,
    title = {ProPicker: Promptable segmentation for particle picking in cryogenic electron tomography},
    journal = {Journal of Structural Biology},
    volume = {218},
    number = {2},
    pages = {108298},
    year = {2026},
    doi = {https://doi.org/10.1016/j.jsb.2026.108298},
    author = {Simon Wiedemann and Zalan Fabian and Mahdi Soltanolkotabi and Reinhard Heckel},
}

About

Prompt-based segmentation and fine-tuning for data-efficient and flexible particle picking in cryo-ET tomograms

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors