#!/usr/bin/env bash
set -euo pipefail

indir="/BLUES/eric/ONT/MAPQ_bam"
ref="/home/Resource/Genome/hg38/hg38.fa"
modkit="$(command -v modkit)"

cd "$indir"

declare -A bams=(
  [ONT_Naive]="091724_Naive_W3MECPC2_aln.sorted.MAPQ10.primary.bam"
  [ONT_Primed]="Primed_W3MECP2_aln.sorted.MAPQ10.primary.bam"
  [ONT_TSC]="TSC_GFP_W3MECP2_merged_aln.sorted.MAPQ10.primary.bam"
)

for sample in "${!bams[@]}"; do
  bam="${bams[$sample]}"
  out="${sample}.MAPQ10.primary.5mC_CpG_combined.bed"
  log="log_${sample}.MAPQ10.primary.5mC_CpG_combined.modkit.txt"

  echo "Running modkit for $sample"
  echo "  modkit: $modkit"
  echo "  input:  $bam"
  echo "  output: $out"

  "$modkit" pileup \
    "$bam" \
    "$out" \
    --reference "$ref" \
    --modified-bases 5mC \
    --cpg \
    --combine-strands \
    --threads 32 \
    --log-filepath "$log"

  bgzip -f "$out"
  tabix -f -p bed "$out.gz"
done

echo "Done. Outputs:"
ls -lh *.MAPQ10.primary.5mC_CpG_combined.bed.gz *.MAPQ10.primary.5mC_CpG_combined.bed.gz.tbi
