Skip to content

Latest commit

 

History

273 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STAMP

A workflow for Sub-Tomogram Averaging Membrane Proteins.


Overview

Given a directory of segmented MRC volumes (i.e. as produced by MemBrain-seg), STAMP runs the following workflow:

# Stage Description
1 Picking Finds candidate particle positions on the membrane surface, with consensus results returned across multiple pickers
2 Classification Group similar candidate particles by structural similarity (via unsupervised clustering) and produce class averages
3 Identification Score each class average against a panel of predicted protein structures from proteomics experiments
4 Refinement Iteratively refine particle orientations and measure resolution

Half-sets and a decoy control (a matched negative-control set of particles run through the pipeline) are used by default.


Getting Started

Requirements

STAMP's only core requirement is Python >=3.14, and the below installation steps should download the necessary Python version (and any libraries) automatically. Additional functionality (e.g. refinement) requires additional tools to be available via a HPC cluster (RELION-5/M) with GPU nodes, however STAMP only submits these jobs to a SLURM scheduler and so can be run from a login node if refinement is required. automatically.

Installation

STAMP uses uv as its package manager and build backend. To install:

# Install STAMP
uv tool install git+https://github.com/holsam/stamp

# Check STAMP is installed
stamp --help

Alternatively, this repo can be cloned directly:

# Clone repo from GitHub
git clone https://github.com/holsam/stamp && cd stamp

# Set up a virtual environment and install STAMP to it
uv sync

# Check STAMP is installed
source .venv/bin/activate
stamp --help

For development, the dev dependency group provides pytest:

uv sync --group dev

Quickstart

Given a directory of membrane segmentations (seg/) and matching raw tomograms (tomo/):

# 1. Pick candidate particles using STAMP's native picker
stamp pick stamp-native -s seg/ -r tomo/ --voxel-size-a 5.38

# 2. Group picks and generate class averages
stamp classify --particles stamp/pick/particle_set.json -r tomo/ --voxel-size-a 13.48

# 3. Compare class averages to a candidate protein panel
stamp identify --classes stamp/classify/class_averages --candidates candidates.yaml -r 25.0

# 4. Refine an identified class with independent half-sets
stamp refine --class-id all --identification stamp/identify/identification.json --particles stamp/pick/particle_set.json --class-assignments stamp/classify/class_assignments.json -r tomo/

Each step, including decoy control generation, can be run from a single configuration file:

stamp run --config stamp_run.toml

Documentation

File Purpose
docs/architecture.md STAMP's module layout and key abstractions
docs/cli.md Full CLI reference
docs/configuration.md stamp run configuration reference
docs/workflow.md The theory underpinning STAMP
tests/TESTS.md STAMP's test suite structure

Licence

STAMP is available under the terms of the MIT License. For further information, see the accompanying LICENSE file.

About

A workflow for Sub-Tomogram Averaging Membrane Proteins

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages