Repository 'small_rna_signatures'
hg clone https://toolshed.g2.bx.psu.edu/repos/artbio/small_rna_signatures

Changeset 0:a35e6f9c1d34 (2017-08-28)
Next changeset 1:6f1378738798 (2017-08-29)
Commit message:
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/small_rna_signatures commit 6719543c5017d581ae012b864d7c9088f0767fc8
added:
signature.py
signature.r
signature.xml
test-data/global.pdf
test-data/h.tab
test-data/lattice.pdf
test-data/sr_bowtie.bam
test-data/z.tab
tool-data/bowtie_indices.loc.sample
tool_data_table_conf.xml.sample
tool_dependencies.xml
b
diff -r 000000000000 -r a35e6f9c1d34 signature.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/signature.py Mon Aug 28 09:29:47 2017 -0400
[
b'@@ -0,0 +1,209 @@\n+import argparse\n+from collections import defaultdict\n+\n+import numpy\n+\n+import pysam\n+\n+\n+def Parser():\n+    the_parser = argparse.ArgumentParser()\n+    the_parser.add_argument(\n+        \'--input\', action="store", type=str, help="bam alignment file")\n+    the_parser.add_argument(\n+        \'--minquery\', type=int,\n+        help="Minimum readsize of query reads (nt) - must be an integer")\n+    the_parser.add_argument(\n+        \'--maxquery\', type=int,\n+        help="Maximum readsize of query reads (nt) - must be an integer")\n+    the_parser.add_argument(\n+        \'--mintarget\', type=int,\n+        help="Minimum readsize of target reads (nt) - must be an integer")\n+    the_parser.add_argument(\n+        \'--maxtarget\', type=int,\n+        help="Maximum readsize of target reads (nt) - must be an integer")\n+    the_parser.add_argument(\n+        \'--minscope\', type=int,\n+        help="Minimum overlap analyzed (nt) - must be an integer")\n+    the_parser.add_argument(\n+        \'--maxscope\', type=int,\n+        help="Maximum overlap analyzed (nt) - must be an integer")\n+    the_parser.add_argument(\n+        \'--output_h\', action="store", type=str,\n+        help="h-signature dataframe")\n+    the_parser.add_argument(\n+        \'--output_z\', action="store", type=str,\n+        help="z-signature dataframe")\n+    args = the_parser.parse_args()\n+    return args\n+\n+\n+class Map:\n+\n+    def __init__(self, bam_file):\n+        self.bam_object = pysam.AlignmentFile(bam_file, \'rb\')\n+        self.chromosomes = dict(zip(self.bam_object.references,\n+                                self.bam_object.lengths))\n+        self.map_dict = self.create_map(self.bam_object)\n+\n+    def create_map(self, bam_object):\n+        \'\'\'\n+        Returns a map_dictionary {(chromosome,read_position,polarity):\n+                                                    [read_length, ...]}\n+        \'\'\'\n+        map_dictionary = defaultdict(list)\n+        # get empty value for start and end of each chromosome\n+        for chrom in self.chromosomes:\n+            map_dictionary[(chrom, 1, \'F\')] = []\n+            map_dictionary[(chrom, self.chromosomes[chrom], \'F\')] = []\n+        for chrom in self.chromosomes:\n+            for read in bam_object.fetch(chrom):\n+                positions = read.positions  # a list of covered positions\n+                if read.is_reverse:\n+                    map_dictionary[(chrom, positions[-1]+1,\n+                                    \'R\')].append(read.query_alignment_length)\n+                else:\n+                    map_dictionary[(chrom, positions[0]+1,\n+                                    \'F\')].append(read.query_alignment_length)\n+        return map_dictionary\n+\n+    def signature_tables(self, minquery, maxquery, mintarget, maxtarget):\n+        query_range = range(minquery, maxquery + 1)\n+        target_range = range(mintarget, maxtarget + 1)\n+        Query_table = defaultdict(dict)\n+        Target_table = defaultdict(dict)\n+        for key in self.map_dict:\n+            for size in self.map_dict[key]:\n+                if size in query_range or size in target_range:\n+                    if key[2] == \'F\':\n+                        coordinate = key[1]\n+                    else:\n+                        coordinate = -key[1]\n+                if size in query_range:\n+                    Query_table[key[0]][coordinate] = Query_table[key[0]].get(\n+                        coordinate, 0) + 1\n+                if size in target_range:\n+                    Target_table[key[0]][coordinate] = \\\n+                        Target_table[key[0]].get(coordinate, 0) + 1\n+        return Query_table, Target_table\n+\n+    def compute_signature_z(self, minquery, maxquery, mintarget, maxtarget,\n+                            scope, zscore="no"):\n+        Query_table, Target_table = self.signature_tables(minquery, maxquery,\n+                                                     mintarget, maxtarget)\n+        frequency_table = defaultdict(dict)\n+        for chrom in self.chro'..b'                                             mintarget, maxtarget)\n+        frequency_table = defaultdict(dict)\n+        for chrom in self.chromosomes:\n+            for overlap in scope:\n+                frequency_table[chrom][overlap] = 0\n+        for chrom in Query_table:\n+            Total_Query_Numb = 0\n+            for coord in Query_table[chrom]:\n+                Total_Query_Numb += Query_table[chrom][coord]\n+            for coord in Query_table[chrom]:\n+                local_table = dict([(overlap, 0) for overlap in scope])\n+                number_of_targets = 0\n+                for overlap in scope:\n+                    local_table[overlap] += Query_table[chrom][coord] * \\\n+                        Target_table[chrom].get(-coord - overlap + 1, 0)\n+                    number_of_targets += Target_table[chrom].get(\n+                        -coord - overlap + 1, 0)\n+                for overlap in scope:\n+                    try:\n+                        frequency_table[chrom][overlap] += \\\n+                            local_table[overlap] / number_of_targets \\\n+                            / float(Total_Query_Numb)\n+                    except ZeroDivisionError:\n+                        continue\n+        # compute overlap probabilities for all chromosomes merged\n+        general_frequency_table = dict([(overlap, 0) for overlap in scope])\n+        total_aligned_reads = 0\n+        for chrom in frequency_table:\n+            for overlap in frequency_table[chrom]:\n+                total_aligned_reads += self.bam_object.count(chrom)\n+        for chrom in frequency_table:\n+            for overlap in frequency_table[chrom]:\n+                try:\n+                    general_frequency_table[overlap] += \\\n+                        frequency_table[chrom][overlap] / total_aligned_reads \\\n+                        * self.bam_object.count(chrom)\n+                except ZeroDivisionError:\n+                    continue\n+        for overlap in general_frequency_table:\n+            frequency_table[\'all_chromosomes\'][overlap] = \\\n+                general_frequency_table[overlap]\n+        return self.stringify_table(frequency_table)\n+\n+    def stringify_table(self, frequency_table):\n+        \'\'\'\n+        method both to compute z-score and to return a writable string\n+        \'\'\'\n+        tablestring = []\n+        for chrom in sorted(frequency_table):\n+            accumulator = []\n+            for overlap in frequency_table[chrom]:\n+                accumulator.append(frequency_table[chrom][overlap])\n+            z_mean = numpy.mean(accumulator)\n+            z_std = numpy.std(accumulator)\n+            if z_std == 0:\n+                for overlap in sorted(frequency_table[chrom]):\n+                    tablestring.append(\'%s\\t%s\\t%s\\t%s\\n\' % (\n+                        chrom, str(overlap),\n+                        str(frequency_table[chrom][overlap]), str(0)))\n+            else:\n+                for overlap in sorted(frequency_table[chrom]):\n+                    tablestring.append(\'%s\\t%s\\t%s\\t%s\\n\' % (\n+                        chrom, str(overlap),\n+                        str(frequency_table[chrom][overlap]),\n+                        str((frequency_table[chrom][overlap] - z_mean)/z_std)))\n+        return \'\'.join(tablestring)\n+\n+\n+\n+def main(input, minquery, maxquery, mintarget, maxtarget, minscope, maxscope,\n+         output_h, output_z, genome_wide=False, zscore="no"):\n+    H = open(output_h, \'w\')\n+    Z = open(output_z, \'w\')\n+    mapobj = Map(input)\n+    scope = range(minscope, maxscope + 1)\n+    Z.write(mapobj.compute_signature_z(minquery, maxquery, mintarget,\n+            maxtarget, scope, zscore="no"))\n+    H.write(mapobj.compute_signature_h(minquery, maxquery, mintarget,\n+            maxtarget, scope))\n+    H.close()\n+    Z.close()\n+\n+\n+if __name__ == "__main__":\n+    args = Parser()\n+    main(args.input, args.minquery, args.maxquery, args.mintarget,\n+         args.maxtarget, args.minscope, args.maxscope, args.output_h,\n+         args.output_z)\n'
b
diff -r 000000000000 -r a35e6f9c1d34 signature.r
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/signature.r Mon Aug 28 09:29:47 2017 -0400
[
@@ -0,0 +1,99 @@
+## Setup R error handling to go to stderr
+#options(show.error.messages=F,
+        #error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
+warnings()
+
+library(RColorBrewer)
+library(lattice)
+library(latticeExtra)
+library(grid)
+library(gridExtra)
+library(optparse)
+
+option_list <- list(
+    make_option("--h_dataframe", type="character", help="path to h-signature dataframe"),
+    make_option("--z_dataframe", type="character", help="path to z-signature dataframe"),
+    make_option("--plot_method", type = "character", help="How  data should be plotted (global or lattice)"),
+    make_option("--pdf", type = "character", help="path to the pdf file with plots"),
+    make_option("--title", type = "character", help="Graph Title")
+    )

+parser <- OptionParser(usage = "%prog [options] file", option_list = option_list)
+args = parse_args(parser)
+
+
+

+# data frames implementation
+h_dataframe = read.delim(args$h_dataframe, header=F)
+colnames(h_dataframe) = c("chrom", "overlap", "sig", "z-score")
+h_dataframe$sig = h_dataframe$sig * 100  # to get probs in %
+z_dataframe = read.delim(args$z_dataframe, header=F)
+colnames(z_dataframe) = c("chrom", "overlap", "sig", "z-score")
+
+# functions
+      globalgraph = function () {
+        pdf(args$pdf)
+        par(mfrow=c(2,2),oma = c(0, 0, 3, 0))
+        
+        plot(z_dataframe[z_dataframe$chrom == "all_chromosomes", c(2,3)],
+             type = "h", main="Numbers of pairs", cex.main=1, xlab="overlap (nt)",
+             ylab="Numbers of pairs", col="darkslateblue", lwd=4)
+
+        plot(z_dataframe[z_dataframe$chrom == "all_chromosomes", c(2,4)],
+             type = "l", main="Number of pairs Z-scores", cex.main=1, xlab="overlap (nt)",
+             ylab="z-score", pch=19, cex=0.2, col="darkslateblue", lwd=2)
+
+        plot(h_dataframe[h_dataframe$chrom == "all_chromosomes", c(2,3)],
+             type = "l", main="Overlap probabilities", cex.main=1, xlab="overlap (nt)",
+             ylab="Probability [%]", ylim=c(0,50), pch=19, col="darkslateblue", lwd=2)
+
+        plot(h_dataframe[h_dataframe$chrom == "all_chromosomes", c(2,4)],
+             type = "l", main="Overlap Probability Z-scores", cex.main=1,
+             xlab="overlap (nt)", ylab="z-score", pch=19, cex=0.2,
+             col="darkslateblue", lwd=2)
+
+        mtext(args$title, outer = TRUE, cex=1)
+        dev.off()
+      }
+
+      treillisgraph = function (df, ...) {
+          pdf(args$pdf, paper="special", height=11.69, width=6 ) # 8.2677
+          p = xyplot(sig ~ overlap|factor(method, levels=unique(method))+chrom, data = df,
+                   type = "l",
+                   col='darkblue',
+                   cex=0.5,
+                   scales=list(y=list(tick.number=4, relation="free", cex=0.6, rot=0), x=list(cex=0.6, alternating=FALSE)),
+                   xlab = "Overlap",
+                   ylab = "signature (Nbr of pairs / Overlap prob.)",
+                   main = args$title,
+                   par.strip.text=list(cex=.5),
+                   pch=19, lwd =2,
+                   as.table=TRUE,
+                   layout=c(2,12),
+                   newpage = T,
+                   ...)
+           plot(p) 
+           dev.off()
+      }
+
+# main
+
+if (args$plot_method=="global") {
+    globalgraph()
+    }
+
+if(args$plot_method=="lattice") {
+    # rearrange dataframes
+    h_sig = h_dataframe[,c(1,2,3)]
+    h_sig = cbind(rep("Overlap Prob (%)", length(h_sig[,1])), h_sig)
+    colnames(h_sig) = c("method", "chrom", "overlap", "sig")
+    z_pairs = z_dataframe[,c(1,2,3)]
+    z_pairs = cbind(rep("Nbr of pairs", length(z_pairs[,1])), z_pairs)
+    colnames(z_pairs) = c("method", "chrom", "overlap", "sig")
+    lattice_df = rbind(z_pairs, h_sig)
+    par.settings.treillis=list(strip.background = list(
+            col = c("lightblue", "lightgreen")))
+
+    treillisgraph(lattice_df, par.settings=par.settings.treillis)    
+}
b
diff -r 000000000000 -r a35e6f9c1d34 signature.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/signature.xml Mon Aug 28 09:29:47 2017 -0400
[
@@ -0,0 +1,119 @@
+<tool id="signature" name="Small RNA Signatures" version="3.0.0">
+    <description />
+    <requirements>
+        <requirement type="package" version="1.11.2=py27_0">numpy</requirement>
+        <requirement type="package" version="0.11.2.1=py27_0">pysam</requirement>
+        <requirement type="package" version="1.3.2=r3.3.1_0">r-optparse</requirement>
+        <requirement type="package" version="0.6_28=r3.3.1_0">r-latticeextra</requirement>
+        <requirement type="package" version="2.2.1=r3.3.1_0">r-gridextra</requirement>
+    </requirements>
+    <stdio>
+        <exit_code range="1:" level="fatal" description="Tool exception" />
+    </stdio>
+      <command detect_errors="exit_code"><![CDATA[
+        samtools index '$input' &&
+        python '$__tool_directory__'/signature.py
+           --input '$input'
+           --minquery '$minquery'
+           --maxquery '$maxquery'
+           --mintarget '$mintarget'
+           --maxtarget '$maxtarget'
+           --minscope '$minscope'
+           --maxscope '$maxscope'
+           --output_h '$h_dataframe'
+           --output_z '$z_dataframe' &&
+        Rscript '$__tool_directory__'/signature.r
+           --h_dataframe '$h_dataframe'
+           --z_dataframe '$z_dataframe'
+           --plot_method '$plot_method'
+           --pdf '$pdf'
+           --title "Overlap Signatures of ${minquery}-${maxquery} against ${mintarget}-${maxtarget}nt small RNAs"
+    ]]></command>
+    <inputs>
+        <param format="bam" label="Compute signature from this bowtie standard output" name="input" type="data" />
+        <param help="'23' = 23 nucleotides" label="Min size of query small RNAs" name="minquery" size="3" type="integer" value="23" />
+        <param help="'29' = 29 nucleotides" label="Max size of query small RNAs" name="maxquery" size="3" type="integer" value="29" />
+        <param help="'23' = 23 nucleotides" label="Min size of target small RNAs" name="mintarget" size="3" type="integer" value="23" />
+        <param help="'29' = 29 nucleotides" label="Max size of target small RNAs" name="maxtarget" size="3" type="integer" value="29" />
+        <param help="'1' = 1 nucleotide overlap" label="Minimal relative overlap analyzed" name="minscope" size="3" type="integer" value="1" />
+        <param help="'1' = 1 nucleotide overlap" label="Maximal relative overlap analyzed" name="maxscope" size="3" type="integer" value="26" />
+        <param help="Signature can be computed globally or by item present in the alignment file" label="Graph type" name="plot_method" type="select">
+            <option selected="True" value="global">Global</option>
+            <option value="lattice">Lattice</option>
+        </param>
+    </inputs>
+    <outputs>
+        <data format="tabular" label="z-signature data frame" name="z_dataframe">
+            <actions>
+                <action name="column_names" type="metadata" default="Chromosome,Overlap,Number_of_pairs,z-score" />
+            </actions>
+        </data>
+        <data format="tabular" label="h-signature data frame" name="h_dataframe">
+            <actions>
+                <action name="column_names" type="metadata" default="Chromosome,Overlap,overlap_probability,z-score" />
+            </actions>
+        </data>
+        <data format="pdf" label="Overlap probabilities" name="pdf" />
+    </outputs>
+    <tests>
+        <test>
+            <param ftype="bam" name="input" value="sr_bowtie.bam" />
+            <param name="minquery" value="23" />
+            <param name="maxquery" value="29" />
+            <param name="mintarget" value="23" />
+            <param name="maxtarget" value="29" />
+            <param name="minscope" value="5" />
+            <param name="maxscope" value="15" />
+            <param name="plot_method" value="global" />
+            <output file="h.tab" ftype="tabular" name="h_dataframe" />
+            <output file="z.tab" ftype="tabular" name="z_dataframe" />
+            <output file="global.pdf" ftype="pdf" name="pdf" />
+        </test>
+        <test>
+            <param ftype="bam" name="input" value="sr_bowtie.bam" />
+            <param name="minquery" value="23" />
+            <param name="maxquery" value="29" />
+            <param name="mintarget" value="23" />
+            <param name="maxtarget" value="29" />
+            <param name="minscope" value="5" />
+            <param name="maxscope" value="15" />
+            <param name="plot_method" value="lattice" />
+            <output file="h.tab" ftype="tabular" name="h_dataframe" />
+            <output file="z.tab" ftype="tabular" name="z_dataframe" />
+            <output file="lattice.pdf" ftype="pdf" name="pdf" />
+        </test>
+    </tests>
+    <help>
+
+**What it does**
+
+Compute small RNA (piRNA, siRNA, ...) signatures.
+
+This tool computes (i) the number of pairs by overlap classes (in nt) and associated the z-scores,
+and (ii) the ping-pong signal (`Brennecke et al, 2009`_) and associated z-scores. 
+Options set the min and max size of both the query small rna class and the target small rna class, 
+the range over which to compute the signatures, and whether the signatures should be reported at 
+genome-wide level or by item (chromosomes, genes, etc.). For details on computational algorithmes 
+for piRNA and siRNA signatures, see `Antoniewski (2014)`_.
+
+.. _Brennecke et al, 2009: http://dx.doi.org/10.1126/science.1165171
+.. _Antoniewski (2014): https://link.springer.com/protocol/10.1007%2F978-1-4939-0931-5_12
+
+**Input**
+
+A **sorted** BAM alignment file.
+
+**Outputs**
+
+**Global**: The number of pairs founds, the ping-pong signal and the associated z-scores 
+are computed at genome-wide level and returned in a pdf file.
+
+**Lattice**: The number of pairs founds, the ping-pong signals and the associated z-scores 
+are computed for each items described in the BAM alignment input and returned in a pdf file as a lattice graph.
+
+
+        </help>
+    <citations>
+            <citation type="doi">10.1007/978-1-4939-0931-5_12</citation>
+    </citations>
+</tool>
b
diff -r 000000000000 -r a35e6f9c1d34 test-data/global.pdf
b
Binary file test-data/global.pdf has changed
b
diff -r 000000000000 -r a35e6f9c1d34 test-data/h.tab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/h.tab Mon Aug 28 09:29:47 2017 -0400
b
b'@@ -0,0 +1,1331 @@\n+FBgn0000004_17.6\t5\t0.0\t-0.565685424949\n+FBgn0000004_17.6\t6\t0.0\t-0.565685424949\n+FBgn0000004_17.6\t7\t0.00369003690037\t0.989949493661\n+FBgn0000004_17.6\t8\t0.0\t-0.565685424949\n+FBgn0000004_17.6\t9\t0.0\t-0.565685424949\n+FBgn0000004_17.6\t10\t0.00369003690037\t0.989949493661\n+FBgn0000004_17.6\t11\t0.0\t-0.565685424949\n+FBgn0000004_17.6\t12\t0.0\t-0.565685424949\n+FBgn0000004_17.6\t13\t0.0\t-0.565685424949\n+FBgn0000004_17.6\t14\t0.0\t-0.565685424949\n+FBgn0000004_17.6\t15\t0.00738007380074\t2.54558441227\n+FBgn0000005_297\t5\t0\t0\n+FBgn0000005_297\t6\t0\t0\n+FBgn0000005_297\t7\t0\t0\n+FBgn0000005_297\t8\t0\t0\n+FBgn0000005_297\t9\t0\t0\n+FBgn0000005_297\t10\t0\t0\n+FBgn0000005_297\t11\t0\t0\n+FBgn0000005_297\t12\t0\t0\n+FBgn0000005_297\t13\t0\t0\n+FBgn0000005_297\t14\t0\t0\n+FBgn0000005_297\t15\t0\t0\n+FBgn0000006_412\t5\t0.0\t-0.876714007519\n+FBgn0000006_412\t6\t0.00186046511628\t-0.187867287326\n+FBgn0000006_412\t7\t0.00279069767442\t0.156556072771\n+FBgn0000006_412\t8\t0.0\t-0.876714007519\n+FBgn0000006_412\t9\t0.0046511627907\t0.845402792965\n+FBgn0000006_412\t10\t0.00837209302326\t2.22309623335\n+FBgn0000006_412\t11\t0.00279069767442\t0.156556072771\n+FBgn0000006_412\t12\t0.0\t-0.876714007519\n+FBgn0000006_412\t13\t0.00558139534884\t1.18982615306\n+FBgn0000006_412\t14\t0.0\t-0.876714007519\n+FBgn0000006_412\t15\t0.0\t-0.876714007519\n+FBgn0000007_1731\t5\t0.0\t-0.383239046572\n+FBgn0000007_1731\t6\t0.0\t-0.383239046572\n+FBgn0000007_1731\t7\t0.0\t-0.383239046572\n+FBgn0000007_1731\t8\t0.0\t-0.383239046572\n+FBgn0000007_1731\t9\t0.0\t-0.383239046572\n+FBgn0000007_1731\t10\t0.0017667844523\t-0.149037407\n+FBgn0000007_1731\t11\t0.0265017667845\t3.12978554701\n+FBgn0000007_1731\t12\t0.0\t-0.383239046572\n+FBgn0000007_1731\t13\t0.0\t-0.383239046572\n+FBgn0000007_1731\t14\t0.00353356890459\t0.0851642325717\n+FBgn0000007_1731\t15\t0.0\t-0.383239046572\n+FBgn0000155_roo\t5\t0.0\t-0.849506616033\n+FBgn0000155_roo\t6\t0.00292153589316\t-0.39207997663\n+FBgn0000155_roo\t7\t0.000834724540902\t-0.718813290489\n+FBgn0000155_roo\t8\t0.00333889816361\t-0.326733313859\n+FBgn0000155_roo\t9\t0.0016694490818\t-0.588119964946\n+FBgn0000155_roo\t10\t0.0200333889816\t2.28713319701\n+FBgn0000155_roo\t11\t0.00667779632721\t0.196039988315\n+FBgn0000155_roo\t12\t0.00125208681135\t-0.653466627717\n+FBgn0000155_roo\t13\t0.0\t-0.849506616033\n+FBgn0000155_roo\t14\t0.00709515859766\t0.261386651087\n+FBgn0000155_roo\t15\t0.0158597662771\t1.63366656929\n+FBgn0000199_blood\t5\t0.0\t-0.661855797999\n+FBgn0000199_blood\t6\t0.0\t-0.661855797999\n+FBgn0000199_blood\t7\t0.000625782227785\t1.14670161951e-16\n+FBgn0000199_blood\t8\t0.0\t-0.661855797999\n+FBgn0000199_blood\t9\t0.0\t-0.661855797999\n+FBgn0000199_blood\t10\t0.0\t-0.661855797999\n+FBgn0000199_blood\t11\t0.000417188151856\t-0.220618599333\n+FBgn0000199_blood\t12\t0.000834376303713\t0.220618599333\n+FBgn0000199_blood\t13\t0.00333750521485\t2.86804179133\n+FBgn0000199_blood\t14\t0.000417188151856\t-0.220618599333\n+FBgn0000199_blood\t15\t0.00125156445557\t0.661855797999\n+FBgn0000224_BS\t5\t0.0\t-0.316227766017\n+FBgn0000224_BS\t6\t0.0\t-0.316227766017\n+FBgn0000224_BS\t7\t0.0\t-0.316227766017\n+FBgn0000224_BS\t8\t0.0\t-0.316227766017\n+FBgn0000224_BS\t9\t0.0\t-0.316227766017\n+FBgn0000224_BS\t10\t0.0\t-0.316227766017\n+FBgn0000224_BS\t11\t0.0\t-0.316227766017\n+FBgn0000224_BS\t12\t0.0\t-0.316227766017\n+FBgn0000224_BS\t13\t0.00772200772201\t3.16227766017\n+FBgn0000224_BS\t14\t0.0\t-0.316227766017\n+FBgn0000224_BS\t15\t0.0\t-0.316227766017\n+FBgn0000349_copia\t5\t0.0\t-0.586301969978\n+FBgn0000349_copia\t6\t0.0\t-0.586301969978\n+FBgn0000349_copia\t7\t0.0\t-0.586301969978\n+FBgn0000349_copia\t8\t0.0\t-0.586301969978\n+FBgn0000349_copia\t9\t0.00392156862745\t0.0\n+FBgn0000349_copia\t10\t0.0196078431373\t2.34520787991\n+FBgn0000349_copia\t11\t0.00392156862745\t0.0\n+FBgn0000349_copia\t12\t0.0\t-0.586301969978\n+FBgn0000349_copia\t13\t0.0\t-0.586301969978\n+FBgn0000349_copia\t14\t0.0\t-0.586301969978\n+FBgn0000349_copia\t15\t0.0156862745098\t1.75890590993\n+FBgn0000481_Doc\t5\t0.0\t-0.578924863757\n+FBgn0000481_Doc\t6\t0.0\t-0.578924863757\n+FBgn0000481_Doc\t7\t0.0\t-0.578924863757\n+FBgn0000481_Doc\t8\t0.00101214574899\t-0.511178337147\n+FBgn0000481_Doc\t9\t0.0\t-0.578924863757\n+FBgn0000481_Doc\t10\t0.0172064777328\t0.572766088611\n+FBg'..b'0\t0\n+FBgn0067387_gypsy10\t6\t0\t0\n+FBgn0067387_gypsy10\t7\t0\t0\n+FBgn0067387_gypsy10\t8\t0\t0\n+FBgn0067387_gypsy10\t9\t0\t0\n+FBgn0067387_gypsy10\t10\t0\t0\n+FBgn0067387_gypsy10\t11\t0\t0\n+FBgn0067387_gypsy10\t12\t0\t0\n+FBgn0067387_gypsy10\t13\t0\t0\n+FBgn0067387_gypsy10\t14\t0\t0\n+FBgn0067387_gypsy10\t15\t0\t0\n+FBgn0067405_R1-2\t5\t0\t0\n+FBgn0067405_R1-2\t6\t0\t0\n+FBgn0067405_R1-2\t7\t0\t0\n+FBgn0067405_R1-2\t8\t0\t0\n+FBgn0067405_R1-2\t9\t0\t0\n+FBgn0067405_R1-2\t10\t0\t0\n+FBgn0067405_R1-2\t11\t0\t0\n+FBgn0067405_R1-2\t12\t0\t0\n+FBgn0067405_R1-2\t13\t0\t0\n+FBgn0067405_R1-2\t14\t0\t0\n+FBgn0067405_R1-2\t15\t0\t0\n+FBgn0067418_Helitron\t5\t0\t0\n+FBgn0067418_Helitron\t6\t0\t0\n+FBgn0067418_Helitron\t7\t0\t0\n+FBgn0067418_Helitron\t8\t0\t0\n+FBgn0067418_Helitron\t9\t0\t0\n+FBgn0067418_Helitron\t10\t0\t0\n+FBgn0067418_Helitron\t11\t0\t0\n+FBgn0067418_Helitron\t12\t0\t0\n+FBgn0067418_Helitron\t13\t0\t0\n+FBgn0067418_Helitron\t14\t0\t0\n+FBgn0067418_Helitron\t15\t0\t0\n+FBgn0067419_G7\t5\t0\t0\n+FBgn0067419_G7\t6\t0\t0\n+FBgn0067419_G7\t7\t0\t0\n+FBgn0067419_G7\t8\t0\t0\n+FBgn0067419_G7\t9\t0\t0\n+FBgn0067419_G7\t10\t0\t0\n+FBgn0067419_G7\t11\t0\t0\n+FBgn0067419_G7\t12\t0\t0\n+FBgn0067419_G7\t13\t0\t0\n+FBgn0067419_G7\t14\t0\t0\n+FBgn0067419_G7\t15\t0\t0\n+FBgn0067420_Fw3\t5\t0\t0\n+FBgn0067420_Fw3\t6\t0\t0\n+FBgn0067420_Fw3\t7\t0\t0\n+FBgn0067420_Fw3\t8\t0\t0\n+FBgn0067420_Fw3\t9\t0\t0\n+FBgn0067420_Fw3\t10\t0\t0\n+FBgn0067420_Fw3\t11\t0\t0\n+FBgn0067420_Fw3\t12\t0\t0\n+FBgn0067420_Fw3\t13\t0\t0\n+FBgn0067420_Fw3\t14\t0\t0\n+FBgn0067420_Fw3\t15\t0\t0\n+FBgn0067421_Fw2\t5\t0\t0\n+FBgn0067421_Fw2\t6\t0\t0\n+FBgn0067421_Fw2\t7\t0\t0\n+FBgn0067421_Fw2\t8\t0\t0\n+FBgn0067421_Fw2\t9\t0\t0\n+FBgn0067421_Fw2\t10\t0\t0\n+FBgn0067421_Fw2\t11\t0\t0\n+FBgn0067421_Fw2\t12\t0\t0\n+FBgn0067421_Fw2\t13\t0\t0\n+FBgn0067421_Fw2\t14\t0\t0\n+FBgn0067421_Fw2\t15\t0\t0\n+FBgn0067624_BS3\t5\t0.0\t-0.316227766017\n+FBgn0067624_BS3\t6\t0.0\t-0.316227766017\n+FBgn0067624_BS3\t7\t0.0\t-0.316227766017\n+FBgn0067624_BS3\t8\t0.0\t-0.316227766017\n+FBgn0067624_BS3\t9\t0.0\t-0.316227766017\n+FBgn0067624_BS3\t10\t0.346153846154\t3.16227766017\n+FBgn0067624_BS3\t11\t0.0\t-0.316227766017\n+FBgn0067624_BS3\t12\t0.0\t-0.316227766017\n+FBgn0067624_BS3\t13\t0.0\t-0.316227766017\n+FBgn0067624_BS3\t14\t0.0\t-0.316227766017\n+FBgn0067624_BS3\t15\t0.0\t-0.316227766017\n+FBgn0067624_BS4\t5\t0\t0\n+FBgn0067624_BS4\t6\t0\t0\n+FBgn0067624_BS4\t7\t0\t0\n+FBgn0067624_BS4\t8\t0\t0\n+FBgn0067624_BS4\t9\t0\t0\n+FBgn0067624_BS4\t10\t0\t0\n+FBgn0067624_BS4\t11\t0\t0\n+FBgn0067624_BS4\t12\t0\t0\n+FBgn0067624_BS4\t13\t0\t0\n+FBgn0067624_BS4\t14\t0\t0\n+FBgn0067624_BS4\t15\t0\t0\n+FBgn0069340_Tc1-2\t5\t0.0\t-0.316227766017\n+FBgn0069340_Tc1-2\t6\t0.0\t-0.316227766017\n+FBgn0069340_Tc1-2\t7\t0.0\t-0.316227766017\n+FBgn0069340_Tc1-2\t8\t0.103448275862\t3.16227766017\n+FBgn0069340_Tc1-2\t9\t0.0\t-0.316227766017\n+FBgn0069340_Tc1-2\t10\t0.0\t-0.316227766017\n+FBgn0069340_Tc1-2\t11\t0.0\t-0.316227766017\n+FBgn0069340_Tc1-2\t12\t0.0\t-0.316227766017\n+FBgn0069340_Tc1-2\t13\t0.0\t-0.316227766017\n+FBgn0069340_Tc1-2\t14\t0.0\t-0.316227766017\n+FBgn0069340_Tc1-2\t15\t0.0\t-0.316227766017\n+FBgn0069433_G5A\t5\t0\t0\n+FBgn0069433_G5A\t6\t0\t0\n+FBgn0069433_G5A\t7\t0\t0\n+FBgn0069433_G5A\t8\t0\t0\n+FBgn0069433_G5A\t9\t0\t0\n+FBgn0069433_G5A\t10\t0\t0\n+FBgn0069433_G5A\t11\t0\t0\n+FBgn0069433_G5A\t12\t0\t0\n+FBgn0069433_G5A\t13\t0\t0\n+FBgn0069433_G5A\t14\t0\t0\n+FBgn0069433_G5A\t15\t0\t0\n+FBgn0069587_Doc4-element\t5\t0\t0\n+FBgn0069587_Doc4-element\t6\t0\t0\n+FBgn0069587_Doc4-element\t7\t0\t0\n+FBgn0069587_Doc4-element\t8\t0\t0\n+FBgn0069587_Doc4-element\t9\t0\t0\n+FBgn0069587_Doc4-element\t10\t0\t0\n+FBgn0069587_Doc4-element\t11\t0\t0\n+FBgn0069587_Doc4-element\t12\t0\t0\n+FBgn0069587_Doc4-element\t13\t0\t0\n+FBgn0069587_Doc4-element\t14\t0\t0\n+FBgn0069587_Doc4-element\t15\t0\t0\n+all_chromosomes\t5\t4.26865796963e-06\t-1.02078731734\n+all_chromosomes\t6\t0.000272508714058\t-0.505836219906\n+all_chromosomes\t7\t0.000314189173203\t-0.425820585808\n+all_chromosomes\t8\t0.000481492106257\t-0.104642495418\n+all_chromosomes\t9\t0.000402138333192\t-0.256981087653\n+all_chromosomes\t10\t0.00205870585512\t2.92319742793\n+all_chromosomes\t11\t0.000380479180279\t-0.298561024389\n+all_chromosomes\t12\t0.000209011312505\t-0.627734705504\n+all_chromosomes\t13\t0.000334785271578\t-0.386281437121\n+all_chromosomes\t14\t0.000668570428043\t0.254499194734\n+all_chromosomes\t15\t0.000769859707507\t0.448948250475\n'
b
diff -r 000000000000 -r a35e6f9c1d34 test-data/lattice.pdf
b
Binary file test-data/lattice.pdf has changed
b
diff -r 000000000000 -r a35e6f9c1d34 test-data/sr_bowtie.bam
b
Binary file test-data/sr_bowtie.bam has changed
b
diff -r 000000000000 -r a35e6f9c1d34 test-data/z.tab
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/z.tab Mon Aug 28 09:29:47 2017 -0400
b
b'@@ -0,0 +1,1331 @@\n+FBgn0000004_17.6\t5\t0\t-0.612372435696\n+FBgn0000004_17.6\t6\t0\t-0.612372435696\n+FBgn0000004_17.6\t7\t1\t1.63299316186\n+FBgn0000004_17.6\t8\t0\t-0.612372435696\n+FBgn0000004_17.6\t9\t0\t-0.612372435696\n+FBgn0000004_17.6\t10\t1\t1.63299316186\n+FBgn0000004_17.6\t11\t0\t-0.612372435696\n+FBgn0000004_17.6\t12\t0\t-0.612372435696\n+FBgn0000004_17.6\t13\t0\t-0.612372435696\n+FBgn0000004_17.6\t14\t0\t-0.612372435696\n+FBgn0000004_17.6\t15\t1\t1.63299316186\n+FBgn0000005_297\t5\t0\t0\n+FBgn0000005_297\t6\t0\t0\n+FBgn0000005_297\t7\t0\t0\n+FBgn0000005_297\t8\t0\t0\n+FBgn0000005_297\t9\t0\t0\n+FBgn0000005_297\t10\t0\t0\n+FBgn0000005_297\t11\t0\t0\n+FBgn0000005_297\t12\t0\t0\n+FBgn0000005_297\t13\t0\t0\n+FBgn0000005_297\t14\t0\t0\n+FBgn0000005_297\t15\t0\t0\n+FBgn0000006_412\t5\t0\t-0.733235575107\n+FBgn0000006_412\t6\t2\t0.0733235575107\n+FBgn0000006_412\t7\t1\t-0.329956008798\n+FBgn0000006_412\t8\t0\t-0.733235575107\n+FBgn0000006_412\t9\t5\t1.28316225644\n+FBgn0000006_412\t10\t8\t2.49300095536\n+FBgn0000006_412\t11\t3\t0.476603123819\n+FBgn0000006_412\t12\t0\t-0.733235575107\n+FBgn0000006_412\t13\t1\t-0.329956008798\n+FBgn0000006_412\t14\t0\t-0.733235575107\n+FBgn0000006_412\t15\t0\t-0.733235575107\n+FBgn0000007_1731\t5\t0\t-0.565685424949\n+FBgn0000007_1731\t6\t0\t-0.565685424949\n+FBgn0000007_1731\t7\t0\t-0.565685424949\n+FBgn0000007_1731\t8\t0\t-0.565685424949\n+FBgn0000007_1731\t9\t0\t-0.565685424949\n+FBgn0000007_1731\t10\t1\t0.989949493661\n+FBgn0000007_1731\t11\t2\t2.54558441227\n+FBgn0000007_1731\t12\t0\t-0.565685424949\n+FBgn0000007_1731\t13\t0\t-0.565685424949\n+FBgn0000007_1731\t14\t1\t0.989949493661\n+FBgn0000007_1731\t15\t0\t-0.565685424949\n+FBgn0000155_roo\t5\t0\t-1.25325662732\n+FBgn0000155_roo\t6\t2\t-0.442325868465\n+FBgn0000155_roo\t7\t1\t-0.847791247891\n+FBgn0000155_roo\t8\t3\t-0.0368604890387\n+FBgn0000155_roo\t9\t2\t-0.442325868465\n+FBgn0000155_roo\t10\t8\t1.99046640809\n+FBgn0000155_roo\t11\t7\t1.58500102867\n+FBgn0000155_roo\t12\t3\t-0.0368604890387\n+FBgn0000155_roo\t13\t0\t-1.25325662732\n+FBgn0000155_roo\t14\t4\t0.368604890387\n+FBgn0000155_roo\t15\t4\t0.368604890387\n+FBgn0000199_blood\t5\t0\t-0.886405260428\n+FBgn0000199_blood\t6\t0\t-0.886405260428\n+FBgn0000199_blood\t7\t1\t0.0\n+FBgn0000199_blood\t8\t0\t-0.886405260428\n+FBgn0000199_blood\t9\t0\t-0.886405260428\n+FBgn0000199_blood\t10\t0\t-0.886405260428\n+FBgn0000199_blood\t11\t1\t0.0\n+FBgn0000199_blood\t12\t2\t0.886405260428\n+FBgn0000199_blood\t13\t3\t1.77281052086\n+FBgn0000199_blood\t14\t1\t0.0\n+FBgn0000199_blood\t15\t3\t1.77281052086\n+FBgn0000224_BS\t5\t0\t-0.316227766017\n+FBgn0000224_BS\t6\t0\t-0.316227766017\n+FBgn0000224_BS\t7\t0\t-0.316227766017\n+FBgn0000224_BS\t8\t0\t-0.316227766017\n+FBgn0000224_BS\t9\t0\t-0.316227766017\n+FBgn0000224_BS\t10\t0\t-0.316227766017\n+FBgn0000224_BS\t11\t0\t-0.316227766017\n+FBgn0000224_BS\t12\t0\t-0.316227766017\n+FBgn0000224_BS\t13\t1\t3.16227766017\n+FBgn0000224_BS\t14\t0\t-0.316227766017\n+FBgn0000224_BS\t15\t0\t-0.316227766017\n+FBgn0000349_copia\t5\t0\t-0.697485832463\n+FBgn0000349_copia\t6\t0\t-0.697485832463\n+FBgn0000349_copia\t7\t0\t-0.697485832463\n+FBgn0000349_copia\t8\t0\t-0.697485832463\n+FBgn0000349_copia\t9\t1\t0.581238193719\n+FBgn0000349_copia\t10\t2\t1.8599622199\n+FBgn0000349_copia\t11\t1\t0.581238193719\n+FBgn0000349_copia\t12\t0\t-0.697485832463\n+FBgn0000349_copia\t13\t0\t-0.697485832463\n+FBgn0000349_copia\t14\t0\t-0.697485832463\n+FBgn0000349_copia\t15\t2\t1.8599622199\n+FBgn0000481_Doc\t5\t0\t-0.732519874033\n+FBgn0000481_Doc\t6\t0\t-0.732519874033\n+FBgn0000481_Doc\t7\t0\t-0.732519874033\n+FBgn0000481_Doc\t8\t1\t-0.366259937017\n+FBgn0000481_Doc\t9\t0\t-0.732519874033\n+FBgn0000481_Doc\t10\t3\t0.366259937017\n+FBgn0000481_Doc\t11\t3\t0.366259937017\n+FBgn0000481_Doc\t12\t5\t1.09877981105\n+FBgn0000481_Doc\t13\t9\t2.56381955912\n+FBgn0000481_Doc\t14\t0\t-0.732519874033\n+FBgn0000481_Doc\t15\t1\t-0.366259937017\n+FBgn0000638_FB\t5\t0\t0\n+FBgn0000638_FB\t6\t0\t0\n+FBgn0000638_FB\t7\t0\t0\n+FBgn0000638_FB\t8\t0\t0\n+FBgn0000638_FB\t9\t0\t0\n+FBgn0000638_FB\t10\t0\t0\n+FBgn0000638_FB\t11\t0\t0\n+FBgn0000638_FB\t12\t0\t0\n+FBgn0000638_FB\t13\t0\t0\n+FBgn0000638_FB\t14\t0\t0\n+FBgn0000638_FB\t15\t0\t0\n+FBgn0000652_F-element\t5\t0\t-1.07547773595\n+FBgn0000652_F-element\t6\t1\t-0.921838059382\n+FBgn0000652_F-element\t7\t2\t-0.768198382818\n+FBgn0000652_F-element\t8\t11\t0.614558706255\n+FBgn0000652_F-elemen'..b'psy11\t8\t0\t0\n+FBgn0067386_gypsy11\t9\t0\t0\n+FBgn0067386_gypsy11\t10\t0\t0\n+FBgn0067386_gypsy11\t11\t0\t0\n+FBgn0067386_gypsy11\t12\t0\t0\n+FBgn0067386_gypsy11\t13\t0\t0\n+FBgn0067386_gypsy11\t14\t0\t0\n+FBgn0067386_gypsy11\t15\t0\t0\n+FBgn0067387_gypsy10\t5\t0\t0\n+FBgn0067387_gypsy10\t6\t0\t0\n+FBgn0067387_gypsy10\t7\t0\t0\n+FBgn0067387_gypsy10\t8\t0\t0\n+FBgn0067387_gypsy10\t9\t0\t0\n+FBgn0067387_gypsy10\t10\t0\t0\n+FBgn0067387_gypsy10\t11\t0\t0\n+FBgn0067387_gypsy10\t12\t0\t0\n+FBgn0067387_gypsy10\t13\t0\t0\n+FBgn0067387_gypsy10\t14\t0\t0\n+FBgn0067387_gypsy10\t15\t0\t0\n+FBgn0067405_R1-2\t5\t0\t0\n+FBgn0067405_R1-2\t6\t0\t0\n+FBgn0067405_R1-2\t7\t0\t0\n+FBgn0067405_R1-2\t8\t0\t0\n+FBgn0067405_R1-2\t9\t0\t0\n+FBgn0067405_R1-2\t10\t0\t0\n+FBgn0067405_R1-2\t11\t0\t0\n+FBgn0067405_R1-2\t12\t0\t0\n+FBgn0067405_R1-2\t13\t0\t0\n+FBgn0067405_R1-2\t14\t0\t0\n+FBgn0067405_R1-2\t15\t0\t0\n+FBgn0067418_Helitron\t5\t0\t0\n+FBgn0067418_Helitron\t6\t0\t0\n+FBgn0067418_Helitron\t7\t0\t0\n+FBgn0067418_Helitron\t8\t0\t0\n+FBgn0067418_Helitron\t9\t0\t0\n+FBgn0067418_Helitron\t10\t0\t0\n+FBgn0067418_Helitron\t11\t0\t0\n+FBgn0067418_Helitron\t12\t0\t0\n+FBgn0067418_Helitron\t13\t0\t0\n+FBgn0067418_Helitron\t14\t0\t0\n+FBgn0067418_Helitron\t15\t0\t0\n+FBgn0067419_G7\t5\t0\t0\n+FBgn0067419_G7\t6\t0\t0\n+FBgn0067419_G7\t7\t0\t0\n+FBgn0067419_G7\t8\t0\t0\n+FBgn0067419_G7\t9\t0\t0\n+FBgn0067419_G7\t10\t0\t0\n+FBgn0067419_G7\t11\t0\t0\n+FBgn0067419_G7\t12\t0\t0\n+FBgn0067419_G7\t13\t0\t0\n+FBgn0067419_G7\t14\t0\t0\n+FBgn0067419_G7\t15\t0\t0\n+FBgn0067420_Fw3\t5\t0\t0\n+FBgn0067420_Fw3\t6\t0\t0\n+FBgn0067420_Fw3\t7\t0\t0\n+FBgn0067420_Fw3\t8\t0\t0\n+FBgn0067420_Fw3\t9\t0\t0\n+FBgn0067420_Fw3\t10\t0\t0\n+FBgn0067420_Fw3\t11\t0\t0\n+FBgn0067420_Fw3\t12\t0\t0\n+FBgn0067420_Fw3\t13\t0\t0\n+FBgn0067420_Fw3\t14\t0\t0\n+FBgn0067420_Fw3\t15\t0\t0\n+FBgn0067421_Fw2\t5\t0\t0\n+FBgn0067421_Fw2\t6\t0\t0\n+FBgn0067421_Fw2\t7\t0\t0\n+FBgn0067421_Fw2\t8\t0\t0\n+FBgn0067421_Fw2\t9\t0\t0\n+FBgn0067421_Fw2\t10\t0\t0\n+FBgn0067421_Fw2\t11\t0\t0\n+FBgn0067421_Fw2\t12\t0\t0\n+FBgn0067421_Fw2\t13\t0\t0\n+FBgn0067421_Fw2\t14\t0\t0\n+FBgn0067421_Fw2\t15\t0\t0\n+FBgn0067624_BS3\t5\t0\t-0.316227766017\n+FBgn0067624_BS3\t6\t0\t-0.316227766017\n+FBgn0067624_BS3\t7\t0\t-0.316227766017\n+FBgn0067624_BS3\t8\t0\t-0.316227766017\n+FBgn0067624_BS3\t9\t0\t-0.316227766017\n+FBgn0067624_BS3\t10\t3\t3.16227766017\n+FBgn0067624_BS3\t11\t0\t-0.316227766017\n+FBgn0067624_BS3\t12\t0\t-0.316227766017\n+FBgn0067624_BS3\t13\t0\t-0.316227766017\n+FBgn0067624_BS3\t14\t0\t-0.316227766017\n+FBgn0067624_BS3\t15\t0\t-0.316227766017\n+FBgn0067624_BS4\t5\t0\t0\n+FBgn0067624_BS4\t6\t0\t0\n+FBgn0067624_BS4\t7\t0\t0\n+FBgn0067624_BS4\t8\t0\t0\n+FBgn0067624_BS4\t9\t0\t0\n+FBgn0067624_BS4\t10\t0\t0\n+FBgn0067624_BS4\t11\t0\t0\n+FBgn0067624_BS4\t12\t0\t0\n+FBgn0067624_BS4\t13\t0\t0\n+FBgn0067624_BS4\t14\t0\t0\n+FBgn0067624_BS4\t15\t0\t0\n+FBgn0069340_Tc1-2\t5\t0\t-0.316227766017\n+FBgn0069340_Tc1-2\t6\t0\t-0.316227766017\n+FBgn0069340_Tc1-2\t7\t0\t-0.316227766017\n+FBgn0069340_Tc1-2\t8\t1\t3.16227766017\n+FBgn0069340_Tc1-2\t9\t0\t-0.316227766017\n+FBgn0069340_Tc1-2\t10\t0\t-0.316227766017\n+FBgn0069340_Tc1-2\t11\t0\t-0.316227766017\n+FBgn0069340_Tc1-2\t12\t0\t-0.316227766017\n+FBgn0069340_Tc1-2\t13\t0\t-0.316227766017\n+FBgn0069340_Tc1-2\t14\t0\t-0.316227766017\n+FBgn0069340_Tc1-2\t15\t0\t-0.316227766017\n+FBgn0069433_G5A\t5\t0\t0\n+FBgn0069433_G5A\t6\t0\t0\n+FBgn0069433_G5A\t7\t0\t0\n+FBgn0069433_G5A\t8\t0\t0\n+FBgn0069433_G5A\t9\t0\t0\n+FBgn0069433_G5A\t10\t0\t0\n+FBgn0069433_G5A\t11\t0\t0\n+FBgn0069433_G5A\t12\t0\t0\n+FBgn0069433_G5A\t13\t0\t0\n+FBgn0069433_G5A\t14\t0\t0\n+FBgn0069433_G5A\t15\t0\t0\n+FBgn0069587_Doc4-element\t5\t0\t0\n+FBgn0069587_Doc4-element\t6\t0\t0\n+FBgn0069587_Doc4-element\t7\t0\t0\n+FBgn0069587_Doc4-element\t8\t0\t0\n+FBgn0069587_Doc4-element\t9\t0\t0\n+FBgn0069587_Doc4-element\t10\t0\t0\n+FBgn0069587_Doc4-element\t11\t0\t0\n+FBgn0069587_Doc4-element\t12\t0\t0\n+FBgn0069587_Doc4-element\t13\t0\t0\n+FBgn0069587_Doc4-element\t14\t0\t0\n+FBgn0069587_Doc4-element\t15\t0\t0\n+all_chromosomes\t5\t2\t-1.08978129104\n+all_chromosomes\t6\t43\t-0.422900202493\n+all_chromosomes\t7\t44\t-0.40663481009\n+all_chromosomes\t8\t60\t-0.146388531632\n+all_chromosomes\t9\t71\t0.0325307848072\n+all_chromosomes\t10\t254\t3.00909759466\n+all_chromosomes\t11\t70\t0.0162653924036\n+all_chromosomes\t12\t43\t-0.422900202493\n+all_chromosomes\t13\t43\t-0.422900202493\n+all_chromosomes\t14\t58\t-0.17891931644\n+all_chromosomes\t15\t71\t0.0325307848072\n'
b
diff -r 000000000000 -r a35e6f9c1d34 tool-data/bowtie_indices.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/bowtie_indices.loc.sample Mon Aug 28 09:29:47 2017 -0400
b
@@ -0,0 +1,37 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of Bowtie indexed sequences data files. You will
+#need to create these data files and then create a bowtie_indices.loc
+#file similar to this one (store it in this directory) that points to
+#the directories in which those files are stored. The bowtie_indices.loc
+#file has this format (longer white space characters are TAB characters):
+#
+#<unique_build_id>   <dbkey>   <display_name>   <file_base_path>
+#
+#So, for example, if you had hg18 indexed stored in
+#/depot/data2/galaxy/bowtie/hg18/,
+#then the bowtie_indices.loc entry would look like this:
+#
+#hg18 hg18 hg18 /depot/data2/galaxy/bowtie/hg18/hg18
+#
+#and your /depot/data2/galaxy/bowtie/hg18/ directory
+#would contain hg18.*.ebwt files:
+#
+#-rw-r--r--  1 james    universe 830134 2005-09-13 10:12 hg18.1.ebwt
+#-rw-r--r--  1 james    universe 527388 2005-09-13 10:12 hg18.2.ebwt
+#-rw-r--r--  1 james    universe 269808 2005-09-13 10:12 hg18.3.ebwt
+#...etc...
+#
+#Your bowtie_indices.loc file should include an entry per line for each
+#index set you have stored. The "file" in the path does not actually
+#exist, but it is the prefix for the actual index files. For example:
+#
+#hg18canon  hg18 hg18 Canonical /depot/data2/galaxy/bowtie/hg18/hg18canon
+#hg18full  hg18 hg18 Full  /depot/data2/galaxy/bowtie/hg18/hg18full
+#/orig/path/hg19 hg19 hg19  /depot/data2/galaxy/bowtie/hg19/hg19
+#...etc...
+#
+#Note that for backwards compatibility with workflows, the unique ID of
+#an entry must be the path that was in the original loc file, because that
+#is the value stored in the workflow for that parameter. That is why the
+#hg19 entry above looks odd. New genomes can be better-looking.
+#
b
diff -r 000000000000 -r a35e6f9c1d34 tool_data_table_conf.xml.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.sample Mon Aug 28 09:29:47 2017 -0400
b
@@ -0,0 +1,8 @@
+<!-- Use the file tool_data_table_conf.xml.oldlocstyle if you don't want to update your loc files as changed in revision 4550:535d276c92bc-->
+<tables>
+    <!-- Locations of indexes in the Bowtie mapper format -->
+    <table name="bowtie_indexes" comment_char="#">
+        <columns>value, dbkey, name, path</columns>
+        <file path="tool-data/bowtie_indices.loc" />
+    </table>
+</tables>
b
diff -r 000000000000 -r a35e6f9c1d34 tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml Mon Aug 28 09:29:47 2017 -0400
b
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<tool_dependency>
+  <package name="bowtie" version="1.1.2">
+      <repository changeset_revision="a1c1a92e13a6" name="package_bowtie_1_1_2" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+    <package name="pysam" version="0.8.3">
+      <repository changeset_revision="08db58be052a" name="package_python_2_7_pysam_0_8_3" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+    <package name="numpy" version="1.9">
+        <repository changeset_revision="f24fc0b630fc" name="package_python_2_7_numpy_1_9" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+    <package name="R" version="3.1.2">
+        <repository changeset_revision="4d2fd1413b56" name="package_r_3_1_2" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+    <package name="biocbasics" version="2.14">
+        <repository changeset_revision="f0ef1a7b157e" name="package_biocbasics_2_14" owner="mvdbeek" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+</tool_dependency>