changeset 18:e3d9e74cae68 draft

Uploaded
author greg
date Tue, 13 Dec 2016 13:02:36 -0500
parents 426f8753acb2
children fc857bf96781
files all_fasta.loc.sample macros.xml multigps.py multigps.xml multigps_macros.xml multigps_v0.5.jar test-data/exclude_file.txt test-data/reb1_chipexo.distrib.tabular tool-data/all_fasta.loc.sample tool_dependencies.xml
diffstat 10 files changed, 538 insertions(+), 489 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/all_fasta.loc.sample	Tue Dec 13 13:02:36 2016 -0500
@@ -0,0 +1,18 @@
+#This file lists the locations and dbkeys of all the fasta files
+#under the "genome" directory (a directory that contains a directory
+#for each build). The script extract_fasta.py will generate the file
+#all_fasta.loc. This file has the format (white space characters are
+#TAB characters):
+#
+#<unique_build_id>  <dbkey> <display_name>  <file_path>
+#
+#So, all_fasta.loc could look something like this:
+#
+#apiMel3    apiMel3 Honeybee (Apis mellifera): apiMel3  /path/to/genome/apiMel3/apiMel3.fa
+#hg19canon  hg19    Human (Homo sapiens): hg19 Canonical    /path/to/genome/hg19/hg19canon.fa
+#hg19full   hg19    Human (Homo sapiens): hg19 Full /path/to/genome/hg19/hg19full.fa
+#
+#Your all_fasta.loc file should contain an entry for each individual
+#fasta file. So there will be multiple fasta files for each build,
+#such as with hg19 above.
+#
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Tue Dec 13 13:02:36 2016 -0500
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<macros>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="3.14.0">bioconductor-edger</requirement>
+            <requirement type="package" version="4.11.1">meme</requirement>
+            <requirement type="package" version="0.5">multigps</requirement>
+        </requirements>
+    </xml>
+    <xml name="stdio">
+        <stdio>
+            <exit_code range="1:"/>
+            <exit_code range=":-1"/>
+            <regex match="Error:"/>
+            <regex match="Exception:"/>
+        </stdio>
+    </xml>
+    <xml name="rd_cond">
+        <conditional name="read_distribution_cond">
+            <param name="read_distribution" type="select" label="Use read distribution file for this replicate?" help="Selecting No uses default distribution.">
+                <option value="no" selected="True">No</option>
+                <option value="yes">Yes</option>
+            </param>
+            <when value="yes">
+                <param name="read_distribution_file" type="data" format="tabular" label="Read distribution file" />
+            </when>
+            <when value="no" />
+        </conditional>
+    </xml>
+    <xml name="frc_param">
+        <param  name="fixed_read_count" type="select" label="Use fixed per-base read count limit for this replicate?" help="Selecting No uses a global per-base limit that is estimated from a Poisson distribution.">
+            <option value="no" selected="True">No</option>
+            <option value="yes">Yes</option>
+        </param>
+    </xml>
+    <xml name="motif_finding_params">
+        <param name="memenmotifs" type="integer" min="0" value="3" label="Number of motifs MEME should find for each condition" />
+        <param name="mememinw" type="integer" min="0" value="6" label="Minimum motif width for MEME" />
+        <param name="mememaxw" type="integer" min="0" value="16" label="Maximum motif width for MEME" />
+    </xml>
+    <xml name="citations">
+        <citations>
+            <citation type="doi">10.1371/journal.pcbi.1003501</citation>
+        </citations>
+    </xml>
+</macros>
--- a/multigps.py	Fri Jan 15 10:07:58 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-import argparse
-import os
-import shutil
-import subprocess
-import sys
-import tempfile
-
-BUFF_SIZE = 1048576
-DESIGN_FILE = 'design.tabular'
-
-
-def generate_design_file(input_items, filename):
-    design_file = open(filename, 'wb')
-    for items in input_items:
-        filename, ext, signal_control, condition_name, replicate_name, read_distribution_file, fixed_read = items
-        # MultiGPS version 0.5 does not support the newer scidx datatype.
-        if ext == 'scidx':
-            datatype = 'IDX'
-        else:
-            datatype = ext.upper()
-        design_file.write('%s\n' % '\t'.join([filename, signal_control, datatype, condition_name, replicate_name, read_distribution_file, fixed_read]))
-    design_file.close()
-
-
-def get_stderr_exception(tmp_err, tmp_stderr, tmp_out, tmp_stdout, include_stdout=False):
-    tmp_stderr.close()
-    # Get stderr, allowing for case where it's very large.
-    tmp_stderr = open(tmp_err, 'rb')
-    stderr_str = ''
-    buffsize = BUFF_SIZE
-    try:
-        while True:
-            stderr_str += tmp_stderr.read(buffsize)
-            if not stderr_str or len(stderr_str) % buffsize != 0:
-                break
-    except OverflowError:
-        pass
-    tmp_stderr.close()
-    if include_stdout:
-        tmp_stdout = open(tmp_out, 'rb')
-        stdout_str = ''
-        buffsize = BUFF_SIZE
-        try:
-            while True:
-                stdout_str += tmp_stdout.read(buffsize)
-                if not stdout_str or len(stdout_str) % buffsize != 0:
-                    break
-        except OverflowError:
-            pass
-    tmp_stdout.close()
-    if include_stdout:
-        return 'STDOUT\n%s\n\nSTDERR\n%s\n' % (stdout_str, stderr_str)
-    return stderr_str
-
-
-def stop_err(msg):
-    sys.stderr.write(msg)
-    sys.exit(1)
-
-parser = argparse.ArgumentParser()
-parser.add_argument('--input_item', dest='input_items', action='append', nargs=7, help="Input datasets and associated parameters")
-parser.add_argument('--threads', dest='threads', type=int, default=4, help='The number of threads to run')
-parser.add_argument('--multigps_jar', dest='multigps_jar', help='Path to the MultiGPS jar file')
-parser.add_argument('--geninfo', dest='geninfo', help='File listing the lengths of all chromosomes')
-parser.add_argument('--use_motif', dest='use_motif', help='Perform motif-finding or use a motif-prior')
-parser.add_argument('--seq_dir', dest='seq_dir', default=None, help='Directory containing fasta files corresponding to every named chromosome')
-parser.add_argument('--positional_prior', dest='positional_prior', default=None, help='Perform inter-experiment positional prior')
-parser.add_argument('--events_shared_probability', dest='events_shared_probability', type=float, default=0.9, help='Probability that events are shared across conditions')
-parser.add_argument('--motifs', dest='motifs', default=None, help='Perform motif-finding and motif priors')
-parser.add_argument('--motif_finding_only', dest='motif_finding_only', default=None, help='Perform motif-finding only')
-parser.add_argument('--num_motifs', dest='num_motifs', type=int, default=None, help='Number of motifs MEME should find for each condition')
-parser.add_argument('--mememinw', dest='mememinw', type=int, default=None, help='Minimum motif width for MEME')
-parser.add_argument('--mememaxw', dest='mememaxw', type=int, default=None, help='Maximum motif width for MEME')
-parser.add_argument('--fixedpb', dest='fixedpb', type=int, default=None, help='Fixed per-base limit')
-parser.add_argument('--poissongausspb', dest='poissongausspb', type=int, default=None, help='Poisson threshold for filtering per base')
-parser.add_argument('--non_unique_reads', dest='non_unique_reads', default=None, help='Use non-unique reads')
-parser.add_argument('--minqvalue', dest='minqvalue', type=int, default=None, help='Minimum Q-value (corrected p-value) of reported binding events')
-parser.add_argument('--minfold', dest='minfold', type=int, default=None, help='Minimum event fold-change vs scaled control')
-parser.add_argument('--diff_enrichment_tests', dest='diff_enrichment_tests', help='Run differential enrichment tests')
-parser.add_argument('--edgerod', dest='edgerod', type=int, default=None, help='EdgeR over-dispersion parameter value')
-parser.add_argument('--diffp', dest='diffp', type=int, default=None, help='Minimum p-value for reporting differential enrichment')
-parser.add_argument('--noscaling', dest='noscaling', default=None, help='Do not use signal vs control scaling')
-parser.add_argument('--medianscale', dest='medianscale', default=None, help='Use the median signal/control ratio as the scaling factor')
-parser.add_argument('--sesscale', dest='sesscale', default=None, help='Estimate scaling factor by SES')
-parser.add_argument('--scalewin', dest='scalewin', type=int, default=None, help='Window size for estimating scaling ratios')
-parser.add_argument('--max_training_rounds', dest='max_training_rounds', type=int, default=None, help='Maximum number of training rounds for updating binding event read distributions')
-parser.add_argument('--exclude_file', dest='exclude_file', default=None, help='File containing a set of regions to ignore during MultiGPS training')
-parser.add_argument('--binding_model_updates', dest='binding_model_updates', default=None, help='Perform binding model updates')
-parser.add_argument('--minmodelupdateevents', dest='minmodelupdateevents', type=int, default=None, help='Minimum number of events to support an update of the read distribution')
-parser.add_argument('--binding_model_smoothing', dest='binding_model_smoothing', default=None, help='Binding model smoothing')
-parser.add_argument('--spline_smooth', dest='spline_smooth', type=int, default=None, help='Binding model smoothing value')
-parser.add_argument('--gauss_smooth', dest='gauss_smooth', type=int, default=None, help='Gaussian smoothing std dev')
-parser.add_argument('--joint_in_model', dest='joint_in_model', default=None, help='Allow joint events in model updates')
-parser.add_argument('--ml_config_not_shared', dest='ml_config_not_shared', default=None, help='Share component configs in the ML step')
-parser.add_argument('--output_html_path', dest='output_html_path', help='Output html results file')
-parser.add_argument('--output_html_files_path', dest='output_html_files_path', help='Output html extra files')
-parser.add_argument('--output_process_path', dest='output_process_path', default=None, help='Output file for capturing stdout')
-args = parser.parse_args()
-
-try:
-    # Preparation.
-    tmp_dir = tempfile.mkdtemp(prefix="tmp-multigps-")
-    generate_design_file(args.input_items, DESIGN_FILE)
-    # Build the command line.
-    cmd_list = ['java -jar %s --verbose' % args.multigps_jar]
-    cmd_list.append('--threads %d' % args.threads)
-    cmd_list.append('--geninfo %s' % args.geninfo)
-    if args.use_motif == 'yes':
-        cmd_list.append('--seq %s' % args.seq_dir)
-        if args.positional_prior == 'no':
-            cmd_list.append('--noposprior')
-        cmd_list.append('--probshared %3f' % args.events_shared_probability)
-        if args.motifs == 'no':
-            cmd_list.append('--nomotifs')
-        if args.motif_finding_only == 'yes':
-            cmd_list.append('--nomotifprior')
-        if args.num_motifs is not None:
-            cmd_list.append('--memenmotifs %d' % args.num_motifs)
-        if args.mememinw is not None:
-            cmd_list.append('--mememinw %d' % args.mememinw)
-        if args.mememaxw is not None:
-            cmd_list.append('--mememaxw %d' % args.mememaxw)
-    if args.fixedpb is not None:
-        cmd_list.append('--fixedpb %d' % args.fixedpb)
-    if args.poissongausspb is not None:
-        cmd_list.append('--poissongausspb %d' % args.poissongausspb)
-    if args.non_unique_reads == 'yes':
-        cmd_list.append('--nonunique')
-    if args.minqvalue is not None:
-        cmd_list.append('--q %d' % args.minqvalue)
-    if args.minfold is not None:
-        cmd_list.append('--minfold %d' % args.minfold)
-    if args.diff_enrichment_tests == 'no':
-        cmd_list.append('--nodifftests')
-    if args.edgerod is not None:
-        cmd_list.append('--edgerod %d' % args.edgerod)
-    if args.diffp is not None:
-        cmd_list.append('--diffp %d' % args.diffp)
-    if args.noscaling == 'no':
-        cmd_list.append('--noscaling')
-    if args.medianscale == "yes":
-        cmd_list.append('--medianscale')
-    if args.sesscale == "yes":
-        cmd_list.append('--sesscale')
-    if args.scalewin is not None:
-        cmd_list.append('--scalewin %d' % args.scalewin)
-    if args.max_training_rounds is not None:
-        cmd_list.append('--r %d' % args.max_training_rounds)
-    if args.exclude_file not in [None, 'None']:
-        cmd_list.append('--exclude %s' % args.exclude_file)
-    if args.binding_model_updates == 'no':
-        cmd_list.append('--nomodelupdate')
-    if args.minmodelupdateevents is not None:
-        cmd_list.append('--minmodelupdateevents %d' % args.minmodelupdateevents)
-    if args.binding_model_smoothing == 'yes':
-        if args.spline_smooth is not None:
-            cmd_list.append('--splinesmoothparam %d' % args.spline_smooth)
-    else:
-        cmd_list.append('--nomodelsmoothing')
-        if args.gauss_smooth is not None:
-            cmd_list.append('--gaussmodelsmoothing')
-            cmd_list.append('--gausssmoothparam %d' % args.gauss_smooth)
-    if args.joint_in_model == 'yes':
-        cmd_list.append('--jointinmodel')
-    if args.ml_config_not_shared == 'no':
-        cmd_list.append('--mlconfignotshared')
-    cmd_list.append('--design %s' % DESIGN_FILE)
-    cmd_list.append('--out %s' % args.output_html_files_path)
-    if args.output_process_path is None:
-        cmd_list.append('2>/dev/null')
-    else:
-        cmd_list.append('2>%s' % args.output_process_path)
-    cmd = ' '.join(cmd_list)
-    # Define command response buffers.
-    tmp_out = tempfile.NamedTemporaryFile(dir=tmp_dir).name
-    tmp_stdout = open(tmp_out, 'wb')
-    tmp_err = tempfile.NamedTemporaryFile(dir=tmp_dir).name
-    tmp_stderr = open(tmp_err, 'wb')
-    tmp_filename = tempfile.NamedTemporaryFile(dir=tmp_dir).name
-    # Execute the command.
-    proc = subprocess.Popen(args=cmd, stderr=tmp_stderr, stdout=tmp_stdout, shell=True)
-    rc = proc.wait()
-    if rc != 0:
-        error_message = get_stderr_exception(tmp_err, tmp_stderr, tmp_out, tmp_stdout)
-        stop_err(error_message)
-    # Move the output HTML file to the output dataset path.
-    output_html_filename = 'multiGPS_%s_results.html' % os.path.split(args.output_html_files_path)[1]
-    shutil.move(os.path.join(args.output_html_files_path, output_html_filename), args.output_html_path)
-except Exception, e:
-    stop_err('Error running MultiGPS\n%s\n' % str(e))
-finally:
-    if os.path.exists(tmp_dir):
-        shutil.rmtree(tmp_dir)
--- a/multigps.xml	Fri Jan 15 10:07:58 2016 -0500
+++ b/multigps.xml	Tue Dec 13 13:02:36 2016 -0500
@@ -1,14 +1,128 @@
-<tool id="multigps" name="MultiGPS" version="0.5.0.0">
+<tool id="multigps" name="MultiGPS" version="0.72.0">
     <description>analyzes collections of multi-condition ChIP-seq data</description>
     <macros>
