🎉 ModTector v0.15.4 - Major Update Release
We are excited to announce ModTector v0.15.4, a significant update with major feature additions, critical bug fixes, and performance improvements since v0.9.6!
🚀 Release Highlights
This release includes 6 major version updates (0.10.0 - 0.15.4) with substantial improvements:
✅ New Workflows: batch processing, single-cell support
⚡ Performance: Base quality filtering, distribution-based k-factor prediction
🔧 Format Support: Extended input format compatibility (7+ formats)
🐛 Critical Fixes: SVG metadata extraction, Siegfried method improvements
🎨 UI Enhancements: Interactive SVG with right-click menus, minimap navigation
📊 Accuracy: Improved evaluation metrics and normalization methods
🌟 Major New Features
Batch & Single-Cell Processing (v0.11.0)
- Batch processing mode with glob pattern matching
- Single-cell unified processing with automatic cell label extraction
- Window-based memory management for large datasets
- 2-3x performance improvement for single-cell data
Extended Format Support (v0.12.0, v0.12.3)
- Native
convertcommand with 7+ input formats:- RNA Framework formats (rf-rctools, rf-norm, rf-norm-xml)
- ShapeMapper2 profile format
- Samtools mpileup format
- icSHAPE RT format (v0.14.7)
- Bedgraph format (v0.14.8)
- Automatic format detection with streaming processing
- Dual input mode for mutation + stop signal files
Base Quality Filtering (v0.14.0)
- Per-base quality filtering in
modtector countcommand - Quality-based effective depth calculation
- Recommended threshold: 20 (same as RNAFramework)
- ~15% low-quality mutation filtering for improved signal-to-noise ratio
Distribution-Based K-Factor Prediction (v0.13.0)
- Advanced k-factor prediction using statistical distribution analysis
- Hierarchical loss function based on feature position
- Automatic fallback to background method
- Significantly improved accuracy, especially for 2A3 samples
Mod-Only Reactivity Workflow (v0.9.7)
- Support for smartSHAPE datasets without unmodified controls
- Clear command-line messaging for mod-only mode
🐛 Critical Bug Fixes
SVG Metadata Extraction (v0.15.4) ⚠️ Critical
- Fixed base mismatch errors in SVG metadata extraction
- Replaced context window method with individual circle tag parsing
- Eliminates cross-contamination between adjacent circles
- Ensures
RNA_METADATAcorrectly matches circledata-baseattributes
Siegfried Method Improvements (v0.12.2, v0.12.5, v0.14.10)
- Negative values support: Removed forced zero-clamping, allowing negative reactivity values
- Zarringhalam remap fix: Proper handling of negative input values
- Integrated alignment: "align min to 0" logic integrated into
zarringhalam_remap - Zero value percentage reduced from 54.8% to ~0.4%
Evaluation Metrics (v0.12.4)
- Fixed incorrect sensitivity/specificity calculation
- Now uses optimal threshold (highest F1-score) instead of fixed
value > 0.0 - Correctly handles methods where all reactivity values are positive
Stop Signal Position Correction (v0.11.1)
- Fixed strand-specific position correction for reverse-strand reads
- Forward strand:
start_position - 1 - Reverse strand:
start_position + 1
U/T Base Handling (v0.11.3)
- Fixed
chartonum()function to handle 'U' (uracil) in RNA sequences - Treats U and T as equivalent, fixing 100% mutation rate issues
🎨 User Interface Improvements
Interactive SVG Enhancements (v0.14.8, v0.14.9)
- Right-click context menu for style editing:
- Font size and color adjustment
- Circle radius and color modification
- Base-specific style reset
- Minimap navigation:
- Draggable viewport for real-time navigation
- Auto-hide with activity-based timer (3 seconds after idle)
- Legend positioning: Moved to bottom-right to avoid obscuring RNA structure
- Loading experience: Improved loading message with SVG filename display
Reactivity Distribution Preview (v0.11.4)
- Histogram-like visualization above cutoff sliders
- Color-coded regions based on threshold positions
- Supports individual base and unified color range modes
📊 Accuracy & Performance Improvements
Normalization Enhancements
- Quality-based effective depth (v0.14.4): Counts only bases with quality >= threshold
- PCR bias correction (v0.14.4): Chi-Square distribution-based correction (optional)
- Zarringhalam remap (v0.14.10): Integrated "align min to 0" logic for better preservation of mod/unmod differences
Evaluation Improvements
- NaN handling (v0.12.1): Proper NaN value handling in sorting and calculations
- Optimal threshold selection (v0.12.4): Uses F1-score optimization for all metrics
- SNP filtering (v0.11.3):
--snp-cutoffparameter to filter high mutation rate positions
🔧 Technical Improvements
Code Quality
- Streaming processing for large files (tested up to 35GB)
- Enhanced error handling with limited warnings strategy
- Progress reporting for long-running operations
Workflow Integration
- Updated Snakefile rules for new features
- Better integration with RNA Framework, ShapeMapper2, samtools
- Reduced external script dependencies
📦 Installation
Installation methods remain the same as v0.9.6:
# Quick Install (Recommended)
cargo install modtector
# From Source
git clone https://github.com/TongZhou2017/modtector.git
cd modtector
cargo build --release🚀 Quick Start Examples
New: Batch Processing
modtector count \
--batch \
-b "samples/*.bam" \
-f reference.fa \
-o output_dir/ \
-t 16New: Format Conversion
# Convert RNA Framework output
modtector convert \
-i input.rf \
-o output.csv \
-f rf-rctools \
--rf-count-mutations
# Convert ShapeMapper2 profile
modtector convert \
-i profile.txt \
-o output.csv \
-f shapemapper-profile \
--ref-fasta reference.faEnhanced: Quality Filtering
modtector count \
-b sample.bam \
-f reference.fa \
-o output.csv \
--min-base-qual 20 \
-t 8📚 Documentation
- 📖 ReadTheDocs - Complete user guide
- 🚀 Quick Start Guide
- 💻 Command Reference
- 📝 Examples
🔄 Migration Notes
Breaking Changes
- None - All changes are backward compatible
Recommended Updates
- Update Snakefile rules to use new
modtector convertcommand instead of Python scripts - Enable
--min-base-qual 20for improved signal quality - Use
--k-prediction-method distributionfor better k-factor prediction (especially 2A3 samples)
📈 Performance Metrics
- Single-cell processing: 2-3x speedup over batch mode
- Format conversion: ~1-2 million lines/second
- Memory usage: O(1) constant for streaming operations
- Quality filtering: ~0.9% overhead, ~15% noise reduction
🤝 Contributing
We welcome contributions! Please feel free to:
- 🐛 Report bugs and issues
- 💡 Suggest new features
- 📝 Improve documentation
- 🔧 Submit pull requests
📄 License
ModTector is licensed under the MIT License.
📞 Support
- GitHub Issues: https://github.com/TongZhou2017/modtector/issues
- Documentation: https://modtector.readthedocs.io/
- Repository: https://github.com/TongZhou2017/modtector
🙏 Acknowledgments
Thanks to all users who reported issues and provided feedback, especially for the SVG metadata extraction bug fixes and format conversion feature requests!
Full Changelog: https://github.com/TongZhou2017/modtector/blob/main/CHANGELOG.md
Download: See assets below for source code archives
Verify Release: SHA256 checksums available in SHA256SUMS file