Skip to main content

cryoem-services

PyPI release Supported Python versions Test coverage Code style: black

Services and configuration for cryo-EM pipelines.

This package consists of a number of services to process cryo-EM micrographs, both for single particle analysis and tomography, using a range of commonly used cryo-EM processing software. These services can be run independently to process data, or as part of a wider structure for performing live analysis during microscope collection. For live analysis, this package integrates with a package for transferring and monitoring collected data, Murfey, and a database for storing processing outcomes, ISPyB.

To run these services the software executables being called must be installed. These do not come with this package.

Tomography processing

The tomography processing pipeline consists of:

  • Motion correction
  • CTF estimation
  • Tomogram alignment
  • Tomogram denoising using Topaz
  • Segmentation using membrain-seg

The results of this processing can be opened and continued using Relion 5.0.

Single particle analysis

The single particle analysis pipeline produces a project that can be opened and continued using CCP-EM doppio or Relion.

The processing pipeline consists of:

  • Motion correction
  • CTF estimation
  • Particle picking
  • (Optionally) Ice thickness estimation
  • Particle extraction and rebatching
  • 2D classification using Relion
  • Automated 2D class selection using Relion
  • 3D classification using Relion
  • 3D Refinement and post-processing
  • BFactor estimation by refinement with varying particle count

Services currently available

The following services are provided for running the pipelines:

  • Utility services:
    • ClusterSubmission: Submits wrapper scripts to an HPC cluster
    • EMISPyB: Inserts results into an ISPyB database
    • Images: Creates thumbnail images for viewing processing outcomes
    • NodeCreator: Creates Relion project files for the services run
    • ProcessRecipe: Converts recipes into messages suitable for processing services
  • Processing services:
    • BFactor: Performs the setup for 3D refinement with varying particle count
    • CrYOLO: Particle picking on micrographs using crYOLO
    • CTFFind: CTF estimation on micrographs using CTFFIND4
    • DenoiseSlurm: Tomogram denoising, submitted to a slurm HPC cluster, using Topaz
    • Extract: Extracts picked particles from micrographs
    • ExtractClass: Extracts particles from a given 3D class
    • IceBreaker: Ice thickness estimation with IceBreaker
    • MembrainSeg: Tomogram segmentation, submitted to a slurm HPC cluster, using membrain-seg
    • MotionCorr: Motion correction of micrographs using MotionCor2 or Relion, optionally submitted to a slurm HPC cluster
    • PostProcess: Post-processing of 3D refinements using Relion
    • SelectClasses: Runs automated 2D class selection using Relion and re-batches the particles from these classes
    • SelectParticles: Creates files listing batches of extracted particles
    • TomoAlign: Tomogram reconstruction from a list of micrographs using imod and AreTomo2
    • TomoAlignSlurm: Tomogram alignment processing submitted to a slurm HPC cluster

There are also three wrapper scripts that can be run on an HPC cluster using the ClusterSubmission service. These perform 2D classification, 3D classification and 3D refinement using Relion.

Running services

The services in this package are run using python-workflows. They consume messages off a RabbitMQ instance and processing happens in sequences defined by the recipes in the recipes folder. To start a service run the cryoemservices.service command and specify the service name. For example, to start a motion correction service:

$ cryoemservices.service -s MotionCorr -c config_file.yaml

The configuration file should contain the following:

rabbitmq_credentials: <file with connection credentials to rabbitmq>
recipe_directory: <directory containing the recipes to run>
ispyb_credentials: <(Optionally) file with credentials for an ispyb database>
slurm_credentials:
  default: <(Optionally) credentials for a slurm RestAPI>
graylog_host: <(Optionally) the name of a graylog instance>
graylog_port: <(Optionally) the port used by graylog>

Once started, these services will initialise and then wait for messages to be sent to them. Messages are sent through a message broker, currently RabbitMQ is supported using pika transport in python-workflows. Individual processing stages can be run by sending a dictionary of the parameters, but the processing pipelines are designed to run through recipes.

A recipe is a specication of a series of steps to carry out, and how these steps interact with each other. Recipes for the current processing pipelines are provided in the recipes folder.

To run a recipe in python a dictionary needs to be provided consisting of the recipe name and the parameters expected by the recipe. The following snippet shows an example of the setup needed. This will send a message to a running ProcessRecipe service which prepares the recipe for the processing services.

import workflows.transport.pika_transport as pt

example_message = {
    "recipes": ["em-tomo-align"],
    "parameters": {
        "path_pattern": "micrograph_*.mrc",
        "pix_size": "1",
        ...
    },
}

transport = pt.PikaTransport()
transport.connect()
transport.send("processing_recipe", example_message)

Metadata

Release files for cryoemservices 1.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cryoemservices 1.5.0
File Size Uploaded
cryoemservices-1.5.0.tar.gz 185.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cryoemservices 1.5.0
File Interpreter ABI Platform
cryoemservices-1.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 426.7 kB

Release files / cryoemservices-1.5.0.tar.gz

Download URL cryoemservices-1.5.0.tar.gz
Size 185.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2837d5a2c3478efa884cfe5d2b64646389eb3f0d189221ce22038ad112791f9f
BLAKE2b-256 checksum
How to use checksums
2a33705795103b0911aedad555b391fe106a42204272dc348cc0b9061115f064
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.

Transparency log

Release files / cryoemservices-1.5.0-py3-none-any.whl

Download URL cryoemservices-1.5.0-py3-none-any.whl
Size 241.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d1d96cdb8866876258444750210a49d4f2386c04b845375e16dc56a83209a78e
BLAKE2b-256 checksum
How to use checksums
612781e52b2e5a359160de6a9939a4287c38036e09ed4c2921bcb7d34cce39d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.

Transparency log

Release history Release notifications | RSS feed

1.5.1

2 release files

This release

1.5.0 This release

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page