-        <import>multigps_macros.xml</import>
+        <import>macros.xml</import>
     </macros>
     <expand macro="requirements" />
+    <command detect_errors="aggressive">
     <command>
         <![CDATA[
+            ## java -Xmx15G org.seqcode.projects.multigps.MultiGPS
+            ## --species "Saccharomyces cerevisiae;sacCer3"
+            ## --threads 2 
+            ## --expt $bampath/$name.bam
+            ## --ctrl $control
+            ## --format BAM
+            ## --scalewin 500
+            ## --q 0.05
+            ## --nodifftests 
+            ## --verbose
+            ## --mappability
+            ## --jointinmodel
+            ## --fixedmodelrange
+            ## --gaussmodelsmoothing
+            ## --gausssmoothparam 1
+            ## --minmodelupdateevents 50
+            ## --memepath $memePath
+            ## --mememinw 6
+            ## --mememaxw 18
+            ## --seq $genome
+            ## --exclude $exclude
+            ## --out $name > $name.out 2>&1
+            ##
+
+            multigps
+            ############################
+            ## General options
+            ############################
+            --input "$input"
+            --format "$input.ext"
+            #if str($verbose) == 'yes':
+                --verbose
+            #end if
+            --threads="\${GALAXY_SLOTS:-4}"
+            ############################
+            ## Advanced options
+            ############################
             #set aoc = $advanced_options_cond
             #if str($aoc.advanced_options) == "display":
+                #set bmsc = $aoc.binding_model_smoothing_cond
+                #set gmsc = $aoc.gauss_model_smoothing_cond
+                #set rbec = $aoc.report_binding_events_cond
+                #set rloc = $aoc.reads_limits_options_cond
+                #set sdc = $aoc.scale_data_cond
                 #set umc = $aoc.use_motif_cond
+                ############################
+                ## Limits on how many reads
+                ############################
+                #if str($rloc.reads_limits) == "yes":
+                    --fixedpb $rloc.fixedpb
+                    --poissongausspb $rloc.poissongausspb
+                    #if str($rloc.nonunique) == "yes":
+                        --nonunique
+                    #end if
+                    --mappability $rloc.mappability
+                #end if
+                    #if str($rloc.nocache) == "yes":
+                        --nocache
+                    #end if
+                ############################
+                ## Scaling data
+                ############################
+                #if str($sdc.scale_data) == "yes":
+                    #if str($sdc.scaling) == 'no':
+                        --noscaling $sdc.scaling
+                    #end if
+                    #if str($sdc.medianscale) == 'yes':
+                        --medianscale $sdc.medianscale
+                    #end if
+                    #if str($sdc.regressionscale) == 'yes':
+                        --regressionscale $sdc.regressionscale
+                    #endif
+                    #if str($sdc.sessscale) == 'yes':
+                        --sesscale $sdc.sesscale
+                    #end if
+                    #if $sdc.fixedscaling > 0:
+                        ‒‒fixedscaling $sdc.fixedscaling
+                    #end if
+                    --scalewin $sdc.scalewin
+                    #if str($sdc.plotscaling) == 'yes':
+                        --plotscaling $sdc.plotscaling
+                    #end if
+                #end if
+                ############################
+                ## Running MultiGPS
+                ############################
+                #if str($aoc.nomodelupdate) == "no":
+                    --nomodelupdate
+                #end if
+                --minmodelupdateevents $aoc.minmodelupdateevents
+                #if str($bmsc.nomodelsmoothing) == "no":
+                    --nomodelsmoothing
+                #end if
+                --splinesmoothparam $aoc.splinesmoothparam
+                #if str($gmsc.gaussmodelsmoothing) == "yes":
+                    --gaussmodelsmoothing
+                    --gausssmoothparam $gmsc.gausssmoothparam
+                #end if
+                #if str($aoc.jointinmodel) == "yes":
+                    --jointinmodel
+                #end if
+                #if str($aoc.fixedmodelrange) == "yes":
+                    --fixedmodelrange
+                #end if
+                --prlogconf $aoc.prlogconf
+                #if $aoc.fixedalpha > 0:
+                    --fixedalpha $aoc.fixedalpha
+                #end if
+                --alphascale $aoc.alphascale
+                #if str($aoc.mlconfignotshared) == "no":
+                    --mlconfignotshared
+                #end if
+                --exclude "$aoc.exclude"
+                ############################
+                ## MultiGPS priors
+                ############################
                 #if str($umc.use_motif) == "yes":
                     #set rgc = $umc.reference_genome_cond
                     #if str($rgc.reference_genome_source) == "cached":
@@ -23,165 +137,197 @@
                         #set tmp_seq_file = os.path.join($seq_dir, $tmp_filename)
                         ln -f -s $tmp_seq_file $seq_file &&
                     #end if
-                #end if
-            #end if
-            python $__tool_directory__/multigps.py
-            --multigps_jar $__tool_directory__/multigps_v0.5.jar
-            #for $i in $input_items:
-                #set replicate_name = ""
-                #set read_distribution_file = ""
-                #set fixed_read = ""
-                #set sccond = $i.signal_control_cond
-                #set sorc = $sccond.signal_control
-                #if str($sorc) == "Signal":
-                    #set replicate_name = $sccond.replicate_name
-                    #set rdcond = $sccond.read_distribution_cond
-                    #if str($rdcond.read_distribution) == "yes":
-                        #set read_distribution_file = "$rdcond.read_distribution_file"
-                    #end if
-                    #if str($sccond.fixed_read_count) == "yes":
-                        #set fixed_read = "P"
-                    #end if
-                #else if str($sorc) == "Control":
-                    #set rncond = $sccond.replicate_name_cond
-                    #if str($rncond.specify_replicate_name) == "yes":
-                        #set replicate_name = $rncond.replicate_name
-                        #set rdcond = $rncond.read_distribution_cond
-                        #if str($rdcond.read_distribution) == "yes":
-                            #set read_distribution_file = "$rdcond.read_distribution_file"
-                        #end if
-                        #if str($rncond.fixed_read_count) == "yes":
-                            #set fixed_read = "P"
-                        #end if
-                    #end if
-                #end if
-                --input_item "${i.input}" "${i.input.ext}" "${i.signal_control_cond.signal_control}" "${i.condition_name}" "$replicate_name" "$read_distribution_file" "$fixed_read"
-            #end for
-            --threads="\${GALAXY_SLOTS:-4}"
-            --geninfo $chromInfo
-            #if str($aoc.advanced_options) == "display":
-                #set rbec = $aoc.report_binding_events_cond
-                #set bmsc = $aoc.binding_model_smoothing_cond
-                #set rloc = $aoc.reads_limits_options_cond
-                #set sdc = $aoc.scale_data_cond
-                --use_motif $umc.use_motif
-                #if str($umc.use_motif) == "yes":
                     #set mpc = $umc.multigps_priors_cond
-                    --seq_dir $seq_dir
+                    --seq $seq_dir
+                    --geninfo ${chromInfo}
                     #if str($mpc.multigps_priors) == "yes":
                         #set bmc = $mpc.both_motifs_cond
-                        --positional_prior $mpc.positional_prior
-                        --events_shared_probability $mpc.events_shared_probability
-                        --motifs $bmc.motifs
-                        #if str($bmc.motifs) == "yes":
-                            --num_motifs $bmc.num_motifs
-                            --mememinw $bmc.min_motif_width
-                            --mememaxw $bmc.max_motif_width
+                        #if str($mpc.noposprior) == "no":
+                            --noposprior
+                        #end if
+                        --probshared $mpc.probshared
+                        #if str($bmc.nomotifs) == "yes":
+                            --memenmotifs $bmc.memenmotifs
+                            --mememinw $bmc.mememinw
+                            --mememaxw $bmc.mememaxw
                         #else:
-                            #set mfoc = $bmc.motif_finding_only_cond
-                            --motif_finding_only $mfoc.motif_finding_only
-                            #if str($mfoc.motif_finding_only) == "yes":
-                                --num_motifs $mfoc.num_motifs
-                                --mememinw $mfoc.min_motif_width
-                                --mememaxw $mfoc.max_motif_width
+                            --nomotifs
+                            #set mfoc = $bmc.nomotifprior_cond
+                            --nomotifprior $mfoc.nomotifprior
+                            #if str($mfoc.nomotifprior) == "yes":
+                                --memenmotifs $mfoc.memenmotifs
+                                --mememinw $mfoc.mememinw
+                                --mememaxw $mfoc.mememaxw
                             #end if
                         #end if
                     #end if
                 #end if
-                --max_training_rounds $aoc.max_training_rounds
-                --exclude_file $aoc.exclude_file
-                --binding_model_updates $aoc.binding_model_updates
-                --minmodelupdateevents $aoc.minmodelupdateevents
-                --binding_model_smoothing $bmsc.binding_model_smoothing
-                #if str($bmsc.binding_model_smoothing) == "yes":
-                    --spline_smooth $bmsc.spline_smooth
-                #else:
-                    #set gmsc = $bmsc.gauss_model_smoothing_cond
-                    #if str($gmsc.gauss_model_smoothing) == "yes":
-                        --gauss_smooth $gmsc.gauss_smooth
+                ############################
+                ## Reporting binding events
+                ############################
+                #if str($rbec.report_binding_events) == "yes":
+                    --q $rbec.minqvalue
+                    --minfold $rbec.minfold
+                    #if str($rbec.nodifftests) == "no":
+                        --nodifftests
                     #end if
-                #end if
-                --joint_in_model $aoc.joint_in_model
-                --ml_config_not_shared $aoc.ml_config_not_shared
-                #if str($rloc.reads_limits) == "yes":
-                    --fixedpb $rloc.fixedpb
-                    --poissongausspb $rloc.poissongausspb
-                    --non_unique_reads $rloc.non_unique_reads
-                #end if
-                #if str($rbec.report_binding_events) == "yes":
-                    --minqvalue $rbec.minqvalue
-                    --minfold $rbec.minfold
-                    --diff_enrichment_tests $rbec.diff_enrichment_tests
                     --edgerod $rbec.edgerod
                     --diffp $rbec.diffp
                 #end if
-                #if str($sdc.scale_data) == "yes":
-                    --noscaling $sdc.scaling
-                    --medianscale $sdc.medianscale
-                    --sesscale $sdc.sesscale
-                    --scalewin $sdc.scalewin
-                #end if
             #end if
-            --output_html_path "$output_html"
-            --output_html_files_path "$output_html.files_path"
-            #if str($output_process_log) == "yes":
-                --output_process_path "$output_process"
-            #end if
+            --out "$output_html.files_path"
+            > "$output_html"
+            ##if str($output_process_log) == "yes":
+            ##    --output_process_path "$output_process"
+            ###end if
         ]]>
     </command>
     <inputs>
