changeset 5:770bceda7785 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/bbtools commit cd59ba2c349865259b92302a1d70e103b8a5e3cb
author iuc
date Tue, 27 Aug 2024 10:14:11 +0000
parents 1baa4ad1ac2f
children
files bbnorm.xml macros.xml test-data/cv_output.gff test-data/cv_output.txt test-data/cv_output.vcf test-data/cv_qualityhist_output.tabular test-data/cv_scorehist_output.tabular test-data/cv_zygosityhist_output.tabular
diffstat 8 files changed, 88 insertions(+), 87 deletions(-) [+]
line wrap: on
line diff
--- a/bbnorm.xml	Sat May 18 19:13:59 2024 +0000
+++ b/bbnorm.xml	Tue Aug 27 10:14:11 2024 +0000
@@ -145,22 +145,22 @@
                 <param name="read2" type="data" format="fastqsanger,fastqsanger.gz" label="Reverse reads"/>
             </when>
             <when value="paired">
-                <param name="reads_collection" type="data_collection" format="fastqsanger,fastqsanger.gz" collection_type="paired" label="Collection of forward and reverse reads"/>
+                <param name="reads_collection" type="data_collection" format="fastqsanger,fastqsanger.gz" label="Collection of forward and reverse reads" collection_type="paired"/>
             </when>
         </conditional>
-        <param argument="target" type="integer" value="100" min="1" label="Target normalization depth" help="All depth parameters control kmer depth, not read depth. For kmer depth Dk, read depth Dr, read length R, and kmer size K: Dr=Dk*(R/(R-K+1))"/>
+        <param argument="target" type="integer" min="1" value="100" label="Target normalization depth" help="All depth parameters control kmer depth, not read depth. For kmer depth Dk, read depth Dr, read length R, and kmer size K: Dr=Dk*(R/(R-K+1))"/>
         <section name="norm_params" title="Normalization parameters">
-            <param argument="maxdepth" type="integer" value="-1" min="-1" label="Reads will not be downsampled when below this depth, even if they are above the target depth." help="All depth parameters control kmer depth, not read depth. For kmer depth Dk, read depth Dr, read length R, and kmer size K: Dr=Dk*(R/(R-K+1))"/>
-            <param argument="mindepth" type="integer" value="5" min="0" label="kmers with depth below this number will not be included when calculating the depth of a read." help="All depth parameters control kmer depth, not read depth. For kmer depth Dk, read depth Dr, read length R, and kmer size K: Dr=Dk*(R/(R-K+1))"/>
-            <param argument="minkmers" type="integer" value="15" min="0" label="Reads must have at least this many kmers over min depth to be retained."/>
-            <param argument="percentile" type="integer" value="54" min="1" max="100" label="Percentile to infer read depth" help="Read depth is by default inferred from the 54th percentile of kmer depth, but this may be changed to any number 1-100."/>
+            <param argument="maxdepth" type="integer" min="-1" value="-1" label="Reads will not be downsampled when below this depth, even if they are above the target depth." help="All depth parameters control kmer depth, not read depth. For kmer depth Dk, read depth Dr, read length R, and kmer size K: Dr=Dk*(R/(R-K+1))"/>
+            <param argument="mindepth" type="integer" min="0" value="5" label="kmers with depth below this number will not be included when calculating the depth of a read." help="All depth parameters control kmer depth, not read depth. For kmer depth Dk, read depth Dr, read length R, and kmer size K: Dr=Dk*(R/(R-K+1))"/>
+            <param argument="minkmers" type="integer" min="0" value="15" label="Reads must have at least this many kmers over min depth to be retained."/>
+            <param argument="percentile" type="integer" min="1" max="100" value="54" label="Percentile to infer read depth" help="Read depth is by default inferred from the 54th percentile of kmer depth, but this may be changed to any number 1-100."/>
             <param argument="uselowerdepth" type="boolean" checked="true" label="For pairs, use the depth of the lower read as the depth proxy."/>
             <param argument="deterministic" type="boolean" checked="true" label="Generate random numbers deterministically" help="This would ensure identical output between multiple runs. May decrease speed with a huge number of threads."/>
             <param argument="fixspikes" type="boolean" checked="false" label="Do a slower, high-precision bloom filter lookup of kmers that appear to have an abnormally high depth due to collisions."/>
             <param argument="passes" type="integer" value="2" label="Number of passes to perform" help=" pass is the basic mode. 2 passes allows greater accuracy, error detection, better contol of output depth."/>
         </section>
         <section name="hashing_params" title="Hashing parameters">
