#!/bin/bash

set -eu

## wget http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/bedGraphToBigWig

## wget https://hgdownload.soe.ucsc.edu/goldenPath/mm10/liftOver/mm10ToMm9.over.chain.gz
## wget http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/liftOver
## gunzip mm10ToMm9.over.chain.gz

# sh ./fetchChromSizes mm9 > mm9
# grep -vE "random|chrM|JH|GL" mm9 | sort -k1,1 > mm9.1

## ## this is only required if we would like to make bigwig files for mm10
# wget http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/fetchChromSizes
# sh ./fetchChromSizes mm10 > mm10
# grep -vE "JH|GL|chrM" mm10 > mm10.1

## ## for this specific files I know what samples are.
## G193M1..4 -- 1..4
## G190M2..4 -- 5..7
module load bedtools

for sample in $(seq 3 7); do

    echo "processing $sample"
    ## drop contigs and chrM, decompose by samples
    rg "\-$sample" -z G190G193_normalized_atac_fragments.tsv.gz > tmpfile
    rg -v "JH|GL|chrM|random" tmpfile > sample_"$sample"
    rm tmpfile
    echo "end decomposition: $(date)"

    ## convert chr1 100 200 2 ->
    ##         chr1 100 200
    ##         chr1 100 200
    ./unfold.py sample_"$sample" >sample_"$sample".bed
    echo "end unfolding: $(date)"

    ## convert mm10 to mm9 coordinates
    ./liftOver sample_"$sample".bed mm10ToMm9.over.chain sample_"$sample".mm9.bed unMapped_"$sample"
    echo "end liftOver: $(date)"

    ## lift add random chromosomomes to liftover file, we need to remove them
    rg -v "JH|GL|chrM|random|chrUn" sample_"$sample".mm9.bed > tmpfile
    mv tmpfile sample_"$sample".mm9.bed

    ## sort mm9 bed file
    LC_ALL=C sort -k1,1 -k2,2n sample_"$sample".mm9.bed >sample_"$sample".mm9.sorted.bed
    echo "end of sorting"

    # rg -v "random" sample_"$sample".mm9.sorted.bed > tmpfile
    # mv tmpfile sample_"$sample".mm9.sorted.bed

    ## convert bed to bedgraph
    time bedtools genomecov -i sample_"$sample".mm9.sorted.bed -g mm9.1 -bg >sample_"$sample".mm9.bg
    echo "end genomecov: $(date)"

    ## convert bedgraph to bigwig
    time ./bedGraphToBigWig sample_"$sample".mm9.bg mm9.1 sample_"$sample".mm9.bw
    echo "end bedGraphToBigWig: $(date)"

    rm *.bg sample_*.bed sample_"$sample"

done
