MarkDuplicates
0.075s
Turbo Picard median
2.239s upstream Picard median
3 runs · generator reads=50,000
Saved fixture parity: PASS
Open-source genomics · v0.1.16
Native Rust tools for the Picard steps holding up your pipeline. Mark duplicates, sort BAMs, export FASTQ and collect QC metrics—with familiar commands and inspectable results.
Linux & macOS · MIT licensed · Your data stays on your infrastructure
Your current task
java -jar picard.jar MarkDuplicates \ I=sample.bam \ O=picard.bam M=picard.txt
The native alternative
turbo-picard MarkDuplicates \
I=sample.bam \
O=turbo.bam M=turbo.txtSame task. Separate outputs.
Compare before you switch.
Choose a command to evaluate
Pick the slow, fragile or frustrating step. See what to check, what Turbo Picard changes, and where it fits.
Separate Java heap from total memory. Understand the bounded native path, scratch requirements and the multi-input cases that still need care.
Diagnose memory & slow runs → 02 / READ EXPORTGet paired, unpaired or compressed outputs. Use bounded queryname staging for coordinate-sorted BAMs without guessing about read orientation.
Build a better BAM-to-FASTQ step → 03 / SEQUENCING QCRun supported metric programs together. Preserve their filtering and output contracts instead of replacing one slow step with five new ones.
Review the native QC path → 04 / SORTING & I/OMake the order, buffer and temporary storage explicit. Evaluate coordinate or queryname sorting with stable disk-backed merging.
Understand sorting & scratch space →Already looking at samtools or Riker? Choose the tool that fits the job—including when it isn’t Turbo Picard.
Show the work
These are absolute medians from the saved 2026-08-14 fixture suite. You can inspect every result and its source log.
MarkDuplicates
0.075s
Turbo Picard median
2.239s upstream Picard median
3 runs · generator reads=50,000
Saved fixture parity: PASS
SamToFastq
0.034s
Turbo Picard median
1.896s upstream Picard median
3 runs · generator reads=50,000
Saved fixture parity: PASS
CollectMultipleMetrics
0.017s
Turbo Picard median
2.107s upstream Picard median
3 runs · generator reads=100,000
Saved fixture parity: PASS
Small-fixture results, not a whole-genome forecast. Three runs per case. JVM startup can dominate short tasks. Generator parameters are not guaranteed record counts. This saved suite predates v0.1.16; use it as historical evidence, not a fresh release benchmark.
All results & methods ↗A smaller migration
You already know what your Picard step needs to produce. Keep that contract at the centre: command arguments, duplicate flags, metrics and the sidecars your next task consumes.
Nextflow, WDL, Snakemake and shell starter examples are tested in this repository. They are starting points for your evaluation, not a claim of upstream nf-core adoption.
Build my comparison →Read native scope and fallback boundaries in a searchable, source-derived catalogue.
Install into an isolated environment. Use explicit executable names and a fresh results directory.
Check scientific outputs and downstream compatibility. Keep the evidence—including unsuccessful trials.
Pin the version and repeat on representative inputs. Leave other pipeline steps untouched.
Built for humans. Legible to agents.
Ask for one command’s scope as JSON. Get structured trial arguments. Require native execution so a benchmark cannot quietly become an upstream Java run.
Discovery describes the documented surface; it does not inspect your files or validate every option. There is no AI model, account or API key required.
Explore command support →turbo-picard capabilities --json \
--command MarkDuplicates
TURBO_PICARD_REQUIRE_NATIVE=1 \
turbo-picard MarkDuplicates \
I=sample.bam O=turbo.bam M=turbo.txtCurrent boundaries
No. This is not a full Picard suite. Some commands have scoped native support; others require upstream Picard. Unsupported commands or options can use configured or detected fallback. Check the exact command before switching.
That is a measurement to make, not a promise to inherit. Compression, storage, coverage, duplicate families and options change the result. Compare your own input and keep the whole task’s time and resource use.
Native paths run on the CPU without Java or an AI service. Java is needed when you deliberately use upstream Picard or run a Picard comparison. No production GPU backend is enabled in this release.
Metrics text is the parity target for supported collectors. Lightweight PDF summaries are not a reproduction of Picard’s full chart rendering. Pin a release, retain the exact options and compare the outputs your downstream tasks consume.
Make the next step a useful one
Switch only the commands where the evidence supports the change. Start with the file and task you already care about.