changeset 0:cafea02ae3e0 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/halla commit 5cd01ad3808dff1ce4aae231706cbe2225079a04
author iuc
date Wed, 05 Nov 2025 09:37:19 +0000
parents
children
files halla.xml test-data/X_16_100.txt test-data/Y_16_100.txt test-data/all_associations.tsv test-data/association_1.pdf test-data/sig_clusters.tsv
diffstat 6 files changed, 532 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/halla.xml	Wed Nov 05 09:37:19 2025 +0000
@@ -0,0 +1,222 @@
+<tool id="halla" name="HAllA" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@" license="MIT">
+    <description>Hierarchical All-against-All association</description>
+    <macros>
+        <token name="@TOOL_VERSION@">0.8.40</token>
+        <token name="@VERSION_SUFFIX@">0</token>
+        <token name="@PROFILE@">24.0</token>
+    </macros>
+    <xrefs>
+        <xref type="bio.tools"></xref>
+    </xrefs>
+    <requirements>
+        <requirement type="package" version="@TOOL_VERSION@">halla</requirement>
+    </requirements>
+    <version_command><![CDATA[halla --version]]></version_command>
+    <command detect_errors="exit_code"><![CDATA[
+        halla
+            -x '$x'
+            --x_dataset_label 
+            #if $x_dataset_label
+                '$x_dataset_label'
+            #else
+                '$x.element_identifier'
+            #end if
+            -y '$y'
+            --y_dataset_label 
+            #if $y_dataset_label
+                '$y_dataset_label'
+            #else
+                '$y.element_identifier'
+            #end if
+            $alla
+            --max_freq_thresh $max_freq_thresh
+            #if $transform_data_funcs
+                --transform_data_funcs
+                #for $foo in $transform_data_funcs
+                    $foo
+                #end for
+            #end if
+            $disable_bypass_discretization_if_possible
+            #if $discretize_func
+                --discretize_func $discretize_func
+            #end if
+            #if $discretize_num_bins
+                --discretize_num_bins $discretize_num_bins
+            #end if
+            --pdist_metric $pdist_metric
+            $sim2dist_disable_abs
+            --linkage_method $linkage_method
+            --permute_func $permute_func
+            --permute_iters $permute_iters
+            $disable_permute_speedup
+            --fdr_alpha $fdr_alpha
+            --fdr_method $fdr_method
+            --fnr_thresh $fnr_thresh
+            --rank_cluster $rank_cluster
+            #if $seed
+                --seed $seed
+            #end if
+            --block_num $block_num
+            $hallagram
+            $diagnostic_plot
+            -o output
+            --num_threads "\${GALAXY_SLOTS:-4}"
+    ]]></command>
+    <inputs>
+        <param argument="-x" type="data" format="tabular" label="Dataset X" help="Tabular dataset with p features/rows and n samples/columns" />
+        <param argument="-y" type="data" format="tabular" label="Dataset Y" help="Tabular dataset with d features/rows and n samples/columns" />
+        <param argument="--alla" type="boolean" truevalue="--alla" falsevalue="" checked="false" label="Use AllA instead of HAllA" help="HAllA uses a hierarchical approach for block association discovery on top of an existing all-against-all (AllA) association matrix. Use this option to skip the block association step." />
+        <param argument="--max_freq_thresh" type="float" min="0" max="1" value="1" label="Maximum frequency" help="features with max frequences >= the threshold will be removed" />
+        <param argument="--transform_data_funcs" type="select" optional="true" multiple="true" label="Continuous data transformation function">
+            <option value="zscore">zscore</option>
+            <option value="rank">rank</option>
+            <option value="quantile">quantile</option>
+        </param>
+        
+        <param argument="--disable_bypass_discretization_if_possible" type="boolean" truevalue="--disable_bypass_discretization_if_possible" falsevalue="" checked="false" label="Discretize even if all features are continuous" help="By default discritization is bypassed if all features are continuous" />
+        <param argument="--discretize_func" type="select" optional="true" label="Discretization function">
+            <option value="quantile">quantile</option>
+            <option value="kmeans">kmeans</option>
+            <option value="uniform">uniform</option>
+            <option value="jenks">jenks</option>
+        </param>
+        <param argument="--discretize_num_bins" type="integer" min="0" value="" optional="true" label="Discretization - number of bins"/>
+
+        <param argument="--pdist_metric" type="select" label="Distance/similarity metric" help="default: spearman for continuous data, If there is at least one categorical variable in either dataset, HAllA will shift to Normalized Mutual Information (NMI) as an alternative similarity measure.">
+            <option value="spearman" selected="true">Spearman</option>
+            <option value="pearson">Pearson</option>
+            <option value="dcor">Distance correlation</option>
+            <option value="mi">mutual information</option>
+            <option value="nmi">normalized mutual information</option>
+            <option value="xicor">xi correlation</option>
+        </param>
+
+        <param argument="--sim2dist_disable_abs" type="boolean" truevalue="--sim2dist_disable_abs" falsevalue="" checked="false" label="Hierarchical clustering - disable setting similarity scores as absolute when computing distance" />
+        <param argument="--linkage_method" type="select" label="Hierarchical clustering linkage method" help="see help below">
+            <option value="single">single</option>
+            <option value="complete">complete</option>
+            <option value="average" selected="true">average</option>
+            <option value="weighted">weighted</option>
+            <option value="centroid">centroid</option>
+            <option value="median">median</option>
+            <option value="ward">ward</option>
+        </param>
+
+        <param argument="--permute_func" type="select" label="P-value approximation function" help=" in the p-value permutation test">
+            <option value="gpd">gdp</option>
+            <option value="ecdf">ecdf</option>
+        </param>
+        <param argument="--permute_iters" type="integer" min="0" value="1000" label="Number of iterations in the p-value permutation test"/>
+        <param argument="--disable_permute_speedup" type="boolean" truevalue="--disable_permute_speedup" falsevalue="" checked="false" label="Do not break early in the permutation test if p-value is insignificant"/>
+        <!-- \-\-force_permutations  If turned on, force permutation testing -->
+
+        <param argument="--fdr_alpha" type="float" min="0" max="1" value="0.05" label="FDR threshold"/>
+        <param argument="--fdr_method" type="select" label="FDR method" help="see help below">
+            <option value="bonferroni">bonferroni: one-step correction</option>
+            <option value="sidak">sidak: one-step correction</option>
+            <option value="holm-sidak">holm-sidak: </option>
+            <option value="holm">holm: </option>
+            <option value="simes-hochberg">simes-hochberg: </option>
+            <option value="hommel">hommel: </option>
+            <option value="fdr_bh" selected="true">fdr_bh: Benjamini/Hochberg (non-negative)</option>
+            <option value="fdr_by">fdr_by: Benjamini/Yekutieli (negative)</option>
+            <option value="fdr_tsbh">fdr_tsbh: two stage fdr correction (non-negative)</option>
+            <option value="fdr_tsbky">fdr_tsbky: two stage fdr correction (non-negative)</option>
+        </param>
+        <param argument="--fnr_thresh" type="float" min="0" max="1" value="0.05" label="FNR threshold"/>
+        <param argument="--rank_cluster" type="select" label="Procedure to rank cluster using the p-values within the cluster">
+            <option value="best" selected="true">best</option>
+            <option value="average">average</option>
+        </param>
+        <param argument="--seed" type="integer" value="" optional="true" label="Randomization seed" />
+        
+        <param argument="--hallagram" type="boolean" truevalue="--hallagram" falsevalue="--no_hallagram" checked="true" label="Generate hallagram" />
+        <param argument="--x_dataset_label" type="text" label="Hallagram/clustermap: label for X dataset" help="By default the dataset identifier is used"/>
+        <param argument="--y_dataset_label" type="text" label="Hallagram/clustermap: label for Y dataset" help="By default the dataset identifier is used"/>
+        <param argument="--block_num" type="integer" min="-1" value="-1" label="Number of top clusters in hallagram" help="-1: show all clusters"/>
+
+        <param argument="--diagnostic_plot" type="boolean" truevalue="--diagnostic_plot" falsevalue="" checked="false" label="Generates diagnostic plot" />
+    </inputs>
+    <outputs>
+        <data name="sig_clusters" format="tabular" from_work_dir="output/sig_clusters.txt" label="${tool.name} on ${on_string}: block associations"/> 
+        <data name="all_associations" format="tabular" from_work_dir="output/all_associations.txt" label="${tool.name} on ${on_string}: all associations"/> 
+        <data name="hallagram_out" format="pdf" from_work_dir="output/hallagram.pdf" label="${tool.name} on ${on_string}: hallagram">
+            <filter>hallagram is True</filter>
+        </data>
+        <collection name="diagnostic_plot_out" format="pdf" type="list" label="${tool.name} on ${on_string}: diagnostic plots">
+            <discover_datasets pattern="(?P&lt;designation&gt;association_.*)\.pdf" format="pdf" directory="output/diagnostic/" />
+            <filter>diagnostic_plot is True</filter>
+        </collection>
+    </outputs>
+    <tests>
+        <test expect_num_outputs="3">
+            <param name="x" value="X_16_100.txt"/>
+            <param name="y" value="Y_16_100.txt"/>
+            <param name="seed" value="42"/>
+            <output name="sig_clusters" value="sig_clusters.tsv"/>
+            <output name="all_associations" value="all_associations.tsv"/>
+        </test>
+        <test expect_num_outputs="3">
+            <param name="x" value="X_16_100.txt"/>
+            <param name="y" value="Y_16_100.txt"/>
+            <param name="seed" value="42"/>
+            <param name="hallagram" value="false"/>
+            <param name="diagnostic_plot" value="true"/>
+            <output name="sig_clusters" value="sig_clusters.tsv"/>
+            <output name="all_associations" value="all_associations.tsv"/>
+            <output_collection name="diagnostic_plot_out" type="list" count="18">
+                <element name="association_1" value="association_1.pdf"/>
+            </output_collection>
+        </test>
+    </tests>
+    <help><![CDATA[
+
+.. class:: infomark
+
+**What it does**
+
+HAllA (Hierarchical All-against-All association) is a method for finding blocks of associated features in high-dimensional datasets
+measured from a common set of samples. HAllA operates by 
+
+1. optionally discretizing mixed continuous and categorical features to a uniform representation
+2. hierarchically clustering each dataset separately to generate a pair of data hierarchies,
+3. performing all-against-all association testing between features across two datasets using robust measures of correlation,
+4. determining the statistical significance of individual associations by permutation testing, and
+5. iteratively subdividing the space of significant all-against-all correlations into blocks of densely associated occurring as clusters in the original datasets.
+
+Tutorial https://github.com/biobakery/biobakery/wiki/halla
+
+Usage
+.....
+
+**Input**
+
+Data in scientific studies often come paired in the form of two high-dimensional datasets, where the dataset 
+X (with p features/rows and n samples/columns) are assumed to be p predictor variables (or features) measured
+on n samples that give rise to d response variables contained in the dataset Y (with d features/rows and n samples/columns).
+Note that column i of X is sampled jointly with column i of Y, so that X and Y are aligned.
+
+**Output**
+
+HAllA reports significant associations between clusters of related features ("block associations").
+Each block association is characterized by a cluster from the first dataset, a cluster from the second dataset,
+and measures of statistical significance and effect size (p-value, q-value, and similarity score) for the cluster's
+component pairwise associations.
+
+- **block associations** which reports block associations between the two datasets' features
+- **all associations** which reports the pairwise similarity scores for all features across the two datasets
+- **hallagram** graphical representation discovered block associations
+- **diagnostic plots** (optional)lattice plot showing the pairwise associations between microbiome features and metadata for each significant cluster. 
+
+**Notes**
+
+Details on the available: 
+
+- Hierarchical clustering linkage methods https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html
+- FDR methods https://www.statsmodels.org/dev/generated/statsmodels.stats.multitest.multipletests.html
+
+    ]]></help>
+    <citations>
+        <citation type="doi">10.1093/bioinformatics/btac232</citation>
+    </citations>
+</tool>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/X_16_100.txt	Wed Nov 05 09:37:19 2025 +0000
@@ -0,0 +1,17 @@
+#	0	1	2	3	4	5	6	7	8	9	10	11	12	13	14	15	16	17	18	19	20	21	22	23	24	25	26	27	28	29	30	31	32	33	34	35	36	37	38	39	40	41	42	43	44	45	46	47	48	49
+X0	-0.752661407416	-0.918564669907	0.867973031552	-0.344217393007	0.176071481294	0.470336662896	-0.157686338276	1.05167008445	0.689470274209	-0.33905439878	-0.311695315143	-0.659036288578	1.14979015157	0.429876223193	1.17820655936	0.433771188242	-0.415625966089	-0.0127890343016	0.952624550459	-0.0249271086321	-0.383170620213	-0.056344805918	-0.839590095453	0.202001508751	-1.02406307909	0.590253756196	-0.242838142659	-0.825135868101	0.261567347433	0.0952221542582	0.727226821385	-0.510006970791	-0.373673323097	0.62414974331	-0.0743895919927	-0.144367672867	0.111133779396	0.202966084129	0.254165841661	-0.414329668297	-1.09637185127	-0.735756833148	0.119658003807	-0.0643551945148	1.24815216171	0.292103993414	0.545077780116	0.598053508941	0.216830922262	0.149859639397
+X1	-0.415741639248	-2.3673574489	0.152426444389	0.257252045105	-1.01851734557	0.014186787446	-0.409629061276	0.585199495883	0.924380372419	-0.514556750566	-0.647772199052	-0.922567676199	0.128753047604	0.316261419646	0.409727866952	0.343511134753	0.31192025355	-0.162462866131	0.164622112273	-0.57456094604	-0.93543283768	1.07323895211	-0.726789505168	0.670130774131	-1.27730215533	1.3234449245	-0.0724950049607	-1.17143739824	0.46722477098	-0.863345085351	1.05426596101	-1.32949555347	0.117426354699	0.371808011425	0.487089743838	-0.425257486656	0.162086963064	-0.273981043621	0.990835516779	-1.254031838	-1.35435258539	-1.58433874061	1.45777123794	0.136699387104	1.53155607984	0.711717077163	0.447309243631	0.174971237948	0.710838094731	-0.629215051407
+X2	0.791673792245	-2.03647345238	0.780365492828	0.510881684986	-0.862456010483	0.40394438953	0.244774997879	0.125187263784	0.687151962199	-0.239055308112	-0.0823663471734	-1.33645483151	0.28236242504	0.232559489109	-0.331844528123	0.560961268891	0.0138275126926	-0.7358854203	0.398630967456	-0.193431955693	-0.207077598105	1.11865881048	-0.81552699356	0.949644992394	-0.624641397765	2.30214156598	-0.39114862501	-0.708661818755	0.455164877324	0.491833191179	0.101429299473	-1.56319921777	-0.21127509045	-0.456555865617	-0.266242791077	-0.0272560058959	0.35297951904	-0.776394737448	0.381303152198	-1.16427332622	-1.24645195189	-0.949128444714	1.73645826487	0.726264624413	1.88637611852	0.151989312674	2.06187405418	1.41476180569	0.55582132117	-0.624351263456
+X3	1.1647811655	-0.624694695722	-0.959727323908	-0.793964006562	-0.762799687657	0.228637880054	0.574115616205	0.265912772025	0.0811089486813	-0.252703019531	0.482466414129	0.437482658219	-0.190720472561	0.174239237169	0.334968226557	-0.276186508904	-0.048571170699	0.400273469771	0.256380172699	-0.570854764787	0.772719599408	0.204025415358	0.378213376839	0.389076866621	-0.0499399181531	-0.0527919870563	-1.01870977321	-0.0509762802532	1.11700492093	-0.293690603014	-0.907976675281	-0.321035293175	-0.0380166077435	0.46982800732	-0.0700824872008	-0.536481130139	0.0231175009181	0.293302093671	-0.790746399561	-1.25942410821	0.734813800421	-1.40217324553	0.272768378921	-0.989646564	0.313836895559	-0.0710953312162	-1.30526375691	-0.0651109589948	-0.701177665296	-0.327242171223
+X4	1.13000089353	-0.295492738951	-0.28588219819	-0.894313944054	-0.493003250635	0.188994585073	0.142849473684	0.517831362501	-0.897131625743	0.153552778878	0.137582823336	0.135538171151	0.79001691825	0.645345039667	0.57617371919	0.635882339411	0.14951995232	0.0908996306219	0.785311311727	0.36024922676	-0.0138239963564	1.06743928568	0.787067436404	1.72569418691	-0.484739906328	0.116726951105	-1.59462082255	-0.837497247206	-0.19556638667	-0.260254893154	-1.48679273212	-1.04664194627	-1.26228055409	0.444746774169	0.535600110246	-0.63034255189	-0.215021257116	0.368101145927	-0.412598461846	-1.14426652493	0.195103994496	-1.50354864278	0.516731578272	-0.811820395594	1.29161467084	-0.429204198709	-1.5871434852	-0.697075839897	-0.748728422073	-0.498309255418
+X5	1.28341023251	-0.394794554133	1.13874487556	-0.908411557787	-0.175941596659	-0.0253405249772	0.0143739290746	-0.621657076187	-1.0346514614	0.549098537381	-0.478999755844	-0.16201549644	-0.0494926847198	0.00493951746595	1.03518419037	0.327711011096	0.504447831476	-0.53063756932	0.857817657687	1.48347131607	-0.158696772079	2.37901935122	0.120208882063	2.01363475659	0.805450564557	1.31483927204	-2.37252636337	-1.32842428991	1.00407273332	-0.339578461221	-0.65724522256	-1.7639088994	-1.12807258674	0.851831062097	0.00497915886246	-0.83358776063	-0.426896175714	1.02930868042	0.174726779314	-0.484855118747	0.437345490418	-1.37354832615	1.76076479285	-1.4599124935	1.27040184088	-0.798062355365	-2.4591496821	0.621778201413	-0.584479375754	-0.526087935063
+X6	-0.502297827906	-0.0977588490463	0.80717652737	0.298146426175	0.466779776852	-0.331740153902	-0.335383846541	0.605421846202	-0.53184121085	-0.952671094198	-0.362951305695	0.940495879465	-0.344536081629	-0.619863414555	-0.996452124782	1.08126055466	-0.303457604938	-0.437564583864	0.275262981359	0.210721598616	-0.355124443951	0.147380871683	-0.166483896476	0.166427766522	1.04107004928	-0.354766244186	-0.527700153033	-0.174700608033	-0.551811226605	-0.17679133304	-1.56209705704	0.815994999716	-0.215900067602	-0.575448415073	0.315489567138	-0.378178630414	0.490587228973	0.44148561491	-0.381082041535	0.757508349441	0.126555240503	-0.620487363383	0.566221236511	0.0209625282597	0.0622485895083	-0.537806429111	-0.897656754188	0.268881367677	0.287659586768	0.429824752204
+X7	-0.579454392816	-1.20131007394	1.64129446586	0.57573576966	0.336595406374	-0.923962294549	0.420786272924	-0.290576437101	-1.07605980119	-1.7224802822	-1.46651539559	0.816724031835	-0.265413679769	-0.712669439856	-0.747290542393	0.429003593756	0.286534993724	0.391278089119	-0.408674472214	-0.994216129476	0.401219395216	0.430864452465	0.334092093997	0.0980288967593	0.986865351414	-0.307058775036	-0.354371668298	-0.797808750141	-1.0636821284	0.407891412544	-0.824183671023	0.84629236478	-0.0912063822593	-0.802415117039	1.61180300708	-0.553648690795	0.281880118447	0.430177542625	-0.0196892547865	1.52558747313	0.0559079813569	-0.855546395189	0.735066378986	-0.394664410201	-0.453977822877	-0.80601868696	-2.0141139488	0.66889983544	-0.125825030638	0.121843235622
+X8	-0.742217339245	-0.864719908652	2.27771536484	0.602558490678	0.289157896566	-0.264026085099	-0.0555495475382	-0.507995189205	-1.53015199269	-2.27894774	-1.33708736087	0.876975581828	0.2311943479	-1.64719861811	-1.35152453051	-0.0337353560475	0.879612602953	0.175240783563	0.749424327633	-1.14944650295	0.0358603858284	0.869050765563	0.858103320778	0.637144675393	-0.356625326988	-0.0326327765694	-0.866665928932	-0.803502917624	-0.575496707961	1.30264669195	-0.330859414593	0.919910665082	0.175859165189	-0.224105568247	0.569590508764	0.478719547233	0.966918542789	-0.163068821995	0.436243317142	1.06994475344	0.576034252376	0.265596759446	0.485200052678	0.597455007015	-0.353757638872	-0.741446948407	-2.40655770221	1.27597176491	0.449820599091	-0.194654080084
+X9	0.761521621147	-0.0891524331316	0.031608552101	-0.25162926946	-0.439690957592	-0.496794461952	-0.612099140875	0.265117256966	-0.20550407107	-0.177247539494	-0.329828478234	-0.180780802626	0.134993431247	0.339449189089	-0.103781069815	-0.0210711801853	0.0672719847614	0.591249194504	-0.301548639647	-1.41210144196	0.342317678679	0.514492041669	1.19714990821	0.0705993386055	0.908834374187	-0.407233437645	0.653037676863	0.495286967133	0.741556597947	-1.75318924057	-0.685150352833	-1.18464377241	-0.607997765838	-0.00261976808301	-0.0830862922056	-0.143282203079	-0.565367968927	0.852901240297	-0.00222919918747	0.0998173790459	0.360806041988	0.5979015488	-0.631763511521	-0.222138761892	0.141608853809	0.381135909025	0.27851970647	-0.869150660786	0.558254242246	-0.322154049937
+X10	-0.448939597776	0.658733880318	0.45702393249	-0.565509832385	-0.304863394069	-0.913719287301	-1.13518507842	0.151326441493	0.342702020009	-0.348195927145	0.428761819591	0.0492939483253	-0.488019449155	-0.217695491863	-0.0390153339929	0.228638455	0.72870792947	0.200959608739	-0.438497512806	-2.69069280472	-0.595418981454	1.04889180847	0.872399591577	-0.532484087239	-0.182856450283	-1.02099564621	0.0914733886594	0.487934513264	0.748429600249	-1.28314649374	-1.47039248856	-1.60227815411	-0.463511765733	-0.53638197552	-0.040600774852	0.28769936727	-0.846438141136	1.14286087851	0.456018872242	0.612396131118	0.442907621262	1.19538766079	-0.124583505715	0.618484816701	1.13622788853	0.18516850105	1.27070503379	-1.24142443003	-0.323448083211	0.00648980063187
+X11	0.314473057844	-0.162570412173	1.25659799222	0.170214224547	0.400312971028	-0.71316576795	-1.29227012924	0.352592070179	0.465455249211	-0.58566766523	0.140961108746	-1.49277501656	-1.08140229278	0.0968620697778	0.289610961805	0.294490053586	1.89358504963	1.25639183844	-0.0592400293481	-2.49565492377	-0.580001125431	1.86155161098	0.662601597183	-0.809751349811	-1.83375980863	-1.19671722235	0.584022908571	1.41219857407	0.408347859255	-1.7612304913	-1.78492070414	-1.10126082468	0.17331172841	-0.213600407352	-0.34753264092	1.31934262627	-1.21992869434	0.0102598947676	0.753972498438	0.88855104697	-0.0253322879412	0.946586626996	-0.256438556248	0.766403137153	2.25891468569	-0.00946364365059	1.57502107983	-1.25520791875	-0.272768871777	0.441604796178
+X12	0.113559252143	1.17938100078	-0.723692635729	1.02028652484	-0.272040759319	1.3500691044	0.313068641061	-0.630721441838	-0.925819441791	-0.102628073285	0.985174970703	-0.232521846904	-0.298533242969	-0.628667171932	-0.925580154885	0.111882483546	0.333592939654	-0.0504443374709	-0.421812803222	1.30541810676	0.379769934453	0.64730913055	-0.538813969175	0.570113804641	-0.494178038644	-0.947770985068	-0.552929545945	-0.828307708248	1.34584767838	-1.12065038568	-0.2965793783	-0.826590431744	0.476888093831	-0.541678646852	0.279543441342	-1.00714475466	-1.0864235836	-0.951629125032	0.143512121389	-0.294591324235	-0.673682341512	0.749881353476	0.436896766137	-0.922012435696	-0.517842478861	-0.784854059379	0.172018060581	-0.814815571166	0.171356015638	-1.42491692086
+X13	0.323459374461	2.85367303048	-0.434077524514	1.36720147072	-0.164239411742	2.628515363	-0.199417683572	-0.662284270868	-0.520508959194	0.285160084197	0.918662380806	-0.902632298297	0.197116022867	-0.731246577536	-0.480943961545	0.289556150822	0.788922486122	0.0455596114485	-0.53779732046	1.65440612984	1.44866296342	1.00904847517	-0.180651838118	0.354218637003	-0.360621597716	-1.24771127135	-0.0417735993551	-1.32761833141	-0.39703868696	0.15562440729	0.340215494598	-1.41320740027	-0.0835343626907	-1.18228831869	-0.727930437503	-0.908815299328	-1.58007951351	-0.582535475431	-0.119332050534	0.312227509219	-0.973063148168	-0.0167433688761	0.342534231668	-2.28127337559	-0.627994011399	-1.78410318845	0.105661045734	0.096436161489	0.179600519626	-0.817169593774
+X14	-0.106621646069	0.491223275156	0.974427025418	-0.356064426844	0.3198000768	1.07617286258	-0.553639529005	0.519413497243	-1.48816188589	0.0112541538088	0.343573563591	-0.426814104689	0.454602104775	-0.569442180541	-0.191043879191	0.56996168311	-0.0223972832942	-0.555165172057	0.144021921271	0.788331794818	-0.0500615901042	-0.197512697253	0.622071965931	0.742268777418	0.884987344435	0.115323211589	1.17937085122	0.732444399868	-0.557120914337	1.07217466576	-0.497344135457	0.279290482421	0.338342069612	0.203295353557	-0.655853664382	-0.0926705872661	1.00523591624	0.48172211869	0.240724964251	0.875513537125	-0.109772702558	-0.219729481115	1.04068628133	-0.87201960859	0.0360603922503	-0.954098377687	0.230474201388	0.151592715578	-0.432405139308	-0.599610621652
+X15	-0.274375831509	0.53215588767	1.41787224127	-1.21329801245	1.55040371479	0.461129012115	-0.893207712953	-0.084638225315	-2.25296611209	0.814903383405	-0.253303816944	-0.409894872095	1.11637238223	-1.25114295492	-1.05379321883	0.264011297351	0.965292179748	-0.350649069508	0.560848363008	0.926522130649	-0.399177819145	0.025945572376	1.33276215712	0.520444171359	1.78761248125	0.384061531188	1.86582624725	0.623599741658	-1.08939179631	1.99219626407	-0.266197359989	1.30360541026	0.663264330134	-0.029407815727	-0.62436925078	-0.80273072706	2.02282967122	-0.0431443948337	0.144098327435	0.525309853974	-0.635177706158	-0.241547195258	0.856616121344	-0.198453217785	1.38714202461	-0.324112286437	-0.574591416437	-0.412791284982	-0.170584876556	-1.43358609513
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Y_16_100.txt	Wed Nov 05 09:37:19 2025 +0000
@@ -0,0 +1,17 @@
+#	0	1	2	3	4	5	6	7	8	9	10	11	12	13	14	15	16	17	18	19	20	21	22	23	24	25	26	27	28	29	30	31	32	33	34	35	36	37	38	39	40	41	42	43	44	45	46	47	48	49
+Y0	-0.337846643253	-0.507155386109	1.58073589395	-0.198088231425	0.0336866325082	-0.180447977939	0.993752470108	1.3811933442	0.146487168629	-0.696802849541	-0.239352511832	-0.357802778659	0.376662855405	0.342451313155	0.666247817862	0.956773608525	-0.230140478218	0.943540433552	1.61731914619	0.692901520601	-0.402996080515	-0.764581168632	-1.5432677802	-0.164415111344	-1.26431974444	1.06787281844	-0.514334102249	-0.880388551055	0.434372993333	0.475007676433	2.34041799287	-0.712497874661	-1.43504544701	0.437294398928	-0.453094656847	-0.273244712373	-0.059176844561	0.794704797623	0.273604368676	-1.03188516281	-0.858009097577	-0.517536096867	0.345706444611	0.0548470031135	1.22636750644	-1.15749107761	1.14447807844	1.91074727538	-0.355355469077	-0.853360226393
+Y1	0.0524107321696	-1.67419236214	1.06020410209	0.888244291655	-0.811908793417	-1.16086604528	-0.131745054257	0.361187751199	0.578337519889	-1.50764585987	-0.449041972721	-1.69148155553	-1.49248430412	-0.23857102411	-0.0504072278276	2.01250088762	0.645014722007	0.74289325925	0.529367669922	0.878638298836	-0.730175261871	-0.922756586839	-0.873769989216	0.695278869784	-0.832167856689	2.72578832577	-0.715902223027	-0.883422043106	0.567363981996	0.221178505709	2.74134025358	-1.6346456928	-0.876282636248	0.238731852168	1.02477197153	0.579174036868	-1.00853749117	0.997097045949	0.478319278387	-2.18744986963	-0.628258226301	-1.40287578265	1.9379959439	0.438534808237	2.00425077829	-0.634029891251	0.470501467585	0.803075245312	-0.0363499701632	-2.99403311653
+Y2	2.1419966502	0.145473486878	1.15716582272	2.0088794105	-0.669540228634	-0.594851761754	1.16348623227	-0.586689925499	-0.25052853405	-3.23800255127	1.14742250179	-2.34030070711	-1.29407850696	-0.378606837074	-0.368599859817	2.84460245345	-0.00448875265093	0.217976778596	-0.619888718735	0.919971840444	-0.187882660625	-1.06087180006	-2.17469237248	0.565596612822	-0.500102911134	3.91171244244	-0.990203991592	-0.255862239014	0.175221888111	1.35530035044	0.913301240535	-1.42343246865	-1.07444433978	-0.062018336567	0.0396136590787	1.70739943042	-0.408534990634	1.01457456323	-0.441327149644	-1.45043285172	0.0918891062118	0.573452028584	2.55864839095	1.46769950543	3.10781618674	-2.59535807571	1.96551882151	3.09640611563	-0.0524064213214	-3.0420180634
+Y3	0.652770864888	-1.02538157707	-2.4747633425	-0.0264125706417	-1.18617574691	0.0117903220917	0.0430911187335	0.377140729134	0.884906591464	0.376595275226	-0.0019241358049	-1.15234046601	0.354752935629	0.608120311887	0.492920140822	-0.258326166892	0.49953243862	1.70484286598	0.117093701209	0.210561276786	0.919259335681	0.00355745157342	0.341935493736	0.2082805611	-0.396649447625	0.182707650018	-1.31818582821	0.0994921466956	2.04468227563	-1.56125656356	-0.427026538299	-0.630002981102	0.426899434515	0.68074577714	-0.160242495715	-0.369188411129	-0.82424716623	-0.302225517356	0.164240679872	-1.69383591405	1.39735875601	-0.663089109061	-0.331999520586	-0.787579151394	0.794872500087	-0.419794185154	-0.690365771183	-0.836369168073	0.482210785713	-0.544675040113
+Y4	0.632906418431	-1.80335446846	-2.40472246674	-0.66485868961	0.0449811012685	-1.22535077015	-0.383732515467	1.168781001	0.919861650042	-0.250142696493	-0.714136785872	-2.14205212589	1.64685908433	0.924973673465	0.39100832489	1.10933569374	0.0741947600188	1.14027883159	0.0611882959747	2.11638294834	-0.00808724602567	1.11047562854	2.00462538994	1.84191048959	0.0469182170098	0.321773905895	-2.1891792852	-0.546157375058	2.05711346235	-0.831094446564	-1.47110790004	0.133170461738	-0.552339895103	0.604144783056	0.37663785869	0.124941903828	-2.48901249258	0.0664986694375	0.562544309199	-2.78569835143	1.01884164015	-0.367605675567	-1.89408999043	-2.34019498835	3.03328837181	-1.21272874386	-2.37191924556	-1.20918132506	0.41906168507	-0.478851678026
+Y5	0.310477391502	-1.38955777772	-1.00881186171	-0.595457592389	0.174658774448	-1.82689872889	-0.167515442482	-0.631009915312	0.205190014888	0.318650523515	-1.75857643739	-3.04962670724	1.97183234122	0.201330202272	0.45430134206	0.623776303327	0.854339243121	-0.174883447723	1.0844223118	1.43363189508	0.701225060779	2.22785379322	1.70835526958	2.57009486123	1.43184488009	0.93865048102	-3.5654491768	-1.20682876936	3.5194916162	-1.68495112792	-0.0719316006919	-1.45980401682	-0.311757584288	0.705763466099	0.39288610132	-0.535554307274	-2.61037293724	1.37133112942	0.915921854787	-2.50706158172	0.665075201039	0.374994191553	-0.993028712993	-2.84531525908	2.49975688483	-0.509669896601	-3.11792800614	-0.558019420956	0.855351969207	-0.478595414851
+Y6	-0.384442012572	0.15345784354	1.05424216175	-0.0675001710283	0.998627421652	0.442196885573	-1.34328106877	-0.443720900478	-1.15067314306	-0.260074436588	0.00335293277388	1.39684692048	-0.656752091304	-1.2930774608	-0.782407563859	0.729100429338	0.0955101348231	-0.237375917626	1.31605385752	0.316847904483	-0.762158815753	0.0173899433994	-0.458880044607	-0.499846386316	0.794039063284	0.752734498711	0.0596796412875	0.553989444247	-0.248055725524	0.0844400126649	-2.27521243942	1.12919870104	-0.434769047015	-0.809553428004	0.367116204351	-0.735244993425	0.333480069357	-0.147599335315	0.335034946897	0.305282220997	-1.09855754317	-1.52984411588	0.348888040374	-1.20229050994	1.2139549298	-0.934768991545	-0.675821539987	-0.45835201204	0.503463888011	0.993048363713
+Y7	-0.0446878582032	-0.909927466208	2.0935418127	0.956928668343	0.842959547508	-0.0531563502302	-0.868775458104	-2.19964674004	-0.615357047333	-1.29681158125	-0.87516545846	1.93817178282	-0.0459130572666	-1.18276797035	-1.2427437853	-0.557109270259	1.82548927061	0.208272681495	-0.720730866864	-0.422437605571	-0.0961471893298	0.529292858937	-0.244576703329	-0.929340235824	1.18214979248	0.589018652774	0.0179824074028	0.438086947697	-0.652529808739	0.417350821534	-0.7139028516	1.0270169961	-0.307171307461	-0.355238456796	1.67969903886	0.0707061430166	0.414051356645	-1.19530156006	0.1316317251	1.5742008534	0.517631123143	-1.64024460956	0.331847083124	-1.95725612548	1.47013923887	-0.930899863458	-2.28144371501	-0.289616103726	0.648682105746	0.182149199539
+Y8	0.758273256879	-1.178097877	2.35027507727	-0.965126183232	1.07174458917	0.00638374608401	-0.900886314135	-2.59366744762	0.128053647833	-1.34192430955	-1.51232783532	2.71017000307	1.61411408418	-2.93295892754	-1.62222088003	-0.922454901846	3.12868297651	0.7873987856	0.961659249139	-0.579444638374	-0.820034429982	0.296390390421	-0.509057604552	-0.270929145501	-0.698497327323	1.09545570173	-0.968773675004	0.953474646735	-0.324149228335	0.856555906422	-0.206701361504	0.78372044677	-0.974191230616	0.506536108608	0.118612867155	0.917634824398	0.650295869811	-0.456087185722	0.644570862547	0.829291363442	1.2323281404	-0.913367318394	-0.112921111731	-0.68904204031	2.20997565154	-1.9437310162	-1.90343998026	-0.711711004974	0.631999827912	-0.13139875223
+Y9	-0.0747178102692	0.273994267538	0.195535760081	0.630132731655	-1.16459461848	-1.18912586063	-1.24121859665	0.0616359873784	-0.344957338474	-0.29726885729	-0.0531387876719	-0.0923638545501	-0.290637443871	-0.447880896852	-0.154409058419	0.551428052553	0.127329335529	0.370005726808	-0.151152179497	-1.09398964453	-0.104004445248	1.65628423506	0.903289991774	0.304322796968	1.84235226963	-0.315455783751	0.0772671303467	-0.378583439841	1.07760595728	-3.20807140852	-0.77606086352	-1.6520205742	-0.422181586157	-0.154095749972	0.16323005465	-0.720290064199	-1.28114143105	1.32832092744	0.408358509732	0.0952562401983	-0.397655833076	-0.280819017324	-0.625315566993	0.0667869251004	0.167989795055	-0.910963641192	-0.0248365359876	0.103432545806	-0.607496851872	-1.15811378743
+Y10	-0.654889488362	1.01230196615	0.554755443129	0.49311666761	-2.35248598618	-1.73931816157	-2.03046246405	-0.124028866108	-0.235707796576	0.311280301134	0.883891518946	-0.122302828434	-0.225499891661	-0.86508571271	-0.252070302501	0.85953328975	1.30701118353	0.221116333385	-0.254709317294	-2.60521373196	-0.855607266287	2.0649965621	0.766782156718	-0.559095044135	-0.00872592465653	-0.64774418812	-0.558788285208	-1.09252592658	1.83758514983	-1.76301372497	-2.31355185883	-1.45790540268	-0.451740702666	-0.489459447221	0.384448485646	0.248731665618	-1.95439573165	1.11122631965	0.353350745725	0.343752060229	0.931295052995	0.810414162302	0.0502565943814	0.599361737295	1.17864504052	-1.56886914579	1.56345950224	-0.299785257307	-2.77483300828	-0.577035753177
+Y11	0.0878184457108	-0.0819686084119	1.57734301013	0.983429597522	-1.58628651494	-0.845742593	-1.75686389556	-0.566047924754	-0.674984252758	-0.447831786726	1.05572798974	-1.48073349842	-1.63085520442	-2.27983385147	0.0573023167104	1.20121330828	2.18146990702	2.1826650084	-0.822061523424	-2.63072655714	-1.82892521553	2.46914923549	0.191786563878	-0.543224145443	-1.98879038658	-0.594857166482	-0.52599219229	-0.776081910367	1.44888467277	-3.0794942352	-2.5517819637	-0.27007137348	-0.663585747238	0.381046170252	-0.0450660289322	0.837701673557	-2.59248052771	0.353210531312	0.899258479308	0.567456323281	-0.480910530745	-0.198661938315	0.529625698371	1.11757359959	2.24806675848	-1.18289060124	1.36656805413	0.0299786346247	-3.34060524003	0.282380826677
+Y12	-0.23319767185	3.0171356631	-0.434670587059	2.09070312125	-0.228991684717	0.760235309288	-0.655565489856	-1.08852581136	-0.692159470149	0.119486627213	0.694710120541	-0.576714944966	-2.14697133488	-0.0839161416893	-1.18042817724	0.963064197552	0.112813835849	-0.885161503828	-0.712666261786	2.3912253014	0.846182104684	1.25348388891	-0.14015556445	1.21705811084	-0.00298988768365	-1.56250453312	0.157105949644	-1.06368127564	0.881848602261	-1.55216630259	-0.297487630672	-0.796104921934	1.21759289314	-1.42195346457	0.856531844976	-1.17775298293	-1.88332577724	-3.16465617474	-0.0579563507158	-0.385076967615	-0.781503246464	1.20443161918	-0.0678332142473	-1.56673592105	-0.0449897347276	-1.25264667097	-0.268312192642	-1.28009331028	0.660134793258	-2.62166507865
+Y13	-0.40641281338	6.0886366314	-0.250073571419	2.00973144762	1.81150921383	2.69283222351	-1.9684216416	-0.757943835445	-0.436473531876	0.553041641736	1.34749693335	-1.85352667448	-0.776847434165	-0.0336434644068	-1.17055913926	0.647250814719	0.95068468348	-0.932441761382	-2.00377222221	2.9395128668	1.78992974231	1.81376421804	-0.205652422256	1.06438962363	-0.393926618944	-2.41748805659	2.16566605873	-2.01931349954	-1.4498368299	0.933964772756	0.370685920813	-1.81149308396	0.699670877185	-1.98309655083	-0.231702067349	-1.49684285999	-3.26729660133	-1.93757268137	-0.982011460305	0.50890762539	-2.04542035701	-1.06982491112	-0.14487872565	-3.86845645752	-0.195441804348	-3.49967132672	0.0872665232376	-0.286397525802	-0.184927351475	-2.05624410533
+Y14	1.00508379957	1.4207062684	0.538790344917	-0.607701768728	0.719760518532	0.446650463209	-1.68552750396	1.94243185171	-2.56521934933	0.960961354433	0.700133291976	-0.249111507136	0.552621445495	-0.703076647448	-0.761521539282	0.672223766994	0.0215200462194	-0.360791492902	-0.62359153631	1.77572882989	-0.468855830981	0.197626321524	1.00849391833	1.05135601463	0.149351613431	-0.264314986765	2.96908202665	1.30692222117	-0.925527341735	1.13008672422	-1.46229611558	-0.417908625018	0.680151581225	0.184615046777	-0.943934530742	0.0532512625015	1.71907330996	0.700617841568	0.331237702961	1.47273843988	0.935809526131	-1.30460510546	1.74243783627	-1.14910210905	0.140840375592	-0.981304957742	0.765602102163	0.315132069799	-0.674990473019	-0.110427233042
+Y15	1.44407222044	1.18200051372	1.14650291218	-1.06996739814	2.80536739731	-1.37048538356	-2.95090015399	-0.0875117946519	-3.99024590093	2.15360053758	-0.000911936147384	0.0246779317739	1.04446452834	-1.911699229	-1.92835398157	0.703008765889	0.946688883762	-0.738233857903	-0.0542586677157	2.14790304381	-0.401375063451	0.513414446318	1.59479518746	-0.490221407731	0.740819382249	1.5362091278	3.49680736279	0.241079400173	-2.27592026887	2.63583679579	-0.693066233594	1.03827124206	1.68742936182	0.105203356704	-1.73146550327	-0.110484012302	3.13285722128	0.0778242004691	-0.279255526414	0.835863889311	-0.0899378011321	-1.65239430768	0.901637267127	0.366379588989	1.74417428619	0.0220378931169	-0.345091486752	0.790267562459	-0.763442284519	-1.81568334005
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/all_associations.tsv	Wed Nov 05 09:37:19 2025 +0000
@@ -0,0 +1,257 @@
+X_features	Y_features	association	p-values	q-values
+X0	Y0	0.75875150060024	1.72514752935411e-10	7.360629458577536e-09
+X0	Y1	0.47515006002400956	0.0004888172137947008	0.0039105377103576065
+X0	Y2	0.16398559423769507	0.2551419349962815	0.6597609632227077
+X0	Y3	0.12921968787515006	0.37112486503493036	0.7897491914951426
+X0	Y4	0.18136854741896757	0.2074830356872076	0.5711360982357543
+X0	Y5	0.18021608643457382	0.21043410218481773	0.5724099195863718
+X0	Y6	-0.03279711884753902	0.8211191874364518	0.9721674283495674
+X0	Y7	-0.25330132052821125	0.07591776313339742	0.2858080494433785
+X0	Y8	0.0052340936374549825	0.9712227578351469	0.9750314745325396
+X0	Y9	-0.06948379351740695	0.6315987410557464	0.9362240451170357
+X0	Y10	-0.12864345738295319	0.37327989129262595	0.7897491914951426
+X0	Y11	0.018103241296518604	0.9006963927911024	0.9721674283495674
+X0	Y12	-0.3153421368547419	0.025703636157753368	0.13428838482418087
+X0	Y13	-0.12432172869147658	0.3896805398051253	0.8110424243098543
+X0	Y14	-0.2053781512605042	0.15248320921458566	0.4703096573365534
+X0	Y15	-0.19241296518607443	0.18066815479989504	0.5255800866906037
+X1	Y0	0.48600240096038416	0.00034616222922012244	0.002953917689345045
+X1	Y1	0.617671068427371	1.76616740825935e-06	3.229563260817097e-05
+X1	Y2	0.25032412965186074	0.07954656945356582	0.2951293011610558
+X1	Y3	0.2844177671068427	0.0453037212343839	0.19329587726670464
+X1	Y4	0.23755102040816325	0.09668797802947016	0.3486214419090755
+X1	Y5	0.28297719087635054	0.04645373054759285	0.19495336098661917
+X1	Y6	-0.0811044417767107	0.5755384891432878	0.9094929211153189
+X1	Y7	-0.09656662665066026	0.5046953555630573	0.89287834235078
+X1	Y8	-0.049219687875150055	0.7342792173788053	0.9652446357780742
+X1	Y9	0.15034813925570228	0.29733245851279005	0.7180859375403231
+X1	Y10	0.058439375750300115	0.6868585612891065	0.9402983512834827
+X1	Y11	0.20422569027611043	0.15484868543635927	0.47191980323461874
+X1	Y12	0.007923169267707083	0.9564499314163795	0.9721674283495674
+X1	Y13	-0.03683073229291716	0.7995483749133704	0.9721674283495674
+X1	Y14	-0.25896758703481393	0.06937352960893627	0.2683553978062863
+X1	Y15	-0.22103241296518605	0.12293935979895934	0.4196330147804479
+X2	Y0	0.5216326530612244	0.00010246825721050404	0.0009715508831810754
+X2	Y1	0.5581272509003601	2.5376617182070332e-05	0.0003093530475528574
+X2	Y2	0.5347899159663866	6.31067363179008e-05	0.0006213586345147156
+X2	Y3	0.11087635054021608	0.4433477830200857	0.8784310665023163
+X2	Y4	0.06439375750300119	0.6568419236628033	0.9362240451170357
+X2	Y5	0.1221128451380552	0.39822437393950594	0.8167068460754802
+X2	Y6	-0.019927971188475387	0.8907450376619869	0.9721674283495674
+X2	Y7	-0.07015606242496998	0.6282948246159519	0.9362240451170357
+X2	Y8	0.016086434573829533	0.9117128093624183	0.9721674283495674
+X2	Y9	0.07611044417767106	0.5993517372477798	0.9201838754859198
+X2	Y10	0.019543817527010805	0.8928387273266257	0.9721674283495674
+X2	Y11	0.16840336134453782	0.24238553640911492	0.6331703808238104
+X2	Y12	0.029531812725090034	0.8386785296382457	0.9721674283495674
+X2	Y13	0.07918367346938776	0.5846461351085562	0.9182172428698797
+X2	Y14	-0.0875390156062425	0.5455109665291389	0.9055782102048121
+X2	Y15	-0.030684273709483793	0.8324717662389532	0.9721674283495674
+X3	Y0	0.04816326530612245	0.7397800145409038	0.9652446357780742
+X3	Y1	0.03423769507803121	0.8133993948322712	0.9721674283495674
+X3	Y2	0.011956782713085232	0.9343193556460773	0.9721674283495674
+X3	Y3	0.6365906362545017	6.719077139251794e-07	1.5637124978622357e-05
+X3	Y4	0.4326050420168067	0.0017033314014406689	0.013213722386933673
+X3	Y5	0.34232893157262906	0.01495656533199683	0.08733275112189287
+X3	Y6	-0.12777911164465786	0.3765264623849276	0.790088314512635
+X3	Y7	-0.0739015606242497	0.6100205018611946	0.9289977191756884
+X3	Y8	0.058439375750300115	0.6868585612891065	0.9402983512834827
+X3	Y9	0.10127250900360144	0.484055476875917	0.89287834235078
+X3	Y10	0.036350540216086434	0.8021089117393997	0.9721674283495674
+X3	Y11	0.009267707082833133	0.9490686391608111	0.9721674283495674
+X3	Y12	-0.05690276110444177	0.6946853683372958	0.9459545441188708
+X3	Y13	-0.1870348139255702	0.193396441571529	0.5501054338034602
+X3	Y14	-0.0319327731092437	0.8257591788134113	0.9721674283495674
+X3	Y15	-0.18933973589435774	0.1878655489621013	0.5403773093741341
+X4	Y0	0.2188235294117647	0.12682320195311292	0.42164597012982996
+X4	Y1	0.1837695078031212	0.201428637084075	0.560497077103513
+X4	Y2	0.050372148859543824	0.72829338043481	0.9652446357780742
+X4	Y3	0.4774549819927971	0.000454705175244094	0.003754984672983486
+X4	Y4	0.6003841536614647	4.047211500800886e-06	6.0946243776766286e-05
+X4	Y5	0.5488115246098438	3.680468569216655e-05	0.00040920481060950745
+X4	Y6	0.058439375750300115	0.6868585612891065	0.9402983512834827
+X4	Y7	-0.06410564225690277	0.6582825317229157	0.9362240451170357
+X4	Y8	0.11759903961584633	0.41601952687275945	0.8385905423576884
+X4	Y9	0.21603841536614646	0.13185115181435014	0.4327422418522261
+X4	Y10	0.14362545018007203	0.319702499972949	0.7287351914476291
+X4	Y11	0.09301320528211285	0.5205728942864309	0.89287834235078
+X4	Y12	0.046242496998799516	0.7498143857365436	0.965879140026472
+X4	Y13	0.02578631452581032	0.8589158319594372	0.9721674283495674
+X4	Y14	0.15169267707082834	0.2929831694699452	0.7143208703267235
+X4	Y15	0.044801920768307316	0.7573672666662519	0.9658918616511323
+X5	Y0	0.28941176470588237	0.04149558816030004	0.18315294084546224
+X5	Y1	0.34136854741896755	0.015259550598312353	0.08733275112189287
+X5	Y2	0.21930372148859542	0.12597112130797786	0.42164597012982996
+X5	Y3	0.3093877551020408	0.028792145390705015	0.14174594653885547
+X5	Y4	0.423577430972389	0.002175949619359769	0.01638362066341473
+X5	Y5	0.6344777911164465	7.509070316040548e-07	1.601935000755317e-05
+X5	Y6	0.20854741896758705	0.14611558282783543	0.46179739757933175
+X5	Y7	0.12115246098439375	0.40197290080277537	0.8167068460754802
+X5	Y8	0.22429771908763504	0.11736370668289964	0.4060149852813825
+X5	Y9	0.2936374549819928	0.03848203984144792	0.17591789641804764
+X5	Y10	0.1440096038415366	0.3183962247026041	0.7287351914476291
+X5	Y11	0.1481392557022809	0.30456797868581803	0.7219389124404576
+X5	Y12	0.11625450180072029	0.42140673764265	0.8428134752853
+X5	Y13	0.0631452581032413	0.6630934130766521	0.9378558770586903
+X5	Y14	0.14612244897959184	0.3112723254205143	0.7274122424051126
+X5	Y15	0.15428571428571428	0.28471262168267547	0.700831068757355
+X6	Y0	-0.07591836734693877	0.600276200024018	0.9201838754859198
+X6	Y1	-0.016086434573829533	0.9117128093624183	0.9721674283495674
+X6	Y2	-0.047587034813925566	0.7427859111260962	0.9652446357780742
+X6	Y3	-0.3897719087635054	0.005142168425721108	0.035578246404989286
+X6	Y4	-0.09858343337334932	0.49579507689543834	0.89287834235078
+X6	Y5	-0.08926770708283314	0.5375741872301489	0.9053881048086719
+X6	Y6	0.658967587034814	1.9620674268808152e-07	5.580991792016541e-06
+X6	Y7	0.5113565426170468	0.0001476013344562298	0.0013494979150283867
+X6	Y8	0.2914285714285714	0.04003401760867912	0.17980190364599744
+X6	Y9	0.13584633853541417	0.34688260880067645	0.758991007290369
+X6	Y10	0.026938775510204082	0.8526787765291988	0.9721674283495674
+X6	Y11	-0.010996398559423769	0.939584707357646	0.9721674283495674
+X6	Y12	-0.007827130852340937	0.9569773122816054	0.9721674283495674
+X6	Y13	0.011188475390156062	0.9385314251981256	0.9721674283495674
+X6	Y14	0.2952701080432173	0.037367034593432956	0.17392656101670612
+X6	Y15	0.2781752701080432	0.050460057720261894	0.2083512060707588
+X7	Y0	-0.08206482593037215	0.5710091453885507	0.9094929211153189
+X7	Y1	0.06439375750300119	0.6568419236628033	0.9362240451170357
+X7	Y2	-0.022521008403361343	0.8766326204036272	0.9721674283495674
+X7	Y3	-0.3130372148859543	0.026864553940853367	0.13754651617716923
+X7	Y4	-0.10031212484993997	0.48823135315468136	0.89287834235078
+X7	Y5	-0.018679471788715485	0.8975521529759432	0.9721674283495674
+X7	Y6	0.38458583433373345	0.005822997523328516	0.03922861489400263
+X7	Y7	0.6298679471788714	9.54257980255342e-07	1.8791541765028276e-05
+X7	Y8	0.3274429771908764	0.020275784533717076	0.11043831575811854
+X7	Y9	0.22833133253301321	0.110744010469311	0.39375648166866134
+X7	Y10	0.03788715486194477	0.7939225693820167	0.9721674283495674
+X7	Y11	0.08533013205282113	0.555733612976814	0.9055782102048121
+X7	Y12	-0.09051620648259305	0.5318772216660681	0.9017256208378374
+X7	Y13	-0.01637454981992797	0.9101379804213003	0.9721674283495674
+X7	Y14	0.04605042016806723	0.7508201127549529	0.965879140026472
+X7	Y15	0.14852340936374547	0.3033015660921892	0.7219389124404576
+X8	Y0	-0.053829531812725095	0.710433184072419	0.9622798683732235
+X8	Y1	0.022713085234093634	0.8755887106099169	0.9721674283495674
+X8	Y2	0.0059063625450180065	0.9675284624934393	0.9750314745325396
+X8	Y3	-0.3438655462184874	0.014482463957784701	0.08733275112189287
+X8	Y4	-0.16264105642256904	0.25911240574436784	0.6633277587055817
+X8	Y5	-0.04912364945978391	0.7347787492963292	0.9652446357780742
+X8	Y6	0.2693397358943577	0.058561928734627115	0.2379659326359451
+X8	Y7	0.5477551020408163	3.836295099464132e-05	0.00040920481060950745
+X8	Y8	0.5444897959183673	4.357065346376845e-05	0.00044616349146898895
+X8	Y9	0.06535414165666266	0.6520488346379696	0.9362240451170357
+X8	Y10	0.05939975990396158	0.6819832009828577	0.9402983512834827
+X8	Y11	0.10405762304921969	0.4720522833421028	0.89287834235078
+X8	Y12	-0.13815126050420168	0.3386848196399863	0.7474423605847974
+X8	Y13	-0.09522208883553422	0.5106738528670567	0.89287834235078
+X8	Y14	0.01474189675870348	0.9190663559060632	0.9721674283495674
+X8	Y15	0.2053781512605042	0.15248320921458566	0.4703096573365534
+X9	Y0	-0.29795918367346935	0.03558866945339982	0.16871665518648804
+X9	Y1	-0.10472989195678271	0.46917895013644895	0.89287834235078
+X9	Y2	-0.14093637454981991	0.32894129283283746	0.7386751839053192
+X9	Y3	0.31159663865546217	0.02761214625361757	0.1386021459005117
+X9	Y4	0.34108043217286915	0.01535146015814523	0.08733275112189287
+X9	Y5	0.3573109243697478	0.010853781444687634	0.0677699524351228
+X9	Y6	-0.16129651860744296	0.2631241136253761	0.6669284464167948
+X9	Y7	-0.042785114045618244	0.7679789549507469	0.9721674283495674
+X9	Y8	-0.0642016806722689	0.6578021921982877	0.9362240451170357
+X9	Y9	0.5736854741896759	1.3295290991226755e-05	0.0001791365523028447
+X9	Y10	0.4033133253301321	0.003682058628057464	0.026931628822363163
+X9	Y11	0.24456182472989194	0.08695681881029092	0.3180135087919211
+X9	Y12	0.12182472989195677	0.3993467848954375	0.8167068460754802
+X9	Y13	-0.08523409363745497	0.5561801214073102	0.9055782102048121
+X9	Y14	0.027611044417767107	0.8490445839756111	0.9721674283495674
+X9	Y15	-0.13373349339735893	0.3545037109990422	0.7690927967436848
+X10	Y0	-0.1859783913565426	0.1959697600379351	0.5512995447221031
+X10	Y1	-0.03279711884753902	0.8211191874364518	0.9721674283495674
+X10	Y2	0.003793517406962785	0.9791410203209916	0.9791410203209916
+X10	Y3	-0.007923169267707083	0.9564499314163795	0.9721674283495674
+X10	Y4	0.05104441776710684	0.7248090119713184	0.9652446357780742
+X10	Y5	0.05219687875150059	0.7188486638832161	0.9652446357780742
+X10	Y6	-0.031644657863145256	0.8273071614491647	0.9721674283495674
+X10	Y7	-0.07764705882352942	0.5919786363501149	0.9201838754859198
+X10	Y8	-0.006002400960384154	0.9670007593072917	0.9750314745325396
+X10	Y9	0.5509243697478992	3.386121700106208e-05	0.0003940214341941769
+X10	Y10	0.7914045618247298	7.86285925543876e-12	4.025783938784645e-10
+X10	Y11	0.6383193277310925	6.131102596284225e-07	1.5637124978622357e-05
+X10	Y12	0.09762304921968785	0.5000231591324141	0.89287834235078
+X10	Y13	-0.08696278511404561	0.5481690113286254	0.9055782102048121
+X10	Y14	0.03788715486194477	0.7939225693820167	0.9721674283495674
+X10	Y15	-0.09675870348139255	0.5038442110912843	0.89287834235078
+X11	Y0	-0.10857142857142857	0.4529410186652568	0.8784310665023163
+X11	Y1	0.04460984393757503	0.7583760319995219	0.9658918616511323
+X11	Y2	0.025402160864345734	0.8609967659831831	0.9721674283495674
+X11	Y3	0.09608643457382952	0.506826423331874	0.89287834235078
+X11	Y4	0.09243697478991596	0.5231709037211602	0.89287834235078
+X11	Y5	-0.030396158463385354	0.8340225246421045	0.9721674283495674
+X11	Y6	-0.03654261704681872	0.8010844484336721	0.9721674283495674
+X11	Y7	0.027515006002400956	0.8495635659967954	0.9721674283495674
+X11	Y8	0.08408163265306122	0.5615513980361977	0.9055782102048121
+X11	Y9	0.38141656662665063	0.006276709537340188	0.041200965168181745
+X11	Y10	0.5591836734693878	2.4311730356742656e-05	0.0003093530475528574
+X11	Y11	0.707563025210084	9.179617456384299e-09	3.357117241191972e-07
+X11	Y12	0.06535414165666266	0.6520488346379696	0.9362240451170357
+X11	Y13	-0.008883553421368545	0.9511771749067409	0.9721674283495674
+X11	Y14	0.00849939975990396	0.9532860417065241	0.9721674283495674
+X11	Y15	-0.07217286914765905	0.6184264631612335	0.9312774974663282
+X12	Y0	-0.100984393757503	0.4853062666447391	0.89287834235078
+X12	Y1	-0.00936374549819928	0.9485415586230678	0.9721674283495674
+X12	Y2	0.08148859543817527	0.5737247800932865	0.9094929211153189
+X12	Y3	0.19452581032412963	0.1758363595790261	0.5174035408302378
+X12	Y4	0.09291716686674668	0.5210054483879641	0.89287834235078
+X12	Y5	0.17944777911164464	0.21241774359650514	0.5724099195863718
+X12	Y6	0.008403361344537815	0.9538133084615882	0.9721674283495674
+X12	Y7	-0.06237695078031212	0.6669518412899765	0.9381300624738131
+X12	Y8	-0.22641056422569028	0.11385971662902707	0.3992888692743963
+X12	Y9	0.2599279711884754	0.06831019413388993	0.2683553978062863
+X12	Y10	0.21363745498199277	0.1363043866361783	0.44169522758052715
+X12	Y11	0.13248499399759903	0.3590548333678273	0.7724204818669226
+X12	Y12	0.8511404561824729	4.909031566216111e-15	1.2567120809513244e-12
+X12	Y13	0.613829531812725	2.132634134808232e-06	3.639695590072716e-05
+X12	Y14	0.027130852340936373	0.8516401233148823	0.9721674283495674
+X12	Y15	-0.15447779111644658	0.284106135016625	0.700831068757355
+X13	Y0	0.021464585834333732	0.8823777930570347	0.9721674283495674
+X13	Y1	0.037695078031212484	0.7949446802314588	0.9721674283495674
+X13	Y2	0.16024009603841535	0.26630514051685594	0.6683736860030894
+X13	Y3	0.033277310924369745	0.8185440202827372	0.9721674283495674
+X13	Y4	-0.01983193277310924	0.8912683914876222	0.9721674283495674
+X13	Y5	0.09301320528211285	0.5205728942864309	0.89287834235078
+X13	Y6	-0.020984393757503002	0.8849912355548428	0.9721674283495674
+X13	Y7	-0.0480672268907563	0.7402807314813461	0.9652446357780742
+X13	Y8	-0.19577430972388954	0.17302544682865223	0.5150524928852903
+X13	Y9	0.2123889555822329	0.13866403405411995	0.44372490897318384
+X13	Y10	0.09570228091236495	0.5085345686643505	0.89287834235078
+X13	Y11	0.06496998799519808	0.6539644141900509	0.9362240451170357
+X13	Y12	0.6599279711884753	1.8568284591140184e-07	5.580991792016541e-06
+X13	Y13	0.8408643457382954	2.156474207888227e-14	2.7602869860969305e-12
+X13	Y14	0.2664585834333733	0.0614192709590851	0.2456770838363404
+X13	Y15	0.06064825930372149	0.6756644275853207	0.9402983512834827
+X14	Y0	0.013493397358943579	0.9259006695282543	0.9721674283495674
+X14	Y1	-0.09330132052821127	0.5192763079677907	0.89287834235078
+X14	Y2	-0.01474189675870348	0.9190663559060632	0.9721674283495674
+X14	Y3	-0.33262905162064826	0.01826535260747438	0.10165065798942263
+X14	Y4	-0.19865546218487393	0.16666315799390435	0.5019502170169354
+X14	Y5	-0.16945978391356542	0.23940062178526056	0.6318201977013063
+X14	Y6	0.3897719087635054	0.005142168425721108	0.035578246404989286
+X14	Y7	0.14304921968787515	0.32166826809993004	0.7287351914476291
+X14	Y8	0.07668667466986795	0.596582104144015	0.9201838754859198
+X14	Y9	0.03270108043217287	0.8216344458929444	0.9721674283495674
+X14	Y10	-0.07322929171668667	0.6132836505495756	0.9289977191756884
+X14	Y11	-0.10252100840336134	0.47865500858742305	0.89287834235078
+X14	Y12	0.08388955582232892	0.562448966494395	0.9055782102048121
+X14	Y13	0.3611524609843937	0.009973228313657927	0.06382866120741074
+X14	Y14	0.8145498199279712	6.190766208304214e-13	3.962090373314697e-11
+X14	Y15	0.6108523409363745	2.463965245567874e-06	3.942344392908598e-05
+X15	Y0	-0.08552220888355341	0.5548411048111002	0.9055782102048121
+X15	Y1	-0.13959183673469386	0.3336228844020168	0.7426735513644896
+X15	Y2	-0.17522208883553422	0.22356156432386157	0.5961641715302975
+X15	Y3	-0.28720288115246095	0.04314625840911929	0.18721088394465318
+X15	Y4	-0.10857142857142857	0.4529410186652568	0.8784310665023163
+X15	Y5	0.013781512605042016	0.9243230321819229	0.9721674283495674
+X15	Y6	0.4925330132052821	0.0002796851002218539	0.002468944332992917
+X15	Y7	0.3160144057623049	0.025373057905983053	0.13428838482418087
+X15	Y8	0.3040096038415366	0.031841927161772914	0.1538025161021484
+X15	Y9	-0.019927971188475387	0.8907450376619869	0.9721674283495674
+X15	Y10	-0.10953181272509004	0.4489301126849483	0.8784310665023163
+X15	Y11	-0.14573829531812724	0.3125599479084468	0.7274122424051126
+X15	Y12	0.066890756302521	0.6444088265071675	0.9362240451170357
+X15	Y13	0.2581992797118847	0.070233639269614	0.2683553978062863
+X15	Y14	0.580984393757503	9.70508662861962e-06	0.0001380278987181457
+X15	Y15	0.8258823529411765	1.5622528336072545e-13	1.3331224180115239e-11
Binary file test-data/association_1.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/sig_clusters.tsv	Wed Nov 05 09:37:19 2025 +0000
@@ -0,0 +1,19 @@
+cluster_rank	cluster_X	cluster_Y	best_adjusted_pvalue
+1	X12;X13	Y12;Y13	1.2567120809513244e-12
+2	X14;X15	Y14;Y15	1.3331224180115239e-11
+3	X10;X11	Y9;Y10;Y11	4.025783938784645e-10
+4	X0;X1;X2	Y0	7.360629458577536e-09
+5	X6	Y6	5.580991792016541e-06
+6	X3	Y3	1.5637124978622357e-05
+7	X4;X5	Y4;Y5	1.601935000755317e-05
+8	X6;X7;X8	Y7	1.8791541765028276e-05
+9	X0;X1;X2	Y1	3.229563260817097e-05
+10	X9	Y9	0.0001791365523028447
+11	X8	Y8	0.00044616349146898895
+12	X2	Y2	0.0006213586345147156
+13	X14;X15	Y6	0.002468944332992917
+14	X4	Y3	0.003754984672983486
+15	X3	Y4	0.013213722386933673
+16	X9	Y10	0.026931628822363163
+17	X6	Y3	0.035578246404989286
+18	X7	Y6	0.03922861489400263