-        <repeat name="input_items" title="Input files, attributes and options" min="1">
-            <param name="input" type="data" format="bam,bed,scidx" label="Add input file" help="Supported formats are bam, bed and scidx">
-                <validator type="unspecified_build" />
-            </param>
-            <conditional name="signal_control_cond">
-                <param name="signal_control" type="select" label="Is this experiment signal or control?">
-                    <option value="Signal" selected="True">Signal</option>
-                    <option value="Control">Control</option>
-                </param>
-                <when value="Signal">
-                    <param name="replicate_name" type="text" label="Replicate name" />
-                    <expand macro="rd_cond" />
-                    <expand macro="frc_param" />
-                </when>
-                <when value="Control">
-                    <conditional name="replicate_name_cond">
-                        <param  name="specify_replicate_name" type="select" label="Specify replicate name?" help="Optional for control experiments.  If used, the control will only be used for the corresponding named signal replicate">
-                            <option value="no" selected="True">No</option>
-                            <option value="yes">Yes</option>
-                        </param>
-                        <when value="yes">
-                            <param name="replicate_name" type="text" optional="True" label="Replicate name" />
-                            <expand macro="rd_cond" />
-                            <expand macro="frc_param" />
-                        </when>
-                        <when value="no" />
-                    </conditional>
-                </when>
-            </conditional>
-            <param name="condition_name" type="text" label="Condition name" />
-        </repeat>
+        <param name="input" type="data" format="bam,bed,scidx" label="Add input file" help="Supported formats are bam, bed and scidx">
+            <validator type="unspecified_build" />
+        </param>
+        <param name="verbose" type="select" label="Generate intermediate files and extra output?" help="Verbose flag">
+            <option value="no" selected="True">No</option>
+            <option value="yes">Yes</option>
+        </param>
+        <!--
+        ############################
+        ## Advanced options
+        ############################
+        -->
         <conditional name="advanced_options_cond">
             <param name="advanced_options" type="select" label="Advanced options">
                 <option value="hide" selected="true">Hide</option>
                 <option value="display">Display</option>
             </param>
             <when value="display">
