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.9. 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.9.tar.gz (199.3 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.9-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.9-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.9.tar.gz.

File metadata

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

File hashes

Hashes for turbo_picard-0.1.9.tar.gz
Algorithm Hash digest
SHA256 a2191f6e728961e9dae5a74adc0dac82254fe867a6e2f6d93a6edc50dac4ad28
MD5 422cf779273576a6784c7e387cbf3284
BLAKE2b-256 2820d45eec9f38105f4f81476e32b09f8b64f585af3dfe4af38f03420b4bffb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for turbo_picard-0.1.9.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.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for turbo_picard-0.1.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67f31f7be623dcee0705c5d0f6739da0ca8c642b3913b80d60f90ea684a2eb5e
MD5 0f73ba2ee66515e2f8009530e29d1a13
BLAKE2b-256 47a37360e413a2a9c1992070f6f3ea49239282c5c9a19356f03c395ed1278c65

See more details on using hashes here.

Provenance

The following attestation bundles were made for turbo_picard-0.1.9-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.9-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for turbo_picard-0.1.9-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 28a932c460f28f2335c4f5613ef1405b0321a743b27d71a6225d44ec70c61974
MD5 c26bd1225885eb9e96fb3e95d66d820e
BLAKE2b-256 b5c5a2007d3f1989bc5a0e13cf71c030689e6e57f1308cbfbbe7caa69e0491bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for turbo_picard-0.1.9-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

0.1.10

3 files

This release

0.1.9 This release

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