Mercurial > repos > iuc > semibin_generate_sequence_features
changeset 3:b55f0ce54d97 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/semibin commit 2c08a2e49a2844efe92340c5a9e9c8323e4a33d6
line wrap: on
line diff
--- a/generate_sequence_features.xml Tue Mar 25 15:49:59 2025 +0000 +++ b/generate_sequence_features.xml Tue Oct 28 08:16:56 2025 +0000 @@ -10,18 +10,30 @@ <expand macro="version"/> <command detect_errors="exit_code"><![CDATA[ #import re -@BAM_FILES@ +#if $input_type_select.input_type == "bam": + @BAM_FILES@ +#else: + #for $e in $input_type_select.mode.abundance: + #set $identifier = re.sub('[^\s\w\-]', '_', str($e.element_identifier)) + ln -s '$e' '${identifier}.txt' && + #end for +#end if @FASTA_FILES@ SemiBin2 -#if $mode.select == 'single' or $mode.select == 'co' +#if $input_type_select.mode.select == 'single' or $input_type_select.mode.select == 'co' generate_sequence_features_single + --input-fasta 'contigs.$input_fasta.ext' #else generate_sequence_features_multi --separator '$separator' + --input-fasta 'contigs.fasta' #end if - --input-fasta 'contigs.fasta' +#if $input_type_select.input_type == "bam" --input-bam *.bam +#else: + -a *.txt +#end if --output 'output' --threads \${GALAXY_SLOTS:-1} @MIN_LEN@ @@ -30,7 +42,18 @@ #end if ]]></command> <inputs> - <expand macro="mode_fasta_bam"/> + <conditional name="input_type_select"> + <param name="input_type" type="select" label="Use BAM or strobealign abundance information?"> + <option value="bam">BAM file</option> + <option value="txt">strobealign-aemb files</option> + </param> + <when value="bam"> + <expand macro="mode_fasta_bam"/> + </when> + <when value="txt"> + <expand macro="mode_fasta_strobealign"/> + </when> + </conditional> <expand macro="min_len"/> <expand macro="ml-threshold"/> <param name="extra_output" type="select" multiple="true" label="Extra outputs" help="In addition to the training data"> @@ -45,10 +68,13 @@ </outputs> <tests> <test expect_num_outputs="4"> - <conditional name="mode"> - <param name="select" value="single"/> - <param name="input_fasta" ftype="fasta" value="input_single.fasta"/> - <param name="input_bam" ftype="bam" value="input_single.bam"/> + <conditional name="input_type_select"> + <param name="input_type" value="bam"/> + <conditional name="mode"> + <param name="select" value="single"/> + <param name="input_fasta" ftype="fasta" value="input_single.fasta"/> + <param name="input_bam" ftype="bam" value="input_single.bam"/> + </conditional> </conditional> <conditional name="min_len"> <param name="method" value="automatic"/> @@ -81,12 +107,72 @@ <has_n_lines n="1" delta="1"/> </assert_contents> </output> + </test><test expect_num_outputs="4"> + <conditional name="input_type_select"> + <param name="input_type" value="bam"/> + <conditional name="mode"> + <param name="select" value="co"/> + <param name="input_fasta" ftype="fasta.bz2" value="input_single.fasta.bz2"/> + <param name="input_bam" ftype="bam" value="input_coassembly_sorted1.bam,input_coassembly_sorted2.bam,input_coassembly_sorted3.bam,input_coassembly_sorted4.bam,input_coassembly_sorted5.bam"/> + </conditional> + </conditional> + <conditional name="min_len"> + <param name="method" value="automatic"/> + </conditional> + <param name="ml_threshold" value="4000"/> + <param name="extra_output" value="coverage"/> + <output name="single_data" ftype="csv"> + <assert_contents> + <has_n_lines n="41"/> + <has_text text="g1k_0"/> + <has_text text="g4k_9"/> + </assert_contents> + </output> + <output name="single_data_split" ftype="csv"> + <assert_contents> + <has_n_lines n="81"/> + <has_text text="g1k_0_1"/> + <has_text text="g3k_2_2"/> + <has_text text="g4k_7_2"/> + </assert_contents> + </output> + <output_collection name="co_cov" count="5"> + <element name="0" ftype="csv"> + <assert_contents> + <has_n_lines n="41"/> + <has_text text="g1k_0"/> + </assert_contents> + </element> + <element name="4" ftype="csv"> + <assert_contents> + <has_n_lines n="41"/> + <has_text text="g1k_0"/> + </assert_contents> + </element> + </output_collection> + <output_collection name="co_split_cov" count="5"> + <element name="0" ftype="csv"> + <assert_contents> + <has_n_lines n="81"/> + <has_text text="g1k_0_1"/> + </assert_contents> + </element> + <element name="4" ftype="csv"> + <assert_contents> + <has_n_lines n="81"/> + <has_text text="g1k_0_1"/> + </assert_contents> + </element> + </output_collection> </test> <test expect_num_outputs="4"> - <conditional name="mode"> - <param name="select" value="co"/> - <param name="input_fasta" ftype="fasta" value="input_single.fasta"/> - <param name="input_bam" ftype="bam" value="input_coassembly_sorted1.bam,input_coassembly_sorted2.bam,input_coassembly_sorted3.bam,input_coassembly_sorted4.bam,input_coassembly_sorted5.bam"/> + <conditional name="input_type_select"> + <param name="input_type" value="bam"/> + <conditional name="mode"> + <param name="select" value="co"/> + <param name="input_fasta" ftype="fasta.gz" value="input_single.fasta.gz"/> + <param name="input_bam" ftype="bam" value="input_coassembly_sorted1.bam,input_coassembly_sorted2.bam,input_coassembly_sorted3.bam,input_coassembly_sorted4.bam,input_coassembly_sorted5.bam"/> + </conditional> </conditional> <conditional name="min_len"> <param name="method" value="automatic"/> @@ -138,13 +224,16 @@ </output_collection> </test> <test expect_num_outputs="7"> - <conditional name="mode"> - <param name="select" value="multi"/> - <conditional name="multi_fasta"> - <param name="select" value="concatenated"/> - <param name="input_fasta" ftype="fasta" value="input_multi.fasta.gz"/> + <conditional name="input_type_select"> + <param name="input_type" value="bam"/> + <conditional name="mode"> + <param name="select" value="multi"/> + <conditional name="multi_fasta"> + <param name="select" value="concatenated"/> + <param name="input_fasta" ftype="fasta" value="input_multi.fasta.gz"/> + </conditional> + <param name="input_bam" ftype="bam" value="input_multi_sorted1.bam,input_multi_sorted2.bam,input_multi_sorted3.bam,input_multi_sorted4.bam,input_multi_sorted5.bam,input_multi_sorted6.bam,input_multi_sorted7.bam,input_multi_sorted8.bam,input_multi_sorted9.bam,input_multi_sorted10.bam"/> </conditional> - <param name="input_bam" ftype="bam" value="input_multi_sorted1.bam,input_multi_sorted2.bam,input_multi_sorted3.bam,input_multi_sorted4.bam,input_multi_sorted5.bam,input_multi_sorted6.bam,input_multi_sorted7.bam,input_multi_sorted8.bam,input_multi_sorted9.bam,input_multi_sorted10.bam"/> </conditional> <conditional name="min_len"> <param name="method" value="automatic"/> @@ -224,19 +313,24 @@ </element> </output_collection> </test> - <test expect_num_outputs="2"> - <conditional name="mode"> - <param name="select" value="multi"/> - <conditional name="multi_fasta"> + + <test expect_num_outputs="5"> + <conditional name="input_type_select"> + <param name="input_type" value="txt"/> + <conditional name="mode"> <param name="select" value="multi"/> - <param name="input_fasta" ftype="fasta" value="S1.fasta,S2.fasta,S3.fasta,S4.fasta,S5.fasta,S6.fasta,S7.fasta,S8.fasta,S9.fasta,S10.fasta"/> + <conditional name="multi_fasta"> + <param name="select" value="concatenated"/> + <param name="input_fasta" ftype="fasta" value="input_multi.fasta.gz"/> + </conditional> + <param name="abundance" ftype="txt" value="strobealign_1.txt,strobealign_2.txt,strobealign_3.txt,strobealign_4.txt,strobealign_5.txt"/> </conditional> - <param name="input_bam" ftype="bam" value="input_multi_sorted1.bam,input_multi_sorted2.bam,input_multi_sorted3.bam,input_multi_sorted4.bam,input_multi_sorted5.bam,input_multi_sorted6.bam,input_multi_sorted7.bam,input_multi_sorted8.bam,input_multi_sorted9.bam,input_multi_sorted10.bam"/> </conditional> <conditional name="min_len"> <param name="method" value="automatic"/> </conditional> <param name="ml_threshold" value="4000"/> + <param name="extra_output" value="coverage,contigs"/> <output_collection name="multi_data" count="10"> <element name="S1" ftype="csv"> <assert_contents> @@ -253,6 +347,73 @@ </assert_contents> </element> </output_collection> + <output_collection name="multi_cov_sample" count="10"> + <element name="S1" ftype="csv"> + <assert_contents> + <has_n_lines n="21"/> + <has_text text="g1k_0"/> + </assert_contents> + </element> + </output_collection> + <output_collection name="multi_split_cov_txt" count="10"> + <element name="S1" ftype="csv"> + <assert_contents> + <has_n_lines n="41"/> + <has_text text="g1k_5_1"/> + </assert_contents> + </element> + <element name="S9" ftype="csv"> + <assert_contents> + <has_n_lines n="41"/> + <has_text text="g1k_5_1"/> + </assert_contents> + </element> + </output_collection> + <output_collection name="multi_contigs" count="10"> + <element name="S1" ftype="fasta"> + <assert_contents> + <has_text text=">g1k_0"/> + </assert_contents> + </element> + <element name="S9" ftype="fasta"> + <assert_contents> + <has_text text=">g1k_0"/> + </assert_contents> + </element> + </output_collection> + </test> + <test expect_num_outputs="2"> + <conditional name="input_type_select"> + <param name="input_type" value="bam"/> + <conditional name="mode"> + <param name="select" value="multi"/> + <conditional name="multi_fasta"> + <param name="select" value="multi"/> + <param name="input_fasta" ftype="fasta" value="S1.fasta,S2.fasta,S3.fasta,S4.fasta,S5.fasta,S6.fasta,S7.fasta,S8.fasta,S9.fasta,S10.fasta"/> + </conditional> + <param name="input_bam" ftype="bam" value="input_multi_sorted1_naming.bam,input_multi_sorted2_naming.bam,input_multi_sorted3_naming.bam,input_multi_sorted4_naming.bam,input_multi_sorted5_naming.bam,input_multi_sorted6_naming.bam,input_multi_sorted7_naming.bam,input_multi_sorted8_naming.bam,input_multi_sorted9_naming.bam,input_multi_sorted10_naming.bam"/> + </conditional> + </conditional> + <conditional name="min_len"> + <param name="method" value="automatic"/> + </conditional> + <param name="ml_threshold" value="4000"/> + <output_collection name="multi_data" count="10"> + <element name="S1_fasta" ftype="csv"> + <assert_contents> + <has_n_lines n="21"/> + <has_text text="g1k_0"/> + </assert_contents> + </element> + </output_collection> + <output_collection name="multi_data_split" count="10"> + <element name="S1_fasta" ftype="csv"> + <assert_contents> + <has_n_lines n="41"/> + <has_text text="g1k_0_1"/> + </assert_contents> + </element> + </output_collection> </test> </tests> <help><![CDATA[
--- a/macros.xml Tue Mar 25 15:49:59 2025 +0000 +++ b/macros.xml Tue Oct 28 08:16:56 2025 +0000 @@ -1,6 +1,6 @@ <?xml version="1.0"?> <macros> - <token name="@TOOL_VERSION@">2.0.2</token> + <token name="@TOOL_VERSION@">2.1.0</token> <token name="@VERSION_SUFFIX@">1</token> <token name="@PROFILE@">21.01</token> <xml name="biotools"> @@ -48,6 +48,23 @@ </when> </conditional> </xml> + <xml name="mode_fasta_strobealign"> + <conditional name="mode"> + <expand macro="mode_select"/> + <when value="single"> + <expand macro="input-fasta-single"/> + <expand macro="input-txt"/> + </when> + <when value="co"> + <expand macro="input-fasta-single"/> + <expand macro="input-txt"/> + </when> + <when value="multi"> + <expand macro="input-fasta-multi"/> + <expand macro="input-txt"/> + </when> + </conditional> + </xml> <xml name="mode_select"> <param name="select" type="select" label="Binning mode"> <option value="single" selected="true">Single sample binning (each sample is assembled and binned independently)</option> @@ -55,8 +72,14 @@ <option value="multi">Multi-sample binning (multiple samples are assembled and binned individually, but information from multiple samples is used together)</option> </param> </xml> + <xml name="bam_or_strobealign"> + <param name="align_select" type="select" label="Use bam or strobealign abundance files?" help="Strobealign abundance files can only be used when samples used in binning above or equal 5"> + <option value="bam">BAM</option> + <option value="txt">Strobealign-aemb file(s)</option> + </param> + </xml> <xml name="input-fasta-single"> - <param argument="--input-fasta" type="data" format="fasta,fasta.gz" label="Contig sequences"/> + <param argument="--input-fasta" type="data" format="fasta,fasta.gz,fasta.bz2" label="Contig sequences"/> </xml> <xml name="input-fasta-multi"> <conditional name="multi_fasta"> @@ -65,11 +88,11 @@ <option value="multi">1 contig file per sample</option> </param> <when value="concatenated"> - <param argument="--input-fasta" type="data" format="fasta,fasta.gz" label="Combined contig sequences"/> + <param argument="--input-fasta" type="data" format="fasta,fasta.gz,fasta.bz2" label="Combined contig sequences"/> <expand macro="separator"/> </when> <when value="multi"> - <param argument="--input-fasta" type="data" multiple="true" format="fasta,fasta.gz" label="Contig sequences"/> + <param argument="--input-fasta" type="data" multiple="true" format="fasta,fasta.gz,fasta.bz2" label="Contig sequences"/> <expand macro="concat_min_len"/> </when> </conditional> @@ -78,39 +101,27 @@ <param name="min_len" type="integer" min="0" value="0" label="Minimal length for contigs to be kept"/> </xml> <token name="@SINGLE_FASTA_FILES@"><![CDATA[ -#if $input_fasta.ext.endswith(".gz") -gunzip -c '$input_fasta' > 'contigs.fasta' && -#else -ln -s '$input_fasta' 'contigs.fasta' && -#end if +ln -s '$input_fasta' 'contigs.$input_fasta.ext' && ]]></token> <token name="@FASTA_FILES@"><![CDATA[ #if $mode.select == 'single' or $mode.select == 'co' - #if $mode.input_fasta.ext.endswith(".gz") -gunzip -c '$mode.input_fasta' > 'contigs.fasta' && - #else -ln -s '$mode.input_fasta' 'contigs.fasta' && - #end if +ln -s '$input_fasta' 'contigs.$input_fasta.ext' && #else #if $mode.multi_fasta.select == 'concatenated' - #if $mode.multi_fasta.input_fasta.ext.endswith(".gz") -gunzip -c '$mode.multi_fasta.input_fasta' > 'contigs.fasta' && - #else -ln -s '$mode.multi_fasta.input_fasta' 'contigs.fasta' && - #end if +ln -s '$input_fasta' 'contigs.$input_fasta.ext' && #set $separator = $mode.multi_fasta.separator #else #for $e in $mode.multi_fasta.input_fasta - #set $identifier = re.sub('[^\s\w\-\\.]', '_', str($e.element_identifier)) - #if $e.ext.endswith(".gz") -gunzip -c '$e' > '${identifier}.fasta' && - #else -ln -s '$e' '${identifier}.fasta' && - #end if + #set $identifier = re.sub('[^\s\w\-]', '_', str($e.element_identifier)) +ln -s '$e' '${identifier}.$e.ext' && #end for #set $separator = ':' SemiBin2 concatenate_fasta - --input-fasta *.fasta + --input-fasta + #for $e in $mode.multi_fasta.input_fasta + #set $identifier = re.sub('[^\s\w\-]', '_', str($e.element_identifier)) + '${identifier}.$e.ext' + #end for --output 'output' --separator '$separator' --compression none @@ -129,17 +140,27 @@ <xml name="input-bam-multi"> <param argument="--input-bam" type="data" format="bam" multiple="true" label="Read mapping to the contigs" help="One file per sample, sorted BAM files"/> </xml> + <!-- Strobealign files --> + <xml name="input-txt"> + <param argument="--abundance" type="data" format="txt" label="Read mapping to the contigs" multiple="true" help="Strobealign abundance files"/> + </xml> <token name="@BAM_FILES@"><![CDATA[ #if $mode.select == 'single' -#set $identifier = re.sub('[^\s\w\-\\.]', '_', str($input_bam.element_identifier)) -ln -s '$input_bam' '${identifier}.bam' && +#set $identifier = re.sub('[^\s\w\-]', '_', str($mode.input_bam.element_identifier)) +ln -s '$mode.input_bam' '${identifier}.bam' && #else - #for $e in $input_bam - #set $identifier = re.sub('[^\s\w\-\\.]', '_', str($e.element_identifier)) + #for $e in $mode.input_bam + #set $identifier = re.sub('[^\s\w\-]', '_', str($e.element_identifier)) ln -s '$e' '${identifier}.bam' && #end for #end if ]]></token> + <token name="@STROBEALIGN_FILES@"><![CDATA[ +#for $e in $mode.align_select.abundance + #set $identifier = re.sub('[^\s\w\-]', '_', str($e.element_identifier)) + ln -s '$e' '${identifier}.txt' && +#end for + ]]></token> <xml name="ref_select_cannot"> <param name="select" type="select" label="Reference database"> <option value="cached">Cached database</option> @@ -257,7 +278,6 @@ <param argument="--orf-finder" type="select" label="ORF finder used to estimate the number of bins"> <option value="fast-naive" selected="true">Fast-Naive</option> <option value="prodigal">Prodigal</option> - <option value="fraggenescan">Fraggenescan</option> </param> </xml> <xml name="max-node"> @@ -293,58 +313,153 @@ </xml> <xml name="data_output_single"> <data name="single_data" format="csv" from_work_dir="output/data.csv" label="${tool.name} on ${on_string}: Training data"> - <filter>mode["select"]=="single" or mode["select"]=="co"</filter> + <filter>input_type_select['mode']['select']=="single" or input_type_select['mode']['select']=="co"</filter> </data> <data name="single_data_split" format="csv" from_work_dir="output/data_split.csv" label="${tool.name} on ${on_string}: Split training data"> - <filter>mode["select"]=="single" or mode["select"]=="co"</filter> + <filter>input_type_select['mode']['select']=="single" or input_type_select['mode']['select']=="co"</filter> </data> </xml> - <xml name="data_output_multi"> + <xml name="data_output_multi"> <collection name="multi_data" type="list" label="${tool.name} on ${on_string}: Training data per sample"> - <filter>mode["select"]=="multi"</filter> + <filter>input_type_select['mode']['select']=="multi"</filter> <discover_datasets pattern="(?P<designation>.*)\/data.csv" format="csv" directory="output/samples/" recurse="true" match_relative_path="true"/> </collection> <collection name="multi_data_split" type="list" label="${tool.name} on ${on_string}: Split training data per sample"> - <filter>mode["select"]=="multi"</filter> + <filter>input_type_select['mode']['select']=="multi"</filter> <discover_datasets pattern="(?P<designation>.*)\/data_split.csv" format="csv" directory="output/samples/" recurse="true" match_relative_path="true"/> </collection> </xml> <xml name="generate_sequence_features_extra_outputs"> <data name="single_cov" format="csv" from_work_dir="output/*_data_cov.csv" label="${tool.name} on ${on_string}: Coverage"> - <filter>mode["select"]=="single" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['mode']['select']=="single" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['input_type']=="bam"</filter> </data> <data name="single_split_cov" format="csv" from_work_dir="output/*_data_split_cov.csv" label="${tool.name} on ${on_string}: Coverage (split data)"> - <filter>mode["select"]=="single" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['mode']['select']=="single" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['input_type']=="bam"</filter> </data> <collection name="co_cov" type="list" label="${tool.name} on ${on_string}: Coverage (co_cov)"> - <filter>mode["select"]=="co" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['mode']['select']=="co" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['input_type']=="bam"</filter> <discover_datasets pattern=".*\.bam_(?P<designation>.*)_data_cov\.csv" format="csv" directory="output/" /> </collection> <collection name="co_split_cov" type="list" label="${tool.name} on ${on_string}: Coverage (split data) per sample"> - <filter>mode["select"]=="co" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['mode']['select']=="co" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['input_type']=="bam"</filter> <discover_datasets pattern=".*\.bam_(?P<designation>.*)_data_split_cov\.csv" format="csv" directory="output/" /> </collection> + <data name="cov_txt" label="${tool.name} on ${on_string}: Coverage (split data) per sample (aemb)" from_work_dir="output/cov_split.csv" format="csv"> + <filter>input_type_select['mode']['select']=="single" or input_type_select['mode']['select']=="co" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['input_type']=="txt"</filter> + </data> + <data name="co_cov_txt" label="${tool.name} on ${on_string}: Coverage (aemb)" format="csv" from_work_dir="output/cov.csv"> + <filter>input_type_select['mode']['select']=="single" or input_type_select['mode']['select']=="co" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['input_type']=="txt"</filter> + </data> + <collection name="multi_split_cov_txt" type="list" label="${tool.name} on ${on_string}: Coverage (split data) per sample (multi_split_cov) (aemb)"> + <filter>input_type_select['mode']['select']=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['input_type']=="txt"</filter> + <discover_datasets pattern="(?P<designation>.*)\/data_split_cov.csv" format="csv" directory="output/samples/" recurse="true" match_relative_path="true"/> + </collection> <collection name="multi_cov" type="list" label="${tool.name} on ${on_string}: Coverage (multi_cov)"> - <filter>mode["select"]=="multi" and extra_output and "coverage" in extra_output</filter> - <discover_datasets pattern=".*\.bam_(?P<designation>.*)_data_cov.csv" format="csv" directory="output/samples/" /> + <filter>input_type_select['mode']['select']=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['input_type']=="bam"</filter> + <discover_datasets pattern=".*\.bam_(?P<designation>.*)_data_cov.csv" format="csv" directory="output/samples/" recurse="true"/> </collection> <collection name="multi_cov_sample" type="list" label="${tool.name} on ${on_string}: Coverage per sample"> - <filter>mode["select"]=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['mode']['select']=="multi" and extra_output and "coverage" in extra_output</filter> <discover_datasets pattern="(?P<designation>.*)\/data_cov.csv" format="csv" directory="output/samples/" recurse="true" match_relative_path="true"/> </collection> <collection name="multi_split_cov" type="list" label="${tool.name} on ${on_string}: Coverage (split data) per sample (multi_split_cov)"> - <filter>mode["select"]=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['mode']['select']=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['input_type']=="bam"</filter> <discover_datasets pattern=".*\.bam_(?P<designation>.*)_data_split_cov.csv" format="csv" directory="output/samples/" /> </collection> <collection name="multi_split_cov_sample" type="list" label="${tool.name} on ${on_string}: Coverage (split data) per sample (multi_split_cov_sample)"> - <filter>mode["select"]=="multi" and extra_output and "coverage" in extra_output</filter> - <discover_datasets pattern="(?P<designation>.*)\/data_split_cov.csv" format="csv" directory="output/samples/" recurse="true" match_relative_path="true"/> + <filter>input_type_select['mode']['select']=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>input_type_select['input_type']=="bam"</filter> + <discover_datasets pattern="(?P<designation>.*)\/data_split_cov.csv" format="csv" directory="output/samples/" match_relative_path="true" recurse="true"/> </collection> <collection name="multi_contigs" type="list" label="${tool.name} on ${on_string}: Contigs"> - <filter>mode["select"]=="multi" and extra_output and "contigs" in extra_output</filter> + <filter>input_type_select['mode']['select']=="multi" and extra_output and "contigs" in extra_output</filter> <discover_datasets pattern="(?P<designation>.*).fa" format="fasta" directory="output/samples/" /> </collection> - + </xml> + <xml name="generate_sequence_features_extra_outputs_main"> + <!-- Single --> + <data name="single_cov" format="csv" from_work_dir="output/*_data_cov.csv" label="${tool.name} on ${on_string}: Coverage"> + <filter>mode['select']=="single" and extra_output and "coverage" in extra_output</filter> + </data> + <data name="single_split_cov" format="csv" from_work_dir="output/*_data_split_cov.csv" label="${tool.name} on ${on_string}: Coverage (split data)"> + <filter>mode['select']=="single" and extra_output and "coverage" in extra_output</filter> + </data> + <!-- Bam co aligned --> + <collection name="co_cov_bam" type="list" label="${tool.name} on ${on_string}: Coverage (co_cov)"> + <filter>mode['select']=="co" and extra_output and "coverage" in extra_output</filter> + <filter>mode['align_select']</filter> + <filter>mode['align_select']['align_select']=="bam"</filter> + <discover_datasets pattern=".*\.bam_(?P<designation>.*)_data_cov\.csv" format="csv" directory="output/" /> + </collection> + <collection name="co_split_cov_bam" type="list" label="${tool.name} on ${on_string}: Coverage (split data) per sample"> + <filter>mode['select']=="co" and extra_output and "coverage" in extra_output</filter> + <filter>mode['align_select']</filter> + <filter>mode['align_select']['align_select']=="bam"</filter> + <discover_datasets pattern=".*\.bam_(?P<designation>.*)_data_split_cov\.csv" format="csv" directory="output/" /> + </collection> + + <!-- Bam Multi aligned --> + <collection name="multi_cov_bam" type="list" label="${tool.name} on ${on_string}: Coverage (multi_cov)"> + <filter>mode['select']=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>mode['align_select']</filter> + <filter>mode['align_select']['align_select']=="bam"</filter> + <discover_datasets pattern=".*\.bam_(?P<designation>.*)_data_cov.csv" format="csv" directory="output/samples/" /> + </collection> + <collection name="multi_cov_sample_bam" type="list" label="${tool.name} on ${on_string}: Coverage per sample"> + <filter>mode['select']=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>mode['align_select']</filter> + <filter>mode['align_select']['align_select']=="bam"</filter> + <discover_datasets pattern="(?P<designation>.*)\/data_cov.csv" format="csv" directory="output/samples/" recurse="true" match_relative_path="true"/> + </collection> + <collection name="multi_split_cov_bam" type="list" label="${tool.name} on ${on_string}: Coverage (split data) per sample (multi_split_cov)"> + <filter>mode['select']=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>mode['align_select']</filter> + <filter>mode['align_select']['align_select']=="bam"</filter> + <discover_datasets pattern=".*\.bam_(?P<designation>.*)_data_split_cov.csv" format="csv" directory="output/samples/" /> + </collection> + <collection name="multi_split_cov_sample_bam" type="list" label="${tool.name} on ${on_string}: Coverage (split data) per sample (multi_split_cov_sample)"> + <filter>mode['select']=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>mode['align_select']</filter> + <filter>mode['align_select']['align_select']=="bam"</filter> + <discover_datasets pattern=".*\.bam_(?P<designation>.*)_data_split_cov.csv" format="csv" directory="output/samples/" /> + </collection> + <collection name="multi_contigs" type="list" label="${tool.name} on ${on_string}: Contigs"> + <filter>mode['select']=="multi" and extra_output and "contigs" in extra_output</filter> + <discover_datasets pattern="(?P<designation>.*).fa" format="fasta" directory="output/samples/" /> + </collection> + <!-- Txt co aligned --> + <data name="co_split_cov_txt" label="${tool.name} on ${on_string}: Coverage (split data) per sample (aemb)" from_work_dir="output/cov_split.csv" format="csv"> + <filter>mode['select']=="co" and extra_output and "coverage" in extra_output</filter> + <filter>mode['align_select']</filter> + <filter>mode['align_select']['align_select']=="txt"</filter> + </data> + <data name="co_cov_txt" label="${tool.name} on ${on_string}: Coverage (aemb)" format="csv" from_work_dir="output/cov.csv"> + <filter>mode['select']=="co" and extra_output and "coverage" in extra_output</filter> + <filter>mode['align_select']</filter> + <filter>mode['align_select']['align_select']=="txt"</filter> + </data> + <!-- Txt multi aligned --> + <collection name="multi_cov_txt" type="list" label="${tool.name} on ${on_string}: Coverage per sample (aemb)"> + <filter>mode['select']=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>mode['align_select']</filter> + <filter>mode['align_select']['align_select'] =="txt"</filter> + <discover_datasets pattern="(?P<designation>.*)\/data_cov.csv" format="csv" directory="output/samples/" recurse="true" match_relative_path="true"/> + </collection> + <collection name="multi_split_cov_txt" type="list" label="${tool.name} on ${on_string}: Coverage (split data) per sample (multi_split_cov) (aemb)"> + <filter>mode['select']=="multi" and extra_output and "coverage" in extra_output</filter> + <filter>mode['align_select']</filter> + <filter>mode['align_select']['align_select']=="txt"</filter> + <discover_datasets pattern="(?P<designation>.*)\/data_split_cov.csv" format="csv" directory="output/samples/" recurse="true" match_relative_path="true"/> + </collection> </xml> <xml name="train_output"> <data name="model" format="h5" from_work_dir="output/model.h5" label="${tool.name} on ${on_string}: Semi-supervised deep learning model" /> @@ -353,34 +468,37 @@ <data name="cannot" format="txt" from_work_dir="output/cannot/cannot.txt" label="${tool.name} on ${on_string}: Cannot-link constraints" /> </xml> <token name="@HELP_HEADER@"><![CDATA[ + What it does ============ SemiBin is a Semi-supervised siamese neural network for metagenomic binning - -]]></token> + ]]></token> <token name="@HELP_INPUT_FASTA@"><![CDATA[ - Contigs in fasta for 1 or several samples from single or co-assembly -]]></token> + ]]></token> <token name="@HELP_INPUT_BAM@"><![CDATA[ - BAM with reads mapping to the contigs -]]></token> + ]]></token> + <token name="@HELP_INPUT_STROBEALIGN@"><![CDATA[ +- TXT alignment files that are the output of strobealign-aemb + ]]></token> <token name="@HELP_CANNOT@"><![CDATA[ - Cannot-link constraints -]]></token> + ]]></token> <token name="@HELP_DATA@"><![CDATA[ - Training data and split training data for the model -]]></token> + ]]></token> <token name="@HELP_MODEL@"><![CDATA[ - Semi-supervised deep learning model -]]></token> + ]]></token> <token name="@HELP_BINS@"><![CDATA[ - Reconstructed bins after reclustering - Reconstructed bins before reclustering -]]></token> + ]]></token> <xml name="citations"> <citations> <citation type="doi">10.1038/s41467-022-29843-y</citation> </citations> </xml> -</macros> +</macros> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/strobealign_1.txt Tue Oct 28 08:16:56 2025 +0000 @@ -0,0 +1,400 @@ +S1:g1k_0_1 0.000000 +S1:g1k_0_2 0.000000 +S1:g1k_1_1 0.000000 +S1:g1k_1_2 0.000000 +S1:g1k_2_1 0.000000 +S1:g1k_2_2 0.000000 +S1:g1k_3_1 0.000000 +S1:g1k_3_2 0.000000 +S1:g1k_4_1 0.000000 +S1:g1k_4_2 0.000000 +S1:g1k_5_1 0.000000 +S1:g1k_5_2 0.000000 +S1:g1k_6_1 0.000000 +S1:g1k_6_2 0.000000 +S1:g1k_7_1 0.000000 +S1:g1k_7_2 0.000000 +S1:g1k_8_1 0.000000 +S1:g1k_8_2 0.000000 +S1:g1k_9_1 0.000000 +S1:g1k_9_2 0.000000 +S1:g2k_0_1 0.000000 +S1:g2k_0_2 0.000000 +S1:g2k_1_1 0.000000 +S1:g2k_1_2 0.000000 +S1:g2k_2_1 0.000000 +S1:g2k_2_2 0.000000 +S1:g2k_3_1 0.000000 +S1:g2k_3_2 0.000000 +S1:g2k_4_1 0.000000 +S1:g2k_4_2 0.000000 +S1:g2k_5_1 0.000000 +S1:g2k_5_2 0.000000 +S1:g2k_6_1 0.000000 +S1:g2k_6_2 0.000000 +S1:g2k_7_1 0.000000 +S1:g2k_7_2 0.000000 +S1:g2k_8_1 0.000000 +S1:g2k_8_2 0.000000 +S1:g2k_9_1 0.000000 +S1:g2k_9_2 0.000000 +S2:g1k_0_1 0.000000 +S2:g1k_0_2 0.000000 +S2:g1k_1_1 0.000000 +S2:g1k_1_2 0.000000 +S2:g1k_2_1 0.000000 +S2:g1k_2_2 0.000000 +S2:g1k_3_1 0.000000 +S2:g1k_3_2 0.000000 +S2:g1k_4_1 0.000000 +S2:g1k_4_2 0.000000 +S2:g1k_5_1 0.000000 +S2:g1k_5_2 0.000000 +S2:g1k_6_1 0.000000 +S2:g1k_6_2 0.000000 +S2:g1k_7_1 0.000000 +S2:g1k_7_2 0.000000 +S2:g1k_8_1 0.000000 +S2:g1k_8_2 0.000000 +S2:g1k_9_1 0.000000 +S2:g1k_9_2 0.000000 +S2:g2k_0_1 0.000000 +S2:g2k_0_2 0.000000 +S2:g2k_1_1 0.000000 +S2:g2k_1_2 0.000000 +S2:g2k_2_1 0.000000 +S2:g2k_2_2 0.000000 +S2:g2k_3_1 0.000000 +S2:g2k_3_2 0.000000 +S2:g2k_4_1 0.000000 +S2:g2k_4_2 0.000000 +S2:g2k_5_1 0.000000 +S2:g2k_5_2 0.000000 +S2:g2k_6_1 0.000000 +S2:g2k_6_2 0.000000 +S2:g2k_7_1 0.000000 +S2:g2k_7_2 0.000000 +S2:g2k_8_1 0.000000 +S2:g2k_8_2 0.000000 +S2:g2k_9_1 0.000000 +S2:g2k_9_2 0.000000 +S3:g1k_0_1 0.000000 +S3:g1k_0_2 0.000000 +S3:g1k_1_1 0.000000 +S3:g1k_1_2 0.000000 +S3:g1k_2_1 0.000000 +S3:g1k_2_2 0.000000 +S3:g1k_3_1 0.000000 +S3:g1k_3_2 0.000000 +S3:g1k_4_1 0.000000 +S3:g1k_4_2 0.000000 +S3:g1k_5_1 0.000000 +S3:g1k_5_2 0.000000 +S3:g1k_6_1 0.000000 +S3:g1k_6_2 0.000000 +S3:g1k_7_1 0.000000 +S3:g1k_7_2 0.000000 +S3:g1k_8_1 0.000000 +S3:g1k_8_2 0.000000 +S3:g1k_9_1 0.000000 +S3:g1k_9_2 0.000000 +S3:g2k_0_1 0.000000 +S3:g2k_0_2 0.000000 +S3:g2k_1_1 0.000000 +S3:g2k_1_2 0.000000 +S3:g2k_2_1 0.000000 +S3:g2k_2_2 0.000000 +S3:g2k_3_1 0.000000 +S3:g2k_3_2 0.000000 +S3:g2k_4_1 0.000000 +S3:g2k_4_2 0.000000 +S3:g2k_5_1 0.000000 +S3:g2k_5_2 0.000000 +S3:g2k_6_1 0.000000 +S3:g2k_6_2 0.000000 +S3:g2k_7_1 0.000000 +S3:g2k_7_2 0.000000 +S3:g2k_8_1 0.000000 +S3:g2k_8_2 0.000000 +S3:g2k_9_1 0.000000 +S3:g2k_9_2 0.000000 +S4:g1k_0_1 0.000000 +S4:g1k_0_2 0.000000 +S4:g1k_1_1 0.000000 +S4:g1k_1_2 0.000000 +S4:g1k_2_1 0.000000 +S4:g1k_2_2 0.000000 +S4:g1k_3_1 0.000000 +S4:g1k_3_2 0.000000 +S4:g1k_4_1 0.000000 +S4:g1k_4_2 0.000000 +S4:g1k_5_1 0.000000 +S4:g1k_5_2 0.000000 +S4:g1k_6_1 0.000000 +S4:g1k_6_2 0.000000 +S4:g1k_7_1 0.000000 +S4:g1k_7_2 0.000000 +S4:g1k_8_1 0.000000 +S4:g1k_8_2 0.000000 +S4:g1k_9_1 0.000000 +S4:g1k_9_2 0.000000 +S4:g2k_0_1 0.000000 +S4:g2k_0_2 0.000000 +S4:g2k_1_1 0.000000 +S4:g2k_1_2 0.000000 +S4:g2k_2_1 0.000000 +S4:g2k_2_2 0.000000 +S4:g2k_3_1 0.000000 +S4:g2k_3_2 0.000000 +S4:g2k_4_1 0.000000 +S4:g2k_4_2 0.000000 +S4:g2k_5_1 0.000000 +S4:g2k_5_2 0.000000 +S4:g2k_6_1 0.000000 +S4:g2k_6_2 0.000000 +S4:g2k_7_1 0.000000 +S4:g2k_7_2 0.000000 +S4:g2k_8_1 0.000000 +S4:g2k_8_2 0.000000 +S4:g2k_9_1 0.000000 +S4:g2k_9_2 0.000000 +S5:g1k_0_1 0.000000 +S5:g1k_0_2 0.000000 +S5:g1k_1_1 0.000000 +S5:g1k_1_2 0.000000 +S5:g1k_2_1 0.000000 +S5:g1k_2_2 0.000000 +S5:g1k_3_1 0.000000 +S5:g1k_3_2 0.000000 +S5:g1k_4_1 0.000000 +S5:g1k_4_2 0.000000 +S5:g1k_5_1 0.000000 +S5:g1k_5_2 0.000000 +S5:g1k_6_1 0.000000 +S5:g1k_6_2 0.000000 +S5:g1k_7_1 0.000000 +S5:g1k_7_2 0.000000 +S5:g1k_8_1 0.000000 +S5:g1k_8_2 0.000000 +S5:g1k_9_1 0.000000 +S5:g1k_9_2 0.000000 +S5:g2k_0_1 0.000000 +S5:g2k_0_2 0.000000 +S5:g2k_1_1 0.000000 +S5:g2k_1_2 0.000000 +S5:g2k_2_1 0.000000 +S5:g2k_2_2 0.000000 +S5:g2k_3_1 0.000000 +S5:g2k_3_2 0.000000 +S5:g2k_4_1 0.000000 +S5:g2k_4_2 0.000000 +S5:g2k_5_1 0.000000 +S5:g2k_5_2 0.000000 +S5:g2k_6_1 0.000000 +S5:g2k_6_2 0.000000 +S5:g2k_7_1 0.000000 +S5:g2k_7_2 0.000000 +S5:g2k_8_1 0.000000 +S5:g2k_8_2 0.000000 +S5:g2k_9_1 0.000000 +S5:g2k_9_2 0.000000 +S6:g1k_0_1 0.000000 +S6:g1k_0_2 0.000000 +S6:g1k_1_1 0.000000 +S6:g1k_1_2 0.000000 +S6:g1k_2_1 0.000000 +S6:g1k_2_2 0.000000 +S6:g1k_3_1 0.000000 +S6:g1k_3_2 0.000000 +S6:g1k_4_1 0.000000 +S6:g1k_4_2 0.000000 +S6:g1k_5_1 0.000000 +S6:g1k_5_2 0.000000 +S6:g1k_6_1 0.000000 +S6:g1k_6_2 0.000000 +S6:g1k_7_1 0.000000 +S6:g1k_7_2 0.000000 +S6:g1k_8_1 0.000000 +S6:g1k_8_2 0.000000 +S6:g1k_9_1 0.000000 +S6:g1k_9_2 0.000000 +S6:g2k_0_1 0.000000 +S6:g2k_0_2 0.000000 +S6:g2k_1_1 0.000000 +S6:g2k_1_2 0.000000 +S6:g2k_2_1 0.000000 +S6:g2k_2_2 0.000000 +S6:g2k_3_1 0.000000 +S6:g2k_3_2 0.000000 +S6:g2k_4_1 0.000000 +S6:g2k_4_2 0.000000 +S6:g2k_5_1 0.000000 +S6:g2k_5_2 0.000000 +S6:g2k_6_1 0.000000 +S6:g2k_6_2 0.000000 +S6:g2k_7_1 0.000000 +S6:g2k_7_2 0.000000 +S6:g2k_8_1 0.000000 +S6:g2k_8_2 0.000000 +S6:g2k_9_1 0.000000 +S6:g2k_9_2 0.000000 +S7:g1k_0_1 0.000000 +S7:g1k_0_2 0.000000 +S7:g1k_1_1 0.000000 +S7:g1k_1_2 0.000000 +S7:g1k_2_1 0.000000 +S7:g1k_2_2 0.000000 +S7:g1k_3_1 0.000000 +S7:g1k_3_2 0.000000 +S7:g1k_4_1 0.000000 +S7:g1k_4_2 0.000000 +S7:g1k_5_1 0.000000 +S7:g1k_5_2 0.000000 +S7:g1k_6_1 0.000000 +S7:g1k_6_2 0.000000 +S7:g1k_7_1 0.000000 +S7:g1k_7_2 0.000000 +S7:g1k_8_1 0.000000 +S7:g1k_8_2 0.000000 +S7:g1k_9_1 0.000000 +S7:g1k_9_2 0.000000 +S7:g2k_0_1 0.000000 +S7:g2k_0_2 0.000000 +S7:g2k_1_1 0.000000 +S7:g2k_1_2 0.000000 +S7:g2k_2_1 0.000000 +S7:g2k_2_2 0.000000 +S7:g2k_3_1 0.000000 +S7:g2k_3_2 0.000000 +S7:g2k_4_1 0.000000 +S7:g2k_4_2 0.000000 +S7:g2k_5_1 0.000000 +S7:g2k_5_2 0.000000 +S7:g2k_6_1 0.000000 +S7:g2k_6_2 0.000000 +S7:g2k_7_1 0.000000 +S7:g2k_7_2 0.000000 +S7:g2k_8_1 0.000000 +S7:g2k_8_2 0.000000 +S7:g2k_9_1 0.000000 +S7:g2k_9_2 0.000000 +S8:g1k_0_1 0.000000 +S8:g1k_0_2 0.000000 +S8:g1k_1_1 0.000000 +S8:g1k_1_2 0.000000 +S8:g1k_2_1 0.000000 +S8:g1k_2_2 0.000000 +S8:g1k_3_1 0.000000 +S8:g1k_3_2 0.000000 +S8:g1k_4_1 0.000000 +S8:g1k_4_2 0.000000 +S8:g1k_5_1 0.000000 +S8:g1k_5_2 0.000000 +S8:g1k_6_1 0.000000 +S8:g1k_6_2 0.000000 +S8:g1k_7_1 0.000000 +S8:g1k_7_2 0.000000 +S8:g1k_8_1 0.000000 +S8:g1k_8_2 0.000000 +S8:g1k_9_1 0.000000 +S8:g1k_9_2 0.000000 +S8:g2k_0_1 0.000000 +S8:g2k_0_2 0.000000 +S8:g2k_1_1 0.000000 +S8:g2k_1_2 0.000000 +S8:g2k_2_1 0.000000 +S8:g2k_2_2 0.000000 +S8:g2k_3_1 0.000000 +S8:g2k_3_2 0.000000 +S8:g2k_4_1 0.000000 +S8:g2k_4_2 0.000000 +S8:g2k_5_1 0.000000 +S8:g2k_5_2 0.000000 +S8:g2k_6_1 0.000000 +S8:g2k_6_2 0.000000 +S8:g2k_7_1 0.000000 +S8:g2k_7_2 0.000000 +S8:g2k_8_1 0.000000 +S8:g2k_8_2 0.000000 +S8:g2k_9_1 0.000000 +S8:g2k_9_2 0.000000 +S9:g1k_0_1 0.000000 +S9:g1k_0_2 0.000000 +S9:g1k_1_1 0.000000 +S9:g1k_1_2 0.000000 +S9:g1k_2_1 0.000000 +S9:g1k_2_2 0.000000 +S9:g1k_3_1 0.000000 +S9:g1k_3_2 0.000000 +S9:g1k_4_1 0.000000 +S9:g1k_4_2 0.000000 +S9:g1k_5_1 0.000000 +S9:g1k_5_2 0.000000 +S9:g1k_6_1 0.000000 +S9:g1k_6_2 0.000000 +S9:g1k_7_1 0.000000 +S9:g1k_7_2 0.000000 +S9:g1k_8_1 0.000000 +S9:g1k_8_2 0.000000 +S9:g1k_9_1 0.000000 +S9:g1k_9_2 0.000000 +S9:g2k_0_1 0.000000 +S9:g2k_0_2 0.000000 +S9:g2k_1_1 0.000000 +S9:g2k_1_2 0.000000 +S9:g2k_2_1 0.000000 +S9:g2k_2_2 0.000000 +S9:g2k_3_1 0.000000 +S9:g2k_3_2 0.000000 +S9:g2k_4_1 0.000000 +S9:g2k_4_2 0.000000 +S9:g2k_5_1 0.000000 +S9:g2k_5_2 0.000000 +S9:g2k_6_1 0.000000 +S9:g2k_6_2 0.000000 +S9:g2k_7_1 0.000000 +S9:g2k_7_2 0.000000 +S9:g2k_8_1 0.000000 +S9:g2k_8_2 0.000000 +S9:g2k_9_1 0.000000 +S9:g2k_9_2 0.000000 +S10:g1k_0_1 0.000000 +S10:g1k_0_2 0.000000 +S10:g1k_1_1 0.000000 +S10:g1k_1_2 0.000000 +S10:g1k_2_1 0.000000 +S10:g1k_2_2 0.000000 +S10:g1k_3_1 0.000000 +S10:g1k_3_2 0.000000 +S10:g1k_4_1 0.000000 +S10:g1k_4_2 0.000000 +S10:g1k_5_1 0.000000 +S10:g1k_5_2 0.000000 +S10:g1k_6_1 0.000000 +S10:g1k_6_2 0.000000 +S10:g1k_7_1 0.000000 +S10:g1k_7_2 0.000000 +S10:g1k_8_1 0.000000 +S10:g1k_8_2 0.000000 +S10:g1k_9_1 0.000000 +S10:g1k_9_2 0.000000 +S10:g2k_0_1 0.000000 +S10:g2k_0_2 0.000000 +S10:g2k_1_1 0.000000 +S10:g2k_1_2 0.000000 +S10:g2k_2_1 0.000000 +S10:g2k_2_2 0.000000 +S10:g2k_3_1 0.000000 +S10:g2k_3_2 0.000000 +S10:g2k_4_1 0.000000 +S10:g2k_4_2 0.000000 +S10:g2k_5_1 0.000000 +S10:g2k_5_2 0.000000 +S10:g2k_6_1 0.000000 +S10:g2k_6_2 0.000000 +S10:g2k_7_1 0.000000 +S10:g2k_7_2 0.000000 +S10:g2k_8_1 0.000000 +S10:g2k_8_2 0.000000 +S10:g2k_9_1 0.000000 +S10:g2k_9_2 0.000000
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/strobealign_2.txt Tue Oct 28 08:16:56 2025 +0000 @@ -0,0 +1,400 @@ +S1:g1k_0_1 0.000000 +S1:g1k_0_2 0.000000 +S1:g1k_1_1 0.000000 +S1:g1k_1_2 0.000000 +S1:g1k_2_1 0.000000 +S1:g1k_2_2 0.000000 +S1:g1k_3_1 0.000000 +S1:g1k_3_2 0.000000 +S1:g1k_4_1 0.000000 +S1:g1k_4_2 0.000000 +S1:g1k_5_1 0.000000 +S1:g1k_5_2 0.000000 +S1:g1k_6_1 0.000000 +S1:g1k_6_2 0.000000 +S1:g1k_7_1 0.000000 +S1:g1k_7_2 0.000000 +S1:g1k_8_1 0.000000 +S1:g1k_8_2 0.000000 +S1:g1k_9_1 0.000000 +S1:g1k_9_2 0.000000 +S1:g2k_0_1 0.000000 +S1:g2k_0_2 0.000000 +S1:g2k_1_1 0.000000 +S1:g2k_1_2 0.000000 +S1:g2k_2_1 0.000000 +S1:g2k_2_2 0.000000 +S1:g2k_3_1 0.000000 +S1:g2k_3_2 0.000000 +S1:g2k_4_1 0.000000 +S1:g2k_4_2 0.000000 +S1:g2k_5_1 0.000000 +S1:g2k_5_2 0.000000 +S1:g2k_6_1 0.000000 +S1:g2k_6_2 0.000000 +S1:g2k_7_1 0.000000 +S1:g2k_7_2 0.000000 +S1:g2k_8_1 0.000000 +S1:g2k_8_2 0.000000 +S1:g2k_9_1 0.000000 +S1:g2k_9_2 0.000000 +S2:g1k_0_1 0.000000 +S2:g1k_0_2 0.000000 +S2:g1k_1_1 0.000000 +S2:g1k_1_2 0.000000 +S2:g1k_2_1 0.000000 +S2:g1k_2_2 0.000000 +S2:g1k_3_1 0.000000 +S2:g1k_3_2 0.000000 +S2:g1k_4_1 0.000000 +S2:g1k_4_2 0.000000 +S2:g1k_5_1 0.000000 +S2:g1k_5_2 0.000000 +S2:g1k_6_1 0.000000 +S2:g1k_6_2 0.000000 +S2:g1k_7_1 0.000000 +S2:g1k_7_2 0.000000 +S2:g1k_8_1 0.000000 +S2:g1k_8_2 0.000000 +S2:g1k_9_1 0.000000 +S2:g1k_9_2 0.000000 +S2:g2k_0_1 0.000000 +S2:g2k_0_2 0.000000 +S2:g2k_1_1 0.000000 +S2:g2k_1_2 0.000000 +S2:g2k_2_1 0.000000 +S2:g2k_2_2 0.000000 +S2:g2k_3_1 0.000000 +S2:g2k_3_2 0.000000 +S2:g2k_4_1 0.000000 +S2:g2k_4_2 0.000000 +S2:g2k_5_1 0.000000 +S2:g2k_5_2 0.000000 +S2:g2k_6_1 0.000000 +S2:g2k_6_2 0.000000 +S2:g2k_7_1 0.000000 +S2:g2k_7_2 0.000000 +S2:g2k_8_1 0.000000 +S2:g2k_8_2 0.000000 +S2:g2k_9_1 0.000000 +S2:g2k_9_2 0.000000 +S3:g1k_0_1 0.000000 +S3:g1k_0_2 0.000000 +S3:g1k_1_1 0.000000 +S3:g1k_1_2 0.000000 +S3:g1k_2_1 0.000000 +S3:g1k_2_2 0.000000 +S3:g1k_3_1 0.000000 +S3:g1k_3_2 0.000000 +S3:g1k_4_1 0.000000 +S3:g1k_4_2 0.000000 +S3:g1k_5_1 0.000000 +S3:g1k_5_2 0.000000 +S3:g1k_6_1 0.000000 +S3:g1k_6_2 0.000000 +S3:g1k_7_1 0.000000 +S3:g1k_7_2 0.000000 +S3:g1k_8_1 0.000000 +S3:g1k_8_2 0.000000 +S3:g1k_9_1 0.000000 +S3:g1k_9_2 0.000000 +S3:g2k_0_1 0.000000 +S3:g2k_0_2 0.000000 +S3:g2k_1_1 0.000000 +S3:g2k_1_2 0.000000 +S3:g2k_2_1 0.000000 +S3:g2k_2_2 0.000000 +S3:g2k_3_1 0.000000 +S3:g2k_3_2 0.000000 +S3:g2k_4_1 0.000000 +S3:g2k_4_2 0.000000 +S3:g2k_5_1 0.000000 +S3:g2k_5_2 0.000000 +S3:g2k_6_1 0.000000 +S3:g2k_6_2 0.000000 +S3:g2k_7_1 0.000000 +S3:g2k_7_2 0.000000 +S3:g2k_8_1 0.000000 +S3:g2k_8_2 0.000000 +S3:g2k_9_1 0.000000 +S3:g2k_9_2 0.000000 +S4:g1k_0_1 0.000000 +S4:g1k_0_2 0.000000 +S4:g1k_1_1 0.000000 +S4:g1k_1_2 0.000000 +S4:g1k_2_1 0.000000 +S4:g1k_2_2 0.000000 +S4:g1k_3_1 0.000000 +S4:g1k_3_2 0.000000 +S4:g1k_4_1 0.000000 +S4:g1k_4_2 0.000000 +S4:g1k_5_1 0.000000 +S4:g1k_5_2 0.000000 +S4:g1k_6_1 0.000000 +S4:g1k_6_2 0.000000 +S4:g1k_7_1 0.000000 +S4:g1k_7_2 0.000000 +S4:g1k_8_1 0.000000 +S4:g1k_8_2 0.000000 +S4:g1k_9_1 0.000000 +S4:g1k_9_2 0.000000 +S4:g2k_0_1 0.000000 +S4:g2k_0_2 0.000000 +S4:g2k_1_1 0.000000 +S4:g2k_1_2 0.000000 +S4:g2k_2_1 0.000000 +S4:g2k_2_2 0.000000 +S4:g2k_3_1 0.000000 +S4:g2k_3_2 0.000000 +S4:g2k_4_1 0.000000 +S4:g2k_4_2 0.000000 +S4:g2k_5_1 0.000000 +S4:g2k_5_2 0.000000 +S4:g2k_6_1 0.000000 +S4:g2k_6_2 0.000000 +S4:g2k_7_1 0.000000 +S4:g2k_7_2 0.000000 +S4:g2k_8_1 0.000000 +S4:g2k_8_2 0.000000 +S4:g2k_9_1 0.000000 +S4:g2k_9_2 0.000000 +S5:g1k_0_1 0.000000 +S5:g1k_0_2 0.000000 +S5:g1k_1_1 0.000000 +S5:g1k_1_2 0.000000 +S5:g1k_2_1 0.000000 +S5:g1k_2_2 0.000000 +S5:g1k_3_1 0.000000 +S5:g1k_3_2 0.000000 +S5:g1k_4_1 0.000000 +S5:g1k_4_2 0.000000 +S5:g1k_5_1 0.000000 +S5:g1k_5_2 0.000000 +S5:g1k_6_1 0.000000 +S5:g1k_6_2 0.000000 +S5:g1k_7_1 0.000000 +S5:g1k_7_2 0.000000 +S5:g1k_8_1 0.000000 +S5:g1k_8_2 0.000000 +S5:g1k_9_1 0.000000 +S5:g1k_9_2 0.000000 +S5:g2k_0_1 0.000000 +S5:g2k_0_2 0.000000 +S5:g2k_1_1 0.000000 +S5:g2k_1_2 0.000000 +S5:g2k_2_1 0.000000 +S5:g2k_2_2 0.000000 +S5:g2k_3_1 0.000000 +S5:g2k_3_2 0.000000 +S5:g2k_4_1 0.000000 +S5:g2k_4_2 0.000000 +S5:g2k_5_1 0.000000 +S5:g2k_5_2 0.000000 +S5:g2k_6_1 0.000000 +S5:g2k_6_2 0.000000 +S5:g2k_7_1 0.000000 +S5:g2k_7_2 0.000000 +S5:g2k_8_1 0.000000 +S5:g2k_8_2 0.000000 +S5:g2k_9_1 0.000000 +S5:g2k_9_2 0.000000 +S6:g1k_0_1 0.000000 +S6:g1k_0_2 0.000000 +S6:g1k_1_1 0.000000 +S6:g1k_1_2 0.000000 +S6:g1k_2_1 0.000000 +S6:g1k_2_2 0.000000 +S6:g1k_3_1 0.000000 +S6:g1k_3_2 0.000000 +S6:g1k_4_1 0.000000 +S6:g1k_4_2 0.000000 +S6:g1k_5_1 0.000000 +S6:g1k_5_2 0.000000 +S6:g1k_6_1 0.000000 +S6:g1k_6_2 0.000000 +S6:g1k_7_1 0.000000 +S6:g1k_7_2 0.000000 +S6:g1k_8_1 0.000000 +S6:g1k_8_2 0.000000 +S6:g1k_9_1 0.000000 +S6:g1k_9_2 0.000000 +S6:g2k_0_1 0.000000 +S6:g2k_0_2 0.000000 +S6:g2k_1_1 0.000000 +S6:g2k_1_2 0.000000 +S6:g2k_2_1 0.000000 +S6:g2k_2_2 0.000000 +S6:g2k_3_1 0.000000 +S6:g2k_3_2 0.000000 +S6:g2k_4_1 0.000000 +S6:g2k_4_2 0.000000 +S6:g2k_5_1 0.000000 +S6:g2k_5_2 0.000000 +S6:g2k_6_1 0.000000 +S6:g2k_6_2 0.000000 +S6:g2k_7_1 0.000000 +S6:g2k_7_2 0.000000 +S6:g2k_8_1 0.000000 +S6:g2k_8_2 0.000000 +S6:g2k_9_1 0.000000 +S6:g2k_9_2 0.000000 +S7:g1k_0_1 0.000000 +S7:g1k_0_2 0.000000 +S7:g1k_1_1 0.000000 +S7:g1k_1_2 0.000000 +S7:g1k_2_1 0.000000 +S7:g1k_2_2 0.000000 +S7:g1k_3_1 0.000000 +S7:g1k_3_2 0.000000 +S7:g1k_4_1 0.000000 +S7:g1k_4_2 0.000000 +S7:g1k_5_1 0.000000 +S7:g1k_5_2 0.000000 +S7:g1k_6_1 0.000000 +S7:g1k_6_2 0.000000 +S7:g1k_7_1 0.000000 +S7:g1k_7_2 0.000000 +S7:g1k_8_1 0.000000 +S7:g1k_8_2 0.000000 +S7:g1k_9_1 0.000000 +S7:g1k_9_2 0.000000 +S7:g2k_0_1 0.000000 +S7:g2k_0_2 0.000000 +S7:g2k_1_1 0.000000 +S7:g2k_1_2 0.000000 +S7:g2k_2_1 0.000000 +S7:g2k_2_2 0.000000 +S7:g2k_3_1 0.000000 +S7:g2k_3_2 0.000000 +S7:g2k_4_1 0.000000 +S7:g2k_4_2 0.000000 +S7:g2k_5_1 0.000000 +S7:g2k_5_2 0.000000 +S7:g2k_6_1 0.000000 +S7:g2k_6_2 0.000000 +S7:g2k_7_1 0.000000 +S7:g2k_7_2 0.000000 +S7:g2k_8_1 0.000000 +S7:g2k_8_2 0.000000 +S7:g2k_9_1 0.000000 +S7:g2k_9_2 0.000000 +S8:g1k_0_1 0.000000 +S8:g1k_0_2 0.000000 +S8:g1k_1_1 0.000000 +S8:g1k_1_2 0.000000 +S8:g1k_2_1 0.000000 +S8:g1k_2_2 0.000000 +S8:g1k_3_1 0.000000 +S8:g1k_3_2 0.000000 +S8:g1k_4_1 0.000000 +S8:g1k_4_2 0.000000 +S8:g1k_5_1 0.000000 +S8:g1k_5_2 0.000000 +S8:g1k_6_1 0.000000 +S8:g1k_6_2 0.000000 +S8:g1k_7_1 0.000000 +S8:g1k_7_2 0.000000 +S8:g1k_8_1 0.000000 +S8:g1k_8_2 0.000000 +S8:g1k_9_1 0.000000 +S8:g1k_9_2 0.000000 +S8:g2k_0_1 0.000000 +S8:g2k_0_2 0.000000 +S8:g2k_1_1 0.000000 +S8:g2k_1_2 0.000000 +S8:g2k_2_1 0.000000 +S8:g2k_2_2 0.000000 +S8:g2k_3_1 0.000000 +S8:g2k_3_2 0.000000 +S8:g2k_4_1 0.000000 +S8:g2k_4_2 0.000000 +S8:g2k_5_1 0.000000 +S8:g2k_5_2 0.000000 +S8:g2k_6_1 0.000000 +S8:g2k_6_2 0.000000 +S8:g2k_7_1 0.000000 +S8:g2k_7_2 0.000000 +S8:g2k_8_1 0.000000 +S8:g2k_8_2 0.000000 +S8:g2k_9_1 0.000000 +S8:g2k_9_2 0.000000 +S9:g1k_0_1 0.000000 +S9:g1k_0_2 0.000000 +S9:g1k_1_1 0.000000 +S9:g1k_1_2 0.000000 +S9:g1k_2_1 0.000000 +S9:g1k_2_2 0.000000 +S9:g1k_3_1 0.000000 +S9:g1k_3_2 0.000000 +S9:g1k_4_1 0.000000 +S9:g1k_4_2 0.000000 +S9:g1k_5_1 0.000000 +S9:g1k_5_2 0.000000 +S9:g1k_6_1 0.000000 +S9:g1k_6_2 0.000000 +S9:g1k_7_1 0.000000 +S9:g1k_7_2 0.000000 +S9:g1k_8_1 0.000000 +S9:g1k_8_2 0.000000 +S9:g1k_9_1 0.000000 +S9:g1k_9_2 0.000000 +S9:g2k_0_1 0.000000 +S9:g2k_0_2 0.000000 +S9:g2k_1_1 0.000000 +S9:g2k_1_2 0.000000 +S9:g2k_2_1 0.000000 +S9:g2k_2_2 0.000000 +S9:g2k_3_1 0.000000 +S9:g2k_3_2 0.000000 +S9:g2k_4_1 0.000000 +S9:g2k_4_2 0.000000 +S9:g2k_5_1 0.000000 +S9:g2k_5_2 0.000000 +S9:g2k_6_1 0.000000 +S9:g2k_6_2 0.000000 +S9:g2k_7_1 0.000000 +S9:g2k_7_2 0.000000 +S9:g2k_8_1 0.000000 +S9:g2k_8_2 0.000000 +S9:g2k_9_1 0.000000 +S9:g2k_9_2 0.000000 +S10:g1k_0_1 0.000000 +S10:g1k_0_2 0.000000 +S10:g1k_1_1 0.000000 +S10:g1k_1_2 0.000000 +S10:g1k_2_1 0.000000 +S10:g1k_2_2 0.000000 +S10:g1k_3_1 0.000000 +S10:g1k_3_2 0.000000 +S10:g1k_4_1 0.000000 +S10:g1k_4_2 0.000000 +S10:g1k_5_1 0.000000 +S10:g1k_5_2 0.000000 +S10:g1k_6_1 0.000000 +S10:g1k_6_2 0.000000 +S10:g1k_7_1 0.000000 +S10:g1k_7_2 0.000000 +S10:g1k_8_1 0.000000 +S10:g1k_8_2 0.000000 +S10:g1k_9_1 0.000000 +S10:g1k_9_2 0.000000 +S10:g2k_0_1 0.000000 +S10:g2k_0_2 0.000000 +S10:g2k_1_1 0.000000 +S10:g2k_1_2 0.000000 +S10:g2k_2_1 0.000000 +S10:g2k_2_2 0.000000 +S10:g2k_3_1 0.000000 +S10:g2k_3_2 0.000000 +S10:g2k_4_1 0.000000 +S10:g2k_4_2 0.000000 +S10:g2k_5_1 0.000000 +S10:g2k_5_2 0.000000 +S10:g2k_6_1 0.000000 +S10:g2k_6_2 0.000000 +S10:g2k_7_1 0.000000 +S10:g2k_7_2 0.000000 +S10:g2k_8_1 0.000000 +S10:g2k_8_2 0.000000 +S10:g2k_9_1 0.000000 +S10:g2k_9_2 0.000000
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/strobealign_3.txt Tue Oct 28 08:16:56 2025 +0000 @@ -0,0 +1,400 @@ +S1:g1k_0_1 0.000000 +S1:g1k_0_2 0.000000 +S1:g1k_1_1 0.000000 +S1:g1k_1_2 0.000000 +S1:g1k_2_1 0.000000 +S1:g1k_2_2 0.000000 +S1:g1k_3_1 0.000000 +S1:g1k_3_2 0.000000 +S1:g1k_4_1 0.000000 +S1:g1k_4_2 0.000000 +S1:g1k_5_1 0.000000 +S1:g1k_5_2 0.000000 +S1:g1k_6_1 0.000000 +S1:g1k_6_2 0.000000 +S1:g1k_7_1 0.000000 +S1:g1k_7_2 0.000000 +S1:g1k_8_1 0.000000 +S1:g1k_8_2 0.000000 +S1:g1k_9_1 0.000000 +S1:g1k_9_2 0.000000 +S1:g2k_0_1 0.000000 +S1:g2k_0_2 0.000000 +S1:g2k_1_1 0.000000 +S1:g2k_1_2 0.000000 +S1:g2k_2_1 0.000000 +S1:g2k_2_2 0.000000 +S1:g2k_3_1 0.000000 +S1:g2k_3_2 0.000000 +S1:g2k_4_1 0.000000 +S1:g2k_4_2 0.000000 +S1:g2k_5_1 0.000000 +S1:g2k_5_2 0.000000 +S1:g2k_6_1 0.000000 +S1:g2k_6_2 0.000000 +S1:g2k_7_1 0.000000 +S1:g2k_7_2 0.000000 +S1:g2k_8_1 0.000000 +S1:g2k_8_2 0.000000 +S1:g2k_9_1 0.000000 +S1:g2k_9_2 0.000000 +S2:g1k_0_1 0.000000 +S2:g1k_0_2 0.000000 +S2:g1k_1_1 0.000000 +S2:g1k_1_2 0.000000 +S2:g1k_2_1 0.000000 +S2:g1k_2_2 0.000000 +S2:g1k_3_1 0.000000 +S2:g1k_3_2 0.000000 +S2:g1k_4_1 0.000000 +S2:g1k_4_2 0.000000 +S2:g1k_5_1 0.000000 +S2:g1k_5_2 0.000000 +S2:g1k_6_1 0.000000 +S2:g1k_6_2 0.000000 +S2:g1k_7_1 0.000000 +S2:g1k_7_2 0.000000 +S2:g1k_8_1 0.000000 +S2:g1k_8_2 0.000000 +S2:g1k_9_1 0.000000 +S2:g1k_9_2 0.000000 +S2:g2k_0_1 0.000000 +S2:g2k_0_2 0.000000 +S2:g2k_1_1 0.000000 +S2:g2k_1_2 0.000000 +S2:g2k_2_1 0.000000 +S2:g2k_2_2 0.000000 +S2:g2k_3_1 0.000000 +S2:g2k_3_2 0.000000 +S2:g2k_4_1 0.000000 +S2:g2k_4_2 0.000000 +S2:g2k_5_1 0.000000 +S2:g2k_5_2 0.000000 +S2:g2k_6_1 0.000000 +S2:g2k_6_2 0.000000 +S2:g2k_7_1 0.000000 +S2:g2k_7_2 0.000000 +S2:g2k_8_1 0.000000 +S2:g2k_8_2 0.000000 +S2:g2k_9_1 0.000000 +S2:g2k_9_2 0.000000 +S3:g1k_0_1 0.000000 +S3:g1k_0_2 0.000000 +S3:g1k_1_1 0.000000 +S3:g1k_1_2 0.000000 +S3:g1k_2_1 0.000000 +S3:g1k_2_2 0.000000 +S3:g1k_3_1 0.000000 +S3:g1k_3_2 0.000000 +S3:g1k_4_1 0.000000 +S3:g1k_4_2 0.000000 +S3:g1k_5_1 0.000000 +S3:g1k_5_2 0.000000 +S3:g1k_6_1 0.000000 +S3:g1k_6_2 0.000000 +S3:g1k_7_1 0.000000 +S3:g1k_7_2 0.000000 +S3:g1k_8_1 0.000000 +S3:g1k_8_2 0.000000 +S3:g1k_9_1 0.000000 +S3:g1k_9_2 0.000000 +S3:g2k_0_1 0.000000 +S3:g2k_0_2 0.000000 +S3:g2k_1_1 0.000000 +S3:g2k_1_2 0.000000 +S3:g2k_2_1 0.000000 +S3:g2k_2_2 0.000000 +S3:g2k_3_1 0.000000 +S3:g2k_3_2 0.000000 +S3:g2k_4_1 0.000000 +S3:g2k_4_2 0.000000 +S3:g2k_5_1 0.000000 +S3:g2k_5_2 0.000000 +S3:g2k_6_1 0.000000 +S3:g2k_6_2 0.000000 +S3:g2k_7_1 0.000000 +S3:g2k_7_2 0.000000 +S3:g2k_8_1 0.000000 +S3:g2k_8_2 0.000000 +S3:g2k_9_1 0.000000 +S3:g2k_9_2 0.000000 +S4:g1k_0_1 0.000000 +S4:g1k_0_2 0.000000 +S4:g1k_1_1 0.000000 +S4:g1k_1_2 0.000000 +S4:g1k_2_1 0.000000 +S4:g1k_2_2 0.000000 +S4:g1k_3_1 0.000000 +S4:g1k_3_2 0.000000 +S4:g1k_4_1 0.000000 +S4:g1k_4_2 0.000000 +S4:g1k_5_1 0.000000 +S4:g1k_5_2 0.000000 +S4:g1k_6_1 0.000000 +S4:g1k_6_2 0.000000 +S4:g1k_7_1 0.000000 +S4:g1k_7_2 0.000000 +S4:g1k_8_1 0.000000 +S4:g1k_8_2 0.000000 +S4:g1k_9_1 0.000000 +S4:g1k_9_2 0.000000 +S4:g2k_0_1 0.000000 +S4:g2k_0_2 0.000000 +S4:g2k_1_1 0.000000 +S4:g2k_1_2 0.000000 +S4:g2k_2_1 0.000000 +S4:g2k_2_2 0.000000 +S4:g2k_3_1 0.000000 +S4:g2k_3_2 0.000000 +S4:g2k_4_1 0.000000 +S4:g2k_4_2 0.000000 +S4:g2k_5_1 0.000000 +S4:g2k_5_2 0.000000 +S4:g2k_6_1 0.000000 +S4:g2k_6_2 0.000000 +S4:g2k_7_1 0.000000 +S4:g2k_7_2 0.000000 +S4:g2k_8_1 0.000000 +S4:g2k_8_2 0.000000 +S4:g2k_9_1 0.000000 +S4:g2k_9_2 0.000000 +S5:g1k_0_1 0.000000 +S5:g1k_0_2 0.000000 +S5:g1k_1_1 0.000000 +S5:g1k_1_2 0.000000 +S5:g1k_2_1 0.000000 +S5:g1k_2_2 0.000000 +S5:g1k_3_1 0.000000 +S5:g1k_3_2 0.000000 +S5:g1k_4_1 0.000000 +S5:g1k_4_2 0.000000 +S5:g1k_5_1 0.000000 +S5:g1k_5_2 0.000000 +S5:g1k_6_1 0.000000 +S5:g1k_6_2 0.000000 +S5:g1k_7_1 0.000000 +S5:g1k_7_2 0.000000 +S5:g1k_8_1 0.000000 +S5:g1k_8_2 0.000000 +S5:g1k_9_1 0.000000 +S5:g1k_9_2 0.000000 +S5:g2k_0_1 0.000000 +S5:g2k_0_2 0.000000 +S5:g2k_1_1 0.000000 +S5:g2k_1_2 0.000000 +S5:g2k_2_1 0.000000 +S5:g2k_2_2 0.000000 +S5:g2k_3_1 0.000000 +S5:g2k_3_2 0.000000 +S5:g2k_4_1 0.000000 +S5:g2k_4_2 0.000000 +S5:g2k_5_1 0.000000 +S5:g2k_5_2 0.000000 +S5:g2k_6_1 0.000000 +S5:g2k_6_2 0.000000 +S5:g2k_7_1 0.000000 +S5:g2k_7_2 0.000000 +S5:g2k_8_1 0.000000 +S5:g2k_8_2 0.000000 +S5:g2k_9_1 0.000000 +S5:g2k_9_2 0.000000 +S6:g1k_0_1 0.000000 +S6:g1k_0_2 0.000000 +S6:g1k_1_1 0.000000 +S6:g1k_1_2 0.000000 +S6:g1k_2_1 0.000000 +S6:g1k_2_2 0.000000 +S6:g1k_3_1 0.000000 +S6:g1k_3_2 0.000000 +S6:g1k_4_1 0.000000 +S6:g1k_4_2 0.000000 +S6:g1k_5_1 0.000000 +S6:g1k_5_2 0.000000 +S6:g1k_6_1 0.000000 +S6:g1k_6_2 0.000000 +S6:g1k_7_1 0.000000 +S6:g1k_7_2 0.000000 +S6:g1k_8_1 0.000000 +S6:g1k_8_2 0.000000 +S6:g1k_9_1 0.000000 +S6:g1k_9_2 0.000000 +S6:g2k_0_1 0.000000 +S6:g2k_0_2 0.000000 +S6:g2k_1_1 0.000000 +S6:g2k_1_2 0.000000 +S6:g2k_2_1 0.000000 +S6:g2k_2_2 0.000000 +S6:g2k_3_1 0.000000 +S6:g2k_3_2 0.000000 +S6:g2k_4_1 0.000000 +S6:g2k_4_2 0.000000 +S6:g2k_5_1 0.000000 +S6:g2k_5_2 0.000000 +S6:g2k_6_1 0.000000 +S6:g2k_6_2 0.000000 +S6:g2k_7_1 0.000000 +S6:g2k_7_2 0.000000 +S6:g2k_8_1 0.000000 +S6:g2k_8_2 0.000000 +S6:g2k_9_1 0.000000 +S6:g2k_9_2 0.000000 +S7:g1k_0_1 0.000000 +S7:g1k_0_2 0.000000 +S7:g1k_1_1 0.000000 +S7:g1k_1_2 0.000000 +S7:g1k_2_1 0.000000 +S7:g1k_2_2 0.000000 +S7:g1k_3_1 0.000000 +S7:g1k_3_2 0.000000 +S7:g1k_4_1 0.000000 +S7:g1k_4_2 0.000000 +S7:g1k_5_1 0.000000 +S7:g1k_5_2 0.000000 +S7:g1k_6_1 0.000000 +S7:g1k_6_2 0.000000 +S7:g1k_7_1 0.000000 +S7:g1k_7_2 0.000000 +S7:g1k_8_1 0.000000 +S7:g1k_8_2 0.000000 +S7:g1k_9_1 0.000000 +S7:g1k_9_2 0.000000 +S7:g2k_0_1 0.000000 +S7:g2k_0_2 0.000000 +S7:g2k_1_1 0.000000 +S7:g2k_1_2 0.000000 +S7:g2k_2_1 0.000000 +S7:g2k_2_2 0.000000 +S7:g2k_3_1 0.000000 +S7:g2k_3_2 0.000000 +S7:g2k_4_1 0.000000 +S7:g2k_4_2 0.000000 +S7:g2k_5_1 0.000000 +S7:g2k_5_2 0.000000 +S7:g2k_6_1 0.000000 +S7:g2k_6_2 0.000000 +S7:g2k_7_1 0.000000 +S7:g2k_7_2 0.000000 +S7:g2k_8_1 0.000000 +S7:g2k_8_2 0.000000 +S7:g2k_9_1 0.000000 +S7:g2k_9_2 0.000000 +S8:g1k_0_1 0.000000 +S8:g1k_0_2 0.000000 +S8:g1k_1_1 0.000000 +S8:g1k_1_2 0.000000 +S8:g1k_2_1 0.000000 +S8:g1k_2_2 0.000000 +S8:g1k_3_1 0.000000 +S8:g1k_3_2 0.000000 +S8:g1k_4_1 0.000000 +S8:g1k_4_2 0.000000 +S8:g1k_5_1 0.000000 +S8:g1k_5_2 0.000000 +S8:g1k_6_1 0.000000 +S8:g1k_6_2 0.000000 +S8:g1k_7_1 0.000000 +S8:g1k_7_2 0.000000 +S8:g1k_8_1 0.000000 +S8:g1k_8_2 0.000000 +S8:g1k_9_1 0.000000 +S8:g1k_9_2 0.000000 +S8:g2k_0_1 0.000000 +S8:g2k_0_2 0.000000 +S8:g2k_1_1 0.000000 +S8:g2k_1_2 0.000000 +S8:g2k_2_1 0.000000 +S8:g2k_2_2 0.000000 +S8:g2k_3_1 0.000000 +S8:g2k_3_2 0.000000 +S8:g2k_4_1 0.000000 +S8:g2k_4_2 0.000000 +S8:g2k_5_1 0.000000 +S8:g2k_5_2 0.000000 +S8:g2k_6_1 0.000000 +S8:g2k_6_2 0.000000 +S8:g2k_7_1 0.000000 +S8:g2k_7_2 0.000000 +S8:g2k_8_1 0.000000 +S8:g2k_8_2 0.000000 +S8:g2k_9_1 0.000000 +S8:g2k_9_2 0.000000 +S9:g1k_0_1 0.000000 +S9:g1k_0_2 0.000000 +S9:g1k_1_1 0.000000 +S9:g1k_1_2 0.000000 +S9:g1k_2_1 0.000000 +S9:g1k_2_2 0.000000 +S9:g1k_3_1 0.000000 +S9:g1k_3_2 0.000000 +S9:g1k_4_1 0.000000 +S9:g1k_4_2 0.000000 +S9:g1k_5_1 0.000000 +S9:g1k_5_2 0.000000 +S9:g1k_6_1 0.000000 +S9:g1k_6_2 0.000000 +S9:g1k_7_1 0.000000 +S9:g1k_7_2 0.000000 +S9:g1k_8_1 0.000000 +S9:g1k_8_2 0.000000 +S9:g1k_9_1 0.000000 +S9:g1k_9_2 0.000000 +S9:g2k_0_1 0.000000 +S9:g2k_0_2 0.000000 +S9:g2k_1_1 0.000000 +S9:g2k_1_2 0.000000 +S9:g2k_2_1 0.000000 +S9:g2k_2_2 0.000000 +S9:g2k_3_1 0.000000 +S9:g2k_3_2 0.000000 +S9:g2k_4_1 0.000000 +S9:g2k_4_2 0.000000 +S9:g2k_5_1 0.000000 +S9:g2k_5_2 0.000000 +S9:g2k_6_1 0.000000 +S9:g2k_6_2 0.000000 +S9:g2k_7_1 0.000000 +S9:g2k_7_2 0.000000 +S9:g2k_8_1 0.000000 +S9:g2k_8_2 0.000000 +S9:g2k_9_1 0.000000 +S9:g2k_9_2 0.000000 +S10:g1k_0_1 0.000000 +S10:g1k_0_2 0.000000 +S10:g1k_1_1 0.000000 +S10:g1k_1_2 0.000000 +S10:g1k_2_1 0.000000 +S10:g1k_2_2 0.000000 +S10:g1k_3_1 0.000000 +S10:g1k_3_2 0.000000 +S10:g1k_4_1 0.000000 +S10:g1k_4_2 0.000000 +S10:g1k_5_1 0.000000 +S10:g1k_5_2 0.000000 +S10:g1k_6_1 0.000000 +S10:g1k_6_2 0.000000 +S10:g1k_7_1 0.000000 +S10:g1k_7_2 0.000000 +S10:g1k_8_1 0.000000 +S10:g1k_8_2 0.000000 +S10:g1k_9_1 0.000000 +S10:g1k_9_2 0.000000 +S10:g2k_0_1 0.000000 +S10:g2k_0_2 0.000000 +S10:g2k_1_1 0.000000 +S10:g2k_1_2 0.000000 +S10:g2k_2_1 0.000000 +S10:g2k_2_2 0.000000 +S10:g2k_3_1 0.000000 +S10:g2k_3_2 0.000000 +S10:g2k_4_1 0.000000 +S10:g2k_4_2 0.000000 +S10:g2k_5_1 0.000000 +S10:g2k_5_2 0.000000 +S10:g2k_6_1 0.000000 +S10:g2k_6_2 0.000000 +S10:g2k_7_1 0.000000 +S10:g2k_7_2 0.000000 +S10:g2k_8_1 0.000000 +S10:g2k_8_2 0.000000 +S10:g2k_9_1 0.000000 +S10:g2k_9_2 0.000000
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/strobealign_4.txt Tue Oct 28 08:16:56 2025 +0000 @@ -0,0 +1,400 @@ +S1:g1k_0_1 0.000000 +S1:g1k_0_2 0.000000 +S1:g1k_1_1 0.000000 +S1:g1k_1_2 0.000000 +S1:g1k_2_1 0.000000 +S1:g1k_2_2 0.000000 +S1:g1k_3_1 0.000000 +S1:g1k_3_2 0.000000 +S1:g1k_4_1 0.000000 +S1:g1k_4_2 0.000000 +S1:g1k_5_1 0.000000 +S1:g1k_5_2 0.000000 +S1:g1k_6_1 0.000000 +S1:g1k_6_2 0.000000 +S1:g1k_7_1 0.000000 +S1:g1k_7_2 0.000000 +S1:g1k_8_1 0.000000 +S1:g1k_8_2 0.000000 +S1:g1k_9_1 0.000000 +S1:g1k_9_2 0.000000 +S1:g2k_0_1 0.000000 +S1:g2k_0_2 0.000000 +S1:g2k_1_1 0.000000 +S1:g2k_1_2 0.000000 +S1:g2k_2_1 0.000000 +S1:g2k_2_2 0.000000 +S1:g2k_3_1 0.000000 +S1:g2k_3_2 0.000000 +S1:g2k_4_1 0.000000 +S1:g2k_4_2 0.000000 +S1:g2k_5_1 0.000000 +S1:g2k_5_2 0.000000 +S1:g2k_6_1 0.000000 +S1:g2k_6_2 0.000000 +S1:g2k_7_1 0.000000 +S1:g2k_7_2 0.000000 +S1:g2k_8_1 0.000000 +S1:g2k_8_2 0.000000 +S1:g2k_9_1 0.000000 +S1:g2k_9_2 0.000000 +S2:g1k_0_1 0.000000 +S2:g1k_0_2 0.000000 +S2:g1k_1_1 0.000000 +S2:g1k_1_2 0.000000 +S2:g1k_2_1 0.000000 +S2:g1k_2_2 0.000000 +S2:g1k_3_1 0.000000 +S2:g1k_3_2 0.000000 +S2:g1k_4_1 0.000000 +S2:g1k_4_2 0.000000 +S2:g1k_5_1 0.000000 +S2:g1k_5_2 0.000000 +S2:g1k_6_1 0.000000 +S2:g1k_6_2 0.000000 +S2:g1k_7_1 0.000000 +S2:g1k_7_2 0.000000 +S2:g1k_8_1 0.000000 +S2:g1k_8_2 0.000000 +S2:g1k_9_1 0.000000 +S2:g1k_9_2 0.000000 +S2:g2k_0_1 0.000000 +S2:g2k_0_2 0.000000 +S2:g2k_1_1 0.000000 +S2:g2k_1_2 0.000000 +S2:g2k_2_1 0.000000 +S2:g2k_2_2 0.000000 +S2:g2k_3_1 0.000000 +S2:g2k_3_2 0.000000 +S2:g2k_4_1 0.000000 +S2:g2k_4_2 0.000000 +S2:g2k_5_1 0.000000 +S2:g2k_5_2 0.000000 +S2:g2k_6_1 0.000000 +S2:g2k_6_2 0.000000 +S2:g2k_7_1 0.000000 +S2:g2k_7_2 0.000000 +S2:g2k_8_1 0.000000 +S2:g2k_8_2 0.000000 +S2:g2k_9_1 0.000000 +S2:g2k_9_2 0.000000 +S3:g1k_0_1 0.000000 +S3:g1k_0_2 0.000000 +S3:g1k_1_1 0.000000 +S3:g1k_1_2 0.000000 +S3:g1k_2_1 0.000000 +S3:g1k_2_2 0.000000 +S3:g1k_3_1 0.000000 +S3:g1k_3_2 0.000000 +S3:g1k_4_1 0.000000 +S3:g1k_4_2 0.000000 +S3:g1k_5_1 0.000000 +S3:g1k_5_2 0.000000 +S3:g1k_6_1 0.000000 +S3:g1k_6_2 0.000000 +S3:g1k_7_1 0.000000 +S3:g1k_7_2 0.000000 +S3:g1k_8_1 0.000000 +S3:g1k_8_2 0.000000 +S3:g1k_9_1 0.000000 +S3:g1k_9_2 0.000000 +S3:g2k_0_1 0.000000 +S3:g2k_0_2 0.000000 +S3:g2k_1_1 0.000000 +S3:g2k_1_2 0.000000 +S3:g2k_2_1 0.000000 +S3:g2k_2_2 0.000000 +S3:g2k_3_1 0.000000 +S3:g2k_3_2 0.000000 +S3:g2k_4_1 0.000000 +S3:g2k_4_2 0.000000 +S3:g2k_5_1 0.000000 +S3:g2k_5_2 0.000000 +S3:g2k_6_1 0.000000 +S3:g2k_6_2 0.000000 +S3:g2k_7_1 0.000000 +S3:g2k_7_2 0.000000 +S3:g2k_8_1 0.000000 +S3:g2k_8_2 0.000000 +S3:g2k_9_1 0.000000 +S3:g2k_9_2 0.000000 +S4:g1k_0_1 0.000000 +S4:g1k_0_2 0.000000 +S4:g1k_1_1 0.000000 +S4:g1k_1_2 0.000000 +S4:g1k_2_1 0.000000 +S4:g1k_2_2 0.000000 +S4:g1k_3_1 0.000000 +S4:g1k_3_2 0.000000 +S4:g1k_4_1 0.000000 +S4:g1k_4_2 0.000000 +S4:g1k_5_1 0.000000 +S4:g1k_5_2 0.000000 +S4:g1k_6_1 0.000000 +S4:g1k_6_2 0.000000 +S4:g1k_7_1 0.000000 +S4:g1k_7_2 0.000000 +S4:g1k_8_1 0.000000 +S4:g1k_8_2 0.000000 +S4:g1k_9_1 0.000000 +S4:g1k_9_2 0.000000 +S4:g2k_0_1 0.000000 +S4:g2k_0_2 0.000000 +S4:g2k_1_1 0.000000 +S4:g2k_1_2 0.000000 +S4:g2k_2_1 0.000000 +S4:g2k_2_2 0.000000 +S4:g2k_3_1 0.000000 +S4:g2k_3_2 0.000000 +S4:g2k_4_1 0.000000 +S4:g2k_4_2 0.000000 +S4:g2k_5_1 0.000000 +S4:g2k_5_2 0.000000 +S4:g2k_6_1 0.000000 +S4:g2k_6_2 0.000000 +S4:g2k_7_1 0.000000 +S4:g2k_7_2 0.000000 +S4:g2k_8_1 0.000000 +S4:g2k_8_2 0.000000 +S4:g2k_9_1 0.000000 +S4:g2k_9_2 0.000000 +S5:g1k_0_1 0.000000 +S5:g1k_0_2 0.000000 +S5:g1k_1_1 0.000000 +S5:g1k_1_2 0.000000 +S5:g1k_2_1 0.000000 +S5:g1k_2_2 0.000000 +S5:g1k_3_1 0.000000 +S5:g1k_3_2 0.000000 +S5:g1k_4_1 0.000000 +S5:g1k_4_2 0.000000 +S5:g1k_5_1 0.000000 +S5:g1k_5_2 0.000000 +S5:g1k_6_1 0.000000 +S5:g1k_6_2 0.000000 +S5:g1k_7_1 0.000000 +S5:g1k_7_2 0.000000 +S5:g1k_8_1 0.000000 +S5:g1k_8_2 0.000000 +S5:g1k_9_1 0.000000 +S5:g1k_9_2 0.000000 +S5:g2k_0_1 0.000000 +S5:g2k_0_2 0.000000 +S5:g2k_1_1 0.000000 +S5:g2k_1_2 0.000000 +S5:g2k_2_1 0.000000 +S5:g2k_2_2 0.000000 +S5:g2k_3_1 0.000000 +S5:g2k_3_2 0.000000 +S5:g2k_4_1 0.000000 +S5:g2k_4_2 0.000000 +S5:g2k_5_1 0.000000 +S5:g2k_5_2 0.000000 +S5:g2k_6_1 0.000000 +S5:g2k_6_2 0.000000 +S5:g2k_7_1 0.000000 +S5:g2k_7_2 0.000000 +S5:g2k_8_1 0.000000 +S5:g2k_8_2 0.000000 +S5:g2k_9_1 0.000000 +S5:g2k_9_2 0.000000 +S6:g1k_0_1 0.000000 +S6:g1k_0_2 0.000000 +S6:g1k_1_1 0.000000 +S6:g1k_1_2 0.000000 +S6:g1k_2_1 0.000000 +S6:g1k_2_2 0.000000 +S6:g1k_3_1 0.000000 +S6:g1k_3_2 0.000000 +S6:g1k_4_1 0.000000 +S6:g1k_4_2 0.000000 +S6:g1k_5_1 0.000000 +S6:g1k_5_2 0.000000 +S6:g1k_6_1 0.000000 +S6:g1k_6_2 0.000000 +S6:g1k_7_1 0.000000 +S6:g1k_7_2 0.000000 +S6:g1k_8_1 0.000000 +S6:g1k_8_2 0.000000 +S6:g1k_9_1 0.000000 +S6:g1k_9_2 0.000000 +S6:g2k_0_1 0.000000 +S6:g2k_0_2 0.000000 +S6:g2k_1_1 0.000000 +S6:g2k_1_2 0.000000 +S6:g2k_2_1 0.000000 +S6:g2k_2_2 0.000000 +S6:g2k_3_1 0.000000 +S6:g2k_3_2 0.000000 +S6:g2k_4_1 0.000000 +S6:g2k_4_2 0.000000 +S6:g2k_5_1 0.000000 +S6:g2k_5_2 0.000000 +S6:g2k_6_1 0.000000 +S6:g2k_6_2 0.000000 +S6:g2k_7_1 0.000000 +S6:g2k_7_2 0.000000 +S6:g2k_8_1 0.000000 +S6:g2k_8_2 0.000000 +S6:g2k_9_1 0.000000 +S6:g2k_9_2 0.000000 +S7:g1k_0_1 0.000000 +S7:g1k_0_2 0.000000 +S7:g1k_1_1 0.000000 +S7:g1k_1_2 0.000000 +S7:g1k_2_1 0.000000 +S7:g1k_2_2 0.000000 +S7:g1k_3_1 0.000000 +S7:g1k_3_2 0.000000 +S7:g1k_4_1 0.000000 +S7:g1k_4_2 0.000000 +S7:g1k_5_1 0.000000 +S7:g1k_5_2 0.000000 +S7:g1k_6_1 0.000000 +S7:g1k_6_2 0.000000 +S7:g1k_7_1 0.000000 +S7:g1k_7_2 0.000000 +S7:g1k_8_1 0.000000 +S7:g1k_8_2 0.000000 +S7:g1k_9_1 0.000000 +S7:g1k_9_2 0.000000 +S7:g2k_0_1 0.000000 +S7:g2k_0_2 0.000000 +S7:g2k_1_1 0.000000 +S7:g2k_1_2 0.000000 +S7:g2k_2_1 0.000000 +S7:g2k_2_2 0.000000 +S7:g2k_3_1 0.000000 +S7:g2k_3_2 0.000000 +S7:g2k_4_1 0.000000 +S7:g2k_4_2 0.000000 +S7:g2k_5_1 0.000000 +S7:g2k_5_2 0.000000 +S7:g2k_6_1 0.000000 +S7:g2k_6_2 0.000000 +S7:g2k_7_1 0.000000 +S7:g2k_7_2 0.000000 +S7:g2k_8_1 0.000000 +S7:g2k_8_2 0.000000 +S7:g2k_9_1 0.000000 +S7:g2k_9_2 0.000000 +S8:g1k_0_1 0.000000 +S8:g1k_0_2 0.000000 +S8:g1k_1_1 0.000000 +S8:g1k_1_2 0.000000 +S8:g1k_2_1 0.000000 +S8:g1k_2_2 0.000000 +S8:g1k_3_1 0.000000 +S8:g1k_3_2 0.000000 +S8:g1k_4_1 0.000000 +S8:g1k_4_2 0.000000 +S8:g1k_5_1 0.000000 +S8:g1k_5_2 0.000000 +S8:g1k_6_1 0.000000 +S8:g1k_6_2 0.000000 +S8:g1k_7_1 0.000000 +S8:g1k_7_2 0.000000 +S8:g1k_8_1 0.000000 +S8:g1k_8_2 0.000000 +S8:g1k_9_1 0.000000 +S8:g1k_9_2 0.000000 +S8:g2k_0_1 0.000000 +S8:g2k_0_2 0.000000 +S8:g2k_1_1 0.000000 +S8:g2k_1_2 0.000000 +S8:g2k_2_1 0.000000 +S8:g2k_2_2 0.000000 +S8:g2k_3_1 0.000000 +S8:g2k_3_2 0.000000 +S8:g2k_4_1 0.000000 +S8:g2k_4_2 0.000000 +S8:g2k_5_1 0.000000 +S8:g2k_5_2 0.000000 +S8:g2k_6_1 0.000000 +S8:g2k_6_2 0.000000 +S8:g2k_7_1 0.000000 +S8:g2k_7_2 0.000000 +S8:g2k_8_1 0.000000 +S8:g2k_8_2 0.000000 +S8:g2k_9_1 0.000000 +S8:g2k_9_2 0.000000 +S9:g1k_0_1 0.000000 +S9:g1k_0_2 0.000000 +S9:g1k_1_1 0.000000 +S9:g1k_1_2 0.000000 +S9:g1k_2_1 0.000000 +S9:g1k_2_2 0.000000 +S9:g1k_3_1 0.000000 +S9:g1k_3_2 0.000000 +S9:g1k_4_1 0.000000 +S9:g1k_4_2 0.000000 +S9:g1k_5_1 0.000000 +S9:g1k_5_2 0.000000 +S9:g1k_6_1 0.000000 +S9:g1k_6_2 0.000000 +S9:g1k_7_1 0.000000 +S9:g1k_7_2 0.000000 +S9:g1k_8_1 0.000000 +S9:g1k_8_2 0.000000 +S9:g1k_9_1 0.000000 +S9:g1k_9_2 0.000000 +S9:g2k_0_1 0.000000 +S9:g2k_0_2 0.000000 +S9:g2k_1_1 0.000000 +S9:g2k_1_2 0.000000 +S9:g2k_2_1 0.000000 +S9:g2k_2_2 0.000000 +S9:g2k_3_1 0.000000 +S9:g2k_3_2 0.000000 +S9:g2k_4_1 0.000000 +S9:g2k_4_2 0.000000 +S9:g2k_5_1 0.000000 +S9:g2k_5_2 0.000000 +S9:g2k_6_1 0.000000 +S9:g2k_6_2 0.000000 +S9:g2k_7_1 0.000000 +S9:g2k_7_2 0.000000 +S9:g2k_8_1 0.000000 +S9:g2k_8_2 0.000000 +S9:g2k_9_1 0.000000 +S9:g2k_9_2 0.000000 +S10:g1k_0_1 0.000000 +S10:g1k_0_2 0.000000 +S10:g1k_1_1 0.000000 +S10:g1k_1_2 0.000000 +S10:g1k_2_1 0.000000 +S10:g1k_2_2 0.000000 +S10:g1k_3_1 0.000000 +S10:g1k_3_2 0.000000 +S10:g1k_4_1 0.000000 +S10:g1k_4_2 0.000000 +S10:g1k_5_1 0.000000 +S10:g1k_5_2 0.000000 +S10:g1k_6_1 0.000000 +S10:g1k_6_2 0.000000 +S10:g1k_7_1 0.000000 +S10:g1k_7_2 0.000000 +S10:g1k_8_1 0.000000 +S10:g1k_8_2 0.000000 +S10:g1k_9_1 0.000000 +S10:g1k_9_2 0.000000 +S10:g2k_0_1 0.000000 +S10:g2k_0_2 0.000000 +S10:g2k_1_1 0.000000 +S10:g2k_1_2 0.000000 +S10:g2k_2_1 0.000000 +S10:g2k_2_2 0.000000 +S10:g2k_3_1 0.000000 +S10:g2k_3_2 0.000000 +S10:g2k_4_1 0.000000 +S10:g2k_4_2 0.000000 +S10:g2k_5_1 0.000000 +S10:g2k_5_2 0.000000 +S10:g2k_6_1 0.000000 +S10:g2k_6_2 0.000000 +S10:g2k_7_1 0.000000 +S10:g2k_7_2 0.000000 +S10:g2k_8_1 0.000000 +S10:g2k_8_2 0.000000 +S10:g2k_9_1 0.000000 +S10:g2k_9_2 0.000000
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/strobealign_5.txt Tue Oct 28 08:16:56 2025 +0000 @@ -0,0 +1,400 @@ +S1:g1k_0_1 0.000000 +S1:g1k_0_2 0.000000 +S1:g1k_1_1 0.000000 +S1:g1k_1_2 0.000000 +S1:g1k_2_1 0.000000 +S1:g1k_2_2 0.000000 +S1:g1k_3_1 0.000000 +S1:g1k_3_2 0.000000 +S1:g1k_4_1 0.000000 +S1:g1k_4_2 0.000000 +S1:g1k_5_1 0.000000 +S1:g1k_5_2 0.000000 +S1:g1k_6_1 0.000000 +S1:g1k_6_2 0.000000 +S1:g1k_7_1 0.000000 +S1:g1k_7_2 0.000000 +S1:g1k_8_1 0.000000 +S1:g1k_8_2 0.000000 +S1:g1k_9_1 0.000000 +S1:g1k_9_2 0.000000 +S1:g2k_0_1 0.000000 +S1:g2k_0_2 0.000000 +S1:g2k_1_1 0.000000 +S1:g2k_1_2 0.000000 +S1:g2k_2_1 0.000000 +S1:g2k_2_2 0.000000 +S1:g2k_3_1 0.000000 +S1:g2k_3_2 0.000000 +S1:g2k_4_1 0.000000 +S1:g2k_4_2 0.000000 +S1:g2k_5_1 0.000000 +S1:g2k_5_2 0.000000 +S1:g2k_6_1 0.000000 +S1:g2k_6_2 0.000000 +S1:g2k_7_1 0.000000 +S1:g2k_7_2 0.000000 +S1:g2k_8_1 0.000000 +S1:g2k_8_2 0.000000 +S1:g2k_9_1 0.000000 +S1:g2k_9_2 0.000000 +S2:g1k_0_1 0.000000 +S2:g1k_0_2 0.000000 +S2:g1k_1_1 0.000000 +S2:g1k_1_2 0.000000 +S2:g1k_2_1 0.000000 +S2:g1k_2_2 0.000000 +S2:g1k_3_1 0.000000 +S2:g1k_3_2 0.000000 +S2:g1k_4_1 0.000000 +S2:g1k_4_2 0.000000 +S2:g1k_5_1 0.000000 +S2:g1k_5_2 0.000000 +S2:g1k_6_1 0.000000 +S2:g1k_6_2 0.000000 +S2:g1k_7_1 0.000000 +S2:g1k_7_2 0.000000 +S2:g1k_8_1 0.000000 +S2:g1k_8_2 0.000000 +S2:g1k_9_1 0.000000 +S2:g1k_9_2 0.000000 +S2:g2k_0_1 0.000000 +S2:g2k_0_2 0.000000 +S2:g2k_1_1 0.000000 +S2:g2k_1_2 0.000000 +S2:g2k_2_1 0.000000 +S2:g2k_2_2 0.000000 +S2:g2k_3_1 0.000000 +S2:g2k_3_2 0.000000 +S2:g2k_4_1 0.000000 +S2:g2k_4_2 0.000000 +S2:g2k_5_1 0.000000 +S2:g2k_5_2 0.000000 +S2:g2k_6_1 0.000000 +S2:g2k_6_2 0.000000 +S2:g2k_7_1 0.000000 +S2:g2k_7_2 0.000000 +S2:g2k_8_1 0.000000 +S2:g2k_8_2 0.000000 +S2:g2k_9_1 0.000000 +S2:g2k_9_2 0.000000 +S3:g1k_0_1 0.000000 +S3:g1k_0_2 0.000000 +S3:g1k_1_1 0.000000 +S3:g1k_1_2 0.000000 +S3:g1k_2_1 0.000000 +S3:g1k_2_2 0.000000 +S3:g1k_3_1 0.000000 +S3:g1k_3_2 0.000000 +S3:g1k_4_1 0.000000 +S3:g1k_4_2 0.000000 +S3:g1k_5_1 0.000000 +S3:g1k_5_2 0.000000 +S3:g1k_6_1 0.000000 +S3:g1k_6_2 0.000000 +S3:g1k_7_1 0.000000 +S3:g1k_7_2 0.000000 +S3:g1k_8_1 0.000000 +S3:g1k_8_2 0.000000 +S3:g1k_9_1 0.000000 +S3:g1k_9_2 0.000000 +S3:g2k_0_1 0.000000 +S3:g2k_0_2 0.000000 +S3:g2k_1_1 0.000000 +S3:g2k_1_2 0.000000 +S3:g2k_2_1 0.000000 +S3:g2k_2_2 0.000000 +S3:g2k_3_1 0.000000 +S3:g2k_3_2 0.000000 +S3:g2k_4_1 0.000000 +S3:g2k_4_2 0.000000 +S3:g2k_5_1 0.000000 +S3:g2k_5_2 0.000000 +S3:g2k_6_1 0.000000 +S3:g2k_6_2 0.000000 +S3:g2k_7_1 0.000000 +S3:g2k_7_2 0.000000 +S3:g2k_8_1 0.000000 +S3:g2k_8_2 0.000000 +S3:g2k_9_1 0.000000 +S3:g2k_9_2 0.000000 +S4:g1k_0_1 0.000000 +S4:g1k_0_2 0.000000 +S4:g1k_1_1 0.000000 +S4:g1k_1_2 0.000000 +S4:g1k_2_1 0.000000 +S4:g1k_2_2 0.000000 +S4:g1k_3_1 0.000000 +S4:g1k_3_2 0.000000 +S4:g1k_4_1 0.000000 +S4:g1k_4_2 0.000000 +S4:g1k_5_1 0.000000 +S4:g1k_5_2 0.000000 +S4:g1k_6_1 0.000000 +S4:g1k_6_2 0.000000 +S4:g1k_7_1 0.000000 +S4:g1k_7_2 0.000000 +S4:g1k_8_1 0.000000 +S4:g1k_8_2 0.000000 +S4:g1k_9_1 0.000000 +S4:g1k_9_2 0.000000 +S4:g2k_0_1 0.000000 +S4:g2k_0_2 0.000000 +S4:g2k_1_1 0.000000 +S4:g2k_1_2 0.000000 +S4:g2k_2_1 0.000000 +S4:g2k_2_2 0.000000 +S4:g2k_3_1 0.000000 +S4:g2k_3_2 0.000000 +S4:g2k_4_1 0.000000 +S4:g2k_4_2 0.000000 +S4:g2k_5_1 0.000000 +S4:g2k_5_2 0.000000 +S4:g2k_6_1 0.000000 +S4:g2k_6_2 0.000000 +S4:g2k_7_1 0.000000 +S4:g2k_7_2 0.000000 +S4:g2k_8_1 0.000000 +S4:g2k_8_2 0.000000 +S4:g2k_9_1 0.000000 +S4:g2k_9_2 0.000000 +S5:g1k_0_1 0.000000 +S5:g1k_0_2 0.000000 +S5:g1k_1_1 0.000000 +S5:g1k_1_2 0.000000 +S5:g1k_2_1 0.000000 +S5:g1k_2_2 0.000000 +S5:g1k_3_1 0.000000 +S5:g1k_3_2 0.000000 +S5:g1k_4_1 0.000000 +S5:g1k_4_2 0.000000 +S5:g1k_5_1 0.000000 +S5:g1k_5_2 0.000000 +S5:g1k_6_1 0.000000 +S5:g1k_6_2 0.000000 +S5:g1k_7_1 0.000000 +S5:g1k_7_2 0.000000 +S5:g1k_8_1 0.000000 +S5:g1k_8_2 0.000000 +S5:g1k_9_1 0.000000 +S5:g1k_9_2 0.000000 +S5:g2k_0_1 0.000000 +S5:g2k_0_2 0.000000 +S5:g2k_1_1 0.000000 +S5:g2k_1_2 0.000000 +S5:g2k_2_1 0.000000 +S5:g2k_2_2 0.000000 +S5:g2k_3_1 0.000000 +S5:g2k_3_2 0.000000 +S5:g2k_4_1 0.000000 +S5:g2k_4_2 0.000000 +S5:g2k_5_1 0.000000 +S5:g2k_5_2 0.000000 +S5:g2k_6_1 0.000000 +S5:g2k_6_2 0.000000 +S5:g2k_7_1 0.000000 +S5:g2k_7_2 0.000000 +S5:g2k_8_1 0.000000 +S5:g2k_8_2 0.000000 +S5:g2k_9_1 0.000000 +S5:g2k_9_2 0.000000 +S6:g1k_0_1 0.000000 +S6:g1k_0_2 0.000000 +S6:g1k_1_1 0.000000 +S6:g1k_1_2 0.000000 +S6:g1k_2_1 0.000000 +S6:g1k_2_2 0.000000 +S6:g1k_3_1 0.000000 +S6:g1k_3_2 0.000000 +S6:g1k_4_1 0.000000 +S6:g1k_4_2 0.000000 +S6:g1k_5_1 0.000000 +S6:g1k_5_2 0.000000 +S6:g1k_6_1 0.000000 +S6:g1k_6_2 0.000000 +S6:g1k_7_1 0.000000 +S6:g1k_7_2 0.000000 +S6:g1k_8_1 0.000000 +S6:g1k_8_2 0.000000 +S6:g1k_9_1 0.000000 +S6:g1k_9_2 0.000000 +S6:g2k_0_1 0.000000 +S6:g2k_0_2 0.000000 +S6:g2k_1_1 0.000000 +S6:g2k_1_2 0.000000 +S6:g2k_2_1 0.000000 +S6:g2k_2_2 0.000000 +S6:g2k_3_1 0.000000 +S6:g2k_3_2 0.000000 +S6:g2k_4_1 0.000000 +S6:g2k_4_2 0.000000 +S6:g2k_5_1 0.000000 +S6:g2k_5_2 0.000000 +S6:g2k_6_1 0.000000 +S6:g2k_6_2 0.000000 +S6:g2k_7_1 0.000000 +S6:g2k_7_2 0.000000 +S6:g2k_8_1 0.000000 +S6:g2k_8_2 0.000000 +S6:g2k_9_1 0.000000 +S6:g2k_9_2 0.000000 +S7:g1k_0_1 0.000000 +S7:g1k_0_2 0.000000 +S7:g1k_1_1 0.000000 +S7:g1k_1_2 0.000000 +S7:g1k_2_1 0.000000 +S7:g1k_2_2 0.000000 +S7:g1k_3_1 0.000000 +S7:g1k_3_2 0.000000 +S7:g1k_4_1 0.000000 +S7:g1k_4_2 0.000000 +S7:g1k_5_1 0.000000 +S7:g1k_5_2 0.000000 +S7:g1k_6_1 0.000000 +S7:g1k_6_2 0.000000 +S7:g1k_7_1 0.000000 +S7:g1k_7_2 0.000000 +S7:g1k_8_1 0.000000 +S7:g1k_8_2 0.000000 +S7:g1k_9_1 0.000000 +S7:g1k_9_2 0.000000 +S7:g2k_0_1 0.000000 +S7:g2k_0_2 0.000000 +S7:g2k_1_1 0.000000 +S7:g2k_1_2 0.000000 +S7:g2k_2_1 0.000000 +S7:g2k_2_2 0.000000 +S7:g2k_3_1 0.000000 +S7:g2k_3_2 0.000000 +S7:g2k_4_1 0.000000 +S7:g2k_4_2 0.000000 +S7:g2k_5_1 0.000000 +S7:g2k_5_2 0.000000 +S7:g2k_6_1 0.000000 +S7:g2k_6_2 0.000000 +S7:g2k_7_1 0.000000 +S7:g2k_7_2 0.000000 +S7:g2k_8_1 0.000000 +S7:g2k_8_2 0.000000 +S7:g2k_9_1 0.000000 +S7:g2k_9_2 0.000000 +S8:g1k_0_1 0.000000 +S8:g1k_0_2 0.000000 +S8:g1k_1_1 0.000000 +S8:g1k_1_2 0.000000 +S8:g1k_2_1 0.000000 +S8:g1k_2_2 0.000000 +S8:g1k_3_1 0.000000 +S8:g1k_3_2 0.000000 +S8:g1k_4_1 0.000000 +S8:g1k_4_2 0.000000 +S8:g1k_5_1 0.000000 +S8:g1k_5_2 0.000000 +S8:g1k_6_1 0.000000 +S8:g1k_6_2 0.000000 +S8:g1k_7_1 0.000000 +S8:g1k_7_2 0.000000 +S8:g1k_8_1 0.000000 +S8:g1k_8_2 0.000000 +S8:g1k_9_1 0.000000 +S8:g1k_9_2 0.000000 +S8:g2k_0_1 0.000000 +S8:g2k_0_2 0.000000 +S8:g2k_1_1 0.000000 +S8:g2k_1_2 0.000000 +S8:g2k_2_1 0.000000 +S8:g2k_2_2 0.000000 +S8:g2k_3_1 0.000000 +S8:g2k_3_2 0.000000 +S8:g2k_4_1 0.000000 +S8:g2k_4_2 0.000000 +S8:g2k_5_1 0.000000 +S8:g2k_5_2 0.000000 +S8:g2k_6_1 0.000000 +S8:g2k_6_2 0.000000 +S8:g2k_7_1 0.000000 +S8:g2k_7_2 0.000000 +S8:g2k_8_1 0.000000 +S8:g2k_8_2 0.000000 +S8:g2k_9_1 0.000000 +S8:g2k_9_2 0.000000 +S9:g1k_0_1 0.000000 +S9:g1k_0_2 0.000000 +S9:g1k_1_1 0.000000 +S9:g1k_1_2 0.000000 +S9:g1k_2_1 0.000000 +S9:g1k_2_2 0.000000 +S9:g1k_3_1 0.000000 +S9:g1k_3_2 0.000000 +S9:g1k_4_1 0.000000 +S9:g1k_4_2 0.000000 +S9:g1k_5_1 0.000000 +S9:g1k_5_2 0.000000 +S9:g1k_6_1 0.000000 +S9:g1k_6_2 0.000000 +S9:g1k_7_1 0.000000 +S9:g1k_7_2 0.000000 +S9:g1k_8_1 0.000000 +S9:g1k_8_2 0.000000 +S9:g1k_9_1 0.000000 +S9:g1k_9_2 0.000000 +S9:g2k_0_1 0.000000 +S9:g2k_0_2 0.000000 +S9:g2k_1_1 0.000000 +S9:g2k_1_2 0.000000 +S9:g2k_2_1 0.000000 +S9:g2k_2_2 0.000000 +S9:g2k_3_1 0.000000 +S9:g2k_3_2 0.000000 +S9:g2k_4_1 0.000000 +S9:g2k_4_2 0.000000 +S9:g2k_5_1 0.000000 +S9:g2k_5_2 0.000000 +S9:g2k_6_1 0.000000 +S9:g2k_6_2 0.000000 +S9:g2k_7_1 0.000000 +S9:g2k_7_2 0.000000 +S9:g2k_8_1 0.000000 +S9:g2k_8_2 0.000000 +S9:g2k_9_1 0.000000 +S9:g2k_9_2 0.000000 +S10:g1k_0_1 0.000000 +S10:g1k_0_2 0.000000 +S10:g1k_1_1 0.000000 +S10:g1k_1_2 0.000000 +S10:g1k_2_1 0.000000 +S10:g1k_2_2 0.000000 +S10:g1k_3_1 0.000000 +S10:g1k_3_2 0.000000 +S10:g1k_4_1 0.000000 +S10:g1k_4_2 0.000000 +S10:g1k_5_1 0.000000 +S10:g1k_5_2 0.000000 +S10:g1k_6_1 0.000000 +S10:g1k_6_2 0.000000 +S10:g1k_7_1 0.000000 +S10:g1k_7_2 0.000000 +S10:g1k_8_1 0.000000 +S10:g1k_8_2 0.000000 +S10:g1k_9_1 0.000000 +S10:g1k_9_2 0.000000 +S10:g2k_0_1 0.000000 +S10:g2k_0_2 0.000000 +S10:g2k_1_1 0.000000 +S10:g2k_1_2 0.000000 +S10:g2k_2_1 0.000000 +S10:g2k_2_2 0.000000 +S10:g2k_3_1 0.000000 +S10:g2k_3_2 0.000000 +S10:g2k_4_1 0.000000 +S10:g2k_4_2 0.000000 +S10:g2k_5_1 0.000000 +S10:g2k_5_2 0.000000 +S10:g2k_6_1 0.000000 +S10:g2k_6_2 0.000000 +S10:g2k_7_1 0.000000 +S10:g2k_7_2 0.000000 +S10:g2k_8_1 0.000000 +S10:g2k_8_2 0.000000 +S10:g2k_9_1 0.000000 +S10:g2k_9_2 0.000000
