changeset 1:876630eb0680 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/cnvkit commit e927b17a345b18c1b51dc1b112db5129278dcd22
author iuc
date Fri, 29 Sep 2023 15:44:03 +0000
parents 0350116f0c25
children d6dca50cf949
files macros.xml target.xml test-data/gene-breaks.txt test-data/gene-sex.txt test-data/gene_genemetrics.txt test-data/gene_segmetrics.cns test-data/normal.bam.bai test-data/ref-tas.cnn test-data/reference.cnn.1 test-data/reference.cnn.2 test-data/sample-diagram.pdf test-data/sample-heatmap.png test-data/sample-scatter.pdf test-data/test.targetcoverage.cnn test-data/tumor-diagram.pdf test-data/tumor-scatter.pdf test-data/tumor-scatter.png test-data/tumor.bam.bai test-data/tumor.call.cns test-data/tumor.cnr test-data/tumor.cns test-data/tumor.targetcoverage.cnn
diffstat 22 files changed, 414 insertions(+), 141 deletions(-) [+]
line wrap: on
line diff
--- a/macros.xml	Sun May 14 20:08:09 2023 +0000
+++ b/macros.xml	Fri Sep 29 15:44:03 2023 +0000
@@ -1,5 +1,5 @@
 <macros>
-    <token name="@VERSION_SUFFIX@">0</token>
+    <token name="@VERSION_SUFFIX@">0.1</token>
     <token name="@TOOL_VERSION@">0.9.10</token>
     <xml name="requirements">
         <requirements>
@@ -30,6 +30,25 @@
             <xref type="bio.tools">cnvkit</xref>
         </xrefs>
     </xml>
+    <xml name="creators">
+        <creator>
+            <person givenName="Khaled" familyName="Jum'ah" url="https://github.com/khaled196" />
+            <person givenName="Björn" familyName="Grüning" url="https://github.com/bgruening" />
+            <person givenName="Katarzyna" familyName="Kamieniecka" url="https://github.com/kkamieniecka" />
+            <person givenName="Krzysztof" familyName="Poterlowicz" url="https://github.com/poterlowicz-lab" />
+            <organization name="poterlowicz-lab" url="https://github.com/poterlowicz-lab" />
+        </creator>
+    </xml>
+    <xml name="creators_and_zahra">
+        <creator>
+            <person givenName="Khaled" familyName="Jum'ah" url="https://github.com/khaled196" />
+            <person givenName="Björn" familyName="Grüning" url="https://github.com/bgruening" />
+            <person givenName="Katarzyna" familyName="Kamieniecka" url="https://github.com/kkamieniecka" />
+            <person givenName="zahra" familyName="Karimi" url="https://github.com/zahraK20" />
+            <person givenName="Krzysztof" familyName="Poterlowicz" url="https://github.com/poterlowicz-lab" />
+            <organization name="poterlowicz-lab" url="https://github.com/poterlowicz-lab" />
+        </creator>
+    </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>
@@ -168,7 +187,7 @@
         <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="--segment" optional="true" type="data" format="tabular" 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"/>
@@ -213,9 +232,25 @@
             </when>
         </conditional>
     </xml>
-        <xml name="citations">
+    <xml name="genemetrics_segmetrics_statistics">
+          <param argument="--mean" type="boolean" checked="true" truevalue="--mean" falsevalue="" label="Mean log2-ratio" help="" />
+          <param argument="--median" type="boolean" checked="false" truevalue="--median" falsevalue="" label="Median" help="" /> 
+          <param argument="--mode" type="boolean" checked="false" truevalue="--mode" falsevalue="" label="mode" help="peak density of log2 ratios" />
+          <param argument="--ttest" type="boolean" checked="false" truevalue="--ttest" falsevalue="" label="One-sample t-test" help="bin log2 ratios versus 0.0" />
+          <param argument="--stdev" type="boolean" checked="false" truevalue="--stdev" falsevalue="" label="Standard deviation" help="" />
+          <param argument="--sem" type="boolean" checked="false" truevalue="--sem" falsevalue="" label="Standard error of the mean" help="" />
+          <param argument="--mad" type="boolean" checked="false" truevalue="--mad" falsevalue="" label="Median absolute deviation" help="" />
+          <param argument="--mse" type="boolean" checked="false" truevalue="--mse" falsevalue="" label="mean squared error" help="" />
+          <param argument="--iqr" type="boolean" checked="false" truevalue="--iqr" falsevalue="" label="Inter-quartile range" help="" />
+          <param argument="--bivar" type="boolean" checked="false" truevalue="--bivar" falsevalue="" label="Tukeys biweight midvariance" help="" />
+          <param argument="--ci" type="boolean" checked="false" truevalue="--ci" falsevalue="" label="confidence interval" help="" />
+          <param argument="--pi" type="boolean" checked="false" truevalue="--pi" falsevalue="" label="prediction interval" help="" />
+          <param argument="--alpha" type="boolean" checked="false" truevalue="--alpha" falsevalue="" label="alpha" help="" />
+          <param argument="--bootstrap" type="boolean" checked="false" truevalue="--bootstrap" falsevalue="" label="estimate confidence interval" help="number of bootstrp interations" />
+    </xml>
+    <xml name="citations">
         <citations>
             <citation type="doi">10.1371/journal.pcbi.1004873</citation>
         </citations>
     </xml>
-</macros>
\ No newline at end of file
+</macros>
--- a/target.xml	Sun May 14 20:08:09 2023 +0000
+++ b/target.xml	Fri Sep 29 15:44:03 2023 +0000
@@ -4,6 +4,7 @@
         <import>macros.xml</import>
     </macros>
     <expand macro="xrefs"/>
+    <expand macro="creators"/>
     <expand macro="requirements"/>
     <command detect_errors="exit_code"><![CDATA[    
     ln -s '$input_file' ./capture.bed &&
@@ -23,7 +24,7 @@
         #end if
     ]]></command>
     <inputs>
-        <param name="input_file" type="data" format="bed" label="Input BED file" help="" />
+        <param name="input_file" type="data" format="bed" label="capture/target BED file" 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, 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="--split" type="boolean" checked="false" truevalue="--split" falsevalue="" label="Split large tiled intervals into smaller, consecutive targets" help="" />
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/gene-breaks.txt	Fri Sep 29 15:44:03 2023 +0000
@@ -0,0 +1,1 @@
+gene	chromosome	location	change	probes_left	probes_right
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/gene-sex.txt	Fri Sep 29 15:44:03 2023 +0000
@@ -0,0 +1,2 @@
+sample	sex	X_logratio	Y_logratio
+./sample.cnr	Female	NA	NA
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/gene_genemetrics.txt	Fri Sep 29 15:44:03 2023 +0000
@@ -0,0 +1,1 @@
+gene	chromosome	start	end	log2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/gene_segmetrics.cns	Fri Sep 29 15:44:03 2023 +0000
@@ -0,0 +1,2 @@
+chromosome	start	end	gene	log2	depth	probes	weight	iqr
+chrM	848	16023	-	-1.39012	2.05471	54	42.33	1.01226
Binary file test-data/normal.bam.bai has changed
--- a/test-data/ref-tas.cnn	Sun May 14 20:08:09 2023 +0000
+++ b/test-data/ref-tas.cnn	Fri Sep 29 15:44:03 2023 +0000
@@ -1,38 +1,62 @@
 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	576	848	-	3.256	91.9926	4.82735
