#!/usr/bin/env bash

set -e

CIS_X_HOME=$(realpath $(dirname $0)/../../..)
CIS_X_CORE_HOME=$(realpath $(dirname $0)/..)
PATH=$CIS_X_CORE_HOME/bin:$PATH

SAMPLE_ID=$1
ROOTDIR=$2
HIGH20=$3
CNV_LOH=$4
RNABAM=$5
FPKM_MATRIX=$6
SNVINDEL_IN=$7
SV_IN=$8
CNA_IN=$9
DISEASE=${10}

if [ $# -lt 10 ]; then
    basename $0
    echo
    echo "USAGE:"
    echo "    cis-X run <sample-id> <results-dir> <markers> <cnv-loh> <bam> <fpkm-matrix> <snv-indel> <sv> <cna> <disease>"
    echo
    echo "ARGS:"
    echo "    <sample-id>    Sample ID"
    echo "    <results-dir>  Output directory"
    echo "    <markers>      Path to single nucleotide markers"
    echo "    <cnv-loh>      Path to CNV/LOH regions"
    echo "    <bam>          Path to a RNA-Seq BAM (index must be in same directory)"
    echo "    <fpkm-matrix>  Path to gene expression table"
    echo "    <snv-indel>    Path to somatic SNV/indels"
    echo "    <sv>           Path to somatic SVs"
    echo "    <cna>          Path to somatic CNVs"
    echo "    <disease>      Disease name"
    exit 1
fi

echo "INFO: $(date): cis-X-run: start"

WORKDIR=$ROOTDIR/$SAMPLE_ID/working_space
mkdir -p $WORKDIR
cd $WORKDIR

SNV4_OUT="$WORKDIR/$SAMPLE_ID.snv4.txt"
HET_OUT="$WORKDIR/$SAMPLE_ID.heterozygous.markers.txt"

echo "INFO: $(date): cis-X-run: getting markers"
cis-X-mark $SAMPLE_ID $HIGH20 $CNV_LOH $SNV4_OUT $HET_OUT

echo "INFO: $(date): cis-X-run: building matrices"
MATRIX_OUT="$WORKDIR/matrix_combined_matrix_simple.tab"
cis-X-build-matrix $RNABAM $SNV4_OUT $WORKDIR $MATRIX_OUT

echo "INFO: $(date): cis-X-run: running allelic specific expression tests"
ASE_RESULT_MARKER="$WORKDIR/$SAMPLE_ID.ase.combine.WGS.RNAseq.goodmarkers.binom.txt"
ASE_RESULT_GENE="$WORKDIR/$SAMPLE_ID.ase.gene.model.fdr.txt"
cis-X-ase $SAMPLE_ID $WORKDIR $HET_OUT $MATRIX_OUT $ASE_RESULT_MARKER $ASE_RESULT_GENE

echo "INFO: $(date): cis-X-run: running outlier high expression tests"
OHE_RESULT="$WORKDIR/$SAMPLE_ID.OHE.results.txt"
cis-X-test-outliers $SAMPLE_ID $DISEASE $FPKM_MATRIX $OHE_RESULT

echo "INFO: $(date): cis-X-run: nominating candidates"
CANDIDATES_RESULT="$WORKDIR/$SAMPLE_ID.cisActivated.candidates.txt"
cis-X-nominate $SAMPLE_ID $ASE_RESULT_GENE $OHE_RESULT $CANDIDATES_RESULT

echo "INFO: $(date): cis-X-run: screening candidates"
SV_CAN="$SAMPLE_ID.sv.candidates.txt"
CNA_CAN="$SAMPLE_ID.cna.candidates.txt"
SNVINDEL_CAN="$SAMPLE_ID.snvindel.candidates.txt"
cis-X-screen $SAMPLE_ID $CANDIDATES_RESULT $SV_IN $CNA_IN $SNVINDEL_IN $FPKM_MATRIX $WORKDIR $SV_CAN $CNA_CAN $SNVINDEL_CAN

RESDIR="$ROOTDIR/$SAMPLE_ID"

cp $ASE_RESULT_GENE $RESDIR
cp $ASE_RESULT_MARKER $RESDIR
cp $OHE_RESULT $RESDIR
cp $CANDIDATES_RESULT $RESDIR
cp $SNVINDEL_CAN $RESDIR
cp $CNA_CAN $RESDIR
cp $SV_CAN $RESDIR

echo "INFO: $(date): cis-X-run: done"
