#!/bin/bash

#SBATCH --nodes=1
#SBATCH --ntasks-per-node=32
#SBATCH --mem=32GB
#SBATCH --time=24:00:00
#SBATCH --output=slurm-Bowtie2-%j.log


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/20240926_019



# MM0213; 
genome=/scratch/p127804/PROJECTS/Douwe/genomes/MM0160/MM0160
bowtie2-build $genome.fna $genome
resultsdir=/scratch/p127804/PROJECTS/Douwe/Bifidobacterium_202409_019/results_MM0160
my_mkdir $resultsdir

# my_bowtie_SE DS019_01 DS019_01_S32_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_02 DS019_02_S33_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_03 DS019_03_S34_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_04 DS019_04_S35_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_05 DS019_05_S36_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_06 DS019_06_S37_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_07 DS019_07_S38_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_08 DS019_08_S39_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_09 DS019_09_S40_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_10 DS019_10_S41_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_11 DS019_11_S42_L001_R1_001.fastq.gz
# my_bowtie_SE DS019_12 DS019_12_S43_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
# # 


# MM0160
genome=/scratch/p127804/PROJECTS/Douwe/genomes/MM0213/MM0213
bowtie2-build $genome.fna $genome
resultsdir=/scratch/p127804/PROJECTS/Douwe/Bifidobacterium_202409_019/results_MM0213
my_mkdir $resultsdir

my_bowtie_SE DS019_13 DS019_13_S44_L001_R1_001.fastq.gz
my_bowtie_SE DS019_14 DS019_14_S45_L001_R1_001.fastq.gz
my_bowtie_SE DS019_15 DS019_15_S46_L001_R1_001.fastq.gz
my_bowtie_SE DS019_16 DS019_16_S47_L001_R1_001.fastq.gz
my_bowtie_SE DS019_17 DS019_17_S48_L001_R1_001.fastq.gz
my_bowtie_SE DS019_18 DS019_18_S49_L001_R1_001.fastq.gz
my_bowtie_SE DS019_19 DS019_19_S50_L001_R1_001.fastq.gz
my_bowtie_SE DS019_20 DS019_20_S51_L001_R1_001.fastq.gz
my_bowtie_SE DS019_21 DS019_21_S52_L001_R1_001.fastq.gz
my_bowtie_SE DS019_22 DS019_22_S53_L001_R1_001.fastq.gz
my_bowtie_SE DS019_23 DS019_23_S54_L001_R1_001.fastq.gz
my_bowtie_SE DS019_24 DS019_24_S55_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
# 

