Mercurial > repos > iuc > semibin_generate_sequence_features
changeset 5:8ba0c2edf3f3 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/semibin commit ee5d87e278238478c8ecab4a2f73723323f179a7
author | iuc |
---|---|
date | Sun, 10 Aug 2025 11:39:49 +0000 |
parents | 40ffba87bbcf |
children | |
files | generate_sequence_features.xml macros.xml test-data/strobealign_1.txt test-data/strobealign_2.txt test-data/strobealign_3.txt test-data/strobealign_4.txt test-data/strobealign_5.txt |
diffstat | 7 files changed, 2288 insertions(+), 54 deletions(-) [+] |
line wrap: on
line diff
--- a/generate_sequence_features.xml Fri Aug 01 21:26:47 2025 +0000 +++ b/generate_sequence_features.xml Sun Aug 10 11:39:49 2025 +0000 @@ -10,18 +10,29 @@ <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 #else generate_sequence_features_multi --separator '$separator' #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 +41,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 +67,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"/> @@ -83,10 +108,13 @@ </output> </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" 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> </conditional> <conditional name="min_len"> <param name="method" value="automatic"/> @@ -138,13 +166,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,14 +255,87 @@ </element> </output_collection> </test> + + <test expect_num_outputs="5"> + <conditional name="input_type_select"> + <param name="input_type" value="txt"/> + <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="abundance" ftype="txt" value="strobealign_1.txt,strobealign_2.txt,strobealign_3.txt,strobealign_4.txt,strobealign_5.txt"/> + </conditional> + </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> + <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" ftype="csv"> + <assert_contents> + <has_n_lines n="41"/> + <has_text text="g1k_0_1"/> + </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="mode"> - <param name="select" value="multi"/> - <conditional name="multi_fasta"> + <conditional name="input_type_select"> + <param name="input_type" value="bam"/> + <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="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.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"/>
--- a/macros.xml Fri Aug 01 21:26:47 2025 +0000 +++ b/macros.xml Sun Aug 10 11:39:49 2025 +0000 @@ -1,8 +1,8 @@ <?xml version="1.0"?> <macros> - <token name="@TOOL_VERSION@">2.0.2</token> - <token name="@VERSION_SUFFIX@">2</token> - <token name="@PROFILE@">24.0</token> + <token name="@TOOL_VERSION@">2.1.0</token> + <token name="@VERSION_SUFFIX@">0</token> + <token name="@PROFILE@">21.01</token> <xml name="biotools"> <xrefs> <xref type="bio.tools">semibin</xref> @@ -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,6 +72,12 @@ <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"/> </xml> @@ -129,17 +152,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 + #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 +290,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 +325,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,31 +480,34 @@ <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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/strobealign_1.txt Sun Aug 10 11:39:49 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 Sun Aug 10 11:39:49 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 Sun Aug 10 11:39:49 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 Sun Aug 10 11:39:49 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 Sun Aug 10 11:39:49 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