Mercurial > repos > pjbriggs > ceas
annotate ceas_wrapper.sh @ 11:d3bd9caee1b7 draft default tip
Uploaded version 1.0.2-4.
author | pjbriggs |
---|---|
date | Wed, 26 Sep 2018 06:37:20 -0400 |
parents | 4e2883bb058d |
children |
rev | line source |
---|---|
3
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
1 #!/bin/sh -e |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
2 # |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
3 # Wrapper script to run CEAS as a Galaxy tool |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
4 # |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
5 # This runs the Cistrome versions of CEAS, which provides two executables: |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
6 # - ceas (same as the "official" version) |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
7 # - ceasBW (modified version that accepts a bigwig file as input) |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
8 # |
4
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
9 # Usage: ceas_wrapper.sh $BED_IN $GDB_IN $LOG_OUT $PDF_OUT $XLS_OUT [OPTIONS] |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
10 # |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
11 # Initialise |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
12 CEAS=ceas |
3
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
13 # |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
14 # Process command line |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
15 echo $* |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
16 BED_IN=$1 |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
17 GDB_IN=$2 |
4
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
18 LOG_OUT=$3 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
19 PDF_OUT=$4 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
20 XLS_OUT=$5 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
21 # |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
22 # Initialise other variables |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
23 EXTRA_BED_IN= |
3
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
24 # |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
25 # Collect remaining args |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
26 OPTIONS= |
4
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
27 while [ ! -z "$6" ] ; do |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
28 if [ "$6" == "--bigwig" ] ; then |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
29 # Bigwig input, need to use 'ceasBW' |
3
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
30 CEAS=ceasBW |
4
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
31 OPTIONS="$OPTIONS --bigwig" |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
32 elif [ "$6" == "--length" ] ; then |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
33 # Need a chrom sizes file |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
34 chrom_sizes=$7 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
35 if [ ! -f "$chrom_sizes" ] ; then |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
36 # If chrom sizes file doesn't already exist then attempt to |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
37 # download the data from UCSC |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
38 echo "WARNING no file $chrom_sizes" |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
39 dbkey=$(echo $(basename $chrom_sizes) | cut -d'.' -f1) |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
40 if [ $dbkey == '?' ] ; then |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
41 # DBkey not set, this is fatal |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
42 echo "ERROR genome build not set, cannot get sizes for '?'" >&2 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
43 echo "Assign a genome build to your input dataset and rerun" >&2 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
44 exit 1 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
45 fi |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
46 # Fetch the sizes using fetchChromSizes |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
47 echo -n "Attempting to download chromosome sizes for $dbkey..." |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
48 chrom_sizes=$(basename $chrom_sizes) |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
49 fetchChromSizes $dbkey >$chrom_sizes 2>/dev/null |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
50 if [ $? -ne 0 ] ; then |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
51 echo "failed" |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
52 echo "ERROR unable to fetch data for ${dbkey}" >&2 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
53 echo "Please check the genome build associated with your input dataset" >&2 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
54 echo "or update your Galaxy instance to include an appropriate .len file" >&2 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
55 exit 1 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
56 else |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
57 echo "ok" |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
58 fi |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
59 fi |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
60 OPTIONS="$OPTIONS --length $chrom_sizes" |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
61 shift |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
62 else |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
63 OPTIONS="$OPTIONS $6" |
3
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
64 fi |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
65 shift |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
66 done |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
67 # |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
68 # Convenience variables for local files |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
69 base_name="ceas" |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
70 log_file=${base_name}.log |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
71 pdf_report=${base_name}.pdf |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
72 xls_file=${base_name}.xls |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
73 # |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
74 # Get CEAS version |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
75 echo Running $CEAS |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
76 $CEAS --version >$log_file 2>/dev/null |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
77 # |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
78 # Construct and run CEAS command line |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
79 ceas_cmd="$CEAS --name $base_name $OPTIONS -g $GDB_IN -b $BED_IN" |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
80 echo "Running $ceas_cmd" |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
81 $ceas_cmd >>$log_file 2>&1 |
4
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
82 status=$? |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
83 if [ $status -ne 0 ] ; then |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
84 echo "Error: log file tail:" |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
85 tail $log_file |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
86 echo "ERROR $CEAS exited with non-zero code: $status" >&2 |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
87 exit $status |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
88 fi |
3
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
89 # |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
90 # Move outputs to final destination |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
91 if [ -e $log_file ] ; then |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
92 echo "Moving $log_file to $LOG_OUT" |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
93 /bin/mv $log_file $LOG_OUT |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
94 else |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
95 echo ERROR failed to make log file >&2 |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
96 exit 1 |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
97 fi |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
98 if [ -e $xls_file ] ; then |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
99 echo "Moving $xls_file to $XLS_OUT" |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
100 /bin/mv $xls_file $XLS_OUT |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
101 else |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
102 echo ERROR failed to generate XLS file >&2 |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
103 exit 1 |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
104 fi |
4
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
105 if [ -e $pdf_report ] ; then |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
106 echo "Moving $pdf_report to $PDF_OUT" |
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
107 /bin/mv $pdf_report $PDF_OUT |
3
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
108 else |
4
4e2883bb058d
Synchronise version with one on main toolshed (version of 30/06/2015)
pjbriggs
parents:
3
diff
changeset
|
109 echo ERROR failed to generate PDF report >&2 |
3
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
110 exit 1 |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
111 fi |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
112 # |
82df5af2995f
Renamed from "ceasbw..." to "ceas...".
pjbriggs
parents:
diff
changeset
|
113 # Done |