changeset 9:d6787bab7b11 draft default tip

"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/methyldackel commit c1027a3f78bca2fd8a53f076ef718ea5adbf4a8a"
author bgruening
date Sat, 05 Jun 2021 09:18:31 +0000
parents 183cb55b1729
children
files MethylDackel.xml macros.xml static/images/example.svg test-data/mappability.bigwig test-data/test7_output.tsv test-data/test8_output.tsv test-data/test_1.bedGraph test-data/test_2.bedGraph test-data/test_2_output.svg test-data/test_3.bedGraph test-data/test_4.bedGraph test-data/test_5.methylKit
diffstat 12 files changed, 481 insertions(+), 1678 deletions(-) [+]
line wrap: on
line diff
--- a/MethylDackel.xml	Fri Aug 24 17:15:24 2018 -0400
+++ b/MethylDackel.xml	Sat Jun 05 09:18:31 2021 +0000
@@ -1,8 +1,10 @@
-<tool id="pileometh" name="MethylDackel" version="0.3.0.1">
+<tool id="pileometh" name="MethylDackel" version="@TOOL_VERSION@+@GALAXY_TOOL_VERSION@" profile="20.01">
     <description>A tool for processing bisulfite sequencing alignments</description>
-    <requirements>
-        <requirement type="package" version="0.3.0">methyldackel</requirement>
-    </requirements>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="edam_ontology"/>
+    <expand macro="requirements"/>
     <version_command><![CDATA[MethylDackel --version]]></version_command>
     <command detect_errors="aggressive"><![CDATA[
         #if $reference_source.reference_source_selector == "cached":
@@ -11,73 +13,80 @@
             ln -s $reference_source.ref_file reference.fasta &&
         #end if
 
+       ln -s '$input_sortedAlignBAM' ./infile.bam &&
+       ln -s '${input_sortedAlignBAM.metadata.bam_index}' infile.bai &&
+
         MethylDackel
             $main_task.task
 
             -@ \${GALAXY_SLOTS:-4}
-            #if $main_task.task == "extract":
+            #if $main_task.task == 'extract':
                 -o output
                 $main_task.mergeContext
-                #if str($main_task.OT).strip() != "":
+                #if str($main_task.OT).strip() != '':
                     --OT $main_task.OT
                 #end if
-                #if str($main_task.OB).strip() != "":
+                #if str($main_task.OB).strip() != '':
                     --OB $main_task.OB
                 #end if
-                #if str($main_task.CTOT).strip() != "":
+                #if str($main_task.CTOT).strip() != '':
                     --CTOT $main_task.CTOT
                 #end if
-                #if str($main_task.CTOB).strip() != "":
+                #if str($main_task.CTOB).strip() != '':
                     --CTOB $main_task.CTOB
                 #end if
+                #if str($main_task.mappability_options.mappability_status) == 'True':
+                    -M '${main_task.mappability_options.mappability}'
+                    --mappabilityThreshold $main_task.mappability_options.mappabilityThreshold
+                    --minMappableBases $main_task.mappability_options.minMappableBases            
+                #end if
+            #end if
+            #if $advanced_options.mbias_regionString:
+                -r $advanced_options.mbias_regionString
+            #end if
+            #if $regionBed_options.regionBed_status == 'True':
+                -l '$regionBed_options.regionBed'
+                $regionBed_options.keepStrand
+            #end if
+            $advanced_options.keepDupes
+            $advanced_options.keepSingleton
+            $advanced_options.keepDiscordant
+            -q $advanced_options.min_mapq
+            -p $advanced_options.min_phred
+            #if $advanced_options.methylation_metrics
+                #for $context_methylation in $advanced_options.methylation_metrics:
+                    $context_methylation
+                #end for
+            #end if
+            #if $main_task.task == 'extract':
+                --minOppositeDepth $advanced_options.minOppositeDepth
+                --maxVariantFrac $advanced_options.maxVariantFrac
+                -d $advanced_options.min_pbdepth
+                --ignoreFlags $advanced_options.ignoreFlags
+                --requireFlags $advanced_options.requireFlags
+                #if $main_task.extract_outputs
+                    $main_task.extract_outputs
+                #end if
+                #if str($advanced_options.nOT).strip() != '':
+                    --nOT $advanced_options.nOT
+                #end if
+                #if str($advanced_options.nOB).strip() != '':
+                    --nOB $advanced_options.nOB
+                #end if
+                #if str($advanced_options.nCTOT).strip() != '':
+                    --nCTOT $advanced_options.nCTOT
+                #end if
+                #if str($advanced_options.nCTOB).strip() != '':
+                    --nCTOB $advanced_options.nCTOB
+                #end if
             #end if
 
-            #if $advanced_options.options=="yes":
-                #if $advanced_options.mbias_regionString:
-                    -r $advanced_options.mbias_regionString
-                #end if
-                #if $advanced_options.regionBed:
-                    -l '$advanced_options.regionBed'
-                #end if
-                $advanced_options.keepDupes
-                $advanced_options.keepSingleton
-                $advanced_options.keepDiscordant
-                -q $advanced_options.min_mapq
-                -p $advanced_options.min_phred
-                -D $advanced_options.max_pbdepth
-                #if $main_task.task == "extract":
-                    --minOppositeDepth $advanced_options.minOppositeDepth
-                    --maxVariantFrac $advanced_options.maxVariantFrac
-                    -d $advanced_options.min_pbdepth
-                    --ignoreFlags $advanced_options.ignoreFlags
-                    --requireFlags $advanced_options.requireFlags
-                    $advanced_options.fraction
-                    $advanced_options.counts
-                    $advanced_options.methylKit
-                    $advanced_options.logit
-                    #if str($advanced_options.nOT).strip() != "":
-                        --nOT $advanced_options.nOT
-                    #end if
-                    #if str($advanced_options.nOB).strip() != "":
-                        --nOB $advanced_options.nOB
-                    #end if
-                    #if str($advanced_options.nCTOT).strip() != "":
-                        --nCTOT $advanced_options.nCTOT
-                    #end if
-                    #if str($advanced_options.nCTOB).strip() != "":
-                        --nCTOB $advanced_options.nCTOB
-                    #end if
-                #end if
-                $advanced_options.CHG
-                $advanced_options.CHH
-                $advanced_options.noCpG
-            #end if
 
             reference.fasta
 
-            $input_sortedAlignBAM
+            ./infile.bam
 
-            #if $main_task.task == "mbias":
+            #if $main_task.task == 'mbias':
                 out_mbias $main_task.tsv > out_mbias.tsv &&
                 touch out_mbias_OT.svg &&
                 touch out_mbias_OB.svg &&
@@ -101,301 +110,487 @@
                 <param name="ref_file" type="data" format="fasta" label="Use the folloing dataset as the reference sequence" help="REFERENCE_SEQUENCE; You can upload a FASTA sequence to the history and use it as reference" />
             </when>
         </conditional>
-
-        <param name="input_sortedAlignBAM" multiple="False" type="data" format="bam" label="sorted_alignments.bam"/>
+        <param name="input_sortedAlignBAM" multiple="False" type="data" format="bam" label="Sorted BAM file"/>
+        <conditional name="regionBed_options">
+                <param name="regionBed_status" type="select" label="Use a BED file of regions for inclusion">
+                    <option value="True">Enabled</option>
+                    <option value="False" selected="True">Disabled</option>
+                </param>
+                <when value="True">
+                    <param name="regionBed" type="data" format='bed' label="BED file of regions for inclusion"/>
+                    <param argument="--keepStrand" type="boolean" truevalue="--keepStrand" falsevalue="" checked="False" label="Use the strand column" help="If a BED file is specified, then this option will cause the strand column (column 6) to be utilized, if present. Thus, if a region has a '+' in this column, then only metrics from the top strand will be output. " />
+                </when>
+                <when value="False">
+                </when>
+            </conditional>
         <conditional name="main_task">
             <param name="task" type="select" label="What do you want to do?" >
-                 <option value="extract">Extract methylation metrics from an alignment file in BAM/CRAM format</option>
-                 <option value="mbias">Determine the position-dependent methylation bias in a dataset, producing diagnostic SVG images</option>
+                <option value="extract">Extract methylation metrics from an alignment file in BAM/CRAM format (extract)</option>
+                <option value="mbias">Determine the position-dependent methylation bias in a dataset, producing diagnostic SVG images (mbias)</option>
             </param>
             <when value="extract">
-                <param name="mergeContext" type="boolean" checked="false" truevalue="--mergeContext" falsevalue=""
-                label="Merge per-Cytosine metrics from CpG and CHG contexts into per-CPG or per-CHG metrics" help="(--mergeContext)" />
-                <param name="OT" type="text" value="" label="Original top strand bounds (comma-separated, no spaces)"
-                    help="Inclusion bounds for methylation calls from reads/pairs
-                          origination from the original top strand. Suggested values can
-                          be obtained from the MBias program. Each integer represents a
-                          1-based position on a read. For example --OT A,B,C,D
-                          translates to, 'Include calls at positions from A through B
-                          on read #1 and C through D on read #2'. If a 0 is used a any
-                          position then that is translated to mean start/end of the
-                          alignment, as appropriate. For example, --OT 5,0,0,0 would
-                          include all but the first 4 bases on read #1. Users are
-                          strongly advised to consult a methylation bias plot, for
+                <conditional name="mappability_options">
+                    <param name="mappability_status" type="select" label="Provide a bigWig file containing mappability data" >
+                        <option value="True">Enabled</option>
+                        <option value="False" selected="True">Disabled</option>
+                    </param>
+                    <when value="True">
+                        <param argument="--mappability" type="data" format="bigwig" label="A bigWig file containing mappability data for filtering reads." help="Given a bigWig of Bismap mappability data (using the -M option), MethylDackel can also filter out reads with a mappability score which is too low to support methylation calling. "/>
+                        <param argument="--mappabilityThreshold" type="float" min="0" max="1" value="0.01" label="Mappability threshold" help="If a bigWig file is provided, this sets the threshold mappability value above which a base is considered mappable (default 0.01)." />
+                        <param argument="--minMappableBases" type="integer" value="15" label="Minimum mappable bases" help="If a bigWig file is provided, this sets the number of mappable bases needed for a read to be considered mappable (default 15)." />
+                    </when>
+                    <when value="False">
+                    </when>
+                </conditional>
+                <param argument="--mergeContext" type="boolean" checked="false" truevalue="--mergeContext" falsevalue="" label="Merge per-Cytosine metrics" help="Merge per-Cytosine metrics from CpG and CHG contexts into per-CPG or per-CHG metrics"/>
+                <param argument="--OT" type="text" value="" label="Original top strand bounds (comma-separated, no spaces)"
+                    help="Inclusion bounds for methylation calls from reads/pairs origination from the original top strand. Suggested values can
+                          be obtained from the MBias program. Each integer represents a 1-based position on a read. For example --OT A,B,C,D
+                          translates to, 'Include calls at positions from A through B on read #1 and C through D on read #2'. If a 0 is used a any
+                          position then that is translated to mean start/end of the alignment, as appropriate. For example, --OT 5,0,0,0 would
+                          include all but the first 4 bases on read #1. Users are strongly advised to consult a methylation bias plot, for
                           example by using the MBias program." />
-                <param name="OB" type="text" value="" label="Original bottom strand bounds (comma-separated, no spaces)" />
-                <param name="CTOT" type="text" value="" label="Complementary to the original bottom strand bounds (comma-separated, no spaces)" />
-                <param name="CTOB" type="text" value="" label="Complementary to the original bottom strand bounds (comma-separated, no spaces)" />
+                <param argument="--OB" type="text" value="" label="Original bottom strand bounds (comma-separated, no spaces)" />
+                <param argument="--CTOT" type="text" value="" label="Complementary to the original bottom strand bounds (comma-separated, no spaces)" />
+                <param argument="--CTOB" type="text" value="" label="Complementary to the original bottom strand bounds (comma-separated, no spaces)" 
+                    help="As with --OT, but for the original bottom, complementary to the original top, and complementary to the original bottom
+                          strands, respectively."/>
+                <param name="extract_outputs" type="select" label="Output options">
+                    <option value="" selected="True">CpG context methylation metrics</option>
+                    <option value="--fraction">CpG methylation fractions (--fraction)</option>
+                    <option value="--counts">CpG methylation counts (--counts)</option>
+                    <option value="--logit">CpG logit transformed methylation fraction (--logit)</option>
+                    <option value="--methylKit">CpG context in methylKit format (--methylKit)</option>
+                    <option value="--cytosine_report">Generate an exhaustive cytosine report (--cytosine_report)</option>
+                </param>
             </when>
             <when value="mbias">
                 <param name="tsv" type="boolean" truevalue="--txt" falsevalue=""
-                       label="output tab separated mbias metrics"/>
+                       label="Output tab separated mbias metrics" help="It can be imported into R or another program for manual plotting and analysis. Note that coordinates are 1-based."/>
             </when>
         </conditional>
-        <conditional name="advanced_options">
-            <param name="options" type="select" label="Advanced options">
-                <option value="">Hide advanced options</option>
-                <option value="yes">Display advanced options</option>
-            </param>
-            <when value="yes">
-                <param name="mbias_regionString" type="text" value="" label="Region string in which to extract methylation (e.g. chr1:1-100)"/>
-                <param name="regionBed" type="data" optional="true" format='bed' label="Bed file of regions for inclusion"/>
-                <param name="keepDupes" type="boolean" checked="false" truevalue="--keepDupes" falsevalue=""
-                    label="By default, any alignment marked as a duplicate is ignored. This option causes them to be incorporated" />
-                <param name="keepSingleton" type="boolean" checked="false" truevalue="--keepSingleton" falsevalue=""
-                    label="By default, if only one read in a pair aligns (a singleton) then it's ignored." />
-                <param name="keepDiscordant" type="boolean" checked="false" truevalue="--keepDiscordant" falsevalue=""
-                    label="By default, paired-end alignments with the properly-paired bit unset in the FLAG field are ignored. Note that the definition of concordant and discordant is based on your aligner settings." />
-                <param name="min_mapq" type="integer" value="10" label="Minimum MAPQ threshold to include an alignment (default 10)"/>
-                <param name="min_phred" type="integer" value="5" label="Minimum Phred threshold to include a base (default 5). This must be >0."/>
-                <param name="max_pbdepth" type="integer" value="2000" label="Maximum per-base depth (default 2000)"/>
-                <param name="min_pbdepth" type="integer" value="1" min="1" label="Minimum per-base depth"
-                    help="Minimum per-base depth for reporting output. If you use --mergeContext (above), then this applies to the merged CpG/CHG (default 1). (-d)" />
-
-                <param name="ignoreFlags" type="integer" value="3840" label="Ignore certain alignments"
-                    help="By deault, any alignment marked as secondary (bit 0x100), failing QC (bit 0x200), a PCR/optical duplicate (0x400) or supplemental (0x800) is ignored. This equates to a value of 0xF00 or 3840 in decimal. If you would like to change that, you can specify a new value here." />
-                <param name="requireFlags" type="integer" value="0" label="Require alignment flags"
-                    help="Require each alignment to have all bits in this value present, or else the alignment is ignored. This is equivalent to the -f option in samtools. The default is 0, which includes all alignments." />
-                <param name="minOppositeDepth" type="integer" value="0" min="0" label="Minimum depth for variant avoidance"
-                    help="The minimum depth on the strand opposite of a C required to flag the position as possibly being a SNP. The default is 0 (ignore possible SNPs). Setting this to a value above 0 will cause the position to be ignored if a given fraction of non-G bases are present on the opposite strand and the overall coverage there is at least what is specified here." />
-                <param name="maxVariantFrac" type="float" value="1.0" min="0.0" max="1.0" label="Maximum tolerated variant fraction"
-                    help="If the depth on the strand opposite of a C is at least that specified by 'Minimum depth for variant avoidance', and the fraction of non-G bases exceeds this value, then methylation extraction is skipped for this position." />
+        <section name="advanced_options" title='Advanced options' expanded='false'>
+            <param name="mbias_regionString" type="text" value="" label="Region string in which to extract methylation (e.g. chr1:1-100)"/>
 
-                <param name="fraction" type="boolean" checked="false" truevalue="--fraction" falsevalue=""
-                    label="Extract fractional methylation (only) at each position. This is mutually exclusive with --counts, --logit, and --methylKit" />
-                <param name="counts" type="boolean" checked="false" truevalue="--counts" falsevalue=""
-                    label="Extract base counts (only) at each position. This is mutually exclusive with --fraction, --logit, and --methylKit" />
-                <param name="logit" type="boolean" checked="false" truevalue="--logit" falsevalue=""
-                    label="Extract logit(M/(M+U)) (only) at each position. This is mutually exclusive with --counts, --fraction, and --methylKit" />
-                <param name="methylKit" type="boolean" checked="false" truevalue="--methylKit" falsevalue=""
-                    label="Output in the format required by methylKit. This is mutually exclusive with --counts, --fraction, and --logit" />
-
-                <param name="noCpG" type="boolean" checked="false" truevalue="--noCpG" falsevalue=""
-                    label="Do not output CpG context methylation metrics" />
-                <param name="CHG" type="boolean" checked="false" truevalue="--CHG" falsevalue=""
-                    label="Output CHG context methylation metrics" />
-                <param name="CHH" type="boolean" checked="false" truevalue="--CHH" falsevalue=""
-                    label="Output CHH context methylation metrics" />
-
-                <param name="nOT" type="text" value="" label="Original top strand absolute bounds (comma-separated, no spaces)"
-                    help="Like --OT, but always exclude INT bases from a given end
-                          from inclusion,regardless of the length of an alignment. This
-                          is useful in cases where reads may have already been trimmed
-                          to different lengths, but still none-the-less contain a
-                          certain length bias at one or more ends." />
-                <param name="nOB" type="text" value="" label="Original bottom strand absolute bounds (comma-separated, no spaces)" />
-                <param name="nCTOT" type="text" value="" label="Complementary to the original bottom strand absolute bounds (comma-separated, no spaces)" />
-                <param name="nCTOB" type="text" value="" label="Complementary to the original bottom strand absolute bounds (comma-separated, no spaces)" />
-            </when>
-            <when value=""/>
-        </conditional>
+            <param argument="--keepDupes" type="boolean" checked="false" truevalue="--keepDupes" falsevalue=""
+                label="Keep duplicated alignments" help="By default, any alignment marked as a duplicate is ignored. This option causes them to be incorporated." />
+            <param argument="--keepSingleton" type="boolean" checked="false" truevalue="--keepSingleton" falsevalue=""
+                label="Keep singletons" help="By default, if only one read in a pair aligns (a singleton) then it's ignored." />
+            <param argument="--keepDiscordant" type="boolean" checked="false" truevalue="--keepDiscordant" falsevalue=""
+                label="Keep discordant alignmetns" help="By default, paired-end alignments with the properly-paired bit unset in the FLAG field are ignored. Note that the definition of concordant and discordant is based on your aligner settings." />
+            <param name="min_mapq" argument="-q" type="integer" value="10" label="Minimum MAPQ threshold" help="Minimum MAPQ threshold to include an alignment (default 10)"/>
+            <param name="min_phred" argument="-p" type="integer" value="5" label="Minimum Phred threshold" help="Minimum Phred threshold to include a base (default 5). This must be >0."/>
+            <param name="min_pbdepth" argument="-d" type="integer" value="1" min="1" label="Minimum per-base depth"
+                help="Minimum per-base depth for reporting output. If you use --mergeContext, then this applies to the merged CpG/CHG (default 1)." />
+            <param argument="--ignoreFlags" type="integer" value="3840" label="Ignore certain alignments"
+                help="By deault, any alignment marked as secondary (bit 0x100), failing QC (bit 0x200), a PCR/optical duplicate (0x400) or supplemental (0x800) is ignored. This equates to a value of 0xF00 or 3840 in decimal. If you would like to change that, you can specify a new value here." />
+            <param argument="--requireFlags" type="integer" value="0" label="Require alignment flags"
+                help="Require each alignment to have all bits in this value present, or else the alignment is ignored. This is equivalent to the -f option in samtools. The default is 0, which includes all alignments." />
+            <param argument="--minOppositeDepth" type="integer" value="0" min="0" label="Minimum depth for variant avoidance"
+                help="The minimum depth on the strand opposite of a C required to flag the position as possibly being a SNP. The default is 0 (ignore possible SNPs). Setting this to a value above 0 will cause the position to be ignored if a given fraction of non-G bases are present on the opposite strand and the overall coverage there is at least what is specified here." />
+            <param argument="--maxVariantFrac" type="float" value="1.0" min="0.0" max="1.0" label="Maximum tolerated variant fraction"
+                help="If the depth on the strand opposite of a C is at least that specified by 'Minimum depth for variant avoidance', and the fraction of non-G bases exceeds this value, then methylation extraction is skipped for this position." />
+            <param argument="--nOT" type="text" value="" label="Original top strand absolute bounds (comma-separated, no spaces)"
+                help="Like --OT, but always exclude INT bases from a given end from inclusion,regardless of the length of an alignment. This
+                        is useful in cases where reads may have already been trimmed to different lengths, but still none-the-less contain a
+                        certain length bias at one or more ends." />
+            <param argument="--nOB" type="text" value="" label="Original bottom strand absolute bounds (comma-separated, no spaces)" />
+            <param argument="--nCTOT" type="text" value="" label="Complementary to the original bottom strand absolute bounds (comma-separated, no spaces)" />
+            <param argument="--nCTOB" type="text" value="" label="Complementary to the original bottom strand absolute bounds (comma-separated, no spaces)" 
+                help="As with --nOT, but for the original bottom complementary to the original top, and complementary to the
+                        original bottom strands, respectively."/>
+            <param name="methylation_metrics" type="select" multiple="True" optional="True" display="checkboxes" label="Context methylation metrics options">
+                <option value="--CHG">Output CHG context methylation metrics (--CHG)</option>
+                <option value="--CHH">Output CHH context methylation metrics (--CHH)</option>
+            </param>
+        </section>
     </inputs>
     <outputs>
             <data  name="outFileExtractCpG" format="bedgraph" from_work_dir="output_CpG.bedGraph" 
-                label="${tool.name} on ${on_string}">
+            label="${tool.name} on ${on_string}: CpG metylation levels">
                 <filter>main_task['task']  == "extract"</filter>
-                <filter>not advanced_options['logit']</filter>
-                <filter>not advanced_options['methylKit']</filter>
-                <filter>not advanced_options['counts']</filter>
-                <filter>not advanced_options['fraction']</filter>
-                <filter>not advanced_options['noCpG']</filter>
+                <filter>not main_task['extract_outputs']</filter>
             </data>
             <data  name="outFileExtractCpGLogit" format="bedgraph" from_work_dir="output_CpG.logit.bedGraph" 
-                label="${tool.name} on ${on_string} (logit)">
-                <filter>main_task['task']  == "extract" and advanced_options['logit']</filter>
+                label="${tool.name} on ${on_string}: logit CpG">
+                <filter>main_task['task']  == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--logit" in main_task['extract_outputs']</filter>
             </data>
-            <data  name="outFileExtractCpGMethylKit" format="text" from_work_dir="output_CpG.methylKit" 
-                label="${tool.name} on ${on_string} (MethylKit)">
-                <filter>main_task['task']  == "extract" and advanced_options['methylKit']</filter>
+            <data  name="outFileExtractCpGMethylKit" format="txt" from_work_dir="output_CpG.methylKit" 
+                label="${tool.name} on ${on_string}: methylKit CpG">
+                <filter>main_task['task']  == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--methylKit" in main_task['extract_outputs']</filter>
             </data>
             <data  name="outFileExtractCpGCounts" format="bedgraph" from_work_dir="output_CpG.counts.bedGraph" 
-                label="${tool.name} on ${on_string} (counts)">
-                <filter>main_task['task']  == "extract" and advanced_options['counts']</filter>
+                label="${tool.name} on ${on_string}: counts">
+                <filter>main_task['task']  == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--counts" in main_task['extract_outputs']</filter>
+            </data>
+            <data  name="outFileCytosineReport" format="txt" from_work_dir="output.cytosine_report.txt" 
+                label="${tool.name} on ${on_string}: cytosine report">
+                <filter>main_task['task']  == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--cytosine_report" in main_task['extract_outputs']</filter>
             </data>
             <data  name="outFileExtractCpGFraction" format="bedgraph" from_work_dir="output_CpG.meth.bedGraph" 
-                label="${tool.name} on ${on_string} (fraction)">
-                <filter>main_task['task']  == "extract" and advanced_options['fraction']</filter>
+                label="${tool.name} on ${on_string}: fraction CpG">
+                <filter>main_task['task']  == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--fraction" in main_task['extract_outputs']</filter>
             </data>
             <data  name="outFileExtractCHG" format="bedgraph" from_work_dir="output_CHG.bedGraph" 
-                label="${tool.name} on ${on_string} (CHG)">
-                <filter>main_task['task'] == 'extract'</filter>
-                <filter>advanced_options['options'] == "yes"</filter>
-                <filter>advanced_options['CHG']</filter>
-                <filter>not advanced_options['logit']</filter>
-                <filter>not advanced_options['methylKit']</filter>
-                <filter>not advanced_options['counts']</filter>
-                <filter>not advanced_options['fraction']</filter>
+                label="${tool.name} on ${on_string}: CHG methylation levels">
+                <filter>main_task['task'] == "extract"</filter>
+                <filter>not main_task['extract_outputs']</filter>
+                <filter>advanced_options['methylation_metrics'] and "--CHG" in advanced_options['methylation_metrics']</filter>
             </data>
+             
             <data  name="outFileExtractCHGLogit" format="bedgraph" from_work_dir="output_CHG.logit.bedGraph" 
-                label="${tool.name} on ${on_string} (CHG logit)">
-                <filter>main_task['task']  == "extract" and advanced_options['logit']</filter>
-                <filter>advanced_options['options'] == "yes"</filter>
-                <filter>advanced_options['CHG']</filter>
+                label="${tool.name} on ${on_string}: logit CHG">
+                <filter>main_task['task'] == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--logit" in main_task['extract_outputs']</filter>
+                <filter>advanced_options['methylation_metrics'] and "--CHG" in advanced_options['methylation_metrics']</filter>
             </data>
-            <data  name="outFileExtractCHGMethylKit" format="text" from_work_dir="output_CHG.methylKit" 
-                label="${tool.name} on ${on_string} (CHG MethylKit)">
-                <filter>main_task['task']  == "extract" and advanced_options['methylKit']</filter>
-                <filter>advanced_options['options'] == "yes"</filter>
-                <filter>advanced_options['CHG']</filter>
+            
+            <data  name="outFileExtractCHGMethylKit" format="txt" from_work_dir="output_CHG.methylKit" 
+                label="${tool.name} on ${on_string}: methylKit CHG">
+                <filter>main_task['task'] == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--methylKit" in main_task['extract_outputs']</filter>
+                <filter>advanced_options['methylation_metrics'] and "--CHG" in advanced_options['methylation_metrics']</filter>
             </data>
             <data  name="outFileExtractCHGCounts" format="bedgraph" from_work_dir="output_CHG.counts.bedGraph" 
-                label="${tool.name} on ${on_string} (CHG counts)">
-                <filter>main_task['task']  == "extract" and advanced_options['counts']</filter>
-                <filter>advanced_options['options'] == "yes"</filter>
-                <filter>advanced_options['CHG']</filter>
+                label="${tool.name} on ${on_string}: counts CHG">
+                <filter>main_task['task'] == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--counts" in main_task['extract_outputs']</filter>
+                <filter>advanced_options['methylation_metrics'] and "--CHG" in advanced_options['methylation_metrics']</filter>
             </data>
             <data  name="outFileExtractCHGFraction" format="bedgraph" from_work_dir="output_CHG.meth.bedGraph" 
-                label="${tool.name} on ${on_string} (CHG fraction)">
-                <filter>main_task['task']  == "extract" and advanced_options['fraction']</filter>
-                <filter>advanced_options['options'] == "yes"</filter>
-                <filter>advanced_options['CHG']</filter>
+                label="${tool.name} on ${on_string}: fraction CHG">
+                <filter>main_task['task'] == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--fraction" in main_task['extract_outputs']</filter>
+                <filter>advanced_options['methylation_metrics'] and "--CHG" in advanced_options['methylation_metrics']</filter>
             </data>
             <data  name="outFileExtractCHH" format="bedgraph" from_work_dir="output_CHH.bedGraph" 
-                label="${tool.name} on ${on_string} (CHH)">
-                <filter>main_task['task']  == 'extract'</filter>
-                <filter>advanced_options['options'] == "yes"</filter>
-                <filter>advanced_options['CHH']</filter>
-                <filter>not advanced_options['logit']</filter>
-                <filter>not advanced_options['methylKit']</filter>
-                <filter>not advanced_options['counts']</filter>
-                <filter>not advanced_options['fraction']</filter>
+                label="${tool.name} on ${on_string}: CHH metylation levels">
+                <filter>main_task['task'] == "extract"</filter>
+                <filter>not main_task['extract_outputs']</filter>
+                <filter>advanced_options['methylation_metrics'] and "--CHH" in advanced_options['methylation_metrics']</filter>
             </data>
             <data  name="outFileExtractCHHLogit" format="bedgraph" from_work_dir="output_CHH.logit.bedGraph" 
-                label="${tool.name} on ${on_string} (CHH logit)">
-                <filter>main_task['task']  == "extract" and advanced_options['logit']</filter>
-                <filter>advanced_options['options'] == "yes"</filter>
-                <filter>advanced_options['CHH']</filter>
+                label="${tool.name} on ${on_string}: logit CHH">
+                <filter>main_task['task'] == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--logit" in main_task['extract_outputs']</filter>
+                <filter>advanced_options['methylation_metrics'] and "--CHH" in advanced_options['methylation_metrics']</filter>
             </data>
-            <data  name="outFileExtractCHHMethylKit" format="text" from_work_dir="output_CHH.methylKit" 
-                label="${tool.name} on ${on_string} (CHH MethylKit)">
-                <filter>main_task['task']  == "extract" and advanced_options['methylKit']</filter>
-                <filter>advanced_options['options'] == "yes"</filter>
-                <filter>advanced_options['CHH']</filter>
+    
+            <data  name="outFileExtractCHHMethylKit" format="txt" from_work_dir="output_CHH.methylKit" 
+                label="${tool.name} on ${on_string}: methylKit CHH">
+                <filter>main_task['task'] == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--methylKit" in main_task['extract_outputs']</filter>
+                <filter>advanced_options['methylation_metrics'] and "--CHH" in advanced_options['methylation_metrics']</filter>
             </data>
             <data  name="outFileExtractCHHCounts" format="bedgraph" from_work_dir="output_CHH.counts.bedGraph" 
-                label="${tool.name} on ${on_string} (CHH counts)">
-                <filter>main_task['task']  == "extract" and advanced_options['counts']</filter>
-                <filter>advanced_options['options'] == "yes"</filter>
-                <filter>advanced_options['CHH']</filter>
+                label="${tool.name} on ${on_string}: counts CHH">
+                <filter>main_task['task'] == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--counts" in main_task['extract_outputs']</filter>
+                <filter>advanced_options['methylation_metrics'] and "--CHH" in advanced_options['methylation_metrics']</filter>
             </data>
             <data  name="outFileExtractCHHFraction" format="bedgraph" from_work_dir="output_CHH.meth.bedGraph" 
-                label="${tool.name} on ${on_string} (CHH fraction)">
-                <filter>main_task['task']  == "extract" and advanced_options['fraction']</filter>
-                <filter>advanced_options['options'] == "yes"</filter>
-                <filter>advanced_options['CHH']</filter>
+                label="${tool.name} on ${on_string}: fraction CHH">
+                <filter>main_task['task'] == "extract"</filter>
+                <filter>main_task['extract_outputs'] and "--fraction" in main_task['extract_outputs']</filter>
+                <filter>advanced_options['methylation_metrics'] and "--CHH" in advanced_options['methylation_metrics']</filter>         
             </data>
             <data  name="outFileMbiasTSV" format="tabular" from_work_dir="out_mbias.tsv"
-                label="${tool.name} on ${on_string} (methylation bias, tsv)">
+                label="${tool.name} on ${on_string}: methylation bias (tsv)">
                 <filter>main_task['task']  == 'mbias'</filter>
                 <filter>main_task['tsv']</filter>
             </data>
+
             <data  name="outFileMbiasCpGOT" format="svg" from_work_dir="out_mbias_OT.svg"
-                label="${tool.name} on ${on_string} (methylation bias, original top strand)">
+                label="${tool.name} on ${on_string}: methylation bias (original top strand)">
                 <filter>main_task['task']  == 'mbias'</filter>
             </data>
             <data  name="outFileMbiasCpGOB" format="svg" from_work_dir="out_mbias_OB.svg"
-                label="${tool.name} on ${on_string} (methylation bias, original bottom strand)">
+                label="${tool.name} on ${on_string}: methylation bias (original bottom strand)">
                 <filter>main_task['task']  == 'mbias'</filter>
             </data>
             <data  name="outFileMbiasCpGCTOT" format="svg" from_work_dir="out_mbias_CTOT.svg"
-                label="${tool.name} on ${on_string} (methylation bias, complementary to the original top strand)">
+                label="${tool.name} on ${on_string}: methylation bias (complementary to the original top strand)">
                 <filter>main_task['task']  == 'mbias'</filter>
             </data>
             <data  name="outFileMbiasCpGCTOB" format="svg" from_work_dir="out_mbias_CTOB.svg"
-                label="${tool.name} on ${on_string} (methylation bias, complementary to the original bottom strand)">
+                label="${tool.name} on ${on_string}: methylation bias (complementary to the original bottom strand)">
                 <filter>main_task['task']  == 'mbias'</filter>
             </data>
     </outputs>
     <tests>
-        <test>
-            <param name="task" value="extract" />
-            <param name="min_mapq" value="2" />
+        <test expect_num_outputs="1">
+            <param name="reference_source_selector" value="history" />
+            <param name="ref_file" value="cg100.fa" ftype="fasta" />
+            <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
+            <conditional name="main_task">
+                <param name="task" value="extract" />
+            </conditional>
+            <section name="advanced_options">
+                <param name="min_mapq" value="2" />
+            </section>
+            <output name="outFileExtractCpG" ftype="bedgraph">
+                <assert_contents>
+                     <has_size value="1016"/>
+                </assert_contents>
+            </output> 
+        </test>
+        
+        <test expect_num_outputs="4">
             <param name="reference_source_selector" value="history" />
             <param name="ref_file" value="cg100.fa" ftype="fasta" />
             <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
-            <param name="mergeContext" value="false"/>
-            <param name="options" value="yes"/>
-            <output name="outFileExtractCpG" file="test_1.bedGraph" ftype="bedgraph" compare="diff"/>
+            <conditional name="main_task">
+                <param name="task" value="mbias" />
+            </conditional>
+            <section name="advanced_options">
+                <param name="min_mapq" value="2" />
+            </section>
+            <output name="outFileMbiasCpGOT" ftype="svg">
+                 <assert_contents>
+                     <has_size value="14614"/>
+                </assert_contents>
+            </output> 
+            <output name="outFileMbiasCpGOB" ftype="svg">
+                <assert_contents>
+                     <has_size value="0"/>
+                </assert_contents>
+            </output> 
+            <output name="outFileMbiasCpGCTOT" ftype="svg">
+                <assert_contents>
+                     <has_size value="0"/>
+                </assert_contents>
+            </output> 
+            <output name="outFileMbiasCpGCTOB" ftype="svg">
+                <assert_contents>
+                     <has_size value="0"/>
+                </assert_contents>
+            </output> 
         </test>
-        <test>
-            <param name="task" value="mbias" />
-            <param name="min_mapq" value="2" />
-            <param name="options" value="yes"/>
+        <test expect_num_outputs="2">
             <param name="reference_source_selector" value="history" />
             <param name="ref_file" value="cg100.fa" ftype="fasta" />
             <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
-            <output name="outFileMbiasCpGOT" file="test_2_output.svg" ftype="svg" compare="diff"/>
+            <conditional name="main_task">
+                <param name="task" value="extract" />
+                <param name="mergeContext" value="false"/>
+            </conditional>
+            <section name="advanced_options">
+                <param name="min_mapq" value="2" />
+                <param name="methylation_metrics" value="--CHH"/>
+            </section>
+            <output name="outFileExtractCpG" ftype="bedgraph">
+                <assert_contents>
+                     <has_size value="1016"/>
+                </assert_contents>
+            </output> 
+            <output name="outFileExtractCHH" ftype="bedgraph">
+                <assert_contents>
+                     <has_size value="86"/>
+                </assert_contents>
+            </output> 
         </test>
-        <test>
-            <param name="task" value="extract" />
-            <param name="min_mapq" value="2" />
-            <param name="options" value="yes"/>
-            <param name="CHH" value="True"/>
+        <test expect_num_outputs="1">
             <param name="reference_source_selector" value="history" />
             <param name="ref_file" value="cg100.fa" ftype="fasta" />
             <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
-            <param name="mergeContext" value="false"/>
-            <param name="options" value="yes"/>
-            <output name="outFileExtractCpG" file="test_1.bedGraph" ftype="bedgraph" compare="diff"/>
-            <output name="outFileExtractCHH" file="test_2.bedGraph" ftype="bedgraph" compare="diff"/>
+            <conditional name="main_task">
+                <param name="task" value="extract" />
+                <param name="extract_outputs" value="--fraction" />
+            </conditional>
+            <section name="advanced_options">       
+                <param name="min_mapq" value="2" />
+            </section>
+            <output name="outFileExtractCpGFraction" ftype="bedgraph">
+                <assert_contents>
+                     <has_size value="1067"/>
+                </assert_contents>
+            </output> 
         </test>
-        <test>
-            <param name="task" value="extract" />
-            <param name="min_mapq" value="2" />
+        <test expect_num_outputs="1">
+            <param name="reference_source_selector" value="history" />
+            <param name="ref_file" value="cg100.fa" ftype="fasta" />
+            <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
+            <conditional name="main_task">
+                <param name="task" value="extract" />
+                <param name="extract_outputs" value="--logit" />
+            </conditional>
+            <section name="advanced_options">       
+                <param name="min_mapq" value="2" />
+            </section>
+            <output name="outFileExtractCpGLogit" ftype="bedgraph">
+                <assert_contents>
+                     <has_size value="845"/>
+                </assert_contents>
+            </output> 
+        </test>
+        <test expect_num_outputs="1">
+            <param name="reference_source_selector" value="history" />
+            <param name="ref_file" value="cg100.fa" ftype="fasta" />
+            <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
+            <conditional name="main_task">
+                <param name="task" value="extract" />
+                <param name="extract_outputs" value="--methylKit" />
+            </conditional>
+            <section name="advanced_options">
+                <param name="min_mapq" value="2" />
+            </section>
+            <output name="outFileExtractCpGMethylKit" ftype="txt">
+                <assert_contents>
+                     <has_size value="1763"/>
+                </assert_contents>
+            </output> 
+
+        </test>
+        
+        <test expect_num_outputs="5">
             <param name="reference_source_selector" value="history" />
             <param name="ref_file" value="cg100.fa" ftype="fasta" />
             <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
-            <param name="options" value="yes"/>
-            <param name="fraction" value="true" />
-            <output name="outFileExtractCpGFraction" file="test_3.bedGraph" ftype="bedgraph" compare="diff"/>
+            <conditional name="main_task">
+                <param name="task" value="mbias" />
+                <param name="tsv" value="--txt"/>
+            </conditional>
+            <section name="advanced_options">
+                <param name="min_mapq" value="2" />
+            </section>
+            <output name="outFileMbiasTSV" ftype="tabular">
+                <assert_contents>
+                     <has_size value="1213"/>
+                </assert_contents>
+            </output> 
+            <output name="outFileMbiasCpGOT" ftype="svg">
+                 <assert_contents>
+                     <has_size value="14614"/>
+                </assert_contents>
+            </output> 
+            <output name="outFileMbiasCpGOB"  ftype="svg">
+                 <assert_contents>
+                     <has_size value="0"/>
+                </assert_contents>
+            </output> 
+            <output name="outFileMbiasCpGCTOT"  ftype="svg">
+                 <assert_contents>
+                     <has_size value="0"/>
+                </assert_contents>
+            </output> 
+            <output name="outFileMbiasCpGCTOB" ftype="svg">
+                 <assert_contents>
+                     <has_size value="0"/>
+                </assert_contents>
+            </output> 
         </test>
-        <test>
-            <param name="task" value="extract" />
-            <param name="min_mapq" value="2" />
+        
+        <test expect_num_outputs="2">
             <param name="reference_source_selector" value="history" />
             <param name="ref_file" value="cg100.fa" ftype="fasta" />
             <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
-            <param name="options" value="yes"/>
-            <param name="logit" value="true" />
-            <output name="outFileExtractCpGLogit" file="test_4.bedGraph" ftype="bedgraph" compare="diff"/>
+            <conditional name="main_task">
+                <param name="task" value="extract" />
+                <param name="extract_outputs" value="--methylKit" />
+            </conditional>
+            <section name="advanced_options">
+                <param name="min_mapq" value="2" />
+                <param name="methylation_metrics" value="--CHG"/>
+            </section>
+            <output name="outFileExtractCpGMethylKit" ftype="txt">
+                 <assert_contents>
+                     <has_size value="1763"/>
+                </assert_contents>
+            </output> 
+            <output name="outFileExtractCHGMethylKit" ftype="txt">
+                 <assert_contents>
+                     <has_size value="45"/>
+                </assert_contents>
+            </output> 
         </test>
-        <test>
-            <param name="task" value="extract" />
-            <param name="min_mapq" value="2" />
+        <!--Test regionBed option-->
+        <test expect_num_outputs="1">
             <param name="reference_source_selector" value="history" />
             <param name="ref_file" value="cg100.fa" ftype="fasta" />
             <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
-            <param name="options" value="yes"/>
-            <param name="methylKit" value="true" />
-            <output name="outFileExtractCpGMethylKit" file="test_5.methylKit" ftype="text" compare="diff"/>
+            <conditional name="regionBed_options">
+                <param name="regionBed_status" value="True"/>
+                <param name="regionBed" ftype="bed" value="cg100.bed"/>
+            </conditional>
+            <conditional name="main_task">
+                <param name="task" value="extract" />
+            </conditional>
+            <section name="advanced_options">
+                <param name="min_mapq" value="2" />
+            </section>
+            <output name="outFileExtractCpG" ftype="bedgraph" >
+                <assert_contents>
+                     <has_size value="846"/>
+                </assert_contents>
+            </output> 
         </test>
-        <test>
-            <param name="task" value="mbias" />
-            <param name="min_mapq" value="2" />
-            <param name="options" value="yes"/>
-            <param name="tsv" value="--txt"/>
+
+        <!--Test keepStrand parameter-->
+        <test expect_num_outputs="1">
             <param name="reference_source_selector" value="history" />
             <param name="ref_file" value="cg100.fa" ftype="fasta" />
             <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
-            <output name="outFileMbiasTSV" file="test7_output.tsv" ftype="tabular" compare="diff"/>
+            <conditional name="regionBed_options">
+                <param name="regionBed_status" value="True"/>
+                <param name="regionBed" ftype="bed" value="cg100.bed"/>
+                <param name="keepStrand" value="True"/>
+            </conditional>
+            <conditional name="main_task">
+                <param name="task" value="extract" />
+            </conditional>
+            <section name="advanced_options">
+                <param name="min_mapq" value="2" />
+            </section>
+            <output name="outFileExtractCpG" ftype="bedgraph">
+                <assert_contents>
+                     <has_size value="846"/>
+                </assert_contents>
+            </output> 
         </test>
-        <test>
-            <param name="task" value="mbias" />
-            <param name="min_mapq" value="2" />
-            <param name="options" value="yes"/>
-            <param name="regionBed" ftype="bed" value="cg100.bed"/>
-            <param name="tsv" value="--txt"/>
+
+        <!-- Test mapability options-->
+        <test expect_num_outputs="1">
             <param name="reference_source_selector" value="history" />
             <param name="ref_file" value="cg100.fa" ftype="fasta" />
             <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
-            <output name="outFileMbiasTSV" file="test8_output.tsv" ftype="tabular" compare="diff"/>
+            <conditional name="main_task">
+                <param name="task" value="extract" />
+                <conditional name="mappability_options">
+                    <param name="mappability_status" value="True"/>
+                    <param name="mappability" value="mappability.bigwig" ftype="bigwig"/>
+                    <param name="mappabilityThreshold" value="0.1"/>
+                    <param name="minMappableBases" value="15"/>
+                </conditional>
+            </conditional>
+            <output name="outFileExtractCpG" ftype="bedgraph">
+                <assert_contents>
+                     <has_size value="66"/>
+                </assert_contents>
+            </output> 
+        </test>
+        <!-- Test cytosine report-->
+        <test expect_num_outputs="1">
+            <param name="reference_source_selector" value="history" />
+            <param name="ref_file" value="cg100.fa" ftype="fasta" />
+            <param name="input_sortedAlignBAM" value="cg_aln.bam" ftype="bam"/>
+            <conditional name="main_task">
+                <param name="task" value="extract" />
+                <param name="extract_outputs" value="--cytosine_report" />
+            </conditional>
+            <output name="outFileExtractCpG" ftype="txt">
+                <assert_contents>
+                     <has_size value="2147"/>
+                </assert_contents>
+            </output> 
         </test>
     </tests>
     <help><![CDATA[
 
-.. image:: $PATH_TO_IMAGES/MethylDackelLogo.png
-   :align: left
-
 **What it does**
 
 MethylDackel (formerly named PileOMeth, which was a temporary name derived due to it using a PILEup to extract METHylation metrics) will process a coordinate-sorted and indexed BAM or CRAM file containing some form of BS-seq alignments and extract per-base methylation metrics from them. MethylDackel requires an indexed fasta file containing the reference genome as well.
@@ -450,9 +645,7 @@
 In an ideal experiment, we expect that the probability of observing a methylated C is constant across the length of any given read. In practice, however, there are often increases/decreases in observed methylation rate at the ends of reads and/or more global changes. These are termed methylation bias and including such regions in the extracted methylation metrics will result in noisier and less accurate data. For this reason, users are strongly encouraged to make a methylation bias plot.
 
 That command will create a methylation bias (mbias for short) plot for each of the strands for which there are valid alignments.
-The resulting mbias graphs are in SVG format and can be viewed in most modern web browsers:
-
-.. image:: $PATH_TO_IMAGES/example.svg
+The resulting mbias graphs are in SVG format and can be viewed in most modern web browsers.
 
 
 If you have paired-end data, both reads in the pair will be shown separately, as is the case above. The program will suggest regions for inclusion ("--OT 2,0,0,98" above) and mark them on the plot, if applicable. The format of this output is described in MethylDackel extract -h. These suggestions should not be accepted blindly; users are strongly encouraged to have a look for themselves and tweak the actual bounds as appropriate. The lines indicate the average methylation percentage at a given position and the shaded regions the 99.9% confidence interval around it. This is useful in gauging how many methylation calls a given position has relative to its neighbors. Note the spike in methylation at the end of read #2 and the corresponding dip at the beginning of read #1. This is common and these regions can be ignored with the suggested trimming bounds. Note also that the numbers refer to the first and last base that should be included during methylation extraction, not the last and first base to ignore!.
@@ -490,6 +683,5 @@
 
 .. _MethylDackel: https://github.com/dpryan79/MethylDackel
     ]]></help>
-    <citations>
-    </citations>
+    <expand macro="citations"/>
 </tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Sat Jun 05 09:18:31 2021 +0000
@@ -0,0 +1,32 @@
+<macros>
+    <token name="@TOOL_VERSION@">0.5.2</token>
+    <token name="@GALAXY_TOOL_VERSION@">galaxy0</token>
+    <xml name="edam_ontology">
+        <edam_topics>
+            <edam_topic>topic_3295</edam_topic>
+        </edam_topics>
+        <edam_operations>
+            <edam_operation>operation_3207</edam_operation>
+        </edam_operations>
+    </xml>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="@TOOL_VERSION@">methyldackel</requirement>
+        </requirements>
+    </xml>
+
+    <xml name="citations">
+        <citations>
+            <citation type="bibtex">                                                                   
+                @misc{githubmethyldackel,                                                                   
+                author = {Devon, Ryan},                                                    
+                year = {2021},                                                                 
+                title = {MethylDackel},                                                        
+                publisher = {GitHub},
+                journal = {GitHub repository},                                               
+                url = {https://github.com/dpryan79/MethylDackel},                        
+                }                                                                    
+            </citation>
+        </citations>
+    </xml>
+</macros>
--- a/static/images/example.svg	Fri Aug 24 17:15:24 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,653 +0,0 @@
-<svg height="660" width="660"
-    xmlns="http://www.w3.org/2000/svg"
-    xmlns:xlink="http://www.w3.org/1999/xlink"
-    xmlns:ev="http://www.w3.org/2001/xml-events">
-<title>Original Top Strand</title>
-<rect x="0" y="0" width="660" height="660" fill="white" />
-<text x="330" y="20" text-anchor="middle">Original Top Strand</text>
-<line x1="80" y1="80" x2="80" y2="580" stroke="black" />
-<line x1="80" y1="580" x2="580" y2="580" stroke="black" />
-<text x="15" y="330" transform="rotate(270 15, 330)" text-anchor="middle" dominant-baseline="text-before-edge">CpG Methylation %</text>
-<text x="330" y="620" text-anchor="middle">Position along mapped read (5'->3' of + strand)</text>
-<line x1="80" y1="580" x2="80" y2="585" stroke="black" />
-<text x="80" y="600" text-anchor="middle">0</text>
-<line x1="205.000000" y1="80" x2="205.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="205.000000" y1="580" x2="205.000000" y2="585" stroke="black" />
-<text x="205.000000" y="600" text-anchor="middle">25</text>
-<line x1="330.000000" y1="80" x2="330.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="330.000000" y1="580" x2="330.000000" y2="585" stroke="black" />
-<text x="330.000000" y="600" text-anchor="middle">50</text>
-<line x1="455.000000" y1="80" x2="455.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="455.000000" y1="580" x2="455.000000" y2="585" stroke="black" />
-<text x="455.000000" y="600" text-anchor="middle">75</text>
-<line x1="580.000000" y1="80" x2="580.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="580.000000" y1="580" x2="580.000000" y2="585" stroke="black" />
-<text x="580.000000" y="600" text-anchor="middle">100</text>
-<line x1="80" y1="580.000000" x2="75" y2="580.000000" stroke="black" />
-<text x="55" y="580.000000" text-anchor="middle" dominant-baseline="middle">0.00</text>
-<line x1="80" y1="508.571429" x2="75" y2="508.571429" stroke="black" />
-<text x="55" y="508.571429" text-anchor="middle" dominant-baseline="middle">0.05</text>
-<line x1="80" y1="437.142857" x2="75" y2="437.142857" stroke="black" />
-<text x="55" y="437.142857" text-anchor="middle" dominant-baseline="middle">0.10</text>
-<line x1="80" y1="365.714286" x2="75" y2="365.714286" stroke="black" />
-<text x="55" y="365.714286" text-anchor="middle" dominant-baseline="middle">0.15</text>
-<line x1="80" y1="294.285714" x2="75" y2="294.285714" stroke="black" />
-<text x="55" y="294.285714" text-anchor="middle" dominant-baseline="middle">0.20</text>
-<line x1="80" y1="222.857143" x2="75" y2="222.857143" stroke="black" />
-<text x="55" y="222.857143" text-anchor="middle" dominant-baseline="middle">0.25</text>
-<line x1="80" y1="151.428571" x2="75" y2="151.428571" stroke="black" />
-<text x="55" y="151.428571" text-anchor="middle" dominant-baseline="middle">0.30</text>
-<line x1="80" y1="80.000000" x2="75" y2="80.000000" stroke="black" />
-<text x="55" y="80.000000" text-anchor="middle" dominant-baseline="middle">0.35</text>
-<path d="M 85.000000 220.215318
-  L 90.000000 299.961263
-  L 95.000000 320.212737
-  L 100.000000 300.232053
-  L 105.000000 300.479717
-  L 110.000000 283.312780
-  L 115.000000 316.080490
-  L 120.000000 313.034416
-  L 125.000000 290.520854
-  L 130.000000 302.029102
-  L 135.000000 290.250188
-  L 140.000000 311.984847
-  L 145.000000 320.921035
-  L 150.000000 311.168011
-  L 155.000000 310.209516
-  L 160.000000 297.571641
-  L 165.000000 293.944620
-  L 170.000000 293.853322
-  L 175.000000 297.182924
-  L 180.000000 304.190904
-  L 185.000000 302.233141
-  L 190.000000 317.026718
-  L 195.000000 303.414620
-  L 200.000000 306.681984
-  L 205.000000 303.408463
-  L 210.000000 302.854023
-  L 215.000000 296.800547
-  L 220.000000 283.177874
-  L 225.000000 306.765239
-  L 230.000000 293.634017
-  L 235.000000 309.381584
-  L 240.000000 333.801271
-  L 245.000000 298.970595
-  L 250.000000 301.524096
-  L 255.000000 304.284754
-  L 260.000000 300.677919
-  L 265.000000 287.230152
-  L 270.000000 323.674252
-  L 275.000000 305.934302
-  L 280.000000 330.646841
-  L 285.000000 299.457181
-  L 290.000000 300.372766
-  L 295.000000 305.479869
-  L 300.000000 329.243254
-  L 305.000000 304.263685
-  L 310.000000 329.769575
-  L 315.000000 303.679101
-  L 320.000000 317.418085
-  L 325.000000 302.759696
-  L 330.000000 329.154842
-  L 335.000000 293.856671
-  L 340.000000 320.769696
-  L 345.000000 306.587958
-  L 350.000000 315.047548
-  L 355.000000 310.169953
-  L 360.000000 307.327008
-  L 365.000000 300.524187
-  L 370.000000 305.007639
-  L 375.000000 290.884795
-  L 380.000000 317.199589
-  L 385.000000 294.883460
-  L 390.000000 306.106110
-  L 395.000000 307.048885
-  L 400.000000 306.901489
-  L 405.000000 316.584330
-  L 410.000000 320.589166
-  L 415.000000 286.320429
-  L 420.000000 293.463520
-  L 425.000000 289.705732
-  L 430.000000 283.812955
-  L 435.000000 293.058381
-  L 440.000000 289.277551
-  L 445.000000 286.251995
-  L 450.000000 314.761985
-  L 455.000000 317.252077
-  L 460.000000 290.849314
-  L 465.000000 286.802068
-  L 470.000000 306.048592
-  L 475.000000 321.381441
-  L 480.000000 311.592109
-  L 485.000000 306.048592
-  L 490.000000 302.812468
-  L 495.000000 323.239270
-  L 500.000000 332.302062
-  L 505.000000 317.991105
-  L 510.000000 320.214875
-  L 515.000000 305.461315
-  L 520.000000 306.560120
-  L 525.000000 329.777863
-  L 530.000000 298.318875
-  L 535.000000 339.652723
-  L 540.000000 315.294616
-  L 545.000000 329.276151
-  L 550.000000 326.245994
-  L 555.000000 311.426851
-  L 560.000000 318.926930
-  L 565.000000 312.574963
-  L 570.000000 309.989147
-  L 575.000000 299.516872
-  L 580.000000 316.885061
-  L 580.000000 221.593613
-  L 575.000000 206.843683
-  L 570.000000 221.184400
-  L 565.000000 222.403502
-  L 560.000000 232.019085
-  L 555.000000 223.138051
-  L 550.000000 240.107017
-  L 545.000000 243.039207
-  L 540.000000 230.869233
-  L 535.000000 257.418627
-  L 530.000000 210.797149
-  L 525.000000 246.626641
-  L 520.000000 221.805142
-  L 515.000000 218.184865
-  L 510.000000 236.375374
-  L 505.000000 234.187716
-  L 500.000000 251.485313
-  L 495.000000 238.807694
-  L 490.000000 218.100704
-  L 485.000000 221.968487
-  L 480.000000 227.847615
-  L 475.000000 239.223997
-  L 470.000000 221.968487
-  L 465.000000 201.488981
-  L 460.000000 206.970793
-  L 455.000000 234.700483
-  L 450.000000 231.344497
-  L 445.000000 200.806463
-  L 440.000000 204.376284
-  L 435.000000 208.611300
-  L 430.000000 198.246937
-  L 425.000000 206.092307
-  L 420.000000 209.671228
-  L 415.000000 201.809039
-  L 410.000000 239.423678
-  L 405.000000 234.654642
-  L 400.000000 226.676212
-  L 395.000000 223.816666
-  L 390.000000 221.639703
-  L 385.000000 210.224641
-  L 380.000000 235.333480
-  L 375.000000 208.256737
-  L 370.000000 221.930227
-  L 365.000000 218.097709
-  L 360.000000 223.477258
-  L 355.000000 227.448863
-  L 350.000000 234.720116
-  L 345.000000 224.290156
-  L 340.000000 239.256205
-  L 335.000000 210.433679
-  L 330.000000 248.805009
-  L 325.000000 220.338008
-  L 320.000000 235.904038
-  L 315.000000 221.670229
-  L 310.000000 251.059644
-  L 305.000000 221.093348
-  L 300.000000 248.305428
-  L 295.000000 222.995900
-  L 290.000000 216.604163
-  L 285.000000 215.839085
-  L 280.000000 251.005620
-  L 275.000000 222.611198
-  L 270.000000 243.717429
-  L 265.000000 204.514232
-  L 260.000000 217.551736
-  L 255.000000 221.215115
-  L 250.000000 218.887029
-  L 245.000000 216.794105
-  L 240.000000 253.403692
-  L 235.000000 228.618760
-  L 230.000000 209.140464
-  L 225.000000 225.617376
-  L 220.000000 198.816658
-  L 215.000000 214.362782
-  L 210.000000 221.806635
-  L 205.000000 221.240543
-  L 200.000000 224.219513
-  L 195.000000 221.793661
-  L 190.000000 235.798021
-  L 185.000000 218.645518
-  L 180.000000 222.941463
-  L 175.000000 215.801517
-  L 170.000000 211.234954
-  L 165.000000 210.177762
-  L 160.000000 214.691688
-  L 155.000000 227.981589
-  L 150.000000 228.704965
-  L 145.000000 239.247971
-  L 140.000000 228.546336
-  L 135.000000 208.158783
-  L 130.000000 219.517642
-  L 125.000000 209.411375
-  L 120.000000 232.190896
-  L 115.000000 231.546228
-  L 110.000000 198.983245
-  L 105.000000 217.490471
-  L 100.000000 218.005585
-  L 95.000000 242.021067
-  L 90.000000 210.082554
-  L 85.000000 140.576281
-Z" fill="rgb(248,118,109)" fill-opacity="0.2"/>
-<path d="M 85.000000 317.497119
-  L 90.000000 323.125444
-  L 95.000000 321.057367
-  L 100.000000 325.123264
-  L 105.000000 326.487558
-  L 110.000000 328.773575
-  L 115.000000 313.996694
-  L 120.000000 298.135398
-  L 125.000000 311.962757
-  L 130.000000 326.702598
-  L 135.000000 318.509472
-  L 140.000000 304.871048
-  L 145.000000 317.545475
-  L 150.000000 304.204132
-  L 155.000000 318.248816
-  L 160.000000 312.443039
-  L 165.000000 309.846191
-  L 170.000000 308.455469
-  L 175.000000 323.233975
-  L 180.000000 315.795226
-  L 185.000000 297.119341
-  L 190.000000 310.303111
-  L 195.000000 329.895694
-  L 200.000000 304.880406
-  L 205.000000 324.998405
-  L 210.000000 312.780257
-  L 215.000000 313.630941
-  L 220.000000 311.820928
-  L 225.000000 299.578269
-  L 230.000000 310.139651
-  L 235.000000 307.656063
-  L 240.000000 319.752339
-  L 245.000000 298.496672
-  L 250.000000 306.098721
-  L 255.000000 313.999520
-  L 260.000000 286.950656
-  L 265.000000 313.270842
-  L 270.000000 309.038234
-  L 275.000000 301.081124
-  L 280.000000 299.649495
-  L 285.000000 298.203346
-  L 290.000000 317.973002
-  L 295.000000 327.770665
-  L 300.000000 315.328585
-  L 305.000000 293.207635
-  L 310.000000 320.746127
-  L 315.000000 311.329119
-  L 320.000000 323.815302
-  L 325.000000 318.168638
-  L 330.000000 281.356594
-  L 335.000000 302.440401
-  L 340.000000 311.179469
-  L 345.000000 324.729866
-  L 350.000000 295.210169
-  L 355.000000 293.900983
-  L 360.000000 318.585073
-  L 365.000000 314.586213
-  L 370.000000 317.805857
-  L 375.000000 313.380628
-  L 380.000000 295.567958
-  L 385.000000 307.113832
-  L 390.000000 315.636799
-  L 395.000000 326.350575
-  L 400.000000 311.597746
-  L 405.000000 307.936874
-  L 410.000000 316.395608
-  L 415.000000 308.466493
-  L 420.000000 289.762607
-  L 425.000000 326.239694
-  L 430.000000 301.409348
-  L 435.000000 305.843641
-  L 440.000000 303.578685
-  L 445.000000 296.248913
-  L 450.000000 329.332296
-  L 455.000000 301.651090
-  L 460.000000 340.050779
-  L 465.000000 340.449290
-  L 470.000000 336.979889
-  L 475.000000 288.492520
-  L 480.000000 324.643142
-  L 485.000000 299.287449
-  L 490.000000 308.948892
-  L 495.000000 330.313763
-  L 500.000000 282.968801
-  L 505.000000 337.026442
-  L 510.000000 331.812563
-  L 515.000000 318.995575
-  L 520.000000 308.368128
-  L 525.000000 346.266378
-  L 530.000000 333.294488
-  L 535.000000 322.220073
-  L 540.000000 327.246589
-  L 545.000000 321.939803
-  L 550.000000 315.090538
-  L 555.000000 320.619038
-  L 560.000000 327.519663
-  L 565.000000 334.482153
-  L 570.000000 332.350768
-  L 575.000000 482.090953
-  L 580.000000 513.933441
-  L 580.000000 471.718208
-  L 575.000000 428.714343
-  L 570.000000 241.378663
-  L 565.000000 249.036418
-  L 560.000000 247.523104
-  L 555.000000 233.592913
-  L 550.000000 233.549023
-  L 545.000000 233.565244
-  L 540.000000 242.111369
-  L 535.000000 239.669766
-  L 530.000000 251.143075
-  L 525.000000 265.758417
-  L 520.000000 224.886794
-  L 515.000000 234.277101
-  L 510.000000 248.678239
-  L 505.000000 255.278476
-  L 500.000000 195.290206
-  L 495.000000 248.942439
-  L 490.000000 225.119670
-  L 485.000000 213.167090
-  L 480.000000 241.156429
-  L 475.000000 202.549743
-  L 470.000000 256.529393
-  L 465.000000 259.802175
-  L 460.000000 259.177810
-  L 455.000000 215.829707
-  L 450.000000 247.793410
-  L 445.000000 212.953535
-  L 440.000000 220.042982
-  L 435.000000 221.309294
-  L 430.000000 217.900727
-  L 425.000000 245.093496
-  L 420.000000 203.453159
-  L 415.000000 226.831092
-  L 410.000000 233.412755
-  L 405.000000 224.932447
-  L 400.000000 227.956354
-  L 395.000000 244.824162
-  L 390.000000 232.655925
-  L 385.000000 225.136192
-  L 380.000000 213.798493
-  L 375.000000 230.807396
-  L 370.000000 236.099815
-  L 365.000000 233.768518
-  L 360.000000 237.668615
-  L 355.000000 210.031441
-  L 350.000000 211.660536
-  L 345.000000 244.957806
-  L 340.000000 228.912985
-  L 335.000000 218.712978
-  L 330.000000 194.925344
-  L 325.000000 237.715367
-  L 320.000000 244.277439
-  L 315.000000 229.579380
-  L 310.000000 241.522595
-  L 305.000000 209.898570
-  L 300.000000 233.945167
-  L 295.000000 246.633716
-  L 290.000000 238.214730
-  L 285.000000 215.112811
-  L 280.000000 216.267294
-  L 275.000000 218.973530
-  L 270.000000 226.024984
-  L 265.000000 232.114511
-  L 260.000000 202.317643
-  L 255.000000 231.784864
-  L 250.000000 225.849711
-  L 245.000000 215.934238
-  L 240.000000 239.238446
-  L 235.000000 224.384609
-  L 230.000000 228.556582
-  L 225.000000 216.735113
-  L 220.000000 230.292048
-  L 215.000000 231.709656
-  L 210.000000 231.023343
-  L 205.000000 245.584408
-  L 200.000000 221.770724
-  L 195.000000 250.247824
-  L 190.000000 229.317486
-  L 185.000000 213.296966
-  L 180.000000 234.819198
-  L 175.000000 243.063837
-  L 170.000000 226.724297
-  L 165.000000 227.620654
-  L 160.000000 231.725663
-  L 155.000000 237.050657
-  L 150.000000 223.575956
-  L 145.000000 237.305803
-  L 140.000000 222.327402
-  L 135.000000 238.239274
-  L 130.000000 244.856654
-  L 125.000000 231.030653
-  L 120.000000 214.843567
-  L 115.000000 232.266974
-  L 110.000000 249.116546
-  L 105.000000 246.605001
-  L 100.000000 243.876734
-  L 95.000000 239.320323
-  L 90.000000 242.340935
-  L 85.000000 233.346725
-Z" fill="rgb(0,191,196)" fill-opacity="0.2"/>
-<path d="M 85.000000 181.613974
-  L 90.000000 257.226539
-  L 95.000000 283.005940
-  L 100.000000 260.998613
-  L 105.000000 260.898876
-  L 110.000000 242.964381
-  L 115.000000 275.945946
-  L 120.000000 274.550940
-  L 125.000000 251.717172
-  L 130.000000 262.681279
-  L 135.000000 250.991944
-  L 140.000000 272.307692
-  L 145.000000 282.135998
-  L 150.000000 271.927727
-  L 155.000000 271.067398
-  L 160.000000 258.014636
-  L 165.000000 253.948064
-  L 170.000000 254.383587
-  L 175.000000 258.310516
-  L 180.000000 265.440756
-  L 185.000000 262.394458
-  L 190.000000 278.405584
-  L 195.000000 264.487292
-  L 200.000000 267.399498
-  L 205.000000 264.230550
-  L 210.000000 264.184555
-  L 215.000000 257.439638
-  L 220.000000 242.813717
-  L 225.000000 268.084841
-  L 230.000000 253.301034
-  L 235.000000 270.901175
-  L 240.000000 295.726731
-  L 245.000000 259.748823
-  L 250.000000 262.114133
-  L 255.000000 264.702219
-  L 260.000000 261.036149
-  L 265.000000 247.658730
-  L 270.000000 285.696602
-  L 275.000000 266.251392
-  L 280.000000 292.882026
-  L 285.000000 259.578838
-  L 290.000000 260.433930
-  L 295.000000 266.176357
-  L 300.000000 290.876549
-  L 305.000000 264.634892
-  L 310.000000 292.418301
-  L 315.000000 264.576485
-  L 320.000000 278.670796
-  L 325.000000 263.459652
-  L 330.000000 291.053652
-  L 335.000000 254.017258
-  L 340.000000 282.055686
-  L 345.000000 267.379885
-  L 350.000000 276.818465
-  L 355.000000 270.802348
-  L 360.000000 267.416866
-  L 365.000000 261.201673
-  L 370.000000 265.428311
-  L 375.000000 251.384922
-  L 380.000000 278.289876
-  L 385.000000 254.486031
-  L 390.000000 265.902610
-  L 395.000000 267.418087
-  L 400.000000 268.644689
-  L 405.000000 277.639638
-  L 410.000000 282.031603
-  L 415.000000 245.914221
-  L 420.000000 253.450985
-  L 425.000000 249.742284
-  L 430.000000 242.899198
-  L 435.000000 252.741525
-  L 440.000000 248.718083
-  L 445.000000 245.415267
-  L 450.000000 275.121951
-  L 455.000000 278.030924
-  L 460.000000 250.773970
-  L 465.000000 246.031162
-  L 470.000000 266.020932
-  L 475.000000 282.380952
-  L 480.000000 271.771643
-  L 485.000000 266.020932
-  L 490.000000 262.465091
-  L 495.000000 283.226710
-  L 500.000000 294.022140
-  L 505.000000 278.208325
-  L 510.000000 280.438717
-  L 515.000000 263.969684
-  L 520.000000 266.229330
-  L 525.000000 290.415371
-  L 530.000000 256.643317
-  L 535.000000 300.813945
-  L 540.000000 275.201483
-  L 545.000000 288.515203
-  L 550.000000 285.494505
-  L 555.000000 269.537641
-  L 560.000000 277.745902
-  L 565.000000 269.844536
-  L 570.000000 267.850049
-  L 575.000000 255.504551
-  L 580.000000 271.893768
-" stroke="rgb(248,118,109)" stroke-width="2" fill-opacity="0"/>
-<path d="M 85.000000 277.551608
-  L 90.000000 284.766193
-  L 95.000000 282.244617
-  L 100.000000 286.574304
-  L 105.000000 288.571429
-  L 110.000000 290.982659
-  L 115.000000 275.118029
-  L 120.000000 258.394546
-  L 125.000000 273.428823
-  L 130.000000 287.898064
-  L 135.000000 280.339239
-  L 140.000000 265.534591
-  L 145.000000 279.379971
-  L 150.000000 265.738790
-  L 155.000000 279.653446
-  L 160.000000 274.011639
-  L 165.000000 270.701720
-  L 170.000000 269.523810
-  L 175.000000 285.155031
-  L 180.000000 277.277401
-  L 185.000000 257.125966
-  L 190.000000 271.729323
-  L 195.000000 292.120247
-  L 200.000000 265.285129
-  L 205.000000 287.280460
-  L 210.000000 273.877551
-  L 215.000000 274.661416
-  L 220.000000 273.013184
-  L 225.000000 260.056198
-  L 230.000000 271.291368
-  L 235.000000 268.013136
-  L 240.000000 281.483078
-  L 245.000000 259.093614
-  L 250.000000 267.823913
-  L 255.000000 274.899818
-  L 260.000000 246.493977
-  L 265.000000 274.646817
-  L 270.000000 269.526430
-  L 275.000000 261.909801
-  L 280.000000 259.881006
-  L 285.000000 258.555420
-  L 290.000000 280.030989
-  L 295.000000 289.298510
-  L 300.000000 276.620584
-  L 305.000000 253.414820
-  L 310.000000 283.073985
-  L 315.000000 272.415910
-  L 320.000000 286.029522
-  L 325.000000 279.911739
-  L 330.000000 240.022665
-  L 335.000000 262.539683
-  L 340.000000 272.028986
-  L 345.000000 286.846552
-  L 350.000000 255.324675
-  L 355.000000 253.856885
-  L 360.000000 280.121228
-  L 365.000000 276.129114
-  L 370.000000 278.974958
-  L 375.000000 274.111482
-  L 380.000000 256.503272
-  L 385.000000 268.057041
-  L 390.000000 276.204215
-  L 395.000000 287.687232
-  L 400.000000 271.824320
-  L 405.000000 268.418577
-  L 410.000000 276.969697
-  L 415.000000 269.578714
-  L 420.000000 248.560606
-  L 425.000000 287.747630
-  L 430.000000 261.599167
-  L 435.000000 265.606571
-  L 440.000000 263.776352
-  L 445.000000 256.489430
-  L 450.000000 290.694334
-  L 455.000000 260.785337
-  L 460.000000 301.829326
-  L 465.000000 302.334004
-  L 470.000000 298.915344
-  L 475.000000 247.447307
-  L 480.000000 285.073560
-  L 485.000000 258.262065
-  L 490.000000 269.063855
-  L 495.000000 291.761971
-  L 500.000000 241.075210
-  L 505.000000 298.377088
-  L 510.000000 292.480033
-  L 515.000000 278.807781
-  L 520.000000 268.636213
-  L 525.000000 308.279329
-  L 530.000000 294.422028
-  L 535.000000 283.049759
-  L 540.000000 286.959707
-  L 545.000000 280.129386
-  L 550.000000 276.308186
-  L 555.000000 279.403227
-  L 560.000000 289.562109
-  L 565.000000 294.138363
-  L 570.000000 289.499051
-  L 575.000000 457.999187
-  L 580.000000 495.224302
-" stroke="rgb(0,191,196)" stroke-width="2" fill-opacity="0"/>
-<text x="650" y="650" text-anchor="end">--OT 2,0,0,98</text>
-<line x1="90.000000" y1="580" x2="90.000000" y2="80" stroke-dasharray="5 1" stroke="rgb(248,118,109)" stroke-width="1" />
-<line x1="570.000000" y1="580" x2="570.000000" y2="80" stroke-dasharray="5 1" stroke="rgb(0,191,196)" stroke-width="1" />
-<rect x="590" y="310" width="20" height="20" fill="rgb(248,118,109)" />
-<text x="615" y="320" text-anchor="start" dominant-baseline="middle">#1</text>
-<rect x="590" y="330" width="20" height="20" fill="rgb(0,191,196)" />
-<text x="615" y="340" text-anchor="start" dominant-baseline="middle">#2</text>
-</svg>
Binary file test-data/mappability.bigwig has changed
--- a/test-data/test7_output.tsv	Fri Aug 24 17:15:24 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-Strand	Read	Position	nMethylated	nUnmethylated
-OT	1	1	1	0
-OT	2	1	1	0
-OT	1	3	1	0
-OT	2	3	1	0
-OT	1	5	1	0
-OT	2	5	1	0
-OT	1	7	1	0
-OT	2	7	1	0
-OT	1	9	1	0
-OT	2	9	1	0
-OT	1	11	1	0
-OT	2	11	1	0
-OT	1	13	1	0
-OT	2	13	1	0
-OT	1	15	1	0
-OT	2	15	1	0
-OT	1	17	0	1
-OT	2	17	1	0
-OT	1	19	1	0
-OT	2	19	1	0
-OT	1	21	1	0
-OT	2	21	1	0
-OT	1	23	1	0
-OT	2	23	1	0
-OT	1	25	1	0
-OT	2	25	1	0
-OT	1	27	1	0
-OT	2	27	1	0
-OT	1	29	1	0
-OT	2	29	1	0
-OT	1	31	1	0
-OT	2	31	1	0
-OT	1	33	1	0
-OT	2	33	1	0
-OT	1	35	1	0
-OT	2	35	1	0
-OT	1	37	1	0
-OT	2	37	1	0
-OT	1	39	1	0
-OT	2	39	1	0
-OT	1	41	1	0
-OT	2	41	1	0
-OT	1	43	1	0
-OT	2	43	1	0
-OT	1	45	1	0
-OT	2	45	1	0
-OT	1	47	1	0
-OT	2	47	1	0
-OT	1	49	1	0
-OT	2	49	1	0
-OT	1	51	1	0
-OT	2	51	1	0
-OT	1	53	1	0
-OT	2	53	1	0
-OT	1	55	1	0
-OT	2	55	1	0
-OT	1	57	1	0
-OT	2	57	1	0
-OT	1	59	1	0
-OT	2	59	1	0
-OT	1	61	1	0
-OT	2	61	1	0
-OT	1	63	1	0
-OT	2	63	1	0
-OT	1	65	1	0
-OT	2	65	1	0
-OT	1	67	1	0
-OT	2	67	1	0
-OT	1	69	1	0
-OT	2	69	1	0
-OT	1	71	1	0
-OT	2	71	1	0
-OT	1	73	1	0
-OT	2	73	1	0
-OT	1	75	1	0
-OT	2	75	1	0
-OT	1	77	1	0
-OT	2	77	1	0
-OT	1	79	1	0
-OT	2	79	1	0
-OT	1	81	1	0
-OT	2	81	1	0
-OT	1	83	1	0
-OT	2	83	1	0
-OT	1	85	1	0
-OT	2	85	1	0
-OT	1	87	1	0
-OT	2	87	1	0
-OT	1	89	1	0
-OT	2	89	1	0
-OT	1	91	1	0
-OT	2	91	1	0
-OT	1	93	1	0
-OT	2	93	1	0
-OT	1	95	1	0
-OT	2	95	1	0
-OT	1	97	1	0
-OT	2	97	1	0
--- a/test-data/test8_output.tsv	Fri Aug 24 17:15:24 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-Strand	Read	Position	nMethylated	nUnmethylated
-OT	1	11	1	0
-OT	2	11	1	0
-OT	1	13	1	0
-OT	2	13	1	0
-OT	1	15	1	0
-OT	2	15	1	0
-OT	1	17	0	1
-OT	2	17	1	0
-OT	1	19	1	0
-OT	2	19	1	0
-OT	1	21	1	0
-OT	2	21	1	0
-OT	1	23	1	0
-OT	2	23	1	0
-OT	1	25	1	0
-OT	2	25	1	0
-OT	1	27	1	0
-OT	2	27	1	0
-OT	1	29	1	0
-OT	2	29	1	0
-OT	1	31	1	0
-OT	2	31	1	0
-OT	1	33	1	0
-OT	2	33	1	0
-OT	1	35	1	0
-OT	2	35	1	0
-OT	1	37	1	0
-OT	2	37	1	0
-OT	1	39	1	0
-OT	2	39	1	0
-OT	1	41	1	0
-OT	2	41	1	0
-OT	1	43	1	0
-OT	2	43	1	0
-OT	1	45	1	0
-OT	2	45	1	0
-OT	1	47	1	0
-OT	2	47	1	0
-OT	1	49	1	0
-OT	2	49	1	0
-OT	1	51	1	0
-OT	2	51	1	0
-OT	1	53	1	0
-OT	2	53	1	0
-OT	1	55	1	0
-OT	2	55	1	0
-OT	1	57	1	0
-OT	2	57	1	0
-OT	1	59	1	0
-OT	2	59	1	0
-OT	1	61	1	0
-OT	2	61	1	0
-OT	1	63	1	0
-OT	2	63	1	0
-OT	1	65	1	0
-OT	2	65	1	0
-OT	1	67	1	0
-OT	2	67	1	0
-OT	1	69	1	0
-OT	2	69	1	0
-OT	1	71	1	0
-OT	2	71	1	0
-OT	1	73	1	0
-OT	2	73	1	0
-OT	1	75	1	0
-OT	2	75	1	0
-OT	1	77	1	0
-OT	2	77	1	0
-OT	1	79	1	0
-OT	2	79	1	0
-OT	1	81	1	0
-OT	2	81	1	0
-OT	1	83	1	0
-OT	2	83	1	0
-OT	1	85	1	0
-OT	2	85	1	0
-OT	1	87	1	0
-OT	2	87	1	0
-OT	1	89	1	0
-OT	2	89	1	0
--- a/test-data/test_1.bedGraph	Fri Aug 24 17:15:24 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-track type="bedGraph" description="output CpG methylation levels"
-chrCG	0	1	100	1	0
-chrCG	2	3	100	1	0
-chrCG	4	5	100	1	0
-chrCG	6	7	100	1	0
-chrCG	8	9	100	1	0
-chrCG	10	11	100	1	0
-chrCG	12	13	100	1	0
-chrCG	14	15	100	1	0
-chrCG	18	19	100	1	0
-chrCG	20	21	100	1	0
-chrCG	22	23	100	1	0
-chrCG	24	25	100	1	0
-chrCG	26	27	100	1	0
-chrCG	28	29	100	1	0
-chrCG	30	31	100	1	0
-chrCG	32	33	100	1	0
-chrCG	34	35	100	1	0
-chrCG	36	37	100	1	0
-chrCG	38	39	100	1	0
-chrCG	40	41	100	1	0
-chrCG	42	43	100	1	0
-chrCG	44	45	100	1	0
-chrCG	46	47	100	1	0
-chrCG	48	49	100	1	0
-chrCG	50	51	100	1	0
-chrCG	52	53	100	1	0
-chrCG	54	55	100	1	0
-chrCG	56	57	100	1	0
-chrCG	58	59	100	1	0
-chrCG	60	61	100	1	0
-chrCG	62	63	100	1	0
-chrCG	64	65	100	1	0
-chrCG	66	67	100	1	0
-chrCG	68	69	100	1	0
-chrCG	70	71	100	1	0
-chrCG	72	73	100	1	0
-chrCG	74	75	100	1	0
-chrCG	76	77	100	1	0
-chrCG	78	79	100	1	0
-chrCG	80	81	100	1	0
-chrCG	82	83	100	1	0
-chrCG	84	85	100	1	0
-chrCG	86	87	100	1	0
-chrCG	88	89	100	1	0
-chrCG	90	91	100	1	0
-chrCG	92	93	100	1	0
-chrCG	94	95	100	1	0
-chrCG	96	97	100	1	0
--- a/test-data/test_2.bedGraph	Fri Aug 24 17:15:24 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-track type="bedGraph" description="output CHH methylation levels"
-chrCG	98	99	100	1	0
--- a/test-data/test_2_output.svg	Fri Aug 24 17:15:24 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,390 +0,0 @@
-<svg height="660" width="660"
-    xmlns="http://www.w3.org/2000/svg"
-    xmlns:xlink="http://www.w3.org/1999/xlink"
-    xmlns:ev="http://www.w3.org/2001/xml-events">
-<title>Original Top Strand</title>
-<rect x="0" y="0" width="660" height="660" fill="white" />
-<text x="330" y="20" text-anchor="middle">Original Top Strand</text>
-<line x1="80" y1="80" x2="80" y2="580" stroke="black" />
-<line x1="80" y1="580" x2="580" y2="580" stroke="black" />
-<text x="15" y="330" transform="rotate(270 15, 330)" text-anchor="middle" dominant-baseline="text-before-edge">CpG Methylation %</text>
-<text x="330" y="620" text-anchor="middle">Position along mapped read (5'->3' of + strand)</text>
-<line x1="80" y1="580" x2="80" y2="585" stroke="black" />
-<text x="80" y="600" text-anchor="middle">0</text>
-<line x1="130.000000" y1="80" x2="130.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="130.000000" y1="580" x2="130.000000" y2="585" stroke="black" />
-<text x="130.000000" y="600" text-anchor="middle">10</text>
-<line x1="180.000000" y1="80" x2="180.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="180.000000" y1="580" x2="180.000000" y2="585" stroke="black" />
-<text x="180.000000" y="600" text-anchor="middle">20</text>
-<line x1="230.000000" y1="80" x2="230.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="230.000000" y1="580" x2="230.000000" y2="585" stroke="black" />
-<text x="230.000000" y="600" text-anchor="middle">30</text>
-<line x1="280.000000" y1="80" x2="280.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="280.000000" y1="580" x2="280.000000" y2="585" stroke="black" />
-<text x="280.000000" y="600" text-anchor="middle">40</text>
-<line x1="330.000000" y1="80" x2="330.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="330.000000" y1="580" x2="330.000000" y2="585" stroke="black" />
-<text x="330.000000" y="600" text-anchor="middle">50</text>
-<line x1="380.000000" y1="80" x2="380.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="380.000000" y1="580" x2="380.000000" y2="585" stroke="black" />
-<text x="380.000000" y="600" text-anchor="middle">60</text>
-<line x1="430.000000" y1="80" x2="430.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="430.000000" y1="580" x2="430.000000" y2="585" stroke="black" />
-<text x="430.000000" y="600" text-anchor="middle">70</text>
-<line x1="480.000000" y1="80" x2="480.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="480.000000" y1="580" x2="480.000000" y2="585" stroke="black" />
-<text x="480.000000" y="600" text-anchor="middle">80</text>
-<line x1="530.000000" y1="80" x2="530.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="530.000000" y1="580" x2="530.000000" y2="585" stroke="black" />
-<text x="530.000000" y="600" text-anchor="middle">90</text>
-<line x1="580.000000" y1="80" x2="580.000000" y2="580" stroke-dasharray="5 5" stroke="grey" />
-<line x1="580.000000" y1="580" x2="580.000000" y2="585" stroke="black" />
-<text x="580.000000" y="600" text-anchor="middle">100</text>
-<line x1="80" y1="580.000000" x2="75" y2="580.000000" stroke="black" />
-<text x="55" y="580.000000" text-anchor="middle" dominant-baseline="middle">0.00</text>
-<line x1="80" y1="555.000000" x2="75" y2="555.000000" stroke="black" />
-<text x="55" y="555.000000" text-anchor="middle" dominant-baseline="middle">0.05</text>
-<line x1="80" y1="530.000000" x2="75" y2="530.000000" stroke="black" />
-<text x="55" y="530.000000" text-anchor="middle" dominant-baseline="middle">0.10</text>
-<line x1="80" y1="505.000000" x2="75" y2="505.000000" stroke="black" />
-<text x="55" y="505.000000" text-anchor="middle" dominant-baseline="middle">0.15</text>
-<line x1="80" y1="480.000000" x2="75" y2="480.000000" stroke="black" />
-<text x="55" y="480.000000" text-anchor="middle" dominant-baseline="middle">0.20</text>
-<line x1="80" y1="455.000000" x2="75" y2="455.000000" stroke="black" />
-<text x="55" y="455.000000" text-anchor="middle" dominant-baseline="middle">0.25</text>
-<line x1="80" y1="430.000000" x2="75" y2="430.000000" stroke="black" />
-<text x="55" y="430.000000" text-anchor="middle" dominant-baseline="middle">0.30</text>
-<line x1="80" y1="405.000000" x2="75" y2="405.000000" stroke="black" />
-<text x="55" y="405.000000" text-anchor="middle" dominant-baseline="middle">0.35</text>
-<line x1="80" y1="380.000000" x2="75" y2="380.000000" stroke="black" />
-<text x="55" y="380.000000" text-anchor="middle" dominant-baseline="middle">0.40</text>
-<line x1="80" y1="355.000000" x2="75" y2="355.000000" stroke="black" />
-<text x="55" y="355.000000" text-anchor="middle" dominant-baseline="middle">0.45</text>
-<line x1="80" y1="330.000000" x2="75" y2="330.000000" stroke="black" />
-<text x="55" y="330.000000" text-anchor="middle" dominant-baseline="middle">0.50</text>
-<line x1="80" y1="305.000000" x2="75" y2="305.000000" stroke="black" />
-<text x="55" y="305.000000" text-anchor="middle" dominant-baseline="middle">0.55</text>
-<line x1="80" y1="280.000000" x2="75" y2="280.000000" stroke="black" />
-<text x="55" y="280.000000" text-anchor="middle" dominant-baseline="middle">0.60</text>
-<line x1="80" y1="255.000000" x2="75" y2="255.000000" stroke="black" />
-<text x="55" y="255.000000" text-anchor="middle" dominant-baseline="middle">0.65</text>
-<line x1="80" y1="230.000000" x2="75" y2="230.000000" stroke="black" />
-<text x="55" y="230.000000" text-anchor="middle" dominant-baseline="middle">0.70</text>
-<line x1="80" y1="205.000000" x2="75" y2="205.000000" stroke="black" />
-<text x="55" y="205.000000" text-anchor="middle" dominant-baseline="middle">0.75</text>
-<line x1="80" y1="180.000000" x2="75" y2="180.000000" stroke="black" />
-<text x="55" y="180.000000" text-anchor="middle" dominant-baseline="middle">0.80</text>
-<line x1="80" y1="155.000000" x2="75" y2="155.000000" stroke="black" />
-<text x="55" y="155.000000" text-anchor="middle" dominant-baseline="middle">0.85</text>
-<line x1="80" y1="130.000000" x2="75" y2="130.000000" stroke="black" />
-<text x="55" y="130.000000" text-anchor="middle" dominant-baseline="middle">0.90</text>
-<line x1="80" y1="105.000000" x2="75" y2="105.000000" stroke="black" />
-<text x="55" y="105.000000" text-anchor="middle" dominant-baseline="middle">0.95</text>
-<line x1="80" y1="80.000000" x2="75" y2="80.000000" stroke="black" />
-<text x="55" y="80.000000" text-anchor="middle" dominant-baseline="middle">1.00</text>
-<path d="M 85.000000 547.204569
-  L 95.000000 547.204569
-  L 105.000000 547.204569
-  L 115.000000 547.204569
-  L 125.000000 547.204569
-  L 135.000000 547.204569
-  L 145.000000 547.204569
-  L 155.000000 547.204569
-  L 165.000000 589.478693
-  L 175.000000 547.204569
-  L 185.000000 547.204569
-  L 195.000000 547.204569
-  L 205.000000 547.204569
-  L 215.000000 547.204569
-  L 225.000000 547.204569
-  L 235.000000 547.204569
-  L 245.000000 547.204569
-  L 255.000000 547.204569
-  L 265.000000 547.204569
-  L 275.000000 547.204569
-  L 285.000000 547.204569
-  L 295.000000 547.204569
-  L 305.000000 547.204569
-  L 315.000000 547.204569
-  L 325.000000 547.204569
-  L 335.000000 547.204569
-  L 345.000000 547.204569
-  L 355.000000 547.204569
-  L 365.000000 547.204569
-  L 375.000000 547.204569
-  L 385.000000 547.204569
-  L 395.000000 547.204569
-  L 405.000000 547.204569
-  L 415.000000 547.204569
-  L 425.000000 547.204569
-  L 435.000000 547.204569
-  L 445.000000 547.204569
-  L 455.000000 547.204569
-  L 465.000000 547.204569
-  L 475.000000 547.204569
-  L 485.000000 547.204569
-  L 495.000000 547.204569
-  L 505.000000 547.204569
-  L 515.000000 547.204569
-  L 525.000000 547.204569
-  L 535.000000 547.204569
-  L 545.000000 547.204569
-  L 555.000000 547.204569
-  L 565.000000 547.204569
-  L 565.000000 70.521307
-  L 555.000000 70.521307
-  L 545.000000 70.521307
-  L 535.000000 70.521307
-  L 525.000000 70.521307
-  L 515.000000 70.521307
-  L 505.000000 70.521307
-  L 495.000000 70.521307
-  L 485.000000 70.521307
-  L 475.000000 70.521307
-  L 465.000000 70.521307
-  L 455.000000 70.521307
-  L 445.000000 70.521307
-  L 435.000000 70.521307
-  L 425.000000 70.521307
-  L 415.000000 70.521307
-  L 405.000000 70.521307
-  L 395.000000 70.521307
-  L 385.000000 70.521307
-  L 375.000000 70.521307
-  L 365.000000 70.521307
-  L 355.000000 70.521307
-  L 345.000000 70.521307
-  L 335.000000 70.521307
-  L 325.000000 70.521307
-  L 315.000000 70.521307
-  L 305.000000 70.521307
-  L 295.000000 70.521307
-  L 285.000000 70.521307
-  L 275.000000 70.521307
-  L 265.000000 70.521307
-  L 255.000000 70.521307
-  L 245.000000 70.521307
-  L 235.000000 70.521307
-  L 225.000000 70.521307
-  L 215.000000 70.521307
-  L 205.000000 70.521307
-  L 195.000000 70.521307
-  L 185.000000 70.521307
-  L 175.000000 70.521307
-  L 165.000000 112.795431
-  L 155.000000 70.521307
-  L 145.000000 70.521307
-  L 135.000000 70.521307
-  L 125.000000 70.521307
-  L 115.000000 70.521307
-  L 105.000000 70.521307
-  L 95.000000 70.521307
-  L 85.000000 70.521307
-Z" fill="rgb(248,118,109)" fill-opacity="0.2"/>
-<path d="M 85.000000 547.204569
-  L 95.000000 547.204569
-  L 105.000000 547.204569
-  L 115.000000 547.204569
-  L 125.000000 547.204569
-  L 135.000000 547.204569
-  L 145.000000 547.204569
-  L 155.000000 547.204569
-  L 165.000000 547.204569
-  L 175.000000 547.204569
-  L 185.000000 547.204569
-  L 195.000000 547.204569
-  L 205.000000 547.204569
-  L 215.000000 547.204569
-  L 225.000000 547.204569
-  L 235.000000 547.204569
-  L 245.000000 547.204569
-  L 255.000000 547.204569
-  L 265.000000 547.204569
-  L 275.000000 547.204569
-  L 285.000000 547.204569
-  L 295.000000 547.204569
-  L 305.000000 547.204569
-  L 315.000000 547.204569
-  L 325.000000 547.204569
-  L 335.000000 547.204569
-  L 345.000000 547.204569
-  L 355.000000 547.204569
-  L 365.000000 547.204569
-  L 375.000000 547.204569
-  L 385.000000 547.204569
-  L 395.000000 547.204569
-  L 405.000000 547.204569
-  L 415.000000 547.204569
-  L 425.000000 547.204569
-  L 435.000000 547.204569
-  L 445.000000 547.204569
-  L 455.000000 547.204569
-  L 465.000000 547.204569
-  L 475.000000 547.204569
-  L 485.000000 547.204569
-  L 495.000000 547.204569
-  L 505.000000 547.204569
-  L 515.000000 547.204569
-  L 525.000000 547.204569
-  L 535.000000 547.204569
-  L 545.000000 547.204569
-  L 555.000000 547.204569
-  L 565.000000 547.204569
-  L 565.000000 70.521307
-  L 555.000000 70.521307
-  L 545.000000 70.521307
-  L 535.000000 70.521307
-  L 525.000000 70.521307
-  L 515.000000 70.521307
-  L 505.000000 70.521307
-  L 495.000000 70.521307
-  L 485.000000 70.521307
-  L 475.000000 70.521307
-  L 465.000000 70.521307
-  L 455.000000 70.521307
-  L 445.000000 70.521307
-  L 435.000000 70.521307
-  L 425.000000 70.521307
-  L 415.000000 70.521307
-  L 405.000000 70.521307
-  L 395.000000 70.521307
-  L 385.000000 70.521307
-  L 375.000000 70.521307
-  L 365.000000 70.521307
-  L 355.000000 70.521307
-  L 345.000000 70.521307
-  L 335.000000 70.521307
-  L 325.000000 70.521307
-  L 315.000000 70.521307
-  L 305.000000 70.521307
-  L 295.000000 70.521307
-  L 285.000000 70.521307
-  L 275.000000 70.521307
-  L 265.000000 70.521307
-  L 255.000000 70.521307
-  L 245.000000 70.521307
-  L 235.000000 70.521307
-  L 225.000000 70.521307
-  L 215.000000 70.521307
-  L 205.000000 70.521307
-  L 195.000000 70.521307
-  L 185.000000 70.521307
-  L 175.000000 70.521307
-  L 165.000000 70.521307
-  L 155.000000 70.521307
-  L 145.000000 70.521307
-  L 135.000000 70.521307
-  L 125.000000 70.521307
-  L 115.000000 70.521307
-  L 105.000000 70.521307
-  L 95.000000 70.521307
-  L 85.000000 70.521307
-Z" fill="rgb(0,191,196)" fill-opacity="0.2"/>
-<path d="M 85.000000 80.000000
-  L 95.000000 80.000000
-  L 105.000000 80.000000
-  L 115.000000 80.000000
-  L 125.000000 80.000000
-  L 135.000000 80.000000
-  L 145.000000 80.000000
-  L 155.000000 80.000000
-  L 165.000000 580.000000
-  L 175.000000 80.000000
-  L 185.000000 80.000000
-  L 195.000000 80.000000
-  L 205.000000 80.000000
-  L 215.000000 80.000000
-  L 225.000000 80.000000
-  L 235.000000 80.000000
-  L 245.000000 80.000000
-  L 255.000000 80.000000
-  L 265.000000 80.000000
-  L 275.000000 80.000000
-  L 285.000000 80.000000
-  L 295.000000 80.000000
-  L 305.000000 80.000000
-  L 315.000000 80.000000
-  L 325.000000 80.000000
-  L 335.000000 80.000000
-  L 345.000000 80.000000
-  L 355.000000 80.000000
-  L 365.000000 80.000000
-  L 375.000000 80.000000
-  L 385.000000 80.000000
-  L 395.000000 80.000000
-  L 405.000000 80.000000
-  L 415.000000 80.000000
-  L 425.000000 80.000000
-  L 435.000000 80.000000
-  L 445.000000 80.000000
-  L 455.000000 80.000000
-  L 465.000000 80.000000
-  L 475.000000 80.000000
-  L 485.000000 80.000000
-  L 495.000000 80.000000
-  L 505.000000 80.000000
-  L 515.000000 80.000000
-  L 525.000000 80.000000
-  L 535.000000 80.000000
-  L 545.000000 80.000000
-  L 555.000000 80.000000
-  L 565.000000 80.000000
-" stroke="rgb(248,118,109)" stroke-width="2" fill-opacity="0"/>
-<path d="M 85.000000 80.000000
-  L 95.000000 80.000000
-  L 105.000000 80.000000
-  L 115.000000 80.000000
-  L 125.000000 80.000000
-  L 135.000000 80.000000
-  L 145.000000 80.000000
-  L 155.000000 80.000000
-  L 165.000000 80.000000
-  L 175.000000 80.000000
-  L 185.000000 80.000000
-  L 195.000000 80.000000
-  L 205.000000 80.000000
-  L 215.000000 80.000000
-  L 225.000000 80.000000
-  L 235.000000 80.000000
-  L 245.000000 80.000000
-  L 255.000000 80.000000
-  L 265.000000 80.000000
-  L 275.000000 80.000000
-  L 285.000000 80.000000
-  L 295.000000 80.000000
-  L 305.000000 80.000000
-  L 315.000000 80.000000
-  L 325.000000 80.000000
-  L 335.000000 80.000000
-  L 345.000000 80.000000
-  L 355.000000 80.000000
-  L 365.000000 80.000000
-  L 375.000000 80.000000
-  L 385.000000 80.000000
-  L 395.000000 80.000000
-  L 405.000000 80.000000
-  L 415.000000 80.000000
-  L 425.000000 80.000000
-  L 435.000000 80.000000
-  L 445.000000 80.000000
-  L 455.000000 80.000000
-  L 465.000000 80.000000
-  L 475.000000 80.000000
-  L 485.000000 80.000000
-  L 495.000000 80.000000
-  L 505.000000 80.000000
-  L 515.000000 80.000000
-  L 525.000000 80.000000
-  L 535.000000 80.000000
-  L 545.000000 80.000000
-  L 555.000000 80.000000
-  L 565.000000 80.000000
-" stroke="rgb(0,191,196)" stroke-width="2" fill-opacity="0"/>
-<text x="650" y="650" text-anchor="end">--OT 18,0,0,0</text>
-<line x1="170.000000" y1="580" x2="170.000000" y2="80" stroke-dasharray="5 1" stroke="rgb(248,118,109)" stroke-width="1" />
-<rect x="590" y="310" width="20" height="20" fill="rgb(248,118,109)" />
-<text x="615" y="320" text-anchor="start" dominant-baseline="middle">#1</text>
-<rect x="590" y="330" width="20" height="20" fill="rgb(0,191,196)" />
-<text x="615" y="340" text-anchor="start" dominant-baseline="middle">#2</text>
-</svg>
--- a/test-data/test_3.bedGraph	Fri Aug 24 17:15:24 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-track type="bedGraph" description="output CpG methylation fractions"
-chrCG	0	1	1.000000
-chrCG	2	3	1.000000
-chrCG	4	5	1.000000
-chrCG	6	7	1.000000
-chrCG	8	9	1.000000
-chrCG	10	11	1.000000
-chrCG	12	13	1.000000
-chrCG	14	15	1.000000
-chrCG	18	19	1.000000
-chrCG	20	21	1.000000
-chrCG	22	23	1.000000
-chrCG	24	25	1.000000
-chrCG	26	27	1.000000
-chrCG	28	29	1.000000
-chrCG	30	31	1.000000
-chrCG	32	33	1.000000
-chrCG	34	35	1.000000
-chrCG	36	37	1.000000
-chrCG	38	39	1.000000
-chrCG	40	41	1.000000
-chrCG	42	43	1.000000
-chrCG	44	45	1.000000
-chrCG	46	47	1.000000
-chrCG	48	49	1.000000
-chrCG	50	51	1.000000
-chrCG	52	53	1.000000
-chrCG	54	55	1.000000
-chrCG	56	57	1.000000
-chrCG	58	59	1.000000
-chrCG	60	61	1.000000
-chrCG	62	63	1.000000
-chrCG	64	65	1.000000
-chrCG	66	67	1.000000
-chrCG	68	69	1.000000
-chrCG	70	71	1.000000
-chrCG	72	73	1.000000
-chrCG	74	75	1.000000
-chrCG	76	77	1.000000
-chrCG	78	79	1.000000
-chrCG	80	81	1.000000
-chrCG	82	83	1.000000
-chrCG	84	85	1.000000
-chrCG	86	87	1.000000
-chrCG	88	89	1.000000
-chrCG	90	91	1.000000
-chrCG	92	93	1.000000
-chrCG	94	95	1.000000
-chrCG	96	97	1.000000
--- a/test-data/test_4.bedGraph	Fri Aug 24 17:15:24 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-track type="bedGraph" description="output CpG logit transformed methylation fractions"
-chrCG	0	1	inf
-chrCG	2	3	inf
-chrCG	4	5	inf
-chrCG	6	7	inf
-chrCG	8	9	inf
-chrCG	10	11	inf
-chrCG	12	13	inf
-chrCG	14	15	inf
-chrCG	18	19	inf
-chrCG	20	21	inf
-chrCG	22	23	inf
-chrCG	24	25	inf
-chrCG	26	27	inf
-chrCG	28	29	inf
-chrCG	30	31	inf
-chrCG	32	33	inf
-chrCG	34	35	inf
-chrCG	36	37	inf
-chrCG	38	39	inf
-chrCG	40	41	inf
-chrCG	42	43	inf
-chrCG	44	45	inf
-chrCG	46	47	inf
-chrCG	48	49	inf
-chrCG	50	51	inf
-chrCG	52	53	inf
-chrCG	54	55	inf
-chrCG	56	57	inf
-chrCG	58	59	inf
-chrCG	60	61	inf
-chrCG	62	63	inf
-chrCG	64	65	inf
-chrCG	66	67	inf
-chrCG	68	69	inf
-chrCG	70	71	inf
-chrCG	72	73	inf
-chrCG	74	75	inf
-chrCG	76	77	inf
-chrCG	78	79	inf
-chrCG	80	81	inf
-chrCG	82	83	inf
-chrCG	84	85	inf
-chrCG	86	87	inf
-chrCG	88	89	inf
-chrCG	90	91	inf
-chrCG	92	93	inf
-chrCG	94	95	inf
-chrCG	96	97	inf
--- a/test-data/test_5.methylKit	Fri Aug 24 17:15:24 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-chrBase	chr	base	strand	coverage	freqC	freqT
-chrCG.1	chrCG	1	F	1	100.00	  0.00
-chrCG.3	chrCG	3	F	1	100.00	  0.00
-chrCG.5	chrCG	5	F	1	100.00	  0.00
-chrCG.7	chrCG	7	F	1	100.00	  0.00
-chrCG.9	chrCG	9	F	1	100.00	  0.00
-chrCG.11	chrCG	11	F	1	100.00	  0.00
-chrCG.13	chrCG	13	F	1	100.00	  0.00
-chrCG.15	chrCG	15	F	1	100.00	  0.00
-chrCG.19	chrCG	19	F	1	100.00	  0.00
-chrCG.21	chrCG	21	F	1	100.00	  0.00
-chrCG.23	chrCG	23	F	1	100.00	  0.00
-chrCG.25	chrCG	25	F	1	100.00	  0.00
-chrCG.27	chrCG	27	F	1	100.00	  0.00
-chrCG.29	chrCG	29	F	1	100.00	  0.00
-chrCG.31	chrCG	31	F	1	100.00	  0.00
-chrCG.33	chrCG	33	F	1	100.00	  0.00
-chrCG.35	chrCG	35	F	1	100.00	  0.00
-chrCG.37	chrCG	37	F	1	100.00	  0.00
-chrCG.39	chrCG	39	F	1	100.00	  0.00
-chrCG.41	chrCG	41	F	1	100.00	  0.00
-chrCG.43	chrCG	43	F	1	100.00	  0.00
-chrCG.45	chrCG	45	F	1	100.00	  0.00
-chrCG.47	chrCG	47	F	1	100.00	  0.00
-chrCG.49	chrCG	49	F	1	100.00	  0.00
-chrCG.51	chrCG	51	F	1	100.00	  0.00
-chrCG.53	chrCG	53	F	1	100.00	  0.00
-chrCG.55	chrCG	55	F	1	100.00	  0.00
-chrCG.57	chrCG	57	F	1	100.00	  0.00
-chrCG.59	chrCG	59	F	1	100.00	  0.00
-chrCG.61	chrCG	61	F	1	100.00	  0.00
-chrCG.63	chrCG	63	F	1	100.00	  0.00
-chrCG.65	chrCG	65	F	1	100.00	  0.00
-chrCG.67	chrCG	67	F	1	100.00	  0.00
-chrCG.69	chrCG	69	F	1	100.00	  0.00
-chrCG.71	chrCG	71	F	1	100.00	  0.00
-chrCG.73	chrCG	73	F	1	100.00	  0.00
-chrCG.75	chrCG	75	F	1	100.00	  0.00
-chrCG.77	chrCG	77	F	1	100.00	  0.00
-chrCG.79	chrCG	79	F	1	100.00	  0.00
-chrCG.81	chrCG	81	F	1	100.00	  0.00
-chrCG.83	chrCG	83	F	1	100.00	  0.00
-chrCG.85	chrCG	85	F	1	100.00	  0.00
-chrCG.87	chrCG	87	F	1	100.00	  0.00
-chrCG.89	chrCG	89	F	1	100.00	  0.00
-chrCG.91	chrCG	91	F	1	100.00	  0.00
-chrCG.93	chrCG	93	F	1	100.00	  0.00
-chrCG.95	chrCG	95	F	1	100.00	  0.00
-chrCG.97	chrCG	97	F	1	100.00	  0.00