+                <!--
+                ############################
+                ## Limits on how many reads
+                ############################
+                -->
+                <conditional name="reads_limits_options_cond">
+                    <param name="reads_limits" type="select" label="Set limits on how many reads can have their 5′ end at the same position in each replicate?" help="Default behavior is to estimate a global per-base limit from a Poisson distribution parameterized by the number of reads divided by the number of mappable bases in the genome. The per-base limit is set as the count corresponding to the 10^-7 probability level from the Poisson.">
+                        <option value="no" selected="True">No</option>
+                        <option value="yes">Yes</option>
+                    </param>
+                    <when value="no" />
+                    <when value="yes">
+                        <param name="fixedpb" type="integer" value="0" min="0" label="Fixed per-base limit" help="Zero value estimates from background model"/>
+                        <param name="poissongausspb" type="integer" value="0" min="0" label="Poisson threshold for filtering per base" help="Filter per base using the specified Poisson threshold parameterized by a local Gaussian sliding window" />
+                        <param name="nonunique" type="select" label="Use non-unique reads?">
+                            <option value="no" selected="True">No</option>
+                            <option value="yes">Yes</option>
+                        </param>
+                        <param name="mappability" type="float" value="0.0" min="0.8" label="Fraction of the genome that is mappable for these experiments" />
+                        <param name="nocache" type="select" label="Turn off caching of the entire set of experiments?" help="Run slower with less memory" >
+                            <option value="no" selected="True">No</option>
+                            <option value="yes">Yes</option>
+                        </param>
+                    </when>
+                </conditional>
+                <!--
+                ############################
+                ## Scaling data
+                ############################
+                -->
+                <conditional name="scale_data_cond">
+                    <param  name="scale_data" type="select" label="Set data scaling parameters?" help="Default behavior is to scale signal to corresponding controls using regression on the set of signal/control ratios in 10Kbp windows.">
+                        <option value="no" selected="True">No</option>
+                        <option value="yes">Yes</option>
+                    </param>
+                    <when value="yes">
+                        <param  name="scaling" type="select" label="Use signal vs control scaling?">
+                            <option value="yes" selected="True">Yes</option>
+                            <option value="no">No</option>
+                        </param>
+                        <param  name="medianscale" type="select" label="Use the median signal/control ratio as the scaling factor?">
+                            <option value="no" selected="True">No</option>
+                            <option value="yes">Yes</option>
+                        </param>
+                        <param  name="regressionscale" type="select" label="Use scaling by regression on binned tag counts?">
+                            <option value="no" selected="True">No</option>
+                            <option value="yes">Yes</option>
+                        </param>
+                        <param  name="sesscale" type="select" label="Estimate scaling factor by SES?" help="SES: Diaz, et al. Stat Appl Genet Mol Biol. 2012">
+                            <option value="no" selected="True">No</option>
+                            <option value="yes">Yes</option>
+                        </param>
+                        <param name="fixedscaling" type="float" value="0.0" min="0.0" label="Multiply control counts by total tag count ratio and then by this factor" help="Set as 0 to skip" />
+                        <param name="scalewin" type="integer" min="0" value="500" label="Window size for estimating scaling ratios" help="The value is the number of base pairs.  Use something much smaller than the default if scaling via SES (e.g. 200)." />
+                        <param  name="plotscaling" type="select" label="Plot diagnostic information for the chosen scaling method?">
+                            <option value="no" selected="True">No</option>
+                            <option value="yes">Yes</option>
+                        </param>
+                    </when>
+                    <when value="no" />
+                </conditional>
+                <!--
+                ############################
+                ## Running MultiGPS
+                ############################
+                -->
+                <param  name="nomodelupdate" type="select" label="Perform binding model updates?">
+                    <option value="yes" selected="True">Yes</option>
+                    <option value="no">No</option>
+                </param>
+                <param name="minmodelupdateevents" type="integer" value="500" min="0" label="Minimum number of events to support an update of the read distribution" />
+                <param  name="nomodelsmoothing" type="select" label="Perform binding model smoothing?" help="Smoothing performed with a cubic spline.">
+                    <option value="yes" selected="True">Yes</option>
+                    <option value="no">No</option>
+                </param>
+                <param name="splinesmoothparam" type="integer" value="30" min="0" label="Spline smoothing parameter" />
+                <conditional name="gauss_model_smoothing_cond">
+                    <param  name="gaussmodelsmoothing" type="select" label="Use Gaussian model smoothing?" help="Select No to smooth with a cubic spline.">
+                        <option value="no" selected="True">No</option>
+                        <option value="yes">Yes</option>
+                    </param>
+                    <when value="no" />
+                    <when value="yes">
+                        <param name="gausssmoothparam" type="integer" value="3" min="0" label="Smoothing factor" help="Gaussian smoothing standard deviation." />
+                    </when>
+                </conditional>
+                <param  name="jointinmodel" type="select" label="Allow joint events in model updates?">
+                    <option value="no" selected="True">No</option>
+                    <option value="yes">Yes</option>
+                </param>
+                <param  name="fixedmodelrange" type="select" label="Keep binding model range fixed to inital size?" help="Select No to vary automatically">
+                    <option value="no" selected="True">No</option>
+                    <option value="yes">Yes</option>
+                </param>
+                <param name="prlogconf" type="integer" value="-6" label="Poisson log threshold for potential region scanning" />
+                <param name="fixedalpha" type="integer" value="0" min="0" label="Impose this alpha" help="This is a sparse prior on binding events in the MultiGPS model. It can be interpreted as a minimum number of reads that each binding event must be responsible for in the model. A zero value will estimate the alpha automatically." />
+                <param name="alphascale" type="float" value="1.0" min="0" label="Alpha scaling factor" />
+                <param  name="mlconfignotshared" type="select" label="Share component configs in the ML step?" help="Mainly affects the quantification of binding levels for binding events that are not shared but are located at nearby locations across experiments.">
+                    <option value="yes" selected="True">Yes</option>
+                    <option value="no">No</option>
+                </param>
+                <param name="exclude" type="data" optional="True" format="txt" label="Optional file containing a set of regions to ignore during MultiGPS training" help="Ideally exclude the mitochondrial genome and other blacklisted regions that contain artifactual accumulations of reads in both ChIP-seq and control experiments." />
+                <!--
+                ############################
+                ## MultiGPS priors
+                ############################
+                -->
                 <conditional name="use_motif_cond">
                     <param name="use_motif" type="select" label="Perform motif-finding or use a motif-prior?">
                         <option value="no" selected="True">No</option>
                         <option value="yes">Yes</option>
                     </param>
                     <when value="yes">