-            <param argument="k" type="integer" value="31" min="1" label="kmer length" help="Values under 32 are most efficient, but arbitrarily high values are supported."/>
+            <param argument="k" type="integer" min="1" value="31" label="kmer length" help="Values under 32 are most efficient, but arbitrarily high values are supported."/>
             <param argument="bits" type="select" label="Bits per cell in bloom filter" help="Maximum kmer depth recorded is 2^c bits. Large values decrease accuracy for a fixed amount of memory, so use the lowest number you can that will still capture highest-depth kmers.">
                 <option value="2">2</option>
                 <option value="4">4</option>
@@ -168,7 +168,7 @@
                 <option value="16" selected="true">16</option>
                 <option value="32">32</option>
             </param>
-            <param argument="hashes" type="integer" value="3" min="1" label="Number of times each kmer is hashed and stored." help="Higher is slower. Higher is more accurate if there is enough memory, but less accurate if there is not enough memory."/>
+            <param argument="hashes" type="integer" min="1" value="3" label="Number of times each kmer is hashed and stored." help="Higher is slower. Higher is more accurate if there is enough memory, but less accurate if there is not enough memory."/>
             <conditional name="prefilter">
                 <param argument="prefilter" type="select" label="Use a prefilter to eliminate low-depth kmers" help="True is slower, but generally more accurate; filters out low-depth kmers from the main hashtable. The prefilter is more memory-efficient because it uses 2-bit cells.">
                     <option value="true">Yes</option>
@@ -176,46 +176,44 @@
                 </param>
                 <when value="false"/>
                 <when value="true">
-                    <param argument="prehashes" type="integer" value="2" min="1" label="Number of hashes for the prefilter"/>
-                    <param argument="prefilterbits" type="integer" value="2" min="1" label="Bits per cell in prefilter"/>
-                    <param argument="prefiltersize" type="float" value="0.35" min="0" max="1" label="Fraction of memory to allocate for the prefilter."/>
+                    <param argument="prehashes" type="integer" min="1" value="2" label="Number of hashes for the prefilter"/>
+                    <param argument="prefilterbits" type="integer" min="1" value="2" label="Bits per cell in prefilter"/>
+                    <param argument="prefiltersize" type="float" min="0" max="1" value="0.35" label="Fraction of memory to allocate for the prefilter."/>
                 </when>
-            </conditional>          
-            <param argument="buildpasses" type="integer" value="1" min="1" label="Number of passes" help="More passes can sometimes increase accuracy by iteratively removing low-depth kmers"/>
-            <param argument="minq" type="integer" value="6" min="0" label="Ignore kmers containing bases with quality below this threshold"/>
-            <param argument="minprob" type="float" value="0.5" min="0" max="1" label="Ignore kmers with overall probability of correctness below this threshold"/>
+            </conditional>
+            <param argument="buildpasses" type="integer" min="1" value="1" label="Number of passes" help="More passes can sometimes increase accuracy by iteratively removing low-depth kmers"/>
+            <param argument="minq" type="integer" min="0" value="6" label="Ignore kmers containing bases with quality below this threshold"/>
+            <param argument="minprob" type="float" min="0" max="1" value="0.5" label="Ignore kmers with overall probability of correctness below this threshold"/>
             <param argument="rdk" type="boolean" checked="true" label="Remove duplicate kmers" help="When true, a kmer's count will only be incremented once per read pair, even if that kmer occurs more than once."/>
         </section>
         <section name="error_det_params" title="Error detection parameters">
