Skip to main content

turbo-picard

Turbo Picard starship captain accelerating genomic pipeline data streams

Faster Rust implementations of common Picard commands, built for Picard-shaped pipelines.

turbo-picard keeps the workflow interface familiar: Picard command names, KEY=VALUE arguments, and an optional picard compatibility shim. Accelerated commands run natively. Commands outside the native surface can delegate to upstream Picard when fallback is configured.

Use it when you already have Picard steps in WDL, Nextflow, Snakemake, or shell pipelines and want to test faster execution without rewriting task interfaces.

Quick Start

Install from PyPI:

python3 -m pip install turbo-picard

Installing from PyPI currently gives you both commands:

  • turbo-picard: the explicit command for evaluation and normal use.
  • picard: a compatibility shim for environments where you deliberately want existing picard calls to resolve to this package.

Use the explicit turbo-picard command while testing. Add the shim to a pipeline environment only after the specific commands you need have been checked.

Check the install:

turbo-picard --version
turbo-picard MarkDuplicates --help
turbo-picard doctor
turbo-picard trial MarkDuplicates I=input.bam O=marked.bam M=metrics.txt

Run one familiar command:

turbo-picard MarkDuplicates I=input.bam O=marked.bam M=metrics.txt

From a repository checkout:

cargo install --locked --path crates/turbo-picard-cli --bin turbo-picard --bin picard

When It Helps

  • You already run Picard commands and want to trial one slow step first.
  • You need Picard-style command names and KEY=VALUE arguments to stay stable.
  • You want a command-by-command rollout with upstream Picard available for unsupported or unchecked behavior.
  • You can compare outputs on a representative BAM, CRAM, FASTQ, VCF, or metrics file before changing the workflow.

Good first trials are usually MarkDuplicates, SortSam, SamToFastq, FastqToSam, FixMateInformation, BuildBamIndex, and repeated metrics commands. Use turbo-picard trial <PicardCommand> ... to print a side-by-side Picard and turbo-picard evaluation contract before changing a workflow.

When To Stay With Picard

  • You need an option or command that is not inside the documented native scope and cannot use fallback.
  • You require Picard-equivalent chart rendering rather than checked metrics text.
  • You have not compared the exact command, input shape, sidecars, metrics, exit code, and error behavior your workflow depends on.
  • You need broad cohort evidence before trying a representative shard.

Documentation

The full docs are on Read the Docs:

https://turbo-picard.readthedocs.io/en/latest/

Useful starting points:

Starter workflow files live in packaging/workflows/. The smallest trial shape is packaging/workflows/one-command-trial.md. Migration patterns that usually keep the surrounding workflow stable include per-read-group SamToFastq, sequential-shard FastqToSam, and mate-repair boundaries around FixMateInformation.

Benchmarks

The saved public benchmark suite compares native turbo-picard commands against Picard 3.4.0 and checks stable outputs before reporting speed. Current saved results report 32/32 parity checks passing, with 94.36x top speedup: UpdateVcfSequenceDictionary, 6.86x floor speedup: RevertSam, 26.72x median speedup, and 24.94x geometric mean speedup.

Summary: 32/32 PASS; 94.36x top speedup: UpdateVcfSequenceDictionary; 6.86x floor speedup: RevertSam; 26.72x median speedup; 24.94x geometric mean speedup.

Benchmark details, scope notes, real-data evidence, and reproduction commands are in the benchmark docs. The parity guide explains what the comparisons do and do not prove. For CollectBaseDistributionByCycle, CollectGcBiasMetrics, CollectInsertSizeMetrics, MeanQualityByCycle, and QualityScoreDistribution, metrics text is the parity target; chart outputs are lightweight PDF summaries, not Picard-equivalent rendered plots.

Saved benchmark run:

  • Date: 2026-06-13
  • Command: python3 tools/bench_suite.py --repeats 3 --skip-build
  • Raw log: docs/site/assets/bench-suite-output.txt
  • benchmark exceptions: AccelerationStatus, doctor, explain, and trial are utility commands, not Picard workload comparisons.
