changeset 0:e3bbe8171af9 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/cnvkit commit c35b83e4b65b211377c9f616c77d7306da48a984
author iuc
date Sun, 14 May 2023 20:10:48 +0000
parents
children 4653aeb60243
files batch.xml macros.xml test-data/access-excludes.bed test-data/capture.antitarget.bed test-data/capture.bed test-data/capture.split.bed test-data/capture.target.bed test-data/excludes.bed test-data/excludes_1.bed test-data/fasta_indexes.loc test-data/genome.fasta test-data/genome.fasta.fai test-data/multible_capture.antitarget.bed test-data/normal.antitargetcoverage.cnn test-data/normal.bam test-data/normal.targetcoverage.cnn test-data/ref-tas.cnn test-data/reference.antitarget-tmp.bed test-data/reference.cnn test-data/reference.target-tmp.bed test-data/sample-diagram.pdf test-data/sample-heatmap.png test-data/sample-scatter.png test-data/sample.cnr test-data/sample.cns test-data/sample.targetcoverage.cnn test-data/tumor-diagram.pdf test-data/tumor-heatmap.png test-data/tumor-scatter.png test-data/tumor.antitargetcoverage.cnn test-data/tumor.bam test-data/tumor.bintest.cns test-data/tumor.call.cns test-data/tumor.cnr test-data/tumor.cns test-data/tumor.targetcoverage.cnn test-data/tumor_1.bam tool-data/fasta_indexes.loc.sample tool_data_table_conf.xml.sample tool_data_table_conf.xml.test
diffstat 34 files changed, 1617 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/batch.xml	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,283 @@
+<tool id="cnvkit_batch" name="CNVkit Batch" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="21.05">
+    <description>Run the CNVkit pipeline on one or more BAM files</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="xrefs"/>
+    <expand macro="requirements"/>
+    <command detect_errors="exit_code"><![CDATA[   
+        ln -s '$CNV_reference.input_sample_file' ./tumor.bam &&
+        ln -s '$CNV_reference.input_sample_file.metadata.bam_index' ./tumor.bam.bai &&
+        #if str($CNV_reference.CNV_reference_availabel) == "yes":
+            ln -s '$CNV_reference.reference' ./reference.cnn &&
+        #end if 
+        #if str($CNV_reference.CNV_reference_availabel) == "no":
+            ln -s '$CNV_reference.normal' ./normal.bam &&
+            ln -s '$CNV_reference.normal.metadata.bam_index' ./normal.bam.bai &&
+            #if $CNV_reference.advanced_settings.antitargets
+                ln -s '$CNV_reference.advanced_settings.antitargets' ./antitargets.bed &&
+            #end if
+            #if $CNV_reference.advanced_settings.annotate
+                ln -s '$CNV_reference.advanced_settings.annotate' ./annotate.bed &&
+            #end if
+            #if $CNV_reference.advanced_settings.access
+                ln -s '$CNV_reference.advanced_settings.access' ./access.bed &&
+            #end if
+            ln -s '$CNV_reference.targets' ./capture.bed &&
+            #if str($CNV_reference.reference_source.ref_selector) == 'history':
+                ln -s '$CNV_reference.reference_source.fasta' ./genome.fa &&
+                samtools faidx ./genome.fa 2>&1 || echo 'Error running samtools faidx for indexing fasta reference for CNVkit' >&2 &&
+            #else
+                ln -s '$CNV_reference.reference_source.fasta.fields.path' ./genome.fa &&
+                ln -s '${CNV_reference.reference_source.fasta.fields.path}.fai' ./genome.fa.fai &&
+            #end if
+        #end if
+        #import os
+        cnvkit.py batch
+            ./tumor.bam
+            #if str($CNV_reference.CNV_reference_availabel) == "no":
+                --normal ./normal.bam
+                --targets ./capture.bed
+                --fasta ./genome.fa
+                #if $CNV_reference.advanced_settings.antitargets
+                    --antitargets ./antitargets.bed
+                #end if
+                #if $CNV_reference.advanced_settings.annotate
+                    --annotate ./annotate.bed
+                #end if
+                #if $CNV_reference.advanced_settings.access
+                    --access ./access.bed
+                #end if
+            #end if
+            #if str($CNV_reference.CNV_reference_availabel) == "yes":
+                --reference ./reference.cnn
+            #end if
+            $output_section.scatter
+            $output_section.diagram
+            --processes \${GALAXY_SLOTS:-4}
+            #if $CNV_reference.advanced_settings.method == "hybrid"
+                #set $method_val = "hybrid"
+                --method '$method_val'
+            #else
+                --method '$CNV_reference.advanced_settings.method'
+            #end if
+            
+            #if $CNV_reference.advanced_settings.segment_method == "cbs"
+                #set $segment_method_val = "cbs"
+                --segment-method '$segment_method_val'
+            #else
+                --segment-method '$CNV_reference.advanced_settings.segment_method'
+            #end if
+            $CNV_reference.advanced_settings.male_reference
+            $CNV_reference.advanced_settings.countreads
+            $CNV_reference.advanced_settings.drop_low_coverage
+            
+            #if str($CNV_reference.CNV_reference_availabel) == "no":
+                $CNV_reference.advanced_settings.short_names
+                #if str($CNV_reference.advanced_settings.target_avg_size)
+                    --target-avg-size $CNV_reference.advanced_settings.target_avg_size
+                #end if 
+                #if str($CNV_reference.advanced_settings.antitarget_avg_size)
+                    --antitarget-avg-size $CNV_reference.advanced_settings.antitarget_avg_size
+                #end if
+                #if str($CNV_reference.advanced_settings.antitarget_min_size)
+                    --antitarget-min-size $CNV_reference.advanced_settings.antitarget_min_size
+                #end if 
+                $CNV_reference.advanced_settings.cluster
+            #end if            
+    ]]></command>
+    <inputs>
+        <conditional name="CNV_reference">
+            <param name="CNV_reference_availabel" type="select" label="Build or reuse a copy number reference file (.cnn)?" help="">
+                <option value="no" selected="True">Build a new copy number reference file</option>
+                <option value="yes">Reuse a copy number reference file</option>
+            </param>
+            <when value="no">
+                <expand macro="create_CNV_reference_file" />
+                <expand macro="reference_interface" />
+                <section name="advanced_settings" title="Advanced settings" expanded="false">
+                    <expand macro="advanced_no_reference" />
+                    <expand macro="shared" />
+                </section>
+            </when>
+            <when value="yes">
+                <expand macro="reuse_an_existing_cnv_reference_file" />
+                <section name="advanced_settings" title="Advanced settings" expanded="false">
+                    <expand macro="shared" />
+                </section>
+            </when>
+        </conditional>
+        <expand macro="output_section" />
+    </inputs>
+    <outputs>
+        <data name="out_sample_bintest" format="tabular" label="${tool.name} on ${on_string}: Sample Bintest" from_work_dir="tumor.bintest.cns" />
+        <data name="out_sample_antitargetcoverage" format="tabular" label="${tool.name} on ${on_string}: Sample Antitarget Coverage" from_work_dir="tumor.antitargetcoverage.cnn" />
+        <data name="out_sample_call" format="tabular" label="${tool.name} on ${on_string}: rounded absolute scale copy numbers integer (not log2 ratios) " from_work_dir="tumor.call.cns" />
+        <data name="out_sample_targetcoverage_cnn" format="tabular" label="${tool.name} on ${on_string}: Sample Target Coverage" from_work_dir="tumor.targetcoverage.cnn" />
+        <data name="out_sample_cns" format="tabular" label="${tool.name} on ${on_string}: CN segmentation calls" from_work_dir="tumor.cns" />
+        <data name="out_sample_cnr" format="tabular" label="${tool.name} on ${on_string}: Bin-Level log2 Ratios/Coverages" from_work_dir="tumor.cnr" />
+        <data name="out_capture_antitarget" format="bed" label="${tool.name} on ${on_string}: Capture Antitarget" from_work_dir="capture.antitarget.bed">
+            <filter>(CNV_reference['CNV_reference_availabel']) == 'no'</filter>
+        </data>
+        <data name="out_control_targetcoverage" format="tabular" label="${tool.name} on ${on_string}: Output Normal Sample Target Coverage" from_work_dir="normal.targetcoverage.cnn">
+            <filter>(CNV_reference['CNV_reference_availabel']) == 'no'</filter>
+        </data>
+        <data name="out_control_antitargetcoverage" format="tabular" label="${tool.name} on ${on_string}: Output Normal Sample Antitarget Coverage" from_work_dir="normal.antitargetcoverage.cnn">
+            <filter>(CNV_reference['CNV_reference_availabel']) == 'no'</filter>
+        </data>
+        <data name="out_reference_cnn" format="tabular" label="${tool.name} on ${on_string}: Output Copy Number Reference Profile" from_work_dir="reference.cnn">
+            <filter>(CNV_reference['CNV_reference_availabel']) == 'no'</filter>
+        </data>
+        <data name="out_capture_target" format="bed" label="${tool.name} on ${on_string}: Output Capture Target" from_work_dir="capture.target.bed">
+            <filter>(CNV_reference['CNV_reference_availabel']) == 'no'</filter>
+        </data>
+        <data name="out_reference_target_bed" format="tabular" label="${tool.name} on ${on_string}: Output Reference Target" from_work_dir="reference.target-tmp.bed">
+            <filter>(CNV_reference['CNV_reference_availabel']) == 'yes'</filter>
+        </data>
+        <data name="out_reference_antitarget_bed" format="bed" label="${tool.name} on ${on_string}: Output Reference Antitarget" from_work_dir="reference.antitarget-tmp.bed">
+            <filter>(CNV_reference['CNV_reference_availabel']) == 'yes'</filter>
+        </data>
+        <data name="out_sample_diagram_pdf" format="pdf" label="${tool.name} on ${on_string}: Output Sample Diagram" from_work_dir="tumor-diagram.pdf">
+            <filter>output_section['diagram']</filter>
+        </data>
+        <data name="out_sample_scatter_png" format="png" label="${tool.name} on ${on_string}: Output Sample Scatter " from_work_dir="tumor-scatter.png">
+            <filter>output_section['scatter']</filter>
+        </data>
+    </outputs>
+    <tests>
+        <test expect_num_outputs="13">
+            <conditional name="reference_source">
+                <param name="ref_selector" value="history"/>
+                <param name="fasta" ftype="fasta" value="genome.fasta" />
+            </conditional>
+            <param name="CNV_reference_availabel" value="no" />
+            <param name="input_sample_file" ftype="bam" value="tumor.bam" />
+            <param name="normal" ftype="bam" value="normal.bam" />
+            <param name="targets" ftype="bed" value="capture.bed" />
+            <param name="scatter" value="1"/>
+            <param name="diagram" value="1"/>
+            <output name="out_sample_bintest" file="tumor.bintest.cns" />
+            <output name="out_sample_antitargetcoverage">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_call">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_cnr">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_targetcoverage_cnn">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_cns">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_capture_antitarget" file="capture.antitarget.bed" />
+            <output name="out_control_targetcoverage" file="normal.targetcoverage.cnn" />
+            <output name="out_control_antitargetcoverage" file="normal.antitargetcoverage.cnn" />
+            <output name="out_reference_cnn" file="reference.cnn" />
+            <output name="out_capture_target">
+                <assert_contents><has_text_matching expression="chrM"/></assert_contents>
+            </output>
+            <output name="out_sample_scatter_png" file="tumor-scatter.png" ftype="png" compare="sim_size">
+                <assert_contents><has_size value="13000" delta="3000" /></assert_contents>
+            </output>                        
+            <output name="out_sample_diagram_pdf" file="tumor-diagram.pdf" ftype="pdf" compare="sim_size">
+                <assert_contents><has_size value="6000" delta="2000" /></assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="13">
+            <conditional name="reference_source">
+                <param name="ref_selector" value="cached"/>
+                <param name="fasta" value="test_buildid"/>
+            </conditional>
+            <param name="CNV_reference_availabel" value="no" />
+            <param name="input_sample_file" ftype="bam" value="tumor.bam" />
+            <param name="normal" ftype="bam" value="normal.bam" />
+            <param name="targets" ftype="bed" value="capture.bed" />
+            <param name="scatter" value="1"/>
+            <param name="diagram" value="1"/>
+            <output name="out_sample_bintest" file="tumor.bintest.cns" />
+            <output name="out_sample_antitargetcoverage">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_call">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_cnr">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_targetcoverage_cnn">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_cns">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_capture_antitarget" file="capture.antitarget.bed" />
+            <output name="out_control_targetcoverage" file="normal.targetcoverage.cnn" />
+            <output name="out_control_antitargetcoverage" file="normal.antitargetcoverage.cnn" />
+            <output name="out_reference_cnn" file="reference.cnn" />
+            <output name="out_capture_target">
+                <assert_contents><has_text_matching expression="chrM"/></assert_contents>
+            </output>
+            <output name="out_sample_scatter_png" file="tumor-scatter.png" ftype="png" compare="sim_size">
+                <assert_contents><has_size value="13000" delta="3000" /></assert_contents>
+            </output>                        
+            <output name="out_sample_diagram_pdf" file="tumor-diagram.pdf" ftype="pdf" compare="sim_size">
+                <assert_contents><has_size value="6000" delta="2000" /></assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="10">
+            <param name="CNV_reference_availabel" value="yes" />
+            <param name="input_sample_file" ftype="bam" value="tumor.bam" />
+            <param name="reference" ftype="tabular" value="reference.cnn" />
+            <param name="scatter" value="1"/>
+            <param name="diagram" value="1"/>
+            <output name="out_sample_bintest" file="tumor.bintest.cns" />
+            <output name="out_sample_antitargetcoverage">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_call">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_cnr">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_targetcoverage_cnn">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_sample_cns">
+                <assert_contents><has_text text="chromosome"/></assert_contents>
+            </output>
+            <output name="out_reference_target_bed" file="reference.target-tmp.bed" />
+            <output name="out_reference_antitarget_bed" file="reference.antitarget-tmp.bed" />
+            <output name="out_sample_diagram_pdf" file="tumor-diagram.pdf" ftype="pdf" compare="sim_size">
+                <assert_contents><has_size value="6000" delta="2000" /></assert_contents>
+            </output>
+            <output name="out_sample_scatter_png" file="tumor-scatter.png" ftype="png" compare="sim_size">
+                <assert_contents><has_size value="13000" delta="3000" /></assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+          CNVkit pipeline for  copy-number changes and allelic imbalances detection
+          cnn, cnr and cns are tabuler files extintions:
+          
+          The reference .cnn file has the columns:
+          chromosome, Start, end, gene, GC content of the sequence region (gc), RepeatMasker-masked proportion
+          of the sequence region (rmask), Statistical spread or dispersion (spread), Robust average of coverage
+          depths (log2 ) and Robust average of absolute-scale coverage depths without any bias corrections (depth)
+          
+          Target and antitarget bin-level coverages (.cnn)
+          chromosome, Start, end, gene, log2 and depth
+          
+          Bin-level log2 ratios (.cnr)
+          chromosome, Start, end, gene, log2, depth and proportional weight or reliability (weight)
+          
+          Segmented log2 ratios (.cns)
+          chromosome, Start, end, gene, log2, depth, weight and number of bins covered by the segment (probes)
+          
+          
+    ]]></help>
+    <expand macro="citations" />
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,221 @@
+<macros>
+    <token name="@VERSION_SUFFIX@">0</token>
+    <token name="@TOOL_VERSION@">0.9.10</token>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="@TOOL_VERSION@">cnvkit</requirement>
+            <requirement type="package" version="1.0.2">scikit-learn</requirement>
+        </requirements>
+    </xml>
+    <xml name="reference_interface">
+        <conditional name="reference_source">
+            <param name="ref_selector" type="select" label="Choose the source for the reference genome">
+                <option value="cached">Locally cached</option>
+                <option value="history">History</option>
+            </param>
+            <when value="cached">
+                <param argument="--fasta" optional="true" type="select" label="Reference genome">
+                    <options from_data_table="fasta_indexes">
+                        <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file" />
+                    </options>
+                </param>
+            </when>
+            <when value="history">
+                <param argument="--fasta" type="data" optional="true" format="fasta" label="Reference" help="Reference sequence" />
+            </when>
+        </conditional>
+    </xml>
+    <xml name="xrefs">
+        <xrefs>
+            <xref type="bio.tools">cnvkit</xref>
+        </xrefs>
+    </xml>
+    <xml name="shared">
+            <param argument="--method" type="select" label="Select the sequencing method of the input files" help="">
+                <option value="hybrid" selected="True">hybridization capture </option>
+                <option value="amplicon">targeted amplicon sequencing </option>
+                <option value="wgs">whole genome sequencing </option>
+            </param>
+            <param argument="--segment-method" type="select" label="Method used in the 'segment' step" help="">
+                <option value="cbs" selected="True">Circular Binary Segmentation CBS</option>
+                <option value="flasso">Fused lasso, hybrid flasso</option>
+                <option value="haar">a pure-Python implementation of HaarSeg, a wavelet-based method. Very fast and performs reasonably well on small panels, but tends to over-segment large datasets., hybrid haar</option>
+                <option value="none">simply calculate the weighted mean log2 value of each chromosome arm. Useful for testing or debugging, or as a baseline for benchmarking other methods., hybrid none</option>
+                <option value="hmm">experimental – a 3-state Hidden Markov Model suitable for most samples. Faster than CBS, and slower but more accurate than Haar. Requires the Python package pomegranate, as do the next two thods., hybrid hmm</option>
+                <option value="hmm-tumor">experimental – a 5-state HMM suitable for finer-grained segmentation of good-quality tumor samples. In particular, this method can detect focal amplifications within a larger-scale, smaller-amplitude copy number gain, or focal deep deletions within a larger-scale hemizygous loss. Training this model takes a bit more CPU time than the simpler hmm method., hybrid hmm-tumor</option>
+                <option value="hmm-germline">experimental – a 3-state HMM with fixed amplitude for the loss, neutral, and gain states corresponding to absolute copy numbers of 1, 2, and 3. Suitable for germline samples and single-cell sequencing of samples with mostly-diploid genomes that are not overly aneuploid., hybrid hmm-germline</option>
+            </param>
+            <param argument="--male-reference" type="boolean" checked="false" truevalue="--male-reference" falsevalue="" label="Use or assume a male reference" help="female samples will have +1 log-CNR of chrX; otherwise male samples would have -1 chrX" />
+            <param argument="--countreads" type="boolean" checked="false" truevalue="--countreads" falsevalue="" label="Get read depths by counting read midpoints within each bin" help="" />
+            <param argument="--drop-low-coverage" type="boolean" checked="false" truevalue="--drop-low-coverage" falsevalue="" label="Drop very-low-coverage bins before segmentation" help="To avoid false-positive deletions in poor-quality tumor samples" />
+    </xml>
+    <xml name="create_CNV_reference_file">
+        <param name="input_sample_file" type="data" format="bam" label="Sample BAM file" help="" />
+        <param argument="--normal" type="data" format="bam" label="Control BAM file" help="" />
+        <param argument="--targets" type="data" format="bed" label="Capture BED regions" help="" />
+    </xml>
+    <xml name="advanced_no_reference">
+        <param argument="--antitargets" optional="true" type="data" format="bed,tabular" label="Antitarget intervals" help="BED or list" />
+        <param argument="--annotate" optional="true" type="data" format="bed,gff,tabular" label="Use gene models from this file to assign names to the target regions" help="Format: UCSC refFlat.txt or ensFlat.txt file preferred, or BED, interval list, GFF, or similar" />
+        <param argument="--short-names" type="boolean" checked="false" truevalue="--short-names" falsevalue="" label="Reduce multi-accession bait labels" help="" />
+        <param argument="--target-avg-size" type="integer" optional="true" label="Average size of split target bins" min="1" value="" help="" />
+        <param argument="--access" optional="true" type="data" format="bed" label="Regions of accessible sequence on chromosomes BED" help="" />
+        <param argument="--antitarget-avg-size" optional="true" type="integer" label="Average size of antitarget bins" min="1" value="" help="" />
+        <param argument="--antitarget-min-size" optional="true" type="integer" label="Minimum size of antitarget bins" min="1" value="" help="" />
+        <param argument="--cluster" optional="true" type="boolean" checked="false" truevalue="--cluster" falsevalue="" label="Calculate and use cluster-specific summary stats in the reference pool" help="" />
+    </xml>
+    <xml name="reuse_an_existing_cnv_reference_file">
+        <param name="input_sample_file" type="data" format="bam" label="Sample file" help="" />
+        <param argument="--reference" type="data" format="tabular" label="CNV reference CNN File" help="" />
+    </xml>
+    <xml name="output_section">
+        <section name="output_section" title="Outputs" expanded="false">
+            <param argument="--scatter" type="boolean" checked="false" truevalue="--scatter" falsevalue="" label="Create a whole-genome copy ratio profile as a PNG scatter plot" help="" />
+            <param argument="--diagram" type="boolean" checked="false" truevalue="--diagram" falsevalue="" label="Create an ideogram of copy ratios on chromosomes as a PDF" help="" />
+        </section>
+    </xml>
+    <xml name="autobin_optional">
+            <param argument="--method" type="select" label="Select the sequencing method of the input files" help="">
+                <option value="hybrid" selected="True">hybridization capture </option>
+                <option value="amplicon">targeted amplicon sequencing </option>
+                <option value="wgs">whole genome sequencing </option>
+            </param>
+            <param argument="--access" optional="true" type="data" format="bed" label="Sequencing-accessible genomic regions, or exons to use as possible targets" help="The output of refFlat2bed.py" />
+            <param argument="--bp-per-bin" optional="true" type="integer" label=" Desired average number of sequencing read bases mapped to each bin" min="1" value="100000" help="" />
+            <param argument="--target-max-size" optional="true" type="integer" label="Maximum size of target bins" min="1" value="20000" help="" />
+            <param argument="--target-min-size" optional="true" type="integer" label="Minimum size of target bins" min="1" value="20" help="" />
+            <param argument="--antitarget-max-size" optional="true" type="integer" label="Maximum size of antitarget bins" min="1" value="500000" help="" />
+            <param argument="--antitarget-min-size" optional="true" type="integer" label="Minimum size of antitarget bins" min="1" value="500" help="" />
+            <param argument="--annotate" optional="true" type="data" format="bed,gff,tabular" label="Use gene models from this file to assign names to the target regions" help="Format: UCSC refFlat.txt or ensFlat.txt file preferred, or BED, interval list, GFF, or similar" />
+            <param argument="--short-names" type="boolean" checked="false" truevalue="--short-names" falsevalue="" label="Reduce multi-accession bait labels to be short and consistent" help="" />
+            <param argument="--target-output-bed" optional="true" type="data" format="bed" label="Filename for target BED output" help="If not specified, constructed from the input file basename" />
+            <param argument="--antitarget-output-bed" optional="true" type="data" format="bed" label="Filename for antitarget BED output" help="If not specified, constructed from the input file basename" />
+    </xml>
+    <xml name="filter">
+        <param argument="--filter" type="select" multiple="true" label="Merge segments flagged by the specified filter(s) with the adjacent segment(s)." help="">
+            <option value="ampdel" selected="True">ampdel</option>
+            <option value="cn">cn</option>
+            <option value="ci">ci</option>
+            <option value="sem">sem</option>
+        </param>
+    </xml>
+    <xml name="sample_sex">
+        <param argument="--sample-sex" type="select" label="Method used in the 'segment' step" help="">
+            <option value="Male" selected="True">Male</option>
+            <option value="Female">Female</option>
+        </param>
+    </xml>
+    <xml name="call_optional">
+            <param argument="--method" type="select" label="Select the sequencing method of the input files" help="">
+                <option value="threshold" selected="True">hybridization capture </option>
+                <option value="clonal">targeted amplicon sequencing </option>
+                <option value="none">whole genome sequencing </option>
+            </param>
+            <param argument="--center" type="select" label="Method used in the 'segment' step" help="">
+                <option value="mean">mean</option>
+                <option value="median" selected="True">median</option>
+                <option value="mode">mode</option>
+                <option value="biweight">biweight</option>
+            </param>
+            <param argument="--center-at" optional="true" type="float" label="Subtract a constant number from all log2 ratios" value="" help="For manual re-centering, in case the --center option gives unsatisfactory results" />
+            <param argument="--thresholds" optional="true" type="text" label="Hard thresholds for calling each integer copy number, separated by commas" value="=-1.1,-0.25,0.2,0.7" help="Apply cutoffs to either original or rescaled log2 values" />
+            <param argument="--ploidy" optional="true" type="integer" label="Ploidy of the sample cells" min="1" max="2" value="2" help="" />
+            <param argument="--purity" optional="true" type="float" label="Estimated tumor cell fraction, a.k.a. purity or cellularity" min="0" max="1" value="" help="" />
+            <param argument="--drop-low-coverage" type="boolean" checked="false" truevalue="--drop-low-coverage" falsevalue="" label="Drop very-low-coverage bins before segmentation" help="To avoid false-positive deletions in poor-quality tumor samples" />
+            <param argument="--male-reference" type="boolean" checked="false" truevalue="--male-reference" falsevalue="" label="Use or assume a male reference" help="Was a male reference used? If so, expect half ploidy on chrX and chrY; otherwise, only chrY has half ploidy. In CNVkit, if a male reference was used, the neutral copy number ploidy of chrX is 1; chrY is haploid for either reference sex" />
+    </xml>
+    <xml name="additionally_SNP_process">
+        <param argument="--vcf" optional="true" type="data" format="vcf" label="VCF file" help="VCF file name containing variants for calculation of b-allele frequencies" />
+        <param argument="--sample-id" optional="true" type="text" label="Name of the sample in the VCF to use for b-allele frequency extraction" value="" help="" />
+        <param argument="--normal-id" optional="true" type="text" label="Corresponding normal sample ID in the input VCF" value="" help="This sample is used to select only germline SNVs to calculate b-allele frequencies" />
+        <param argument="--min-variant-depth" type="integer" min="1" value="20" optional="true" label="Minimum read depth for a SNV to be used in the b-allele frequency calculation" help="" />
+        <param argument="--zygosity-freq" type="float" min="0" value="0.25" optional="true" label="Ignore VCF's genotypes and instead infer zygosity from allele frequencies" help="" />
+    </xml>
+    <xml name="diagram_optional">
+            <param argument="--segment" optional="true" type="data" format="tabular" label="Segment" help="Segmentation calls cns, the output of the 'segment' command" />
+            <param argument="--threshold" optional="true" type="float" label="Threshold" min="0" value="0.5" help="Copy number change threshold to label genes" />
+            <param argument="--min-probes" optional="true" type="integer" label="Minimum propes" min="1" value="3" help="Minimum number of covered probes to label a gene" />
+            <param argument="--male-reference" type="boolean" checked="false" truevalue="--male-reference" falsevalue="" label="MALE REFERENCE" help="Assume inputs were normalized to a male reference" />
+            <param argument="--no-shift-xy" type="boolean" checked="false" truevalue="--no-shift-xy" falsevalue="" label="Don't adjust the X and Y chromosomes according to sample sex" help="" />
+            <param argument="--chromosome" optional="true" type="text" label="Chromosome to display" value="" help="e.g. 'chr1' no chromosomal range allowed" />
+    </xml>
+    <xml name="diagram_plot">
+        <param argument="--title" optional="true" type="text" label="Plot title" value="" help="" />
+        <param argument="--no-gene-labels" type="boolean" checked="false" truevalue="--no-gene-labels" falsevalue="" label="Disable gene_name labels on plot useful when a lot of CNV were called" help="" />
+    </xml>
+    <xml name="heatmap_optional">
+            <param argument="--by-bin" type="boolean" checked="false" truevalue="--by-bin" falsevalue="" label="Plot data x-coordinates by bin indices instead of genomic coordinates" help="" />
+            <param argument="--chromosome" optional="true" type="text" label="Chromosome range" value="" help="Chromosome or chromosomal range, e.g. 'chr1' or 'chr1:2333000-2444000'" />
+            <param argument="--desaturate" type="boolean" checked="false" truevalue="--desaturate" falsevalue="" label="Tweak color saturation to focus on significant changes" help="" />
+            <param argument="--male-reference" type="boolean" checked="false" truevalue="--male-reference" falsevalue="" label="MALE REFERENCE" help="Assume inputs were normalized to a male reference" />
+            <param argument="--no-shift-xy" type="boolean" checked="false" truevalue="--no-shift-xy" falsevalue="" label="Don't adjust the X and Y chromosomes according to sample sex" help="" />
+            <param argument="--vertical" type="boolean" checked="false" truevalue="--vertical" falsevalue="" label="Plot heatmap with samples as X-axis instead of Y-axis" help="" />
+            <param argument="--delimit-samples" type="boolean" checked="false" truevalue="--delimit-samples" falsevalue="" label="Add an horizontal delimitation line between each sample" help="" />
+            <param argument="--title" optional="true" type="text" label="Plot title" value="" help="" />
+    </xml>
+    <xml name="reference_optional">
+            <param argument="--cluster" type="boolean" checked="false" truevalue="--cluster" falsevalue="" label="Calculate and store summary stats for clustered subsets of the normal samples with similar coverage profiles" help="" />
+            <param argument="--min-cluster-size" optional="true" type="integer" label="Minimum cluster size to keep in reference profiles" min="1" value="4" help="" />
+            <param argument="--male-reference" type="boolean" checked="false" truevalue="--male-reference" falsevalue="" label="Create a male reference" help="shift female samples' chrX log-coverage by -1, so the reference chrX average is -1. Otherwise, shift male samples' chrX by +1, so the reference chrX average is 0" />
+    </xml>
+    <xml name="construct_CNV_ref_with_natural_expected_number">
+        <param argument="--targets" optional="true" type="data" format="bed" label="Target intervals bed file" help="" />
+        <param argument="--antitargets" optional="true" type="data" format="bed" label="Antitarget intervals bed file" help="" />
+    </xml>
+    <xml name="disable_specific_automatic_bias_corrections">
+        <param argument="--no-gc" type="boolean" checked="false" truevalue="--no-gc" falsevalue="" label="Skip GC correction" help="" />
+        <param argument="--no-edge" type="boolean" checked="false" truevalue="--no-edge" falsevalue="" label="skip edge-effect correction" help="" />
+        <param argument="--no-rmask" type="boolean" checked="false" truevalue="--no-rmask" falsevalue="" label="skip repeat master correction" help="" />
+    </xml>
+    <xml name="scatter_optional">
+            <param argument="--segment" optional="true" type="data" format="cns" label="Segment" help="Segmentation calls cns, the output of the 'segment' command" />
+            <param argument="--chromosome" optional="true" type="text" label="Chromosome range" value="" help="Chromosome or chromosomal range, e.g. 'chr1' or 'chr1:2333000-2444000'" />
+            <param argument="--gene" optional="true" type="text" label="Name of gene or genes comma-separated to display" value="" help="" />
+            <param argument="--range-list" optional="true" type="data" format="bed" label="Range list" help="File listing the chromosomal ranges to display, as BED"/>
+            <param argument="--width" optional="true" type="integer" label="Width" min="1" value="1000000" help="Width of margin to show around the selected genes or small chromosomal region" />
+    </xml>
+    <xml name="scatter_plot">
+        <param argument="--antitarget-marker" optional="true" type="text" label="Antitarget marker" value="same as targets" help="Plot antitargets using this symbol when plotting in a selected chromosomal region"/>
+        <param argument="--by-bin" type="boolean" checked="false" truevalue="--by-bin" falsevalue="" label="Plot data x-coordinates by bin indices instead of genomic coordinates" help=""/>
+        <param argument="--segment-color" optional="true" type="text" label="Segment color" value="red" help=""/>
+        <param argument="--title" optional="true" type="text" label="Plot title" value="" help=""/>
+        <param argument="--trend" type="boolean" checked="false" truevalue="--trend" falsevalue="" label="Draw a smoothed local trendline on the scatter plot" help=""/>
+        <param argument="--y-max" optional="true" type="integer" label="y-axis upper limit" min="1" value="" help=""/>
+        <param argument="--y-min" optional="true" type="integer" label="y-axis lower limit" min="1" value="" help=""/>
+        <param argument="--fig-size" optional="true" type="float" label="Width and height of the plot in inches" value="" help="Example 6.4 4.8, the space between the two inputs is important"/>
+    </xml>
+    <xml name="segment_optional">
+            <param argument="--dataframe" type="text" optional="true" label="Data frame" value="" help="File name to save the raw R dataframe emitted by CBS or Fused Lasso, example dataframe.r"/>
+            <param argument="--method" type="select" label="Segmentation method" help="">
+                <option value="cbs" selected="True">Circular Binary Segmentation CBS method,hybrid CBS</option>
+                <option value="flasso">Fused lasso, hybrid flasso</option>
+                <option value="haar">A pure-Python implementation of HaarSeg, a wavelet-based method. Very fast and performs reasonably well on small panels, but tends to over-segment large datasets., hybrid haar</option>
+                <option value="none">simply calculate the weighted mean log2 value of each chromosome arm. Useful for testing or debugging, or as a baseline for benchmarking other methods., hybrid none</option>
+                <option value="hmm">experimental – a 3-state Hidden Markov Model suitable for most samples. Faster than CBS, and slower but more accurate than Haar. Requires the Python package pomegranate, as do the next two methods., hybrid hmm</option>
+                <option value="hmm-tumor">experimental – a 5-state HMM suitable for finer-grained segmentation of good-quality tumor samples. In particular, this method can detect focal amplifications within a larger-scale, smaller-amplitude copy number gain, or focal deep deletions within a larger-scale hemizygous loss. Training this model takes a bit more CPU time than the simpler hmm method., hybrid hmm-tumor</option>
+                <option value="hmm-germline">experimental – a 3-state HMM with fixed amplitude for the loss, neutral, and gain states corresponding to absolute copy numbers of 1, 2, and 3. Suitable for germline samples and single-cell sequencing of samples with mostly-diploid genomes that are not overly aneuploid., hybrid hmm-germline</option>
+            </param>
+            <param argument="--threshold" optional="true" type="integer" label="Significance threshold" min="1" help="To accept breakpoints during segmentation. For HMM methods, this is the smoothing window size"/>
+            <param argument="--drop-low-coverage" type="boolean" checked="false" truevalue="--drop-low-coverage" falsevalue="" label="Drop very-low-coverage bins before segmentation" help="To avoid false-positive deletions in poor-quality tumor samples"/>
+            <param argument="--drop-outliers" optional="true" type="integer" label="Drop outliers" min="1" value="10" help=""/>
+            <param argument="--smooth-cbs" type="boolean" checked="false" truevalue="--smooth-cbs" falsevalue="" label="Perform an additional smoothing before CBS segmentations" help=""/>
+    </xml>
+    <xml name="sample_sex_condition">
+        <conditional name="Sample_sex">
+            <param name="sex" type="select" label="Sample sex availabel" help="">
+                <option value="no" selected="True">Sample sex unknown</option>
+                <option value="yes">Select sample sex</option>
+            </param>
+            <when value="yes">
+                <expand macro="sample_sex" />
+            </when>
+            <when value="no">
+            </when>
+        </conditional>
+    </xml>
+        <xml name="citations">
+        <citations>
+            <citation type="doi">10.1371/journal.pcbi.1004873</citation>
+        </citations>
+    </xml>
+</macros>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/capture.bed	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,37 @@
+chrM	576	647
+chrM	647	1601
+chrM	1601	1670
+chrM	1670	3229
+chrM	3229	3304
+chrM	3306	4262
+chrM	4262	4331
+chrM	4328	4400
+chrM	4401	4469
+chrM	4469	5511
+chrM	5511	5579
+chrM	5586	5655
+chrM	5656	5729
+chrM	5760	5826
+chrM	5825	5891
+chrM	5903	7445
+chrM	7445	7514
+chrM	7517	7585
+chrM	7585	8269
+chrM	8294	8364
+chrM	8365	8572
+chrM	8526	9207
+chrM	9206	9990
+chrM	9990	10058
+chrM	10058	10404
+chrM	10404	10469
+chrM	10469	10766
+chrM	10759	12137
+chrM	12137	12206
+chrM	12206	12265
+chrM	12265	12336
+chrM	12336	14148
+chrM	14148	14673
+chrM	14673	14742
+chrM	14746	15887
+chrM	15887	15953
+chrM	15955	16023
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/capture.split.bed	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,37 @@
+chrM	576	647	-
+chrM	647	1601	-
+chrM	1601	1670	-
+chrM	1670	3229	-
+chrM	3229	3304	-
+chrM	3306	4262	-
+chrM	4262	4331	-
+chrM	4328	4400	-
+chrM	4401	4469	-
+chrM	4469	5511	-
+chrM	5511	5579	-
+chrM	5586	5655	-
+chrM	5656	5729	-
+chrM	5760	5826	-
+chrM	5825	5891	-
+chrM	5903	7445	-
+chrM	7445	7514	-
+chrM	7517	7585	-
+chrM	7585	8269	-
+chrM	8294	8364	-
+chrM	8365	8572	-
+chrM	8526	9207	-
+chrM	9206	9990	-
+chrM	9990	10058	-
+chrM	10058	10404	-
+chrM	10404	10469	-
+chrM	10469	10766	-
+chrM	10759	12137	-
+chrM	12137	12206	-
+chrM	12206	12265	-
+chrM	12265	12336	-
+chrM	12336	14148	-
+chrM	14148	14673	-
+chrM	14673	14742	-
+chrM	14746	15887	-
+chrM	15887	15953	-
+chrM	15955	16023	-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/capture.target.bed	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,12 @@
+chrM	576	3304	-
+chrM	3306	4400	-
+chrM	4401	5579	-
+chrM	5586	5655	-
+chrM	5656	5729	-
+chrM	5760	5891	-
+chrM	5903	7514	-
+chrM	7517	8269	-
+chrM	8294	8364	-
+chrM	8365	14742	-
+chrM	14746	15953	-
+chrM	15955	16023	-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/fasta_indexes.loc	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,26 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of Samtools indexed sequences data files.  You will need
+#to create these data files and then create a fasta_indexes.loc file
+#similar to this one (store it in this directory) that points to
+#the directories in which those files are stored. The fasta_indexes.loc
+#file has this format (white space characters are TAB characters):
+#
+# <unique_build_id>	<dbkey>	<display_name>	<file_base_path>
+#
+#So, for example, if you had hg19 Canonical indexed stored in
+#
+# /depot/data2/galaxy/hg19/sam/,
+#
+#then the fasta_indexes.loc entry would look like this:
+#
+#hg19canon	hg19	Human (Homo sapiens): hg19 Canonical	/depot/data2/galaxy/hg19/sam/hg19canon.fa
+#
+#and your /depot/data2/galaxy/hg19/sam/ directory
+#would contain hg19canon.fa and hg19canon.fa.fai files.
+#
+#Your fasta_indexes.loc file should include an entry per line for
+#each index set you have stored.  The file in the path does actually
+#exist, but it should never be directly used. Instead, the name serves
+#as a prefix for the index file.  For example:
+#
+test_buildid	hg17	test_displayname	${__HERE__}/genome.fasta
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/genome.fasta	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,333 @@
+>chrM
+NNNCACAGGTCTATCACCCTATTAACCACTCACGGGAGCTCTCCATGCAT
+TTGGTATTTTCGTCTGGGGGGTGTGCACGCGATAGCATTGCGAGACGCTG
+GAGCCGGAGCACCCTATGTCGCAGTATCTGTCTTTGATTCCTGCCTCATT
+CTATTATTTATCGCACCTACGTTCAATATTACAGGCGAACATACCTACTA
+AAGTGTGTTAATTAATTAATGCTTGTAGGACATAATAATAACAATTGAAT
+GTCTGCACAGCCGCTTTCCACACAGACATCATAACAAAAAATTTCCACCA
+AACCCCCCCCTCCCCCCGCTTCTGGCCACAGCACTTAAACACATCTCTGC
+CAAACCCCAAAAACAAAGAACCCTAACACCAGCCTAACCAGATTTCAAAT
+TTTATCTTTAGGCGGTATGCACTTTTAACAGTCACCCCCCAACTAACACA
+TTATTTTCCCCTCCCACTCCCATACTACTAATCTCATCAATACAACCCCC
+GCCCATCCTACCCAGCACACACACACCGCTGCTAACCCCATACCCCGAAC
+CAACCAAACCCCAAAGACACCCCCCACAGTTTATGTAGCTTACCTCCTCA
+AAGCAATACACTGAAAATGTTTAGACGGGCTCACATCACCCCATAAACAA
+ATAGGTTTGGTCCTAGCCTTTCTATTAGCTCTTAGTAAGATTACACATGC
+AAGCATCCCCGTTCCAGTGAGTTCACCCTCTAAATCACCACGATCAAAAG
+GGACAAGCATCAAGCACGCAGCAATGCAGCTCAAAACGCTTAGCCTAGCC
+ACACCCCCACGGGAAACAGCAGTGATTAACCTTTAGCAATAAACGAAAGT
+TTAACTAAGCTATACTAACCCCAGGGTTGGTCAATTTCGTGCCAGCCACC
+GCGGTCACACGATTAACCCAAGTCAATAGAAGCCGGCGTAAAGAGTGTTT
+TAGATCACCCCCTCCCCAATAAAGCTAAAACTCACCTGAGTTGTAAAAAA
+CTCCAGTTGACACAAAATAGACTACGAAAGTGGCTTTAACATATCTGAAC
+ACACAATAGCTAAGACCCAAACTGGGATTAGATACCCCACTATGCTTAGC
+CCTAAACCTCAACAGTTAAATCAACAAAACTGCTCGCCAGAACACTACGA
+GCCACAGCTTAAAACTCAAAGGACCTGGCGGTGCTTCATATCCCTCTAGA
+GGAGCCTGTTCTGTAATCGATAAACCCCGATCAACCTCACCACCTCTTGC
+TCAGCCTATATACCGCCATCTTCAGCAAACCCTGATGAAGGCTACAAAGT
+AAGCGCAAGTACCCACGTAAAGACGTTAGGTCAAGGTGTAGCCCATGAGG
+TGGCAAGAAATGGGCTACATTTTCTACCCCAGAAAACTACGATAGCCCTT
+ATGAAACTTAAGGGTCGAAGGTGGATTTAGCAGTAAACTGAGAGTAGAGT
+GCTTAGTTGAACAGGGCCCTGAAGCGCGTACACACCGCCCGTCACCCTCC
+TCAAGTATACTTCAAAGGACATTTAACTAAAACCCCTACGCATTTATATA
+GAGGAGACAAGTCGTAACATGGTAAGTGTACTGGAAAGTGCACTTGGACG
+AACCAGAGTGTAGCTTAACACAAAGCACCCAACTTACACTTAGGAGATTT
+CAACTTAACTTGACCGCTCTGAGCTAAACCTAGCCCCAAACCCACTCCAC
+CTTACTACCAGACAACCTTAGCCAAACCATTTACCCAAATAAAGTATAGG
+CGATAGAAATTGAAACCTGGCGCAATAGATATAGTACCGCAAGGGAAAGA
+TGAAAAATTATAACCAAGCATAATATAGCAAGGACTAACCCCTATACCTT
+CTGCATAATGAATTAACTAGAAATAACTTTGCAAGGAGAGCCAAAGCTAA
+GACCCCCGAAACCAGACGAGCTACCTAAGAACAGCTAAAAGAGCACACCC
+GTCTATGTAGCAAAATAGTGGGAAGATTTATAGGTAGAGGCGACAAACCT
+ACCGAGCCTGGTGATAGCTGGTTGTCCAAGATAGAATCTTAGTTCAACTT
+TAAATTTGCCCACAGAACCCTCTAAATCCCCTTGTAAATTTAACTGTTAG
+TCCAAAGAGGAACAGCTCTTTGGACACTAGGAAAAAACCTTGTAGAGAGA
+GTAAAAAATTTAACACCCATAGTAGGCCTAAAAGCAGCCACCAATTAAGA
+AAGCGTTCAAGCTCAACACCCACTACCTAAAAAATCCCAAACATATAACT
+GAACTCCTCACACCCAATTGGACCAATCTATCACCCTATAGAAGAACTAA
+TGTTAGTATAAGTAACATGAAAACATTCTCCTCCGCATAAGCCTGCGTCA
+GATCAAAACACTGAACTGACAATTAACAGCCCAATATCTACAATCAACCA
+ACAAGTCATTATTACCCTCACTGTCAACCCAACACAGGCATGCTCATAAG
+GAAAGGTTAAAAAAAGTAAAAGGAACTCGGCAAACCTTACCCCGCCTGTT
+TACCAAAAACATCACCTCTAGCATCACCAGTATTAGAGGCACCGCCTGCC
+CAGTGACACATGTTTAACGGCCGCGGTACCCTAACCGTGCAaaggtagca
+taatcacttgttccttaaatagggacctgtatgaatggctccacgagggt
+tcagctgtctcttacttttaaccagtgaaattgacctgcccgtgaagagg
+cgggcatgacacagcaagacgagaagaccctatggagctttaatttaTTA
+ATGCAAACAGTACCTAACAAACCCACAGGTCCTAAACTACCAAACCTGCA
+TTAAAAATTTCGGTTGGGGCGACCTCGGAGCAGAACCCAACCTCCGAGCA
+GTACATGCTAAGACTTCACCAGTCAAAGCGAACTACTATACTCAATTGAT
+CCAATAACTTGACCAACGGAACAAGTTACCCTAGGGATAACAGCGCAATC
+CTATTCTAGAGTCCATATCAACAATAGGGTTTACGACCTCGATGTTGGAT
+CAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGA
+TTAAAGTCCTACGTGATCTGAGTTCAGACCGGAGTAATCCAGGTCGGTTT
+CTATCTACTTCAAATTCCTCCCTGTACGAAAGGACAAGAGAAATAAGGCC
+TACTTCACAAAGCGCCTTCCCCCGTAAATGATATCATCTCAACTTAGTAT
+TATACCCACACCCACCCAAGAACAGGGTTTgttaagatggcagagcccgg
+taatcgcataaaacttaaaactttacagtcagaggttcaattcctcttct
+taacaacaTACCCATGGCCAACCTCCTACTCCTCATTGTACCCATTCTAA
+TCGCAATGGCATTCCTAATGCTTACCGAACGAAAAATTCTAGGCTATATA
+CAACTACGCAAAGGCCCCAACGTTGTAGGCCCCTACGGGCTACTACAACC
+CTTCGCTGACGCCATAAAACTCTTCACCAAAGAGCCCCTAAAACCCGCCA
+CATCTACCATCACCCTCTACATCACCGCCCCGACCTTAGCTCTCACCATC
+GCTCTTCTACTATGAACCCCCCTCCCCATACCCAACCCCCTGGTCAACCT
+CAACCTAGGCCTCCTATTTATTCTAGCCACCTCTAGCCTAGCCGTTTACT
+CAATCCTCTGATCAGGGTGAGCATCAAACTCAAACTACGCCCTGATCGGC
+GCACTGCGAGCAGTAGCCCAAACAATCTCATATGAAGTCACCCTAGCCAT
+CATTCTACTATCAACATTACTAATAAGTGGCTCCTTTAACCTCTCCACCC
+TTATCACAACACAAGAACACCTCTGATTACTCCTGCCATCATGACCCTTG
+GCCATAATATGATTTATCTCCACACTAGCAGAGACCAACCGAACCCCCTT
+CGACCTTGCCGAAGGGGAGTCCGAACTAGTCTCAGGCTTCAACATCGAAT
+ACGCCGCAGGCCCCTTCGCCCTATTCTTCATAGCCGAATACACAAACATT
+ATTATAATAAACACCCTCACCACTACAATCTTCCTAGGAACAACATATGA
+CGCACTCTCCCCTGAACTCTACACAACATATTTTGTCACCAAGACCCTAC
+TTCTAACCTCCCTGTTCTTATGAATTCGAACAGCATACCCCCGATTCCGC
+TACGACCAACTCATACACCTCCTATGAAAAAACTTCCTACCACTCACCCT
+AGCATTACTTATATGATATGTCTCCATACCCATTACAATCTCCAGCATTC
+CCCCTCAAACCTAAGAAATATGTCTGATAAAAGAGTTACTTTGATAGAGT
+AAATAATAGGAGCTTAAACCCCCTTATTTctaggactatgagaatcgaac
+ccatccctgagaatccaaaattctccgtgccacctatcacaccccatcct
+aAAGTAAGGTCAGCTAAATAAGCTATCGGGCCCATACCCCGAAAATGTTG
+GTTATACCCTTCCCGTACTAATTAATCCCCTGGCCCAACCCGTCATCTAC
+TCTACCATCTTTGCAGGCACACTCATCACAGCGCTAAGCTCGCACTGATT
+TTTTACCTGAGTAGGCCTAGAAATAAACATGCTAGCTTTTATTCCAGTTC
+TAACCAAAAAAATAAACCCTCGTTCCACAGAAGCTGCCATCAAGTATTTC
+CTCACGCAAGCAACCGCATCCATAATCCTTCTAATAGCTATCCTCTTCAA
+CAATATACTCTCCGGACAATGAACCATAACCAATACTACCAATCAATACT
+CATCATTAATAATCATAATGGCTATAGCAATAAAACTAGGAATAGCCCCC
+TTTCACTTCTGAGTCCCAGAGGTTACCCAAGGCACCCCTCTGACATCCGG
+CCTGCTTCTTCTCACATGACAAAAACTAGCCCCCATCTCAATCATATACC
+AAATCTCTCCCTCACTAAACGTAAGCCTTCTCCTCACTCTCTCAATCTTA
+TCCATCATAGCAGGCAGTTGAGGTGGATTAAACCAAACCCAGCTACGCAA
+AATCTTAGCATACTCCTCAATTACCCACATAGGATGAATAATAGCAGTTC
+TACCGTACAACCCTAACATAACCATTCTTAATTTAACTATTTATATTATC
+CTAACTACTACCGCATTCCTACTACTCAACTTAAACTCCAGCACCACGAC
+CCTACTACTATCTCGCACCTGAAACAAGCTAACATGACTAACACCCTTAA
+TTCCATCCACCCTCCTCTCCCTAGGAGGCCTGCCCCCGCTAACCGGCTTT
+TTGCCCAAATGGGCCATTATCGAAGAATTCACAAAAAACAATAGCCTCAT
+CATCCCCACCATCATAGCCACCATCACCCTCCTTAACCTCTACTTCTACC
+TACGCCTAATCTACTCCACCTCAATCACACTACTCCCCATATCTAACAAC
+GTAAAAATAAAATGACAGTTTGAACATACAAAACCCACCCCATTCCTCCC
+CACACTCATCGCCCTTACCACGCTACTCCTACCTATCTCCCCTTTTATAC
+TAATAATCTTATAGAAATTTAGGTTAAATACAGACCAAGAGCCTTCAAAG
+CCCTCAGTAAGTTGCAATACTTAATTTCTGCAACAGCTAAGGACTGCAAA
+ACCCCACTCTGCATCAACTGAACGCAAATCAGCCACTTTAATTAAGCTAA
+GCCCTTACTAGACCAATGGGACTTAAACCCACAAACACTTAGTTAACAGC
+TAAGCACCCTAATCAACTGGCTTCAATCTACTTCTCCCGCCGCCGGGAAA
+AAAGGCGGGAGAAGCCCCGGCAGGTTTGAAGCTGCTTCTTCGAATTTGCA
+ATTCAATATGAAAATCACCTCGGAGCTGGTAAAAAGAGGCCTAACCCCTG
+TCTTTAGATTTACAGTCCAATGCTTCACTCAGCCATTTTACCTCACCCCC
+ACTGATGTTCGCCGACCGTTGACTATTCTCTACAAACCACAAAGACATTG
+GAACACTATACCTATTATTCGGCGCATGAGCTGGAGTCCTAGGCACAGCT
+CTAAGCCTCCTTATTCGAGCCGAGCTGGGCCAGCCAGGCAACCTTCTAGG
+TAACGACCACATCTACAACGTTATCGTCACAGCCCATGCATTTGTAATAA
+TCTTCTTCATAGTAATACCCATCATAATCGGAGGCTTTGGCAACTGACTA
+GTTCCCCTAATAATCGGTGCCCCCGATATGGCGTTTCCCCGCATAAACAA
+CATAAGCTTCTGACTCTTACCTCCCTCTCTCCTACTCCTGCTCGCATCTG
+CTATAGTGGAGGCCGGAGCAGGAACAGGTTGAACAGTCTACCCTCCCTTA
+GCAGGGAACTACTCCCACCCTGGAGCCTCCGTAGACCTAACCATCTTCTC
+CTTACACCTAGCAGGTGTCTCCTCTATCTTAGGGGCCATCAATTTCATCA
+CAACAATTATCAATATAAAACCCCCTGCCATAACCCAATACCAAACGCCC
+CTCTTCGTCTGATCCGTCCTAATCACAGCAGTCCTACTTCTCCTATCTCT
+CCCAGTCCTAGCTGCTGGCATCACTATACTACTAACAGACCGCAACCTCA
+ACACCACCTTCTTCGACCCCGCCGGAGGAGGAGACCCCATTCTATACCAA
+CACCTATTCTGATTTTTCGGTCACCCTGAAGTTTATATTCTTATCCTACC
+AGGCTTCGGAATAATCTCCCATATTGTAACTTACTACTCCGGAAAAAAAG
+AACCATTTGGATACATAGGTATGGTCTGAGCTATGATATCAATTGGCTTC
+CTAGGGTTTATCGTGTGAGCACACCATATATTTACAGTAGGAATAGACGT
+AGACACACGAGCATATTTCACCTCCGCTACCATAATCATCGCTATCCCCA
+CCGGCGTCAAAGTATTTAGCTGACTCGCCACACTCCACGGAAGCAATATG
+AAATGATCTGCTGCAGTGCTCTGAGCCCTAGGATTCATCTTTCTTTTCAC
+CGTAGGTGGCCTGACTGGCATTGTATTAGCAAACTCATCACTAGACATCG
+TACTACACGACACGTACTACGTTGTAGCTCACTTCCACTATGTCCTATCA
+ATAGGAGCTGTATTTGCCATCATAGGAGGCTTCATTCACTGATTTCCCCT
+ATTCTCAGGCTACACCCTAGACCAAACCTACGCCAAAATCCATTTCACTA
+TCATATTCATCGGCGTAAATCTAACTTTCTTCCCACAACACTTTCTCGGC
+CTATCCGGAATGCCCCGACGTTACTCGGACTACCCCGATGCATACACCAC
+ATGAAACATCCTATCATCTGTAGGCTCATTCATTTCTCTAACAGCAGTAA
+TATTAATAATTTTCATGATTTGAGAAGCCTTCGCTTCGAAGCGAAAAGTC
+CTAATAGTAGAAGAACCCTCCATAAACCTGGAGTGACTATATGGATGCCC
+CCCACCCTACCACACATTCGAAGAACCCGTATACATAAAATCTAGACAaa
+aaaggaaggaatcgaaccccccaaagctggtttcaagccaaccccatggc
+ctccatgactttttcAAAAAGGTATTAGAAAAACCATTTCATAACTTTGT
+CAAAGTTAAATTATAGGCTAAATCCTATATATCTTAATGGCACATGCAGC
+GCAAGTAGGTCTACAAGACGCTACTTCCCCTATCATAGAAGAGCTTATCA
+CCTTTCATGATCACGCCCTCATAATCATTTTCCTTATCTGCTTCCTAGTC
+CTGTATGCCCTTTTCCTAACACTCACAACAAAACTAACTAATACTAACAT
+CTCAGACGCTCAGGAAATAGAAACCGTCTGAACTATCCTGCCCGCCATCA
+TCCTAGTCCTCATCGCCCTCCCATCCCTACGCATCCTTTACATAACAGAC
+GAGGTCAACGATCCCTCCCTTACCATCAAATCAATTGGCCACCAATGGTA
+CTGAACCTACGAGTACACCGACTACGGCGGACTAATCTTCAACTCCTACA
+TACTTCCCCCATTATTCCTAGAACCAGGCGACCTGCGACTCCTTGACGTT
+GACAATCGAGTAGTACTCCCGATTGAAGCCCCCATTCGTATAATAATTAC
+ATCACAAGACGTCTTGCACTCATGAGCTGTCCCCACATTAGGCTTAAAAA
+CAGATGCAATTCCCGGACGTCTAAACCAAACCACTTTCACCGCTACACGA
+CCGGGGGTATACTACGGTCAATGCTCTGAAATCTGTGGAGCAAACCACAG
+TTTCATGCCCATCGTCCTAGAATTAATTCCCCTAAAAATCTTTGAAATAG
+GGCCCGTATTTACCCTATAGCACCCCCTCTACCCCCTCTAGAGCCCACTG
+TAAAGCTAACTTAGCATTAACCTTTTAAGTTAAAGATTAAGAGAACCAAC
+ACCTCTTTACAGTGAAATGCCCCAACTAAATACTACCGTATGGCCCACCA
+TAATTACCCCCATACTCCTTACACTATTCCTCATCACCCAACTAAAAATA
+TTAAACACAAACTACCACCTACCTCCCTCACCAAAGCCCATAAAAATAAA
+AAATTATAACAAACCCTGAGAACCAAAATGAACGAAAATCTGTTCGCTTC
+ATTCATTGCCCCCACAATCCTAGGCCTACCCGCCGCAGTACTGATCATTC
+TATTTCCCCCTCTATTGATCCCCACCTCCAAATATCTCATCAACAACCGA
+CTAATCACCACCCAACAATGACTAATCAAACTAACCTCAAAACAAATGAT
+AGCCATACACAACACTAAAGGACGAACCTGATCTCTTATACTAGTATCCT
+TAATCATTTTTATTGCCACAACTAACCTCCTCGGACTCCTGCCTCACTCA
+TTTACACCAACCACCCAACTATCTATAAACCTAGCCATGGCCATCCCCTT
+ATGAGCGGGCGCAGTGATTATAGGCTTTCGCTCTAAGATTAAAAATGCCC
+TAGCCCACTTCTTACCACAAGGCACACCTACACCCCTTATCCCCATACTA
+GTTATTATCGAAACCATCAGCCTACTCATTCAACCAATAGCCCTGGCCGT
+ACGCCTAACCGCTAACATTACTGCAGGCCACCTACTCATGCACCTAATTG
+GAAGCGCCACCCTAGCAATATCAACCATTAACCTTCCCTCTACACTTATC
+ATCTTCACAATTCTAATTCTACTGACTATCCTAGAAATCGCTGTCGCCTT
+AATCCAAGCCTACGTTTTCACACTTCTAGTAAGCCTCTACCTGCACGACA
+ACACATAATGACCCACCAATCACATGCCTATCATATAGTAAAACCCAGCC
+CATGACCCCTAACAGGGGCCCTCTCAGCCCTCCTAATGACCTCCGGCCTA
+GCCATGTGATTTCACTTCCACTCCATAACGCTCCTCATACTAGGCCTACT
+AACCAACACACTAACCATATACCAATGGTGGCGCGATGTAACACGAGAAA
+GCACATACCAAGGCCACCACACACCACCTGTCCAAAAAGGCCTTCGATAC
+GGGATAATCCTATTTATTACCTCAGAAGTTTTTTTCTTCGCAGGATTTTT
+CTGAGCCTTTTACCACTCCAGCCTAGCCCCTACCCCCCAACTAGGAGGGC
+ACTGGCCCCCAACAGGCATCACCCCGCTAAATCCCCTAGAAGTCCCACTC
+CTAAACACATCCGTATTACTCGCATCAGGAGTATCAATCACCTGAGCTCA
+CCATAGTCTAATAGAAAACAACCGAAACCAAATAATTCAAGCACTGCTTA
+TTACAATTTTACTGGGTCTCTATTTTACCCTCCTACAAGCCTCAGAGTAC
+TTCGAGTCTCCCTTCACCATTTCCGACGGCATCTACGGCTCAACATTTTT
+TGTAGCCACAGGCTTCCACGGACTTCACGTCATTATTGGCTCAACTTTCC
+TCACTATCTGCTTCATCCGCCAACTAATATTTCACTTTACATCCAAACAT
+CACTTTGGCTTCGAAGCCGCCGCCTGATACTGGCATTTTGTAGATGTGGT
+TTGACTATTTCTGTATGTCTCCATCTATTGATGAGGGTCTTACTCTTTTA
+GTATAAATAGTACCGTTAACTTCCAATTAACTAGTTTTGACAACATTCAA
+AAAAGAGTAATAAACTTCGCCTTAATTTTAATAATCAACACCCTCCTAGC
+CTTACTACTAATAATTATTACATTTTGACTACCACAACTCAACGGCTACA
+TAGAAAAATCCACCCCTTACGAGTGCGGCTTCGACCCTATATCCCCCGCC
+CGCGTCCCTTTCTCCATAAAATTCTTCTTAGTAGCTATTACCTTCTTATT
+ATTTGATCTAGAAATTGCCCTCCTTTTACCCCTACCATGAGCCCTACAAA
+CAACTAACCTGCCACTAATAGTTATGTCATCCCTCTTATTAATCATCATC
+CTAGCCCTAAGTCTGGCCTATGAGTGACTACAAAAAGGATTAGACTGAGC
+CGAATTGGTATATAGTTTAAACAAAACGAATGATTTCGACTCATTAAATT
+ATGATAATCATATTTACCAAATGCCCCTCATTTACATAAATATTATACTA
+GCATTTACCATCTCACTTCTAGGAATACTAGTATATCGCTCACACCTCAT
+ATCCTCCCTACTATGCCTAGAAGGAATAATACTATCGCTGTTCATTATAG
+CTACTCTCATAACCCTCAACACCCACTCCCTCTTAGCCAATATTGTGCCT
+ATTGCCATACTAGTCTTTGCCGCCTGCGAAGCAGCGGTGGGCCTAGCCCT
+ACTAGTCTCAATCTCCAACACATATGGCCTAGACTACGTACATAACCTAA
+ACCTACTCCAATGCTAAAACTAATCGTCCCAACAATTATATTACTACCAC
+TGACATGACTTTCCAAAAAGCACATAATTTGAATCAACACAACCACCCAC
+AGCCTAATTATTAGCATCATCCCCCTACTATTTTTTAACCAAATCAACAA
+CAACCTATTTAGCTGTTCCCCAACCTTTTCCTCCGACCCCCTAACAACCC
+CCCTCCTAATACTAACTACCTGACTCCTACCCCTCACAATCATGGCAAGC
+CAACGCCACTTATCCAGCGAACCACTATCACGAAAAAAACTCTACCTCTC
+TATACTAATCTCCCTACAAATCTCCTTAATTATAACATTCACAGCCACAG
+AACTAATCATATTTTATATCTTCTTCGAAACCACACTTATCCCCACCTTG
+GCTATCATCACCCGATGAGGCAACCAGCCAGAACGCCTGAACGCAGGCAC
+ATACTTCCTATTCTACACCCTAGTAGGCTCCCTTCCCCTACTCATCGCAC
+TAATTTACACTCACAACACCCTAGGCTCACTAAACATTCTACTACTCACT
+CTCACTGCCCAAGAACTATCAAACTCCTGAGCCAACAACTTAATATGACT
+AGCTTACACAATAGCTTTTATAGTAAAGATACCTCTTTACGGACTCCACT
+TATGACTCCCTAAAGCCCATGTCGAAGCCCCCATCGCTGGGTCAATAGTA
+CTTGCCGCAGTACTCTTAAAACTAGGCGGCTATGGTATAATACGCCTCAC
+ACTCATTCTCAACCCCCTGACAAAACACATAGCCTACCCCTTCCTTGTAC
+TATCCCTATGAGGCATAATTATAACAAGCTCCATCTGCCTACGACAAACA
+GACCTAAAATCGCTCATTGCATACTCTTCAATCAGCCACATAGCCCTCGT
+AGTAACAGCCATTCTCATCCAAACCCCCTGAAGCTTCACCGGCGCAGTCA
+TTCTCATAATCGCCCACGGACTCACATCCTCATTACTATTCTGCCTAGCA
+AACTCAAACTACGAACGCACTCACAGTCGCATCATAATCCTCTCTCAAGG
+ACTTCAAACTCTACTCCCACTAATAGCTTTTTGATGACTTCTAGCAAGCC
+TCGCTAACCTCGCCTTACCCCCCACTATTAACCTACTGGGAGAACTCTCT
+GTGCTAGTAACCACGTTCTCCTGATCAAATATCACTCTCCTACTTACAGG
+ACTCAACATACTAGTCACAGCCCTATACTCCCTCTACATATTTACCACAA
+CACAATGGGGCTCACTCACCCACCACATTAACAACATAAAACCCTCATTC
+ACACGAGAAAACACCCTCATGTTCATACACCTATCCCCCATTCTCCTCCT
+ATCCCTCAACCCCGACATCATTACCGGGTTTTCCTCTTGTAAATATAGTT
+TAACCAAAACATCAGATTGTGAATCTGACAACAGAGGCTTACGACCCCTT
+ATTTACCGAGAAAGCTCACAAGAACTGCTAACTCATGCCCCCATGTCTAA
+CAACATGGCTTTCTCAACTTTTAAAGGATAACAGCTATCCATTGGTCTTA
+GGCCCCAAAAATTTTGGTGCAACTCCAAATAAAAGTAATAACCATGCACA
+CTACTATAACCACCCTAACCCTGACTTCCCTAATTCCCCCCATCCTTACC
+ACCCTCGTTAACCCTAACAAAAAAAACTCATACCCCCATTATGTAAAATC
+CATTGTCGCATCCACCTTTATTATCAGTCTCTTCCCCACAACAATATTCA
+TGTGCCTAGACCAAGAAGTTATTATCTCGAACTGACACTGAGCCACAACC
+CAAACAACCCAGCTCTCCCTAAGCTTCAAACTAGACTACTTCTCCATAAT
+ATTCATCCCTGTAGCATTGTTCGTTACATGGTCCATCATAGAATTCTCAC
+TGTGATATATAAACTCAGACCCAAACATTAATCAGTTCTTCAAATATCTA
+CTCATTTTCCTAATTACCATACTAATCTTAGTTACCGCTAACAACCTATT
+CCAACTGTTCATCGGCTGAGAGGGCGTAGGAATTATATCCTTCTTGCTCA
+TCAGTTGATGATACGCCCGAGCAGATGCCAACACAGCAGCCATTCAAGCA
+GTCCTATACAACCGTATCGGCGATATCGGTTTCATCCTCGCCTTAGCATG
+ATTTATCCTACACTCCAACTCATGAGACCCACAACAAATAGCCCTTCTAA
+ACGCTAATCCAAGCCTCACCCCACTACTAGGCCTCCTCCTAGCAGCAGCA
+GGCAAATCAGCCCAATTAGGTCTCCACCCCTGACTCCCCTCAGCCATAGA
+AGGCCCCACCCCAGTCTCAGCCCTACTCCACTCAAGCACTATAGTTGTAG
+CAGGAATCTTCTTACTCATCCGCTTCCACCCCCTAGCAGAAAATAGCCCA
+CTAATCCAAACTCTAACACTATGCTTAGGCGCTATCACCACTCTGTTCGC
+AGCAGTCTGCGCCCTTACACAAAATGACATCAAAAAAATCGTAGCCTTCT
+CCACTTCAAGTCAACTAGGACTCATAATAGTTACAATCGGCATCAACCAA
+CCACACCTAGCATTCCTGCACATCTGTACCCACGCCTTCTTCAAAGCCAT
+ACTATTTATGTGCTCCGGGTCCATCATCCACAACCTTAACAATGAACAAG
+ATATTCGAAAAATAGGAGGACTACTCAAAACCATACCTCTCACTTCAACC
+TCCCTCACCATTGGCAGCCTAGCATTAGCAGGAATACCTTTCCTCACAGG
+TTTCTACTCCAAAGACCACATCATCGAAACCGCAAACATATCATACACAA
+ACGCCTGAGCCCTATCTATTACTCTCATCGCTACCTCCCTGACAAGCGCC
+TATAGCACTCGAATAATTCTTCTCACCCTAACAGGTCAACCTCGCTTCCC
+CACCCTTACTAACATTAACGAAAATAACCCCACCCTACTAAACCCCATTA
+AACGCCTGGCAGCCGGAAGCCTATTCGCAGGATTTCTCATTACTAACAAC
+ATTTCCCCCGCATCCCCCTTCCAAACAACAATCCCCCTCTACCTAAAACT
+CACAGCCCTCGCTGTCACTTTCCTAGGACTTCTAACAGCCCTAGACCTCA
+ACTACCTAACCAACAAACTTAAAATAAAATCCCCACTATGCACATTTTAT
+TTCTCCAACATACTCGGATTCTACCCTAGCATCACACACCGCACAATCCC
+CTATCTAGGCCTTCTTACGAGCCAAAACCTGCCCCTACTCCTCCTAGACC
+TAACCTGACTAGAAAAGCTATTACCTAAAACAATTTCACAGCACCAAATC
+TCCACCTCCATCATCACCTCAACCCAAAAAGGCATAATTAAACTTTACTT
+CCTCTCTTTCTTCTTCCCACTCATCCTAACCCTACTCCTAATCACATAAC
+CTATTCCCCCGAGCAATCTCAATTACAATATATACACCAACAAACAATGT
+TCAACCAGTAACCACTACTAATCAACGCCCATAATCATACAAAGCCCCCG
+CACCAATAGGATCCTCCCGAATCAACCCTGACCCCTCTCCTTCATAAATT
+ATTCAGCTTCCTACACTATTAAAGTTTACCACAACCACCACCCCATCATA
+CTCTTTCACCCACAGCACCAATCCTACCTCCATCGCTAACCCCACTAAAA
+CACTCACCAAGACCTCAACCCCTGACCCCCATGCCTCAGGATACTCCTCA
+ATAGCCATCGCTGTAGTATATCCAAAGACAACCATCATTCCCCCTAAATA
+AATTAAAAAAACTATTAAACCCATATAACCTCCCCCAAAATTCAGAATAA
+TAACACACCCGACCACACCGCTAACAATCAGTACTAAACCCCCATAAATA
+GGAGAAGGCTTAGAAGAAAACCCCACAAACCCCATTACTAAACCCACACT
+CAACAGAAACAAAGCATACATCATTATTCTCGCACGGACTACAACCACGA
+CCAATGATATGAAAAACCATCGTTGTATTTCAACTACAAGAACACCAATG
+ACCCCAATACGCAAAATTAACCCCCTAATAAAATTAATTAACCACTCATT
+CATCGACCTCCCCACCCCATCCAACATCTCCGCATGATGAAACTTCGGCT
+CACTCCTTGGCGCCTGCCTGATCCTCCAAATCACCACAGGACTATTCCTA
+GCCATACACTACTCACCAGACGCCTCAACCGCCTTTTCATCAATCGCCCA
+CATCACTCGAGACGTAAATTATGGCTGAATCATCCGCTACCTTCACGCCA
+ATGGCGCCTCAATATTCTTTATCTGCCTCTTCCTACACATCGGGCGAGGC
+CTATATTACGGATCATTTCTCTACTCAGAAACCTGAAACATCGGCATTAT
+CCTCCTGCTTGCAACTATAGCAACAGCCTTCATAGGCTATGTCCTCCCGT
+GAGGCCAAATATCATTCTGAGGGGCCACAGTAATTACAAACTTACTATCC
+GCCATCCCATACATTGGGACAGACCTAGTTCAATGAATCTGAGGAGGCTA
+CTCAGTAGACAGTCCCACCCTCACACGATTCTTTACCTTTCACTTCATCT
+TACCCTTCATTATTGCAGCCCTAGCAGCACTCCACCTCCTATTCTTGCAC
+GAAACGGGATCAAACAACCCCCTAGGAATCACCTCCCATTCCGATAAAAT
+CACCTTCCACCCTTACTACACAATCAAAGACGCCCTCGGCTTACTTCTCT
+TCCTTCTCTCCTTAATGACATTAACACTATTCTCACCAGACCTCCTAGGC
+GACCCAGACAATTATACCCTAGCCAACCCCTTAAACACCCCTCCCCACAT
+CAAGCCCGAATGATATTTCCTATTCGCCTACACAATTCTCCGATCCGTCC
+CTAACAAACTAGGAGGCGTCCTTGCCCTATTACTATCCATCCTCATCCTA
+GCAATAATCCCCATCCTCCATATATCCAAACAACAAAGCATAATATTTCG
+CCCACTAAGCCAATCACTTTATTGACTCCTAGCCGCAGACCTCCTCATTC
+TAACCTGAATCGGAGGACAACCAGTAAGCTACCCTTTTACCATCATTGGA
+CAAGTAGCATCCGTACTATACTTCACAACAATCCTAATCCTAATACCAAC
+TATCTCCCTAATTGAAAACAAAATACTCAAATGGGCCTGTCCTTGTAGTA
+TAAACTAATACACCAGTCTTGTAAACCGGAGACGAAAACCTTTTTCCAAG
+GACAAATCAGAGAAAAAGTCTTTAACTCCACCATTAGCACCCAAAGCTAA
+GATTCTAATTTAAACTATTCTCTGTTCTTTCATGGGGAAGCAGATTTGGG
+TACCACCCAAGTATTGACTCACCCATCAACAACCGCTATGTATTTCGTAC
+ATTACTGCCAGCCACCATGAATATTGTACGGTACCATAAATACTTGACCA
+CCTGTAGTACATAAAAACCCAACCCACATCAAACCCCCCCCCCCCATGCT
+TACAAGCAAGTACAGCAATCAACCTTCAACTATCACACATCAACTGCAAC
+TCCAAAGCCACCCCTCACCCACTAGGATACCAACAAACCTACCCACCCTT
+AACAGTACATAGTACATAAAGTCATTTACCGTACATAGCACATTACAGTC
+AAATCCCTTCTCGTCCCCATGGATGACCCCCCTCAGATAGGGGTCCCTTG
+ACCACCATCCTCCGTGAAATCAATATCCCGCACAAGAGTGCTACTCTCCT
+CGCTCCGGGCCCATAACACTTGGGGGTAGCTAAAGTGAACTGTATCCGAC
+ATCTGGTTCCTACTTCAGGGCCATAAAGCCTAAATAGCCCACACGTTCCC
+CTTAAATAAGACATCACGATG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/genome.fasta.fai	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,1 @@
+chrM	16571	6	50	51
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/normal.antitargetcoverage.cnn	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,1 @@
+chromosome	start	end	gene	log2
Binary file test-data/normal.bam has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/normal.targetcoverage.cnn	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,62 @@
+chromosome	start	end	gene	depth	log2
+chrM	576	848	-	493.485	8.94686
+chrM	848	1121	-	22.4469	4.48844
+chrM	1121	1394	-	4.59341	2.19956
+chrM	1394	1667	-	11.022	3.46231
+chrM	1667	1940	-	7.45055	2.89735
+chrM	1940	2212	-	1.36029	0.443919
+chrM	2212	2485	-	10.6081	3.40709
+chrM	2485	2758	-	31.7436	4.98839
+chrM	2758	3031	-	5.35531	2.42097
+chrM	3031	3304	-	7.55678	2.91777
+chrM	3306	3579	-	10.9817	3.45703
+chrM	3579	3853	-	12.719	3.66891
+chrM	3853	4126	-	7.17949	2.84388
+chrM	4126	4400	-	1.65693	0.728516
+chrM	4401	4695	-	5.18707	2.37492
+chrM	4695	4990	-	17.7458	4.1494
+chrM	4990	5284	-	5.94218	2.57099
+chrM	5284	5579	-	20.8136	4.37945
+chrM	5586	5655	-	9.37681	3.2291
+chrM	5656	5729	-	4.76712	2.25312
+chrM	5760	5891	-	10.5954	3.40537
+chrM	5903	6171	-	13.8097	3.78761
+chrM	6171	6440	-	13.5353	3.75866
+chrM	6440	6708	-	11.3657	3.50661
+chrM	6708	6977	-	7.80669	2.96471
+chrM	6977	7245	-	15.3321	3.93848
+chrM	7245	7514	-	2.52045	1.33368
+chrM	7517	7767	-	8.152	3.02715
+chrM	7767	8018	-	19.2311	4.26537
+chrM	8018	8269	-	6.7251	2.74956
+chrM	8294	8364	-	0	-20
+chrM	8365	8630	-	2.89811	1.53511
+chrM	8630	8896	-	7.87594	2.97745
+chrM	8896	9162	-	13.5451	3.7597
+chrM	9162	9427	-	9.68302	3.27546
+chrM	9427	9693	-	3.43233	1.77919
+chrM	9693	9959	-	5.87594	2.55482
+chrM	9959	10224	-	3.59623	1.84648
+chrM	10224	10490	-	2.99624	1.58315
+chrM	10490	10756	-	7.1015	2.82812
+chrM	10756	11022	-	4.00376	2.00136
+chrM	11022	11287	-	11.2377	3.49028
+chrM	11287	11553	-	10.2932	3.36362
+chrM	11553	11819	-	11.109	3.47366
+chrM	11819	12084	-	11.1509	3.47909
+chrM	12084	12350	-	10.1353	3.34132
+chrM	12350	12616	-	9.23684	3.2074
+chrM	12616	12882	-	9.39474	3.23185
+chrM	12882	13147	-	15.834	3.98495
+chrM	13147	13413	-	8.90226	3.15417
+chrM	13413	13679	-	12.218	3.61094
+chrM	13679	13944	-	4.30943	2.1075
+chrM	13944	14210	-	8.87218	3.14929
+chrM	14210	14476	-	9.2218	3.20505
+chrM	14476	14742	-	33.8872	5.08267
+chrM	14746	14987	-	28.1369	4.81439
+chrM	14987	15228	-	14.2531	3.83321
+chrM	15228	15470	-	9.3719	3.22834
+chrM	15470	15711	-	11.2946	3.49756
+chrM	15711	15953	-	6.29752	2.65478
+chrM	15955	16023	-	4.13235	2.04696
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/ref-tas.cnn	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,38 @@
+chromosome	start	end	gene	log2	depth	spread
+chrM	576	647	-	13.2947	96.2958	19.7107
+chrM	647	1601	-	1.74063	22.022	2.58065
+chrM	1601	1670	-	0.474375	3.10145	0.703308
+chrM	1670	3229	-	-0.147713	1.6068	0.218999
+chrM	3229	3304	-	0	1.57333	0
+chrM	3306	4262	-	0.0246175	1.8295	0.0364979
+chrM	4262	4331	-	-10.4357	0	15.472
+chrM	4328	4400	-	-2.11465	0.0972222	3.13518
+chrM	4401	4469	-	0.106455	1.82353	0.157829
+chrM	4469	5511	-	0.501029	3.54127	0.742825
+chrM	5511	5579	-	0.394622	3.20588	0.585067
+chrM	5586	5655	-	-10.4457	0	15.4869
+chrM	5656	5729	-	0	0	0
+chrM	5760	5826	-	0	1.06061	0
+chrM	5825	5891	-	0.627211	2.5303	0.929902
+chrM	5903	7445	-	0.845795	2.01297	1.25398
+chrM	7445	7514	-	0.118826	1.85507	0.176171
+chrM	7517	7585	-	-0.884742	0.544118	1.31172
+chrM	7585	8269	-	0	1.85088	0
+chrM	8294	8364	-	-10.0424	0	14.8889
+chrM	8365	8572	-	-0.774496	0.623188	1.14827
+chrM	8526	9207	-	2.12113	2.88693	3.14479
+chrM	9206	9990	-	0	1.97194	0
+chrM	9990	10058	-	-10.5541	0	15.6474
+chrM	10058	10404	-	-0.412764	1.11272	0.611965
+chrM	10404	10469	-	-10.5842	0	15.6921
+chrM	10469	10766	-	0	1.69024	0
+chrM	10759	12137	-	0.227328	2.3164	0.337036
+chrM	12137	12206	-	-0.173094	1.76812	0.256628
+chrM	12206	12265	-	0	0.152542	0
+chrM	12265	12336	-	-8.64364	0	12.8151
+chrM	12336	14148	-	0.0642475	2.15563	0.0952533
+chrM	14148	14673	-	0.148476	2.24762	0.220131
+chrM	14673	14742	-	1.10758	8.5942	1.64209
+chrM	14746	15887	-	0.490853	3.49167	0.727739
+chrM	15887	15953	-	-10.4334	0	15.4685
+chrM	15955	16023	-	0	0	0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/reference.cnn	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,62 @@
+chromosome	start	end	gene	log2	depth	gc	rmask	spread
+chrM	576	848	-	2.75864	493.485	0.444853		4.08996
+chrM	848	1121	-	0.525695	22.4469	0.428571		0.779395
+chrM	1121	1394	-	-0.84681	4.59341	0.483516		1.25548
+chrM	1394	1667	-	0.38341	11.022	0.450549		0.568444
+chrM	1667	1940	-	-0.04005	7.45055	0.406593		0.0593781
+chrM	1940	2212	-	-1.22672	1.36029	0.411765		1.81873
+chrM	2212	2485	-	0.21482	10.6081	0.388278		0.318492
+chrM	2485	2758	-	0.64779	31.7436	0.479853		0.960413
+chrM	2758	3031	-	-0.27752	5.35531	0.457875		0.411451
+chrM	3031	3304	-	0.359575	7.55678	0.424908		0.533106
+chrM	3306	3579	-	0.03537	10.9817	0.509158		0.0524396
+chrM	3579	3853	-	0.026615	12.719	0.485401		0.0394594
+chrM	3853	4126	-	0	7.17949	0.450549		0
+chrM	4126	4400	-	-0.485607	1.65693	0.423358		0.719961
+chrM	4401	4695	-	-0.343535	5.18707	0.442177		0.509325
+chrM	4695	4990	-	0.603865	17.7458	0.427119		0.89529
+chrM	4990	5284	-	-0.43303	5.94218	0.428571		0.64201
+chrM	5284	5579	-	0.5605	20.8136	0.410169		0.830997
+chrM	5586	5655	-	-0.008305	9.37681	0.449275		0.012313
+chrM	5656	5729	-	-0.462405	4.76712	0.410959		0.685562
+chrM	5760	5891	-	0.02536	10.5954	0.442748		0.0375987
+chrM	5903	6171	-	0.008305	13.8097	0.473881		0.012313
+chrM	6171	6440	-	0.19261	13.5353	0.498141		0.285564
+chrM	6440	6708	-	0	11.3657	0.470149		0
+chrM	6708	6977	-	-0.132195	7.80669	0.457249		0.195992
+chrM	6977	7245	-	0.107015	15.3321	0.458955		0.15866
+chrM	7245	7514	-	-0.50723	2.52045	0.420074		0.752019
+chrM	7517	7767	-	0.316705	8.152	0.372		0.469547
+chrM	7767	8018	-	0.49084	19.2311	0.501992		0.727719
+chrM	8018	8269	-	-0.371965	6.7251	0.446215		0.551475
+chrM	8294	8364	-	-11.0488	0	0.342857		16.381
+chrM	8365	8630	-	-0.331755	2.89811	0.426415		0.49186
+chrM	8630	8896	-	0.13461	7.87594	0.406015		0.199573
+chrM	8896	9162	-	-0.03223	13.5451	0.466165		0.0477842
+chrM	9162	9427	-	-0.31024	9.68302	0.498113		0.459962
+chrM	9427	9693	-	-0.712625	3.43233	0.466165		1.05654
+chrM	9693	9959	-	-0.272205	5.87594	0.443609		0.403571
+chrM	9959	10224	-	-0.26954	3.59623	0.377358		0.39962
+chrM	10224	10490	-	-0.09971	2.99624	0.349624		0.14783
+chrM	10490	10756	-	-0.241135	7.1015	0.43985		0.357507
+chrM	10756	11022	-	-0.2582	4.00376	0.424812		0.382807
+chrM	11022	11287	-	0.01037	11.2377	0.430189		0.0153746
+chrM	11287	11553	-	0.06726	10.2932	0.443609		0.0997197
+chrM	11553	11819	-	0	11.109	0.466165		0
+chrM	11819	12084	-	0.28666	11.1509	0.441509		0.425002
+chrM	12084	12350	-	0.40266	10.1353	0.417293		0.596984
+chrM	12350	12616	-	0	9.23684	0.428571		0
+chrM	12616	12882	-	0.16725	9.39474	0.406015		0.247965
+chrM	12882	13147	-	0.13976	15.834	0.520755		0.207208
+chrM	13147	13413	-	-0.026615	8.90226	0.432331		0.0394594
+chrM	13413	13679	-	0.00138	12.218	0.462406		0.00204599
+chrM	13679	13944	-	-0.82452	4.30943	0.467925		1.22243
+chrM	13944	14210	-	0.317015	8.87218	0.413534		0.470006
+chrM	14210	14476	-	-0.24388	9.2218	0.477444		0.361576
+chrM	14476	14742	-	0.87922	33.8872	0.383459		1.30353
+chrM	14746	14987	-	0.43224	28.1369	0.481328		0.640839
+chrM	14987	15228	-	0.289845	14.2531	0.46888		0.429724
+chrM	15228	15470	-	-0.008065	9.3719	0.466942		0.0119572
+chrM	15470	15711	-	0.01195	11.2946	0.46473		0.0177171
+chrM	15711	15953	-	-0.03537	6.29752	0.404959		0.0524396
+chrM	15955	16023	-	0	4.13235	0.323529		0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/reference.target-tmp.bed	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,61 @@
+chrM	576	848	-
+chrM	848	1121	-
+chrM	1121	1394	-
+chrM	1394	1667	-
+chrM	1667	1940	-
+chrM	1940	2212	-
+chrM	2212	2485	-
+chrM	2485	2758	-
+chrM	2758	3031	-
+chrM	3031	3304	-
+chrM	3306	3579	-
+chrM	3579	3853	-
+chrM	3853	4126	-
+chrM	4126	4400	-
+chrM	4401	4695	-
+chrM	4695	4990	-
+chrM	4990	5284	-
+chrM	5284	5579	-
+chrM	5586	5655	-
+chrM	5656	5729	-
+chrM	5760	5891	-
+chrM	5903	6171	-
+chrM	6171	6440	-
+chrM	6440	6708	-
+chrM	6708	6977	-
+chrM	6977	7245	-
+chrM	7245	7514	-
+chrM	7517	7767	-
+chrM	7767	8018	-
+chrM	8018	8269	-
+chrM	8294	8364	-
+chrM	8365	8630	-
+chrM	8630	8896	-
+chrM	8896	9162	-
+chrM	9162	9427	-
+chrM	9427	9693	-
+chrM	9693	9959	-
+chrM	9959	10224	-
+chrM	10224	10490	-
+chrM	10490	10756	-
+chrM	10756	11022	-
+chrM	11022	11287	-
+chrM	11287	11553	-
+chrM	11553	11819	-
+chrM	11819	12084	-
+chrM	12084	12350	-
+chrM	12350	12616	-
+chrM	12616	12882	-
+chrM	12882	13147	-
+chrM	13147	13413	-
+chrM	13413	13679	-
+chrM	13679	13944	-
+chrM	13944	14210	-
+chrM	14210	14476	-
+chrM	14476	14742	-
+chrM	14746	14987	-
+chrM	14987	15228	-
+chrM	15228	15470	-
+chrM	15470	15711	-
+chrM	15711	15953	-
+chrM	15955	16023	-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/sample-diagram.pdf	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,86 @@
+%PDF-1.4
+%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com
+1 0 obj
+<<
+/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 5 0 R
+>>
+endobj
+2 0 obj
+<<
+/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
+>>
+endobj
+3 0 obj
+<<
+/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
+>>
+endobj
+4 0 obj
+<<
+/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
+>>
+endobj
+5 0 obj
+<<
+/BaseFont /Times-BoldItalic /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font
+>>
+endobj
+6 0 obj
+<<
+/Contents 10 0 R /MediaBox [ 0 0 792 612 ] /Parent 9 0 R /Resources <<
+/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
+>> /Rotate 0 /Trans <<
+
+>> 
+  /Type /Page
+>>
+endobj
+7 0 obj
+<<
+/PageMode /UseNone /Pages 9 0 R /Type /Catalog
+>>
+endobj
+8 0 obj
+<<
+/Author (anonymous) /CreationDate (D:20230324160042+00'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20230324160042+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) 
+  /Subject (unspecified) /Title (untitled) /Trapped /False
+>>
+endobj
+9 0 obj
+<<
+/Count 1 /Kids [ 6 0 R ] /Type /Pages
+>>
+endobj
+10 0 obj
+<<
+/Filter [ /ASCII85Decode /FlateDecode ] /Length 4990
+>>
+stream
+Gau0G9<TX#&`2DPd7]9`j0Hk3D'Xpj_?-)F@M'%m+j*L""N93\qu#aERm*af&/8]'DRnM5f=SW:Z8qh1mGGDA[dDO&gTQ)WS+uBqh_rkf[l9pt^NoGArJR2;Hu\Po+$Tl*htZ5Uq#?hM5Q:nk^Q,i8?bNhsr$JSKk/UZWclZ]k^-<Gm.=BLcT'QLpE/Som(.-el.9haUqVCk'5CN(i+5_OXrUXCb^AIECmEITERnrhE*ub,#S`Ka8dcPW-CW?8?[]I(\It-5Q<q1OfPdg"&bot4F^#t:nhJPpYk`aTkB>gjk$gk.*gtV5^QhP>ElQFNPr;P5ag?r2t3H)Y,h$6Z&LTX*:=PC/l$QW7T0NX$XA=4S'nQ=>TehU[5K$(gYh.rqk(1R\UE+.?2_LR?/4CEH\U@UAuP.)R>f8t-jSFZog[,\F"]n"A*Wa"t1&(11RMZUQ-lQ/DG"6P0b(LW?O+f0Lt)#R]<SY4'36Je9CZ$tY!._C@_K!=F$5_l!E6lLu9*M?9V\d'nK`U#ob>DQ\u-"r(1=R[1&VVViJ8H^RT@'bUC6'9)V&J(`.:_Y8l0W\'m2jhVG!5l"ukF80rN-E*:%o*P#$D/h.K%'7m#I?[U!bO$GA;L;;6HR1V_p0D%TmG(j%,/:e$5>@+&Wm)-"j;H:\rtfo*X`47:`U(;;hoqN3/3%2IN/HQ>d8^u[+e5n'.2*/"T&3@G#3d"n1dJ7G1'et0f[u'.]fc_'UhXRJE[R.nf<Iu".Oo<?G(@saFg7%J9GWHcZr$[d_L&QFr7"Y5;e\]AN/HL0/RSSU%#=q/ITOUn#DNU"'0eAGZV`LdNqT\lnbG(UOuV1%SAor*%d>uI="q=-)DfM::lVHOA^oZ2Ba$c"]:%b,]$HWENpqt0`qj.F`kJ>F<$q^EU/R*?r\[Y%_mCkZ,92r_&B6LGUt5BK'%lA`UR'I-MUicF!Z$4"@_icEKl@k;M[4h;TM!=O*M9D4/(_\2kGZ_i>!p^LPXYmNXt*ENpf:%.lN7G.s\82_e=$4-Pa3(P'0sM3=lD^EM8"oFBlOlX;2!K1?8bBd-FXl$jVSBWXbhmY6k[kXKKGIS.(bmO;bnKlJL6U$=<5+1XSXIZgXOqrJ(i#Z6!J1V3(L"-=%UP77S5MIcJ?qFVo:Tc,#/%0L_\QY[=sER/X%`Fr5m="(4s1'&-0S*O5/Hd%-,F3ir+b*&bh>2GblfRg;ZU;N;b%70%rb<"/9G@1$-]XH7G^?&1#d/n)05ou(M2"SDHeA;R/`)i-2ldL?@f72)Uo=A!!a#?k(f3s]Qg4&3#1TM'ndaO4L))0nN'SL+c:.b+_RZ1EaR5seoh:8P5(]2JQ_GcW/R9nFjXa\]<7ggRKZ++jt'"oFleRu3FJVl.d0=A;s?HcQJV!=*op#)it,_22d^)*CkYOVTRN_UY/Y!4s(Jc`D`SO\#<cQGUCLQt+<bpeYcdS-1*6hODk3JctfOUSK8g$VcWH8MHiaQ&98Z(bR33HBRkbImh-mFU0frN+id(J_'n0lUeWpMr<728I7Nrjs^dGojepuB2ol,5b#YGWXj%+4f43mJF19Eb/oa\aQM\jN5:(hS;\'iI,XXOi;tRBS5'9K!F.'U_AGUcHQL#U97T@iNf7*E$m>fp\M:jLM3#JVBn/Gc;/=Ah.H=2^+!<OIDWGaGJ:Zh4>8I?C/<5KM>YS[D)JMYOQNS/$!$Z,^(LXJhWlDq&)Yak=NY!n+M'rjh)&YRsT'UEtJ/-GjjF@9S#YEQ-C;Lt!?l_:9$(aSeis.+>EMid;0\,;jN^/1$:Z/8_2urP=MiC@8Epu%HI#4*&k&?>7#;@P2q07Q[&NUD5X#=c<9UKR^n-UjW'lUuD^bTHh'Wr#P3R/tO!sk#S'c[&_et_FR8-B@T`93.g&hrg4;;Dh+&dHXNckI&8Bf5E26*S-_b)J5`#sr'P@DZK(0USN$0O_bG`7=npaCPEl6K",FPYR>#;b&A\.5'9Xr.H3Ro/80CbVMpMkl[-L*^q/b#%>',@+,_)Os;uI["U1[),,?D)!&Nf1l*jT.bJjB_8(&S<=oA:"e0lsR.t'QZu[;`mE;+q(AK<R>OR(^*m*<?27B-_`_%Ao)R%WE^'<A^1)*n:KS`_Fq<=ZRgJ(`ti<K;Vm8pM;+<-""_jB,UT6-#,D?ltjC!.3G3>1A)WI'R*,P_IPXn7Dh_;dC2N7V#&(hlC0?kh84\/cdu87'2Y4`u[f^_8iJ=9>6"7SX8mCQ8kap!c.E%"nBf,@qB_b5@F=TD'i[`dW)ci5p-:_/.,7KZfd1I*njaq#koI%9)=HqRZm"2odQ*QW*Vq@BN?Bb:?0-Y)t!Fm`HH[Ug6aOA%^29!",'HTgK5Ea,]\1l5nu$D*":$Tad1]D2fj.3b8-(e1J\!^t<+LS[THp[`Ka^/]r-nOU/.'md\[8+8EL$X0FM+!Ua]tS>W6aI;CaRT";t0rR2E(P!NO\(Rt6jD3"">f2MD\P<;%ga!b/(OLJ7Y>bq1F?83@^L?r6jK%U%QB\n7:KZ1l3(BheCbYpokJ`cYCX%]^<3H^B;f^4TtYKWo^3nlA58P4Hacc`;7K`37*NmWq'U)KH:Xg'(6E8Ac%R(C=_ZELH,=<^Wu8E:a&8_;>>jMB>/4r<;%#sfshc7pN*Lj:K4e^Q1j<4tCS+u2_<cE?.?1:0'M,@41%,@lDspkWmP9MbJ(Q<DBN4&IZ/mP/<t_W]gtp*:p;:usR#>+*@=R.GXh*b.7iduu,qN:;JR)@J[rn/i1<mdY!C:GC@%Phl\.=355o;KFj>O,r1K%)*o5MB\kfXp(#!/Bo#[ok<J/h^cZYn9KmL[Br@IEq2*]@.S-q*hTAn_3_4G(!@aUd;k3%cs0?%@s#OOUF<kjZqps(qD%[lkAoi',@Zo8pl$<Tc=1tYaVga6r'CnT:k!JQA(0f1WI'TG4l]IpGR(OhN`;bp=ig9c4[uRQ)9.?.3]!>TfW9$6]BETsh.$j^T?1PAQ>dBNH%%E:@um-4VsZ;9S=[i3G,a`/%jB8m]:b(=HYgbcIqC]_l)@K%Ehh`Qpp%gk'3@!!kd8?BWp@I8bh.<%3L8o9*_bC"UsXX=6K\\?2Q\]d`$=Yr0QiEg@K/-P.NB0p2TO$>D("WAe3-:P>b5?ql@]C5:91J$@D&2Ca7tmY.P<GaSg2)oUsRq5?VfK&<-`4O.S[in7t,q-hheM5mP2"BnJGaBNAkVUcXc7ZK;j3VXup9*jX9S.5e]?#pXR4\#KiL-`<c\f!h!.2G=gE=c?DEoO7AHH,+,3AgW2cbP<$W4:q.++>Ya*b6nnH?,P;qbe/C,@O:`p(R(C<T;`nJV\7)@?5j.jg"0mogYu11?l5h0SQ6)Xf@sgTKp'](01OR]0rqnX(WbIXj`sl@Y^S83Pa-V)!euB@C<j!#-^c1$Cp1XA=J%)WFl^dW+pA__Elfp9U0-@E8-Ug1`),f.Gl]mT8NF2cJqK(&9Kg58Ug#>Ip/9-LuK(pa@U%k*dM,sn\;/B+KCTA:">C>t7m_U0?.FS"<$<tIbF"dW%i;HODnNO57RS@)/HVZ/[:%cT6S6fh#M^9]'TQEe8lVO0QmGr,p$5j>_4\JnZXQ?#B>C/-U0+_kO3R<:ZX-#s_r&fBAdU4<hd(.qd5eg7SPi\\HgY@B4haq\hd:CFJ6=HijCc,$E.pE\:Ebf*97B"TL(POa>,fLNBKk3oFQ+pY,`5E]t/[ZBP"aj'+$_k?0.9bG,<a-ga<LVhP@kAG.!(la\j9j%>a.7=Y1b4.EH;8;`(Pqe9:1?i/iq)S-/TmA4+mk5WM_,s-kIW%o'!k+ZLn75d,->9?Crok6V=b/\V/;#+7,;EY!>hY\cG::="bMp7p/XJm(4HjWC('L<a]QZn5[W3)QfbonOC,83.h`rrrmF!MjD<QP+AsgOgH8<2&5CPRMa=MQ!h*sV6AmJ7T/ma.CdO8#B*8&&pt`r55Z$m1266,/J:/$j04B!%,TO/qGA=ZZA9BH[[UsK4'U#pG*+U%pPOWPZoP!rn=e+"R!lH94[/0@@2o;GEn^QbT_$OkuA$OF8!rA`K>$lTZMF.)CDC0&iZnt?MC0P$Z$<B$Fa*NLL9A8)mfW12?L9IILhUuiM]:U<IBJYW..f=Ng7upJbi.9lQVW6n=Bmi0rX_snfA$uIC2P'Y'3f\O@:ggC*<baGX74b=Jgc7@KO@"Pef2f#Gh+AjY.C9"_R[O3i#fLCulHN,/e6l>of%D;PR.h$G9J][ICH.6s1gL8_B>Jn8(1=-g`Q^5Zd924ZgM)Bm2>pm[g!M0Z=.0"t(>J1;Zb)\)Bm06WO3O8:p:FIBN4(]=[+RTTBfirn/.Z>OT&nMhg9Wm^c$boNZNniLaQsYKOu.LmXi/K@6R.u)7FB9Hk[_&04rYQF2U&m+X#6r-nkcL>Anc@+F^m$uSNWHCT4`)?;>]#IC9>D?'X^tPG*En\e%8A78Qr6q`bqmo<b(#fX/iLXX!?3JbLJUgm-<l?2>25PiZ;-H[Hem2HoCX9K>2_^NF,dN_T%),?=Mr-<mS&@8#nT%poW)`I(6Z9l"n#jlA.@TEck+rYIZcrNV?_LfZ$RfNc!h$=(f#4qPs_R6jKbkgdDaTUYJ6VZglfR-*'8d`%J*Oh8D:Rhqc4;X"W>J9WN["`)`qbhS`g&+5b"OX)7kBkuN#CM>YpV!#$NYgB&^b>dk&6`&[6,R(.6D:cO'YH&]Xn\EgSUM1jK_#SSqrb7dBR4`4Ahk^-XR0Hp;*XC22+EMLE>qs3*oaU-Ps&<f2WHR'rY=SGN`0!aoAR%.aD?ST+9ER3afJWBU]8$95%boA1_EP(AS]T-2U7tu1^!b[-e]>k&ReohW4:<D@2\q"/DDi1oICg`"6D&8`!If87"5J#K(MUp*PblGK]s$r?0X4TO0FS_`9!P&$!YRWc)Ddi"Hh]Q_7*"+p@@eL(VH)ljS7ABhI\%4d#ipZ>C*P-040DG?t+kp3[lMkkACeaTCIR!l#LEB:gjaZ%.IfMU*1o1~>endstream
+endobj
+xref
+0 11
+0000000000 65535 f 
+0000000073 00000 n 
+0000000134 00000 n 
+0000000241 00000 n 
+0000000350 00000 n 
+0000000462 00000 n 
+0000000576 00000 n 
+0000000770 00000 n 
+0000000838 00000 n 
+0000001134 00000 n 
+0000001193 00000 n 
+trailer
+<<
+/ID 
+[<04f2ecb0275aa7db13f037200f131a46><04f2ecb0275aa7db13f037200f131a46>]
+% ReportLab generated PDF document -- digest (http://www.reportlab.com)
+
+/Info 8 0 R
+/Root 7 0 R
+/Size 11
+>>
+startxref
+6275
+%%EOF
Binary file test-data/sample-heatmap.png has changed
Binary file test-data/sample-scatter.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/sample.cnr	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,55 @@
+chromosome	start	end	gene	depth	log2	weight
+chrM	848	1121	-	5.9011	-0.545691	0.408064
+chrM	1394	1667	-	3.78022	0.488494	0.663959
+chrM	1667	1940	-	1.80586	0.0200539	0.951602
+chrM	2212	2485	-	1.65201	-0.234816	0.863481
+chrM	2485	2758	-	4.0696	0.153636	0.124621
+chrM	2758	3031	-	0.717949	-1.35597	0.802412
+chrM	3031	3304	-	1.33333	0.385198	0.698993
+chrM	3306	3579	-	0.626374	-1.37983	0.9523
+chrM	3579	3853	-	2.30292	0.471839	0.953456
+chrM	3853	4126	-	2.74359	0.444955	0.954775
+chrM	4126	4400	-	0.748175	0.465611	0.488348
+chrM	4401	4695	-	0.94898	-0.583114	0.722949
+chrM	4695	4990	-	5.01695	1.13235	0.235104
+chrM	4990	5284	-	1.73129	0.209867	0.585461
+chrM	5284	5579	-	5.97966	1.18493	0.334994
+chrM	5586	5655	-	0	-21.0389	0.909906
+chrM	5656	5729	-	0	-19.8096	0.489546
+chrM	5760	5891	-	1.79389	0	0.933441
+chrM	5903	6171	-	2.15299	-0.0283011	0.954219
+chrM	6171	6440	-	2.02974	-0.212606	0.881048
+chrM	6440	6708	-	1.51493	-0.38297	0.954355
+chrM	6708	6977	-	2.03717	-0.317296	0.919868
+chrM	6977	7245	-	3.05597	-0.127011	0.931699
+chrM	7245	7514	-	1.24907	0.72831	0.445461
+chrM	7517	7767	-	1.944	0.680162	0.754313
+chrM	7767	8018	-	2.24701	-0.510836	0.476217
+chrM	8018	8269	-	1.00797	-0.663743	0.679122
+chrM	8365	8630	-	1.0717	0.28099	0.736364
+chrM	8630	8896	-	2.07895	-0.154606	0.918337
+chrM	8896	9162	-	3.66165	0.147562	0.952129
+chrM	9162	9427	-	3.60755	0.937798	0.763689
+chrM	9693	9959	-	2.07143	0.459741	0.807601
+chrM	9959	10224	-	0.00377358	-8.75948	0.810371
+chrM	10224	10490	-	1.44361	0.509209	0.934515
+chrM	10490	10756	-	1.82331	0.0655732	0.839154
+chrM	10756	11022	-	1.12406	0.238204	0.822297
+chrM	11022	11287	-	4.27925	1.20043	0.953885
+chrM	11287	11553	-	2.93609	0.224804	0.945234
+chrM	11553	11819	-	1.06015	-1.50066	0.954184
+chrM	11819	12084	-	2.40377	0.0920864	0.791533
+chrM	12084	12350	-	0.736842	-1.15941	0.633433
+chrM	12350	12616	-	0.736842	-1.25242	0.954184
+chrM	12616	12882	-	2.48872	-0.187246	0.898846
+chrM	12882	13147	-	4.50943	0.419127	0.915456
+chrM	13147	13413	-	1.47368	-0.730007	0.952782
+chrM	13413	13679	-	2.95865	-0.0213761	0.95418
+chrM	13944	14210	-	0.890977	-0.337011	0.755369
+chrM	14210	14476	-	2.21053	-0.0427224	0.83652
+chrM	14746	14987	-	8.14523	0.722701	0.582259
+chrM	14987	15228	-	2.48133	-0.105067	0.78567
+chrM	15228	15470	-	1.11157	-0.96567	0.951837
+chrM	15470	15711	-	3.9751	0.576278	0.951583
+chrM	15711	15953	-	0.809917	-1.38778	0.949491
+chrM	15955	16023	-	0	-21.1972	0.909384
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/sample.cns	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,2 @@
+chromosome	start	end	gene	log2	depth	probes	weight
+chrM	848	16023	-	-1.39012	2.05471	54	42.33
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/sample.targetcoverage.cnn	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,38 @@
+chromosome	start	end	gene	depth	log2
+chrM	576	647	-	96.2958	6.5894
+chrM	647	1601	-	22.022	4.46087
+chrM	1601	1670	-	3.10145	1.63294
+chrM	1670	3229	-	1.6068	0.68419
+chrM	3229	3304	-	1.57333	0.653824
+chrM	3306	4262	-	1.8295	0.871448
+chrM	4262	4331	-	0	-20
+chrM	4328	4400	-	0.0972222	-3.36257
+chrM	4401	4469	-	1.82353	0.866733
+chrM	4469	5511	-	3.54127	1.82427
+chrM	5511	5579	-	3.20588	1.68072
+chrM	5586	5655	-	0	-20
+chrM	5656	5729	-	0	-20
+chrM	5760	5826	-	1.06061	0.0848889
+chrM	5825	5891	-	2.5303	1.33931
+chrM	5903	7445	-	2.01297	1.00933
+chrM	7445	7514	-	1.85507	0.891476
+chrM	7517	7585	-	0.544118	-0.878009
+chrM	7585	8269	-	1.85088	0.888209
+chrM	8294	8364	-	0	-20
+chrM	8365	8572	-	0.623188	-0.68226
+chrM	8526	9207	-	2.88693	1.52954
+chrM	9206	9990	-	1.97194	0.979615
+chrM	9990	10058	-	0	-20
+chrM	10058	10404	-	1.11272	0.154086
+chrM	10404	10469	-	0	-20
+chrM	10469	10766	-	1.69024	0.757224
+chrM	10759	12137	-	2.3164	1.21188
+chrM	12137	12206	-	1.76812	0.822213
+chrM	12206	12265	-	0.152542	-2.71272
+chrM	12265	12336	-	0	-20
+chrM	12336	14148	-	2.15563	1.10811
+chrM	14148	14673	-	2.24762	1.1684
+chrM	14673	14742	-	8.5942	3.10336
+chrM	14746	15887	-	3.49167	1.80392
+chrM	15887	15953	-	0	-20
+chrM	15955	16023	-	0	-20
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/tumor-diagram.pdf	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,86 @@
+%PDF-1.4
+%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com
+1 0 obj
+<<
+/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 5 0 R
+>>
+endobj
+2 0 obj
+<<
+/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
+>>
+endobj
+3 0 obj
+<<
+/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
+>>
+endobj
+4 0 obj
+<<
+/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
+>>
+endobj
+5 0 obj
+<<
+/BaseFont /Times-BoldItalic /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font
+>>
+endobj
+6 0 obj
+<<
+/Contents 10 0 R /MediaBox [ 0 0 792 612 ] /Parent 9 0 R /Resources <<
+/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
+>> /Rotate 0 /Trans <<
+
+>> 
+  /Type /Page
+>>
+endobj
+7 0 obj
+<<
+/PageMode /UseNone /Pages 9 0 R /Type /Catalog
+>>
+endobj
+8 0 obj
+<<
+/Author (anonymous) /CreationDate (D:20230303171528+00'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20230303171528+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) 
+  /Subject (unspecified) /Title (untitled) /Trapped /False
+>>
+endobj
+9 0 obj
+<<
+/Count 1 /Kids [ 6 0 R ] /Type /Pages
+>>
+endobj
+10 0 obj
+<<
+/Filter [ /ASCII85Decode /FlateDecode ] /Length 4990
+>>
+stream
+Gau0G9<TX#&`2DPd7]9`j0Hk3D'Xpj_?-)F@M'%m+j*L""N93\qu#aERm*af&/8]'DRnM5f=SW:Z8qh1mGGDA[dDO&gTQ)WS+uBqh_rkf[l9pt^NoGArJR2;Hu\Po+$Tl*htZ5Uq#?hM5Q:nk^Q,i8?bNhsr$JSKk/UZWclZ]k^-<Gm.=BLcT'QLpE/Som(.-el.9haUqVCk'5CN(i+5_OXrUXCb^AIECmEITERnrhE*ub,#S`Ka8dcPW-CW?8?[]I(\It-5Q<q1OfPdg"&bot4F^#t:nhJPpYk`aTkB>gjk$gk.*gtV5^QhP>ElQFNPr;P5ag?r2t3H)Y,h$6Z&LTX*:=PC/l$QW7T0NX$XA=4S'nQ=>TehU[5K$(gYh.rqk(1R\UE+.?2_LR?/4CEH\U@UAuP.)R>f8t-jSFZog[,\F"]n"A*Wa"t1&(11RMZUQ-lQ/DG"6P0b(LW?O+f0Lt)#R]<SY4'36Je9CZ$tY!._C@_K!=F$5_l!E6lLu9*M?9V\d'nK`U#ob>DQ\u-"r(1=R[1&VVViJ8H^RT@'bUC6'9)V&J(`.:_Y8l0W\'m2jhVG!5l"ukF80rN-E*:%o*P#$D/h.K%'7m#I?[U!bO$GA;L;;6HR1V_p0D%TmG(j%,/:e$5>@+&Wm)-"j;H:\rtfo*X`47:`U(;;hoqN3/3%2IN/HQ>d8^u[+e5n'.2*/"T&3@G#3d"n1dJ7G1'et0f[u'.]fc_'UhXRJE[R.nf<Iu".Oo<?G(@saFg7%J9GWHcZr$[d_L&QFr7"Y5;e\]AN/HL0/RSSU%#=q/ITOUn#DNU"'0eAGZV`LdNqT\lnbG(UOuV1%SAor*%d>uI="q=-)DfM::lVHOA^oZ2Ba$c"]:%b,]$HWENpqt0`qj.F`kJ>F<$q^EU/R*?r\[Y%_mCkZ,92r_&B6LGUt5BK'%lA`UR'I-MUicF!Z$4"@_icEKl@k;M[4h;TM!=O*M9D4/(_\2kGZ_i>!p^LPXYmNXt*ENpf:%.lN7G.s\82_e=$4-Pa3(P'0sM3=lD^EM8"oFBlOlX;2!K1?8bBd-FXl$jVSBWXbhmY6k[kXKKGIS.(bmO;bnKlJL6U$=<5+1XSXIZgXOqrJ(i#Z6!J1V3(L"-=%UP77S5MIcJ?qFVo:Tc,#/%0L_\QY[=sER/X%`Fr5m="(4s1'&-0S*O5/Hd%-,F3ir+b*&bh>2GblfRg;ZU;N;b%70%rb<"/9G@1$-]XH7G^?&1#d/n)05ou(M2"SDHeA;R/`)i-2ldL?@f72)Uo=A!!a#?k(f3s]Qg4&3#1TM'ndaO4L))0nN'SL+c:.b+_RZ1EaR5seoh:8P5(]2JQ_GcW/R9nFjXa\]<7ggRKZ++jt'"oFleRu3FJVl.d0=A;s?HcQJV!=*op#)it,_22d^)*CkYOVTRN_UY/Y!4s(Jc`D`SO\#<cQGUCLQt+<bpeYcdS-1*6hODk3JctfOUSK8g$VcWH8MHiaQ&98Z(bR33HBRkbImh-mFU0frN+id(J_'n0lUeWpMr<728I7Nrjs^dGojepuB2ol,5b#YGWXj%+4f43mJF19Eb/oa\aQM\jN5:(hS;\'iI,XXOi;tRBS5'9K!F.'U_AGUcHQL#U97T@iNf7*E$m>fp\M:jLM3#JVBn/Gc;/=Ah.H=2^+!<OIDWGaGJ:Zh4>8I?C/<5KM>YS[D)JMYOQNS/$!$Z,^(LXJhWlDq&)Yak=NY!n+M'rjh)&YRsT'UEtJ/-GjjF@9S#YEQ-C;Lt!?l_:9$(aSeis.+>EMid;0\,;jN^/1$:Z/8_2urP=MiC@8Epu%HI#4*&k&?>7#;@P2q07Q[&NUD5X#=c<9UKR^n-UjW'lUuD^bTHh'Wr#P3R/tO!sk#S'c[&_et_FR8-B@T`93.g&hrg4;;Dh+&dHXNckI&8Bf5E26*S-_b)J5`#sr'P@DZK(0USN$0O_bG`7=npaCPEl6K",FPYR>#;b&A\.5'9Xr.H3Ro/80CbVMpMkl[-L*^q/b#%>',@+,_)Os;uI["U1[),,?D)!&Nf1l*jT.bJjB_8(&S<=oA:"e0lsR.t'QZu[;`mE;+q(AK<R>OR(^*m*<?27B-_`_%Ao)R%WE^'<A^1)*n:KS`_Fq<=ZRgJ(`ti<K;Vm8pM;+<-""_jB,UT6-#,D?ltjC!.3G3>1A)WI'R*,P_IPXn7Dh_;dC2N7V#&(hlC0?kh84\/cdu87'2Y4`u[f^_8iJ=9>6"7SX8mCQ8kap!c.E%"nBf,@qB_b5@F=TD'i[`dW)ci5p-:_/.,7KZfd1I*njaq#koI%9)=HqRZm"2odQ*QW*Vq@BN?Bb:?0-Y)t!Fm`HH[Ug6aOA%^29!",'HTgK5Ea,]\1l5nu$D*":$Tad1]D2fj.3b8-(e1J\!^t<+LS[THp[`Ka^/]r-nOU/.'md\[8+8EL$X0FM+!Ua]tS>W6aI;CaRT";t0rR2E(P!NO\(Rt6jD3"">f2MD\P<;%ga!b/(OLJ7Y>bq1F?83@^L?r6jK%U%QB\n7:KZ1l3(BheCbYpokJ`cYCX%]^<3H^B;f^4TtYKWo^3nlA58P4Hacc`;7K`37*NmWq'U)KH:Xg'(6E8Ac%R(C=_ZELH,=<^Wu8E:a&8_;>>jMB>/4r<;%#sfshc7pN*Lj:K4e^Q1j<4tCS+u2_<cE?.?1:0'M,@41%,@lDspkWmP9MbJ(Q<DBN4&IZ/mP/<t_W]gtp*:p;:usR#>+*@=R.GXh*b.7iduu,qN:;JR)@J[rn/i1<mdY!C:GC@%Phl\.=355o;KFj>O,r1K%)*o5MB\kfXp(#!/Bo#[ok<J/h^cZYn9KmL[Br@IEq2*]@.S-q*hTAn_3_4G(!@aUd;k3%cs0?%@s#OOUF<kjZqps(qD%[lkAoi',@Zo8pl$<Tc=1tYaVga6r'CnT:k!JQA(0f1WI'TG4l]IpGR(OhN`;bp=ig9c4[uRQ)9.?.3]!>TfW9$6]BETsh.$j^T?1PAQ>dBNH%%E:@um-4VsZ;9S=[i3G,a`/%jB8m]:b(=HYgbcIqC]_l)@K%Ehh`Qpp%gk'3@!!kd8?BWp@I8bh.<%3L8o9*_bC"UsXX=6K\\?2Q\]d`$=Yr0QiEg@K/-P.NB0p2TO$>D("WAe3-:P>b5?ql@]C5:91J$@D&2Ca7tmY.P<GaSg2)oUsRq5?VfK&<-`4O.S[in7t,q-hheM5mP2"BnJGaBNAkVUcXc7ZK;j3VXup9*jX9S.5e]?#pXR4\#KiL-`<c\f!h!.2G=gE=c?DEoO7AHH,+,3AgW2cbP<$W4:q.++>Ya*b6nnH?,P;qbe/C,@O:`p(R(C<T;`nJV\7)@?5j.jg"0mogYu11?l5h0SQ6)Xf@sgTKp'](01OR]0rqnX(WbIXj`sl@Y^S83Pa-V)!euB@C<j!#-^c1$Cp1XA=J%)WFl^dW+pA__Elfp9U0-@E8-Ug1`),f.Gl]mT8NF2cJqK(&9Kg58Ug#>Ip/9-LuK(pa@U%k*dM,sn\;/B+KCTA:">C>t7m_U0?.FS"<$<tIbF"dW%i;HODnNO57RS@)/HVZ/[:%cT6S6fh#M^9]'TQEe8lVO0QmGr,p$5j>_4\JnZXQ?#B>C/-U0+_kO3R<:ZX-#s_r&fBAdU4<hd(.qd5eg7SPi\\HgY@B4haq\hd:CFJ6=HijCc,$E.pE\:Ebf*97B"TL(POa>,fLNBKk3oFQ+pY,`5E]t/[ZBP"aj'+$_k?0.9bG,<a-ga<LVhP@kAG.!(la\j9j%>a.7=Y1b4.EH;8;`(Pqe9:1?i/iq)S-/TmA4+mk5WM_,s-kIW%o'!k+ZLn75d,->9?Crok6V=b/\V/;#+7,;EY!>hY\cG::="bMp7p/XJm(4HjWC('L<a]QZn5[W3)QfbonOC,83.h`rrrmF!MjD<QP+AsgOgH8<2&5CPRMa=MQ!h*sV6AmJ7T/ma.CdO8#B*8&&pt`r55Z$m1266,/J:/$j04B!%,TO/qGA=ZZA9BH[[UsK4'U#pG*+U%pPOWPZoP!rn=e+"R!lH94[/0@@2o;GEn^QbT_$OkuA$OF8!rA`K>$lTZMF.)CDC0&iZnt?MC0P$Z$<B$Fa*NLL9A8)mfW12?L9IILhUuiM]:U<IBJYW..f=Ng7upJbi.9lQVW6n=Bmi0rX_snfA$uIC2P'Y'3f\O@:ggC*<baGX74b=Jgc7@KO@"Pef2f#Gh+AjY.C9"_R[O3i#fLCulHN,/e6l>of%D;PR.h$G9J][ICH.6s1gL8_B>Jn8(1=-g`Q^5Zd924ZgM)Bm2>pm[g!M0Z=.0"t(>J1;Zb)\)Bm06WO3O8:p:FIBN4(]=[+RTTBfirn/.Z>OT&nMhg9Wm^c$boNZNniLaQsYKOu.LmXi/K@6R.u)7FB9Hk[_&04rYQF2U&m+X#6r-nkcL>Anc@+F^m$uSNWHCT4`)?;>]#IC9>D?'X^tPG*En\e%8A78Qr6q`bqmo<b(#fX/iLXX!?3JbLJUgm-<l?2>25PiZ;-H[Hem2HoCX9K>2_^NF,dN_T%),?=Mr-<mS&@8#nT%poW)`I(6Z9l"n#jlA.@TEck+rYIZcrNV?_LfZ$RfNc!h$=(f#4qPs_R6jKbkgdDaTUYJ6VZglfR-*'8d`%J*Oh8D:Rhqc4;X"W>J9WN["`)`qbhS`g&+5b"OX)7kBkuN#CM>YpV!#$NYgB&^b>dk&6`&[6,R(.6D:cO'YH&]Xn\EgSUM1jK_#SSqrb7dBR4`4Ahk^-XR0Hp;*XC22+EMLE>qs3*oaU-Ps&<f2WHR'rY=SGN`0!aoAR%.aD?ST+9ER3afJWBU]8$95%boA1_EP(AS]T-2U7tu1^!b[-e]>k&ReohW4:<D@2\q"/DDi1oICg`"6D&8`!If87"5J#K(MUp*PblGK]s$r?0X4TO0FS_`9!P&$!YRWc)Ddi"Hh]Q_7*"+p@@eL(VH)ljS7ABhI\%4d#ipZ>C*P-040DG?t+kp3[lMkkACeaTCIR!l#LEB:gjaZ%.IfMU*1o1~>endstream
+endobj
+xref
+0 11
+0000000000 65535 f 
+0000000073 00000 n 
+0000000134 00000 n 
+0000000241 00000 n 
+0000000350 00000 n 
+0000000462 00000 n 
+0000000576 00000 n 
+0000000770 00000 n 
+0000000838 00000 n 
+0000001134 00000 n 
+0000001193 00000 n 
+trailer
+<<
+/ID 
+[<a5e27b2ce92c0d3c0e7c3f705e84dabd><a5e27b2ce92c0d3c0e7c3f705e84dabd>]
+% ReportLab generated PDF document -- digest (http://www.reportlab.com)
+
+/Info 8 0 R
+/Root 7 0 R
+/Size 11
+>>
+startxref
+6275
+%%EOF
Binary file test-data/tumor-heatmap.png has changed
Binary file test-data/tumor-scatter.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/tumor.antitargetcoverage.cnn	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,1 @@
+chromosome	start	end	gene	log2
Binary file test-data/tumor.bam has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/tumor.bintest.cns	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,34 @@
+chromosome	start	end	gene	depth	log2	weight	probes	p_bintest
+chrM	1394	1667	-	3.78022	1.83095	0.659673	1	0.00305626
+chrM	1667	1940	-	1.80586	1.51502	0.947315	1	2.21288e-10
+chrM	2212	2485	-	1.65201	1.13169	0.859195	1	0.0043234
+chrM	3579	3853	-	2.30292	1.39081	0.949177	1	3.36615e-09
+chrM	3853	4126	-	2.74359	1.7165	0.950488	1	8.22011e-14
+chrM	5284	5579	-	5.97966	3.04522	0.33087	1	0.000409792
+chrM	5586	5655	-	0	-19.5746	0.90138	1	0
+chrM	5656	5729	-	0	-18.4148	0.481257	1	6.28915e-143
+chrM	5760	5891	-	1.79389	1.41828	0.927253	1	4.90435e-07
+chrM	5903	6171	-	2.15299	1.33821	0.949892	1	9.37152e-09
+chrM	6708	6977	-	2.03717	1.04921	0.91555	1	0.000589447
+chrM	6977	7245	-	3.05597	1.2395	0.927373	1	1.2045e-05
+chrM	7517	7767	-	1.944	1.55628	0.749834	1	0.00324207
+chrM	8365	8630	-	1.0717	1.55444	0.732013	1	0.00437839
+chrM	8630	8896	-	2.07895	1.36838	0.913995	1	9.21442e-06
+chrM	8896	9162	-	3.66165	1.94013	0.947786	1	1.58627e-16
+chrM	9162	9427	-	3.60755	2.19544	0.759338	1	2.06073e-05
+chrM	9693	9959	-	2.07143	1.61872	0.803258	1	0.000525673
+chrM	9959	10224	-	0.00377358	-7.0323	0.80602	1	2.93745e-56
+chrM	10224	10490	-	1.44361	1.44622	0.930173	1	1.59322e-07
+chrM	10490	10756	-	1.82331	1.58765	0.834811	1	0.000230056
+chrM	10756	11022	-	1.12406	2.10303	0.817954	1	2.62602e-06
+chrM	11022	11287	-	4.27925	2.56694	0.949534	1	3.32731e-29
+chrM	11287	11553	-	2.93609	1.75192	0.940891	1	3.45973e-12
+chrM	12616	12882	-	2.48872	1.20906	0.894503	1	0.000409792
+chrM	12882	13147	-	4.50943	1.65031	0.911105	1	1.1997e-07
+chrM	13147	13413	-	1.47368	0.874788	0.94844	1	0.000274482
+chrM	13413	13679	-	2.95865	1.34513	0.949837	1	8.56465e-09
+chrM	14210	14476	-	2.21053	1.53132	0.832178	1	0.000409792
+chrM	14746	14987	-	8.14523	2.66335	0.577696	1	0.00010697
+chrM	15470	15711	-	3.9751	2.55959	0.947021	1	8.98929e-28
+chrM	15711	15953	-	0.809917	0.743495	0.944938	1	0.00285344
+chrM	15955	16023	-	0	-19.8307	0.900795	1	0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/tumor.call.cns	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,2 @@
+chromosome	start	end	gene	log2	cn	depth	probes	weight
+chrM	848	16023	-	0	2	2.05471	54	42.33
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/tumor.cnr	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,55 @@
+chromosome	start	end	gene	depth	log2	weight
+chrM	848	1121	-	5.9011	-0.545691	0.408064
+chrM	1394	1667	-	3.78022	0.488494	0.663959
+chrM	1667	1940	-	1.80586	0.0200539	0.951602
+chrM	2212	2485	-	1.65201	-0.234816	0.863481
+chrM	2485	2758	-	4.0696	0.153636	0.124621
+chrM	2758	3031	-	0.717949	-1.35597	0.802412
+chrM	3031	3304	-	1.33333	0.385198	0.698993
+chrM	3306	3579	-	0.626374	-1.37983	0.9523
+chrM	3579	3853	-	2.30292	0.471839	0.953456
+chrM	3853	4126	-	2.74359	0.444955	0.954775
+chrM	4126	4400	-	0.748175	0.465611	0.488348
+chrM	4401	4695	-	0.94898	-0.583114	0.722949
+chrM	4695	4990	-	5.01695	1.13235	0.235104
+chrM	4990	5284	-	1.73129	0.209867	0.585461
+chrM	5284	5579	-	5.97966	1.18493	0.334994
+chrM	5586	5655	-	0	-21.0389	0.909906
+chrM	5656	5729	-	0	-19.8096	0.489546
+chrM	5760	5891	-	1.79389	0	0.933441
+chrM	5903	6171	-	2.15299	-0.0283011	0.954219
+chrM	6171	6440	-	2.02974	-0.212606	0.881048
+chrM	6440	6708	-	1.51493	-0.38297	0.954355
+chrM	6708	6977	-	2.03717	-0.317296	0.919868
+chrM	6977	7245	-	3.05597	-0.127011	0.931699
+chrM	7245	7514	-	1.24907	0.72831	0.445461
+chrM	7517	7767	-	1.944	0.680162	0.754313
+chrM	7767	8018	-	2.24701	-0.510836	0.476217
+chrM	8018	8269	-	1.00797	-0.663743	0.679122
+chrM	8365	8630	-	1.0717	0.28099	0.736364
+chrM	8630	8896	-	2.07895	-0.154606	0.918337
+chrM	8896	9162	-	3.66165	0.147562	0.952129
+chrM	9162	9427	-	3.60755	0.937798	0.763689
+chrM	9693	9959	-	2.07143	0.459741	0.807601
+chrM	9959	10224	-	0.00377358	-8.75948	0.810371
+chrM	10224	10490	-	1.44361	0.509209	0.934515
+chrM	10490	10756	-	1.82331	0.0655732	0.839154
+chrM	10756	11022	-	1.12406	0.238204	0.822297
+chrM	11022	11287	-	4.27925	1.20043	0.953885
+chrM	11287	11553	-	2.93609	0.224804	0.945234
+chrM	11553	11819	-	1.06015	-1.50066	0.954184
+chrM	11819	12084	-	2.40377	0.0920864	0.791533
+chrM	12084	12350	-	0.736842	-1.15941	0.633433
+chrM	12350	12616	-	0.736842	-1.25242	0.954184
+chrM	12616	12882	-	2.48872	-0.187246	0.898846
+chrM	12882	13147	-	4.50943	0.419127	0.915456
+chrM	13147	13413	-	1.47368	-0.730007	0.952782
+chrM	13413	13679	-	2.95865	-0.0213761	0.95418
+chrM	13944	14210	-	0.890977	-0.337011	0.755369
+chrM	14210	14476	-	2.21053	-0.0427224	0.83652
+chrM	14746	14987	-	8.14523	0.722701	0.582259
+chrM	14987	15228	-	2.48133	-0.105067	0.78567
+chrM	15228	15470	-	1.11157	-0.96567	0.951837
+chrM	15470	15711	-	3.9751	0.576278	0.951583
+chrM	15711	15953	-	0.809917	-1.38778	0.949491
+chrM	15955	16023	-	0	-21.1972	0.909384
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/tumor.cns	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,2 @@
+chromosome	start	end	gene	log2	depth	probes	weight
+chrM	848	16023	-	-1.39012	2.05471	54	42.33
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/tumor.targetcoverage.cnn	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,38 @@
+chromosome	start	end	gene	depth	log2
+chrM	576	647	-	96.2958	6.5894
+chrM	647	1601	-	22.022	4.46087
+chrM	1601	1670	-	3.10145	1.63294
+chrM	1670	3229	-	1.6068	0.68419
+chrM	3229	3304	-	1.57333	0.653824
+chrM	3306	4262	-	1.8295	0.871448
+chrM	4262	4331	-	0	-20
+chrM	4328	4400	-	0.0972222	-3.36257
+chrM	4401	4469	-	1.82353	0.866733
+chrM	4469	5511	-	3.54127	1.82427
+chrM	5511	5579	-	3.20588	1.68072
+chrM	5586	5655	-	0	-20
+chrM	5656	5729	-	0	-20
+chrM	5760	5826	-	1.06061	0.0848889
+chrM	5825	5891	-	2.5303	1.33931
+chrM	5903	7445	-	2.01297	1.00933
+chrM	7445	7514	-	1.85507	0.891476
+chrM	7517	7585	-	0.544118	-0.878009
+chrM	7585	8269	-	1.85088	0.888209
+chrM	8294	8364	-	0	-20
+chrM	8365	8572	-	0.623188	-0.68226
+chrM	8526	9207	-	2.88693	1.52954
+chrM	9206	9990	-	1.97194	0.979615
+chrM	9990	10058	-	0	-20
+chrM	10058	10404	-	1.11272	0.154086
+chrM	10404	10469	-	0	-20
+chrM	10469	10766	-	1.69024	0.757224
+chrM	10759	12137	-	2.3164	1.21188
+chrM	12137	12206	-	1.76812	0.822213
+chrM	12206	12265	-	0.152542	-2.71272
+chrM	12265	12336	-	0	-20
+chrM	12336	14148	-	2.15563	1.10811
+chrM	14148	14673	-	2.24762	1.1684
+chrM	14673	14742	-	8.5942	3.10336
+chrM	14746	15887	-	3.49167	1.80392
+chrM	15887	15953	-	0	-20
+chrM	15955	16023	-	0	-20
Binary file test-data/tumor_1.bam has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/fasta_indexes.loc.sample	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,29 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of Samtools indexed sequences data files.  You will need
+#to create these data files and then create a fasta_indexes.loc file
+#similar to this one (store it in this directory) that points to
+#the directories in which those files are stored. The fasta_indexes.loc
+#file has this format (white space characters are TAB characters):
+#
+# <unique_build_id>	<dbkey>	<display_name>	<file_base_path>
+#
+#So, for example, if you had hg19 Canonical indexed stored in
+#
+# /depot/data2/galaxy/hg19/sam/,
+#
+#then the fasta_indexes.loc entry would look like this:
+#
+#hg19canon	hg19	Human (Homo sapiens): hg19 Canonical	/depot/data2/galaxy/hg19/sam/hg19canon.fa
+#
+#and your /depot/data2/galaxy/hg19/sam/ directory
+#would contain hg19canon.fa and hg19canon.fa.fai files.
+#
+#Your fasta_indexes.loc file should include an entry per line for
+#each index set you have stored.  The file in the path does actually
+#exist, but it should never be directly used. Instead, the name serves
+#as a prefix for the index file.  For example:
+#
+#hg18canon	hg18	Human (Homo sapiens): hg18 Canonical	/depot/data2/galaxy/hg18/sam/hg18canon.fa
+#hg18full	hg18	Human (Homo sapiens): hg18 Full	/depot/data2/galaxy/hg18/sam/hg18full.fa
+#hg19canon	hg19	Human (Homo sapiens): hg19 Canonical	/depot/data2/galaxy/hg19/sam/hg19canon.fa
+#hg19full	hg19	Human (Homo sapiens): hg19 Full	/depot/data2/galaxy/hg19/sam/hg19full.fa
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.sample	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,8 @@
+<!-- Use the file tool_data_table_conf.xml.oldlocstyle if you don't want to update your loc files as changed in revision 4550:535d276c92bc-->
+<tables>
+    <!-- Location of SAMTools indexes for FASTA files -->
+    <table name="fasta_indexes" comment_char="#">
+        <columns>value, dbkey, name, path</columns>
+        <file path="tool-data/fasta_indexes.loc" />
+    </table>
+</tables>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.test	Sun May 14 20:10:48 2023 +0000
@@ -0,0 +1,7 @@
+<tables>
+    <!-- Location of SAMTools indexed FASTA files -->
+    <table name="fasta_indexes" comment_char="#">
+        <columns>value, dbkey, name, path</columns>
+        <file path="${__HERE__}/test-data/fasta_indexes.loc" />
+    </table>
+</tables>
\ No newline at end of file