Repository 'pal_finder'
hg clone https://toolshed.g2.bx.psu.edu/repos/pjbriggs/pal_finder

Changeset 0:3f908e7fff4f (2014-12-11)
Next changeset 1:771ebe02636f (2015-03-23)
Commit message:
Uploaded first version to toolshed.
added:
README.rst
pal_finder_filter.pl
pal_finder_wrapper.sh
pal_finder_wrapper.xml
test-data/454_in.fa
test-data/454_microsat_types.out
test-data/454_microsats.out
test-data/illuminaPE_filtered_microsats.out
test-data/illuminaPE_microsat_types.out
test-data/illuminaPE_microsats.out
test-data/illuminaPE_r1.fq
test-data/illuminaPE_r2.fq
tool_dependencies.xml
b
diff -r 000000000000 -r 3f908e7fff4f README.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README.rst Thu Dec 11 09:23:24 2014 -0500
b
@@ -0,0 +1,106 @@
+pal_finder: find microsatellite repeats and design PCR primers
+==============================================================
+
+Galaxy tool wrapper for the pal_finder microsatellite and PCR primer design script.
+
+Automated installation
+======================
+
+Installation via the Galaxy Tool Shed will take of installing the tool wrapper and
+the pal_finder and primer3_core programs, and setting the appropriate environment
+variables.
+
+Manual Installation
+===================
+
+There are two files to install:
+
+- ``pal_finder_wrapper.xml`` (the Galaxy tool definition)
+- ``pal_finder_wrapper.sh`` (the shell script wrapper)
+
+The suggested location is in a ``tools/pal_finder_wrapper/`` folder. You will then
+need to modify the ``tools_conf.xml`` file to tell Galaxy to offer the tool
+by adding the line:
+
+    <tool file="pal_finder/pal_finder_wrapper.xml" />
+
+You will also need to install the pal_finder and primer3 packages:
+
+- ``pal_finder`` can be obtained from http://sourceforge.net/projects/palfinder/
+- ``Primer3`` version 2.0.0-alpha (see the pal_finder installation notes) can be
+  obtained from http://primer3.sourceforge.net/releases.php
+
+The tool wrapper must be able to locate the pal_finder Perl script, the example
+pal_finder config.txt and simple.ref data files, and the primer3_core program - the
+locations of these are taken from the following enviroment variables which you will
+need to set manually:
+
+- ``PALFINDER_SCRIPT_DIR``: location of the pal_finder Perl script (defaults to /usr/bin)
+- ``PALFINDER_DATA_DIR``: location of the pal_finder data files (specifically config.txt
+  and simple.ref; defaults to /usr/share/pal_finder_v0.02.04)
+- ``PRIMER3_CORE_EXE``: name of the primer3_core program, which should include the
+  full path if it's not on the Galaxy user's PATH (defaults to primer3_core)
+
+If you want to run the functional tests, copy the sample test files under
+sample test files under Galaxy's ``test-data/`` directory. Then:
+
+    ./run_tests.sh -id microsat_pal_finder
+
+You will need to have set the environment variables above.
+
+History
+=======
+
+========== ======================================================================
+Version    Changes
+---------- ----------------------------------------------------------------------
+0.02.04.1  - Add option to run Graeme Fox's ``pal_finder_filter.pl`` script to
+             filter and sort the pal_finder output (Illumina input data only).
+             Update version number to reflect the pal_finder version.
+0.0.6      - Allow input data to be either Illumina paired-end data in fastq
+             format or single-end 454 data in fasta format.
+0.0.5      - Allow custom mispriming library to be specified; added
+             ``tool_dependencies.xml`` file to install pal_finder and primer3
+             programs  and configure environment for Galaxy automatically.
+0.0.4      - Added more custom options for primer3_core for selecting primers on
+             size, GC and melting temperature criteria.
+0.0.3      - Check that pal_finder script & config file, and primer3_core
+             executable are all available; move PRIMER_MIN_TM parameter to new
+             "custom" section for primer3 settings
+0.0.2      - Updated pal_finder_wrapper.sh to allow locations of pal_finder Perl
+             script, data files and primer_core3 program to be set via environment
+             variables
+0.0.1      - Initial version
+========== ======================================================================
+
+
+Developers
+==========
+
+This tool is developed on the following GitHub repository:
+https://github.com/fls-bioinformatics-core/galaxy-tools/tree/master/pal_finder
+
+For making the "Galaxy Tool Shed" http://toolshed.g2.bx.psu.edu/ tarball I use
+the ``package_pal_finder.sh`` script.
+
+
+Licence (MIT)
+=============
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
b
diff -r 000000000000 -r 3f908e7fff4f pal_finder_filter.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pal_finder_filter.pl Thu Dec 11 09:23:24 2014 -0500
[
@@ -0,0 +1,112 @@
+############################################################
+# Graeme Fox  -  25/09/2014 - graeme.fox@manchester.ac.uk
+#
+# Program to filter output from pal_finder/primer3 workflow
+#
+# Filters output based on "Primers found (1=y,0=n)" and 
+# "occurrences of forward/reverse amplifiable primer in reads".
+# Filters out any non-perfect microsatellites.
+# Ranks microsatellites by motif size (largest first)
+#
+# Usage:
+# Give it the file that ends with:
+# "(microsatellites_with_read_IDs_and_primer_pairs)].txt"
+#
+# with the following syntax: 
+# perl pal_finder_filter.pl /path/to/input/file
+#
+# File will be created called "pal_finder_filter_output.txt"
+# in the current directory
+############################################################
+
+#!/usr/bin/perl -w
+use strict;
+
+my @lines;                                   
+my @output;                                  
+my $outfile = 'pal_finder_filter_output.txt';     
+
+# Open the file for reading
+my $filename = $ARGV[0];   
+open (my $file, '<', $filename);  
+
+# Grab the headers and store them 
+my $header;
+while (my $line = <$file>)
+{
+  if ($line =~ m/^readPair/) {
+# push (@output, $line)             
+ $header = $line;
+ } else {
+
+# Send everything else to array for sorting
+ push (@lines, $line);                  
+ }
+}
+close $file;
+chomp (@lines);
+
+############################################################
+# Filter the file on the "Primers found (1=y,0=n)" column
+# ie. Drop all the lines which do not have primer sequences
+############################################################
+my @temporary1;
+my @temporary2;
+foreach (@lines) { 
+@temporary1 = split(/\t/, $_);
+ if ($temporary1[5] == 1) {
+ push (@temporary2, $_);
+ }
+}
+
+############################################################
+# Filter any lines which do not have "1" in the "Occurances 
+# of Reverse/Forward Primer in Reads" field
+############################################################
+my @temporary3;
+my @temporary4;
+foreach (@temporary2) { 
+@temporary3 = split(/\t/, $_);
+ if ($temporary3[16] == 1 && $temporary3[15] == 1) {
+ push (@temporary4, $_);
+ }
+}
+
+############################################################
+# Filter any non-perfect repeats
+############################################################
+my @temporary5;
+my @temporary6;
+my $count;
+foreach (@temporary4) { 
+ @temporary5 = split(/\t/, $_);
+ $count = ($temporary5[1] =~ tr/\(//);
+ if ($count == 1) {
+ push (@temporary6, $_);
+ }
+}
+############################################################
+# Get size of repeat motif. Order by size (largest first)
+############################################################
+my @temporary7;
+my @temporary8;
+my $motif;
+my $count2 = 2;
+while ($count2 < 10) {
+ foreach (@temporary6) {
+ @temporary7 = split(/\t/, $_);  
+ #get size of motif:
+ $motif = () = ($temporary7[1] =~ /[A-Z]/gi );  
+ if ($motif == $count2) {
+ unshift (@output, join( "\t", @temporary7),"\n");
+ }
+ }
+$count2++;
+}
+############################################################
+# Open and populate the output file
+############################################################
+unshift (@output, $header);
+open (FILE, "> $outfile") || die "Problem opening $outfile\n";
+print FILE @output;
+close(FILE);
b
diff -r 000000000000 -r 3f908e7fff4f pal_finder_wrapper.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pal_finder_wrapper.sh Thu Dec 11 09:23:24 2014 -0500
[
b'@@ -0,0 +1,334 @@\n+#!/bin/sh\n+#\n+# pal_finder_wrapper.sh: run pal_finder perl script as a Galaxy tool\n+#\n+# Usage: run_palfinder.sh FASTQ_R1 FASTQ_R2 MICROSAT_SUMMARY PAL_SUMMARY FILTERED_MICROSATS [OPTIONS]\n+#        run_palfinder.sh --454    FASTA    MICROSAT_SUMMARY PAL_SUMMARY [OPTIONS]\n+#\n+# Options:\n+#\n+# --primer-prefix PREFIX: prefix added to the beginning of all primer names (prPrefixName)\n+# --2merMinReps N: miniumum number of 2-mer repeat units to detect (0=ignore units of this size)\n+# --3merMinReps N\n+# --4merMinReps N\n+# --5merMinReps N\n+# --6merMinReps N\n+# --primer-mispriming-library FASTA: specify a Fasta file with sequences to avoid amplifying\n+# --primer-opt-size VALUE: optimum primer length\n+# --primer-min-size VALUE: minimum acceptable primer length\n+# --primer-max-size VALUE: maximum acceptable primer length\n+# --primer-min-gc VALUE: minimum allowable percentage of Gs and Cs in any primer\n+# --primer-max-gc VALUE: maximum allowable percentage of Gs and Cs\n+# --primer-gc-clamp VALUE: number of consecutive Gs and Cs at 3\' end of both left and right primer\n+# --primer-max-end-gc VALUE: max number of Gs or Cs in last five 3\' bases of left or right primer\n+# --primer-min-tm VALUE: minimum acceptable melting temperature (Celsius) for a primer oligo\n+# --primer-max-tm VALUE: maximum acceptable melting temperature (Celsius)\n+# --primer-opt-tm VALUE: optimum melting temperature (Celsius)\n+# --primer-pair-max-diff-tm VALUE: max difference between melting temps of left & right primers\n+# --output_config_file FNAME: write a copy of the config.txt file to FNAME\n+# --filter_microsats FNAME: run Graeme Fox\'s Perl script to filter and sort the\n+#                           microsatellites from pal_finder and write to FNAME\n+#\n+# pal_finder is available from http://sourceforge.net/projects/palfinder/\n+#\n+# primer3 is available from http://primer3.sourceforge.net/releases.php\n+# (nb needs version 2.0.0-alpha)\n+#\n+# Explicitly set the locations of the pal_finder script, data files and the primer3\n+# executable by setting the following variables in the environment:\n+#\n+#  * PALFINDER_SCRIPT_DIR: location of the pal_finder Perl script (defaults to\n+#    /usr/bin)\n+#  * PALFINDER_DATA_DIR: location of the pal_finder data files (specifically\n+#    config.txt and simple.ref; defaults to /usr/share/pal_finder_v0.02.04)\n+#  * PRIMER3_CORE_EXE: name of the primer3_core program, which should include the\n+#    full path if it\'s not on the Galaxy user\'s PATH (defaults to primer3_core)\n+#\n+echo $*\n+#\n+# Initialise locations of scripts, data and executables\n+#\n+# Set these in the environment to overide at execution time\n+: ${PALFINDER_SCRIPT_DIR:=/usr/bin}\n+: ${PALFINDER_DATA_DIR:=/usr/share/pal_finder_v0.02.04}\n+: ${PRIMER3_CORE_EXE:=primer3_core}\n+#\n+# Filter script is in the same directory as this script\n+PALFINDER_FILTER_PL=$(dirname $0)/pal_finder_filter.pl\n+if [ ! -f $PALFINDER_FILTER_PL ] ; then\n+    echo No pal_finder_filter.pl script >&2\n+    exit 1\n+fi\n+#\n+# Check that we have all the components\n+function have_program() {\n+    local program=$1\n+    local got_program=$(which $program 2>&1 | grep "no $(basename $program) in")\n+    if [ -z "$got_program" ] ; then\n+\techo yes\n+    else\n+\techo no\n+    fi\t\n+}\n+if [ "$(have_program $PRIMER3_CORE_EXE)" == "no" ] ; then\n+    echo "ERROR primer3_core missing: ${PRIMER3_CORE_EXE} not found" >&2\n+    exit 1\n+fi\n+if [ ! -f "${PALFINDER_DATA_DIR}/config.txt" ] ; then\n+    echo "ERROR pal_finder config.txt not found in ${PALFINDER_DATA_DIR}" >&2\n+    exit 1\n+fi\n+if [ ! -f "${PALFINDER_SCRIPT_DIR}/pal_finder_v0.02.04.pl" ] ; then\n+    echo "ERROR pal_finder_v0.02.04.pl not found in ${PALFINDER_SCRIPT_DIR}" >&2\n+    exit 1\n+fi\n+#\n+# Initialise parameters used in the config.txt file\n+PRIMER_PREFIX="test"\n+MIN_2_MER_REPS=6\n+MIN_3_MER_REPS=0\n+MIN_4_MER_REPS=0\n+MIN_5_MER_REPS=0\n+MIN_6_MER_REPS=0\n+PRIMER_MISPRIMING_LIBRARY=$PALFINDER_DATA_DIR/simple.ref\n+PRIMER_OPT_SIZE=\n+PRIMER_MAX_SIZE=\n+PRIMER_MI'..b' and R2 fastqs are the same file >&2\n+\texit 1\n+    fi\n+    ln -s $FASTQ_R1\n+    ln -s $FASTQ_R2\n+    fastq_r1=$(basename $FASTQ_R1)\n+    fastq_r2=$(basename $FASTQ_R2)\n+else\n+    # 454 data as input\n+    ln -s $FNA\n+    fna=$(basename $FNA)\n+fi\n+ln -s $PRIMER_MISPRIMING_LIBRARY\n+PRIMER_MISPRIMING_LIBRARY=$(basename $PRIMER_MISPRIMING_LIBRARY)\n+mkdir Output\n+#\n+# Copy in the default config.txt file\n+/bin/cp $PALFINDER_DATA_DIR/config.txt .\n+#\n+# Update the config.txt file with new values\n+function set_config_value() {\n+    local key=$1\n+    local value=$2\n+    local config_txt=$3\n+    if [ -z "$value" ] ; then\n+\techo "No value for $key, left as default"\n+    else\n+\techo Setting "$key" to "$value"\n+\tsed -i \'s,^\'"$key"\' .*,\'"$key"\'  \'"$value"\',\' $config_txt\n+    fi\n+}\n+# Input files\n+set_config_value platform $PLATFORM config.txt\n+if [ "$PLATFORM" == "Illumina" ] ; then\n+    set_config_value inputFormat fastq config.txt\n+    set_config_value pairedEnd 1 config.txt\n+    set_config_value inputReadFile $fastq_r1 config.txt\n+    set_config_value pairedReadFile $fastq_r2 config.txt\n+else\n+    set_config_value inputFormat fasta config.txt\n+    set_config_value pairedEnd 0 config.txt\n+    set_config_value input454reads $fna config.txt\n+fi\n+# Output files\n+set_config_value MicrosatSumOut Output/microsat_summary.txt config.txt\n+set_config_value PALsummaryOut Output/PAL_summary.txt config.txt\n+# Microsat info\n+set_config_value 2merMinReps $MIN_2_MER_REPS config.txt\n+set_config_value 3merMinReps $MIN_3_MER_REPS config.txt\n+set_config_value 4merMinReps $MIN_4_MER_REPS config.txt\n+set_config_value 5merMinReps $MIN_5_MER_REPS config.txt\n+set_config_value 6merMinReps $MIN_6_MER_REPS config.txt\n+# Primer3 settings\n+set_config_value primer3input Output/pr3in.txt config.txt\n+set_config_value primer3output Output/pr3out.txt config.txt\n+set_config_value primer3executable $PRIMER3_CORE_EXE config.txt\n+set_config_value prNamePrefix ${PRIMER_PREFIX}_ config.txt\n+set_config_value PRIMER_MISPRIMING_LIBRARY "$PRIMER_MISPRIMING_LIBRARY" config.txt\n+set_config_value PRIMER_OPT_SIZE "$PRIMER_OPT_SIZE" config.txt\n+set_config_value PRIMER_MIN_SIZE "$PRIMER_MIN_SIZE" config.txt\n+set_config_value PRIMER_MAX_SIZE "$PRIMER_MAX_SIZE" config.txt\n+set_config_value PRIMER_MIN_GC "$PRIMER_MIN_GC" config.txt\n+set_config_value PRIMER_MAX_GC "$PRIMER_MAX_GC" config.txt\n+set_config_value PRIMER_GC_CLAMP "$PRIMER_GC_CLAMP" config.txt\n+set_config_value PRIMER_MAX_END_GC "$PRIMER_MAX_END_GC" config.txt\n+set_config_value PRIMER_MIN_TM "$PRIMER_MIN_TM" config.txt\n+set_config_value PRIMER_MAX_TM "$PRIMER_MAX_TM" config.txt\n+set_config_value PRIMER_OPT_TM "$PRIMER_OPT_TM" config.txt\n+set_config_value PRIMER_PAIR_MAX_DIFF_TM "$PRIMER_PAIR_MAX_DIFF_TM" config.txt\n+#\n+# Run pal_finder\n+perl $PALFINDER_SCRIPT_DIR/pal_finder_v0.02.04.pl config.txt 2>&1 | tee pal_finder.log\n+#\n+# Check that log ends with "Done!!" message\n+if [ -z "$(tail -n 1 pal_finder.log | grep Done!!)" ] ; then\n+    echo ERROR pal_finder failed to complete successfully >&2\n+    exit 1\n+fi\n+#\n+# Run the pal_finder_filter.pl script from Graeme Fox\n+if [ ! -z "$FILTERED_MICROSATS" ] ; then\n+    perl $PALFINDER_FILTER_PL Output/PAL_summary.txt 2>&1\n+    if [ $? -ne 0 ] ; then\n+\techo ERROR pal_finder_filter.pl exited with non-zero status >&2\n+\texit 1\n+    elif [ ! -f pal_finder_filter_output.txt ] ; then\n+\techo ERROR no output from pal_finder_filter.pl >&2\n+\texit 1\n+    fi\n+fi\n+#\n+# Clean up\n+if [ -f Output/microsat_summary.txt ] ; then\n+    /bin/mv Output/microsat_summary.txt $MICROSAT_SUMMARY\n+fi\n+if [ -f Output/PAL_summary.txt ] ; then\n+    /bin/mv Output/PAL_summary.txt $PAL_SUMMARY\n+fi\n+if [ ! -z "$FILTERED_MICROSATS" ] && [ -f pal_finder_filter_output.txt ] ; then\n+    echo Moving pal_finder_filter_output.txt to $FILTERED_MICROSATS\n+    /bin/mv pal_finder_filter_output.txt $FILTERED_MICROSATS\n+fi\n+if [ ! -z "$OUTPUT_CONFIG_FILE" ] && [ -f config.txt ] ; then\n+    /bin/mv config.txt $OUTPUT_CONFIG_FILE\n+fi\n+##\n+#\n'
b
diff -r 000000000000 -r 3f908e7fff4f pal_finder_wrapper.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pal_finder_wrapper.xml Thu Dec 11 09:23:24 2014 -0500
b
b'@@ -0,0 +1,225 @@\n+<tool id="microsat_pal_finder" name="pal_finder" version="0.02.04.1">\n+  <description>Find microsatellite repeat elements sequencing reads and design PCR primers to amplify them</description>\n+  <command interpreter="bash">pal_finder_wrapper.sh\n+  #if str( $platform.platform_type ) == "illumina"\n+    $platform.input_fastq_r1 $platform.input_fastq_r2\n+  #else\n+    --454 $platform.input_fasta\n+  #end if\n+  $output_microsat_summary $output_pal_summary\n+  #if str( $platform.platform_type ) == "illumina" and $platform.filter_microsats\n+    --filter_microsats $output_filtered_microsats\n+  #end if\n+  #if $keep_config_file\n+    --output_config_file $output_config_file\n+  #end if\n+  --primer-prefix $primer_prefix\n+  --2merMinReps $min_2mer_repeats\n+  --3merMinReps $min_3mer_repeats\n+  --4merMinReps $min_4mer_repeats\n+  --5merMinReps $min_5mer_repeats\n+  --6merMinReps $min_6mer_repeats\n+  #if str( $primer.primer_options ) == "custom"\n+  --primer-opt-size $primer.primer_opt_size\n+  --primer-min-size $primer.primer_min_size\n+  --primer-max-size $primer.primer_max_size\n+  --primer-min-gc $primer.primer_min_gc\n+  --primer-max-gc $primer.primer_max_gc\n+  --primer-gc-clamp $primer.primer_gc_clamp\n+  --primer-max-end-gc $primer.primer_max_end_gc\n+  --primer-min-tm $primer.primer_min_tm\n+  --primer-max-tm $primer.primer_max_tm\n+  --primer-opt-tm $primer.primer_opt_tm\n+  --primer-pair-max-diff-tm $primer.primer_pair_max_diff_tm\n+  #end if\n+  #if str( $mispriming.mispriming_options ) == "custom"\n+  --primer-mispriming-library $mispriming.mispriming_library\n+  #end if\n+  </command>\n+  <requirements>\n+    <requirement type="package" version="0.02.04">pal_finder</requirement>\n+    <requirement type="package" version="2.0.0">primer3_core</requirement>\n+  </requirements>\n+  <inputs>\n+    <param name="primer_prefix" type="text" value="test" size="25" label="Primer prefix" help="This prefix will be added to the beginning of all primer names" />\n+    <conditional name="platform">\n+      <param name="platform_type" type="select" label="Sequencing platform used to generate data" help="Currently pal_finder only handles Illumina paired-end reads and 454 single-end reads" >\n+\t<option value="illumina" selected="true">Illumina</option>\n+\t<option value="454">454</option>\n+      </param>\n+      <when value="illumina">\n+\t<param name="input_fastq_r1" type="data" format="fastqsanger" label="Illumina fastq file (read 1)" />\n+\t<param name="input_fastq_r2" type="data" format="fastqsanger" label="Illumina fastq file (read 2)" />\n+\t<param name="filter_microsats" type="boolean" truevalue="True" falsevalue="False"\n+\t       label="Filter and sort the microsatellites" checked="True"\n+\t       help="Filter pal_finder results to only include lines with primer sequences and remove non-perfect repeats" />\n+      </when>\n+      <when value="454">\n+\t<param name="input_fasta" type="data" format="fasta" label="454 fasta file with raw reads" />\n+      </when>\n+    </conditional>\n+    <param name="min_2mer_repeats" type="integer" value="6" label="Minimum number of 2-mer repeat units to detect" help="Set to zero to ignore repeats of this n-mer unit" />\n+    <param name="min_3mer_repeats" type="integer" value="0" label="Minimum number of 3-mer repeat units" help="Set to zero to ignore repeats of this n-mer unit" />\n+    <param name="min_4mer_repeats" type="integer" value="0" label="Minimum number of 4-mer repeat units" help="Set to zero to ignore repeats of this n-mer unit" />\n+    <param name="min_5mer_repeats" type="integer" value="0" label="Minimum number of 5-mer repeat units" help="Set to zero to ignore repeats of this n-mer unit" />\n+    <param name="min_6mer_repeats" type="integer" value="0" label="Minimum number of 6-mer repeat units" help="Set to zero to ignore repeats of this n-mer unit" />\n+    <conditional name="mispriming">\n+      <param name="mispriming_options" type="select" label="Mispriming library to use" help="Specify file of nucleotide sequences to'..b'use the order and ignores the "name" attribute\n+      -->\n+      <output name="output_microsat_summary" file="illuminaPE_microsat_types.out" />\n+      <output name="output_pal_summary" file="illuminaPE_microsats.out" />\n+      <output name="output_filtered_microsats" file="illuminaPE_filtered_microsats.out" />\n+    </test>\n+    <test>\n+      <!-- Test with 454 input -->\n+      <param name="platform_type" value="454" />\n+      <param name="input_fasta" value="454_in.fa" ftype="fasta" />\n+      <!-- \n+      **NB** outputs have to be specified in order that they appear in the\n+      tool (which is the order they will be written to the history) - the\n+      test framework seems to use the order and ignores the "name" attribute\n+      -->\n+      <output name="output_microsat_summary" file="454_microsat_types.out" />\n+      <output name="output_pal_summary" file="454_microsats.out" />\n+    </test>\n+  </tests>\n+  <help>\n+.. class:: infomark\n+\n+**What it does**\n+\n+This tool runs the pal_finder program, which finds microsatellite repeat elements\n+directly from raw 454 or Illumina paired-end sequencing reads. It then designs PCR\n+primers to amplify these repeat loci (Potentially Amplifiable Loci: PAL).\n+\n+Optionally for Illumina data, the output from pal_finder can also be filtered to\n+remove any motifs without primer sequences, and with non-perfect microsatellites.\n+The microsatellites are then ranked by motif size (largest to smallest).\n+\n+Pal_finder runs the primer3_core program; information on the settings used in\n+primer3_core can be found in the Primer3 manual at\n+http://primer3.sourceforge.net/primer3_manual.htm\n+\n+-------------\n+\n+.. class:: infomark\n+\n+**Credits**\n+\n+This Galaxy tool has been developed by Peter Briggs within the Bioinformatics Core\n+Facility at the University of Manchester. It runs the pal_finder package which can be\n+obtained from http://sourceforge.net/projects/palfinder/:\n+\n+ * PLoS One. 2012; 7(2): e30953 "Rapid Microsatellite Identification from Illumina Paired-End\n+   Genomic Sequencing in Two Birds and a Snake" Todd A. Castoe, Alexander W. Poole, A. P.\n+   Jason de Koning, Kenneth L. Jones, Diana F. Tomback, Sara J. Oyler-McCance, Jennifer A.\n+   Fike, Stacey L. Lance, Jeffrey W. Streicher, Eric N. Smith, and David D. Pollock\n+\n+The paper is available at http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3279355/\n+\n+This tool is compatible with pal_finder version 0.02.04, which in turn runs the\n+primer3_core program (version 2.0.0-alpha is required, available from\n+http://primer3.sourceforge.net/releases.php):\n+\n+ * Steve Rozen and Helen J. Skaletsky (2000) "Primer3 on the WWW for general users and for\n+   biologist programmers". In: Krawetz S, Misener S (eds) Bioinformatics Methods and\n+   Protocols: Methods in Molecular Biology. Humana Press, Totowa, NJ, pp 365-386\n+\n+The paper is available at\n+http://purl.com/STEVEROZEN/papers/rozen-and-skaletsky-2000-primer3.pdf\n+\n+The filtering and sorting of the pal_finder output for Illumina data is performed\n+using a Perl script written by Graeme Fox at the University of Manchester, and which\n+is included with this tool.\n+\n+Please kindly acknowledge both this Galaxy tool, the pal_finder and primer3 packages, and\n+the utility script if you use it in your work.\n+  </help>\n+  <citations>\n+    <!--\n+    See https://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax#A.3Ccitations.3E_tag_set\n+    Can be either DOI or Bibtex\n+    Use http://www.bioinformatics.org/texmed/ to convert PubMed to Bibtex\n+    -->\n+    <citation type="doi">10.1371/journal.pone.0030953</citation>\n+    <citation type="bibtex">@Article{pmid10547847,\n+    Author="Rozen, S.  and Skaletsky, H. ",\n+    Title="{{P}rimer3 on the {W}{W}{W} for general users and for biologist programmers}",\n+    Journal="Methods Mol. Biol.",\n+    Year="2000",\n+    Volume="132",\n+    Pages="365--386",\n+    URL="{http://purl.com/STEVEROZEN/papers/rozen-and-skaletsky-2000-primer3.pdf}"\n+    }</citation>\n+  </citations>\n+</tool>\n'
b
diff -r 000000000000 -r 3f908e7fff4f test-data/454_in.fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/454_in.fa Thu Dec 11 09:23:24 2014 -0500
b
b'@@ -0,0 +1,200 @@\n+>FW1N29Q04EHWSH rank=0000058 x=1727.0 y=431.5 length=236\n+AATAGTATAATGCACAGCAGGCAGTTAACATGCATGTGAATTGTAACACATCTGTTATAC\n+ATTACTATTAAACTTTCTGACAGTTTCTCTTTAGGTGCTTGCCCTGCCAGGCTCCGTTGT\n+GTAGGGTTAAAGAACAGTCGTTTACCACCTCGCAACCTGGTAAGGATCCATAATATTCCC\n+GTAATGTGGTATCAGACAGTTTGCATTGGTGCTTAGTACCTTTTAAATTTAAATTT\n+>FW1N29Q04ECSPS rank=0000063 x=1668.0 y=3534.0 length=259\n+TTTATGAATTTATCTATGTAACATTTGGCTTGGATGCTTCCTTAATTTAGCAAAGTGTCA\n+TTGGCGCACTCCATCTCTTCCAACTAGTTTAATATTTTTATCATTTGACATCTGTTCAGT\n+TAGGAGCAGGTCAGTTCTAAGCAACTAAGCATATGTTGACAAACTTAGCAGAAATGTTTG\n+AGGCTTAGTCATTACTTACACAAGAGAGAGCAACAACTTACATTGATGAAATTGATCTTT\n+GCTTATTTTAACCAGTTAT\n+>FW1N29Q04ECFP3 rank=0000073 x=1664.5 y=3081.0 length=55\n+TTTGGCCCTGTATACCAATATATTGCGCTTTGATGATGCCTCCTCCCCACCCTTT\n+>FW1N29Q04EIN9F rank=0000081 x=1735.0 y=3265.0 length=51\n+ATATGAGTATATAGGCCAAGGGTGGGAGGAGGCATCATCAAGACACCATAT\n+>FW1N29Q04EE3VT rank=0000085 x=1695.5 y=727.0 length=223\n+GTTGCCTCATATTCTCTACGAGACATTAGTGTGGTGGTAATAGGATGCAGAATAACACTT\n+ATAATTCATAATTGTAATTCTTGAGTTAGAAGTGAGTTAGATAGAAAGACTCATAGTAAT\n+TAGGGATCTCACATGAGAAGGACACTTAGCAAAGGTAACAGATAGGACAGATGGCGGAGA\n+ATGCTCCAAATGACTCTGGTAAAATGACTAACAGTCAAGATAG\n+>FW1N29Q04ECD63 rank=0000097 x=1664.0 y=1101.0 length=199\n+TTCATGTCCTTCTCTATCACTCAGCCCTCCACTGTTCTCTCCCTCTCCGACCTTTCACCT\n+TGGCTTCTCTACTTTGTCAAATCACCAGGAGAGATTACCTGAAAGACAAACAGGAAGGAT\n+TTCTCAACTATTCAAAGCAATAGAAGTGGATTCTTAGTTGCAAACCACAGCATGTTCCTG\n+TTGACCCAGATCCTGTTTC\n+>FW1N29Q04EIIT4 rank=0000106 x=1734.5 y=330.0 length=354\n+TCTCAAGTCAAGCTGTCAATTTGCCATCTCAGCCAACTCCATCAGCTTCACCATCCATTC\n+TTCCACTATAGGTAATGTCTTATCTTTCCACCTCTGTGCATATAAAGCCTTGCTGCTGTT\n+ATATATAAACAAAGTTCCATAGGTTTTCCAACTGTTTATTCATCAACCGAAAGGAAGTCT\n+CTGGTTTTGATTTAATATTAAATCTTGAAAATCTTCTGTATACAGATATGTATCTTGTTC\n+CAGATTATTTTTGTCTTTTATAAGTCCACCAGAGATGTAGAGCAGCCTCCTCCAGCCAGC\n+TACTGGTTGGCTATGTTATGTGGATACAAGGGCTGGATCTAAAAGTCNGCATCT\n+>FW1N29Q04EW9OS rank=0000113 x=1902.0 y=186.5 length=85\n+GGTTAGTATTGAGACACGCTGTTGGCTTGGCCAGTGCTCCGTGCTAGTAATTAATAAGAA\n+TGCTTACATAGGTCATCCTGTTGAA\n+>FW1N29Q04ED6UB rank=0000114 x=1684.5 y=2961.0 length=344\n+TTGACATACACCTTAGGCCCTTCATTCATAATTAACGCTACATTTCACTTCCCTGCATAT\n+ATTTATCAATTCTACAAGATTAGATCATCTTCCTATTAGACCCTTCTCTTTCTTCTTCCT\n+TTCACAAACAATAAGAGATCTACAACATGTGTATCTTGTTTAACAGATAACCAATCTGTA\n+ATGATGAAACATTAAGCCTCTGCGCATAATAACTTATCTTTCCCATAGCTGCAAACAATA\n+ACGTAGATTAAAAGCCACATTTTGCTTTCATTAAAAGTACTTCTCAACTTTCATTGTCAG\n+GCAAACGTAAATGTATCTTTATTGTGGCTTCATTATGCTTTGTG\n+>FW1N29Q04EJ8OD rank=0000117 x=1753.0 y=2651.0 length=157\n+CATCCATGTTGCTAGTTGAGAGAACTTAATCATACTAATAAATTCATGTGTATTTGTATA\n+TGAGTTTCAAATCCATTAGATTACTTTCCATTACATCATGGAGGTGGGAAATCTGTGGCC\n+CTGCAAATTCTGCAGAATTACACCGGCCCACCCACTC\n+>FW1N29Q04EBJG5 rank=0000123 x=1654.0 y=2247.0 length=322\n+TGGCAATGGCAAGTTACTTTCATTTCAGAGCAAGATAAAGTGGCTGCTGCAATTATTACC\n+AAAGCTTCATAAATTACTATGCAACCTTTCAACTTCTCTAGAACTCTTCAACAAGTGAAG\n+AGGTAAGAGAAAGAAGCAGCTTATATCCATGCCATGTTATTTACAGTTAGCATGGTTTAT\n+TCTTCTAAATAGTACAGTATTTATGCTAATTTAGCATCAGTGCTACATCACTGTGTTTCT\n+CAACATTGTCCTCTTTGACAGCCAAATCATTTGCTTCCAGCTTGACTATGGCACATCTCA\n+AATCACAAAGCTTTCAAACTGC\n+>FW1N29Q04EKD0V rank=0000126 x=1755.0 y=1389.0 length=299\n+TGGCTCAGATCACCGCAGATGGAGACTGCAGCCATGAATTAAGACTCTTGCTCCTTGGAG\n+GAAGCTATGGCAACCTAGATAGCATATTAAGACAGAGATGTCACCTTGCCGACAAGATCC\n+GCATAGTCAAGCTATGGTTTCCTAGTAGTAATGTATGGCTGTGAGAGCTGGACCATAAGA\n+AGGCTGAGCGCCGAGATTGATGCCTTTGAACTGTGGTGCTGGAGAGACTCTTAAGAGTCC\n+CTGGACTGCTAGGAGATCAAACCAGTCAATCTTAAGGATCAACCCTGATTGCTCATTGG\n+>FW1N29Q04EKXU7 rank=0000132 x=1761.5 y=2529.0 length=150\n+TTACAACACCACTGGCAGAGGAATGGATCTAGGCAAATATGACATTGTGAGTAAGGCTCT\n+CAGGAGACTCTCTCCTCTTTATTCATGTTTGTCCTTTGTTTGTCTTGCAAAGCCGACCAG\n+CAAAAATAGTACCATCTAAAGCAAAGAAAT\n+>FW1N29Q04EOC22 rank=0000134 x=1800.0 y=2476.5 length=236\n+TTAATATTACCTAGAATAAATGATTTCATCCTTTTTATTATTTCTATATATGAAGTGGAC\n+TTTATTTTATTGGTTGGTTAATCTTCAGAGAAGAAATAGGAGACAGGATTTTTAAAATTA\n+GTAACTATTTCCATGAACCAAGGAATCTACTAAATGTTATGGAGGAAACATGGCCATCAT\n+TGATCTGCAGGTCCTCAGAATCATGTAGTAAATTTATGCAATATCATTAACTTGGC\n+>FW1N29Q04EF0UZ rank=0000135 x=1705.0 y=2505.0 length=273\n+TTCTATATCGCTTAACGAGGAGTC'..b'ATCTAATGTTCTGGCTCAATTGTGGTACA\n+TCCAAAATCACAAATAGACACATACGCGCACATACATACACAAAATATATTTATGTTTTC\n+AGAACAGAAGTGAAGCTTTGCAAAGCTGTGGATAGTCTGCTGT\n+>FW1N29Q04EP35X rank=0000180 x=1820.5 y=2307.0 length=298\n+TTTATTTACCCATCTTATTTGTGCAGCTGTAAGAGATTGATAAGGGGAAAAAGCAAAAGT\n+ATATGAATTTGTATTTGTATTTGTAATCAGAGGGATGTGTGTTTGTGTGTGTGTGTATAA\n+GGATCCATCCCTGGATTATGGGTTCCACTTCACTGGACATGTTTACCAGAAGTGAATATA\n+GCTATTCTAGAGGGACATTTCTGGAACACAAAAAGTAAATTAGATGAATCACATTGCATG\n+TATATTTAAGCAATTTAAATGACACACACACACACACACACACACACACACACACACA\n+>FW1N29Q04EQDJ2 rank=0000185 x=1823.0 y=2192.0 length=65\n+TTCCTGATAGGCCAGGATTCTGATTAACCTCTGCCCACTACAGGATGCTTACATGAGCTC\n+CTGGT\n+>FW1N29Q04EK7RS rank=0000186 x=1764.5 y=3078.5 length=112\n+AATGATTACGAGATCATCTCACCAACACCTTCTCTGACTCATGGCTAAGATCAGCTGGAA\n+GGCCTTGCTTGTGACCCATTGGGAGGACTCATCTTAATCTGGGTTGAGAGCA\n+>FW1N29Q04EO2M2 rank=0000190 x=1808.0 y=2828.5 length=262\n+TGGTCCTTCAGGTCTTCCAACAGTGCACCCATTGCCTCCGTAACTGAGTCCATCCACTTT\n+GCTGCTGGTCATCCTCTTCTCTTCCTTCCATATTTCCCAGCAATAGAGCCTTCTTCAGGC\n+AGTGAGGTCTTCACATAATGTGTCCAAAGTAGGATAATTTGAGCCTGGTCATTTATGCCT\n+CAAATTCTTTACAGGTTAGATATCACAGCAATGACTAGGTTCTTGGACAGTAGTTAACAG\n+TTAAGATGTTAATGTTTATTAA\n+>FW1N29Q04EXPGO rank=0000196 x=1907.0 y=150.0 length=120\n+GACAGAACACACTTACAACTAGCCATATATAAGCAATGATCAGGCACCTGCCAATGTCTG\n+AACTAAGGTAAGGGCTACTCATCAGTCACCTTCCAGACACAGATCAAGAAATCCAGAAAG\n+\n+>FW1N29Q04EBESH rank=0000203 x=1653.5 y=271.0 length=142\n+AGTCATGCAAGCCTAATCATGTAACAACATTTAAATTAAGCAAATACACTGATACCTTAT\n+AGTTTGACTAAAGACTTTGGCTTTCCATAAACAACTCCAGTAAACTGATTTTGCTTGCTG\n+TAGTATTCCTAGCTTAACTATT\n+>FW1N29Q04D8NWF rank=0000214 x=1621.0 y=3181.0 length=365\n+TTAGGCTTAGTACATTGTATGAACTCAGATATTGTGATATATAAACCAGGGCTGGTGGCT\n+CAACATGCTGGGTAAATCCAGCCAATTATGATAACTAGAATAGTATAGCAGTTAGTGTTA\n+AACTTGTATAAGGGAACTCAAGTCCAAGTCCTCACTCATTCATGGAACGCCTTGTGTGAT\n+TTTGGGCTAGTCACTCTTCTCAGCCCAACCTATCTCACAATCATGATTTAGAAATAATGG\n+CTTAGCATGACAAATGGATCCAATCATATTCAGTATTTATTTGTTTGGGGGATGTGATGT\n+AGAAGCATGGCTCAGTGATGCTTCTACCAAATGATACTCTCTCAAGTGTCAAACCTTCAG\n+TACAG\n+>FW1N29Q04ETFO7 rank=0000224 x=1858.0 y=1577.0 length=148\n+TTGGCCTTTCTTGATAGATAATTTCTAGTAATTTCACACATACCCGTGCTGGACCATCTC\n+CAACACCATCTGTCCTGGGCTGACATAATTTCATCAGTTGCCCATAAACATGGAGAGTAA\n+TGGGTTTCAGGCTGTGGGGTAGGGAGGC\n+>FW1N29Q04ECPCP rank=0000226 x=1667.5 y=3271.0 length=376\n+TTAGTGATGACATCACAACTGGTTGGTGGTGCTAACAACTGCTATTGAATGTGTCTTCTC\n+GATATATCACAGAGCCTAGCTTGTAATGCAATAACAACTAGCTGAATACATGATTTAATT\n+GTTTGTTGCCCAGCTGTACTAATAAGCAAGCTTGATGTTAGGGATCACCCAAGGTCATTT\n+CCTTAATGCTGCTAACCTGCTGGAGCTGTCATTTATTACTAGATTTGTTGAATTATGACC\n+AGTGTGTTCTAAAGAGCCAGATGTTTAGTCTAAAGAATAACACATGATCTAGTAGGGATT\n+ACAAGAGCTCCAGTTTCCCTCTGGAATTTGTTGGTCATGGCTTGTGATGATCAAAGTTGA\n+ATATGCCTGAAATAAT\n+>FW1N29Q04ECVNR rank=0000229 x=1669.5 y=3253.0 length=386\n+TTCTCTGCAAGTTGGTGGCACACATGCAGGATGGCTAAGATTATCATCTGAAATGAAAGC\n+CACAAGGTGAACTTCCAACAAATACCATGAAAAATGACTGACCTGCAAAAGGTAGAGGTA\n+ATAAGAACTCTGGGAAAGTTGAGCAAGTACTTAAAGAATCAGTGTTAAAATGTCATGCCA\n+CTGATGTGTGTTAATTTCATATGGTAATTTATATGTATGGATGAGATAATTCTTGCACTG\n+TAAATAGAATAAGGGAGAATAGAGAAAACTGCAGCCAGGTGAGTAATATTTCTTTTAGCC\n+TGTGCAGGTGTTATTTGTTGAAAAGGTGTTGTTCTACTGTCAGGCTCAGTCCAAGAACAG\n+TTCATCCAAATTCATTTCATTTATTG\n+>FW1N29Q04EFJFR rank=0000232 x=1700.0 y=405.5 length=379\n+TGGCAATGGCAAGTTACTTCATTTCAGAGCAAGATAAAGTGGCTGCTGCAATTATTACCA\n+AAGCTTCATAAATTACTATGCAACCTTTCAACTTCTCTAGAACTCTTCAACAAGTGAAGA\n+GGTAAGAGAAAGAAGCAGCTTATATCCATGCCATGTTATTTACAGTTAGCATGGTTTATT\n+CTTCTAAATAGTACAGTATTTATGCTAATTTAGCATCAGTGCTACATCACTGTGTTTCTC\n+AACATTGTCCTCTTTTGACAGCCAAATCATTTGCTTCCAGCTTGACTATGGCACATCTCA\n+AATCACAAAGCTTTCAAACTGCAATTTGCACACTGGAGCTTGGAGGCAAACTTATTTTGT\n+TCACGGAAACTCTCACTCC\n+>FW1N29Q04EGERL rank=0000233 x=1710.5 y=47.0 length=274\n+TTGAATCTGATCAGGAAGGTTCAACTGGTACAGAATGTAGAAGCCAGGTTACTGAGTGAG\n+TCACCCAGTCACGTTCATGTTACTTCTTCATTGAAGCAACTGCATTGGATGTCAATTACC\n+AAGCCAGGTTCAGAGTTTGGTTAGGATATATAAAGCCTTAAACATCTGGAAACCAGGATG\n+CCCATCAAATTGCCTTTCTGTTATCAACCTGATTACTCACTGAGATCATCAAGTGAGGTG\n+CTGCAATGTGTAATGAATGCTGGTGGTTGCTTGT\n+>FW1N29Q04EILAM rank=0000235 x=1734.0 y=3516.5 length=127\n+TTTGGACATATGTTCAAGCCAAGGTTAGTACATTTCTCCTTCAGACCTCCCAGATGCACT\n'
b
diff -r 000000000000 -r 3f908e7fff4f test-data/454_microsat_types.out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/454_microsat_types.out Thu Dec 11 09:23:24 2014 -0500
b
@@ -0,0 +1,13 @@
+totalBases: 8639
+readsWithPrimers: 0
+totalReads: 38
+compound: 0
+broken: 1
+readsWithMicrosat: 1
+
+
+Microsat Type monomer length reads with loci total loci loci amplified total loci bases loci bases amplified
+TC 2 0 0 0 0 0
+AC 2 1 2 0 48 0
+CG 2 0 0 0 0 0
+AT 2 0 0 0 0 0
b
diff -r 000000000000 -r 3f908e7fff4f test-data/454_microsats.out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/454_microsats.out Thu Dec 11 09:23:24 2014 -0500
b
@@ -0,0 +1,2 @@
+SequenceID Repeat Motif Size Repeat Motif Number Tandem Repeats Primer Designed (1=y,0=n) F Primer Name Forward Primer R Primer Name Reverse Primer Total Repeats In Amplicon Occurances of Forward Primer in Reads Occurances of Reverse Primer in Reads Occurances of Amplifiable Primer Pair in Reads Occurances of Amplifiable Primer Pair in PALs
+FW1N29Q04EP35X 2 AC 18 0
b
diff -r 000000000000 -r 3f908e7fff4f test-data/illuminaPE_filtered_microsats.out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/illuminaPE_filtered_microsats.out Thu Dec 11 09:23:24 2014 -0500
b
@@ -0,0 +1,4 @@
+readPairID Motifs(bases) Bases in all Motifs Possible Extended Possible Spanning Primers found (1=y,0=n) F Primer Name Forward Primer R Primer Name Reverse Primer Amplicon Motifs Number motif bases in amplicon Primers on sep reads Extend with primers Spand with primers Occurances of Forward Primer in Reads Occurances of Reverse Primer in Reads Occurances of Amplifiable Primer Pair in Reads Occurances of Amplifiable Primer Pair in PALs
+ILLUMINA-545855_0049_FC61RLR:2:1:8157:1636#0 AC(12)  12 1 test_5 AAGTACAGTGGGGAGGCTGG test_6 TTTTCTACACAGCTCAAGTAGCCC AC(12)  12 1 1 1 1 1
+ILLUMINA-545855_0049_FC61RLR:2:1:10979:1695#0 TC(14)  14 1 test_7 TTCTCCCACTATATTTTGCATTGG test_8 TCCAGACTGAAGCTACCCTGG TC(14)  14 1 1 1 1 1
+ILLUMINA-545855_0049_FC61RLR:2:1:1978:1220#0 AC(12)  12 1 test_3 GCAGTAAACAAAGGCAAAGGG test_4 CCTGGGCAGAGGTGTTCC AC(12)  12 1 1 1 1 1
b
diff -r 000000000000 -r 3f908e7fff4f test-data/illuminaPE_microsat_types.out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/illuminaPE_microsat_types.out Thu Dec 11 09:23:24 2014 -0500
b
@@ -0,0 +1,14 @@
+totalBases: 2320
+allSpan: 0
+totalReads: 20 (2 x 10)
+compound: 2
+broken: 2
+allExtended: 0
+readsWithMicrosat: 13
+
+
+Microsat Type monomer length total loci loci w/ primers reads with loci total bases extended extended w/ primers spanning spanning w/ primers
+TC 2 2 1 2 26 0 0 0 0
+AC 2 7 4 7 116 0 0 0 0
+CG 2 0 0 0 0 0 0 0 0
+AT 2 8 0 6 106 0 0 0 0
b
diff -r 000000000000 -r 3f908e7fff4f test-data/illuminaPE_microsats.out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/illuminaPE_microsats.out Thu Dec 11 09:23:24 2014 -0500
b
@@ -0,0 +1,11 @@
+readPairID Motifs(bases) Bases in all Motifs Possible Extended Possible Spanning Primers found (1=y,0=n) F Primer Name Forward Primer R Primer Name Reverse Primer Amplicon Motifs Number motif bases in amplicon Primers on sep reads Extend with primers Spand with primers Occurances of Forward Primer in Reads Occurances of Reverse Primer in Reads Occurances of Amplifiable Primer Pair in Reads Occurances of Amplifiable Primer Pair in PALs
+ILLUMINA-545855_0049_FC61RLR:2:1:8044:1926#0 AT(12)  12 0
+ILLUMINA-545855_0049_FC61RLR:2:1:1978:1220#0 AC(12)  12 1 test_3 GCAGTAAACAAAGGCAAAGGG test_4 CCTGGGCAGAGGTGTTCC AC(12)  12 1 1 1 1 1
+ILLUMINA-545855_0049_FC61RLR:2:1:5879:1238#0 AT(12)  12 0
+ILLUMINA-545855_0049_FC61RLR:2:1:8899:1514#0 AC(12) AC(12)  24 1 test_2 TCTTTATCTAAACACATCCTGAAATACC test_1 AAACGCAATTATTTTGAGATGTCC AC(12) AC(12)  24 1 1 2 1 1
+ILLUMINA-545855_0049_FC61RLR:2:1:10979:1695#0 TC(14)  14 1 test_7 TTCTCCCACTATATTTTGCATTGG test_8 TCCAGACTGAAGCTACCCTGG TC(14)  14 1 1 1 1 1
+ILLUMINA-545855_0049_FC61RLR:2:1:5626:1554#0 AT(14) AC(16) AC(16) AT(12)  58 0
+ILLUMINA-545855_0049_FC61RLR:2:1:8157:1636#0 AC(12)  12 1 test_5 AAGTACAGTGGGGAGGCTGG test_6 TTTTCTACACAGCTCAAGTAGCCC AC(12)  12 1 1 1 1 1
+ILLUMINA-545855_0049_FC61RLR:2:1:19063:1614#0 AT(14) AT(14) AT(14) AT(14)  56 0
+ILLUMINA-545855_0049_FC61RLR:2:1:17449:1584#0 AC(36)  36 0
+ILLUMINA-545855_0049_FC61RLR:2:1:6204:1090#0 TC(12)  12 0
b
diff -r 000000000000 -r 3f908e7fff4f test-data/illuminaPE_r1.fq
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/illuminaPE_r1.fq Thu Dec 11 09:23:24 2014 -0500
[
@@ -0,0 +1,40 @@
+@ILLUMINA-545855_0049_FC61RLR:2:1:10979:1695#0/1
+TACTGTTTAGAATAGACTGTTCTCCCACTATATTTTGCATTGGTGCATACTCAGCTTTAGTAATAAGTGTGATTCTGGTAGAGAGAGAGAGAGATACCAACCTCTTCTTCCCACTA
++
+hhhhhghhhfgghhcfghhhhhhghhhhhhhhhhhhgfhhhhgfhhhhggghggfghhggdgghfgfcgcgggffgdf`gfcfdgdfdfafbdcaccfddecddbfcdfcdcdcdW
+@ILLUMINA-545855_0049_FC61RLR:2:1:17449:1584#0/1
+TCGTAGCATGTGTATGCTTTGGGGTTTCATGCTGTTGATTCATAACTGCTGCTGGCTGTAGACTGAACCTTCTGGGTAGGAGGAATATGCTTAGACAAGCACACCAGTCAGCCCGA
++
+hhhhhhhhhhghhhhhfhhhhehhhhhhfhhhhfahgahhhghhhhghhgggdgeggedegdedhbgdffcacaccM\^^[`_^^^aaaacaaa^_bddd_aaa_a[VQ^Z_BBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:19063:1614#0/1
+TATATATATATATACACATATATATATATATTTTTTACATTATTTCACTTCGCCCAAACTAGAGAGTCTAACAAAGTACAACCCAGCATATTAAAGTTCATCTCAGTTTTGTTCTG
++
+hhhhhhhfhdhhhhfhhhgghghfhfhhhhhghhhhgfadhhhhghegghgehhhhegehghhgee]dddacfccZacWccaaccafgfggggded\cabcdddadadfgf`eg_d
+@ILLUMINA-545855_0049_FC61RLR:2:1:1978:1220#0/1
+TCATAAGAATGAGCAGTAAACAAAGGCAAAGGGGAGATAACACACACACACAAAATAAAAAAACATCAATTTCTAATACACGCCTTTATTATAAAGAAATAAATCACTGAAAAACA
++
+cccccacaccaV^aaaTaa]P^[^WW]ccc^SGURUVZ]^Q[PUS\Z]W[Occc]]`U`^]ZZU]JU]][]SLWSWSWWWE_c__cc[cZc]]^[XccZUccb[ccZ[WW_BBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:5626:1554#0/1
+TCTAATATTATATATATCTGTGTGTGTATATATATATATACACACACACACACACATTGCTATTGTTAAATTAACCACCTTTTTATTTATAATACTATTATAACACTTATCTGTAT
++
+R[\[[Zaddbb`d`ada_aY_VUVXQPX[Y]\a\__^^`XZa____BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:5879:1238#0/1
+TCCCCACCCTGTCATGGTTCTATGTTTTTGTTTTTGTTTTTGTTTTTATGGTTTCCGTATTCCACATTAAAACCTTATGTAACGTACGGGCCAATAAATAGTTACTCGCCATATCC
++
+BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:6204:1090#0/1
+TGCTTTGGTTCTAAGAGAAAAACAATTATTATAAATGTTTATAATTGATGATAAGCATTTTTGTACAAAGCCAAGACCATTCTGAATGAAGCACCCAAAAAGCCCGGAGGCAACAA
++
+BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:8044:1926#0/1
+TAGATTTTTTTTTTTATATATATATAAATATAGATGTACATATATTTATATAAATATAAAAGCACAGCATCCTCCTGTCTCTCCTCCTGATTTATTATGGTTAAAGCTTGTGACAG
++
+gggggggggggggggegefegdeeceXQ\_\]ZZZ\gggfggggggggggggggggfgggeggggegecggggggggggggggggfggffggggggggggdggggfdgggded]da
+@ILLUMINA-545855_0049_FC61RLR:2:1:8157:1636#0/1
+TACTAGTCTAATAATTGCAGGCAGCTGAACTAGATAGGTCCTAAAGTACAGTGGGGAGGCTGGTGTGTGTGTGTGCATGGGATTGTCAGCCTTACCATCAGTCCTGATTTGTAGGT
++
+gggggggggggggegggggfggggggfggggfgggggg]ggffffeeggggfgfggeggggffafcb`b]bacaccbefdc_acca_aaaadbbc_[bb]b\^X\\_bdba\aaaW
+@ILLUMINA-545855_0049_FC61RLR:2:1:8899:1514#0/1
+TCTTTATCTAAACACATCCTGAAATACCATCTGTTACACACACACACAGCAGTGGAAGTATAAAAAAAAATCTGGACATCTCAAAATAATTGCGTTTCTGAAGTGTTACATTTTTC
++
+hhhhhghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhfhhhhhfhhhhhhhhhhhhhhggfhhhhghgggghgggggggfgggggfegdgdggggggghh]
b
diff -r 000000000000 -r 3f908e7fff4f test-data/illuminaPE_r2.fq
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/illuminaPE_r2.fq Thu Dec 11 09:23:24 2014 -0500
[
@@ -0,0 +1,40 @@
+@ILLUMINA-545855_0049_FC61RLR:2:1:10979:1695#0/2
+TACTGTTTAGAAAGCCTGTTCCAGAACTTGATCACTGTCACAGAAAATCTTTCTTACTATCCAGACTGAAGCTACCCTGGTGCAGCTTTGTGCTGTTACCTTGAGTCATGTCATCA
++
+hhhhhghhhhhghhhhghghhhhhhhghhhghhhghgfhhhhhhgdgggggggghhghhgeggdgghfggfgfhgfggef`fhdggfdfgaehecagggfcegacagffefcWda_
+@ILLUMINA-545855_0049_FC61RLR:2:1:17449:1584#0/2
+TCTGTGTGTGAGCACACACACACACACACACACACACACACACACACATGCAGGTACTTGCTCTGCCACCCCTGGCGGGCTGCGTGGTGTGCCTGACGACGTATTCTAATCCTACA
++
+fffff^bcbdbdaded`ffafdcfcff]cffccccaffffffedcafaR_BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:19063:1614#0/2
+TATATATATATATAAACATATATATATATATTTTTTTCTCATTTCAGAACAAAAGTGAGATGAACTTTAATATGGTGGGGTGTATTTTGAGAGACTCTCTAGTTTGGGAGGAGTGA
++
+ccccccccccccYc_cJccccccccccccUccccc]`_YT]_BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:1978:1220#0/2
+TCCTCTGACTAGGCAACAACAGCTTTTTTGCTCCTGGGCAGAGGTGTTCCGAGTGTATATTTTTTATAATTACGGCGCGCATTGGAAATTGATGTTATTTTATTTTGCGTGTGTGT
++
+a^N^BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:5626:1554#0/2
+TCTAATATTATATATATCTGTGTGTGTATATATATATATACACACACACACACACATTGACATAAAAGCGAAATATAAACATTAGCAGCTGGGGCTAAAATAAAAGCAGGAAGGTT
++
+hhhhhhhhhhhhhhhhhhhhhhgggghghhghhghghghghhhhhghhfgQeWdQd\URUY^aa[^\\K`JL\\[W``dQ`BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:5879:1238#0/2
+TCCCCACCCTGTCATGGTTCTATGTATATATATATAGCCATGTGTGTGGTACCAGGGATAGGTACCTGGGATTGGGGCAGTGACACTTTAGTGCCCCGTACACTACATGATGTTTT
++
+gggggggggggggggggdggffffecgfgfggggggegggggfgdgdgdadgdeaWdddedc`fdcabdaaa_]adb]_a_cbaaadbaa[`dbaaab]a`]a[Za`_`_BBBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:6204:1090#0/2
+TGCTTTGGTTCTAAGAGAAAAACAAGTGATGCACAAGCAATTCCTCGCCACCACCCAACTGATGCCCAGCCACCCCCCCAAGCAGTGAAAGAGAGAGAGAGATGAACCCCCTTCAA
++
+gggcagggdefggggdgegdgccccc_ggdggddgdeedddfcdffffdfda]dab]______aa_edaeaaa_`]```[Z]`]ZR]\^^]]aa]^]_^P^]YXI_BBBBBBBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:8044:1926#0/2
+TCAGGCAAGGTCACTGCCACCACTGGGGAGTGCCTGTTTCTGAAGGGCCCAGCCAACTCTGTCACAAGCTTTAACCATAATAAATCAGGAGGAGAGACAGGAGGATGCTGTGCTTT
++
+hhhhhhhhhhghhhhhhhhhhhhhhfhhhhehhhhhfgghhhhhffdhgfgfgggffbggbffffffgfgfdfdfdfffcfadbbaffdcfaZW^aaaac`ab_YR\\Z\Y[ROYU
+@ILLUMINA-545855_0049_FC61RLR:2:1:8157:1636#0/2
+TAAACAACCAAATGAAACCATCTTTTCTACACAGCTCAAGTAGCCCTACATACAACACAAGCCACCTACAAATCAGGACTGATGGTAAGGCTGACAATCCAATCCACCACAACAAC
++
+geggggggggggggcgfggcggggggggggggggggggfffggfgggggggggggfggggg_gggegfgeggdggggggcgaedaageecgd]degadecBBBBBBBBBBBBBBBB
+@ILLUMINA-545855_0049_FC61RLR:2:1:8899:1514#0/2
+TATCATTGAAATTTTTATAAAAACTGTGAAGAGAAAAATGTAACACTTCAGAAACGCAATTATTTTGAGATGTCCAGATTTTTTTTTATACTTCCACTGCTGTGTGTGTGTGTAAC
++
+hfJfffhhhhhhhhhhchhhhhhfgghhghhhhhdfghghghhghhhhhhhhhhhhhhghhchhhhhdchhhchgfgehhhhhhhhhgheeagfhfaffgacaedfdfbfdhdcda
b
diff -r 000000000000 -r 3f908e7fff4f tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml Thu Dec 11 09:23:24 2014 -0500
b
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<tool_dependency>
+    <package name="pal_finder" version="0.02.04">
+      <install version="1.0">
+ <actions>
+   <action type="download_by_url">http://sourceforge.net/projects/palfinder/files/pal_finder_v0.02.04.tar.gz</action>
+   <action type="move_file">
+     <source>pal_finder_v0.02.04.pl</source>
+     <destination>$INSTALL_DIR/bin</destination>
+   </action>
+   <action type="move_file">
+     <source>config.txt</source>
+     <destination>$INSTALL_DIR/data</destination>
+   </action>
+   <action type="move_file">
+     <source>simple.ref</source>
+     <destination>$INSTALL_DIR/data</destination>
+   </action>
+   <action type="set_environment">
+     <environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/bin</environment_variable>
+   </action>
+   <action type="set_environment">
+     <environment_variable name="PALFINDER_SCRIPT_DIR" action="set_to">$INSTALL_DIR/bin</environment_variable>
+   </action>
+   <action type="set_environment">
+     <environment_variable name="PALFINDER_DATA_DIR" action="set_to">$INSTALL_DIR/data</environment_variable>
+   </action>
+ </actions>
+      </install>
+      <readme>pal_finder also needs Perl</readme>
+    </package>
+    <package name="primer3_core" version="2.0.0">
+      <install version="1.0">
+ <actions>
+   <action type="download_by_url">https://sourceforge.net/projects/primer3/files/primer3/2.0.0-alpha/primer3-2.0.0-alpha.tar.gz</action>
+   <action type="shell_command">make -C src -f Makefile</action>
+   <action type="move_file">
+     <source>src/primer3_core</source>
+     <destination>$INSTALL_DIR/bin</destination>
+   </action>
+   <action type="set_environment">
+     <environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/bin</environment_variable>
+   </action>
+ </actions>
+      </install>
+      <readme>primer3_core</readme>
+    </package>
+</tool_dependency>