#!/bin/bash # ----------------------------------------------------------------------------- # init # ----------------------------------------------------------------------------- pipeline_date=$(date +%F-%H-%M-%S) script_dir=$(dirname "$0") # ----------------------------------------------------------------------------- # command line arguments # ----------------------------------------------------------------------------- function usage { cat << EOF usage: bash $(basename "$0") chunk_dir [output] EOF } [[ $# -eq 1 ]] || { usage >&2 exit 1 } chunk_dir=$1 [[ -d $chunk_dir ]] || { echo "chunk directory does not exist or is not a directory" >&2 exit 1 } csv_dir=/work/$USER/zamba/csvs-$pipeline_date csv_chunk_dir=$csv_dir/chunks if [[ -n $2 ]] ; then output=$2 else output="$csv_dir/output-$pipeline_date.csv" fi # ----------------------------------------------------------------------------- # submission # ----------------------------------------------------------------------------- # create output directories mkdir -p "/work/$USER/zamba/logs" n_chunks=$(find "$chunk_dir" -mindepth 1 -maxdepth 1 -type d | wc -l) # submit prediction array_job_id=$( qsub \ -terse \ -v OUTPUT_DIR="$csv_chunk_dir" \ -t 1-"$n_chunks" \ "$script_dir"/submit-zamba-array-job.sh \ "$chunk_dir" ) # submit csv combiner qsub \ -hold_jid "${array_job_id%%.*}" \ "$script_dir"/submit-csv-combiner.sh \ "$csv_chunk_dir" \ "$output"