+chrM	848	1121	-	0.884565	5.9011	1.31146
+chrM	1121	1394	-	-0.165367	1.4359	0.245173
+chrM	1394	1667	-	0.909286	3.78022	1.34811
+chrM	1667	1940	-	0	1.80586	0
+chrM	1940	2212	-	-2.82466	0.0404412	4.18784
+chrM	2212	2485	-	-0.0642305	1.65201	0.0952281
+chrM	2485	2758	-	0.01695	4.0696	0.0251301
+chrM	2758	3031	-	-0.315323	0.717949	0.467498
+chrM	3031	3304	-	0.157569	1.33333	0.233612
+chrM	3306	3579	-	-0.387402	0.626374	0.574362
+chrM	3579	3853	-	0	2.30292	0
+chrM	3853	4126	-	0.202715	2.74359	0.300545
+chrM	4126	4400	-	-0.259225	0.748175	0.384327
+chrM	4401	4695	-	-0.0877248	0.94898	0.130061
+chrM	4695	4990	-	0.16791	5.01695	0.248943
+chrM	4990	5284	-	-0.25963	1.73129	0.384927
+chrM	5284	5579	-	0.810516	5.97966	1.20167
+chrM	5586	5655	-	-10.4795	0	15.5369
 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	5760	5891	-	0.415822	1.79389	0.616498
+chrM	5903	6171	-	0.131623	2.15299	0.195144
+chrM	6171	6440	-	0	2.02974	0
+chrM	6440	6708	-	-0.0963015	1.51493	0.142777
+chrM	6708	6977	-	0	2.03717	0
+chrM	6977	7245	-	0.40989	3.05597	0.607703
+chrM	7245	7514	-	-0.047091	1.24907	0.0698171
+chrM	7517	7767	-	0.271996	1.944	0.403261
+chrM	7767	8018	-	0.07072	2.24701	0.104849
+chrM	8018	8269	-	-0.415822	1.00797	0.616498
+chrM	8294	8364	-	-10.0057	0	14.8345
+chrM	8365	8630	-	0	1.0717	0
+chrM	8630	8896	-	0.485791	2.07895	0.720233
+chrM	8896	9162	-	0.280695	3.66165	0.416158
+chrM	9162	9427	-	0.563397	3.60755	0.835292
+chrM	9427	9693	-	-0.195679	0.808271	0.290114
+chrM	9693	9959	-	0	2.07143	0
+chrM	9959	10224	-	-4.10122	0.00377358	6.08048
+chrM	10224	10490	-	-0.248445	1.44361	0.368345
+chrM	10490	10756	-	-0.0920355	1.82331	0.136452
+chrM	10756	11022	-	-0.51737	1.12406	0.767054
+chrM	11022	11287	-	0.26621	4.27925	0.394683
+chrM	11287	11553	-	0.350607	2.93609	0.519809
+chrM	11553	11819	-	-0.0341651	1.06015	0.0506531
+chrM	11819	12084	-	0.590516	2.40377	0.875498
+chrM	12084	12350	-	-1.0261	0.736842	1.5213
+chrM	12350	12616	-	-0.64663	0.736842	0.958694
+chrM	12616	12882	-	0.295587	2.48872	0.438237
+chrM	12882	13147	-	0.50247	4.50943	0.744962
+chrM	13147	13413	-	-0.322016	1.47368	0.477422
+chrM	13413	13679	-	0.356127	2.95865	0.527993
+chrM	13679	13944	-	-0.0012925	1.64906	0.00191626
+chrM	13944	14210	-	-0.865739	0.890977	1.28355
+chrM	14210	14476	-	-0.4233	2.21053	0.627585
+chrM	14476	14742	-	0.598181	4.45489	0.886863
+chrM	14746	14987	-	1.03347	8.14523	1.53222
+chrM	14987	15228	-	0.355932	2.48133	0.527704
+chrM	15228	15470	-	0	1.11157	0
+chrM	15470	15711	-	0.393765	3.9751	0.583796
+chrM	15711	15953	-	-0.312504	0.809917	0.463318
 chrM	15955	16023	-	0	0	0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/reference.cnn.1	Fri Sep 29 15:44:03 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.cnn.2	Fri Sep 29 15:44:03 2023 +0000
@@ -0,0 +1,62 @@
+chromosome	start	end	gene	log2	depth	spread
+chrM	576	848	-	3.09865	493.485	4.59406
+chrM	848	1121	-	0.49908	22.4469	0.739936
+chrM	1121	1394	-	-0.516145	4.59341	0.765237
+chrM	1394	1667	-	0.24243	11.022	0.359427
+chrM	1667	1940	-	-0.16725	7.45055	0.247965
+chrM	1940	2212	-	-1.38174	1.36029	2.04857
+chrM	2212	2485	-	0.08762	10.6081	0.129905
+chrM	2485	2758	-	0.65974	31.7436	0.978131
+chrM	2758	3031	-	-0.403685	5.35531	0.598503
+chrM	3031	3304	-	0.131495	7.55678	0.194954
+chrM	3306	3579	-	0.401125	10.9817	0.594708
+chrM	3579	3853	-	0.25737	12.719	0.381577
+chrM	3853	4126	-	0	7.17949	0
+chrM	4126	4400	-	-1.09463	1.65693	1.62289
+chrM	4401	4695	-	-0.271425	5.18707	0.402415
+chrM	4695	4990	-	0.32592	17.7458	0.483209
+chrM	4990	5284	-	-0.46781	5.94218	0.693575
+chrM	5284	5579	-	0.575175	20.8136	0.852754
+chrM	5586	5655	-	0	9.37681	0
+chrM	5656	5729	-	-0.24822	4.76712	0.368011
+chrM	5760	5891	-	0.327905	10.5954	0.486152
+chrM	5903	6171	-	0.19112	13.8097	0.283355
+chrM	6171	6440	-	0.45739	13.5353	0.678126
+chrM	6440	6708	-	0	11.3657	0
+chrM	6708	6977	-	-0.121345	7.80669	0.179906
+chrM	6977	7245	-	0.215935	15.3321	0.320145
+chrM	7245	7514	-	-0.846735	2.52045	1.25537
+chrM	7517	7767	-	-0.100975	8.152	0.149706
+chrM	7767	8018	-	0.710745	19.2311	1.05375
+chrM	8018	8269	-	-0.327905	6.7251	0.486152
+chrM	8294	8364	-	-11.6145	0	17.2197
+chrM	8365	8630	-	-0.559835	2.89811	0.830011
+chrM	8630	8896	-	0	7.87594	0
+chrM	8896	9162	-	0.126545	13.5451	0.187616
+chrM	9162	9427	-	0	9.68302	0
+chrM	9427	9693	-	-0.59913	3.43233	0.88827
+chrM	9693	9959	-	-0.204945	5.87594	0.303851
+chrM	9959	10224	-	-0.69093	3.59623	1.02437
+chrM	10224	10490	-	-0.69078	2.99624	1.02415
+chrM	10490	10756	-	-0.163025	7.1015	0.241701
+chrM	10756	11022	-	-0.601845	4.00376	0.892295
+chrM	11022	11287	-	0.07448	11.2377	0.110424
+chrM	11287	11553	-	0.07811	10.2932	0.115806
+chrM	11553	11819	-	0.12266	11.109	0.181856
+chrM	11819	12084	-	0.25082	11.1509	0.371866
+chrM	12084	12350	-	0	10.1353	0
+chrM	12350	12616	-	0	9.23684	0
+chrM	12616	12882	-	0.13357	9.39474	0.198031
+chrM	12882	13147	-	0.41539	15.834	0.615857
+chrM	13147	13413	-	-0.171695	8.90226	0.254555
+chrM	13413	13679	-	0.16774	12.218	0.248691
+chrM	13679	13944	-	-0.61691	4.30943	0.914631
+chrM	13944	14210	-	-0.096015	8.87218	0.142352
+chrM	14210	14476	-	-0.146255	9.2218	0.216838
+chrM	14476	14742	-	0.926785	33.8872	1.37405
+chrM	14746	14987	-	0.792645	28.1369	1.17518
+chrM	14987	15228	-	0.179775	14.2531	0.266534
+chrM	15228	15470	-	0	9.3719	0
+chrM	15470	15711	-	0	11.2946	0
+chrM	15711	15953	-	-0.131495	6.29752	0.194954
+chrM	15955	16023	-	-0.10308	4.13235	0.152826
--- a/test-data/sample-diagram.pdf	Sun May 14 20:08:09 2023 +0000
+++ b/test-data/sample-diagram.pdf	Fri Sep 29 15:44:03 2023 +0000
@@ -42,7 +42,7 @@
 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) 