+                        <!--
+                        ############################
+                        ## Specifying the genome
+                        ############################
+                        -->
                         <conditional name="reference_genome_cond">
                             <param name="reference_genome_source" type="select" label="Choose the source for the reference genome">
-                                <option value="cached">Locally Cached</option>
-                                <option value="history">From History</option>
+                                <option value="cached">locally cached</option>
+                                <option value="history">from history</option>
                             </param>
                             <when value="cached">
                                 <param name="reference_genome" type="select" label="Using reference genome">
                                     <options from_data_table="all_fasta">
-                                        <filter type="data_meta" key="dbkey" ref="input_items.input" column="1"/>
+                                        <filter type="data_meta" key="dbkey" ref="input" column="1"/>
                                     </options>
                                     <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>
                                 </param>
@@ -189,12 +335,17 @@
                             <when value="history">
                                 <param name="reference_genome" type="data" format="fasta" label="Using reference genome">
                                     <options>
-                                        <filter type="data_meta" key="dbkey" ref="input_items.input"/>
+                                        <filter type="data_meta" key="dbkey" ref="input"/>
                                     </options>
                                     <validator type="no_options" message="The current history does not include a fasta dataset with the build associated with the selected input file"/>
                                 </param>
                             </when>
                         </conditional>
+                        <!--
+                        ############################
+                        ## MultiGPS priors options
+                        ############################
+                        -->
                         <conditional name="multigps_priors_cond">
                             <param name="multigps_priors" type="select" label="Specify MultiGPS priors options?">
                                 <option value="no" selected="True">No</option>
