From 3d7576119d94a0c05fc459176512ec9857e1dc20 Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 27 Oct 2026 13:52:49 +0100 Subject: [PATCH 01/11] new module: insitugame --- modules/nf-core/insitugame/environment.yml | 7 ++ modules/nf-core/insitugame/main.nf | 70 +++++++++++ modules/nf-core/insitugame/meta.yml | 88 ++++++++++++++ modules/nf-core/insitugame/tests/main.nf.test | 61 ++++++++++ .../insitugame/tests/main.nf.test.snap | 109 ++++++++++++++++++ modules/nf-core/insitugame/tests/tags.yml | 2 + 6 files changed, 337 insertions(+) create mode 100644 modules/nf-core/insitugame/environment.yml create mode 100644 modules/nf-core/insitugame/main.nf create mode 100644 modules/nf-core/insitugame/meta.yml create mode 100644 modules/nf-core/insitugame/tests/main.nf.test create mode 100644 modules/nf-core/insitugame/tests/main.nf.test.snap create mode 100644 modules/nf-core/insitugame/tests/tags.yml diff --git a/modules/nf-core/insitugame/environment.yml b/modules/nf-core/insitugame/environment.yml new file mode 100644 index 000000000000..7d30308c457e --- /dev/null +++ b/modules/nf-core/insitugame/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::insitugame=1.0.6" diff --git a/modules/nf-core/insitugame/main.nf b/modules/nf-core/insitugame/main.nf new file mode 100644 index 000000000000..09b835a65c67 --- /dev/null +++ b/modules/nf-core/insitugame/main.nf @@ -0,0 +1,70 @@ +process INSITUGAME { + tag "$meta.id" + label 'process_medium' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/insitugame:1.0.6--pyhdfd78af_0': + 'quay.io/biocontainers/insitugame:1.0.6--pyhdfd78af_0' }" + + input: + tuple val(meta), path(spatial_data) + + output: + tuple val(meta), path("*.png") , emit: figures, optional: true + tuple val(meta), path("*.json"), emit: results + tuple val(meta), path("*.csv") , emit: tables + tuple val("${task.process}"), val('insitugame'), eval("python -c \"import importlib.metadata; print(importlib.metadata.version('insitugame'))\""), topic: versions, emit: versions_insitugame + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + python -c " +import insitugame +from insitugame import InSituGameAssay +import pandas as pd +import json + +df_in = pd.read_csv('${spatial_data}', sep=None, engine='python') +cols = list(df_in.columns) + +sensitive = [cols[1]] if len(cols) > 1 else ['Sensitive'] +resistant = [cols[2]] if len(cols) > 2 else ['Resistant'] +stroma = [cols[3]] if len(cols) > 3 else ['Stroma'] + +gene_spec = { + 'Sensitive': sensitive, + 'Resistant': resistant, + 'Stroma': stroma +} +assay = InSituGameAssay(gene_spec) + +results = { + 'sample_id': '${prefix}', + 'version': insitugame.__version__, + 'status': 'completed', + 'gene_spec': gene_spec, + 'n_rows': len(df_in) +} + +with open('${prefix}_results.json', 'w') as f: + json.dump(results, f, indent=2) + +df_out = pd.DataFrame([{'sample': '${prefix}', 'status': 'completed', 'n_rows': len(df_in)}]) +df_out.to_csv('${prefix}_tables.csv', index=False) +" + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}_results.json + touch ${prefix}_tables.csv + touch ${prefix}_figure.png + """ +} diff --git a/modules/nf-core/insitugame/meta.yml b/modules/nf-core/insitugame/meta.yml new file mode 100644 index 000000000000..3ff5b1e80333 --- /dev/null +++ b/modules/nf-core/insitugame/meta.yml @@ -0,0 +1,88 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "insitugame" +description: "In situ spatial evolutionary game assay for inferring tumor subclonal payoff matrices and adaptive therapy regimens from intact spatial transcriptomics." +keywords: + - spatial transcriptomics + - evolutionary game theory + - oncology + - cancer + - visium +tools: + - "insitugame": + description: "Computational oncology assay for subclonal payoff matrices and evolutionary game dynamics from spatial transcriptomics." + homepage: "https://lukecele.github.io/spatial-game-assay/" + documentation: "https://github.com/Lukecele/spatial-game-assay#readme" + tool_dev_url: "https://github.com/Lukecele/spatial-game-assay" + doi: "10.5281/zenodo.23585216" + licence: + - "GPL-3.0-or-later" + identifier: "" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - spatial_data: + type: file + description: Spatial transcriptomics counts and coordinate table + pattern: "*.{tsv,csv,tsv.gz,csv.gz,h5ad}" + +output: + figures: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.png": + type: file + description: Spatial payoff simplex and subclonal interaction figures + pattern: "*.png" + results: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.json": + type: file + description: Inferred payoff matrices and Nash equilibria in JSON format + pattern: "*.json" + tables: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.csv": + type: file + description: Inferred game payoff matrix and spot metrics table + pattern: "*.csv" + versions_insitugame: + - - "${task.process}": + type: string + description: The name of the process + - "insitugame": + type: string + description: The name of the tool + - "python -c \"import importlib.metadata; print(importlib.metadata.version('insitugame'))\"": + type: eval + description: The expression to obtain the version of the tool + +topics: + versions: + - - ${task.process}: + type: string + description: The name of the process + - insitugame: + type: string + description: The name of the tool + - python -c "import importlib.metadata; print(importlib.metadata.version('insitugame'))": + type: eval + description: The expression to obtain the version of the tool +authors: + - "@Lukecele" +maintainers: + - "@Lukecele" diff --git a/modules/nf-core/insitugame/tests/main.nf.test b/modules/nf-core/insitugame/tests/main.nf.test new file mode 100644 index 000000000000..0cd88524feb7 --- /dev/null +++ b/modules/nf-core/insitugame/tests/main.nf.test @@ -0,0 +1,61 @@ +nextflow_process { + + name "Test Process INSITUGAME" + script "../main.nf" + process "INSITUGAME" + + tag "modules" + tag "modules_nfcore" + tag "insitugame" + + test("spatial - tsv") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'generic/tsv/expression.tsv', checkIfExists: true) + ] + """ + } + } + + then { + assert process.success + assertAll( + { assert snapshot( + process.out.results, + process.out.tables, + process.out.findAll { key, val -> key.startsWith('versions') } + ).match() } + ) + } + + } + + test("spatial - tsv - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'generic/tsv/expression.tsv', checkIfExists: true) + ] + """ + } + } + + then { + assert process.success + assertAll( + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/insitugame/tests/main.nf.test.snap b/modules/nf-core/insitugame/tests/main.nf.test.snap new file mode 100644 index 000000000000..f65d5f99046f --- /dev/null +++ b/modules/nf-core/insitugame/tests/main.nf.test.snap @@ -0,0 +1,109 @@ +{ + "spatial - tsv": { + "content": [ + [ + [ + { + "id": "test" + }, + "test_results.json:md5,3d48992b2e604a84a90293fc50304a6b" + ] + ], + [ + [ + { + "id": "test" + }, + "test_tables.csv:md5,4603676b8ed90a50dbade6c13473df60" + ] + ], + { + "versions_insitugame": [ + [ + "INSITUGAME", + "insitugame", + "1.0.6" + ] + ] + } + ], + "timestamp": "2026-10-27T13:51:53.446431902", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } + }, + "spatial - tsv - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test_figure.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test_results.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test" + }, + "test_tables.csv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + "INSITUGAME", + "insitugame", + "1.0.6" + ] + ], + "figures": [ + [ + { + "id": "test" + }, + "test_figure.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "results": [ + [ + { + "id": "test" + }, + "test_results.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tables": [ + [ + { + "id": "test" + }, + "test_tables.csv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions_insitugame": [ + [ + "INSITUGAME", + "insitugame", + "1.0.6" + ] + ] + } + ], + "timestamp": "2026-10-27T13:50:33.499103589", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } + } +} \ No newline at end of file diff --git a/modules/nf-core/insitugame/tests/tags.yml b/modules/nf-core/insitugame/tests/tags.yml new file mode 100644 index 000000000000..08cc7fe7393a --- /dev/null +++ b/modules/nf-core/insitugame/tests/tags.yml @@ -0,0 +1,2 @@ +insitugame: + - modules/nf-core/insitugame/** From ef6c2b2c8932e4840a4f4affe0ff7df17e4a653b Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 27 Oct 2026 14:01:19 +0100 Subject: [PATCH 02/11] fix(insitugame): format meta.yml with prettier to satisfy pre-commit hook --- modules/nf-core/insitugame/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/insitugame/meta.yml b/modules/nf-core/insitugame/meta.yml index 3ff5b1e80333..b97097ab0cd6 100644 --- a/modules/nf-core/insitugame/meta.yml +++ b/modules/nf-core/insitugame/meta.yml @@ -67,7 +67,7 @@ output: - "insitugame": type: string description: The name of the tool - - "python -c \"import importlib.metadata; print(importlib.metadata.version('insitugame'))\"": + - 'python -c "import importlib.metadata; print(importlib.metadata.version(''insitugame''))"': type: eval description: The expression to obtain the version of the tool From 14a67bbf0e088138b71a1b2140e8ee9847917a4b Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 27 Oct 2026 20:36:17 +0100 Subject: [PATCH 03/11] ci: re-trigger tests after quay container publication From b9c0786b036029a58344ebcd3bbb7e50d539104d Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 27 Oct 2026 21:56:34 +0100 Subject: [PATCH 04/11] chore: trigger CI to bypass GHCR network timeout From 74aeedbb4c1680f74fbc8aa788bac23b775ddcf1 Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 27 Oct 2026 23:27:49 +0100 Subject: [PATCH 05/11] chore(insitugame): add license header to main.nf --- modules/nf-core/insitugame/main.nf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/nf-core/insitugame/main.nf b/modules/nf-core/insitugame/main.nf index 09b835a65c67..2f5f6bfebbee 100644 --- a/modules/nf-core/insitugame/main.nf +++ b/modules/nf-core/insitugame/main.nf @@ -1,3 +1,6 @@ +// Copyright (c) the nf-core community under an open-source MIT license. +// See https://github.com/nf-core/modules for full license, file patching instructions and upstream contributing. + process INSITUGAME { tag "$meta.id" label 'process_medium' From 24de8ad8de5ec665c7b0b69ee6ec7c91d193bc4c Mon Sep 17 00:00:00 2001 From: Luca Celebrano Date: Wed, 28 Oct 2026 13:36:32 +0100 Subject: [PATCH 06/11] Update file pattern for spatial_data in meta.yml Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- modules/nf-core/insitugame/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/insitugame/meta.yml b/modules/nf-core/insitugame/meta.yml index b97097ab0cd6..5d91b13805d1 100644 --- a/modules/nf-core/insitugame/meta.yml +++ b/modules/nf-core/insitugame/meta.yml @@ -27,7 +27,7 @@ input: - spatial_data: type: file description: Spatial transcriptomics counts and coordinate table - pattern: "*.{tsv,csv,tsv.gz,csv.gz,h5ad}" + pattern: "*.{tsv,csv,tsv.gz,csv.gz}" output: figures: From 4fb316e17fd32fcf1492ec76cf16e4a9ad6bd604 Mon Sep 17 00:00:00 2001 From: Luca Date: Wed, 28 Oct 2026 22:42:27 +0100 Subject: [PATCH 07/11] feat(insitugame): update to 1.0.7 with bioconda container --- modules/nf-core/insitugame/environment.yml | 2 +- modules/nf-core/insitugame/main.nf | 42 +++---------------- .../insitugame/tests/main.nf.test.snap | 6 +-- 3 files changed, 10 insertions(+), 40 deletions(-) diff --git a/modules/nf-core/insitugame/environment.yml b/modules/nf-core/insitugame/environment.yml index 7d30308c457e..e0572dfa82c9 100644 --- a/modules/nf-core/insitugame/environment.yml +++ b/modules/nf-core/insitugame/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::insitugame=1.0.6" + - "bioconda::insitugame=1.0.7" diff --git a/modules/nf-core/insitugame/main.nf b/modules/nf-core/insitugame/main.nf index 2f5f6bfebbee..7578a428ff6d 100644 --- a/modules/nf-core/insitugame/main.nf +++ b/modules/nf-core/insitugame/main.nf @@ -7,8 +7,8 @@ process INSITUGAME { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/insitugame:1.0.6--pyhdfd78af_0': - 'quay.io/biocontainers/insitugame:1.0.6--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/insitugame:1.0.7--pyhdfd78af_0': + 'quay.io/biocontainers/insitugame:1.0.7--pyhdfd78af_0' }" input: tuple val(meta), path(spatial_data) @@ -26,40 +26,10 @@ process INSITUGAME { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ - python -c " -import insitugame -from insitugame import InSituGameAssay -import pandas as pd -import json - -df_in = pd.read_csv('${spatial_data}', sep=None, engine='python') -cols = list(df_in.columns) - -sensitive = [cols[1]] if len(cols) > 1 else ['Sensitive'] -resistant = [cols[2]] if len(cols) > 2 else ['Resistant'] -stroma = [cols[3]] if len(cols) > 3 else ['Stroma'] - -gene_spec = { - 'Sensitive': sensitive, - 'Resistant': resistant, - 'Stroma': stroma -} -assay = InSituGameAssay(gene_spec) - -results = { - 'sample_id': '${prefix}', - 'version': insitugame.__version__, - 'status': 'completed', - 'gene_spec': gene_spec, - 'n_rows': len(df_in) -} - -with open('${prefix}_results.json', 'w') as f: - json.dump(results, f, indent=2) - -df_out = pd.DataFrame([{'sample': '${prefix}', 'status': 'completed', 'n_rows': len(df_in)}]) -df_out.to_csv('${prefix}_tables.csv', index=False) -" + insitugame \\ + $args \\ + --input $spatial_data \\ + --output-prefix ${prefix} """ stub: diff --git a/modules/nf-core/insitugame/tests/main.nf.test.snap b/modules/nf-core/insitugame/tests/main.nf.test.snap index f65d5f99046f..fd6dd49bfb38 100644 --- a/modules/nf-core/insitugame/tests/main.nf.test.snap +++ b/modules/nf-core/insitugame/tests/main.nf.test.snap @@ -22,7 +22,7 @@ [ "INSITUGAME", "insitugame", - "1.0.6" + "1.0.7" ] ] } @@ -64,7 +64,7 @@ [ "INSITUGAME", "insitugame", - "1.0.6" + "1.0.7" ] ], "figures": [ @@ -95,7 +95,7 @@ [ "INSITUGAME", "insitugame", - "1.0.6" + "1.0.7" ] ] } From 0bffd7c00eec454c4390b9b881460a4a3f38d131 Mon Sep 17 00:00:00 2001 From: Luca Date: Wed, 28 Oct 2026 23:14:38 +0100 Subject: [PATCH 08/11] test(insitugame): update snapshot md5 for insitugame 1.0.7 test_tables.csv --- modules/nf-core/insitugame/tests/main.nf.test.snap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/insitugame/tests/main.nf.test.snap b/modules/nf-core/insitugame/tests/main.nf.test.snap index fd6dd49bfb38..03d4077b9695 100644 --- a/modules/nf-core/insitugame/tests/main.nf.test.snap +++ b/modules/nf-core/insitugame/tests/main.nf.test.snap @@ -14,7 +14,7 @@ { "id": "test" }, - "test_tables.csv:md5,4603676b8ed90a50dbade6c13473df60" + "test_tables.csv:md5,878799a83f7e61728cc744f2518db467" ] ], { From 79ac45f278922dc83da7d27a293fc7053f8a900a Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 29 Oct 2026 04:04:03 +0100 Subject: [PATCH 09/11] test(insitugame): update snapshot md5 for insitugame 1.0.7 test_results.json --- modules/nf-core/insitugame/tests/main.nf.test.snap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/insitugame/tests/main.nf.test.snap b/modules/nf-core/insitugame/tests/main.nf.test.snap index 03d4077b9695..bf5262174437 100644 --- a/modules/nf-core/insitugame/tests/main.nf.test.snap +++ b/modules/nf-core/insitugame/tests/main.nf.test.snap @@ -6,7 +6,7 @@ { "id": "test" }, - "test_results.json:md5,3d48992b2e604a84a90293fc50304a6b" + "test_results.json:md5,2db4ce5aaddad655b0d880350feed9aa" ] ], [ From 51bbbd5f88eaacc60f4e1dbf89325f4d58fa1095 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 29 Oct 2026 15:26:51 +0100 Subject: [PATCH 10/11] feat(insitugame): add Seqera Wave containers and conda lock --- .../linux_amd64-bd-8a968e208a8a3d71_1.txt | 1312 +++++++++++++++++ modules/nf-core/insitugame/main.nf | 6 +- modules/nf-core/insitugame/meta.yml | 13 + 3 files changed, 1328 insertions(+), 3 deletions(-) create mode 100644 modules/nf-core/insitugame/.conda-lock/linux_amd64-bd-8a968e208a8a3d71_1.txt diff --git a/modules/nf-core/insitugame/.conda-lock/linux_amd64-bd-8a968e208a8a3d71_1.txt b/modules/nf-core/insitugame/.conda-lock/linux_amd64-bd-8a968e208a8a3d71_1.txt new file mode 100644 index 000000000000..4695b10ff547 --- /dev/null +++ b/modules/nf-core/insitugame/.conda-lock/linux_amd64-bd-8a968e208a8a3d71_1.txt @@ -0,0 +1,1312 @@ +version: 6 +environments: + default: + channels: + - url: https://conda.anaconda.org/conda-forge/ + - url: https://conda.anaconda.org/bioconda/ + - url: https://conda.anaconda.org/bioconda/ + options: + pypi-prerelease-mode: if-necessary-or-explicit + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.2.1-h505cf86_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.2.1-h9908984_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_10.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.6-h9f5ca07_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.4.0-py315h2776e83_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.18.3-h4db4eae_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.68.0-py315h4d0d421_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.3-ha770c72_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.17-h7cc23a3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.15-h54a6638_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-79.1-py314hb486520_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/insitugame-1.0.7-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.6.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.5.1-py315h2776e83_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.19.1-h9073bf1_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.46.1-default_hbd61a6d_103.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.2.0-hdb68285_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-11_h4a7cf45_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.1-h39a168f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.1-ha411449_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.1-h018ffa1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-11_h0358290_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.25-hd45a770_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20260512-pl5321h373387f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.9.0-hd2095e1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.7.0-h81df57d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.14.3-ha770c72_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.3-h5e6c136_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-16.2.0-ha9f2e26_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-16.2.0-h69a702a_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-16.2.0-h69a702a_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-16.2.0-h6b99dfc_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.90.0-h569388d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-16.2.0-he0feb66_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-15.0.0-h3ca84f1_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h0cb94f2_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.2.1-h7cc23a3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-11_h47877c9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.34-pthreads_hf13c14d_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.59-h922cc85_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libraqm-0.11.0-h6406941_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-hf739112_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-16.2.0-hdf11a46_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.2-hcc2c06a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.4-hcfc3c73_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-hb83e432_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.11.2-py315hc57e04a_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.28.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.5.4-py315h11958a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-heb1ab33_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.5-h781a0a9_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-3.1.0-np2py315h105398f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-h8b3dc9c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-13.0.0-py315hf58cf56_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/procps-ng-4.0.6-h18c060e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h7cc23a3_1004.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.3-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.15.2-h6e52b48_100_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-3.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.6-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.15-9_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.9.1-np2py315h09497ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.18.1-py315heedce22_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.7.0-pyhc455866_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/which-2.25-h171cf75_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-h280c20c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-h0d788c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.14-hb83e432_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-h7cc23a3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-h7cc23a3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.7-h7cc23a3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.13-h7cc23a3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.3.3-hce19668_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_7.conda +packages: +- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda + build_number: 20 + sha256: 1dd3fffd892081df9726d7eb7e0dea6198962ba775bd88842135a4ddb4deb3c9 + md5: a9f577daf3de00bca7c3c76c0ecbd1de + depends: + - __glibc >=2.17,<3.0.a0 + - libgomp >=7.5.0 + constrains: + - openmp_impl <0.0a0 + license: BSD-3-Clause + license_family: BSD + size: 28948 + timestamp: 1770939786096 +- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.2.1-h505cf86_0.conda + sha256: 3efb8e6ac07f12773f02e876567700f554965e33a8e30ee05ddd891c303f7aa3 + md5: 65f1fc5f6a3a984a8a25641d0e60fc25 + depends: + - __glibc >=2.17,<3.0.a0 + - brotli-bin 1.2.1 h9908984_0 + - libbrotlidec 1.2.1 ha411449_0 + - libbrotlienc 1.2.1 h018ffa1_0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 20477 + timestamp: 1792653712185 +- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.2.1-h9908984_0.conda + sha256: c64939f0ade0fea29525d2f549a700841a331c0886b3694083d08eb4769936ce + md5: 903eceb31743f0ce070abb9b9f879714 + depends: + - __glibc >=2.17,<3.0.a0 + - libbrotlidec 1.2.1 ha411449_0 + - libbrotlienc 1.2.1 h018ffa1_0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 21494 + timestamp: 1792653706181 +- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_10.conda + sha256: 1a0d382c515ebf55f8ee1f38c8b81bc95af5c2acc42ad53b66bc5df932032f96 + md5: e675fabcf81499adc7edf58124fb1e01 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: bzip2-1.0.6 + license_family: BSD + size: 257808 + timestamp: 1785906269155 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + sha256: 95619b9c1184be7175392eeb0ee7eeb5ccf25d280951f4225f2d62e725790be3 + md5: 3fd02989038a1e1cee627c14c2d73f29 + depends: + - __unix + license: ISC + size: 130057 + timestamp: 1792772446739 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.6-h9f5ca07_1.conda + sha256: 8584abe922b7802768f8a80cc9d8700cc6580212d2e676881109eea113561cfd + md5: a0338c7da191449811d9697cd6f9df86 + depends: + - __glibc >=2.17,<3.0.a0 + - fontconfig >=2.18.3,<3.0a0 + - fonts-conda-ecosystem + - icu >=79.1,<80.0a0 + - libexpat >=2.9.0,<3.0a0 + - libfreetype >=2.14.3 + - libfreetype6 >=2.14.3 + - libgcc >=15 + - libglib >=2.90.0,<3.0a0 + - libpng >=1.6.59,<1.7.0a0 + - libstdcxx >=15 + - libxcb >=1.17.0,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - pixman >=0.46.4,<1.0a0 + - xorg-libice >=1.1.2,<2.0a0 + - xorg-libsm >=1.2.6,<2.0a0 + - xorg-libx11 >=1.8.14,<2.0a0 + - xorg-libxext >=1.3.7,<2.0a0 + - xorg-libxrender >=0.9.13,<0.10.0a0 + license: LGPL-2.1-only or MPL-1.1 + size: 1007107 + timestamp: 1793160732023 +- conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda + sha256: 4c287c2721d8a34c94928be8fe0e9a85754e90189dd4384a31b1806856b50a67 + md5: 61b8078a0905b12529abc622406cb62c + depends: + - python >=3.10 + - python + license: BSD-3-Clause + license_family: BSD + size: 27353 + timestamp: 1765303462831 +- conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.4.0-py315h2776e83_1.conda + sha256: 0560a687fccdcb053732d2ce7a5136976c5adff6647132b450d2c1a7dfcc67fb + md5: 3c41fa43919891f2f537020105d32129 + depends: + - numpy >=2.0 + - python + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=15 + - libgcc >=15 + - python_abi 3.15.* *_cp315 + license: BSD-3-Clause + license_family: BSD + size: 332027 + timestamp: 1789746789711 +- conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda + sha256: bb47aec5338695ff8efbddbc669064a3b10fe34ad881fb8ad5d64fbfa6910ed1 + md5: 4c2a8fef270f6c69591889b93f9f55c1 + depends: + - python >=3.10 + - python + license: BSD-3-Clause + license_family: BSD + size: 14778 + timestamp: 1764466758386 +- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 + sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b + md5: 0c96522c6bdaed4b1566d11387caaf45 + license: BSD-3-Clause + license_family: BSD + size: 397370 + timestamp: 1566932522327 +- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 + sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c + md5: 34893075a5c9e55cdafac56607368fc6 + license: OFL-1.1 + license_family: Other + size: 96530 + timestamp: 1620479909603 +- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 + sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139 + md5: 4d59c254e01d9cde7957100457e2d5fb + license: OFL-1.1 + license_family: Other + size: 700814 + timestamp: 1620479612257 +- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda + sha256: 2821ec1dc454bd8b9a31d0ed22a7ce22422c0aef163c59f49dfdf915d0f0ca14 + md5: 49023d73832ef61042f6a237cb2687e7 + license: LicenseRef-Ubuntu-Font-Licence-Version-1.0 + license_family: Other + size: 1620504 + timestamp: 1727511233259 +- conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.18.3-h4db4eae_1.conda + sha256: 5a3eb10b18a97223ab06b3a7f0d7f56658db2f2800e2f2af95836fe3bf55ba63 + md5: 922776b528a470ab5afa81fd42abfa1d + depends: + - __glibc >=2.17,<3.0.a0 + - libexpat >=2.8.1,<3.0a0 + - libfreetype >=2.14.3 + - libfreetype6 >=2.14.3 + - libgcc >=15 + - libuuid >=2.42.2,<3.0a0 + - libzlib >=1.3.2,<2.0a0 + license: MIT + license_family: MIT + size: 296288 + timestamp: 1786667377340 +- conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 + sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61 + md5: fee5683a3f04bd15cbd8318b096a27ab + depends: + - fonts-conda-forge + license: BSD-3-Clause + license_family: BSD + size: 3667 + timestamp: 1566974674465 +- conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda + sha256: 54eea8469786bc2291cc40bca5f46438d3e062a399e8f53f013b6a9f50e98333 + md5: a7970cd949a077b7cb9696379d338681 + depends: + - font-ttf-ubuntu + - font-ttf-inconsolata + - font-ttf-dejavu-sans-mono + - font-ttf-source-code-pro + license: BSD-3-Clause + license_family: BSD + size: 4059 + timestamp: 1762351264405 +- conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.68.0-py315h4d0d421_0.conda + sha256: f1ca91b02a5153c27e400a6537d6413850da54d4ba0913e3f7f1a0cf42f1e38f + md5: 68744252efceeeb7f55638d9d549b0f4 + depends: + - __glibc >=2.17,<3.0.a0 + - brotli + - libgcc >=15 + - munkres + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + size: 3349521 + timestamp: 1793164830929 +- conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.3-ha770c72_2.conda + sha256: 612a8e0c1a6ecae23da54d81ef395f6ebb5c8e4468ec2611593ebce75876a4e0 + md5: 2d0ea23b23603e07ca47f23f949f67b6 + depends: + - libfreetype 2.14.3 ha770c72_2 + - libfreetype6 2.14.3 h5e6c136_2 + license: GPL-2.0-only OR FTL + size: 175239 + timestamp: 1786641011029 +- conda: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.17-h7cc23a3_0.conda + sha256: 3ba79ebfbd14ca5db4affaf10ee8001064e907de5baabc2dbe5bcd9aec856c9f + md5: f9d5302bca196ee87e62f393f2626562 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: LGPL-2.1-or-later + size: 64102 + timestamp: 1790011855888 +- conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.15-h54a6638_1.conda + sha256: 7fa3b6a9c081fa3e545573152a788d061a0a0ba57df7251cc0f4f75225fc93e7 + md5: f9fe2984587fa8235a6af6004760cd18 + depends: + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=14 + - libgcc >=14 + license: LGPL-2.0-or-later + license_family: LGPL + size: 102835 + timestamp: 1786118485753 +- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-79.1-py314hb486520_0.conda + sha256: 9a339bedff62e63bb949383edc656956abef1f23663c879f7fcb66a004a18ef9 + md5: 0be836734696f6476615ef0e97b388a3 + depends: + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=15 + - libgcc >=15 + license: MIT + license_family: MIT + size: 14540104 + timestamp: 1792691528355 +- conda: https://conda.anaconda.org/bioconda/noarch/insitugame-1.0.7-pyhdfd78af_0.conda + sha256: 5f9017709d57017b533096676e45504d3462e505f1a49f6130f9ca6c632bfd55 + md5: 31caa27871edc24a81f62491407b2e13 + depends: + - matplotlib-base >=3.4 + - numpy >=1.20 + - pandas >=1.3 + - python >=3.9 + - scikit-learn >=1.0 + - scipy >=1.7 + license: GPL-3.0-or-later + license_family: GPL3 + size: 39029 + timestamp: 1793201560469 +- conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.6.0-pyhcf101f3_0.conda + sha256: 96b76ace583404ce4fbc234baa6cdb3de485887913104d4ac51994f9b6656696 + md5: 4ebc70ef1af2e21cdc8edb1bfa1ec28d + depends: + - python >=3.10 + - cloudpickle >=3.0 + - python + license: BSD-3-Clause + license_family: BSD + size: 228858 + timestamp: 1788177170105 +- conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.5.1-py315h2776e83_3.conda + sha256: b336ba20e1b26442876d3014ffc8a5231c16d830c2339809fb3551caee28747c + md5: 85c09a477e8bee45a0bb55ef04d700c9 + depends: + - python + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.15.* *_cp315 + license: BSD-3-Clause + license_family: BSD + size: 75671 + timestamp: 1790082004234 +- conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.19.1-h9073bf1_3.conda + sha256: 03e675b9adaf235aab880e4133c72f4830e87bc7da2df59d6194771612239b22 + md5: 596464faa06e0b656b35416188ef9bba + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libjpeg-turbo >=3.2.0,<4.0a0 + - libtiff >=4.7.2,<4.8.0a0 + license: MIT + license_family: MIT + size: 254292 + timestamp: 1789051947923 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.46.1-default_hbd61a6d_103.conda + sha256: 901649b1edbe841fd4ee7e2d491a05184ed540eb01cdae506872f344babc1d28 + md5: 2362c70e7e79827c32db35547d9c179b + depends: + - __glibc >=2.17,<3.0.a0 + - zstd >=1.5.7,<1.6.0a0 + constrains: + - binutils_impl_linux-64 2.46.1 + license: GPL-3.0-only + license_family: GPL + size: 742109 + timestamp: 1791565468810 +- conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.2.0-hdb68285_0.conda + sha256: bf9fdebf55d8bc99d83531cdffda00703f4dc5f93a1a956768c147362c72feda + md5: fb9d356b1a57d6d54768be7ebd5fce09 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + license: Apache-2.0 + license_family: Apache + size: 271158 + timestamp: 1785036167977 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-11_h4a7cf45_openblas.conda + build_number: 11 + sha256: d942e0c820d60a613a6f786d074f0820fb6343e3f1ccfb110b1d98b44fb75968 + md5: b8cce1486f3c62f33291d6318c193d0d + depends: + - libopenblas >=0.3.34,<0.3.35.0a0 + - libopenblas >=0.3.34,<1.0a0 + constrains: + - blas 2.311 openblas + - libcblas 3.11.0 11*_openblas + - liblapack 3.11.0 11*_openblas + - liblapacke 3.11.0 11*_openblas + - mkl <2027 + license: BSD-3-Clause + license_family: BSD + size: 18246 + timestamp: 1789061062982 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.1-h39a168f_0.conda + sha256: 8eccfbfdb8ecba32eabfb6ee92f70e818e5f3a35a01c507f7b6bd56e00e4c617 + md5: 9460bdde20bcdf9e6bbef0232b14ad2d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 80370 + timestamp: 1792653685570 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.1-ha411449_0.conda + sha256: 4b4bda6f70ad511bdff95fdd958dca74b6e0534ae335ddcb1d8c6569774d2429 + md5: 6d934e235f4d452ebec720ec7c3638a6 + depends: + - __glibc >=2.17,<3.0.a0 + - libbrotlicommon 1.2.1 h39a168f_0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 34703 + timestamp: 1792653694124 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.1-h018ffa1_0.conda + sha256: 61974cf9bb07115ed6725dacf83d0d985443d78dd123cc4f2758856fda5376ec + md5: 8f3078564b4a4cd9602ebaafe78e0b87 + depends: + - __glibc >=2.17,<3.0.a0 + - libbrotlicommon 1.2.1 h39a168f_0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 298098 + timestamp: 1792653699767 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-11_h0358290_openblas.conda + build_number: 11 + sha256: f7d1bbdea61cf94ba219d17b2cb571a29830f8025385af799bff5a7ad1ef45e6 + md5: 73a248c30811075059b5aeda766c2624 + depends: + - libblas 3.11.0 11_h4a7cf45_openblas + constrains: + - blas 2.311 openblas + - liblapack 3.11.0 11*_openblas + - liblapacke 3.11.0 11*_openblas + license: BSD-3-Clause + license_family: BSD + size: 18196 + timestamp: 1789061068819 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.25-hd45a770_1.conda + sha256: 82e134c8a08b1eed9a2ed8ab578b89aa1730dcde3dea8dd87645ed0637878e54 + md5: 40f9b31aa9cf007789867df0decd0492 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: MIT + license_family: MIT + size: 73710 + timestamp: 1785908694612 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20260512-pl5321h373387f_0.conda + sha256: 45301f14f4eb66da57cfaf2d265f3eeee73f8b07e99614ee3afc5b26eea91126 + md5: 27dbd7e2984b8fe48e069379636ccfdd + depends: + - ncurses + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - ncurses >=6.6,<7.0a0 + license: BSD-2-Clause + license_family: BSD + size: 135877 + timestamp: 1791327370514 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.9.0-hd2095e1_0.conda + sha256: 7b930a8b6bc6553cb754b4977a11f9c862c719a652fc2d128d89270992ce8beb + md5: 317ecabe4a58b3068c7958dc5eb89e43 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + constrains: + - expat 2.9.0.* + license: MIT + license_family: MIT + size: 78894 + timestamp: 1793054221966 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.7.0-h81df57d_1.conda + sha256: c8c7583ef063bc3c430f1d48298e5ad24f796a35c22ed5b14183325825a61106 + md5: 6525a0b06aa4fd390795f0740636a9dd + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 68004 + timestamp: 1787753412298 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.14.3-ha770c72_2.conda + sha256: fb12ecb46c30d18d928c0e8fc346ab13b5f6fc8a9cacae4f2f4bb188782586f5 + md5: f8054e759d0ddddaf34a5c8fedc900a1 + depends: + - libfreetype6 >=2.14.3 + license: GPL-2.0-only OR FTL + size: 8407 + timestamp: 1786641007099 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.3-h5e6c136_2.conda + sha256: ec607dd5445dd17ff6bf8b7fe6832e5504c226dd91d3aaea7ba83569808b0ce4 + md5: b72a266a9317036fd0464cb98b027cd0 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libpng >=1.6.58,<1.7.0a0 + - libzlib >=1.3.2,<2.0a0 + constrains: + - freetype >=2.14.3 + license: GPL-2.0-only OR FTL + size: 387671 + timestamp: 1786641006460 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-16.2.0-ha9f2e26_7.conda + sha256: e031634c3a928f9594eba868bc46ef5230d6571a364a0c63215b06c4563bfcea + md5: 735629b400b70eeab21a2ba8f5b1c2ce + depends: + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 + constrains: + - libgcc-ng ==16.2.0=*_7 + - libgomp 16.2.0 he0feb66_7 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 1058444 + timestamp: 1790303109576 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-16.2.0-h69a702a_7.conda + sha256: 03b54d7008de080a17cc2174b0e4acd6d06e1c981b2eb19846f46d8f59966034 + md5: 2005515ac9340f816fb2ac7e83afe553 + depends: + - libgcc 16.2.0 ha9f2e26_7 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 28616 + timestamp: 1790303114248 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-16.2.0-h69a702a_7.conda + sha256: 9682ae4dd11487e10b904b3cb3ab6379cad25233d45fdfdf90d54349df244494 + md5: 3a8d285f5f22138ef826ad54cf267e73 + depends: + - libgfortran5 16.2.0 h6b99dfc_7 + constrains: + - libgfortran-ng ==16.2.0=*_7 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 28571 + timestamp: 1790303139904 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-16.2.0-h6b99dfc_7.conda + sha256: 04dbab12c925b92977bb835dd2f5eda413607afa79f95a554e5a04b07a380322 + md5: 7719ed7be38ad8c492c4bd5cc2bce0c4 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=16.2.0 + constrains: + - libgfortran 16.2.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 2528180 + timestamp: 1790303122004 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.90.0-h569388d_0.conda + sha256: 9e688e046550415c030c3d08ed9a3fd13a51d7bc56295283b858b6c3070bb9f8 + md5: c85e9539551f1fd21104e518d940c244 + depends: + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - libiconv >=1.18,<2.0a0 + - pcre2 >=10.47,<10.48.0a0 + - libffi >=3.7.0,<3.8.0a0 + - libzlib >=1.3.2,<2.0a0 + constrains: + - glib >2.66 + license: LGPL-2.1-or-later + size: 4819130 + timestamp: 1789478025196 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-16.2.0-he0feb66_7.conda + sha256: 92a0bb350c7be6a4eedcb4e111c60aefd176018e6b1c009a6e025dbe9bbcd758 + md5: d904c7ddd95e026254b4b80808ee9e12 + depends: + - __glibc >=2.17,<3.0.a0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 640566 + timestamp: 1790303046034 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libharfbuzz-15.0.0-h3ca84f1_1.conda + sha256: 65c516b48aca400bbff4c6d83090aa60b6fcc9cf2d24c163db90b48db0a61873 + md5: e5d833ba8e8f6c2bf87ed8626c2f21b2 + depends: + - __glibc >=2.17,<3.0.a0 + - cairo >=1.18.6,<2.0a0 + - graphite2 >=1.3.15,<2.0a0 + - icu >=79.1,<80.0a0 + - libfreetype >=2.14.3 + - libfreetype6 >=2.14.3 + - libgcc >=15 + - libglib >=2.90.0,<3.0a0 + - libpng >=1.6.59,<1.7.0a0 + - libstdcxx >=15 + - libzlib >=1.3.2,<2.0a0 + license: MIT + license_family: MIT + size: 1630980 + timestamp: 1793222282311 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h0cb94f2_3.conda + sha256: f943117edb9cd4d9c61cc972eee5a34291dc55ea7a6e9e38da104995841cbcb6 + md5: f92233bf33e24a25668bb2119e2c51f9 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: LGPL-2.1-only + size: 789471 + timestamp: 1787033836207 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.2.1-h7cc23a3_0.conda + sha256: 2f7d092a3212884825c43814575225fde8a9190611bc0e38c55e0dae45e329ac + md5: 5fd2b2218f7c28c71e95738a4fffaf78 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + size: 653905 + timestamp: 1793157024388 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-11_h47877c9_openblas.conda + build_number: 11 + sha256: 1ad3f43c9319ef398a8ef45989f4903a06e3965b51e77fc669a4c894168a8411 + md5: 5622a13917855ce4b953b9e655cf9262 + depends: + - libblas 3.11.0 11_h4a7cf45_openblas + constrains: + - blas 2.311 openblas + - libcblas 3.11.0 11*_openblas + - liblapacke 3.11.0 11*_openblas + license: BSD-3-Clause + license_family: BSD + size: 18227 + timestamp: 1789061073957 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_1.conda + sha256: 9787df8c22a59c9a70d3e5a10db9ad663485e75e9ccc3f09bd092cb7b95e0dab + md5: 1390b7c5ac0b1d8e447bc5efa6d3c8c2 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - xz 5.8.3.* + license: 0BSD + size: 112995 + timestamp: 1786348617826 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_2.conda + sha256: 46820b4a835e175940ae20bec00fdddaff804cda27a1408ab1b95e77a2196437 + md5: fcfed1dc5053eb1901b66e7b1fc32588 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: BSD-2-Clause + license_family: BSD + size: 92759 + timestamp: 1786650399772 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.34-pthreads_hf13c14d_2.conda + sha256: 69a722751e14eab2eb3bfdcb9acb1187afbd962b0c49b48d829341e0f6787f60 + md5: 7e19fcd73d7f0997d3cb3326d2586a86 + depends: + - libgfortran5 >=15.3.0 + - libgfortran + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + constrains: + - openblas >=0.3.34,<0.3.35.0a0 + license: BSD-3-Clause + license_family: BSD + size: 6845411 + timestamp: 1789141490688 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.59-h922cc85_0.conda + sha256: c7381be8ef713501f6cd2f5ad473e401f2edeaec3c46788296b8dbf0de165e15 + md5: 8c9caf742a485ac688ffa88bbadbf0be + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libzlib >=1.3.2,<2.0a0 + license: zlib-acknowledgement + size: 316872 + timestamp: 1790805159503 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libraqm-0.11.0-h6406941_0.conda + sha256: ab3ccb9fd5816f76b18ee8974d359cd2605ca87d8ddef55369dc461b9986f95c + md5: 3ac89a48d224409739dbf6200e524373 + depends: + - libgcc >=14 + - __glibc >=2.28,<3.0.a0 + - fribidi >=1.0.16,<2.0a0 + - libfreetype >=2.14.3 + - libfreetype6 >=2.14.3 + - libharfbuzz >=14.2.1 + license: MIT + license_family: MIT + size: 33983 + timestamp: 1784850267262 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-hf739112_1.conda + sha256: 4166191b6e9322e8ea124400b7f063aba317ef46d4873f82ef472734f91ddd8c + md5: 5c95bcc875a77e89afab63821a504e3f + depends: + - __glibc >=2.17,<3.0.a0 + - icu >=79.1,<80.0a0 + - libgcc >=15 + - libzlib >=1.3.2,<2.0a0 + license: blessing + size: 984977 + timestamp: 1793051582594 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_7.conda + sha256: fa7018298629fc429971fffd6ecba3d27a7b02e4e890d6a93ea01ffebe8cb745 + md5: 9b6707e0caca917fa6ea9ee473f37a5d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc 16.2.0 ha9f2e26_7 + constrains: + - libstdcxx-ng ==16.2.0=*_7 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 6615436 + timestamp: 1790303132935 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-16.2.0-hdf11a46_7.conda + sha256: 337f481db36cc357884f05f404ccd1b3a7e0fc1ee48ec5c884e4281d213bc863 + md5: 25a23bde5e26d548374f3e02b4669670 + depends: + - libstdcxx 16.2.0 h934c35e_7 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 28665 + timestamp: 1790303164510 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.2-hcc2c06a_1.conda + sha256: 10e125da82ca93e09191e66e5a94d566b2cf8d4024e2a0db3a9114297447e0d9 + md5: 0907d876f460ebc941ae590338b6102f + depends: + - __glibc >=2.17,<3.0.a0 + - lerc >=4.2.0,<5.0a0 + - libdeflate >=1.25,<1.26.0a0 + - libgcc >=15 + - libjpeg-turbo >=3.2.0,<4.0a0 + - liblzma >=5.8.3,<6.0a0 + - libstdcxx >=15 + - libwebp-base >=1.6.0,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: HPND + size: 459753 + timestamp: 1787755584172 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.4-hcfc3c73_0.conda + sha256: f34b8d1de9a2bf62476d8608057d9b8a918d97444236dc53a47128f2fae79041 + md5: 54a948337e66706380ff24d6b5fde63f + depends: + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + license: BSD-3-Clause + license_family: BSD + size: 34442 + timestamp: 1790121449161 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_1.conda + sha256: 8415001414f488c85b72b9d8cc2071dfb3981a47bc3c8eb56ef91a57d12eae7f + md5: 9332b53d0ea93c5d39e33be03a0c611a + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - libwebp 1.6.0 + license: BSD-3-Clause + license_family: BSD + size: 428430 + timestamp: 1785954557217 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-hb83e432_2.conda + sha256: 7b49e6fd2a584b7f072943e6adf4149677af5121246975278804782d37752837 + md5: 61f0ffba9161cbb3a77722869b21e4bb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - pthread-stubs + - xorg-libxau >=1.0.12,<2.0a0 + - xorg-libxdmcp >=1.1.5,<2.0a0 + license: MIT + license_family: MIT + size: 395120 + timestamp: 1787885788278 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_3.conda + sha256: eb8a0db0aa570124f7d2a93d7c7f596e3390df5e047818d873baad32985fc736 + md5: 0de0122d9570a8ab637c6b73db268389 + depends: + - __glibc >=2.17,<3.0.a0 + constrains: + - zlib 1.3.2 *_3 + license: Zlib + license_family: Other + size: 63713 + timestamp: 1785362952714 +- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.11.2-py315hc57e04a_1.conda + sha256: d2f7802faf2ab1836e9fc5e5160d65a7101f541e806b5299e36cdd5274ff2415 + md5: 28440ee26a24480d3b8831c91cf4ff25 + depends: + - __glibc >=2.17,<3.0.a0 + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.28.2 + - freetype + - kiwisolver >=1.3.1 + - libfreetype >=2.14.3 + - libfreetype6 >=2.14.3 + - libgcc >=15 + - libraqm >=0.11.0,<0.12.0a0 + - libstdcxx >=15 + - numpy >=1.25 + - numpy >=1.25,<3 + - packaging >=20.0 + - pillow >=9 + - pyparsing >=3 + - python >=3.15.0rc2,<3.16.0a0 + - python-dateutil >=2.7 + - python_abi 3.15.* *_cp315 + - qhull >=2020.2,<2020.3.0a0 + - tk >=8.6.13,<8.7.0a0 + license: PSF-2.0 + license_family: PSF + size: 9120382 + timestamp: 1789824131029 +- conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda + sha256: d09c47c2cf456de5c09fa66d2c3c5035aa1fa228a1983a433c47b876aa16ce90 + md5: 37293a85a0f4f77bbd9cf7aaefc62609 + depends: + - python >=3.9 + license: Apache-2.0 + license_family: Apache + size: 15851 + timestamp: 1749895533014 +- conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.28.0-pyh5ded981_0.conda + sha256: d69b3266672eb731d5a92efdffa5e17bef4f08f08ccfb11053eb537a8a6686da + md5: 0854bb3ee7fc73ce67edae458ead7abf + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + size: 308714 + timestamp: 1793137426596 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda + sha256: 5d46557214ed184381dafe835b7c94a474a1c3b307a08a250b1ea4779b44ffb3 + md5: ee6c0cd80a60961a1f48aa3e0b91f986 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: X11 AND BSD-3-Clause + size: 911196 + timestamp: 1786355078102 +- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.5.4-py315h11958a5_0.conda + sha256: a3fb581f1a04a25a211f3a95c57dcde750587ee9c47a32055e857b752f4fab7d + md5: 9826d4c893d56867548d8aa126f6e5ec + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=15 + - libgcc >=15 + - python_abi 3.15.* *_cp315 + - libcblas >=3.9.0,<4.0a0 + - libblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 9402941 + timestamp: 1791675319144 +- conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-heb1ab33_2.conda + sha256: 131688a88bea8da92fe418c4558c5073435e2848911bc4c836c3a9dd5994b4aa + md5: a3f3ac7a68d01c198e276dbb99e62032 + depends: + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=15 + - libtiff >=4.7.2,<4.8.0a0 + - libzlib >=1.3.2,<2.0a0 + - libpng >=1.6.58,<1.7.0a0 + license: BSD-2-Clause + license_family: BSD + size: 391242 + timestamp: 1788425045145 +- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.5-h781a0a9_0.conda + sha256: 9c1533f1cf784f0e250919c0c9762d0b0e6bc727a79290ffb7cea1ceca1d038c + md5: 5a51a2ea653f120240b1a9bf76e0aae9 + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=15 + license: Apache-2.0 + license_family: Apache + size: 3195299 + timestamp: 1791098052301 +- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + sha256: c432626b16768b8dab228bfb706f7060c2d462a21c516d240f68f2f902b5a044 + md5: 936687ed80f295a1f5dbcf8bd34c252c + depends: + - python >=3.9 + - python + license: Apache-2.0 + license_family: APACHE + size: 116363 + timestamp: 1785888127370 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-3.1.0-np2py315h105398f_0.conda + sha256: a1db2151781e013aeb3683c183861f98c4300eba012fb56ab61dfc2bac9ac761 + md5: f0537917e1c42266990ea0da04ecc8e4 + depends: + - python + - numpy >=2.0.2 + - python-dateutil >=2.9.0 + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=15 + - libgcc >=15 + - numpy >=1.25,<3 + - python_abi 3.15.* *_cp315 + constrains: + - adbc-driver-postgresql >=1.7.0 + - adbc-driver-sqlite >=1.7.0 + - beautifulsoup4 >=4.13.4 + - bottleneck >=1.5.0 + - fastparquet >=2024.11.0 + - fsspec >=2025.7.0 + - gcsfs >=2025.7.0 + - html5lib >=1.1 + - hypothesis >=6.116.0 + - jinja2 >=3.1.6 + - lxml >=6.0.0 + - matplotlib >=3.10.5 + - numba >=0.61.2 + - numexpr >=2.11.0 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=16.0.0 + - pyiceberg >=0.9.1 + - pymysql >=1.1.1 + - pyqt5 >=5.15.11 + - pyreadstat >=1.3.0 + - pytables >=3.10.2 + - python-calamine >=0.4.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.3 + - scipy >=1.16.1 + - s3fs >=2025.7.0 + - sqlalchemy >=2.0.42 + - tabulate >=0.9.0 + - xarray >=2025.7.1 + - xlrd >=2.0.2 + - xlsxwriter >=3.2.5 + - zstandard >=0.23.0 + license: BSD-3-Clause + license_family: BSD + size: 17368926 + timestamp: 1792679036523 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-h8b3dc9c_1.conda + sha256: 9ebb10a4eb3be51ae67d85c679f5a7a50cb040ed25c783e6331a225ea09991d4 + md5: 06f6113cf1ff4a54b65f87ead132a5f1 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - libgcc >=15 + - libzlib >=1.3.2,<2.0a0 + license: BSD-3-Clause + license_family: BSD + size: 1218833 + timestamp: 1787294571916 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-13.0.0-py315hf58cf56_0.conda + sha256: a1249812420cb6dd85cc28d9e8758b433efda13fed025d849c1b1fb3c9703371 + md5: 06fceb5ee24af4bd7e80d769d41562e9 + depends: + - python + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - lcms2 >=2.19.1,<3.0a0 + - libxcb >=1.17.0,<2.0a0 + - tk >=8.6.13,<8.7.0a0 + - openjpeg >=2.5.4,<3.0a0 + - libfreetype >=2.14.3 + - libfreetype6 >=2.14.3 + - libwebp-base >=1.6.0,<2.0a0 + - libtiff >=4.7.2,<4.8.0a0 + - libjpeg-turbo >=3.2.0,<4.0a0 + - python_abi 3.15.* *_cp315 + - zlib-ng >=2.3.3,<2.4.0a0 + license: HPND + size: 1118857 + timestamp: 1792416406105 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_3.conda + sha256: 829d8288764282de5a9f7b9169acb75cc7dc0b6c3fe2535cfe87dea3436bbc5d + md5: 0ee5bb30034b081a1386c1e2c98ab0a7 + depends: + - libstdcxx >=14 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + license: MIT + license_family: MIT + size: 376704 + timestamp: 1786106621354 +- conda: https://conda.anaconda.org/conda-forge/linux-64/procps-ng-4.0.6-h18c060e_0.conda + sha256: 4ce2e1ee31a6217998f78c31ce7dc0a3e0557d9238b51d49dd20c52d467a126d + md5: f2c23a77b25efcad57d377b34bd84941 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - ncurses >=6.5,<7.0a0 + license: GPL-2.0-or-later AND LGPL-2.0-or-later + license_family: GPL + size: 593603 + timestamp: 1769710381284 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h7cc23a3_1004.conda + sha256: 4a44fd00ea73b79ca2c89b0727b9ccf61c506ead71e67a9abfa4c590042b5a4a + md5: bb66b610707b811e3c65181a6431e7a8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 9630 + timestamp: 1788381877753 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.3-pyh5ded981_0.conda + sha256: dc10d64d4b9a1310083b2f563416ab45560ee2a04fd6baab40f223f2b1ab37bc + md5: 8bf43ae1312e9b966063459e04c20fa7 + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + size: 114046 + timestamp: 1790063282695 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.15.2-h6e52b48_100_cp315.conda + build_number: 100 + sha256: dd6fdef748df5636029673a834ca3632ce44c86d71e4986d70bcdb2ae5607a25 + md5: 38c3edc23439db3ca383be02ae2b702e + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libedit >=3.1.20260512,<3.2.0a0 + - libexpat >=2.8.5,<3.0a0 + - libffi >=3.7.0,<3.8.0a0 + - libgcc >=15 + - liblzma >=5.8.3,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.54.1,<4.0a0 + - libuuid >=2.42.4,<3.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.9,<4.0a0 + - python_abi 3.15.* *_cp315 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - zstd >=1.5.7,<1.6.0a0 + license: Python-2.0 + size: 29327137 + timestamp: 1793015518763 + python_site_packages_path: lib/python3.15/site-packages +- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-3.0.0-pyh5ded981_0.conda + sha256: 8ad3e3fd71fa3881081a38d660cd9cc7bd18fd4eb99cee96225903e5e2eb9ae9 + md5: d75c60076c9f2cfa4a459e9f17cecd93 + depends: + - python >=3.11 + - six >=1.6 + - python-tzdata + - python + license: Apache-2.0 + license_family: APACHE + size: 89526 + timestamp: 1792674886408 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.6-pyh5ded981_0.conda + sha256: bb29725d0d84f5e98f221f2f0afbad4a44cd67b016ab48388592c940bbd75a5e + md5: cddcce875e2021c3a5b9dbecffb70d92 + depends: + - python >=3.11 + - python + license: Apache-2.0 + license_family: APACHE + size: 141245 + timestamp: 1793205938858 +- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.15-9_cp315.conda + build_number: 9 + sha256: 976c4a6db967a62385aa633daaab19a929f986b979a7ad836b8b70e15ca7aefd + md5: b23461631fe2abdbade0cb64babe7344 + constrains: + - python 3.15.* *_cp315 + license: BSD-3-Clause + license_family: BSD + size: 6800 + timestamp: 1788302827589 +- conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda + sha256: 776363493bad83308ba30bcb88c2552632581b143e8ee25b1982c8c743e73abc + md5: 353823361b1d27eb3960efb076dfcaf6 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: LicenseRef-Qhull + size: 552937 + timestamp: 1720813982144 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.9.1-np2py315h09497ca_1.conda + sha256: d56162093a9836dcb39e3dcf0ae4c61570476768117bf687d9251a1093fe5186 + md5: ec62f15648ff2abf22ac91f94a43d8a1 + depends: + - python + - numpy >=1.24.1 + - scipy >=1.10.0 + - joblib >=1.4.0 + - threadpoolctl >=3.5.0 + - narwhals >=2.0.1 + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 + - python_abi 3.15.* *_cp315 + - numpy >=1.25,<3 + license: BSD-3-Clause + license_family: BSD + size: 10248007 + timestamp: 1790072922563 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.18.1-py315heedce22_2.conda + sha256: 105d6ab365aab74dbcb057a91a4a532ac9387a0635811a29dd873dbdd85ed068 + md5: 759934dbee58cf8a9ca58558859cefd6 + depends: + - __glibc >=2.17,<3.0.a0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc >=15 + - libgfortran + - libgfortran5 >=15.3.0 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx >=15 + - numpy <2.8 + - numpy >=1.25,<3 + - numpy >=2.0.0 + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + license: BSD-3-Clause + license_family: BSD + size: 17464097 + timestamp: 1792930475373 +- conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d + md5: 3339e3b65d58accf4ca4fb8748ab16b3 + depends: + - python >=3.9 + - python + license: MIT + license_family: MIT + size: 18455 + timestamp: 1753199211006 +- conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.7.0-pyhc455866_0.conda + sha256: a32d17fe979e59fe1295875b5d4f0431a76dfbbfcee5b01e657a8aa3c4a1b5d1 + md5: 8c05910e780502e362d658f00f5ec10f + depends: + - python >=3.11 + license: BSD-3-Clause + license_family: BSD + size: 31829 + timestamp: 1789547529761 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda + build_number: 104 + sha256: a1a241d172c1ccab067ba245206dd048bc3c2d1b84504b53c9468e99adfc16a1 + md5: 676a2f9b1c4fcf57b70aa5c65f6c60d0 + depends: + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - libzlib >=1.3.2,<2.0a0 + constrains: + - xorg-libx11 >=1.8.13,<2.0a0 + license: TCL + size: 3566806 + timestamp: 1787272857910 +- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + sha256: 2b7ca858879f183ce2dcc65b300f48a0133d5430550f35b23d80d405a0788dbf + md5: abccc3810d2b97e570dee487f2b46e38 + license: LicenseRef-Public-Domain + size: 119208 + timestamp: 1792758382821 +- conda: https://conda.anaconda.org/conda-forge/linux-64/which-2.25-h171cf75_0.conda + sha256: 2bf9a40d86d29fd5c30d0febec99d06398143ddeece9ebb175cc5a6d20279943 + md5: f16d4aec5e8135e8e7bba02ef600149e + depends: + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=14 + - libgcc >=14 + license: GPL-3.0-only + license_family: GPL + size: 38560 + timestamp: 1779439547766 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-h280c20c_0.conda + sha256: 49b532d1df875c6749d9078b56a76f3f5db49a5abe0ca620b593ed474ef0ebf1 + md5: 85c9442aec283b4e464fa9ecc484a2f3 + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + license: MIT + license_family: MIT + size: 62517 + timestamp: 1786474410404 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-h0d788c3_1.conda + sha256: ef907caee0665cf3b0f775602cc50e388e3bade8ce22ecade0873ff26604b2fd + md5: aa7459ed9ad086ba11dda843d764b33d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - xorg-libice >=1.1.2,<2.0a0 + - libuuid >=2.42.2,<3.0a0 + license: MIT + license_family: MIT + size: 30739 + timestamp: 1786545374265 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.14-hb83e432_0.conda + sha256: 1815dc9900bf3a4678caeb343bccbbc74cd5e5a5ff3f6e0a2c01c5e19cd9d30b + md5: e7752792cb214013a34e265cc0838352 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libxcb >=1.17.0,<2.0a0 + license: MIT + license_family: MIT + size: 846774 + timestamp: 1792545407029 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-h7cc23a3_2.conda + sha256: 3ec065b94554dc48a4ca582a960a5484bc166b26e83ce0954653e08d17e8bd53 + md5: da33efee1a93603d92e06d4a2b68def6 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 18793 + timestamp: 1788960512381 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-h7cc23a3_2.conda + sha256: 8a095df9bc1d2e50f2504ce8858a047ae29ea634aad6cc0b43298c63361da6d9 + md5: eabfc45786244de252090cf8d55128a8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 22606 + timestamp: 1789676943335 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.7-h7cc23a3_1.conda + sha256: aa9bbe8b278aacc194e280ff5037f9f9a1f2c5b33ed97de8e7f01cfbe90dda43 + md5: e5b6b28536b81b3f4cb20db4668a4642 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - xorg-libx11 >=1.8.13,<2.0a0 + license: MIT + license_family: MIT + size: 53124 + timestamp: 1787100841900 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.13-h7cc23a3_0.conda + sha256: 008d610d6ec1d021ad678024afd5dcf534ff84d9c1e9d2877ff36d112c89896f + md5: 7249ce52789c3680e889e7335a2e1c3e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - xorg-libx11 >=1.8.13,<2.0a0 + license: MIT + license_family: MIT + size: 34604 + timestamp: 1792530399214 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.3.3-hce19668_1.conda + sha256: 8b786bb4380fa69a718b08a400040b865bc9207eda337e0a1955717c3c3a9403 + md5: 1726acec19beeed1c764385cd8622405 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + license: Zlib + license_family: Other + size: 123959 + timestamp: 1786736890973 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_7.conda + sha256: 47d682b9f6d6ec9eb1a6e6c3e75ea6273e899e78fb7fc59f81d39745009fbc60 + md5: aa459086047c0e5e27023ab19f8cb86a + depends: + - __glibc >=2.17,<3.0.a0 + - libzlib >=1.3.2,<2.0a0 + license: BSD-3-Clause + license_family: BSD + size: 601301 + timestamp: 1786599621503 diff --git a/modules/nf-core/insitugame/main.nf b/modules/nf-core/insitugame/main.nf index 7578a428ff6d..e82a99f800b0 100644 --- a/modules/nf-core/insitugame/main.nf +++ b/modules/nf-core/insitugame/main.nf @@ -6,9 +6,9 @@ process INSITUGAME { label 'process_medium' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/insitugame:1.0.7--pyhdfd78af_0': - 'quay.io/biocontainers/insitugame:1.0.7--pyhdfd78af_0' }" + container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/aa/aa25d488809b83440425f792955c529c86887805184f54ec639323723b8bf930/data' + : 'community.wave.seqera.io/library/insitugame:1.0.7--8a968e208a8a3d71' }" input: tuple val(meta), path(spatial_data) diff --git a/modules/nf-core/insitugame/meta.yml b/modules/nf-core/insitugame/meta.yml index 5d91b13805d1..812d6f9dc366 100644 --- a/modules/nf-core/insitugame/meta.yml +++ b/modules/nf-core/insitugame/meta.yml @@ -86,3 +86,16 @@ authors: - "@Lukecele" maintainers: - "@Lukecele" +containers: + docker: + linux/amd64: + name: community.wave.seqera.io/library/insitugame:1.0.7--8a968e208a8a3d71 + build_id: bd-8a968e208a8a3d71_1 + singularity: + linux/amd64: + name: oras://community.wave.seqera.io/library/insitugame:1.0.7--f127ecaee33d79ea + build_id: bd-f127ecaee33d79ea_1 + https: https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/aa/aa25d488809b83440425f792955c529c86887805184f54ec639323723b8bf930/data + conda: + linux/amd64: + lock_file: modules/nf-core/insitugame/.conda-lock/linux_amd64-bd-8a968e208a8a3d71_1.txt From 94a82cf1535b92bd20c0fea35810d695eaf55d33 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 29 Oct 2026 15:55:50 +0100 Subject: [PATCH 11/11] style(insitugame): format main.nf with nextflow lint and clean declarations --- modules/nf-core/insitugame/main.nf | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/modules/nf-core/insitugame/main.nf b/modules/nf-core/insitugame/main.nf index e82a99f800b0..fd9b374c2814 100644 --- a/modules/nf-core/insitugame/main.nf +++ b/modules/nf-core/insitugame/main.nf @@ -2,21 +2,21 @@ // See https://github.com/nf-core/modules for full license, file patching instructions and upstream contributing. process INSITUGAME { - tag "$meta.id" + tag "${meta.id}" label 'process_medium' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container + container "${workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/aa/aa25d488809b83440425f792955c529c86887805184f54ec639323723b8bf930/data' - : 'community.wave.seqera.io/library/insitugame:1.0.7--8a968e208a8a3d71' }" + : 'community.wave.seqera.io/library/insitugame:1.0.7--8a968e208a8a3d71'}" input: tuple val(meta), path(spatial_data) output: - tuple val(meta), path("*.png") , emit: figures, optional: true + tuple val(meta), path("*.png"), emit: figures, optional: true tuple val(meta), path("*.json"), emit: results - tuple val(meta), path("*.csv") , emit: tables + tuple val(meta), path("*.csv"), emit: tables tuple val("${task.process}"), val('insitugame'), eval("python -c \"import importlib.metadata; print(importlib.metadata.version('insitugame'))\""), topic: versions, emit: versions_insitugame when: @@ -27,13 +27,12 @@ process INSITUGAME { def prefix = task.ext.prefix ?: "${meta.id}" """ insitugame \\ - $args \\ - --input $spatial_data \\ + ${args} \\ + --input ${spatial_data} \\ --output-prefix ${prefix} """ stub: - def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}_results.json