#!/bin/bash

#SBATCH --nodes=1
#SBATCH --ntasks-per-node=32
#SBATCH --mem=32GB
#SBATCH --time=24:00:00

module load Bowtie2/2.4.5-GCC-11.3.0
module load SAMtools/1.17-GCC-12.2.0
module load Biopython/1.81-foss-2022b

# Global parameters needed for this script
# setting global parameters
cpu=$SLURM_JOB_CPUS_PER_NODE
SOFTWAREDIR=/scratch/public/genomes/AnneTools




# =============================================================================================================================================================
# ==                                                          Functions                                                                                      ==
# =============================================================================================================================================================
function my_bowtie_SE {  # Map the reads (from the fastq file) to the reference genome ( .fna ) this will generate a SAM file (Sequence Alignment Map)
	name=$1
	forward=$2
	printf "\n\n========= Bowtie2 SE: "$name" =================================\n" >> $resultsdir/02.$name.bowtie2.log
	(bowtie2 --local -U $datadir/$forward -p $cpu -S $resultsdir/$name.sam -x $genome) 2>>$resultsdir/02.$name.bowtie2.log 
	SAM_2_BAM $name
}


function SAM_2_BAM {  # convert SAM to sorted BAM (binairy SAM) and remove unmapped reads with option -F 4
	name=$1
	printf "\n========== Convert "$name" ======================================\n"	
	samtools view -S -b -F 4 -o $resultsdir/$name.bam $resultsdir/$name.sam
	samtools sort -@ $cpu $resultsdir/$name.bam > $resultsdir/$name.sorted.bam
	samtools index $resultsdir/$name.sorted.bam
	rm $resultsdir/$name.sam  # save space by removing the SAM file 
	rm $resultsdir/$name.bam  # save space by removing the non sorted BAM file                                                                          # 3) save space by removing the SAM file 
}

function my_mkdir {
	if [ ! -d $1 ]; then
		mkdir $1 ;
	fi
}


datadir=/scratch/hb-molgen/NGSdata/20240723_018


genome=/scratch/p127804/PROJECTS/Douwe/genomes/EB75/Bifidobacterium_EB75
bowtie2-build $genome.fna $genome
resultsdir=/scratch/p127804/PROJECTS/Douwe/Bifidobacterium_EB75_202408_018/results_EB75
my_mkdir $resultsdir

my_bowtie_SE DS018_01_M1 DS018_01_M1_S9_L001_R1_001.fastq.gz
my_bowtie_SE DS018_02_D1 DS018_02_D1_S10_L001_R1_001.fastq.gz
my_bowtie_SE DS018_03_B1 DS018_03_B1_S11_L001_R1_001.fastq.gz
my_bowtie_SE DS018_05_M3 DS018_05_M3_S13_L001_R1_001.fastq.gz
my_bowtie_SE DS018_06_D3 DS018_06_D3_S14_L001_R1_001.fastq.gz
my_bowtie_SE DS018_07_B3 DS018_07_B3_S15_L001_R1_001.fastq.gz
my_bowtie_SE DS018_08_P3 DS018_08_P3_S16_L001_R1_001.fastq.gz
my_bowtie_SE DS018_09_M4 DS018_09_M4_S17_L001_R1_001.fastq.gz
my_bowtie_SE DS018_10_D4 DS018_10_D4_S18_L001_R1_001.fastq.gz
my_bowtie_SE DS018_11_B4 DS018_11_B4_S19_L001_R1_001.fastq.gz
my_bowtie_SE DS018_12_P4 DS018_12_P4_S20_L001_R1_001.fastq.gz
my_bowtie_SE DS018_13_M5 DS018_13_M5_S21_L001_R1_001.fastq.gz
my_bowtie_SE DS018_14_D5 DS018_14_D5_S22_L001_R1_001.fastq.gz
my_bowtie_SE DS018_15_B5 DS018_15_B5_S23_L001_R1_001.fastq.gz
my_bowtie_SE DS018_16_P5 DS018_16_P5_S24_L001_R1_001.fastq.gz
my_bowtie_SE DS018_17_M6 DS018_17_M6_S25_L001_R1_001.fastq.gz
my_bowtie_SE DS018_18_D6 DS018_18_D6_S26_L001_R1_001.fastq.gz
my_bowtie_SE DS018_19_B6 DS018_19_B6_S27_L001_R1_001.fastq.gz
my_bowtie_SE DS018_20_P6 DS018_20_P6_S28_L001_R1_001.fastq.gz
my_bowtie_SE DS018_21_M7 DS018_21_M7_S29_L001_R1_001.fastq.gz
my_bowtie_SE DS018_22_D7 DS018_22_D7_S30_L001_R1_001.fastq.gz
my_bowtie_SE DS018_23_B7 DS018_23_B7_S31_L001_R1_001.fastq.gz
my_bowtie_SE DS018_24_P7 DS018_24_P7_S32_L001_R1_001.fastq.gz



# # Make a report summary
cat $resultsdir/02.*.bowtie2.log > $resultsdir/02.bowtie2_all.log
python3 $SOFTWAREDIR/Bowtie2LogTable.py -query $resultsdir/02.bowtie2_all.log > $resultsdir/02.bowtie2_all.log.table
# 