-            <param argument="hdp" type="integer" value="90" min="0" max="100" label="highdepthpercentile" help="Position in sorted kmer depth array used as proxy of a read's high kmer depth."/>
-            <param argument="ldp" type="integer" value="25" min="0" max="100" label="lowdepthpercentile" help="Position in sorted kmer depth array used as proxy of a read's low kmer depth."/>
+            <param argument="hdp" type="integer" min="0" max="100" value="90" label="highdepthpercentile" help="Position in sorted kmer depth array used as proxy of a read's high kmer depth."/>
+            <param argument="ldp" type="integer" min="0" max="100" value="25" label="lowdepthpercentile" help="Position in sorted kmer depth array used as proxy of a read's low kmer depth."/>
             <param argument="tossbadreads" type="boolean" checked="false" label="Throw away reads detected as containing errors."/>
             <param argument="requirebothbad" type="boolean" checked="false" label="Only toss bad pairs if both reads are bad."/>
-            <param argument="errordetectratio" type="integer" value="125" min="0" label="Error detection ratio" help="Reads with a ratio of at least this much between their high and low depth kmers will be classified as error reads."/>
-            <param argument="highthresh" type="integer" value="12" min="0" label="Threshold for high kmer" help="A high kmer at this or above are considered non-error."/>
-            <param argument="lowthresh" type="integer" value="3" min="0" label="Threshold for low kmer" help="Kmers at this and below are always considered errors."/>
+            <param argument="errordetectratio" type="integer" min="0" value="125" label="Error detection ratio" help="Reads with a ratio of at least this much between their high and low depth kmers will be classified as error reads."/>
+            <param argument="highthresh" type="integer" min="0" value="12" label="Threshold for high kmer" help="A high kmer at this or above are considered non-error."/>
+            <param argument="lowthresh" type="integer" min="0" value="3" label="Threshold for low kmer" help="Kmers at this and below are always considered errors."/>
         </section>
-        
         <section name="error_corr_params" title="Error correction parameters">
             <conditional name="ecc">
                 <param argument="ecc" type="select" label="What should be done with detected errors?" help="Tadpole is now preferred for error correction, as it does a better job.">
-                    <option value="true" >Correct errors when possible</option>
+                    <option value="true">Correct errors when possible</option>
                     <option value="false" selected="true">Do not attempt to correct errors</option>
                 </param>
                 <when value="false"/>
                 <when value="true">
-                    <param argument="ecclimit" type="integer" value="3" min="1" label="Correct up to this many errors per read." help="If more are detected, the read will remain unchanged."/>
-                    <param argument="errorcorrectratio" type="integer" value="140" min="0" label="Depth ratio" help="Adjacent kmers with a depth ratio of at least this much between will be classified as an error."/>
-                    <param argument="echighthresh" type="integer" value="22" min="0" label="Threshold for high kmer" help="A kmer at this or above may be considered non-error."/>
-                    <param argument="eclowthresh" type="integer" value="2" min="0" label="Threshold for low kmer." help="kmers at this depth or below will be considered as errors."/>
-                    <param argument="eccmaxqual" type="integer" value="127" min="0" label="Do not correct bases with quality above this value."/>
+                    <param argument="ecclimit" type="integer" min="1" value="3" label="Correct up to this many errors per read." help="If more are detected, the read will remain unchanged."/>
+                    <param argument="errorcorrectratio" type="integer" min="0" value="140" label="Depth ratio" help="Adjacent kmers with a depth ratio of at least this much between will be classified as an error."/>
+                    <param argument="echighthresh" type="integer" min="0" value="22" label="Threshold for high kmer" help="A kmer at this or above may be considered non-error."/>
+                    <param argument="eclowthresh" type="integer" min="0" value="2" label="Threshold for low kmer." help="kmers at this depth or below will be considered as errors."/>
+                    <param argument="eccmaxqual" type="integer" min="0" value="127" label="Do not correct bases with quality above this value."/>
                     <param argument="meo" type="boolean" checked="false" label="Marks errors by reducing quality value of suspected errors; does not correct anything."/>
                     <param argument="mue" type="boolean" checked="true" label="Mark errors only on uncorrectable reads."/>
                     <param argument="overlap" type="boolean" checked="false" label="Correct errors by read overlap."/>
                 </when>
             </conditional>
         </section>
