extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/grid/scripts/stringtie2023.sh

Code
Comments
Other
Rev Date Author Line
6820 29 Aug 22 nicklas 1 #!/bin/bash
6820 29 Aug 22 nicklas 2 ##
6820 29 Aug 22 nicklas 3 ## Pipeline script for the StringTie/2023 analysis. It requries an 'alignment.bam' file and
6820 29 Aug 22 nicklas 4 ## output results in a sub-directory.
6820 29 Aug 22 nicklas 5 ##
6820 29 Aug 22 nicklas 6 ## Environment variables that should be defined (in job.sh) before calling this script
6820 29 Aug 22 nicklas 7 ##  -BamFolder: Path to folder where alignment.bam is found (results will also be saved here)
6820 29 Aug 22 nicklas 8 ##  -BamName: Base part of alignment BAM file (eg. alignment)
6820 29 Aug 22 nicklas 9 ##  -StringTieFolder: Folder for output. Will be created or cleared from existing files
6820 29 Aug 22 nicklas 10 ##  -ExternalStringTieName: External name of the StringTie item that is being created
6820 29 Aug 22 nicklas 11 ##  -AvgReadLength: Average read length used in the sequencing
6820 29 Aug 22 nicklas 12 ##  -STRINGTIE: Path to StringTie program
6820 29 Aug 22 nicklas 13 ##  -PREPDE: Path to PrepDE program
6820 29 Aug 22 nicklas 14 ##  -GTF: Path to reference GTF file
6820 29 Aug 22 nicklas 15 ##  -StringTieOptions: Other options for the StringTie program
6820 29 Aug 22 nicklas 16 ##  -TMPDIR: Path to a local temporary working directory
6820 29 Aug 22 nicklas 17 ##
6820 29 Aug 22 nicklas 18
6820 29 Aug 22 nicklas 19 set -e
6820 29 Aug 22 nicklas 20
6820 29 Aug 22 nicklas 21 ## Import utility functions
6820 29 Aug 22 nicklas 22 source ./reggie-utils.sh
6820 29 Aug 22 nicklas 23
6820 29 Aug 22 nicklas 24 ## Verify settings in options
6820 29 Aug 22 nicklas 25 rg_var_isdir "BamFolder" "TMPDIR" "WD"
6820 29 Aug 22 nicklas 26 rg_var_isfile "STRINGTIE" "PREPDE" "GTF"
6820 29 Aug 22 nicklas 27 rg_var_isset "BamName" "ExternalStringTieName" "AvgReadLength" "StringTieFolder"
6820 29 Aug 22 nicklas 28 rg_file_exists "${BamFolder}/${BamName}.bam" "${BamFolder}/${BamName}.bai"
6820 29 Aug 22 nicklas 29
6820 29 Aug 22 nicklas 30 ## Move to the temporary working directory
6820 29 Aug 22 nicklas 31 cd ${TMPDIR}
6820 29 Aug 22 nicklas 32 mkdir -p bam
6820 29 Aug 22 nicklas 33 mkdir -p stringtie
6820 29 Aug 22 nicklas 34 mkdir -p done
6820 29 Aug 22 nicklas 35
6820 29 Aug 22 nicklas 36 ## Copy BAM file to local working directory
6820 29 Aug 22 nicklas 37 if [ ! -f "done/copy.done" ]; then
6820 29 Aug 22 nicklas 38   rg_progress 10 "Copying BAM file"
6820 29 Aug 22 nicklas 39   cp ${BamFolder}/${BamName}.bam bam/alignment.bam
6820 29 Aug 22 nicklas 40   cp ${BamFolder}/${BamName}.bai bam/alignment.bai
6820 29 Aug 22 nicklas 41   touch "done/copy.done"
6820 29 Aug 22 nicklas 42 fi
6820 29 Aug 22 nicklas 43
6820 29 Aug 22 nicklas 44 ## Run StringTie
6820 29 Aug 22 nicklas 45 if [ ! -f "done/stringtie.done" ]; then
6820 29 Aug 22 nicklas 46   rg_progress 20 "Running StringTie (${NumThreads} threads)"
6820 29 Aug 22 nicklas 47   ${WD}/stdwrap.sh ${STRINGTIE} \
6820 29 Aug 22 nicklas 48     -p ${NumThreads} \
6820 29 Aug 22 nicklas 49     -G ${GTF} \
6820 29 Aug 22 nicklas 50     -o stringtie/transcript.gtf \
6820 29 Aug 22 nicklas 51     -A stringtie/gene.tsv \
6820 29 Aug 22 nicklas 52     -C stringtie/transcript_covered.gtf \
6820 29 Aug 22 nicklas 53     ${StringTieOptions} \
6820 29 Aug 22 nicklas 54     bam/alignment.bam \
6820 29 Aug 22 nicklas 55     > stringtie/stringtie.out
6820 29 Aug 22 nicklas 56   touch "done/stringtie.done"
6820 29 Aug 22 nicklas 57 fi
6820 29 Aug 22 nicklas 58
6820 29 Aug 22 nicklas 59 if [ ! -f "done/prepde.done" ]; then
6820 29 Aug 22 nicklas 60   rg_progress 90 "Running prepDE"
6820 29 Aug 22 nicklas 61   echo "${ExternalStringTieName} ./stringtie/transcript.gtf" > input.lst
6820 29 Aug 22 nicklas 62   ${PREPDE} \
6820 29 Aug 22 nicklas 63     -i input.lst \
6820 29 Aug 22 nicklas 64     -l ${AvgReadLength} \
6820 29 Aug 22 nicklas 65     -g stringtie/gene_count.csv \
6820 29 Aug 22 nicklas 66     -t stringtie/transcript_count.csv \
6820 29 Aug 22 nicklas 67     > stringtie/prepde.out
6820 29 Aug 22 nicklas 68   touch "done/prepde.done"
6820 29 Aug 22 nicklas 69 fi
6820 29 Aug 22 nicklas 70
6820 29 Aug 22 nicklas 71 rg_progress 95 "Copying result files to project archive"
6820 29 Aug 22 nicklas 72 mkdir -p ${StringTieFolder}
6820 29 Aug 22 nicklas 73 rm -rf ${StringTieFolder}/*
6820 29 Aug 22 nicklas 74 cp stringtie/* ${StringTieFolder}
6820 29 Aug 22 nicklas 75 ls -1 ${StringTieFolder}/* >> ${WD}/files.out
6820 29 Aug 22 nicklas 76
6820 29 Aug 22 nicklas 77 rg_progress 99 "Analysis completed, cleaning up..."