Command Speedup Parity
UpdateVcfSequenceDictionary 94.36x PASS
BuildBamIndex 69.26x PASS
NormalizeFasta 67.11x PASS
GatherVcfs 53.80x PASS
CreateSequenceDictionary 47.83x PASS
MergeVcfs 47.23x PASS
CollectInsertSizeMetrics 40.66x PASS
MeanQualityByCycle 36.74x PASS
QualityScoreDistribution 34.04x PASS
CollectBaseDistributionByCycle 33.08x PASS
SamToFastq 29.06x PASS
CollectMultipleMetrics 28.39x PASS
IntervalListTools 27.89x PASS
CollectGcBiasMetrics 27.72x PASS
ValidateSamFile 27.62x PASS
SortSam 26.72x PASS
SortVcf 25.67x PASS
CollectAlignmentSummaryMetrics 25.63x PASS
AddOrReplaceReadGroups 24.48x PASS
CleanSam 21.61x PASS
ViewSam 21.11x PASS
BedToIntervalList 19.89x PASS
MarkDuplicates 17.68x PASS
CollectQualityYieldMetrics 17.58x PASS
MergeSamFiles 17.16x PASS
CollectWgsMetrics 15.42x PASS
ReplaceSamHeader 14.20x PASS
LiftoverVcf 14.17x PASS
FixMateInformation 10.35x PASS
SetNmMdAndUqTags 9.34x PASS
FastqToSam 7.40x PASS
RevertSam 6.86x PASS

Release evidence checks:

python3 tools/update_real_data_manifest.py
python3 tools/verify_benchmark_log_evidence.py
python3 tools/verify_benchmark_suite_coverage.py
python3 tools/verify_benchmark_thresholds.py
python3 tools/verify_real_data_evidence.py
python3 tools/verify_real_data_evidence.py --release-ready

Real-data evidence lives in benchmarks/real-data/ and records pinned input sources, command scopes, and input SHA-256 hashes. Current release-candidate dataset IDs are gatk-na12878-mito, picard-snvq, and gatk-na12878-mito-cram.

Workflow evaluation

The project publishes a workflow validation protocol, a compatibility contract, and a production-scale benchmark format. Use these before changing a workflow. The opt-in Nextflow process candidate is documented under packaging/nf-core.

A command-level speedup is not a universal replacement claim. Keep upstream Picard available until representative BAM/CRAM evidence, output parity, failure behaviour, and independent review pass for the exact workflow.

Packaging Status

The live PyPI release is 0.1.10. It publishes Linux x86_64 and macOS Apple Silicon wheels plus a source distribution.

Bioconda recipes are tracked under packaging/bioconda/. The main package installs turbo-picard; the separate shim package installs the picard command only for environments that choose it.

Citation

Cite the archived turbo-picard release you used with CITATION.cff. Benchmark and validation inputs should be cited separately with immutable source URLs, commits or accessions, and input SHA-256 hashes.

Docs source lives in docs/. JOSS submission notes are tracked in docs/joss-submission.rst.

Contributing

Bug reports, parity evidence, documentation fixes, and small command-coverage improvements are welcome. Start with CONTRIBUTING.md and the development docs.

Support: SUPPORT.md. Security: SECURITY.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

turbo_picard-0.1.10.tar.gz (205.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

turbo_picard-0.1.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

turbo_picard-0.1.10-py3-none-macosx_11_0_arm64.whl (7.9 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file turbo_picard-0.1.10.tar.gz.

File metadata

  • Download URL: turbo_picard-0.1.10.tar.gz
  • Upload date:
  • Size: 205.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for turbo_picard-0.1.10.tar.gz
Algorithm Hash digest
SHA256 44ce76820277df942a87aead73c3a6f7121082cbb4509a5c38a89c9cfbc2875d
MD5 6409f1fdb0dc7c884bedce15e7f5b239
BLAKE2b-256 66822b3581901753563254e1dfa8bd0a512e680dfae3b1ea0ec0f83d3fa2cc30

See more details on using hashes here.

Provenance

The following attestation bundles were made for turbo_picard-0.1.10.tar.gz:

Publisher: publish-pypi.yml on dnncha/turbo-picard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file turbo_picard-0.1.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for turbo_picard-0.1.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c204906b64313de0dd228020b38f208265a7169e754b43051a56cf1af8c3fcf1
MD5 4950ec2b606e5d9bf25ccc9ae7f1c07c
BLAKE2b-256 199959c706168344cce1795e2c20cbbb874c24080a5e67323adca39dea587008

See more details on using hashes here.

Provenance

The following attestation bundles were made for turbo_picard-0.1.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on dnncha/turbo-picard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file turbo_picard-0.1.10-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for turbo_picard-0.1.10-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 951a5162e5679ca9ab4b5aa130ad276fc584707dc3412496b81ab616a30d620e
MD5 ae74686a15abb95c7161fabac83a7e8a
BLAKE2b-256 f4287084d6879b8e971210fa61cc8f2e0b00d0f01dec87af43706c39b45a04d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for turbo_picard-0.1.10-py3-none-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on dnncha/turbo-picard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.11

5 files

This release

0.1.10 This release

3 files

0.1.9

3 files

0.1.8

3 files

0.1.7

3 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page