-
         <section name="output_options" title="Output options">
             <param name="save_discarded_reads" type="boolean" checked="false" label="Save the reads that were eliminated from the input datasets to the history"/>
             <param name="save_kmer_hists" type="boolean" checked="false" label="Save the kmer histograms (in tabular format) for the input and output datasets to the history"/>
@@ -247,7 +245,7 @@
         <!-- Single end sequencing -->
         <test expect_num_outputs="1">
             <param name="input_type" value="single_end"/>
-            <param name="read1" ftype="fastqsanger" value="bbnorm/input_R1.fastq"/>
+            <param name="read1" value="bbnorm/input_R1.fastq" ftype="fastqsanger"/>
             <param name="target" value="4"/>
             <section name="norm_params">
                 <param name="deterministic" value="true"/>
@@ -258,7 +256,7 @@
         <!-- Single end sequencing, compressed -->
         <test expect_num_outputs="1">
             <param name="input_type" value="single_end"/>
-            <param name="read1" ftype="fastqsanger.gz" value="bbnorm/input_R1.fastq.gz"/>
+            <param name="read1" value="bbnorm/input_R1.fastq.gz" ftype="fastqsanger.gz"/>
             <param name="target" value="4"/>
             <section name="norm_params">
                 <param name="deterministic" value="true"/>
@@ -269,7 +267,7 @@
         <!-- PE as an interleaved file -->
         <test expect_num_outputs="4">
             <param name="input_type" value="PE_1file"/>
-            <param name="read1" ftype="fastqsanger" value="bbnorm/input_interleaved.fastq"/>
+            <param name="read1" value="bbnorm/input_interleaved.fastq" ftype="fastqsanger"/>
             <param name="target" value="4"/>
             <section name="norm_params">
                 <param name="deterministic" value="true"/>
@@ -287,8 +285,8 @@
         <!-- PE as 2 files -->
         <test expect_num_outputs="2">
             <param name="input_type" value="PE_2files"/>
-            <param name="read1" ftype="fastqsanger" value="bbnorm/input_R1.fastq"/>
-            <param name="read2" ftype="fastqsanger" value="bbnorm/input_R2.fastq"/>
+            <param name="read1" value="bbnorm/input_R1.fastq" ftype="fastqsanger"/>
+            <param name="read2" value="bbnorm/input_R2.fastq" ftype="fastqsanger"/>
             <param name="target" value="4"/>
             <section name="norm_params">
                 <param name="deterministic" value="true"/>
@@ -390,4 +388,3 @@
     </help>
     <expand macro="citations"/>
 </tool>
-
--- a/macros.xml	Sat May 18 19:13:59 2024 +0000
+++ b/macros.xml	Tue Aug 27 10:14:11 2024 +0000
@@ -1,15 +1,19 @@
 <macros>
-    <token name="@TOOL_VERSION@">39.06</token>
-    <token name="@VERSION_SUFFIX@">2</token>
+    <token name="@TOOL_VERSION@">39.08</token>
+    <token name="@VERSION_SUFFIX@">0</token>
     <token name="@PROFILE@">22.01</token>
     <xml name="edam_ontology">
         <edam_topics>
