changeset 0:8b25779ee261 draft

Uploaded initial version to test toolshed.
author pjbriggs
date Wed, 28 Jan 2015 04:50:01 -0500
parents
children d9032bb158b9
files README.markdown ceasbw_wrapper.sh ceasbw_wrapper.xml tool-data/ceas.loc.sample tool_data_table_conf.xml.sample tool_dependencies.xml
diffstat 6 files changed, 294 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.markdown	Wed Jan 28 04:50:01 2015 -0500
@@ -0,0 +1,39 @@
+CEASbw
+======
+
+XML and wrapper script for the Cistrome version of the CEAS package, which can be
+used to annotate intervals and scores with genome features.
+
+In addition to the `ceas` program, the Cistrome version of the package includes the
+`ceasBW` program which can handle
+
+The tool assumes that the `ceas` and `ceasBW` programs are on the Galaxy user's
+path. The official CEAS website is at
+
+<http://liulab.dfci.harvard.edu/CEAS/index.html>
+
+the Cistrome version can be found via
+
+<https://bitbucket.org/cistrome/cistrome-applications-harvard/overview>
+
+To add to Galaxy add the following to tool_conf.xml:
+
+    <tool file="ceas/ceasbw_wrapper.xml" />
+
+You also need to make a copy of the `ceas.loc` file (sample version is provided
+here) which points to the available GDB files for different genomes. The GDB files
+are essentially SQLite database files containing the RefSeq genes for the genome
+in question.
+
+A limited number of GDB files are available for download from the CEAS website; to
+make new ones, see the section "Build a sqlite3 file with a gene annotation table
+and genome background annotation for CEAS" in the CEAS manual:
+
+<http://liulab.dfci.harvard.edu/CEAS/usermanual.html>
+
+The `ceas.loc` file should be placed in the `tool-data` directory of your Galaxy
+installation.
+
+### Changes ###
+
+1.0.2-0: first version based on our original `ceas` tool.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ceasbw_wrapper.sh	Wed Jan 28 04:50:01 2015 -0500
@@ -0,0 +1,78 @@
+#!/bin/sh -e
+#
+# Wrapper script to run CEASbw as a Galaxy tool
+#
+# Usage: ceasbw_wrapper.sh $BED_IN $GDB_IN $EXTRA_BED_IN $LOG_OUT $PDF_OUT $XLS_OUT $DBKEY
+#
+# Process command line
+echo $*
+BED_IN=$1
+GDB_IN=$2
+EXTRA_BED_IN=$3
+LOG_OUT=$4
+PDF_OUT=$5
+XLS_OUT=$6
+#
+# Collect remaining args
+CEAS=ceas
+OPTIONS=
+while [ ! -z "$7" ] ; do
+    if [ "$7" == "--bigwig" ] ; then
+	CEAS=ceasBW
+    fi
+    OPTIONS="$OPTIONS $7"
+    shift
+done
+#
+# Convenience variables for local files
+base_name="ceas"
+log_file=${base_name}.log
+r_script=${base_name}.R
+pdf_report=${base_name}.pdf
+xls_file=${base_name}.xls
+#
+# Get CEAS version
+echo Running $CEAS
+$CEAS --version >$log_file 2>/dev/null
+#
+# Construct and run CEAS command line
+ceas_cmd="$CEAS --name $base_name $OPTIONS -g $GDB_IN -b $BED_IN"
+if [ "$EXTRA_BED_IN" != "None" ] ; then
+    ceas_cmd="$ceas_cmd -e $EXTRA_BED_IN"
+fi
+echo "Running $ceas_cmd"
+$ceas_cmd >>$log_file 2>&1
+#
+# Move outputs to final destination
+if [ -e $log_file ] ; then
+    echo "Moving $log_file to $LOG_OUT"
+    /bin/mv $log_file $LOG_OUT
+else
+    echo ERROR failed to make log file >&2
+    exit 1
+fi
+if [ -e $xls_file ] ; then
+    echo "Moving $xls_file to $XLS_OUT"
+    /bin/mv $xls_file $XLS_OUT
+else
+    echo ERROR failed to generate XLS file >&2
+    exit 1
+fi
+#
+# Run the R script to generate the PDF report
+if [ -e $r_script ] ; then
+    echo "Running $r_script to generate $pdf_report"
+    R --vanilla < $r_script
+    if [ -e $pdf_report ] ; then
+	echo "Moving $xls_file to $XLS_OUT"
+	/bin/mv $pdf_report $PDF_OUT
+    else
+	echo ERROR failed to generate PDF report >&2
+	exit 1
+    fi
+else
+    echo ERROR no R script to generate PDF report >&2
+    exit 1
+fi
+#
+# Done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ceasbw_wrapper.xml	Wed Jan 28 04:50:01 2015 -0500
@@ -0,0 +1,73 @@
+<tool id="ceasbw" name="CEAS" version="1.0.2-0">
+  <description>Annotate intervals and scores with genome features (cistrome CEAS)</description>
+  <command interpreter="bash">ceasbw_wrapper.sh $bed_file $gdb_file $extra_bed_file $log_output $pdf_report $xls_output
+  #if (str($wig_file.ext) == 'bigwig')
+    --bigwig $wig_file
+    --length $GALAXY_DATA_INDEX_DIR/shared/ucsc/chrom/${bed_file.dbkey}.len
+  # else
+    --wig $wig_file
+  #end if
+  #if (str($span) and int(str($span)) > 0)
+    --span $span
+  #end if
+  --sizes $sizes_lower,$sizes_middle,$sizes_upper
+  --bisizes $bisizes_lower,$bisizes_upper
+  --pf-res $profiling_resolution
+  --rel-dist $relative_distance</command>
+  <requirements>
+    <requirement type="package" version="1.2.5">python_mysqldb</requirement>
+    <requirement type="package" version="0.7.1">bx_python</requirement>
+    <requirement type="package" version="1.0.2.d8c0751">cistrome_ceas</requirement>
+  </requirements>
+  <inputs>
+    <param name="bed_file" type="data" format="bed" label="BED file with ChIP regions" />
+    <param name="wig_file" type="data" format="wig,bigwig" label="WIG or BIGWIG file for wig profiling or genome background annotation" optional="true" />
+    <param name="extra_bed_file" type="data" format="bed" label="BED file with extra regions of interest (e.g. non-coding regions)" optional="true" />
+    <param name="gdb_file" type="select" label="Gene annotation table">
+      <options from_data_table="ceas_annotations">
+	<filter name="dbkey" type="data_meta" ref="bed_file" key="dbkey" column="0" />
+        <validator type="no_options" message="No tables are available for the selected input"/>
+      </options>
+    </param>
+    <param name="span" type="integer" label="Span from TSS and TTS in the gene-centered annotation (bp)" help="ChIP regions within this range from TSS and TTS are considered when calculating the coverage rates of promoter and downstream by ChIP regions" value="3000" />
+    <param name="sizes_lower" type="integer" label="Lower interval for promoter/downstream sizes for ChIP region annotation (bp)" value="1000" />
+    <param name="sizes_middle" type="integer" label="Middle interval for promoter/downstream sizes (bp)" value="2000" help="Values > 10000bp are automatically fixed to 10000bp" />
+    <param name="sizes_upper" type="integer" label="Upper interval for promoter/downstream sizes (bp)" value="3000" help="Values > 10000bp are automatically fixed to 10000bp" />
+    <param name="bisizes_lower" type="integer" label="Lower interval for bidirectional-promoter sizes for ChIP region annotation (bp)" value="2500" />
+    <param name="bisizes_upper" type="integer" label="Upper interval for bidirectional-promoter sizes (bp)" value="5000" help="Values > 20000bp are automatically fixed to 20000bp" />
+    <param name="profiling_resolution" type="integer" label="Wig profiling resolution (bp)" value="50" help="Warning: a number smaller than the wig interval (resolution) may cause aliasing error" />
+    <param name="relative_distance" type="integer" label="Relative distance to TSS/TTS in wig profiling (bp)" value="3000" />
+  </inputs>
+  <outputs>
+    <data name="log_output" format="txt" label="CEAS on ${on_string} (log output)" />
+    <data name="pdf_report" format="pdf" label="CEAS on ${on_string} (PDF report)" />
+    <data name="xls_output" format="interval" label="CEAS on ${on_string} (XLS output)" />
+  </outputs>
+  <help>
+**What it does**
+
+CEAS (Cis-regulatory Element Annotation System) is a tool for characterizing genome-wide
+protein-DNA interaction patterns from ChIP-chip and ChIP-Seq of both sharp and broad
+binding factors. It provides statistics on ChIP enrichment at important genome features
+such as specific chromosome, promoters, gene bodies, or exons, and infers genes most
+likely to be regulated by a binding factor.
+
+CEAS also enables biologists to visualize the average ChIP enrichment signals over
+specific genomic features, allowing continuous and broad ChIP enrichment to be perceived
+which might be too subtle to detect from ChIP peaks alone.
+
+This tool is compatible with the ceasBW version of CEAS from the Cistrome package
+obtained from
+
+https://bitbucket.org/cistrome/cistrome-applications-harvard/overview
+
+(commit id d8c0751, datestamp 20140929). The CEAS code is under the
+published-packages/CEAS/ subdirectory.
+
+Cistrome data files and documentation can be found at
+
+http://liulab.dfci.harvard.edu/CEAS/index.html
+
+The CEAS user manual is available at http://liulab.dfci.harvard.edu/CEAS/usermanual.html
+  </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/ceas.loc.sample	Wed Jan 28 04:50:01 2015 -0500
@@ -0,0 +1,17 @@
+#This is a sample file distributed with Galaxy that is used by the
+#ceas tool. The ceas.loc file has this format (white space 
+#characters are TAB characters):
+#
+#<dbkey> <Description>	<PathToGdbFile>
+#
+#For example:
+#
+#hg18	Human (hg18)	/home/galaxy/genomes/ceaslib/GeneTable/hg18
+#mm9	Mouse (mm9)	/home/galaxy/genomes/ceaslib/GeneTable/mm9
+#...etc...
+#
+# The GDB files are sqlite databases containing the RefSeq genes for
+# the organism in question
+#
+#This file should be placed in galaxy's tool-data directory when the
+#ceas tool is installed.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.sample	Wed Jan 28 04:50:01 2015 -0500
@@ -0,0 +1,6 @@
+<tables>
+    <table name="ceas_annotations" comment_char="#">
+        <columns>dbkey, name, value</columns>
+        <file path="tool-data/ceas.loc" />
+    </table>
+</tables>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml	Wed Jan 28 04:50:01 2015 -0500
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<tool_dependency>
+  <package name="python_mysqldb" version="1.2.5">
+    <install version="1.0">
+      <actions>
+	<action type="download_by_url">https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip</action>
+        <action type="make_directory">$INSTALL_DIR/lib/python</action>
+        <action type="shell_command">
+          export PYTHONPATH=$PYTHONPATH:$INSTALL_DIR/lib/python &amp;&amp; 
+          python setup.py install --install-lib $INSTALL_DIR/lib/python --install-scripts $INSTALL_DIR/bin
+        </action>
+        <action type="set_environment">
+          <environment_variable action="prepend_to" name="PYTHONPATH">$INSTALL_DIR/lib/python</environment_variable>
+          <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable>
+        </action>
+      </actions>
+    </install>
+    <readme>Installs Python module MySQLdb 1.2.5</readme>
+  </package>
+  <!-- bx_python
+       This is cribbed from devteam's 'package_bx_python_0_7' in the main
+       toolshed:
+       https://toolshed.g2.bx.psu.edu/view/devteam/package_bx_python_0_7
+  -->
+  <package name="bx_python" version="0.7.1">
+    <install version="1.0">
+      <actions>
+        <action type="setup_virtualenv">
+numpy==1.7.1
+bx-python==0.7.1
+        </action>
+        <action type="set_environment">
+          <environment_variable action="set_to" name="BX_PYTHON_PATH">$INSTALL_DIR</environment_variable>
+        </action>
+      </actions>
+    </install>
+    <readme>
+      Installation of bx-python 0.7.1 along with numpy 1.7.1. The installation can be
+      accessed via BX_PYTHON_PATH.
+    </readme>
+  </package>
+  <!-- cistrome_ceas
+       Installs the version of CEAS package found in the Cistrome
+       distribution:
+       https://bitbucket.org/cistrome/cistrome-applications-harvard/overview
+  -->
+  <package name="cistrome_ceas" version="1.0.2.d8c0751">
+    <install version="1.0">
+      <actions>
+	<action type="shell_command">
+	  hg clone https://bitbucket.org/cistrome/cistrome-applications-harvard cistrome_ceas
+	</action>
+	<action type="shell_command">
+	  hg update d8c0751
+	</action>
+        <action type="make_directory">$INSTALL_DIR/lib/python</action>
+        <action type="shell_command">
+	  cd published-packages/CEAS/
+          export PYTHONPATH=$PYTHONPATH:$INSTALL_DIR/lib/python &amp;&amp; 
+          python setup.py install --install-lib $INSTALL_DIR/lib/python --install-scripts $INSTALL_DIR/bin
+        </action>
+        <action type="set_environment">
+          <environment_variable action="prepend_to" name="PYTHONPATH">$INSTALL_DIR/lib/python</environment_variable>
+          <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable>
+        </action>
+      </actions>
+    </install>
+    <readme>Installs version 1.0.2 of CEAS from cistrome (commit id d8c0751,
+    datestamp 20140929), which includes ceasBW (a version of ceas which can
+    handle bigWig file input from MACS2.
+
+    Cistrome code is at
+    https://bitbucket.org/cistrome/cistrome-applications-harvard/overview
+      
+    The CEAS code is under the published-packages/CEAS/ subdirectory
+
+    Cistrome data files and documentation can be found at
+    http://liulab.dfci.harvard.edu/CEAS/index.html
+    </readme>
+  </package>
+</tool_dependency>