- flag C>T/G>A at read ends (end<=10) as FFPE-suspect, strand bias as supporting evidence
- outputs: candidate_variants.tsv [is_ffpe_suspect,ffpe_reason], clean_variants.tsv,
ffpe_suspect_variants.tsv, candidate_CtoT/GtoA_clean.bed
- optional --vcf: produce .clean.vcf (without damaged) and .ffpe_flagged.vcf;
with --keep-damaged mark FILTER=FFPE instead of removing
- auto-create BAM/FASTA index if missing, improved error messages
- ffpe_damage_v2.py: normalized C>T/G>A profiling (all 12 substitutions,
R1/R2 and strand profiles, 5'/3' read-end distance, BED tracks, plots)
- ffpe_compare.py: low/moderate/high classification vs control samples
- make_test_data.py: synthetic BAM with known damage for validation