-            <edam_topic>topic_0622</edam_topic> <!-- Genomics -->
-            <edam_topic>topic_0091</edam_topic> <!-- Bioinformatics -->
+            <edam_topic>topic_0622</edam_topic>
+            <!-- Genomics -->
+            <edam_topic>topic_0091</edam_topic>
+            <!-- Bioinformatics -->
         </edam_topics>
         <edam_operations>
-            <edam_operation>operation_0496</edam_operation> <!-- Global alignment -->
-            <edam_operation>operation_0491</edam_operation> <!-- Pairwise sequence alignment -->
+            <edam_operation>operation_0496</edam_operation>
+            <!-- Global alignment -->
+            <edam_operation>operation_0491</edam_operation>
+            <!-- Pairwise sequence alignment -->
         </edam_operations>
     </xml>
     <xml name="bio.tools">
@@ -20,7 +24,8 @@
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@TOOL_VERSION@">bbmap</requirement>
-            <requirement type="package" version="1.19.2">samtools</requirement> <!-- automatic solving installs 1.6 in some cases, instead -->
+            <requirement type="package" version="1.20">samtools</requirement>
+            <!-- automatic solving installs 1.6 in some cases, instead -->
         </requirements>
     </xml>
     <macro name="dbKeyActionsBBMap">
@@ -62,7 +67,7 @@
                 <param name="read2" type="data" format="fastqsanger.gz,fastqsanger" label="Reverse reads fastq file"/>
             </when>
             <when value="paired">
-                <param name="reads_collection" type="data_collection" format="fastqsanger,fastqsanger.gz" collection_type="paired" label="Collection of fastqsanger paired read files"/>
+                <param name="reads_collection" type="data_collection" format="fastqsanger,fastqsanger.gz" label="Collection of fastqsanger paired read files" collection_type="paired"/>
             </when>
         </conditional>
     </macro>
@@ -87,18 +92,18 @@
     </macro>
     <macro name="ktrim_cond">
         <conditional name="ktrim_cond">
-            <param name="ktrim_select"  type="select" label="Trim reads to remove bases matching reference kmers?">
+            <param name="ktrim_select" type="select" label="Trim reads to remove bases matching reference kmers?">
                 <option value="no" selected="true">No</option>
                 <option value="yes">Yes</option>
             </param>
             <when value="no"/>
             <when value="yes">
-                <param argument="ktrim"  type="select" label="Select trimming position">
+                <param argument="ktrim" type="select" label="Select trimming position">
                     <option value="r">Trim to the right</option>
                     <option value="l">Trim to the left</option>
                 </param>
                 <param argument="minlength" type="integer" value="10" label="Minimum read length" help="Trimmed reads shorter than this will be discarded, pairs will be discarded if both are shorter."/>
-             </when>
+            </when>
         </conditional>
     </macro>
     <xml name="citations">
@@ -109,4 +114,3 @@
         </citations>
     </xml>
 </macros>
-
--- a/test-data/cv_output.gff	Sat May 18 19:13:59 2024 +0000
+++ b/test-data/cv_output.gff	Tue Aug 27 10:14:11 2024 +0000
@@ -1,18 +1,18 @@
-##gff-version
-#BBMapVersion
+##gff-version 3
+#BBMapVersion	39.08
 #ploidy	2
 #rarity	1.00000
 #minAlleleFraction	0.1000
 #reads	2207
 #pairedReads	0
 #properlyPairedReads	0
-#readLengthAvg
+#readLengthAvg	145.46
 #properPairRate	0.0000
-#totalQualityAvg
-#mapqAvg
-#reference
+#totalQualityAvg	36.5800
+#mapqAvg	43.35
+#reference	/home/bag/projects/code/tools-iuc/tools/bbtools/test-data/NC_002945v4.fasta
 #seqid	source	type	start	end	score	strand	phase	attributes
