Conversation
…ng, also need to turn that into a real peak file
…ng, also need to turn that into a real peak file
…ng, also need to turn that into a real peak file
…ng, also need to turn that into a real peak file
…s and incoperating the underlying FIRE elements so I can find the natural peak start and end
Add new `mock-fire` CLI subcommand that generates mock BAM files with FIRE elements from a BED file. Each interval becomes a FIRE element, with the 4th column grouping intervals into the same mock read. Bug fixes: - Fix score calculation overflow when quality=255 by capping at 253 and limiting max score to 100 - Fix peak merging to select representative peak by highest score instead of lowest FDR, ensuring the peak_max reflects the position with most FIRE coverage - Add hidden --min-fire-coverage parameter to call-peaks for testing with low-coverage data New files: - src/cli/mock_fire_opts.rs - src/subcommands/mock_fire.rs
added 30 commits
April 22, 2026 10:23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This branch adds two major pieces of functionality and ships a co-located Snakemake workflow for model training.
New subcommands
ft call-peaks— end-to-end peak caller implemented in Rust (replaces the previous Python/bash pipeline). Builds a per-chromosome FDR table, identifies local maxima, snaps peak boundaries to the median positions of underlying FIRE elements, merges adjacent peaks, and emits a BED with the expected fire-peak columns (including percent-accessible calls). Code under src/subcommands/call_peaks/ (fdr, peaks, mod — ~1450 lines).ft mock-fire— generates synthetic FIRE-tagged output for peak-calling tests and reproducers. See src/subcommands/mock_fire.rs.ft benchmark(hidden) — profiles the fiberseq iterator to help tune chunk sizes and parallelism. See src/subcommands/benchmark.rs.Extensions and fixes
ft pileup: major refactor to share code with peak calling. Now accepts multiple regions on the CLI or a BED file of regions. Adds default--frac-fibersfiltering. See src/subcommands/pileup.rs and src/cli/pileup_opts.rs.fiber.rsswitched from collecting regions to multi-fetching, reducing peak memory on wide region sets.Train-FIRE workflow
Adds Train-FIRE/ — a self-contained Snakemake pipeline for training FIRE models (positives/negatives construction, feature extraction, XGBoost grid search, mokapot semi-supervised FDR, track-hub generation). Pixi-managed, with a
.tests/minimal smoke config.Test plan
cargo test(includes fibertig regression tests added via fix: pair fa:Z extras with correct annotations on reverse-strand reads #103)cargo clippy -- -D warningsft call-peakson a real fiberseq BAM and diff output against the legacy Python peak callerft pileupwith--regions-bedon a multi-region BED.tests/smoke config runs end-to-end