Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
4b4757c
first try at peak calling all in rust, fdr table done but needs testi…
Oct 29, 2025
1559db7
first try at peak calling all in rust, fdr table done but needs testi…
Oct 29, 2025
705a87b
clippy
Oct 29, 2025
55c140a
Major refactor of pileup to allow more code to be reusable in prep fo…
Nov 21, 2025
9f394cf
first try at peak calling all in rust, fdr table done but needs testi…
Oct 29, 2025
ff7f2b1
first try at peak calling all in rust, fdr table done but needs testi…
Oct 29, 2025
dbdcc90
clippy
Oct 29, 2025
247dd8d
Major refactor of pileup to allow more code to be reusable in prep fo…
Nov 21, 2025
112afb7
Merge branch 'peak_calling' of https://github.com/fiberseq/fibertools…
Nov 21, 2025
414e10d
First peak calling works! Now I need to work on merging adjacent peak…
Nov 25, 2025
7ae3922
Finding the natural start and end of local maximum, I now need to do …
Nov 25, 2025
c5f681c
Merging is working I think
Nov 25, 2025
032d87c
Added calling by percent accessible and added most of the expected ou…
Nov 26, 2025
60aab5d
build fdr one chrom at a time
Nov 26, 2025
e0ebdac
build fdr one chrom at a time
Nov 26, 2025
5331299
build fdr one chrom at a time
Nov 26, 2025
9ea6806
multi fetch instead of collecting
Nov 26, 2025
d8d7d33
remove default filtering
Nov 26, 2025
365c17e
add a deafult frac fibers filter
Nov 27, 2025
55fceb0
better profiling options
Nov 27, 2025
0350adc
add a hidden benchmakr command to help me test the speed of the fiber…
Nov 27, 2025
e88b264
clean up logging in the new peak calling
Nov 27, 2025
099b8f4
feat: allow pileup to accept multiple regions or a bed file of regions
Dec 11, 2025
80e633f
fix: better error msg
Dec 18, 2025
4cc17c7
feat: add mock-fire subcommand and fix peak calling issues
Jan 12, 2026
a5717f6
Fix merged peak start and ends using all fire elements median positions
Jan 12, 2026
83b28c2
move a FIRE training snakemake into fibertools
Apr 16, 2026
02c872b
move a FIRE training snakemake into fibertools
Apr 16, 2026
c4ecc60
move a FIRE training snakemake into fibertools
Apr 16, 2026
0390a39
move a FIRE training snakemake into fibertools
Apr 16, 2026
5f8fdec
move a FIRE training snakemake into fibertools
Apr 16, 2026
f871ec3
move a FIRE training snakemake into fibertools
Apr 16, 2026
c1e5efa
move a FIRE training snakemake into fibertools
Apr 16, 2026
d4c81cb
move a FIRE training snakemake into fibertools
Apr 16, 2026
abb8858
move a FIRE training snakemake into fibertools
Apr 16, 2026
4a4ce3b
move a FIRE training snakemake into fibertools
Apr 16, 2026
2ddbfab
update
Apr 22, 2026
4b1c1c8
update
Apr 22, 2026
0039014
update
Apr 22, 2026
a794573
update
Apr 22, 2026
c2fa520
update
Apr 22, 2026
580f96c
update
Apr 22, 2026
7f2fa40
update
Apr 22, 2026
17e00cf
update
Apr 22, 2026
df37fad
update
Apr 22, 2026
75384c4
update
Apr 22, 2026
36980fc
update
Apr 22, 2026
fbbee6c
update
Apr 22, 2026
7704561
update
Apr 22, 2026
8323f3d
update
Apr 22, 2026
f955260
update
Apr 22, 2026
63f0866
update
Apr 22, 2026
6e4e0c8
update
Apr 22, 2026
ff9eb60
update
Apr 22, 2026
61b354c
update
Apr 22, 2026
b7b1c0c
update
Apr 22, 2026
d494c3b
update
Apr 22, 2026
91bfc0e
update
Apr 22, 2026
07d0d43
update
Apr 22, 2026
7a519da
update
Apr 22, 2026
bc3eccc
update
Apr 22, 2026
1910dc5
update
Apr 22, 2026
d7c9f41
update
Apr 22, 2026
6da85eb
update
Apr 22, 2026
df28544
update
Apr 22, 2026
637de22
update
Apr 22, 2026
a7fde23
update
Apr 22, 2026
20170f3
update
Apr 22, 2026
e3a196f
update
Apr 22, 2026
06f8b1d
update
Apr 22, 2026
1c29bef
update
Apr 22, 2026
d004bbe
Merge remote-tracking branch 'origin/main' into peak_calling
Apr 22, 2026
596be43
feat: FIRE fiber-level filters in ft pileup and ft call-peaks
Apr 23, 2026
844d0ea
refactor: make ft call-peaks filter flags opt-in like ft pileup
Apr 23, 2026
67aa5e7
refactor: hoist FIRE fiber-level filters onto global FiberFilters
Apr 23, 2026
65e8e07
fix: keep fa:Z extras paired through reverse-strand sort with shared …
Apr 23, 2026
afc0e74
style: use in-scope ann_tag instead of re-unwrapping annotation_tag
Apr 23, 2026
750c680
build: speed up dev compile loop with thin-LTO and test opt-level 0
Apr 24, 2026
83a1285
style: cargo fmt
Apr 24, 2026
682ee4c
chore: minor peak_calling cleanups
Apr 27, 2026
cb3ff57
build: optimize test deps so ML inference tests stay fast
Apr 27, 2026
162e0af
test: unit tests for call_peaks lookup_fdr, reciprocal_overlap, FDR b…
Apr 27, 2026
2047f8a
style: fix clippy never_loop in coordinate_lift_test
Apr 27, 2026
83d5eec
build: restore opt-level=2 for test profile
Apr 27, 2026
1621d44
fix: gate empty-m6a rejection on resolved_skip_no_m6a in passes_fire_…
Apr 27, 2026
f518a72
chore: bump version to 0.9.0, switch git-details to short SHA, add un…
Apr 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ target/**
*.code-workspace
tmp*
temp*
# The `temp*` glob above matches `templates/` too; keep the Train-FIRE workflow templates dir tracked.
!Train-FIRE/workflow/templates/
!Train-FIRE/workflow/templates/**
dists/**
.vscode/
.test/small_unaligned_fiberseq.bam
Expand All @@ -24,4 +27,13 @@ py-ft/test.tbl
tests/data/shuffle.chr20.hifi.bed.gz
benchmarks/2025-07-08-new-torch-version/bin/
local-test-files/
pg-test-data/
pg-test-data/
.snakemake/
.claude/
results/*
Train-FIRE/results/*
Train-FIRE/pixi.toml
temp/**
scripts/*
pixi.lock
Train-FIRE/GM12878-fire-v0.1-filtered.cram.crai
29 changes: 29 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,35 @@

All notable changes to this project will be documented in this file.

## [Unreleased]

### 🚀 New subcommands

- **`ft call-peaks`**: peak caller for FIRE pileup BED output. Identifies enriched regions, applies optional FIRE fiber-level filters, and emits per-peak statistics.
- **`ft mock-fire`**: generate mock FIRE-style data for testing and benchmarking pipelines.
- **`ft benchmark`**: lightweight benchmarking harness for measuring throughput on key subcommands.

### 🔧 Improvements

- **`ft pileup`**: accepts multiple regions in a single invocation; default `--frac-fibers` filter applied to drop low-coverage windows.
- **FIRE fiber-level filters hoisted to global `FiberFilters`**: `--fire-filter`, `--min-msp`, `--min-ave-msp-size`, and `--skip-no-m6a` are now available as global flags shared by `ft fire`, `ft pileup`, and `ft call-peaks`. `--fire-filter` is a convenience preset; individual flags override its defaults.
- **Train-FIRE Snakemake pipeline** added under `Train-FIRE/` for end-to-end FIRE model training.
- Build/dev-loop improvements: thin-LTO and a dedicated test profile for faster iteration.

### 🐛 Bug fixes

- **fa:Z extras pairing on reverse-strand reads with overlapping/shared-start peaks (follow-up to #103)**: when multiple BED annotations share a query start position on a reverse-strand read, the post-hoc `ann_vals.reverse()` step in `FiberAnnotations::from_bam_tags` did not produce a permutation equivalent to the stable sort over flipped coordinates, scrambling the fa:Z extras (e.g. peak names/lengths) relative to their fs/fl annotations on extraction. Fix pre-pairs extras with annotations before the flip+sort so the permutation is consistent. BAM encodings were always correct; the bug only affected extraction. Affects v0.8.0–v0.8.2.

### 🧪 Tests

- `tests/call_peaks_test.rs`: end-to-end coverage of the new peak caller.
- `tests/fibertig_test.rs`: regression test for the fa:Z reverse-strand shared-start pairing bug, using Anna Minkina's exact failing input.
- Unit tests in `src/utils/input_bam.rs` covering `passes_fire_filter` semantics: skip-no-m6a behavior, min-msp, min-ave-msp-size, the `--fire-filter` combo, and explicit-flag overrides.

### ⚡ Performance

- Per-record FIRE feature extraction in `ft fire -f` is now parallelized (#104).

### [0.8.2]

#### Bug Fixes
Expand Down
Loading
Loading