-NC_002945.4	.	sequence_variant_obs	976327	976327
-NC_002945.4	.	sequence_variant_obs	1501932	1501932
-NC_002945.4	.	sequence_variant_obs	3380579	3380579
-NC_002945.4	.	sequence_variant_obs	3646293	3646293
+NC_002945.4	.	sequence_variant_obs	976327	976327	0.87	+	.	ID=SUB T
+NC_002945.4	.	sequence_variant_obs	1501932	1501932	0.92	+	.	ID=SUB C
+NC_002945.4	.	sequence_variant_obs	3380579	3380579	0.92	+	.	ID=SUB G
+NC_002945.4	.	sequence_variant_obs	3646293	3646293	0.89	+	.	ID=SUB A
--- a/test-data/cv_output.txt	Sat May 18 19:13:59 2024 +0000
+++ b/test-data/cv_output.txt	Tue Aug 27 10:14:11 2024 +0000
@@ -1,18 +1,18 @@
-#fileformat
-#BBMapVersion
+#fileformat	Var_1.3
+#BBMapVersion	39.08
 #ploidy	2
 #rarity	1.00000
 #minAlleleFraction	0.1000
 #reads	2207
 #pairedReads	0
 #properlyPairedReads	0
-#readLengthAvg
-#properPairRate
-#totalQualityAvg
-#mapqAvg
-#reference
+#readLengthAvg	145.46
+#properPairRate	0.0000
+#totalQualityAvg	36.5800
+#mapqAvg	43.35
+#reference	/home/bag/projects/code/tools-iuc/tools/bbtools/test-data/NC_002945v4.fasta
 #scaf	start	stop	type	call	r1p	r1m	r2p	r2m	paired	lengthSum	mapq	mapqMax	baseq	baseqMax	edist	edistMax	id	idMax	cov	minusCov	nearbyVarCount	flagged	contigEndDist	phredScore	readCount	alleleFraction	revisedAF	strandRatio	baseqAvg	mapqAvg	edistAvg	identityAvg	edistScore	identityScore	qualityScore	pairedScore	biasScore	coverageScore	homopolymerScore	score
-0	976326	976327	SUB	T
-0	1501931	1501932	SUB	C
-0	3380578	3380579	SUB	G
-0	3646292	3646293	SUB	A
+0	976326	976327	SUB	T	2	0	0	0	0	292	77	40	48	24	111	65	1930	972	0	-1	0	0	0	22.21	2	1	1	0.5000	24	38.50	55.50	965	0.9972	0.9932	0.7489	0.9800	0.9737	0.7143	1	0.8725
+0	1501931	1501932	SUB	C	0	2	0	0	0	292	88	44	64	39	74	38	1986	993	0	-1	0	0	0	27.20	2	1	1	0.5000	32	44	37	993	0.9851	0.9994	0.9831	0.9800	0.9737	0.7143	1	0.9202
+0	3380578	3380579	SUB	G	0	2	0	0	0	289	87	44	75	38	105	63	1986	993	0	-1	0	0	0	27.85	2	1	1	0.5000	37.50	43.50	52.50	993	0.9968	0.9994	0.9972	0.9800	0.9737	0.7143	1	0.9250
+0	3646292	3646293	SUB	A	1	1	0	0	0	291	86	44	76	38	44	31	1986	993	0	-1	0	0	0	23.34	2	1	1	1	38	43	22	993	0.7996	0.9994	0.9975	0.9800	0.9747	0.7143	1	0.8853
--- a/test-data/cv_output.vcf	Sat May 18 19:13:59 2024 +0000
+++ b/test-data/cv_output.vcf	Tue Aug 27 10:14:11 2024 +0000
@@ -1,16 +1,16 @@
 ##fileformat=VCFv4.2
-##BBMapVersion=
+##BBMapVersion=39.08
 ##ploidy=2
 ##rarity=1.00000
 ##minallelefraction=0.10000
 ##reads=2207
 ##pairedReads=0
 ##properlyPairedReads=0
