changeset 0:25dcde5bf94e draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/haltools commit 6244b9d15a5ad97ae20191e2f8fbafe2050c3cac
author iuc
date Fri, 06 Feb 2026 10:39:34 +0000
parents
children
files hal_halStats.xml macros.xml test-data/hal2fasta_output.fasta.bz2 test-data/hal2fasta_output.fasta.gz test-data/hal2maf.bed test-data/hal2maf_append.maf test-data/hal2maf_output.maf.bz2 test-data/hal2maf_output.maf.gz test-data/hal2paf_output.paf.gz test-data/hal2vg_noAncestors_output.pg test-data/hal2vg_output.hg test-data/hal2vg_output.pg test-data/hal2vg_refGenomes_output.pg test-data/hal2vg_targetGenomes_chop_output.pg test-data/halAddToBranch_bot_input.hal test-data/halAddToBranch_top_input.hal test-data/halBranchMutations.bed test-data/halLiftover.bed test-data/halLiftover_append.bed test-data/halRenameGenomes_input.tsv test-data/halRenameGenomes_input.txt test-data/halRenameSequences_input.tsv test-data/halRenameSequences_input.txt test-data/halReplaceGenome2_bot_input.hal test-data/halReplaceGenome2_top_input.hal test-data/halReplaceGenome_top_input.hal test-data/halSynteny.psl test-data/halTest.hal test-data/halTestExtended.hal test-data/halTestIndels.hal test-data/halWiggleLiftover.wig test-data/halWiggleLiftover_append.wig test-data/maf2halTest.maf test-data/maf2halTest.maf.bz2 test-data/maf2halTest.maf.gz test-data/maf2halTestAppend.hal test-data/maf2halTestAppend.maf
diffstat 37 files changed, 899 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hal_halStats.xml	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,492 @@
+<tool id="hal_halstats" name="halStats" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
+    <description>retrieves basic statistics from a HAL file</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="requirements"/> 
+    <expand macro="stdio"/>
+    <command detect_errors="aggressive"><![CDATA[
+        set -o pipefail; ## Sets the pipeline’s exit code to halStats’s on failure.
+        ( ## echo headers for specific numerical data
+        #if $mode.option == '--baseComp':
+            echo -e 'fraction_of_As\tfraction_of_Gs\tfraction_of_Cs\tfraction_of_Ts';
+        #else if $mode.option == '--numSegments':
+            echo -e 'numTopSegments\tnumBottomSegments';
+        #end if
+        halStats
+            #if $mode.option == '--allCoverage':
+                --allCoverage
+            #else if $mode.option == '--branches':
+                --branches
+            #else if $mode.option == '--genomes':
+                --genomes
+            #else if $mode.option == '--metaData':
+                --metaData
+            #else if $mode.option == '--root':
+                --root
+            #else if $mode.option == '--tree':
+                --tree
+            #else if $mode.option == '--baseComp':
+                --baseComp '$mode.baseComp'
+            #else if $mode.option == '--bedSequences':
+                --bedSequences '$mode.bedSequences'
+            #else if $mode.option == '--bottomSegments':
+                --bottomSegments '$mode.bottomSegments'
+            #else if $mode.option == '--branchLength':
+                --branchLength '$mode.branchLength'
+            #else if $mode.option == '--children':
+                --children '$mode.children'
+            #else if $mode.option == '--chromSizes':
+                --chromSizes '$mode.chromSizes'
+            #else if $mode.option == '--coverage':
+                --coverage '$mode.coverage'
+            #else if $mode.option == '--genomeMetaData':
+                --genomeMetaData '$mode.genomeMetaData'
+            #else if $mode.option == '--numSegments':
+                --numSegments '$mode.numSegments'
+            #else if $mode.option == '--parent':
+                --parent '$mode.parent'
+            #else if $mode.option == '--percentID':
+                --percentID '$mode.percentID'
+            #else if $mode.option == '--sequenceStats':
+                --sequenceStats '$mode.sequenceStats'
+            #else if $mode.option == '--sequences':
+                --sequences '$mode.sequences'
+            #else if $mode.option == '--span':
+                --span '$mode.span'
+            #else if $mode.option == '--spanRoot':
+                --spanRoot '$mode.spanRoot'
+            #else if $mode.option == '--topSegments':
+                --topSegments '$mode.topSegments'
+            #end if
+            '$input_hal'
+        ## Pipes specific output to replace commas with tabs. Output is mostly numerical, and Genome names contain no commas, as this would invalidate the HAL Newick tree.
+        #if $mode.option == '--allCoverage' or $mode.option == '--sequenceStats' or $mode.option == '--percentID' or $mode.option == '--coverage':
+            | tr ',' '\t'
+        #else if $mode.option == '--numSegments':
+            | tr ' ' '\t' ## Replace spaces
+        #end if
+        ) > '$out_file'
+    ]]></command>
+    <inputs>
+        <expand macro="input_hal"/>
+        <conditional name="mode">
+            <param name="option" type="select" label="Select the type of statistics you are interested in">
+                <option value="" selected="true">Basic overview</option>
+                <option value="--genomes">List of genomes in alignment (--genomes)</option>
+                <option value="--sequences">List of sequences in a given genome (--sequences)</option>
+                <option value="--bedSequences">List of sequences in a given genome (in BED format) (--bedSequences)</option>
+                <option value="--sequenceStats">Stats for each sequence in a given genome (--sequenceStats)</option>
+                <option value="--tree">Newick tree (--tree)</option>
+                <option value="--branches">List of branches specified by the child genome (--branches)</option>
+                <option value="--span">Branches on path (or spanning tree) between given list of genomes (--span)</option>
+                <option value="--spanRoot">Genomes on path (or spanning tree) with spanning tree root between given list of genomes (--spanRoot)</option>
+                <option value="--children">Names of children of a given genome (--children)</option>
+                <option value="--root">Root genome name (--root)</option>
+                <option value="--parent">Parent name of a given genome (--parent)</option>
+                <option value="--branchLength">Branch length between a given genome and its parent (--branchLength)</option>
+                <option value="--numSegments">Number of top and of bottom segments of a given genome (--numSegments)</option>
+                <option value="--topSegments">Coordinates of all top segments of a given genome (in BED format) (--topSegments)</option>
+                <option value="--bottomSegments">Coordinates of all bottom segments of a given genome (in BED format) (--bottomSegments)</option>
+                <option value="--baseComp">Base composition by sampling every step bases (--baseComp)</option>
+                <option value="--genomeMetaData">Metadata for a given genome (--genomeMetaData)</option>
+                <option value="--metaData">Metadata for the entire alignment (--metaData)</option>
+                <option value="--chromSizes">Name and length of each sequence in a given genome (in format used by wigToBigWig) (--chromSizes)</option>
+                <option value="--percentID">Percent ID of a given genome with all other genomes (--percentID)</option>
+                <option value="--coverage">Histogram of coverage of a given genome with all genomes (--coverage)</option>
+                <option value="--allCoverage">Histogram of coverage from all genomes to all genomes (--allCoverage)</option>
+            </param>
+            <when value=""/>
+            <when value="--allCoverage"/>
+            <when value="--baseComp">
+                <param name="baseComp" type="text" value="" label="Genome and step" help="Parameter value is of the form genome,step. Ex: human,1000">
+                    <expand macro="sanitizer_default"/>
+                    <validator type="regex" message="Please enter as genome,step without leading or trailing spaces">^[^\s,](?:[^,]*[^\s,])?,[0-9]+$</validator>
+                </param>
+            </when>
+            <when value="--bedSequences">
+                <param name="bedSequences" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--topSegments">
+                <param name="topSegments" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--bottomSegments">
+                <param name="bottomSegments" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--branchLength">
+                <param name="branchLength" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--branches"/>
+            <when value="--children">
+                <param name="children" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--chromSizes">
+                <param name="chromSizes" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--coverage">
+                <param name="coverage" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--genomeMetaData">
+                <param name="genomeMetaData" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--genomes"/>
+            <when value="--metaData"/>
+            <when value="--numSegments">
+                <param name="numSegments" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--parent">
+                <param name="parent" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--percentID">
+                <param name="percentID" type="text" value="" label="Genome name" help="Only non-duplicated and unambiguous sites are considered">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--root"/>
+            <when value="--sequenceStats">
+                <param name="sequenceStats" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--sequences">
+                <param name="sequences" type="text" value="" label="Genome name">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>
+            </when>
+            <when value="--span">
+                <param name="span" type="text" value="" label="List of genomes" help="Enter a comma-separated (no spaces) list of genomes">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_comma_list"/>
+                </param>
+            </when>
+            <when value="--spanRoot">
+                <param name="spanRoot" type="text" value="" label="List of genomes" help="Enter a comma-separated (no spaces) list of genomes">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_comma_list"/>
+                </param>
+            </when>
+            <when value="--tree"/>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data name="out_file" format="txt" label="${tool.name} on ${on_string}: Stats">
+            <change_format>
+                <when input="mode.option" value="--numSegments" format="tabular"/>
+                <when input="mode.option" value="--allCoverage" format="tabular"/>
+                <when input="mode.option" value="--sequenceStats" format="tabular"/>
+                <when input="mode.option" value="--percentID" format="tabular"/>
+                <when input="mode.option" value="--coverage" format="tabular"/>
+                <when input="mode.option" value="--chromSizes" format="tabular"/>
+                <when input="mode.option" value="--baseComp" format="tabular"/>
+                <when input="mode.option" value="--metaData" format="tabular"/>
+                <when input="mode.option" value="--genomeMetaData" format="tabular"/>
+                <when input="mode.option" value="--bedSequences" format="bed"/>
+                <when input="mode.option" value="--topSegments" format="bed"/>
+                <when input="mode.option" value="--bottomSegments" format="bed"/>
+            </change_format>
+        </data>
+    </outputs>
+    <tests>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <output name="out_file" ftype="txt">
+                <assert_contents>
+                    <has_line line="(Genome_1:1,Genome_2:1,Genome_3:1)Genome_0;"/>
+                    <has_line line="GenomeName, NumChildren, Length, NumSequences, NumTopSegments, NumBottomSegments"/>
+                    <has_line line="Genome_0, 3, 1758, 1, 0, 8"/>
+                    <has_n_lines n="10"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--allCoverage"/>
+            </conditional>
+            <output name="out_file" ftype="tabular">
+                <assert_contents>
+                    <has_line line="FromGenome&#009; ToGenome&#009; sitesCovered1Times&#009; sitesCovered2Times&#009; sitesCovered3Times&#009; sitesCovered4Times&#009; sitesCovered5Times"/>
+                    <has_line line="Genome_1&#009; Genome_1&#009; 5472&#009; 4688&#009; 3516&#009; 2637&#009; 1465"/>
+                    <has_n_lines n="10"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--bedSequences"/>
+                <param name="bedSequences" value="Genome_0"/>
+            </conditional>
+            <output name="out_file" ftype="bed">
+                <assert_contents>
+                    <has_line line="Genome_0_seq&#009;0&#009;1758"/>
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--topSegments"/>
+                <param name="topSegments" value="Genome_1"/>
+            </conditional>
+            <output name="out_file" ftype="bed">
+                <assert_contents>
+                    <has_line line="Genome_1_seq&#009;0&#009;293"/>
+                    <has_line line="Genome_1_seq&#009;3223&#009;3399"/>
+                    <has_line line="Genome_1_seq&#009;5274&#009;5472"/>
+                    <has_n_lines n="28"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--bottomSegments"/>
+                <param name="bottomSegments" value="Genome_0"/>
+            </conditional>
+            <output name="out_file" ftype="bed">
+                <assert_contents>
+                    <has_line line="Genome_0_seq&#009;0&#009;293"/>
+                    <has_line line="Genome_0_seq&#009;1033&#009;1172"/>
+                    <has_line line="Genome_0_seq&#009;1465&#009;1758"/>
+                    <has_n_lines n="8"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--tree"/>
+            </conditional>
+            <output name="out_file" ftype="txt">
+                <assert_contents>
+                    <has_line line="(Genome_1:1,Genome_2:1,Genome_3:1)Genome_0;"/>
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--spanRoot"/>
+                <param name="spanRoot" value="Genome_0,Genome_1"/>
+            </conditional>
+            <output name="out_file" ftype="txt">
+                <assert_contents>
+                    <has_text text="Genome_0 Genome_1"/>
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--sequences"/>
+                <param name="sequences" value="Genome_0"/>
+            </conditional>
+            <output name="out_file" ftype="txt">
+                <assert_contents>
+                    <has_line line="Genome_0_seq"/>
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--sequenceStats"/>
+                <param name="sequenceStats" value="Genome_0"/>
+            </conditional>
+            <output name="out_file" ftype="tabular">
+                  <assert_contents>
+                    <has_line line="SequenceName&#009; Length&#009; NumTopSegments&#009; NumBottomSegments"/>
+                    <has_line line="Genome_0_seq&#009; 1758&#009; 0&#009; 8"/>
+                    <has_n_lines n="3"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--root"/>
+            </conditional>
+            <output name="out_file" ftype="txt">
+                <assert_contents>
+                    <has_line line="Genome_0"/>
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--parent"/>
+                <param name="parent" value="Genome_1"/>
+            </conditional>
+            <output name="out_file" ftype="txt">
+                <assert_contents>
+                    <has_line line="Genome_0"/>
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--percentID"/>
+                <param name="percentID" value="Genome_0"/>
+            </conditional>
+            <output name="out_file" ftype="tabular">
+                <assert_contents>
+                    <has_line line="Genome&#009; % ID&#009; numID&#009; numSites"/>
+                    <has_line line="Genome_0&#009; 1&#009; 1758&#009; 1758"/>
+                    <has_n_lines n="5"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--numSegments"/>
+                <param name="numSegments" value="Genome_1"/>
+            </conditional>
+            <output name="out_file" ftype="tabular">
+                <assert_contents>
+                    <has_line line="numTopSegments&#009;numBottomSegments"/>
+                    <has_line line="28&#009;0"/>
+                    <has_n_lines n="2"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--genomes"/>
+            </conditional>
+            <output name="out_file" ftype="txt">
+                <assert_contents>
+                    <has_line line="Genome_0 Genome_1 Genome_2 Genome_3"/>
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--children"/>
+                <param name="children" value="Genome_0"/>
+            </conditional>
+            <output name="out_file" ftype="txt">
+                <assert_contents>
+                    <has_line line="Genome_1 Genome_2 Genome_3"/>    
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--chromSizes"/>
+                <param name="chromSizes" value="Genome_1"/>
+            </conditional>
+            <output name="out_file" ftype="tabular">
+                <assert_contents>
+                    <has_line line="Genome_1_seq&#009;5472"/>    
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--branches"/>
+            </conditional>
+            <output name="out_file" ftype="txt">
+                <assert_contents>
+                    <has_line line="Genome_1 Genome_2 Genome_3"/>     
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--branchLength"/>
+                <param name="branchLength" value="Genome_1"/>
+            </conditional>
+            <output name="out_file" ftype="txt">
+                <assert_contents>
+                    <has_line line="1"/>     
+                    <has_n_lines n="1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <param name="input_hal" value="halTest.hal"/>
+            <conditional name="mode">
+                <param name="option" value="--baseComp"/>
+                <param name="baseComp" value="Genome_0,1000"/>
+            </conditional>
+            <output name="out_file" ftype="tabular">
+                <assert_contents>
+                    <has_line line="fraction_of_As&#009;fraction_of_Gs&#009;fraction_of_Cs&#009;fraction_of_Ts"/>    
+                    <has_line line="0.5&#009;0&#009;0.5&#009;0"/>     
+                    <has_n_lines n="2"/>
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+halStats prints structural and summary information from a HAL file, which must be provided as input.
+It can list genomes, sequences, sizes, and relationships, provides sequence level statistics such as coverage histograms and percent ID, and can export sequence or segment information in BED format. 
+
+It is useful for quick inspection of a HAL file and for extracting per genome or per sequence summaries.
+
+-----
+
+**Output**
+
+The tool generates different output formats based on the selected type of statistic:
+
+- **Tabular** for --coverage, --allCoverage, --sequenceStats, --percentID, --baseComp, --chromSizes, --metaData, --numSegments, or --genomeMetaData
+- **BED** for --bedSequences, --topSegments, or --bottomSegments
+- Plain **text** for all other type of statistics
+
+    ]]></help>
+    <expand macro="citation"/>
+    <expand macro="creator"/>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,191 @@
+<macros>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="@TOOL_VERSION@">cactus</requirement>
+        </requirements>
+    </xml>
+    <token name="@TOOL_VERSION@">2.9.9</token>
+    <token name="@VERSION_SUFFIX@">0</token>
+    <token name="@PROFILE@">25.1</token>
+    <xml name="stdio">
+        <stdio>
+            <!-- Anything other than zero is an error -->
+            <exit_code range="1:"/>
+            <exit_code range=":-1"/>
+            <!-- In case the return code has not been set properly check stderr too -->
+            <regex source="stderr"  match="Error:"/>
+            <regex source="stderr"  match="Exception:"/>
+            <regex match="terminate called after throwing"/>
+            <regex match="hal_exception"/>
+        </stdio>
+    </xml>
+    <xml name="input_hal">
+        <param name="input_hal" type="data" format="hal" label="HAL file"/>
+    </xml>
+    <xml name="input_mapping">
+        <param name="input_mapping" type="data" format="txt,tsv" label="File for renaming" help="Tab-separated file. First column: existing name, second column: new name. Any names not provided will stay the same"/>
+    </xml> 
+    <xml name="hal_backend_format">
+        <conditional name="backend">
+            <param name="format" type="select" label="Back-end storage format for new HAL file" help="Select the back-end storage format for the new HAL file (--format)">
+                <option value="hdf5" selected="true">HDF5</option>
+                <!-- 
+                At the moment, creating a HAL file in mmap format is disabled. The creation in HDF5 format is enforced.
+                <option value="mmap">mmap</option> 
+                -->
+            </param>
+            <when value="hdf5"/>
+            <!-- 
+            <when value="mmap">
+                <param argument="- -mmapFileSize" type="integer" label="Initial file size" value="64" min="1" help="Initial mmap HAL file size in gigabytes"/>
+            </when>
+            -->
+        </conditional>
+    </xml>
+    <xml name="params_mmap_size">
+        <param argument="--mmapFileSize" type="integer" label="Initial file size" value="64" min="1" help="Initial mmap HAL file size in gigabytes"/>
+    </xml>
+    <xml name="params_start">
+        <param argument="--start" type="integer" value="0" label="Start coordinate" help="Coordinate within reference genome (or reference sequence if set) to start at"/>
+    </xml>    
+    <xml name="params_length">
+        <param argument="--length" type="integer" min="0" value="0" label="Length to process" help="Length of the reference genome (or reference sequence if set) to process. If set to 0, the entire thing is processed"/>
+    </xml>  
+    <xml name="params_onlySequenceNames">
+        <param argument="--onlySequenceNames" type="boolean" truevalue="--onlySequenceNames" falsevalue="" checked="false" label="Only sequence names" help="Use only sequence names for output names. By default, the UCSC convention of Genome.Sequence is used"/>
+    </xml>
+    <xml name="params_root_optional">
+        <param argument="--root" type="text" value="" optional="true" label="Root genome" help="Process only genomes belonging to the subtree rooted at the root genome">
+            <expand macro="sanitizer_default"/>
+            <expand macro="validator_trim"/>
+        </param>
+    </xml>
+    <xml name="params_refGenome">
+        <param name="refGenome" type="text" value="" label="Reference genome" help="Reference genome to process">
+            <expand macro="sanitizer_default"/>
+            <expand macro="validator_trim"/>
+        </param>
+    </xml>
+    <xml name="params_genomeNoRoot">
+        <param name="genome" type="text" value="" label="Genome name" help="Name of genome to process (can't be root)">
+            <expand macro="sanitizer_default"/>
+            <expand macro="validator_trim"/>
+        </param>
+    </xml>
+    <xml name="params_rootGenome">
+        <param name="rootGenome" type="text" value="" label="Root genome" help="Process only genomes belonging to the subtree rooted at the root genome">
+            <expand macro="sanitizer_default"/>
+            <expand macro="validator_trim"/>
+        </param>
+    </xml>
+    <xml name="params_rootGenome_optional">
+        <param argument="--rootGenome" type="text" value="" optional="true" label="Root genome" help="Process only genomes belonging to the subtree rooted at the root genome">
+            <expand macro="sanitizer_default"/>
+            <expand macro="validator_trim"/>
+        </param>
+    </xml>
+    <xml name="params_targetGenomes">
+        <param name="targetGenomes" type="text" value="" label="Target genomes" help="Comma-separated (no spaces) list of target genomes (others are excluded)">
+            <expand macro="sanitizer_default"/>
+            <expand macro="validator_comma_list"/>
+        </param>
+    </xml> 
+    <xml name="params_targetGenomes_optional">
+        <param argument="--targetGenomes" type="text" value="" optional="true" label="Target genomes" help="Comma-separated (no spaces) list of target genomes (others are excluded) (vist all if empty)">
+            <expand macro="sanitizer_default"/>
+            <expand macro="validator_comma_list"/>
+        </param>
+    </xml> 
+    <xml name="params_sequence">
+        <param name="sequence" type="text" value="" label="Reference sequence" help="Reference sequence in reference genome to process">
+            <expand macro="sanitizer_default"/>
+            <expand macro="validator_trim"/>
+        </param>
+    </xml>
+    <xml name="params_srcGenome">
+        <param name="srcGenome" type="text" label="Source genome" help="Source genome present in both input files from which coordinates should be mapped from">
+            <expand macro="sanitizer_default"/>
+            <expand macro="validator_trim"/>
+        </param>
+    </xml> 
+    <xml name="params_tgtGenome">
+        <param name="tgtGenome" type="text" label="Target genome" help="Target genome present in HAL file to which coordinates should be mapped to">
+            <expand macro="sanitizer_default"/>
+            <expand macro="validator_trim"/>
+        </param>
+    </xml> 
+    <xml name="params_conditional_refGenome">
+        <conditional name="genome">
+            <param name="reference" type="select" label="Reference genome" help="Select the genome to use as reference">
+                <option value="" selected="true">Use HAL tree root (default)</option>
+                <option value="custom">Specific reference genome (--refGenome)</option>
+            </param>
+            <when value=""/>
+            <when value="custom">
+                <param name="refGenome" type="text" value="" label="Reference genome">
+                    <expand macro="sanitizer_default"/>
+                    <expand macro="validator_trim"/>
+                </param>      
+                <param argument="--noAncestors" type="boolean" truevalue="--noAncestors" falsevalue="" checked="false" label="Exclude ancestors" help="Should only be enabled when the chosen reference genome is a non-ancestral genome"/>
+            </when>
+        </conditional>
+    </xml> 
+    <xml name="params_conditional_compression">
+        <conditional name="compression">
+            <param name="type" type="select" label="Compress output file">
+                <option value="" selected="true">Don't compress output file (default)</option>
+                <option value="gz">Compress output file to .gz</option>
+                <option value="bz2">Compress output file to .bz2</option>
+            </param>
+            <when value=""/>
+            <when value="gz"/>
+            <when value="bz2"/>
+        </conditional>
+    </xml> 
+    <xml name="params_numSamples">
+        <param argument="--numSamples" type="integer" min="1" value="1000000" label="Number of bases" help="Number of bases to sample for calculation"/>
+    </xml>
+    <xml name="params_seed">
+        <param argument="--seed" type="integer" value="0" label="Random seed" help="Set a seed for reproducibility"/>
+    </xml>
+    <xml name="params_maxGap">
+        <param argument="--maxGap" type="integer" min="0" value="20" label="Max gap" help="Maximum indel length to be considered a gap. Gaps can be nested within other rearrangements"/>
+    </xml>
+    <xml name="params_maxNFraction">
+        <param argument="--maxNFraction" type="float" min="0" value="1" label="Maximum fraction of Ns" help="Maximum fraction of Ns in a rearranged segment for it to not be ignored as missing data"/>
+    </xml> 
+    <xml name="params_noDupes">
+        <param argument="--noDupes" type="boolean" truevalue="--noDupes" falsevalue="" checked="false" label="No duplicates" help="Do not map between duplications in graph"/>
+    </xml>
+    <xml name="params_noMarkAncestors">
+        <param argument="--noMarkAncestors" type="boolean" truevalue="--noMarkAncestors" falsevalue="" checked="false" label="Don't mark ancestors" help="Don't mark ancestors for update"/>
+    </xml>
+    <xml name="sanitizer_default">
+        <sanitizer invalid_char="">                
+            <valid initial="string.ascii_letters,string.digits,string.punctuation">
+                <add value=" "/>
+            </valid>
+        </sanitizer>
+    </xml>
+    <xml name="validator_trim">
+        <validator type="regex" message="Enter without leading or trailing spaces">^\S(?:.*\S)?$</validator>   
+    </xml>
+    <xml name="validator_comma_list">
+        <validator type="regex" message="Enter a comma separated list of genomes, without leading or trailing spaces">^\S(?:[^,]*\S)?(?:,\S(?:[^,]*\S)?)*$</validator>
+    </xml>
+    <xml name="validator_newick">
+        <validator type="regex" message="Enter a Newick tree">^.*;$</validator>  
+    </xml>
+    <xml name="creator">
+        <creator>
+            <person givenName="Niklas" familyName="Mayle" url="https://github.com/Maed0x"/>
+            <person givenName="Saim" familyName="Momin" url="https://github.com/SaimMomin12"/>
+            <organization name="Galaxy Europe" url="https://galaxyproject.org/eu/"/>
+        </creator>
+    </xml>
+    <xml name="citation">
+        <citations>
+            <citation type="doi">10.1093/bioinformatics/btt128</citation>
+        </citations>
+    </xml>
+</macros>
\ No newline at end of file
Binary file test-data/hal2fasta_output.fasta.bz2 has changed
Binary file test-data/hal2fasta_output.fasta.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hal2maf.bed	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,2 @@
+Genome_0_seq	0	293
+Genome_0_seq	586	879
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hal2maf_append.maf	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,90 @@
+##maf version=1 scoring=N/A
+# hal (Genome_1:1,Genome_2:1,Genome_3:1)Genome_0;
+
+a
+s	Genome_0.Genome_0_seq	0	293	+	1758	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+s	Genome_1.Genome_1_seq	0	293	+	5472	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+s	Genome_1.Genome_1_seq	1758	293	+	5472	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+s	Genome_2.Genome_2_seq	0	293	+	4270	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+s	Genome_3.Genome_3_seq	1758	293	+	6139	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+s	Genome_3.Genome_3_seq	0	293	+	6139	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+
+a
+s	Genome_0.Genome_0_seq	293	293	+	1758	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_1.Genome_1_seq	293	293	+	5472	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_1.Genome_1_seq	2637	293	+	5472	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_2.Genome_2_seq	2051	293	+	4270	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_2.Genome_2_seq	3223	293	+	4270	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_2.Genome_2_seq	293	293	+	4270	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_3.Genome_3_seq	2637	293	+	6139	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_3.Genome_3_seq	293	293	+	6139	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+
+a
+s	Genome_0.Genome_0_seq	586	293	+	1758	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_1.Genome_1_seq	2930	293	+	5472	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_1.Genome_1_seq	3809	293	+	5472	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_1.Genome_1_seq	586	293	+	5472	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_2.Genome_2_seq	3516	293	+	4270	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_2.Genome_2_seq	3809	293	+	4270	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_2.Genome_2_seq	586	293	+	4270	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_3.Genome_3_seq	3809	293	+	6139	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_3.Genome_3_seq	5633	293	+	6139	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_3.Genome_3_seq	586	293	+	6139	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_3.Genome_3_seq	2930	293	+	6139	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+
+a
+s	Genome_0.Genome_0_seq	879	154	+	1758	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_1.Genome_1_seq	4102	154	+	5472	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_1.Genome_1_seq	4981	154	+	5472	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_1.Genome_1_seq	879	154	+	5472	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_1.Genome_1_seq	2344	154	+	5472	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_2.Genome_2_seq	2344	154	+	4270	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_2.Genome_2_seq	2930	154	+	4270	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_2.Genome_2_seq	879	154	+	4270	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_2.Genome_2_seq	1758	154	+	4270	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_3.Genome_3_seq	4102	154	+	6139	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_3.Genome_3_seq	5926	154	+	6139	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_3.Genome_3_seq	879	154	+	6139	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_3.Genome_3_seq	2344	154	+	6139	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+
+a
+s	Genome_0.Genome_0_seq	1033	139	+	1758	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_1.Genome_1_seq	4256	139	+	5472	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_1.Genome_1_seq	5135	139	+	5472	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_1.Genome_1_seq	1033	139	+	5472	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_1.Genome_1_seq	2498	139	+	5472	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_2.Genome_2_seq	2498	139	+	4270	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_2.Genome_2_seq	3084	139	+	4270	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_2.Genome_2_seq	1033	139	+	4270	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_2.Genome_2_seq	1912	139	+	4270	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_3.Genome_3_seq	4256	139	+	6139	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_3.Genome_3_seq	1033	139	+	6139	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_3.Genome_3_seq	2498	139	+	6139	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+
+a
+s	Genome_0.Genome_0_seq	1172	176	+	1758	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_1.Genome_1_seq	4395	176	+	5472	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_1.Genome_1_seq	4688	176	+	5472	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_1.Genome_1_seq	1172	176	+	5472	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_1.Genome_1_seq	2051	176	+	5472	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_1.Genome_1_seq	3223	176	+	5472	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_2.Genome_2_seq	1172	176	+	4270	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_3.Genome_3_seq	4688	176	+	6139	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_3.Genome_3_seq	1172	176	+	6139	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_3.Genome_3_seq	2051	176	+	6139	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_3.Genome_3_seq	3223	176	+	6139	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+s	Genome_3.Genome_3_seq	4395	176	+	6139	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG
+
+a
+s	Genome_0.Genome_0_seq	1348	410	+	1758	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCCGCGCCGCTCGTTCGCGATAGCCCTAAGGCTGGGACCCATGGAGACTGGGCATGGGGCTCCGGCACCGAGAGCTCCGTGACCCACCCCTGGGCCCGTAGGCGCCCGACCGCGACGGCCAGACCGTCGGAGGGACCCAGAAGCTGGCGTGACGTCAGGCTATAGTCATCGGCTGGAGTCCTTCGTACGGATGTGGTGCGGACCAAACCGTACGAGCGCAACGCGGCAGTCTGCGCACTGGCCGGTATTCATCCCCCCGAGATGAACGAGGCCAGGAGCCCGGCCACGCGTCGGCG
+s	Genome_1.Genome_1_seq	4571	117	+	5472	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_1.Genome_1_seq	4864	117	+	5472	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_1.Genome_1_seq	1348	117	+	5472	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_1.Genome_1_seq	2227	117	+	5472	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_1.Genome_1_seq	3399	117	+	5472	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_2.Genome_2_seq	1348	117	+	4270	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_3.Genome_3_seq	4571	117	+	6139	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_3.Genome_3_seq	1348	117	+	6139	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_3.Genome_3_seq	2227	117	+	6139	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_3.Genome_3_seq	3399	117	+	6139	GTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
Binary file test-data/hal2maf_output.maf.bz2 has changed
Binary file test-data/hal2maf_output.maf.gz has changed
Binary file test-data/hal2paf_output.paf.gz has changed
Binary file test-data/hal2vg_noAncestors_output.pg has changed
Binary file test-data/hal2vg_output.hg has changed
Binary file test-data/hal2vg_output.pg has changed
Binary file test-data/hal2vg_refGenomes_output.pg has changed
Binary file test-data/hal2vg_targetGenomes_chop_output.pg has changed
Binary file test-data/halAddToBranch_bot_input.hal has changed
Binary file test-data/halAddToBranch_top_input.hal has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/halBranchMutations.bed	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,2 @@
+Genome_1_seq	0	293
+Genome_1_seq	586	5400
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/halLiftover.bed	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,3 @@
+Genome_0_seq	0	243	Region_A
+Genome_0_seq	243	586	Region_B
+Genome_0_seq	1000	1100	Region_C
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/halLiftover_append.bed	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,9 @@
+Genome_1_seq	0	243	Region_A
+Genome_1_seq	1758	2001	Region_A
+Genome_1_seq	243	586	Region_B
+Genome_1_seq	2001	2051	Region_B
+Genome_1_seq	2637	2930	Region_B
+Genome_1_seq	1000	1100	Region_C
+Genome_1_seq	2465	2565	Region_C
+Genome_1_seq	4223	4323	Region_C
+Genome_1_seq	5102	5202	Region_C
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/halRenameGenomes_input.tsv	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,2 @@
+Genome_0	Genome_test_0
+Genome_1	Genome_test_1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/halRenameGenomes_input.txt	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,2 @@
+Genome_0	Genome_test_0
+Genome_1	Genome_test_1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/halRenameSequences_input.tsv	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,1 @@
+Genome_1_seq	Genome_test_1_seq
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/halRenameSequences_input.txt	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,1 @@
+Genome_1_seq	Genome_test_1_seq
\ No newline at end of file
Binary file test-data/halReplaceGenome2_bot_input.hal has changed
Binary file test-data/halReplaceGenome2_top_input.hal has changed
Binary file test-data/halReplaceGenome_top_input.hal has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/halSynteny.psl	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,8 @@
+243	0	0	0	0	0	0	0	++	Genome_0_seq	1758	0	243	Genome_1_seq	5472	0	243	1	243,	0,	0,
+243	0	0	0	0	0	0	0	++	Genome_0_seq	1758	0	243	Genome_1_seq	5472	1758	2001	1	243,	0,	1758,
+343	0	0	0	0	0	0	0	++	Genome_0_seq	1758	243	586	Genome_1_seq	5472	243	586	1	343,	243,	243,
+343	0	0	0	0	0	1	586	++	Genome_0_seq	1758	243	586	Genome_1_seq	5472	2001	2930	2	50,293,	243,293,	2001,2637,
+100	0	0	0	0	0	0	0	++	Genome_0_seq	1758	1000	1100	Genome_1_seq	5472	1000	1100	1	100,	1000,	1000,
+100	0	0	0	0	0	0	0	++	Genome_0_seq	1758	1000	1100	Genome_1_seq	5472	2465	2565	1	100,	1000,	2465,
+100	0	0	0	0	0	0	0	++	Genome_0_seq	1758	1000	1100	Genome_1_seq	5472	4223	4323	1	100,	1000,	4223,
+100	0	0	0	0	0	0	0	++	Genome_0_seq	1758	1000	1100	Genome_1_seq	5472	5102	5202	1	100,	1000,	5102,
Binary file test-data/halTest.hal has changed
Binary file test-data/halTestExtended.hal has changed
Binary file test-data/halTestIndels.hal has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/halWiggleLiftover.wig	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,5 @@
+variableStep    chrom=Genome_0_seq
+1	0.5
+293	1.0
+586	1.5
+879	2.0
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/halWiggleLiftover_append.wig	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,8 @@
+fixedStep	chrom=Genome_1_seq	start=2	step=1
+0.5
+fixedStep	chrom=Genome_1_seq	start=294	step=1
+1
+fixedStep	chrom=Genome_1_seq	start=2931	step=1
+1.5
+fixedStep	chrom=Genome_1_seq	start=4103	step=1
+2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/maf2halTest.maf	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,77 @@
+##maf version=1 scoring=N/A
+# hal ((Genome_3:0)Genome_1:0,Genome_2:0)Genome_0;
+
+a
+s	Genome_0.Genome_0_seq	0	293	+	1758	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+s	Genome_1.Genome_1_seq	1758	293	+	5472	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+s	Genome_1.Genome_1_seq	0	293	+	5472	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+s	Genome_2.Genome_2_seq	0	293	+	4270	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+s	Genome_3.Genome_3_seq	0	293	+	6139	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+s	Genome_3.Genome_3_seq	1758	293	+	6139	GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGTGAGGTTGACACTCCGTTCGTGTTACATGTCCGACAGGCCGCTGTGCTAGCGCCTGGGCCGCCGCCGTAACGATCCAATCGCACCTTAGCGTCAATCCACACGTGCCCCCCTTGGGGAGTCGTGTGCCCGCTGAACTTGGTGCGGGCCTACTTGCGACCTGCCGCTCTCGAGGCCGGGCCGCTCAAGAGACGGACCGAGAGTGCGGGGCCTCGCGCTCGTTGTGACCCCCATCGCGCCCCGTCT
+
+a
+s	Genome_0.Genome_0_seq	293	293	+	1758	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_1.Genome_1_seq	2637	293	+	5472	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_1.Genome_1_seq	293	293	+	5472	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_2.Genome_2_seq	3223	293	+	4270	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_2.Genome_2_seq	293	293	+	4270	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_2.Genome_2_seq	2051	293	+	4270	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_3.Genome_3_seq	293	293	+	6139	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+s	Genome_3.Genome_3_seq	2637	293	+	6139	AGCTCGGCGGCACGCCCGCTCGGAGCTGCAATAGTGCCTCCCCGGAAGGCAAAGATAGTACCGGAGGACCGTGAGTATAAGTTCGGCACCGTGGGAAAACTGGGGAGGCCTCCACGGGCCGAGCGTTCCGGCTCCGCTCCGTACCCTCCTAGACCGGGCTCGGCGGCAAAGGGGCGCATAATACCGTCTATGCTAGCTCTCTGGCGTTGGGCATGCCAGCGACTATGACGGCCCTTTGCGGATGTCGCGGTTCCGGCGAGCAAACCGTGGCGACGCTTCGCCCCGGCAGGATG
+
+a
+s	Genome_0.Genome_0_seq	586	293	+	1758	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_1.Genome_1_seq	3809	293	+	5472	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_1.Genome_1_seq	586	293	+	5472	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_1.Genome_1_seq	2930	293	+	5472	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_2.Genome_2_seq	3809	293	+	4270	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_2.Genome_2_seq	586	293	+	4270	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_2.Genome_2_seq	3516	293	+	4270	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_3.Genome_3_seq	586	293	+	6139	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_3.Genome_3_seq	2930	293	+	6139	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_3.Genome_3_seq	5633	293	+	6139	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+s	Genome_3.Genome_3_seq	3809	293	+	6139	CCTCCGTCTGCGCGGGCATCTGCGTACAGAACTCCCGTTAGTGCGCTAAGCATTCCCGTAACCCAATCCACGGTGCCGGCGGCGAGATGTATTGTCTGGGCGCAAAGCCATTTCGCCACCACATGCTGCGCGACGATCCGGGGCGTGCGTCCTGACATGGCGGGTCTAGCGGGGCCCGCTCAGTGCACTCCTGGATGCAATGGGGCGGCGCACACGCGGACACCAGGACGGTGAAAGGACGGGGTGCGCTTAGATTGAGCGGACGCCGGCGGGCGCCTACGCCGGTTTCACCC
+
+a
+s	Genome_0.Genome_0_seq	879	154	+	1758	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_1.Genome_1_seq	4981	154	+	5472	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_1.Genome_1_seq	879	154	+	5472	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_1.Genome_1_seq	2344	154	+	5472	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_1.Genome_1_seq	4102	154	+	5472	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_2.Genome_2_seq	2930	154	+	4270	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_2.Genome_2_seq	879	154	+	4270	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_2.Genome_2_seq	1758	154	+	4270	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_2.Genome_2_seq	2344	154	+	4270	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_3.Genome_3_seq	879	154	+	6139	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_3.Genome_3_seq	2344	154	+	6139	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_3.Genome_3_seq	5926	154	+	6139	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+s	Genome_3.Genome_3_seq	4102	154	+	6139	ACTGCTGCCGCGTGGAGCACGGCTGTGGAAGGCTGCGCGGGCTTAGTCCGTGCCGGCTTGCCGGGCAGCTATCACTCTCCGCAGGGAAGGGCGCCCAATGCAACGTTCTGGCACACGTGAGATGCCGTCATGTCACCAGCCCTCTAGCCCCCCC
+
+a
+s	Genome_0.Genome_0_seq	1033	139	+	1758	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_1.Genome_1_seq	5135	139	+	5472	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_1.Genome_1_seq	1033	139	+	5472	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_1.Genome_1_seq	2498	139	+	5472	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_1.Genome_1_seq	4256	139	+	5472	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_2.Genome_2_seq	3084	139	+	4270	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_2.Genome_2_seq	1033	139	+	4270	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_2.Genome_2_seq	1912	139	+	4270	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_2.Genome_2_seq	2498	139	+	4270	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_3.Genome_3_seq	1033	139	+	6139	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_3.Genome_3_seq	2498	139	+	6139	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+s	Genome_3.Genome_3_seq	4256	139	+	6139	CAATCGCCTACACGGGGATGGATACTACGGGCCCCTGTCTCAGTAACGGTACCGATGTTGCCTCCGGATCCCTGCCACGCCGGCATGCCCCATGCCCACCGGCAGCTGTTAATAGCAAGTCCCAGGGTGGGGCGTGTTC
+
+a
+s	Genome_0.Genome_0_seq	1172	586	+	1758	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCCGCGCCGCTCGTTCGCGATAGCCCTAAGGCTGGGACCCATGGAGACTGGGCATGGGGCTCCGGCACCGAGAGCTCCGTGACCCACCCCTGGGCCCGTAGGCGCCCGACCGCGACGGCCAGACCGTCGGAGGGACCCAGAAGCTGGCGTGACGTCAGGCTATAGTCATCGGCTGGAGTCCTTCGTACGGATGTGGTGCGGACCAAACCGTACGAGCGCAACGCGGCAGTCTGCGCACTGGCCGGTATTCATCCCCCCGAGATGAACGAGGCCAGGAGCCCGGCCACGCGTCGGCG
+s	Genome_1.Genome_1_seq	4688	293	+	5472	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_1.Genome_1_seq	1172	293	+	5472	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_1.Genome_1_seq	2051	293	+	5472	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_1.Genome_1_seq	3223	293	+	5472	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_1.Genome_1_seq	4395	293	+	5472	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_2.Genome_2_seq	1172	293	+	4270	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_3.Genome_3_seq	1172	293	+	6139	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_3.Genome_3_seq	2051	293	+	6139	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_3.Genome_3_seq	3223	293	+	6139	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_3.Genome_3_seq	4395	293	+	6139	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATGGTTGGGGGCGGTTACTCACCGCGGGGGAGCTGGCAGCCTAGTGACAATCCGGTTAATCATATGCAGGAGGTCGTCCTCGCCCGCGAGGCAGATTCACCATGCGTGGGCGAACAACCC-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+s	Genome_3.Genome_3_seq	4688	176	+	6139	GGCGGGAGGGGACGCGGCCGGGCATAAGATTATGAGCTCCATAGCAGGACGCGCGGCCCTCCATCTGAGTGCACTGTGTGCCTTGACCGACGCCCTGACTCCCCCCTGATGTCGTAGCGCGGAGGGCCAGGGGCATTCCGGCCGAAGCCGCTGCAACGGCGAAGGGCGCGAAGATG--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+
Binary file test-data/maf2halTest.maf.bz2 has changed
Binary file test-data/maf2halTest.maf.gz has changed
Binary file test-data/maf2halTestAppend.hal has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/maf2halTestAppend.maf	Fri Feb 06 10:39:34 2026 +0000
@@ -0,0 +1,6 @@
+##maf version=1 scoring=N/A
+# hal ((Genome_NEW:0)Genome_3:0)Ancestor;
+
+a
+s Genome_3.Genome_3_seq 100 50 + 6139 GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGT
+s Genome_NEW.Genome_NEW_seq 500 50 + 4000 GCTATCGGGGGGGACCGCACACCTCGTATGCCGGCAGTGGTGCCGCGCGT
\ No newline at end of file