#!/bin/bash -Ceuo pipefail
# Detect input type and set up appropriate pipeline
# CRAM requires samtools conversion first; BAM can be read directly by sambamba
if [[ "NA12878_c_0002_gDNA_0004_B23KGCJLT4_1.recalibrated.bam" == *.cram ]]; then
INPUT_CMD="samtools view -h -b --reference Homo_sapiens_assembly38.fasta NA12878_c_0002_gDNA_0004_B23KGCJLT4_1.recalibrated.bam"
else
INPUT_CMD="cat NA12878_c_0002_gDNA_0004_B23KGCJLT4_1.recalibrated.bam"
fi
# Filter reads, sort by name, convert to FASTQ (all piped for efficiency)
eval $INPUT_CMD | \
sambamba view \
-f bam -h \
-t 2 \
-F "unmapped or mate_is_unmapped or (ref_name == 'chr6' and position > 29844528 and position < 33100696) or ref_name =~ /^HLA|chr6.*alt/" \
/dev/stdin | \
sambamba sort \
-n \
-t 2 \
-o /dev/stdout \
/dev/stdin | \
samtools fastq \
-@ 2 \
-1 germline_control_4_R1.fq.gz \
-2 germline_control_4_R2.fq.gz \
-0 /dev/null \
-s /dev/null \
-
cat <<-END_VERSIONS > versions.yml
"DAQ:CONTROL_VARIANT_CALLING:CONTROL_GERMLINE_VC:CRAM_HLATYPING_ALL:CRAM_FILTER_HLA":
sambamba: $(sambamba --version 2>&1 | head -1 | awk '{print $2}')
samtools: $(samtools --version | head -1 | awk '{print $2}')
END_VERSIONS