-##readLengthAvg=
+##readLengthAvg=145.462
 ##properPairRate=0.00000
-##totalQualityAvg=
+##totalQualityAvg=36.580
 ##mapqAvg=43.348
-##reference=
+##reference=/home/bag/projects/code/tools-iuc/tools/bbtools/test-data/NC_002945v4.fasta
 ##contig=<ID=NC_002945.4,length=7000>
 ##FILTER=<ID=FAIL,Description="Fail">
 ##FILTER=<ID=PASS,Description="Pass">
@@ -53,8 +53,8 @@
 ##FORMAT=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
 ##FORMAT=<ID=SC,Number=1,Type=Float,Description="Score">
 ##FORMAT=<ID=PF,Number=1,Type=String,Description="Pass Filter">
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	
-NC_002945.4	976327	.	N	T	22.21	PASS	SN=0;STA=976326;STO=976327;TYP=SUB;R1P=2;R1M=0;R2P=0;R2M=0;AD=2;DP=2;MCOV=-1;PPC=0;AF=1.0000;RAF=1.0000;LS=292;MQS=77;MQM=40;BQS=48;BQM=24;EDS=111;EDM=65;IDS=1930;IDM=972;NVC=0;FLG=0;CED=0;HMP=0;SB=0.9980	GT:DP:AD:AF:RAF:NVC:FLG:SB:SC:PF	1/1:2:2:1.0000:1.0000:0:0:0.9980:22.21:PASS
-NC_002945.4	1501932	.	N	C	27.20	PASS	SN=0;STA=1501931;STO=1501932;TYP=SUB;R1P=0;R1M=2;R2P=0;R2M=0;AD=2;DP=2;MCOV=-1;PPC=0;AF=1.0000;RAF=1.0000;LS=292;MQS=88;MQM=44;BQS=64;BQM=39;EDS=74;EDM=38;IDS=1986;IDM=993;NVC=0;FLG=0;CED=0;HMP=0;SB=0.9980	GT:DP:AD:AF:RAF:NVC:FLG:SB:SC:PF	1/1:2:2:1.0000:1.0000:0:0:0.9980:27.20:PASS
-NC_002945.4	3380579	.	N	G	27.85	PASS	SN=0;STA=3380578;STO=3380579;TYP=SUB;R1P=0;R1M=2;R2P=0;R2M=0;AD=2;DP=2;MCOV=-1;PPC=0;AF=1.0000;RAF=1.0000;LS=289;MQS=87;MQM=44;BQS=75;BQM=38;EDS=105;EDM=63;IDS=1986;IDM=993;NVC=0;FLG=0;CED=0;HMP=0;SB=0.9980	GT:DP:AD:AF:RAF:NVC:FLG:SB:SC:PF	1/1:2:2:1.0000:1.0000:0:0:0.9980:27.85:PASS
-NC_002945.4	3646293	.	N	A	23.34	PASS	SN=0;STA=3646292;STO=3646293;TYP=SUB;R1P=1;R1M=1;R2P=0;R2M=0;AD=2;DP=2;MCOV=-1;PPC=0;AF=1.0000;RAF=1.0000;LS=291;MQS=86;MQM=44;BQS=76;BQM=38;EDS=44;EDM=31;IDS=1986;IDM=993;NVC=0;FLG=0;CED=0;HMP=0;SB=1.0000	GT:DP:AD:AF:RAF:NVC:FLG:SB:SC:PF	1/1:2:2:1.0000:1.0000:0:0:1.0000:23.34:PASS
+#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	dataset_4f1db038-76fe-46bc-a222-dfc4894a8ff2.dat
+NC_002945.4	976327	.	N	T	22.21	PASS	SN=0;STA=976326;STO=976327;TYP=SUB;R1P=2;R1M=0;R2P=0;R2M=0;AD=2;DP=2;MCOV=-1;PPC=0;AF=1;RAF=1;LS=292;MQS=77;MQM=40;BQS=48;BQM=24;EDS=111;EDM=65;IDS=1930;IDM=972;NVC=0;FLG=0;CED=0;HMP=0;SB=0.9980	GT:DP:AD:AF:RAF:NVC:FLG:SB:SC:PF	1/1:2:2:1:1:0:0:0.9980:22.21:PASS
+NC_002945.4	1501932	.	N	C	27.20	PASS	SN=0;STA=1501931;STO=1501932;TYP=SUB;R1P=0;R1M=2;R2P=0;R2M=0;AD=2;DP=2;MCOV=-1;PPC=0;AF=1;RAF=1;LS=292;MQS=88;MQM=44;BQS=64;BQM=39;EDS=74;EDM=38;IDS=1986;IDM=993;NVC=0;FLG=0;CED=0;HMP=0;SB=0.9980	GT:DP:AD:AF:RAF:NVC:FLG:SB:SC:PF	1/1:2:2:1:1:0:0:0.9980:27.20:PASS
+NC_002945.4	3380579	.	N	G	27.85	PASS	SN=0;STA=3380578;STO=3380579;TYP=SUB;R1P=0;R1M=2;R2P=0;R2M=0;AD=2;DP=2;MCOV=-1;PPC=0;AF=1;RAF=1;LS=289;MQS=87;MQM=44;BQS=75;BQM=38;EDS=105;EDM=63;IDS=1986;IDM=993;NVC=0;FLG=0;CED=0;HMP=0;SB=0.9980	GT:DP:AD:AF:RAF:NVC:FLG:SB:SC:PF	1/1:2:2:1:1:0:0:0.9980:27.85:PASS
+NC_002945.4	3646293	.	N	A	23.34	PASS	SN=0;STA=3646292;STO=3646293;TYP=SUB;R1P=1;R1M=1;R2P=0;R2M=0;AD=2;DP=2;MCOV=-1;PPC=0;AF=1;RAF=1;LS=291;MQS=86;MQM=44;BQS=76;BQM=38;EDS=44;EDM=31;IDS=1986;IDM=993;NVC=0;FLG=0;CED=0;HMP=0;SB=1	GT:DP:AD:AF:RAF:NVC:FLG:SB:SC:PF	1/1:2:2:1:1:0:0:1:23.34:PASS
--- a/test-data/cv_qualityhist_output.tabular	Sat May 18 19:13:59 2024 +0000
+++ b/test-data/cv_qualityhist_output.tabular	Tue Aug 27 10:14:11 2024 +0000
@@ -1,8 +1,8 @@
 #BaseQualityHist
-#Vars
-#Mean
-#Median
-#Mode
+#Vars	4
+#Mean	32.75
+#Median	32
+#Mode	32
 #Quality	AvgCount	MaxCount
 0	0	0
 1	0	0
--- a/test-data/cv_scorehist_output.tabular	Sat May 18 19:13:59 2024 +0000
+++ b/test-data/cv_scorehist_output.tabular	Tue Aug 27 10:14:11 2024 +0000
@@ -1,8 +1,8 @@
 #ScoreHist
-#Vars
-#Mean
-#Median
-#Mode
+#Vars	4
+#Mean	24.75
+#Median	23
+#Mode	27
 #Quality	Count
 0	0
 1	0
--- a/test-data/cv_zygosityhist_output.tabular	Sat May 18 19:13:59 2024 +0000
+++ b/test-data/cv_zygosityhist_output.tabular	Tue Aug 27 10:14:11 2024 +0000
@@ -1,7 +1,7 @@
 #ZygoHist
-#Vars
-#Mean
-#HomozygousFraction
+#Vars	4
+#Mean	2.000
+#HomozygousFraction	1.000
 #Zygosity	Count
 0	0
 1	0