@@ -202,13 +353,13 @@
                             </param>
                             <when value="no" />
                             <when value="yes">
-                                <param name="positional_prior" type="select" label="Perform inter-experiment positional prior?">
+                                <param name="noposprior" type="select" label="Perform inter-experiment positional prior?">
                                     <option value="yes" selected="True">Yes</option>
                                     <option value="no">No</option>
                                 </param>
-                                <param name="events_shared_probability" type="float" value="0.9" min="0.0" label="Probability that events are shared across conditions" />
+                                <param name="probshared" type="float" value="0.9" min="0.0" label="Probability that events are shared across conditions" />
                                 <conditional name="both_motifs_cond">
-                                    <param name="motifs" type="select" label="Perform both motif-finding and motif priors?">
+                                    <param name="nomotifs" type="select" label="Perform both motif-finding and motif priors?">
                                         <option value="yes" selected="True">Yes</option>
                                         <option value="no">No</option>
                                     </param>
@@ -216,8 +367,8 @@
                                         <expand macro="motif_finding_params" />
                                     </when>
                                     <when value="no">
-                                        <conditional name="motif_finding_only_cond">
-                                            <param name="motif_finding_only" type="select" label="Perform motif-finding only?" help="Selecting Yes turns off motif priors.">
+                                        <conditional name="nomotifprior_cond">
+                                            <param name="nomotifprior" type="select" label="Perform motif-finding only?" help="Selecting Yes turns off motif priors.">
                                                 <option value="no" selected="True">No</option>
                                                 <option value="yes">Yes</option>
                                             </param>
@@ -233,79 +384,11 @@
                     </when>
                     <when value="no" />
                 </conditional>
-                <param name="max_training_rounds" type="integer" value="3" min="0" label="Maximum number of training rounds for updating binding event read distributions" />
-                <param name="exclude_file" type="data" optional="True" format="txt" label="Optional file containing a set of regions to ignore during MultiGPS training" help="Ideally exclude the mitochondrial genome and other blacklisted regions that contain artifactual accumulations of reads in both ChIP-seq and control experiments." />
-                <param  name="binding_model_updates" type="select" label="Perform binding model updates?">
-                    <option value="yes" selected="True">Yes</option>
-                    <option value="no">No</option>
-                </param>
-                <param name="minmodelupdateevents" type="integer" value="0" min="0" label="Minimum number of events to support an update of the read distribution" />
-                <conditional name="binding_model_smoothing_cond">
-                    <param  name="binding_model_smoothing" type="select" label="Perform binding model smoothing?" help="Smoothing performed with a cubic spline.">
-                        <option value="yes" selected="True">Yes</option>
-                        <option value="no">No</option>
-                    </param>
-                    <when value="yes">
-                        <param name="spline_smooth" type="integer" value="0" min="0" label="Smoothing factor" />
-                    </when>
-                    <when value="no">
-                        <conditional name="gauss_model_smoothing_cond">
-                            <param  name="gauss_model_smoothing" type="select" label="Use Gaussian model smoothing?" help="Select No to smooth with a cubic spline.">
-                                <option value="no" selected="True">No</option>
-                                <option value="yes">Yes</option>
-                            </param>
-                            <when value="yes">
-                                <param name="gauss_smooth" type="integer" value="3" min="0" label="Smoothing factor" help="Gaussian smoothing standard deviation." />
-                            </when>
-                            <when value="no" />
-                        </conditional>
-                    </when>
-                </conditional>
-                <param  name="joint_in_model" type="select" label="Allow joint events in model updates?">
-                    <option value="no" selected="True">No</option>
-                    <option value="yes">Yes</option>
-                </param>
-                <param  name="ml_config_not_shared" type="select" label="Share component configs in the ML step?">
-                    <option value="yes" selected="True">Yes</option>
-                    <option value="no">No</option>
-                </param>
-                <conditional name="reads_limits_options_cond">
-                    <param name="reads_limits" type="select" label="Set limits on how many reads can have their 5′ end at the same position in each replicate?" help="Default behavior is to estimate a global per-base limit from a Poisson distribution parameterized by the number of reads divided by the number of mappable bases in the genome. The per-base limit is set as the count corresponding to the 10^-7 probability level from the Poisson.">
-                        <option value="no" selected="True">No</option>
-                        <option value="yes">Yes</option>
-                    </param>
-                    <when value="no" />
-                    <when value="yes">
-                        <param name="fixedpb" type="integer" value="0" min="0" label="Fixed per-base limit" />
-                        <param name="poissongausspb" type="integer" value="0" min="0" label="Poisson threshold for filtering per base" help="Filter per base using the specified Poisson threshold parameterized by a local Gaussian sliding window" />
-                        <param name="non_unique_reads" type="select" label="Use non-unique reads">
-                            <option value="no" selected="True">No</option>
-                            <option value="yes">Yes</option>
-                        </param>
-                    </when>
-                </conditional>
-                <conditional name="scale_data_cond">
-                    <param  name="scale_data" type="select" label="Set data scaling parameters?" help="Default behavior is to scale signal to corresponding controls using regression on the set of signal/control ratios in 10Kbp windows.">
-                        <option value="no" selected="True">No</option>
-                        <option value="yes">Yes</option>
-                    </param>
-                    <when value="yes">
-                        <param  name="scaling" type="select" label="Use signal vs control scaling?">
-                            <option value="yes" selected="True">Yes</option>
-                            <option value="no">No</option>
-                        </param>
-                        <param  name="medianscale" type="select" label="Use the median signal/control ratio as the scaling factor?">
-                            <option value="yes" selected="True">Yes</option>
-                            <option value="no">No</option>
-                        </param>
-                        <param  name="sesscale" type="select" label="Estimate scaling factor by SES?" help="SES: Diaz, et al. Stat Appl Genet Mol Biol. 2012">
-                            <option value="yes" selected="True">Yes</option>
-                            <option value="no">No</option>
-                        </param>
-                        <param name="scalewin" type="integer" min="0" value="10000" label="Window size for estimating scaling ratios" help="The value is the number of base pairs.  Use something much smaller than the default if scaling via SES (e.g. 200)." />
-                    </when>
-                    <when value="no" />
-                </conditional>
+                <!--
+                ############################
+                ## Reporting binding events
+                ############################
+                -->
                 <conditional name="report_binding_events_cond">
                     <param name="report_binding_events" type="select" label="Report binding events?">
                         <option value="no" selected="True">No</option>