+/Author (anonymous) /CreationDate (D:20230926163110+00'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20230926163110+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) 
   /Subject (unspecified) /Title (untitled) /Trapped /False
 >>
 endobj
@@ -53,10 +53,10 @@
 endobj
 10 0 obj
 <<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 4990
+/Filter [ /ASCII85Decode /FlateDecode ] /Length 5015
 >>
 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
+Gau0G9<TX#&`2DPd7]9`j!pD=p,3OO6=Bn_*F]TiJIlB>,Q[H0q9#nD^?K]V'8/i3mjWImr2=8[BA*Fd;>^Cj&)6gB]C"4bV2]_HpXbC8QgNVlgMbr^I/cO2-XT4;j,]g`rbq`0*WGruj\L@1m4Y7'LVLO0d<MG57cQ5S2>&=:^@)TPNJ]m?[&Y;,K'rH[_.$)b/S.Q]:Oh#Gn\ph:rpfAWgHY`2iO^1\\\7lPHhWB1qM3)j-S,#&WG\6t?8LI<Y[uMPq#,(0/];uOc!([ijHsURbk@bgml.(+YtAjt'4*h.BYW,;n$fK-5.6l\Kfn,OO0<0EAf#4(H/lb'8'sN<:fB':mSYcn:+HL<CVW%f9i>@]<b8JB9U]#K1=s+D`&_Q\C#!0R]9F-;/QQH0nt&G8F%hh-8@7!9A^Ed%!h/P%XA(?WnlfU_*;5a$%pC1HN@]F6\I9C/.i3/tfI<XP?AuN5XcnucXI/`I@>nR[+ebH9?U<Ig;=$Z7KM<A;j#F85;<f3j`eujqUg$N4O!RDrBe"?9k9eE*V%Vb.,E>o9m\FB_Ta;7oGUQF^$6$pnSSp>V)F22IOlr4=er4fmVMp]U1a.4K?jT-=]8XYEFqbqI,#P3?&p?f5l86]nZ6(T,+3W<k:di*n.L%%71_LcgQpXqq)il^m`"ktL7;)!ECc%G$3+j;UJ0\2i+#4l1;So5,@ZXt^E/'pZ:^h[ZdOK\20W>b=C]Y?;:^7BU;A3`L6b9eV0R%IL*'P$7VdXqV1l9R38`Mf@-<1]G>tUXlBu-DSb8t[@n)>lDDZZWj<83YZ`67!PYqm6(_Q%i^E879_)"!_IUd@t0<p*4Uer6FO46A^i;gGX=8l.S56A@p,2&<.tfm#-4"=unp;<c9CU]SIC1`UD3K,1-?+D$@55KJAMdXpHI(Mca9<jF<YSJ7.*ZC376:0:U:O!uDacXf4?Ei15M.%Vs*jJ%h@U5b!D4$=LC0fB@p1!/H0SqH+_'e(#Y8CD4g*l:O%]a)*OQm@EiG1OO$AekVl;P=IqV:.9aBJaBuLn0c.Yi0B;BQ;BA6Ys+:^"1VG=?qI8%G7-F.`(Vkl3==4d%H'uW<#_drp:Q0i!"k+8KgBi\W\f@+#^dRH;'m,1#&2]$u%hiK#o_=)_4tV1s?5hK+6RDMINJl^?-&9qNGU[1^Lc_d%Fho[@'9A;RJqYG;B0LBnb;\R%,b4OgLM2,ZmspS2q+:J-/PC1!m>W"L;RF@L"jKKt,"e)QhRN*c\WV@/md@9[+8Z!XXUL\tK,+LgmiQVAdKrfSaLi%RQW]N"m*>qpK/0D<WksR@T$lCn3D-.]n\2;El7E%2A\aE%:6g].:iB$',gd;^ZaBZ5ok_,jd9g[Qfci":FicT-fgsAqHO"T3sP$o(YX#Qjbt$dq6D:^_WI6$tfbT<DHa+(KTL0:.G;rQpf4i"hR.Dp;\1&r-O/Yp*U@mM@%=eJ4,Uq-8^K#_0s-Ja[tE";r`0:9W28T`Uj3?Q_Re]EZWIIfu?*rLh;l&VE)!f?3@fF:W`iF"NOhD9#ropXl@]-[Ni]N]Lp'\896acp#-@IdHrIfCaUQ-:5/m@4u_Za$k?h1A<b<R(E<?->bL2?ojlu3J1Cdj3(%B9hNm*d,tKcDN1=#S%3Yoq\MM!n&Z=ip1e?79&oZ"EG(rdN+!`gMS&jP,5f8^cp+?KT<.Z_$E&DC8BehJj\0TED"V=8g\j1mB(3(Bjc+qAEEeL)oRuG>F0U"p9_,b_=<mV3IioGVUb6U\Y4)1Mo9Yif4ckN(*]]05K71,pm!Aor$>`M(d(9TVu+)lbM7>d.!N"k2iI/&jurgL_b_Appq*-R?430^)r:q#Z,-DQ^")D8Z(%:"a<(^=/um%)!NUHspHMs<Po,Z)SfIn&a$oFW@##&U[/NaNJVS<ZNc8'ks,S@f5(5s_,B(V^jp(>)-fa\8$f-sSHBZkOYl/nd-]=hoL)efYR5b6?fnJQMD>\rhS-Fi<jm`$P;2h^Ad+fV\mB@gc4@qHulpO.q[l_e?TFkgL-=Bs?tadMAU7D1bK"N!=Q8T*?/BB,,j+e7^g]QW4n0V\X^OeS)nK-Y_a+nCs9_>Sd)_q-3;q3uH)sX"h%EA#ofRN:AsBm:/CH+Ubq+)jCc!SLsE]7pV/mRP!RF!F!!A;p+eaQkJa)V!Ef>[SK-P/0VP>ahe]heY>!f&%ZY_`1]A'R<*qYhB8[L\[:)!b3Q2L/.%X<0h]_0,-r;,JSD*Cjb']T/Br9"fiSBlYaVVH\Dr^cZ.E9"ZRg&\cW6G9r%5Q1R;1'V/b641#/^jUNu>ea.6Q3s&Utp6BH/+9h-c)ds4J<Q.CCJG(1D7J/0Aui@$r^TLFc0'&HU1\7/#f'+eNNj;S*!7Mm7#O6(`!u`HBcAQER^!S66%>1E9Sm_QV1lZ+TM9_=G.f_0$%=nS/YfjO.ngK<D[dAd$MQ-%*R$leqZuV;OcS*#rhE]'HL</Br#R/31L%q2J+)iF0&n>?Z@#2YO`J#0Y6:<XB?Xh_"#`2hk:X]SN1+j4V;`2'a@l3/df^aQ2[s&q2kn>65u4=D]?P]R?\"FPYnH:A5?"lfi@]i+aaXLf'88bdPXBFk7(gd4^YL4Xgii]csdf/V5Fp0T>%EXrAAV,f.=V.*#4oEQ%L![&(4Tdo\ft]#!rJs'DhT_FA))Xf\n_VD?b/2].9?:Y&X+R`NAqPU7KSBah1+hI`\TU!FP=Aj9?S(O4>MK4>DJfEMg5Rt,l;_fMsrJQ*N0nY#1P9;s:12).-p4u,Jd)p<ni&%h,:_9Tcs3-L!N.qIdM+n0;(Ef\Qb53TSons*fhJE>=r_"^7_i@"cPVCDOF`sm2;oSae'FbhWT_2@/t[>j-ff+"#ho!;%b(,jC65S[0-))").AdA@%Suf.s[]bN'AW)7rU[<qYfl_pYU&:-d[a1K;S^>+KbdOjjm(1#2.R-!bZBTYn8;#C`)-7h;fYo&\fKlU#eF*^C4jU"1]BZoBNjCn]R;0j0`RcCoF#)I`TpK%D=H\st.n$OUT,Ui>dEpB#nNkb9Q9h-79ho0>mqRbtk")@%]ADZu2*Fl,=@rCe^"SuC).)i!f+"$7Sk0E@9?)8%eijM_DK$Y=h-cZ2duC23hl2W:<Ffq4Fk7(gAiQBd'Xa[AfhbRMD.@kIFbAf)UP(5*YJq+_jFOnr@HO`(DK)sNl%p"Vn+P9e.]VWR8)(d;>^"q2Bcm&@l:=lY68WVjg7]`m>rPk`:![q"$4n%m[ST9]_bFOB]5Fh]jf.kpPdPF-E)4E`g:k_QY.%P'`-tKfQ?$mB#SBp;D&8hfXrAolh<+fla24_o+=6C/[b=XNLomh,DD3p)jr'J0cE)'`0Z8j^380s,?$>%3Biq"JCD;#J(.4&s$*+f>RMWO&]"p/umh)a)q6Q5l.hqfdg<S[?N-K`Kp)g&oTH.@:StWDqJ+@Kla(KLWL+A)cmOH4>g7,3mJ"X1&n+OkM]lX/qra,c5Y.i$PDuGEqd3PWYJ//fti_'MW/P^\r0NaUc^dGgKOjrYnj=;"9#Q^H-?eJhl0JnoqJ?ZEOY51`sa1@I7jBP--A#hp2?[4pB*%ph[T4(bNNb2A26*au93kJ9#>OB&H;O'7>-LA)hq4\I*$!Q$6Q8g.Zp8g3\)AEFneu6/X'fKe[3R?tj.qhe>p<iT4H;UYdkZf(%P5<J9)B'>G9Nq(r2Ti.JWP0]L-7h$:0ATL61=RSW$6L-(,1bg*JReq'V;a"[A2QiFA\)2N7)p?MiNlT.$0SBFX-^Lt$$5"<F8Cb@M3un`1b3t5/?gGr<$0*)A&`r_Af[/2@I&O?H7Kj"%K#,LZG[W#=K]Ae$Y_O9=+$R*f\S4%f7So`p$u'@->M`Ko(?Q<X+O2OY<t\$>-?l.eJ)Q?3Voa6_DRiLS)1/o<u_5TVtqlgD),.tYGPC=cKT_c=5>A2DUk#I3+!)M6TP#^5"$m=i%+cF'V[&Q_?8k6<^<t2%CF32p]N7kW<n9)(kR>'ZuGPS"d?Q'X*@_KljG!&L^X'Pao$0=i?Qj43Yh?J$6):+ZA2Z:_84$LG<7@NfoK`b(4$(;M);YMn,`)6KYVhI5XDUUX5[t;14oJR12n]`=<c:9_e+K9!2W8uMT;\%'WanJO**F?eXr\iRhtDpL<lTYc(SWTpCS!lnS1SA#hes63WM;`D$.b.9W%p@BqUu0\?pgrR+RsC#Vf'V*n2o.dD",J8o5%GA<lVFq[$$A:fNg-Br1J//W+8o/7frm3W]UEJj9`D;F`4Q;WG9uYYIS"BZq7,3TO+;CH.6s+f(k"cD#G,'ked[e)h3Cjt%+;\(r"+e:G#&]`ZdG8"&9gcY\9Pr2_64bg1`icMT.>36gp3^p*W/Rnu&Y[hBD;cX9*&r)laMSNkSS`:HJ`!IJ->-EtfhdKBPrM46ar-^YQCkiI$(%_\6*FJ@BA$"EO1ZbVTVE\0t\e%l3Y>ad\SQ<p12&C[WWKPPo"0O^O/MG3fCZSigJl:fXCOZL+^n>=LF/R5<^K+#EYm,`i03kMu]Yg35CeEgV?(Uj#kjV*42%/p=n3kqm!^!;*Yi32`.$R"g6d/jqB^U<RNLO370AEO+4I+`eg"`ninFhscBpKb";kG9!-g3N8n_ff@9_6mQjY[H9>MHK@d(Muj1\-knER,#Y5$ZtfGS-;Z3Z-WQW]9m;`h-Fj)5k-H2>MscCX"B;/&^i6Z^5Mn)AD]h3$ek%na`Rd&7@`D4J;[(PD1X!WSTbQKLqBf:\4CjM@;lhM]'4/:f&JfEMn\AF#oB>^Rh[Q;+4i/N[(e5-\=?r4k&@lK](Fs%N-./!jWa"'M9B&QAJ:Eb*1'Q`*9aoFEo]jYNm!P_*EQ[0bj2boF(AtI,]KK_g8-#b[Bs.2E(^*bdKTU71/]lsB4tclgiaY$rRX:3r[51:m,+;3AqXNCs"fpqX4S7>3do$#G,m^\(^HYPY"\3;YC!\W*<SI9&,(g.Gm2@m$T7t7Y@)ePjki;:>'-D'?J_8,%,'L1U]8@@)ig/Dq0r>!O$B5uC]Ci0rr@?n,n'~>endstream
 endobj
 xref
 0 11
@@ -74,7 +74,7 @@
 trailer
 <<
 /ID 
-[<04f2ecb0275aa7db13f037200f131a46><04f2ecb0275aa7db13f037200f131a46>]
+[<15c688b429b296967ca578fba4f1e94c><15c688b429b296967ca578fba4f1e94c>]
 % ReportLab generated PDF document -- digest (http://www.reportlab.com)
 
 /Info 8 0 R
@@ -82,5 +82,5 @@
 /Size 11
 >>
 startxref
-6275
+6300
 %%EOF
Binary file test-data/sample-heatmap.png has changed
Binary file test-data/sample-scatter.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test.targetcoverage.cnn	Fri Sep 29 15:44:03 2023 +0000
@@ -0,0 +1,62 @@
+chromosome	start	end	gene	depth	log2
+chrM	576	848	-	91.9926	6.52345
+chrM	848	1121	-	5.9011	2.56098
+chrM	1121	1394	-	1.4359	0.521953
+chrM	1394	1667	-	3.78022	1.91847
+chrM	1667	1940	-	1.80586	0.852687
+chrM	1940	2212	-	0.0404412	-4.62803
+chrM	2212	2485	-	1.65201	0.724226
+chrM	2485	2758	-	4.0696	2.02489
+chrM	2758	3031	-	0.717949	-0.478047
+chrM	3031	3304	-	1.33333	0.415037
+chrM	3306	3579	-	0.626374	-0.674905
+chrM	3579	3853	-	2.30292	1.20346
+chrM	3853	4126	-	2.74359	1.45606
+chrM	4126	4400	-	0.748175	-0.418552
+chrM	4401	4695	-	0.94898	-0.075551
+chrM	4695	4990	-	5.01695	2.32681
+chrM	4990	5284	-	1.73129	0.79185
+chrM	5284	5579	-	5.97966	2.58006
+chrM	5586	5655	-	0	-20
+chrM	5656	5729	-	0	-20
+chrM	5760	5891	-	1.79389	0.843094
+chrM	5903	6171	-	2.15299	1.10634
+chrM	6171	6440	-	2.02974	1.02129
+chrM	6440	6708	-	1.51493	0.599247
+chrM	6708	6977	-	2.03717	1.02657
+chrM	6977	7245	-	3.05597	1.61163
+chrM	7245	7514	-	1.24907	0.320855
+chrM	7517	7767	-	1.944	0.959028
+chrM	7767	8018	-	2.24701	1.16801
+chrM	8018	8269	-	1.00797	0.01145
+chrM	8294	8364	-	0	-20
+chrM	8365	8630	-	1.0717	0.0998986
+chrM	8630	8896	-	2.07895	1.05585
+chrM	8896	9162	-	3.66165	1.8725
+chrM	9162	9427	-	3.60755	1.85102
+chrM	9427	9693	-	0.808271	-0.30709
+chrM	9693	9959	-	2.07143	1.05063
+chrM	9959	10224	-	0.00377358	-8.04985
+chrM	10224	10490	-	1.44361	0.52968
+chrM	10490	10756	-	1.82331	0.866559
+chrM	10756	11022	-	1.12406	0.168719
+chrM	11022	11287	-	4.27925	2.09736
+chrM	11287	11553	-	2.93609	1.5539
+chrM	11553	11819	-	1.06015	0.0842689
+chrM	11819	12084	-	2.40377	1.2653
+chrM	12084	12350	-	0.736842	-0.440573
+chrM	12350	12616	-	0.736842	-0.440573
+chrM	12616	12882	-	2.48872	1.3154
+chrM	12882	13147	-	4.50943	2.17295
+chrM	13147	13413	-	1.47368	0.559427
+chrM	13413	13679	-	2.95865	1.56494
+chrM	13679	13944	-	1.64906	0.721641
+chrM	13944	14210	-	0.890977	-0.166539
+chrM	14210	14476	-	2.21053	1.14439
+chrM	14476	14742	-	4.45489	2.15539
+chrM	14746	14987	-	8.14523	3.02596
+chrM	14987	15228	-	2.48133	1.31111
+chrM	15228	15470	-	1.11157	0.152599
+chrM	15470	15711	-	3.9751	1.99099
+chrM	15711	15953	-	0.809917	-0.304153
+chrM	15955	16023	-	0	-20
--- a/test-data/tumor-diagram.pdf	Sun May 14 20:08:09 2023 +0000
+++ b/test-data/tumor-diagram.pdf	Fri Sep 29 15:44:03 2023 +0000
@@ -42,7 +42,7 @@
 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) 
+/Author (anonymous) /CreationDate (D:20230926163933+00'00') /Creator (ReportLab PDF Library - www.reportlab.com) /Keywords () /ModDate (D:20230926163933+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) 
   /Subject (unspecified) /Title (untitled) /Trapped /False
 >>
 endobj
@@ -53,10 +53,10 @@
 endobj
 10 0 obj
 <<
-/Filter [ /ASCII85Decode /FlateDecode ] /Length 4990
+/Filter [ /ASCII85Decode /FlateDecode ] /Length 5025
 >>
 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
+Gau0G9<T[$&`(d:kTrWkZ-27\2A/DE@0+R^Z&"-r&7m2!!oiZiNaH(?e),@2!A_gj^#a-u?*9O+NrA,0caTP8hJ_/HDms*Reo+m'[t!/Fm^g+1I/D1C2rDC?V^LB3p<+OB"9%-Pj*1:uRl>ir$YY#1I364MdmfPG]/H+:Z*(&jip_AG0PnJm61K<-"'j2)h`4dEENc3T1#hHlgFrQu`VY.4qrROtJ%bmMj"ImNhe[3qiN%HAr-u):%pMYqjLj*'pYTmlGCTPhD?!hRlrd9DZJ.6lkdMtW(YQIUP2E#[XmOGj=-"0O?Yd/qgXg@-[$e"L4Ho>k(UIh^F1()A8Wd;1VER@KUE_AX=tt_+.g;HD_`Y5s,U[i<l<\7oZrA2[WHB!dFjOSk@1+^S>!a(5:m6Eqp[!#d-f4#<Ge_jlFjQYB!a==J=IWX4jAXS\Ltb:=12,'fD\1`7aCW^$>but'&"QUui5Hgc8Tg1?`sR*9hMq%5+&]lNcrUeP>S?*/1dX`CE,5bi'X[9or-0s.&CVD(fL#u!Bdjf[L4*!__(p:s/J$KG%CqZHKomQ#9&lW/SZe\pHqM-#1aWGGIL@pg%(0][M`hgA`1X*mEs53U3o1Tf(;s(S=c;@IO!$_Tai.#mbb4j,$KP<DCgBmAMjc>UpOhTC>7Tf"Q/'@m$lgBVF^0#`SH_Ai)2`j.Ymb;d`UokQDD/t'RZ@L_r!2r"P7e:VO$R!XM[kr._<IgN@<H^scr=`_9m:9;F;j9ODMl[T0>>mX*\:"fX@qSu:)pZ6"5idVe"A;f<C>GFG2llpL#u+''G>2NZDW$=>ug=/TG:$)mjbcXF:IhgQ40nBk[;rOPEM`#V+#9CT,p^5.B*TJe#m4`Up";@S!&coJld_=,YV27E\T!J2$4;Wlft-'fJlD>lIIoB@B3;BE;3.*NLa**(Y3b%`a_$V'Jr<2/<7a`-Gek#Sh%A#+s`'/MPFL"P!ZQ2Oi#rGj"Z+X0GA2m\FCOq&$KZg=@CY6F*n6DFaO^G?SP+\?b+c<SOSYB4fPZ>OL3J7c@IfSNshKmUZ:i$A$dq'cljR7_QHi%1b9cdWB,iI^?X[%iH6/Ai;B7Y!3H8r@K(*_;S`_B58.=U3_Li3fKXb.e+F86/VVD-dHTY8/3<&Mll.HMWREOG9Fa7&LFW_&LA<SM_"C2l[F:f@)F/q3Q.T[Ml\LgaJF-nFkd2ON3)#>?Cnt%/2\DW<V&VQ+L4B_n0JUpQV^Z_E[).eAmm::lG"J`WNoq^0-BQ"7PpO!C9H_2,qsGjt/".StdS^G43QRpMfKi)MT5fGfKNoEi+dPm@Q>nPpYg]Bk;Pi)\-2.:GB^h^VLS3)([YIcY'(K'qHKp/_I--0P6/iB@7JRd4:al,5I%"$1c8[s]5/M*`o@QK$\-rMeP;(p*i!W:8_k&#<Q'5kn_C@msBa`i8U[!-*i-0REI*@m#^1Xrc]CUiPQuG#68>*[UV)]4ri<rCP:C7o,):t']_Xo;edjd%<:6KqOo>#T=_&IG$F@sbk%]_nFJ@+Xa\DW8VfZVABK`cB2LTLom%$S"ENG+t:i#'p51_;s^nIY2\Qq04t&if^BJr=V.d$^(rU4Y*=rbu,8AXClf_(gKk"[a+saCrmG(k2iiLn'TIX.UWT5Ti#R(Gmd"=>(*r"QS#no0g^Aale;0@*=BHT`HudGnh8b5`<U$nOKNLbY9><kRitCK,-]u:$;Wf5$?E(\3pQD_C6%J"u27Z&MPH9#KN)MJJGNn=e#OIBGi7ug-AB$_\?oP#;%+)GT6EDMo!#(JcM6S$SFpn_1a9'X%bQ=PG6%Y,pYK=*1OZ1l<aoY8"'MuN._"PUdG_P%V)OtD'I6rW+"+)d(n1i9uB6>d(NAh7N1nYS#d)FA-1<9jH$[>73>)FBWrgIG9iBF@BZ'K*D%VmfQi[LJq?1g-@[<J*nY)8Ofg3#.82Kj=q"43P;JKcRBRdD2+SeJ1'oohLe9Qu-ctnX,F=HjQY[=a;NUI+4Vj,+9N04+JVU7s73BPYdW-eQ*_/aoNoE$Y/Yji7@#d1A5p+#dK1Nmd"aaKh2!h_4<KVr?$hj)?BO69RUn,h_hnJoM3<_T-r2k/c%`.,m`>I@#1"HAGN:HI`gW,s/&h"_tZPIq$Mt?2.Y"&obbG930'lFRTfmX*+!kCV/5(:%jqT3+O$,L.sOMGjW[>j9jf+"#eDXn*,QiVRM,?TLTcaL*km^g5tIcT03@tGPX2ANE:Q'Yd[ZRgn:cWF6#/=-F=LC)56Z+TM9_(pYt6^C\:UaktW#(O<@,Vnb"X$HO"I2ED5[uN=NFkg@@-2k#Kn;;hLMVue"iJ#tYD7JlA_%8fr`3>aL.cWk=G\B78D%&(EDD6IWStJm6nWP,-/FOn\#-4)6oO;\85!U?\/Zbi<f;#M#=_=JKQ6j2VAXS[k+b`3c:]u>n[Uf3,lNTudie+'e=JK/5%QM0F(a8I*e[@nQp=s&Cjlm]Dr!k`:]eO'gO-f@B$n3ul>=0V+dJVl4)3)PN!T'F`2tMR8'-'okeTU&fm(1*^)[D!@3M!Xf,,o;]Z!-AK@!UFJK4V9Fo^IO"A&:]L$f&Ftr16H.QQ8#pa[p[sF!AL3/*8!s[29mO1\k>NggGAIY:ipX,-kSZJCu-;jp+ZPHdHnfTaUkA$DA?#kdP2/1B*d*H.DRKb>cGF=estLJfR1<*5^+37:(2oi5gPnZUJI;+>Y"SdVAXtYBk(?bjNDGgrT_rKS':n2Hu\bU3+`\T^)g*FCM0r92lt0&HufO@,S0qog.1=L0Db6Q8k<%F#dcs6AtcTm8CXa]"sQeK+,r_X]YPAIpgWQ\M;kIlXl/k26hsMOrBHT0QS4Ne&:RT)_A]!B.S%1K>%N/K;39'07.RjF?pt+N&eXl4D&(Tf_2c@dWO1-/9-QgO4X056<h[:4Bhst;]%qqAJCPL%lBVY2cqF$Co;%Ar&D^u5bWfPD--2LXrAq"atr,b3:(-[AY@;KD;'!cFb=6RqLiF?b&<q7cGMNjeb7e_ZKh]fam%JbL;3eTCCL#PRp7UnDD:^^4B\G#KuMQlk1K7oY9*Al@-H#pc,&Y[[k)='.>BmKor@>#N`tHV/,ra!Va[4lL@Wf2h,[aAq[NLRcujtP%Sm6EOX8GIB$8*<:lXeD)_>-0H,d,q,?-+Jqg#T?j^m$QQI!!SB8nJsrf=M!:gE2YT^)ePp!<OC7Fk`(C9+k0VI+K%@*'n;A!S[:^n=.q,k>/().%LA?j@'f[R+e1AdH;GBjC$b8RHVRc4Xd=B?<N$N\q:@%\HGL4m-D.%@3o%.'cqbBOc=Fm;+R_IfGh@r3GVmbETjWQ9L#>4D;/_lR1qso:YCRbD=W#AQclQYW,N8gr.:XCU@BM=$8JZ'"%:UNAseCE'E$>E[[L=K<?.EKDc5MEfE<,?aJa'^F.B[Iqi_GHu6?bq%D,D(Q%iq8D22Tp?h<G$h2lc1#W+nKs1frg"LWTe?&W)^>#i8c<p6o190]@Yg<an":D!(VntnQ4'ZR+oadA$UR]LQ/2\%@A]lMWZ)Hf%fgVW*rgpDIc\O>RNo$(A6sGX3flE.,\pK_X9j("R/#<tb5!hd:7!B?56kV#_fi4\6KUt2nHBk^b?Y7!274n%kF@tCj^4^Y$,dosmZT+jGMe9)Q-I+t8.@GK$"L[j=J??ui)YbcZ.,F\sn^+h^k=b0)2haM(4FqXk((>V/-.l`9Mk8'hUUTndT34gVUfOAbKQMkcD)p(OMP#:$AP^W=WLpT<?62PU*`hsBQVfp>)4k)M\^bJ0T6>'SeuKE@2/0/K@P?q.:.8J[*]*5YS&JbW#S;)mMoK/32ZSab/pk^P)qE\GKSHokCG3+um=k"pBT(U$[hA&,pl3`T+WB2Qah;=AJ'rWt*GPdYGM1R&^!f.-?q^)4MN[l/<XHMVIXCS7QMPCGZ'$[aTFq6lk.;Wp:bcpi8f\1idQ[QhCk2jg.2SM..himi1\:icaH^'sZNWS#N5j$I,EZJ7MI`t+6j+\s.i*1l^!!g``Fcp#po$oL4+8DC(96-rjH6t&Z%rR9E.epg=Nh%0Y3,Ota-JR^d6,^+TYN9*(:T1pJQ*f:@6?F:/6G1iGmlTM09BNj")QH60ad#`\[eAeU1p'fe:MNon^C#MO*+,+Ms/lQjpSd'a&c1UmtCJOn)jrig'eZd4[5UhJP,3h+W(]23Y&Mo6P]iWlNV$5!g!IlDA!2oW<8CeM\GSXRfP@NI.)+5_$PJr$#X&g5%*BF6JPMj1146*7Kj]*D08+E3nt(6)V`f-Fi(FL'4JIci*4I-&M,gBo*U`-U3/F4BW<Atc+q=9/48h*Se4R(ip>/VOD/m&M.![F-IU/aC*M[(lmHi!Y&Y`QX>C+mcO+OKorMsWY0ZOP`;eN(RQ*UFVZT\-[sk%]XbKMkU=H&r@^I%4d>g[N-RdF.n%_\%24kFQCCLr6Brttj2@nhO^eSBl$idagFeV:+4\mo61&Hef[GG>$;lpk((fo[63mQ9cU]lK1IVXLHNIP0j>2oi(#1rXnL"/&0F^]TUs..No_b2Y5nDVM;N7^,fKf1i/@A/iYr)i/o'5&*'fu0Y>L,O$eJYnLt[]n:/$8)aqM3\OMD5-=4FIVL+Yhpd"09!DtjpOh"UAi$"S*XNkdnLU_0^L.@Qr&!jPUo58a^#[&hW-X(@;g1[Ku>o1dmEDjghJ#09b+UL!17#.>nf7r\ojX\A:Ek$J]SJTr</<UY'UR(iuGNK9O><56la>7]Js=tgi^BKAA[XRL<5h7Fc@WN*d9Y=p,t'XQkXsT%l&q=\3j`2rH6T-S-dc+'Q\G"2cn3@A)2)YB9@<M`gg2_N>ZfG3H!CfB;"8hc>clg(Nk`_eT%5E3-cP=IZ>)qq%,M/AaSUoZs)57.g./FU[!G[Fe^G7k7KHYLYJt2^&.ZdmsfGEC7M#j+#O/['&k!-*hd$VXQ]9oIfj\W)ri'hnD;2<rQ\UDE=DL';VNGmjZP@G(5_R^h]r$bMnaadZ04C)]t?O933p6V?iQ0#-5]dDq0r>!%mQTHbCA99rr?Ej9^r~>endstream
 endobj
 xref
 0 11
@@ -74,7 +74,7 @@
 trailer
 <<
 /ID 
-[<a5e27b2ce92c0d3c0e7c3f705e84dabd><a5e27b2ce92c0d3c0e7c3f705e84dabd>]
+[<5ccdb050c51ab6d81ad0299b61b60455><5ccdb050c51ab6d81ad0299b61b60455>]
 % ReportLab generated PDF document -- digest (http://www.reportlab.com)
 
 /Info 8 0 R
@@ -82,5 +82,5 @@
 /Size 11
 >>
 startxref
-6275
+6310
 %%EOF
Binary file test-data/tumor-scatter.pdf has changed
Binary file test-data/tumor-scatter.png has changed
Binary file test-data/tumor.bam.bai has changed
--- a/test-data/tumor.call.cns	Sun May 14 20:08:09 2023 +0000
+++ b/test-data/tumor.call.cns	Fri Sep 29 15:44:03 2023 +0000
@@ -1,2 +1,2 @@
-chromosome	start	end	gene	log2	cn	depth	probes	weight
-chrM	848	16023	-	0	2	2.05471	54	42.33
+chromosome	start	end	gene	log2	cn	depth	p_ttest	probes	weight
+chrM	848	16023	-	0	2	2.06481	0.0731783	51	39.1851
--- a/test-data/tumor.cnr	Sun May 14 20:08:09 2023 +0000
+++ b/test-data/tumor.cnr	Fri Sep 29 15:44:03 2023 +0000
@@ -1,55 +1,52 @@
 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
+chrM	848	1121	-	5.9011	1.10765	0.461544
+chrM	1121	1394	-	1.4359	0.5119	0.42727
+chrM	1394	1667	-	3.78022	1.00545	0.83803
+chrM	1667	1940	-	1.80586	-0.141849	0.898961
+chrM	2212	2485	-	1.65201	-0.341112	0.939111
+chrM	2485	2758	-	4.0696	0.227416	0.0932326
+chrM	2758	3031	-	0.717949	-0.74495	0.631914
+chrM	3031	3304	-	1.33333	-0.242655	0.920093
+chrM	3306	3579	-	0.626374	-1.60223	0.635989
+chrM	3579	3853	-	2.30292	0.419897	0.823341
+chrM	3853	4126	-	2.74359	0.492218	0.954299
+chrM	4401	4695	-	0.94898	-0.75838	0.810217
+chrM	4695	4990	-	5.01695	0.833877	0.745894
+chrM	4990	5284	-	1.73129	-0.166905	0.52302
+chrM	5284	5579	-	5.97966	1.47869	0.301566
+chrM	5586	5655	-	0	-20.2111	0.909096
+chrM	5656	5729	-	0	-19.9628	0.789733
+chrM	5760	5891	-	1.79389	-0.439065	0.721317
+chrM	5903	6171	-	2.15299	0.879609	0.881613
+chrM	6171	6440	-	2.02974	-0.56855	0.540091
+chrM	6440	6708	-	1.51493	-0.533208	0.953875
+chrM	6708	6977	-	2.03717	0.010185	0.924831
+chrM	6977	7245	-	3.05597	0.140146	0.861631
+chrM	7517	7767	-	1.944	-0.010185	0.932072
+chrM	8018	8269	-	1.00797	-0.730833	0.739629
+chrM	8365	8630	-	1.0717	-0.175653	0.333588
+chrM	8630	8896	-	2.07895	-0.906325	0.953701
+chrM	8896	9162	-	3.66165	0.578937	0.922022
+chrM	9162	9427	-	3.60755	0.713289	0.953614
+chrM	9427	9693	-	0.808271	-0.874973	0.24358
+chrM	9693	9959	-	2.07143	0.093785	0.870609
+chrM	10490	10756	-	1.82331	0.051865	0.901124
+chrM	10756	11022	-	1.12406	-0.367165	0.23713
+chrM	11022	11287	-	4.27925	0.646415	0.94264
+chrM	11287	11553	-	2.93609	0.0993253	0.941632
+chrM	11553	11819	-	1.06015	-0.671504	0.923937
+chrM	11819	12084	-	2.40377	-0.123249	0.829158
+chrM	12084	12350	-	0.736842	-1.27337	0.953701
+chrM	12350	12616	-	0.736842	-1.07369	0.953701
+chrM	12616	12882	-	2.48872	-0.24473	0.918407
+chrM	12882	13147	-	4.50943	0.330991	0.612262
+chrM	13147	13413	-	1.47368	0.0980097	0.895383
+chrM	13413	13679	-	2.95865	0.764085	0.898039
+chrM	13679	13944	-	1.64906	0.200821	0.200719
+chrM	13944	14210	-	0.890977	-1.20825	0.935464
+chrM	14210	14476	-	2.21053	0.220457	0.911385
+chrM	14987	15228	-	2.48133	0.0611491	0.887423
+chrM	15228	15470	-	1.11157	-0.517988	0.95146
+chrM	15470	15711	-	3.9751	0.858538	0.951359
+chrM	15711	15953	-	0.809917	-0.698856	0.917254
+chrM	15955	16023	-	0	-20.8746	0.88741
--- a/test-data/tumor.cns	Sun May 14 20:08:09 2023 +0000
+++ b/test-data/tumor.cns	Fri Sep 29 15:44:03 2023 +0000
@@ -1,2 +1,2 @@
-chromosome	start	end	gene	log2	depth	probes	weight
-chrM	848	16023	-	-1.39012	2.05471	54	42.33
+chromosome	start	end	gene	log2	depth	probes	weight	ci_lo	ci_hi
+chrM	848	16023	-	-1.4129	2.06481	51	39.1851	-1.84016	-0.943
--- a/test-data/tumor.targetcoverage.cnn	Sun May 14 20:08:09 2023 +0000
+++ b/test-data/tumor.targetcoverage.cnn	Fri Sep 29 15:44:03 2023 +0000
@@ -1,38 +1,62 @@
 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	576	848	-	91.9926	6.52345
+chrM	848	1121	-	5.9011	2.56098
+chrM	1121	1394	-	1.4359	0.521953
+chrM	1394	1667	-	3.78022	1.91847
+chrM	1667	1940	-	1.80586	0.852687
+chrM	1940	2212	-	0.0404412	-4.62803
+chrM	2212	2485	-	1.65201	0.724226
+chrM	2485	2758	-	4.0696	2.02489
+chrM	2758	3031	-	0.717949	-0.478047
+chrM	3031	3304	-	1.33333	0.415037
+chrM	3306	3579	-	0.626374	-0.674905
+chrM	3579	3853	-	2.30292	1.20346
+chrM	3853	4126	-	2.74359	1.45606
+chrM	4126	4400	-	0.748175	-0.418552
+chrM	4401	4695	-	0.94898	-0.075551
+chrM	4695	4990	-	5.01695	2.32681
+chrM	4990	5284	-	1.73129	0.79185
+chrM	5284	5579	-	5.97966	2.58006
 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	5760	5891	-	1.79389	0.843094
+chrM	5903	6171	-	2.15299	1.10634
+chrM	6171	6440	-	2.02974	1.02129
+chrM	6440	6708	-	1.51493	0.599247
+chrM	6708	6977	-	2.03717	1.02657
+chrM	6977	7245	-	3.05597	1.61163
+chrM	7245	7514	-	1.24907	0.320855
+chrM	7517	7767	-	1.944	0.959028
+chrM	7767	8018	-	2.24701	1.16801
+chrM	8018	8269	-	1.00797	0.01145
 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	8365	8630	-	1.0717	0.0998986
+chrM	8630	8896	-	2.07895	1.05585
+chrM	8896	9162	-	3.66165	1.8725
+chrM	9162	9427	-	3.60755	1.85102
+chrM	9427	9693	-	0.808271	-0.30709
+chrM	9693	9959	-	2.07143	1.05063
+chrM	9959	10224	-	0.00377358	-8.04985
+chrM	10224	10490	-	1.44361	0.52968
+chrM	10490	10756	-	1.82331	0.866559
+chrM	10756	11022	-	1.12406	0.168719
+chrM	11022	11287	-	4.27925	2.09736
+chrM	11287	11553	-	2.93609	1.5539
+chrM	11553	11819	-	1.06015	0.0842689
+chrM	11819	12084	-	2.40377	1.2653
+chrM	12084	12350	-	0.736842	-0.440573
+chrM	12350	12616	-	0.736842	-0.440573
+chrM	12616	12882	-	2.48872	1.3154
+chrM	12882	13147	-	4.50943	2.17295
+chrM	13147	13413	-	1.47368	0.559427
+chrM	13413	13679	-	2.95865	1.56494
+chrM	13679	13944	-	1.64906	0.721641
+chrM	13944	14210	-	0.890977	-0.166539
+chrM	14210	14476	-	2.21053	1.14439
+chrM	14476	14742	-	4.45489	2.15539
+chrM	14746	14987	-	8.14523	3.02596
+chrM	14987	15228	-	2.48133	1.31111
+chrM	15228	15470	-	1.11157	0.152599
+chrM	15470	15711	-	3.9751	1.99099
+chrM	15711	15953	-	0.809917	-0.304153
 chrM	15955	16023	-	0	-20