<#2051 Add test data for custom/clustering, cluste...
# test-data
g
#2051 Add test data for custom/clustering, clustermetrics and clustervisualization Pull request opened by dbaku42 Description Adds the test files required by the new
custom/clustering
,
custom/clustermetrics
and
custom/clustervisualization
modules (see nf-core/modules#11372). Files added under:
data/genomics/homo_sapiens/popgen/clustering/
Will be referenced in the modules tests as: file(params.modules_testdata_base_path + 'genomics/homo_sapiens/popgen/clustering/test.eigenvec', checkIfExists: true) nf-core/test-datasets
Review on #2051 Add test data for custom/clustering, clustermetrics and clustervisualization Reviewed and changes requested by pinin4fjords on dbaku42's pull request Thanks for opening this @Donald Baku. AI-assisted review (Claude, on behalf of @pinin4fjords). A few things to address before this can land: Scope and description The PR description only mentions
data/genomics/homo_sapiens/popgen/clustering/
, but the diff also adds
1000g_phase3_plink2_pca/
and
1000g_phase3_small/
as fresh top-level subdirectories under
homo_sapiens/
. Please update the description to enumerate all three locations and link each to the specific module(s) the test data supports. Path organisation
homo_sapiens/popgen/
already hosts PLINK content (
plink_simulated.*
,
1000GP.chr*
etc.). Adding
1000g_phase3_plink2_pca/
as a sibling of
popgen/
rather than nesting it inside puts PLINK test data in two parallel locations. Suggest moving it under
popgen/
(e.g.
popgen/1000g_phase3/
or
popgen/plink2_pca/
) so the sibling sub-tree style with
popgen/clustering/
stays consistent. Path reference in description
params.modules_testdata_base_path + '/data/genomics/...'
would resolve to a double
/data/data/
. The base path already ends in
data/
. The modules PR should use: file(params.modules_testdata_base_path + 'genomics/homo_sapiens/popgen/clustering/test.eigenvec', checkIfExists: true) Documentation • Add a paragraph + file line to the main
README.md
of the
modules
branch describing the new content. This is the consistent ask in recent merged PRs (#2031, #2044). • Add provenance docs for the new files. The branch README requires "a short description about how this file was generated [...] either in this description or in the respective subfolder." The existing
popgen/README.md
documents data generation via `plink --simulate ...`; the new files need equivalent (e.g. for the VCF, where it was subsetted from + the bcftools/plink command; for the eigenvec / clusters / features, either generate them from the existing simulated PLINK data with
plink --pca
for reproducibility, or document that they're hand-rolled minimal examples). Optional The
popgen/clustering/
test files are hand-rolled floats. Technically valid (PR #2049: "only technical validity matters, not biological interpretation"), but a few-row eigenvec generated by
plink --pca
on the existing
popgen/plink_simulated.*
data would be reproducible from documented commands and slot in naturally with the existing simulated PLINK content. Not blocking; just more in keeping with the directory's conventions. nf-core/test-datasets
Review on #2051 Add test data for custom/clustering, clustermetrics and clustervisualization Reviewed and changes requested by pinin4fjords on dbaku42's pull request Thanks for taking the
plink_simulated
-derived suggestion - that was our optional suggestion and going for it is the right instinct, but the new files have format issues that break the consuming modules. The hand-rolled files we approved in the previous round were format-correct; the regeneration introduced regressions worth fixing before this lands. Three problems: 1.
test.eigenvec
is now in pandas
to_csv()
default format (CSV with an extra row-index column and a numeric column header), not PLINK eigenvec format. The
custom/clustering
module parses with
pd.read_csv(sep=r"\\s+")
expecting the
#FID IID PC1 ...
whitespace-separated header that PLINK actually emits. 2.
test_clusters.csv
and
test_features.tsv
use
IID
as the sample-id column. The
custom/clustermetrics
and
custom/clustervisualization
modules require
sample_id
(this is the simplification we made in the modules PR — they no longer defensively re-parse PLINK headers, just check for
sample_id
). Both modules would error with
ValueError: features/clusters file must have a 'sample_id' column. Found: ['IID', ...]
. 3.
README.md
is out of date - still says "first 6 samples" and "hand-rolled minimal examples", neither of which is true any more (files are now 200-row PLINK-derived). Inline comments on each. nf-core/test-datasets
Review on #2051 Add test data for custom/clustering, clustermetrics and clustervisualization Review approved by pinin4fjords on dbaku42's pull request Round-2 blockers all addressed — eigenvec is in real PLINK format, both companion files use
sample_id
, and the subdir README now matches the regenerated data. Approving. One small follow-up: the main
README.md
entry still describes the files as "hand-rolled minimal examples", which is stale now that they're derived from
popgen/plink_simulated
. Inline suggestion below — feel free to take it or rephrase as you like. nf-core/test-datasets