#!/usr/bin/env bash
#SBATCH -A {{ project }}
#SBATCH -p {{ cluster }}
#SBATCH -J {{ job_name }} 
#SBATCH -N {{ job_nodes}}
#SBATCH -n {{ cpu_cores }}
#SBATCH -t {{ estimated_time }}
#SBATCH -o logs/output.%A_%a.stdout
#SBATCH -e logs/output.%A_%a.stderr
#SBATCH --mail-type=END
#SBATCH --mail-user={{ email }}

source $SLURM_SUBMIT_DIR/bin/loadmodules.sh

NODE_PATH={{ node_path }}
REF_PATH={{ ref_path }}
DATA_PATH={{ data_path }}
OUTPUT_PATH={{ output_path }}
DORIC_PATH={{ doric_path }}

MAPPER={{ mapper }}
REF_NAME={{ ref_name }}
START_IND={{ start_ind }}
SAMPLES_PER_NODE={{ samples_per_node }}
CPU_CORES={{ cpu_cores }}
JOB_RANGE={{ job_range }}

DATA_PREFIX={{ data_prefix }}

mkdir $NODE_PATH/Data
mkdir $NODE_PATH/Analysis
mkdir $NODE_PATH/References
mkdir $NODE_PATH/References/Index
mkdir $NODE_PATH/References/Headers
mkdir $NODE_PATH/DoriC
mkdir -p $OUTPUT_PATH

IND=$[$START_IND+$SLURM_ARRAY_TASK_ID*$SAMPLES_PER_NODE]
NRSAMPLES=$[$(find $DATA_PATH -type f | wc -l)-(2*$IND+2*$SAMPLES_PER_NODE)]
NRSAMPLES=$(($NRSAMPLES<0?$[(2*$SAMPLES_PER_NODE+$NRSAMPLES)/2]:$SAMPLES_PER_NODE))

files=($(find $DATA_PATH -type f | sort | head -$[2*$IND+2*$SAMPLES_PER_NODE] | tail -$[2*$NRSAMPLES]))

parallel cp {} $NODE_PATH/Data ::: "${files[@]}"

pdcp -r $REF_PATH/Headers $NODE_PATH/References
pdcp -r $REF_PATH/Index $NODE_PATH/References
pdcp $REF_PATH/taxIDs.txt $NODE_PATH/References

pdcp $DORIC_PATH/bacteria_record.dat $NODE_PATH/DoriC

$SLURM_SUBMIT_DIR/bin/mainBuild{{ mapper }}.sh $SLURM_SUBMIT_DIR $REF_NAME $CPU_CORES $NODE_PATH $OUTPUT_PATH

rpdcp -r $NODE_PATH/Data $OUTPUT_PATH


# End script
