| 
0
 | 
     1 #/bin/bash
 | 
| 
 | 
     2 # Galaxy wrapper script for rDiff version 0.3
 | 
| 
 | 
     3 # Copyright (C) 2013 cBio Department Memorial Sloan-Kettering Cancer Center
 | 
| 
 | 
     4 
 | 
| 
 | 
     5 #Licence Information: GPL
 | 
| 
 | 
     6 #This program is free software; you can redistribute it and/or modify 
 | 
| 
 | 
     7 #it under the terms of the GNU General Public License as published by 
 | 
| 
 | 
     8 #the Free Software Foundation; either version 3 of the License, or 
 | 
| 
 | 
     9 #(at your option) any later version
 | 
| 
 | 
    10 
 | 
| 
 | 
    11 set -e 
 | 
| 
 | 
    12 
 | 
| 
 | 
    13 PROG=`basename $0`
 | 
| 
 | 
    14 DIR=`dirname $0`
 | 
| 
 | 
    15 . ${DIR}/../bin/rdiff_config.sh
 | 
| 
 | 
    16 
 | 
| 
 | 
    17 echo
 | 
| 
 | 
    18 echo ${PROG}: This program is part of the rDiff version $RDIFF_VERSION.
 | 
| 
 | 
    19 echo
 | 
| 
 | 
    20 echo rDiff performs differential expression testing from RNA-Seq measurements.
 | 
| 
 | 
    21 echo 
 | 
| 
 | 
    22 
 | 
| 
 | 
    23 if [ -z "$1" -o "$1" == '--help' ];
 | 
| 
 | 
    24 then
 | 
| 
 | 
    25   echo Usage: $0 poisson\|param\|nonparam in.gff readLength out.resultfile out_result_dir S1_in.bam?:S2_in.bam?:   
 | 
| 
 | 
    26   echo "     :" $0 poisson\|param\|nonparam in.gff readLength out.resultfile out_result_dir S1_R1_in.bam?S1_R2_in.bam?:S2_R1_in.bam?S2_R2_in.bam?:   
 | 
| 
 | 
    27   echo "   or:" $0 --help
 | 
| 
 | 
    28   echo 
 | 
| 
 | 
    29   false
 | 
| 
 | 
    30 fi
 | 
| 
 | 
    31 
 | 
| 
 | 
    32 if [ "$1" != 'poisson' -a "$1" != 'param' -a "$1" != 'nonparam' ];
 | 
| 
 | 
    33 then
 | 
| 
 | 
    34   echo invalid parameter: $1
 | 
| 
 | 
    35   echo 
 | 
| 
 | 
    36   echo "For usage:" $0 --help
 | 
| 
 | 
    37   false
 | 
| 
 | 
    38 fi
 | 
| 
 | 
    39 
 | 
| 
 | 
    40 TEST_METH=$1 ## Test method 
 | 
| 
 | 
    41 shift
 | 
| 
 | 
    42 GFF_INPUT=$1 ## Genome annotation in GFF format 
 | 
| 
 | 
    43 shift
 | 
| 
 | 
    44 readlength=$1 ## Sequencing read length 
 | 
| 
 | 
    45 shift 
 | 
| 
 | 
    46 RDIFF_OUT=$1 ## rDiff result file
 | 
| 
 | 
    47 shift
 | 
| 
 | 
    48 RDIFF_OUT_PATH=$1 ## temp session working directory 
 | 
| 
 | 
    49 shift
 | 
| 
 | 
    50 
 | 
| 
 | 
    51 if [ -d $RDIFF_OUT_PATH ]
 | 
| 
 | 
    52 then       
 | 
| 
 | 
    53 	echo "Using the extra file path as : $RDIFF_OUT_PATH"
 | 
| 
 | 
    54 else
 | 
| 
 | 
    55 	mkdir -p ${RDIFF_OUT_PATH} ## create the temp working directory
 | 
| 
 | 
    56 fi 
 | 
| 
 | 
    57 
 | 
| 
 | 
    58 ## changing tool working directory to the session path
 | 
| 
 | 
    59 cd ${RDIFF_OUT_PATH}
 | 
| 
 | 
    60 
 | 
| 
 | 
    61 ## Seperating the files according to the sample and correspondinf replicates. 
 | 
| 
 | 
    62 SAMPLE_LIST=()
 | 
| 
 | 
    63 for SAMPLES in $@
 | 
| 
 | 
    64 do
 | 
| 
 | 
    65     IFS='?' 
 | 
| 
 | 
    66     for BAM_FILE in ${SAMPLES}
 | 
| 
 | 
    67     do
 | 
| 
 | 
    68         if [ $BAM_FILE = ":" ]; ## samples are seperated with ':'
 | 
| 
 | 
    69         then
 | 
| 
 | 
    70             SAMPLE_LIST+=(${SAMPLE_FNAME%?}) ## samples are separating 
 | 
| 
 | 
    71             SAMPLE_FNAME=""
 | 
| 
 | 
    72             continue
 | 
| 
 | 
    73         fi
 | 
| 
 | 
    74         if [ ! -f ${BAM_FILE}.bai ]
 | 
| 
 | 
    75         then
 | 
| 
 | 
    76             echo "Indexing $BAM_FILE"
 | 
| 
 | 
    77             ${RDIFF_SAMTOOLS_INCLUDE_DIR}/samtools index $BAM_FILE
 | 
| 
 | 
    78         else
 | 
| 
 | 
    79             echo "$BAM_FILE already indexed"
 | 
| 
 | 
    80         fi
 | 
| 
 | 
    81         La_fn=$BAM_FILE
 | 
| 
 | 
    82         SAMPLE_FNAME="$SAMPLE_FNAME$BAM_FILE," ## adding a ',' between each BAM files.
 | 
| 
 | 
    83     done
 | 
| 
 | 
    84 done
 | 
| 
 | 
    85 
 | 
| 
 | 
    86 ## rDiff execution call 
 | 
| 
 | 
    87 ${DIR}/../bin/rdiff -o ${RDIFF_OUT_PATH} -d / -g ${GFF_INPUT} -a ${SAMPLE_LIST[0]} -b ${SAMPLE_LIST[1]} -m ${TEST_METH} -L ${readlength}
 | 
| 
 | 
    88 
 | 
| 
 | 
    89 ## rdiff out file
 | 
| 
 | 
    90 ln -fs ${RDIFF_OUT_PATH}/P_values_rDiff_"${TEST_METH/param/parametric}".tab ${RDIFF_OUT}
 |