@@ -313,49 +396,46 @@
                     </param>
                     <when value="no" />
                     <when value="yes">
-                        <param name="minqvalue" type="integer" min="0" value="0" label="Minimum Q-value (corrected p-value) of reported binding events" />
-                        <param name="minfold" type="integer" min="0" value="0" label="Minimum event fold-change vs scaled control" />
-                        <param name="diff_enrichment_tests" type="select" label="Run differential enrichment tests?">
+                        <param name="minqvalue" type="float" min="0" value="0.001" label="Minimum Q-value (corrected p-value) of reported binding events" />
+                        <param name="minfold" type="float" min="0" value="1.5" label="Minimum event fold-change vs scaled control" />
+                        <param name="nodifftests" type="select" label="Run differential enrichment tests?">
                             <option value="yes" selected="True">Yes</option>
                             <option value="no">No</option>
                         </param>
-                        <param name="edgerod" type="integer" min="0" value="0" label="EdgeR over-dispersion parameter value" />
-                        <param name="diffp" type="integer" min="0" value="0" label="Minimum p-value for reporting differential enrichment" />
+                        <param name="edgerod" type="float" min="0" value="0.15" label="EdgeR over-dispersion parameter value" />
+                        <param name="diffp" type="float" min="0" value="0.01" label="Minimum p-value for reporting differential enrichment" />
                     </when>
                 </conditional>
             </when>
             <when value="hide"/>
         </conditional>
+        <!--
         <param name="output_process_log" type="select" label="Output MultiGPS process log?">
             <option value="no" selected="True">No</option>
             <option value="yes">Yes</option>
         </param>
+        -->
     </inputs>
     <outputs>
+        <!--
         <data name="output_process" format="txt" label="${tool.name} on ${on_string} (process log)">
             <filter>output_process_log == "yes"</filter>
         </data>
+        -->
         <data name="output_html" format="html"/>
     </outputs>
     <tests>
         <test>
-            <repeat name="input_items">
-                <param name="input" value="sacCer3_1.scidx" ftype="scidx" dbkey="sacCer3"/>
-                <param name="signal_control" value="Signal"/>
-                <param name="condition_name" value="Abf1"/>
-                <param name="replicate_name" value="1"/>
-                <param name="read_distribution" value="no"/>
-                <param name="fixed_read_count" value="no"/>
-            </repeat>
+            <param name="input" value="sacCer3_1.scidx" ftype="scidx" dbkey="sacCer3"/>
             <param name="binding_model_smoothing" value="no"/>
-            <param name="gauss_model_smoothing" value="yes"/>
-            <param name="gauss_smooth" value="3"/>
+            <param name="gaussmodelsmoothing" value="yes"/>
+            <param name="gausssmoothparam" value="3"/>
             <param name="use_motif" value="yes"/>
             <param name="reference_genome_source" value="history"/>
             <param name="reference_genome" value="phiX.fasta" dbkey="phiX"/>
-            <param name="num_motifs" value="3"/>
-            <param name="min_motif_width" value="6"/>
-            <param name="max_motif_width" value="16"/>
+            <param name="memenmotifs" value="3"/>
+            <param name="mememinw" value="6"/>
+            <param name="mememaxw" value="16"/>
             <param name="output_process_log" value="yes"/>
             <output name="output_process" file="output_process1.txt" ftype="txt" lines_diff="12"/>
             <output name="output_html" file="output_html1.html" ftype="html" lines_diff="12"/>
