changeset 0:a06f7b5c4dc7 draft default tip

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/pandas_rolling_window commit bdbedf42854d16bb00c396045007d4baece0a869
author bgruening
date Mon, 20 May 2019 08:42:54 -0400
parents
children
files pandas_rolling.xml test-data/1 (Kopie).bedgraph test-data/1.bedgraph test-data/1_boxcar.bedgraph test-data/1_hamming.bedgraph test-data/2_boxcar.bedgraph test-data/2_hamming.bedgraph
diffstat 7 files changed, 775 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pandas_rolling.xml	Mon May 20 08:42:54 2019 -0400
@@ -0,0 +1,175 @@
+<tool id="pandas_rolling_window" name="Rolling window" version="0.1">
+    <description>over a dataframe (e.g. for data smoothing)</description>
+    <requirements>
+        <requirement type="package" version="1.16.3">numpy</requirement>
+        <requirement type="package" version="1.2.1">scipy</requirement>
+        <requirement type="package" version="0.24.2">pandas</requirement>
+    </requirements>
+    <command>
+<![CDATA[
+
+    cat '$pandas_script' &&
+    python '$pandas_script'
+
+]]>
+    </command>
+    <configfiles>
+        <configfile name="pandas_script"><![CDATA[
+import argparse
+import sys
+
+import pandas as pd
+
+kwargs = dict()
+window_type = '$smooth_function.smooth_function_opts_selector'
+
+#if $smooth_function.smooth_function_opts_selector == 'gaussian':
+kwargs.update({'std': $smooth_function.gaussian_std})
+#elif $smooth_function.smooth_function_opts_selector == 'general_gaussian':
+kwargs = ({'power': $smooth_function.ggaussian_power, 'width': $smooth_function.ggaussian_width})
+#elif $smooth_function.smooth_function_opts_selector == 'kaiser':
+kwargs.update({'beta': $smooth_function.kaiser_beta})
+#elif $smooth_function.smooth_function_opts_selector == 'slepian':
+kwargs.update({'width': $smooth_function.slepian_width})
+#end if
+
+df = pd.read_csv('${infile}', sep='\t', index_col=None, header=None, dtype={'strand': object} )
+
+#if $group_column:
+df['aggregate'] = df.groupby( int($group_column)-1, sort=False )[int($value_column)-1].rolling(${window_len}, win_type=window_type, center=$centering ).${statistics}(**kwargs).reset_index(drop=True)
+#else:
+df['aggregate'] = df[int($value_column)-1].rolling(${window_len}, win_type=window_type, center=$centering ).${statistics}(**kwargs).reset_index(drop=True)
+#end if
+
+df.to_csv('${outfile}', index=False, header=False, sep='\t', na_rep='0', float_format='%.2f')
+    ]]> </configfile>
+    </configfiles>
+    <inputs>
+        <param name="infile" type="data" format="tabular,bed.interval" label="Select input file in tabular or BED format"/>
+        <param name="group_column" type="data_column" data_ref="infile" optional="true" label="Optional column to group"
+            help="For example if you have a chromosome column you probably want to group each chromosome before you apply any function." />
+
+        <param name="value_column" type="data_column" data_ref="infile" label="Column with the value of interest"
+            help="" />
+
+        <conditional name="smooth_function">
+            <param name="smooth_function_opts_selector" type="select" label="Provide a window type"
+                help="For more information please see https://en.wikipedia.org/wiki/Window_function">
+                <option value="boxcar" selected="True">Boxcar or Dirichlet, all points are evenly weighted</option>
+                <option value="triang">triang</option>
+                <option value="blackman">blackman</option>
+                <option value="hamming">hamming</option>
+                <option value="bartlett">bartlett</option>
+                <option value="parzen">parzen</option>
+                <option value="bohman">bohman</option>
+                <option value="blackmanharris">blackmanharris</option>
+                <option value="nuttall">nuttall</option>
+                <option value="barthann">barthann</option>
+                <!--option value="kaiser">kaiser</option>
+                <option value="gaussian">gaussian</option>
+                <option value="general_gaussian">general gaussian</option>
+                <option value="slepian">slepian</option-->
+            </param>
+            <when value="boxcar" />
+            <when value="triang" />
+            <when value="blackman" />
+            <when value="hamming" />
+            <when value="bartlett" />
+            <when value="parzen" />
+            <when value="bohman" />
+            <when value="blackmanharris" />
+            <when value="nuttall" />
+            <when value="barthann" />
+            <when value="kaiser">
+                <param name="kaiser_beta" type="float" value="0.1" min='0.0' label="beta" />
+            </when>
+            <when value="gaussian">
+                <param name="gaussian_std" type="float" value="0.1" min='0.0' label="std" />
+            </when>
+            <when value="general_gaussian">
+                <param name="ggaussian_power" type="integer" value="2" min='1' label="power" />
+                <param name="ggaussian_width" type="integer" value="2" min="1" label="width" />
+            </when>
+            <when value="slepian">
+                <param name="slepian_width" type="integer" value="2" min="1" label="width" />
+            </when>
+        </conditional>
+
+        <param name="statistics" type="select" label="Provide a statistical function">
+            <option value="count">Number of non-null observations (count)</option>
+            <option value="sum">Sum of values (sum)</option>
+            <option value="mean" selected="true">Mean of values (mean)</option>
+            <option value="median">Arithmetic median of values (median)</option>
+            <option value="min">Minimum (min)</option>
+            <option value="max">max (max)</option>
+            <option value="std">Bessel-corrected sample standard deviation (std)</option>
+            <option value="var">Unbiased variance (var)</option>
+            <option value="skew">Sample skewness (3rd moment)</option>
+            <option value="kurt">Sample kurtosis (4th moment)</option>
+            <option value="quantil">Sample quantile (value at %)</option>
+            <option value="cov">Unbiased covariance (binary) (cov)</option>
+            <option value="corr">Correlation (corr)</option>
+        </param>
+
+        <param name="centering" type="boolean" truevalue="True" falsevalue="False" label="center smoothed values"
+            help="By default the labels are set to the right edge of the window. Here you can change that to the center." />
+        <!-- Options for all formats.-->
+        <param name="window_len" type="integer" value="3" min="2" label="Window length"/>
+    </inputs>
+    <outputs>
+        <data name="outfile" format_source="infile" />
+    </outputs>
+    <tests>
+        <test>
+            <param name="infile" value="1.bedgraph"/>
+            <param name="group_column" value="1"/>
+            <param name="value_column" value="5"/>
+            <conditional name="smooth_function">
+                <param name="smooth_function_opts_selector" value="boxcar"/>
+            </conditional>
+            <param name="window_len" value="3"/>
+            <output name="outfile" value="1_boxcar.bedgraph"/>
+        </test>
+        <test>
+            <!-- None test -->
+            <param name="infile" value="1.bedgraph"/>
+            <param name="value_column" value="5"/>
+            <conditional name="smooth_function">
+                <param name="smooth_function_opts_selector" value="boxcar"/>
+            </conditional>
+            <param name="window_len" value="3"/>
+            <output name="outfile" value="2_boxcar.bedgraph"/>
+        </test>
+        <test>
+            <param name="infile" value="1.bedgraph"/>
+            <param name="group_column" value="1"/>
+            <param name="value_column" value="5"/>
+            <conditional name="smooth_function">
+                <param name="smooth_function_opts_selector" value="hamming"/>
+            </conditional>
+            <param name="window_len" value="3"/>
+            <param name="statistics" value="sum"/>
+            <output name="outfile" value="1_hamming.bedgraph"/>
+        </test>
+        <test>
+            <param name="infile" value="1.bedgraph"/>
+            <param name="value_column" value="5"/>
+            <conditional name="smooth_function">
+                <param name="smooth_function_opts_selector" value="hamming"/>
+            </conditional>
+            <param name="window_len" value="3"/>
+            <param name="statistics" value="sum"/>
+            <output name="outfile" value="2_hamming.bedgraph"/>
+        </test>
+    </tests>
+    <help>
+<![CDATA[
+
+**What it does**
+
+Provides rolling window calculations, e.g. for smoothing values.
+
+
+]]>
+    </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1 (Kopie).bedgraph	Mon May 20 08:42:54 2019 -0400
@@ -0,0 +1,100 @@
+chr10	3000180	3000182	100	5	0	5.0
+chr10	3000185	3000187	100	5	0	5.0
+chr10	3000270	3000272	73	11	4	15.0
+chr10	3000294	3000296	100	14	0	14.0
+chr10	3000353	3000355	81	9	2	11.0
+chr10	3000488	3000490	66	4	2	6.0
+chr10	3000657	3000659	66	4	2	6.0
+chr10	3000709	3000711	80	4	1	5.0
+chr10	3000718	3000720	100	5	0	5.0
+chr10	3000923	3000925	80	4	1	5.0
+chr10	3001027	3001029	88	8	1	9.0
+chr10	3001029	3001031	100	9	0	9.0
+chr10	3001055	3001057	100	8	0	8.0
+chr10	3001188	3001190	75	3	1	4.0
+chr10	3001586	3001588	83	5	1	6.0
+chr10	3001747	3001749	100	7	0	7.0
+chr10	3001898	3001900	37	3	5	8.0
+chr10	3001908	3001910	55	5	4	9.0
+chr10	3001923	3001925	100	5	0	5.0
+chr10	3001928	3001930	100	5	0	5.0
+chr10	3001989	3001991	69	9	4	13.0
+chr10	3001996	3001998	84	11	2	13.0
+chr10	3002030	3002032	92	12	1	13.0
+chr10	3002077	3002079	77	7	2	9.0
+chr10	3002089	3002091	100	9	0	9.0
+chr10	3002093	3002095	44	4	5	9.0
+chr10	3002116	3002118	100	7	0	7.0
+chr10	3002147	3002149	80	8	2	10.0
+chr10	3002159	3002161	50	4	4	8.0
+chr10	3002261	3002263	100	16	0	16.0
+chr10	3002320	3002322	92	12	1	13.0
+chr10	3002514	3002516	100	4	0	4.0
+chr10	3002526	3002528	83	5	1	6.0
+chr10	3002539	3002541	100	8	0	8.0
+chr10	3002560	3002562	88	8	1	9.0
+chr10	3002594	3002596	100	8	0	8.0
+chr10	3002607	3002609	88	8	1	9.0
+chr10	3002628	3002630	100	12	0	12.0
+chr10	3002641	3002643	100	9	0	9.0
+chr10	3002904	3002906	100	9	0	9.0
+chr10	3002932	3002934	83	5	1	6.0
+chr10	3003427	3003429	61	8	5	13.0
+chr10	3003435	3003437	84	11	2	13.0
+chr10	3003465	3003467	90	10	1	11.0
+chr10	3003494	3003496	100	9	0	9.0
+chr10	3003584	3003586	60	6	4	10.0
+chr10	3003924	3003926	100	4	0	4.0
+chr10	3003976	3003978	100	12	0	12.0
+chr10	3004035	3004037	71	10	4	14.0
+chr10	3004640	3004642	90	9	1	10.0
+chr10	3005170	3005172	28	2	5	7.0
+chr10	3005441	3005443	21	3	11	14.0
+chr10	3005994	3005996	50	7	7	14.0
+chr10	3008524	3008526	75	9	3	12.0
+chr10	3008594	3008596	90	9	1	10.0
+chr10	3008737	3008739	50	5	5	10.0
+chr10	3008827	3008829	80	12	3	15.0
+chr10	3008937	3008939	84	11	2	13.0
+chr10	3008985	3008987	66	6	3	9.0
+chr10	3009020	3009022	66	10	5	15.0
+chr10	3009103	3009105	50	8	8	16.0
+chr10	3009118	3009120	83	15	3	18.0
+chr10	3009207	3009209	66	6	3	9.0
+chr10	3009577	3009579	80	4	1	5.0
+chr10	3009627	3009629	100	4	0	4.0
+chr10	3010000	3010002	100	8	0	8.0
+chr10	3010399	3010401	58	10	7	17.0
+chr10	3010447	3010449	94	16	1	17.0
+chr10	3011056	3011058	85	6	1	7.0
+chr10	3011170	3011172	68	11	5	16.0
+chr10	3011280	3011282	66	10	5	15.0
+chr10	3011403	3011405	64	22	12	34.0
+chr10	3011468	3011470	92	12	1	13.0
+chr10	3011556	3011558	100	13	0	13.0
+chr10	3011580	3011582	68	11	5	16.0
+chr10	3011870	3011872	90	18	2	20.0
+chr10	3011999	3012001	81	18	4	22.0
+chr10	3012040	3012042	93	14	1	15.0
+chr10	3012053	3012055	66	10	5	15.0
+chr10	3012065	3012067	80	12	3	15.0
+chr10	3012214	3012216	61	11	7	18.0
+chr10	3012269	3012271	50	7	7	14.0
+chr10	3012319	3012321	33	5	10	15.0
+chr10	3012389	3012391	77	14	4	18.0
+chr10	3012415	3012417	77	14	4	18.0
+chr10	3012560	3012562	94	17	1	18.0
+chr10	3012609	3012611	85	12	2	14.0
+chr10	3012619	3012621	85	12	2	14.0
+chr10	3012741	3012743	56	13	10	23.0
+chr10	3012786	3012788	78	15	4	19.0
+chr10	3012790	3012792	63	12	7	19.0
+chr10	3012792	3012794	57	11	8	19.0
+chr10	3012794	3012796	94	17	1	18.0
+chr10	3012796	3012798	55	10	8	18.0
+chr10	3012798	3012800	66	12	6	18.0
+chr10	3012818	3012820	35	7	13	20.0
+chr10	3012824	3012826	16	4	20	24.0
+chr10	3012858	3012860	23	6	20	26.0
+chr10	3012940	3012942	20	2	8	10.0
+chr10	3012977	3012979	7	1	13	14.0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1.bedgraph	Mon May 20 08:42:54 2019 -0400
@@ -0,0 +1,100 @@
+chr10	3000180	3000182	100	5	0	5.0
+chr10	3000185	3000187	100	5	0	5.0
+chr10	3000270	3000272	73	11	4	15.0
+chr10	3000294	3000296	100	14	0	14.0
+chr10	3000353	3000355	81	9	2	11.0
+chr10	3000488	3000490	66	4	2	6.0
+chr10	3000657	3000659	66	4	2	6.0
+chr10	3000709	3000711	80	4	1	5.0
+chr10	3000718	3000720	100	5	0	5.0
+chr10	3000923	3000925	80	4	1	5.0
+chr10	3001027	3001029	88	8	1	9.0
+chr10	3001029	3001031	100	9	0	9.0
+chr10	3001055	3001057	100	8	0	8.0
+chr10	3001188	3001190	75	3	1	4.0
+chr10	3001586	3001588	83	5	1	6.0
+chr10	3001747	3001749	100	7	0	7.0
+chr10	3001898	3001900	37	3	5	8.0
+chr10	3001908	3001910	55	5	4	9.0
+chr10	3001923	3001925	100	5	0	5.0
+chr10	3001928	3001930	100	5	0	5.0
+chr10	3001989	3001991	69	9	4	13.0
+chr10	3001996	3001998	84	11	2	13.0
+chr10	3002030	3002032	92	12	1	13.0
+chr10	3002077	3002079	77	7	2	9.0
+chr10	3002089	3002091	100	9	0	9.0
+chr10	3002093	3002095	44	4	5	9.0
+chr10	3002116	3002118	100	7	0	7.0
+chr10	3002147	3002149	80	8	2	10.0
+chr10	3002159	3002161	50	4	4	8.0
+chr10	3002261	3002263	100	16	0	16.0
+chr10	3002320	3002322	92	12	1	13.0
+chr10	3002514	3002516	100	4	0	4.0
+chr10	3002526	3002528	83	5	1	6.0
+chr10	3002539	3002541	100	8	0	8.0
+chr10	3002560	3002562	88	8	1	9.0
+chr10	3002594	3002596	100	8	0	8.0
+chr10	3002607	3002609	88	8	1	9.0
+chr10	3002628	3002630	100	12	0	12.0
+chr10	3002641	3002643	100	9	0	9.0
+chr10	3002904	3002906	100	9	0	9.0
+chr10	3002932	3002934	83	5	1	6.0
+chr10	3003427	3003429	61	8	5	13.0
+chr10	3003435	3003437	84	11	2	13.0
+chr10	3003465	3003467	90	10	1	11.0
+chr10	3003494	3003496	100	9	0	9.0
+chr10	3003584	3003586	60	6	4	10.0
+chr10	3003924	3003926	100	4	0	4.0
+chr10	3003976	3003978	100	12	0	12.0
+chr10	3004035	3004037	71	10	4	14.0
+chr10	3004640	3004642	90	9	1	10.0
+chr10	3005170	3005172	28	2	5	7.0
+chr10	3005441	3005443	21	3	11	14.0
+chr10	3005994	3005996	50	7	7	14.0
+chr10	3008524	3008526	75	9	3	12.0
+chr10	3008594	3008596	90	9	1	10.0
+chr10	3008737	3008739	50	5	5	10.0
+chr10	3008827	3008829	80	12	3	15.0
+chr10	3008937	3008939	84	11	2	13.0
+chr10	3008985	3008987	66	6	3	9.0
+chr10	3009020	3009022	66	10	5	15.0
+chr10	3009103	3009105	50	8	8	16.0
+chr10	3009118	3009120	83	15	3	18.0
+chr10	3009207	3009209	66	6	3	9.0
+chr10	3009577	3009579	80	4	1	5.0
+chr10	3009627	3009629	100	4	0	4.0
+chr10	3010000	3010002	100	8	0	8.0
+chr10	3010399	3010401	58	10	7	17.0
+chr10	3010447	3010449	94	16	1	17.0
+chr10	3011056	3011058	85	6	1	7.0
+chr10	3011170	3011172	68	11	5	16.0
+chr10	3011280	3011282	66	10	5	15.0
+chr10	3011403	3011405	64	22	12	34.0
+chr10	3011468	3011470	92	12	1	13.0
+chr10	3011556	3011558	100	13	0	13.0
+chr10	3011580	3011582	68	11	5	16.0
+chr10	3011870	3011872	90	18	2	20.0
+chr10	3011999	3012001	81	18	4	22.0
+chr10	3012040	3012042	93	14	1	15.0
+chr10	3012053	3012055	66	10	5	15.0
+chr10	3012065	3012067	80	12	3	15.0
+chr10	3012214	3012216	61	11	7	18.0
+chr10	3012269	3012271	50	7	7	14.0
+chr10	3012319	3012321	33	5	10	15.0
+chr10	3012389	3012391	77	14	4	18.0
+chr10	3012415	3012417	77	14	4	18.0
+chr10	3012560	3012562	94	17	1	18.0
+chr10	3012609	3012611	85	12	2	14.0
+chr10	3012619	3012621	85	12	2	14.0
+chr10	3012741	3012743	56	13	10	23.0
+chr10	3012786	3012788	78	15	4	19.0
+chr10	3012790	3012792	63	12	7	19.0
+chr10	3012792	3012794	57	11	8	19.0
+chr10	3012794	3012796	94	17	1	18.0
+chr10	3012796	3012798	55	10	8	18.0
+chr10	3012798	3012800	66	12	6	18.0
+chr10	3012818	3012820	35	7	13	20.0
+chr10	3012824	3012826	16	4	20	24.0
+chr10	3012858	3012860	23	6	20	26.0
+chr10	3012940	3012942	20	2	8	10.0
+chr10	3012977	3012979	7	1	13	14.0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1_boxcar.bedgraph	Mon May 20 08:42:54 2019 -0400
@@ -0,0 +1,100 @@
+chr10	3000180	3000182	100	5	0	5.00	0
+chr10	3000185	3000187	100	5	0	5.00	0
+chr10	3000270	3000272	73	11	4	15.00	7.00
+chr10	3000294	3000296	100	14	0	14.00	10.00
+chr10	3000353	3000355	81	9	2	11.00	11.33
+chr10	3000488	3000490	66	4	2	6.00	9.00
+chr10	3000657	3000659	66	4	2	6.00	5.67
+chr10	3000709	3000711	80	4	1	5.00	4.00
+chr10	3000718	3000720	100	5	0	5.00	4.33
+chr10	3000923	3000925	80	4	1	5.00	4.33
+chr10	3001027	3001029	88	8	1	9.00	5.67
+chr10	3001029	3001031	100	9	0	9.00	7.00
+chr10	3001055	3001057	100	8	0	8.00	8.33
+chr10	3001188	3001190	75	3	1	4.00	6.67
+chr10	3001586	3001588	83	5	1	6.00	5.33
+chr10	3001747	3001749	100	7	0	7.00	5.00
+chr10	3001898	3001900	37	3	5	8.00	5.00
+chr10	3001908	3001910	55	5	4	9.00	5.00
+chr10	3001923	3001925	100	5	0	5.00	4.33
+chr10	3001928	3001930	100	5	0	5.00	5.00
+chr10	3001989	3001991	69	9	4	13.00	6.33
+chr10	3001996	3001998	84	11	2	13.00	8.33
+chr10	3002030	3002032	92	12	1	13.00	10.67
+chr10	3002077	3002079	77	7	2	9.00	10.00
+chr10	3002089	3002091	100	9	0	9.00	9.33
+chr10	3002093	3002095	44	4	5	9.00	6.67
+chr10	3002116	3002118	100	7	0	7.00	6.67
+chr10	3002147	3002149	80	8	2	10.00	6.33
+chr10	3002159	3002161	50	4	4	8.00	6.33
+chr10	3002261	3002263	100	16	0	16.00	9.33
+chr10	3002320	3002322	92	12	1	13.00	10.67
+chr10	3002514	3002516	100	4	0	4.00	10.67
+chr10	3002526	3002528	83	5	1	6.00	7.00
+chr10	3002539	3002541	100	8	0	8.00	5.67
+chr10	3002560	3002562	88	8	1	9.00	7.00
+chr10	3002594	3002596	100	8	0	8.00	8.00
+chr10	3002607	3002609	88	8	1	9.00	8.00
+chr10	3002628	3002630	100	12	0	12.00	9.33
+chr10	3002641	3002643	100	9	0	9.00	9.67
+chr10	3002904	3002906	100	9	0	9.00	10.00
+chr10	3002932	3002934	83	5	1	6.00	7.67
+chr10	3003427	3003429	61	8	5	13.00	7.33
+chr10	3003435	3003437	84	11	2	13.00	8.00
+chr10	3003465	3003467	90	10	1	11.00	9.67
+chr10	3003494	3003496	100	9	0	9.00	10.00
+chr10	3003584	3003586	60	6	4	10.00	8.33
+chr10	3003924	3003926	100	4	0	4.00	6.33
+chr10	3003976	3003978	100	12	0	12.00	7.33
+chr10	3004035	3004037	71	10	4	14.00	8.67
+chr10	3004640	3004642	90	9	1	10.00	10.33
+chr10	3005170	3005172	28	2	5	7.00	7.00
+chr10	3005441	3005443	21	3	11	14.00	4.67
+chr10	3005994	3005996	50	7	7	14.00	4.00
+chr10	3008524	3008526	75	9	3	12.00	6.33
+chr10	3008594	3008596	90	9	1	10.00	8.33
+chr10	3008737	3008739	50	5	5	10.00	7.67
+chr10	3008827	3008829	80	12	3	15.00	8.67
+chr10	3008937	3008939	84	11	2	13.00	9.33
+chr10	3008985	3008987	66	6	3	9.00	9.67
+chr10	3009020	3009022	66	10	5	15.00	9.00
+chr10	3009103	3009105	50	8	8	16.00	8.00
+chr10	3009118	3009120	83	15	3	18.00	11.00
+chr10	3009207	3009209	66	6	3	9.00	9.67
+chr10	3009577	3009579	80	4	1	5.00	8.33
+chr10	3009627	3009629	100	4	0	4.00	4.67
+chr10	3010000	3010002	100	8	0	8.00	5.33
+chr10	3010399	3010401	58	10	7	17.00	7.33
+chr10	3010447	3010449	94	16	1	17.00	11.33
+chr10	3011056	3011058	85	6	1	7.00	10.67
+chr10	3011170	3011172	68	11	5	16.00	11.00
+chr10	3011280	3011282	66	10	5	15.00	9.00
+chr10	3011403	3011405	64	22	12	34.00	14.33
+chr10	3011468	3011470	92	12	1	13.00	14.67
+chr10	3011556	3011558	100	13	0	13.00	15.67
+chr10	3011580	3011582	68	11	5	16.00	12.00
+chr10	3011870	3011872	90	18	2	20.00	14.00
+chr10	3011999	3012001	81	18	4	22.00	15.67
+chr10	3012040	3012042	93	14	1	15.00	16.67
+chr10	3012053	3012055	66	10	5	15.00	14.00
+chr10	3012065	3012067	80	12	3	15.00	12.00
+chr10	3012214	3012216	61	11	7	18.00	11.00
+chr10	3012269	3012271	50	7	7	14.00	10.00
+chr10	3012319	3012321	33	5	10	15.00	7.67
+chr10	3012389	3012391	77	14	4	18.00	8.67
+chr10	3012415	3012417	77	14	4	18.00	11.00
+chr10	3012560	3012562	94	17	1	18.00	15.00
+chr10	3012609	3012611	85	12	2	14.00	14.33
+chr10	3012619	3012621	85	12	2	14.00	13.67
+chr10	3012741	3012743	56	13	10	23.00	12.33
+chr10	3012786	3012788	78	15	4	19.00	13.33
+chr10	3012790	3012792	63	12	7	19.00	13.33
+chr10	3012792	3012794	57	11	8	19.00	12.67
+chr10	3012794	3012796	94	17	1	18.00	13.33
+chr10	3012796	3012798	55	10	8	18.00	12.67
+chr10	3012798	3012800	66	12	6	18.00	13.00
+chr10	3012818	3012820	35	7	13	20.00	9.67
+chr10	3012824	3012826	16	4	20	24.00	7.67
+chr10	3012858	3012860	23	6	20	26.00	5.67
+chr10	3012940	3012942	20	2	8	10.00	4.00
+chr10	3012977	3012979	7	1	13	14.00	3.00
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1_hamming.bedgraph	Mon May 20 08:42:54 2019 -0400
@@ -0,0 +1,100 @@
+chr10	3000180	3000182	100	5	0	5.00	0
+chr10	3000185	3000187	100	5	0	5.00	0
+chr10	3000270	3000272	73	11	4	15.00	21.00
+chr10	3000294	3000296	100	14	0	14.00	30.00
+chr10	3000353	3000355	81	9	2	11.00	34.00
+chr10	3000488	3000490	66	4	2	6.00	27.00
+chr10	3000657	3000659	66	4	2	6.00	17.00
+chr10	3000709	3000711	80	4	1	5.00	12.00
+chr10	3000718	3000720	100	5	0	5.00	13.00
+chr10	3000923	3000925	80	4	1	5.00	13.00
+chr10	3001027	3001029	88	8	1	9.00	17.00
+chr10	3001029	3001031	100	9	0	9.00	21.00
+chr10	3001055	3001057	100	8	0	8.00	25.00
+chr10	3001188	3001190	75	3	1	4.00	20.00
+chr10	3001586	3001588	83	5	1	6.00	16.00
+chr10	3001747	3001749	100	7	0	7.00	15.00
+chr10	3001898	3001900	37	3	5	8.00	15.00
+chr10	3001908	3001910	55	5	4	9.00	15.00
+chr10	3001923	3001925	100	5	0	5.00	13.00
+chr10	3001928	3001930	100	5	0	5.00	15.00
+chr10	3001989	3001991	69	9	4	13.00	19.00
+chr10	3001996	3001998	84	11	2	13.00	25.00
+chr10	3002030	3002032	92	12	1	13.00	32.00
+chr10	3002077	3002079	77	7	2	9.00	30.00
+chr10	3002089	3002091	100	9	0	9.00	28.00
+chr10	3002093	3002095	44	4	5	9.00	20.00
+chr10	3002116	3002118	100	7	0	7.00	20.00
+chr10	3002147	3002149	80	8	2	10.00	19.00
+chr10	3002159	3002161	50	4	4	8.00	19.00
+chr10	3002261	3002263	100	16	0	16.00	28.00
+chr10	3002320	3002322	92	12	1	13.00	32.00
+chr10	3002514	3002516	100	4	0	4.00	32.00
+chr10	3002526	3002528	83	5	1	6.00	21.00
+chr10	3002539	3002541	100	8	0	8.00	17.00
+chr10	3002560	3002562	88	8	1	9.00	21.00
+chr10	3002594	3002596	100	8	0	8.00	24.00
+chr10	3002607	3002609	88	8	1	9.00	24.00
+chr10	3002628	3002630	100	12	0	12.00	28.00
+chr10	3002641	3002643	100	9	0	9.00	29.00
+chr10	3002904	3002906	100	9	0	9.00	30.00
+chr10	3002932	3002934	83	5	1	6.00	23.00
+chr10	3003427	3003429	61	8	5	13.00	22.00
+chr10	3003435	3003437	84	11	2	13.00	24.00
+chr10	3003465	3003467	90	10	1	11.00	29.00
+chr10	3003494	3003496	100	9	0	9.00	30.00
+chr10	3003584	3003586	60	6	4	10.00	25.00
+chr10	3003924	3003926	100	4	0	4.00	19.00
+chr10	3003976	3003978	100	12	0	12.00	22.00
+chr10	3004035	3004037	71	10	4	14.00	26.00
+chr10	3004640	3004642	90	9	1	10.00	31.00
+chr10	3005170	3005172	28	2	5	7.00	21.00
+chr10	3005441	3005443	21	3	11	14.00	14.00
+chr10	3005994	3005996	50	7	7	14.00	12.00
+chr10	3008524	3008526	75	9	3	12.00	19.00
+chr10	3008594	3008596	90	9	1	10.00	25.00
+chr10	3008737	3008739	50	5	5	10.00	23.00
+chr10	3008827	3008829	80	12	3	15.00	26.00
+chr10	3008937	3008939	84	11	2	13.00	28.00
+chr10	3008985	3008987	66	6	3	9.00	29.00
+chr10	3009020	3009022	66	10	5	15.00	27.00
+chr10	3009103	3009105	50	8	8	16.00	24.00
+chr10	3009118	3009120	83	15	3	18.00	33.00
+chr10	3009207	3009209	66	6	3	9.00	29.00
+chr10	3009577	3009579	80	4	1	5.00	25.00
+chr10	3009627	3009629	100	4	0	4.00	14.00
+chr10	3010000	3010002	100	8	0	8.00	16.00
+chr10	3010399	3010401	58	10	7	17.00	22.00
+chr10	3010447	3010449	94	16	1	17.00	34.00
+chr10	3011056	3011058	85	6	1	7.00	32.00
+chr10	3011170	3011172	68	11	5	16.00	33.00
+chr10	3011280	3011282	66	10	5	15.00	27.00
+chr10	3011403	3011405	64	22	12	34.00	43.00
+chr10	3011468	3011470	92	12	1	13.00	44.00
+chr10	3011556	3011558	100	13	0	13.00	47.00
+chr10	3011580	3011582	68	11	5	16.00	36.00
+chr10	3011870	3011872	90	18	2	20.00	42.00
+chr10	3011999	3012001	81	18	4	22.00	47.00
+chr10	3012040	3012042	93	14	1	15.00	50.00
+chr10	3012053	3012055	66	10	5	15.00	42.00
+chr10	3012065	3012067	80	12	3	15.00	36.00
+chr10	3012214	3012216	61	11	7	18.00	33.00
+chr10	3012269	3012271	50	7	7	14.00	30.00
+chr10	3012319	3012321	33	5	10	15.00	23.00
+chr10	3012389	3012391	77	14	4	18.00	26.00
+chr10	3012415	3012417	77	14	4	18.00	33.00
+chr10	3012560	3012562	94	17	1	18.00	45.00
+chr10	3012609	3012611	85	12	2	14.00	43.00
+chr10	3012619	3012621	85	12	2	14.00	41.00
+chr10	3012741	3012743	56	13	10	23.00	37.00
+chr10	3012786	3012788	78	15	4	19.00	40.00
+chr10	3012790	3012792	63	12	7	19.00	40.00
+chr10	3012792	3012794	57	11	8	19.00	38.00
+chr10	3012794	3012796	94	17	1	18.00	40.00
+chr10	3012796	3012798	55	10	8	18.00	38.00
+chr10	3012798	3012800	66	12	6	18.00	39.00
+chr10	3012818	3012820	35	7	13	20.00	29.00
+chr10	3012824	3012826	16	4	20	24.00	23.00
+chr10	3012858	3012860	23	6	20	26.00	17.00
+chr10	3012940	3012942	20	2	8	10.00	12.00
+chr10	3012977	3012979	7	1	13	14.00	9.00
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/2_boxcar.bedgraph	Mon May 20 08:42:54 2019 -0400
@@ -0,0 +1,100 @@
+chr10	3000180	3000182	100	5	0	5.00	0
+chr10	3000185	3000187	100	5	0	5.00	0
+chr10	3000270	3000272	73	11	4	15.00	7.00
+chr10	3000294	3000296	100	14	0	14.00	10.00
+chr10	3000353	3000355	81	9	2	11.00	11.33
+chr10	3000488	3000490	66	4	2	6.00	9.00
+chr10	3000657	3000659	66	4	2	6.00	5.67
+chr10	3000709	3000711	80	4	1	5.00	4.00
+chr10	3000718	3000720	100	5	0	5.00	4.33
+chr10	3000923	3000925	80	4	1	5.00	4.33
+chr10	3001027	3001029	88	8	1	9.00	5.67
+chr10	3001029	3001031	100	9	0	9.00	7.00
+chr10	3001055	3001057	100	8	0	8.00	8.33
+chr10	3001188	3001190	75	3	1	4.00	6.67
+chr10	3001586	3001588	83	5	1	6.00	5.33
+chr10	3001747	3001749	100	7	0	7.00	5.00
+chr10	3001898	3001900	37	3	5	8.00	5.00
+chr10	3001908	3001910	55	5	4	9.00	5.00
+chr10	3001923	3001925	100	5	0	5.00	4.33
+chr10	3001928	3001930	100	5	0	5.00	5.00
+chr10	3001989	3001991	69	9	4	13.00	6.33
+chr10	3001996	3001998	84	11	2	13.00	8.33
+chr10	3002030	3002032	92	12	1	13.00	10.67
+chr10	3002077	3002079	77	7	2	9.00	10.00
+chr10	3002089	3002091	100	9	0	9.00	9.33
+chr10	3002093	3002095	44	4	5	9.00	6.67
+chr10	3002116	3002118	100	7	0	7.00	6.67
+chr10	3002147	3002149	80	8	2	10.00	6.33
+chr10	3002159	3002161	50	4	4	8.00	6.33
+chr10	3002261	3002263	100	16	0	16.00	9.33
+chr10	3002320	3002322	92	12	1	13.00	10.67
+chr10	3002514	3002516	100	4	0	4.00	10.67
+chr10	3002526	3002528	83	5	1	6.00	7.00
+chr10	3002539	3002541	100	8	0	8.00	5.67
+chr10	3002560	3002562	88	8	1	9.00	7.00
+chr10	3002594	3002596	100	8	0	8.00	8.00
+chr10	3002607	3002609	88	8	1	9.00	8.00
+chr10	3002628	3002630	100	12	0	12.00	9.33
+chr10	3002641	3002643	100	9	0	9.00	9.67
+chr10	3002904	3002906	100	9	0	9.00	10.00
+chr10	3002932	3002934	83	5	1	6.00	7.67
+chr10	3003427	3003429	61	8	5	13.00	7.33
+chr10	3003435	3003437	84	11	2	13.00	8.00
+chr10	3003465	3003467	90	10	1	11.00	9.67
+chr10	3003494	3003496	100	9	0	9.00	10.00
+chr10	3003584	3003586	60	6	4	10.00	8.33
+chr10	3003924	3003926	100	4	0	4.00	6.33
+chr10	3003976	3003978	100	12	0	12.00	7.33
+chr10	3004035	3004037	71	10	4	14.00	8.67
+chr10	3004640	3004642	90	9	1	10.00	10.33
+chr10	3005170	3005172	28	2	5	7.00	7.00
+chr10	3005441	3005443	21	3	11	14.00	4.67
+chr10	3005994	3005996	50	7	7	14.00	4.00
+chr10	3008524	3008526	75	9	3	12.00	6.33
+chr10	3008594	3008596	90	9	1	10.00	8.33
+chr10	3008737	3008739	50	5	5	10.00	7.67
+chr10	3008827	3008829	80	12	3	15.00	8.67
+chr10	3008937	3008939	84	11	2	13.00	9.33
+chr10	3008985	3008987	66	6	3	9.00	9.67
+chr10	3009020	3009022	66	10	5	15.00	9.00
+chr10	3009103	3009105	50	8	8	16.00	8.00
+chr10	3009118	3009120	83	15	3	18.00	11.00
+chr10	3009207	3009209	66	6	3	9.00	9.67
+chr10	3009577	3009579	80	4	1	5.00	8.33
+chr10	3009627	3009629	100	4	0	4.00	4.67
+chr10	3010000	3010002	100	8	0	8.00	5.33
+chr10	3010399	3010401	58	10	7	17.00	7.33
+chr10	3010447	3010449	94	16	1	17.00	11.33
+chr10	3011056	3011058	85	6	1	7.00	10.67
+chr10	3011170	3011172	68	11	5	16.00	11.00
+chr10	3011280	3011282	66	10	5	15.00	9.00
+chr10	3011403	3011405	64	22	12	34.00	14.33
+chr10	3011468	3011470	92	12	1	13.00	14.67
+chr10	3011556	3011558	100	13	0	13.00	15.67
+chr10	3011580	3011582	68	11	5	16.00	12.00
+chr10	3011870	3011872	90	18	2	20.00	14.00
+chr10	3011999	3012001	81	18	4	22.00	15.67
+chr10	3012040	3012042	93	14	1	15.00	16.67
+chr10	3012053	3012055	66	10	5	15.00	14.00
+chr10	3012065	3012067	80	12	3	15.00	12.00
+chr10	3012214	3012216	61	11	7	18.00	11.00
+chr10	3012269	3012271	50	7	7	14.00	10.00
+chr10	3012319	3012321	33	5	10	15.00	7.67
+chr10	3012389	3012391	77	14	4	18.00	8.67
+chr10	3012415	3012417	77	14	4	18.00	11.00
+chr10	3012560	3012562	94	17	1	18.00	15.00
+chr10	3012609	3012611	85	12	2	14.00	14.33
+chr10	3012619	3012621	85	12	2	14.00	13.67
+chr10	3012741	3012743	56	13	10	23.00	12.33
+chr10	3012786	3012788	78	15	4	19.00	13.33
+chr10	3012790	3012792	63	12	7	19.00	13.33
+chr10	3012792	3012794	57	11	8	19.00	12.67
+chr10	3012794	3012796	94	17	1	18.00	13.33
+chr10	3012796	3012798	55	10	8	18.00	12.67
+chr10	3012798	3012800	66	12	6	18.00	13.00
+chr10	3012818	3012820	35	7	13	20.00	9.67
+chr10	3012824	3012826	16	4	20	24.00	7.67
+chr10	3012858	3012860	23	6	20	26.00	5.67
+chr10	3012940	3012942	20	2	8	10.00	4.00
+chr10	3012977	3012979	7	1	13	14.00	3.00
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/2_hamming.bedgraph	Mon May 20 08:42:54 2019 -0400
@@ -0,0 +1,100 @@
+chr10	3000180	3000182	100	5	0	5.00	0
+chr10	3000185	3000187	100	5	0	5.00	0
+chr10	3000270	3000272	73	11	4	15.00	6.28
+chr10	3000294	3000296	100	14	0	14.00	12.52
+chr10	3000353	3000355	81	9	2	11.00	15.60
+chr10	3000488	3000490	66	4	2	6.00	10.44
+chr10	3000657	3000659	66	4	2	6.00	5.04
+chr10	3000709	3000711	80	4	1	5.00	4.64
+chr10	3000718	3000720	100	5	0	5.00	4.72
+chr10	3000923	3000925	80	4	1	5.00	5.64
+chr10	3001027	3001029	88	8	1	9.00	5.04
+chr10	3001029	3001031	100	9	0	9.00	9.04
+chr10	3001055	3001057	100	8	0	8.00	10.28
+chr10	3001188	3001190	75	3	1	4.00	8.96
+chr10	3001586	3001588	83	5	1	6.00	4.04
+chr10	3001747	3001749	100	7	0	7.00	5.80
+chr10	3001898	3001900	37	3	5	8.00	7.64
+chr10	3001908	3001910	55	5	4	9.00	3.96
+chr10	3001923	3001925	100	5	0	5.00	5.64
+chr10	3001928	3001930	100	5	0	5.00	5.80
+chr10	3001989	3001991	69	9	4	13.00	6.12
+chr10	3001996	3001998	84	11	2	13.00	10.28
+chr10	3002030	3002032	92	12	1	13.00	12.68
+chr10	3002077	3002079	77	7	2	9.00	13.44
+chr10	3002089	3002091	100	9	0	9.00	8.68
+chr10	3002093	3002095	44	4	5	9.00	9.88
+chr10	3002116	3002118	100	7	0	7.00	5.28
+chr10	3002147	3002149	80	8	2	10.00	7.96
+chr10	3002159	3002161	50	4	4	8.00	8.88
+chr10	3002261	3002263	100	16	0	16.00	5.92
+chr10	3002320	3002322	92	12	1	13.00	17.28
+chr10	3002514	3002516	100	4	0	4.00	13.60
+chr10	3002526	3002528	83	5	1	6.00	5.36
+chr10	3002539	3002541	100	8	0	8.00	5.96
+chr10	3002560	3002562	88	8	1	9.00	9.04
+chr10	3002594	3002596	100	8	0	8.00	9.28
+chr10	3002607	3002609	88	8	1	9.00	9.28
+chr10	3002628	3002630	100	12	0	12.00	9.60
+chr10	3002641	3002643	100	9	0	9.00	13.36
+chr10	3002904	3002906	100	9	0	9.00	10.68
+chr10	3002932	3002934	83	5	1	6.00	10.12
+chr10	3003427	3003429	61	8	5	13.00	6.36
+chr10	3003435	3003437	84	11	2	13.00	9.28
+chr10	3003465	3003467	90	10	1	11.00	12.44
+chr10	3003494	3003496	100	9	0	9.00	11.60
+chr10	3003584	3003586	60	6	4	10.00	10.28
+chr10	3003924	3003926	100	4	0	4.00	7.04
+chr10	3003976	3003978	100	12	0	12.00	5.44
+chr10	3004035	3004037	71	10	4	14.00	13.12
+chr10	3004640	3004642	90	9	1	10.00	11.68
+chr10	3005170	3005172	28	2	5	7.00	9.96
+chr10	3005441	3005443	21	3	11	14.00	2.96
+chr10	3005994	3005996	50	7	7	14.00	3.72
+chr10	3008524	3008526	75	9	3	12.00	7.96
+chr10	3008594	3008596	90	9	1	10.00	10.28
+chr10	3008737	3008739	50	5	5	10.00	10.12
+chr10	3008827	3008829	80	12	3	15.00	6.68
+chr10	3008937	3008939	84	11	2	13.00	13.28
+chr10	3008985	3008987	66	6	3	9.00	12.44
+chr10	3009020	3009022	66	10	5	15.00	7.68
+chr10	3009103	3009105	50	8	8	16.00	11.12
+chr10	3009118	3009120	83	15	3	18.00	10.00
+chr10	3009207	3009209	66	6	3	9.00	16.12
+chr10	3009577	3009579	80	4	1	5.00	7.52
+chr10	3009627	3009629	100	4	0	4.00	4.80
+chr10	3010000	3010002	100	8	0	8.00	4.96
+chr10	3010399	3010401	58	10	7	17.00	9.12
+chr10	3010447	3010449	94	16	1	17.00	11.92
+chr10	3011056	3011058	85	6	1	7.00	17.28
+chr10	3011170	3011172	68	11	5	16.00	8.16
+chr10	3011280	3011282	66	10	5	15.00	12.28
+chr10	3011403	3011405	64	22	12	34.00	12.64
+chr10	3011468	3011470	92	12	1	13.00	23.76
+chr10	3011556	3011558	100	13	0	13.00	14.80
+chr10	3011580	3011582	68	11	5	16.00	14.84
+chr10	3011870	3011872	90	18	2	20.00	13.48
+chr10	3011999	3012001	81	18	4	22.00	20.32
+chr10	3012040	3012042	93	14	1	15.00	20.56
+chr10	3012053	3012055	66	10	5	15.00	16.24
+chr10	3012065	3012067	80	12	3	15.00	12.08
+chr10	3012214	3012216	61	11	7	18.00	13.68
+chr10	3012269	3012271	50	7	7	14.00	12.52
+chr10	3012319	3012321	33	5	10	15.00	8.28
+chr10	3012389	3012391	77	14	4	18.00	6.68
+chr10	3012415	3012417	77	14	4	18.00	15.52
+chr10	3012560	3012562	94	17	1	18.00	16.48
+chr10	3012609	3012611	85	12	2	14.00	19.08
+chr10	3012619	3012621	85	12	2	14.00	14.32
+chr10	3012741	3012743	56	13	10	23.00	14.00
+chr10	3012786	3012788	78	15	4	19.00	15.16
+chr10	3012790	3012792	63	12	7	19.00	17.00
+chr10	3012792	3012794	57	11	8	19.00	14.08
+chr10	3012794	3012796	94	17	1	18.00	13.32
+chr10	3012796	3012798	55	10	8	18.00	18.68
+chr10	3012798	3012800	66	12	6	18.00	12.32
+chr10	3012818	3012820	35	7	13	20.00	13.36
+chr10	3012824	3012826	16	4	20	24.00	8.28
+chr10	3012858	3012860	23	6	20	26.00	5.04
+chr10	3012940	3012942	20	2	8	10.00	6.48
+chr10	3012977	3012979	7	1	13	14.00	2.56