Extends feature calling to all barcodes in the matrix, not just the filtered list.
- Trains on filtered barcodes (high quality)
- Applies learned model to all barcodes passing quality filters
- Rescues additional cells that would otherwise be excluded
# Basic usage
call_features \
--mtx-dir /path/to/matrix \
--cell-list filtered.tsv \
--out-prefix results/rescue \
--apply-all \
[other flags as normal]✅ Production Ready
- Regression tested and validated
- Filtered barcodes: identical assignments
- Memory/runtime overhead acceptable
- All three modes supported
- Backward compatible: No impact when flag not used
- Conservative: Same quality filters (
M_min) apply to all - Simple output: All results in same files (filtered + unfiltered)
- Tested: Comprehensive regression test suite included
| Mode | Implementation | Status |
|---|---|---|
| simple-assign | Applies min_count/min_ratio | ✅ Fully validated |
| FLEX | Full binomial test + decision rules | ✅ Production ready |
| EM | Stored fit parameters + heuristic | ✅ Validated* |
*EM uses calibrated heuristic approximation; recommend monitoring on production data
- Memory: +200-500 MB for 1.6M barcode matrices
- Runtime: +10-30% (depends on unfiltered barcodes passing M_min)
- Scales linearly with matrix size
- User guide:
../README.mdsection 2.5 - Technical details:
Technical.mdsection 7 - Testing results:
TESTING_COMPLETE.md - Change log:
../CHANGELOG.md
Run regression tests:
cd /mnt/pikachu/call_features
./scripts/test_apply_all_regression.shExpected: All tests pass ✅
call_features --mtx-dir matrix/ --cell-list filtered.tsv \
--out-prefix rescue/ --apply-all \
--simple-assign --min-count 3 --min-ratio 2.0call_features --mtx-dir matrix/ --cell-list filtered.tsv \
--out-prefix rescue/ --apply-all \
--tau 0.8 --delta 0.4 --gamma 0.9call_features --mtx-dir matrix/ --cell-list filtered.tsv \
--out-prefix rescue/ --apply-all \
--use-em --k-min 4 --tau-pos 0.95After deployment:
- Compare QC stats baseline vs --apply_all
- Check rescued barcode quality (UMI distributions)
- Verify memory usage within expectations
- Monitor doublet rates in rescued population
- Implementation:
../src/call_features.clines ~703-1511 - Tests:
../scripts/test_apply_all_regression.sh - Issues: Check
TESTING_COMPLETE.mdfor known limitations