--- a/multigps_macros.xml	Fri Jan 15 10:07:58 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<macros>
-    <xml name="requirements">
-        <requirements>
-            <requirement type="package" version="4.11.0">meme</requirement>
-            <requirement type="package" version="3.11.0">edger</requirement>
-        </requirements>
-    </xml>
-    <xml name="stdio">
-        <stdio>
-            <exit_code range="1:"/>
-            <exit_code range=":-1"/>
-            <regex match="Error:"/>
-            <regex match="Exception:"/>
-        </stdio>
-    </xml>
-    <xml name="rd_cond">
-        <conditional name="read_distribution_cond">
-            <param name="read_distribution" type="select" label="Use read distribution file for this replicate?" help="Selecting No uses default distribution.">
-                <option value="no" selected="True">No</option>
-                <option value="yes">Yes</option>
-            </param>
-            <when value="yes">
-                <param name="read_distribution_file" type="data" format="tabular" label="Read distribution file" />
-            </when>
-            <when value="no" />
-        </conditional>
-    </xml>
-    <xml name="frc_param">
-        <param  name="fixed_read_count" type="select" label="Use fixed per-base read count limit for this replicate?" help="Selecting No uses a global per-base limit that is estimated from a Poisson distribution.">
-            <option value="no" selected="True">No</option>
-            <option value="yes">Yes</option>
-        </param>
-    </xml>
-    <xml name="motif_finding_params">
-        <param name="num_motifs" type="integer" min="0" value="3" label="Number of motifs MEME should find for each condition" />
-        <param name="min_motif_width" type="integer" min="0" value="6" label="Minimum motif width for MEME" />
-        <param name="max_motif_width" type="integer" min="0" value="16" label="Maximum motif width for MEME" />
-    </xml>
-    <xml name="citations">
-        <citations>
-            <citation type="doi">10.1371/journal.pcbi.1003501</citation>
-        </citations>
-    </xml>
-</macros>
Binary file multigps_v0.5.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/exclude_file.txt	Tue Dec 13 13:02:36 2016 -0500
@@ -0,0 +1,19 @@
+chrM:1-16299
+chrUn_random:2612635-5900358
+chr2:98502275-98507644
+chr4:70039119-70039374
+chr6:103599051-103599300
+chr9:2999747-3039282
+chr9:24346417-24346673
+chr9:35112714-35113200
+chr12:3109856-3110140
+chr15:74916289-74917568
+chr17:39978367-39992180
+chr17:13498782-13499104
+chr18:3004587-3011375
+chr18:40467612-40468123
+chr18:43135589-43135697
+chrX:73843909-73844533
+chrX:139917541-139917665
+chrX:166406859-166448047
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/reb1_chipexo.distrib.tabular	Tue Dec 13 13:02:36 2016 -0500
@@ -0,0 +1,151 @@
+-75	5.127879107699016E-4
+-74	5.591849642345921E-4
+-73	5.978066901355474E-4
+-72	6.224861874065494E-4
+-71	6.356594284636885E-4
+-70	6.419131040936336E-4
+-69	6.458339050830534E-4
+-68	6.520085222186162E-4
+-67	6.642177211211218E-4
+-66	6.830185667478948E-4
+-65	7.08162198890391E-4
+-64	7.393997573400663E-4
+-63	7.764823818883762E-4
+-62	8.191343740323966E-4
+-61	8.669726820916808E-4
+-60	9.195874160914019E-4
+-59	9.765686860567337E-4
+-58	0.0010375066020128487
+-57	0.0011017330590527004
+-56	0.00116754709254036
+-55	0.0012329895229076788
+-54	0.0012961011705865087
+-53	0.0013549228560087003
+-52	0.0014098242005801068
+-51	0.0014704900296025876
+-50	0.0015489339693520027
+-49	0.0016571696461042138
+-48	0.0018072106861350802
+-47	0.0020044404349732823
+-46	0.002227721115158772
+-45	0.0024492846684843195
+-44	0.0026413630367426947
+-43	0.0027761881617266704
+-42	0.002836351287151588
+-41	0.002845880864423082
+-40	0.0028391646468693605
+-39	0.00285059038781863
+-38	0.0029145458405990974
+-37	0.003054999456921908
+-36	0.003254242482029955
+-35	0.003484146859549071
+-34	0.0037165845331050868
+-33	0.003923427446323833
+-32	0.004091558501282984
+-31	0.0042679044338675715
+-30	0.004514402938414466
+-29	0.004892991709260541
+-28	0.005465608440742671
+-27	0.006242892200593844
+-26	0.007030287550131535
+-25	0.007581940424069329
+-24	0.007651996757120818
+-23	0.006994602483999588
+-22	0.00556114033057625
+-21	0.004091940187349483
+-20	0.003524568735974988
+-19	0.004796592658108461
+-18	0.0088455786354056
+-17	0.016163107580678765
+-16	0.02545681733136696
+-15	0.034988359956065855
+-14	0.0430193875233711
+-13	0.04781155210187838
+-12	0.048136600329994075
+-11	0.044806657125367494
+-10	0.03914394197545865
+-9	0.032470674367727596
+-8	0.026109073789634344
+-7	0.021118332556040682
+-6	0.017505534291415395
+-5	0.015014735447629032
+-4	0.013389992476552141
+-3	0.012375361830055257
+-2	0.011749289178588132
+-1	0.011427777066917324
+0	0.0113612172583886
+1	0.011500001516347726
+2	0.011794521604140462
+3	0.012179966617556161
+4	0.012530714982158502
+5	0.012705942455954753
+6	0.012564824796952177
+7	0.01196653776315804
+8	0.010832880494232516
+9	0.009336145656447381
+10	0.007711249297727332
+11	0.00619310746599705
+12	0.005016636209181219
+13	0.004352368176832731
+14	0.0041133024250172585
+15	0.004148054611428677
+16	0.004305240393760864
+17	0.004433475429707692
+18	0.004414343407977009
+19	0.004261300141332552
+20	0.004020769473552029
+21	0.003739175248413146
+22	0.0034629413096936134
+23	0.0032292248729375262
+24	0.003038116640754531
+25	0.002880440687520661
+26	0.002747021087611949
+27	0.0026286819154044297
+28	0.0025185949491149514
+29	0.002419322782323626
+30	0.00233577571245138
+31	0.002272864036919143
+32	0.0022354980531478397
+33	0.0022249651042246296
+34	0.002228060715901593
+35	0.0022279574595970427
+36	0.002207827906729291
+37	0.0021508446287166493
+38	0.0020466541811146616
+39	0.0019107990560277952
+40	0.0017652957296977485
+41	0.00163216067836622
+42	0.0015334103782749082
+43	0.0014847743229281654
+44	0.0014768340748809537
+45	0.0014938842139508909
+46	0.0015202193199555926
+47	0.0015401339727126753
+48	0.0015409295209052893
+49	0.0015219343886787202
+50	0.0014854837690437867
+51	0.0014339128550113077
+52	0.0013695568395921023
+53	0.0012956931215641026
+54	0.0012193679227736943
+55	0.0011485696708343764
+56	0.0010912867933596476
+57	0.0010555077179630066
+58	0.00104649552274266
+59	0.0010586118877356464
+60	0.0010834931434637114
+61	0.0011127756204486014
+62	0.0011380956492120624
+63	0.0011531119928568795
+64	0.0011595731448099929
+65	0.0011612500310793827
+66	0.0011619135776730276
+67	0.001165334710598908
+68	0.001173884139795982
+69	0.00118433171092713
+70	0.0011920470535862109
+71	0.0011923997973670843
+72	0.001180759571863609
+73	0.0011542417959203714
+74	0.0011169450453848613
+75	0.001074713685355297
--- a/tool-data/all_fasta.loc.sample	Fri Jan 15 10:07:58 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#This file lists the locations and dbkeys of all the fasta files
-#under the "genome" directory (a directory that contains a directory
-#for each build). The script extract_fasta.py will generate the file
-#all_fasta.loc. This file has the format (white space characters are
-#TAB characters):
-#
-#<unique_build_id>  <dbkey> <display_name>  <file_path>
-#
-#So, all_fasta.loc could look something like this:
-#
-#apiMel3    apiMel3 Honeybee (Apis mellifera): apiMel3  /path/to/genome/apiMel3/apiMel3.fa
-#hg19canon  hg19    Human (Homo sapiens): hg19 Canonical    /path/to/genome/hg19/hg19canon.fa
-#hg19full   hg19    Human (Homo sapiens): hg19 Full /path/to/genome/hg19/hg19full.fa
-#
-#Your all_fasta.loc file should contain an entry for each individual
-#fasta file. So there will be multiple fasta files for each build,
-#such as with hg19 above.
-#
--- a/tool_dependencies.xml	Fri Jan 15 10:07:58 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
-<tool_dependency>
-    <package name="meme" version="4.11.0">
-        <repository changeset_revision="1c44baf77b0e" name="package_meme_4_11_0" owner="iuc" toolshed="https://testtoolshed.g2.bx.psu.edu" />
-    </package>
-    <package name="edger" version="3.11.0">
-        <repository changeset_revision="e53317231321" name="package_r_edger_3_11_0" owner="iuc" toolshed="https://testtoolshed.g2.bx.psu.edu" />
-    </package>
-</tool_dependency>