From 5504259bd1b639d100bd2961da927fe84a518d09 Mon Sep 17 00:00:00 2001 From: Bboy010 Date: Wed, 30 Sep 2026 19:13:48 +0000 Subject: [PATCH 1/6] feat: add colabfold module Co-Authored-By: Claude Sonnet 5.5 --- modules/nf-core/colabfold/environment.yml | 7 ++ modules/nf-core/colabfold/main.nf | 111 ++++++++++++++++++ modules/nf-core/colabfold/meta.yml | 101 ++++++++++++++++ modules/nf-core/colabfold/tests/main.nf.test | 62 ++++++++++ .../nf-core/colabfold/tests/main.nf.test.snap | 93 +++++++++++++++ 5 files changed, 374 insertions(+) create mode 100644 modules/nf-core/colabfold/environment.yml create mode 100644 modules/nf-core/colabfold/main.nf create mode 100644 modules/nf-core/colabfold/meta.yml create mode 100644 modules/nf-core/colabfold/tests/main.nf.test create mode 100644 modules/nf-core/colabfold/tests/main.nf.test.snap diff --git a/modules/nf-core/colabfold/environment.yml b/modules/nf-core/colabfold/environment.yml new file mode 100644 index 000000000000..e6ec195199b9 --- /dev/null +++ b/modules/nf-core/colabfold/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::colabfold=1.5.5 diff --git a/modules/nf-core/colabfold/main.nf b/modules/nf-core/colabfold/main.nf new file mode 100644 index 000000000000..e943296ee75c --- /dev/null +++ b/modules/nf-core/colabfold/main.nf @@ -0,0 +1,111 @@ +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Module: COLABFOLD + Protein structure prediction with ColabFold (AlphaFold2). + + ColabFold takes its multiple sequence alignment from an MMseqs2 server + rather than from ~2.6 TB of local reference databases, so it runs without a + database download step. + + --host-url points at the public ColabFold server by default. For a run that + must not depend on an external service, point it at your own instance or + supply a local colabfold_db. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +process COLABFOLD { + tag "${meta.id}" + label 'process_high' + label 'process_gpu' + + conda "${moduleDir}/environment.yml" + container "${workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/colabfold:1.5.5--pyh7cba7a3_2' + : 'quay.io/biocontainers/colabfold:1.5.5--pyh7cba7a3_2'}" + + input: + tuple val(meta), path(fasta) + path weights + + output: + // All three are optional: with no candidate there is nothing to fold, and + // emitting a placeholder instead would hand TM-Align an empty structure. + tuple val(meta), path("*.colabfold.pdb"), emit: pdb, optional: true + tuple val(meta), path("*.plddt.tsv") , emit: plddt, optional: true + tuple val(meta), path("raw/**") , emit: raw, optional: true + tuple val("${task.process}"), val('colabfold'), eval("python -c 'import importlib.metadata as m; print(m.version(\"colabfold\"))'"), topic: versions, emit: versions_colabfold + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + // Amber relaxation only runs on a GPU; ext.use_gpu comes from process_gpu. + def relax = task.ext.use_gpu ? '--amber --use-gpu-relax' : '' + def data = weights ? "--data ${weights}" : '' + // The authors' CUDA image turns on CUDA unified memory with a pool of 4x + // the GPU's memory, spilling into host RAM. On a 6 GB card that asks for + // 24 GB of RAM, fills the task's memory and thrashes (45 min without + // finishing a 236-residue protein). A typical enzyme-sized protein fits in + // the GPU itself, so unified memory is switched off on GPU runs. + def gpu_env = task.ext.use_gpu + ? 'export TF_FORCE_UNIFIED_MEMORY=0 XLA_PYTHON_CLIENT_MEM_FRACTION=0.9' + : '' + """ + # Docker runs this container as the host's numeric UID (docker.runOptions + # -u \$(id -u):\$(id -g)), which has no /etc/passwd entry, so HOME resolves + # to '/' and colabfold's weight download fails with "Permission denied: + # '/.cache'". Give it a HOME it can write to. + export HOME="\$PWD" + # The ColabFold authors' CUDA image (-profile gpu) sets XDG_CACHE_HOME to + # /cache, which that UID cannot write either. + export XDG_CACHE_HOME="\$PWD/.cache" + ${gpu_env} + # The official ColabFold CUDA image (-profile gpu) ships 'python' only. + py=\$(command -v python3 || command -v python) + + # An empty FASTA is a legitimate outcome upstream, not an error. + if [ ! -s ${fasta} ]; then + echo "WARN: ${fasta} is empty - nothing to fold for ${prefix}, no structure emitted" >&2 + else + colabfold_batch \ + ${fasta} \ + raw \ + ${data} \ + ${relax} \ + ${args} + + # One structure per candidate: colabfold_batch names each query's best + # model _unrelaxed_rank_001_*.pdb, plus a _relaxed_ one when + # Amber ran, which is the one kept. Anything after '_bitscore_' in the + # query name is dropped from the output file name. + for pdb in raw/*_unrelaxed_rank_001_*.pdb; do + query=\$(basename "\$pdb" | sed -E 's/_unrelaxed_rank_001_.*//') + relaxed=\$(ls raw/"\$query"_relaxed_rank_001_*.pdb 2>/dev/null | head -1) + name=\$(echo "\$query" | sed -E 's/_bitscore_.*//') + cp "\${relaxed:-\$pdb}" "${prefix}.\${name}.colabfold.pdb" + done + + # Per-residue confidence, so a reader can tell a folded domain from a + # disordered tail without opening the structure. The Python is kept on + # one line and printf's newline is escaped twice in the module source: + # any line at column 0 - a Python block, or a real newline - stops + # Nextflow stripping the script's indentation. + printf 'model\tmean_plddt\\n' > ${prefix}.plddt.tsv + for json in raw/*rank_001*.json; do + "\$py" -c "import json, sys, os; s = json.load(open(sys.argv[1])).get('plddt') or []; print('%s\t%.2f' % (os.path.basename(sys.argv[1]), sum(s) / len(s) if s else 0))" "\${json}" >> ${prefix}.plddt.tsv + done + fi + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + mkdir -p raw + touch raw/${prefix}_unrelaxed_rank_001_model.pdb + touch ${prefix}.colabfold.pdb + printf 'model\tmean_plddt\\n' > ${prefix}.plddt.tsv + + """ +} diff --git a/modules/nf-core/colabfold/meta.yml b/modules/nf-core/colabfold/meta.yml new file mode 100644 index 000000000000..037c033bbae1 --- /dev/null +++ b/modules/nf-core/colabfold/meta.yml @@ -0,0 +1,101 @@ +name: colabfold +description: Predicts protein structure with AlphaFold2, taking the multiple sequence alignment from an MMseqs2 server rather than local databases +keywords: + - protein structure + - structure prediction + - AlphaFold2 + - MSA + - folding +tools: + - colabfold: + description: | + ColabFold runs AlphaFold2 (and other folding models) while sourcing its + multiple sequence alignment from a remote MMseqs2 server. That removes + the ~2.6 TB of reference databases a local AlphaFold2 install needs, + which is what makes structure prediction runnable on an ordinary + workstation. A GPU speeds inference up but is not required. + homepage: https://github.com/sokrypton/ColabFold + documentation: https://github.com/sokrypton/ColabFold + doi: 10.1038/s41592-022-01488-1 + licence: ["MIT"] + identifier: biotools:colabfold + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - fasta: + type: file + description: | + Protein sequences to fold. May be empty — an upstream screen that + found no candidate is a legitimate outcome, and the module then emits + no structure rather than a placeholder. + pattern: "*.{fa,faa,fasta}" + - weights: + type: directory + description: | + AlphaFold2 parameter directory. Pass `[]` to let colabfold_batch + download the weights into its own cache on first use. + +output: + pdb: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - "*.colabfold.pdb": + type: file + description: Best-ranked predicted structure (rank_001), one file per query sequence + pattern: "*.colabfold.pdb" + plddt: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - "*.plddt.tsv": + type: file + description: | + Mean per-model pLDDT, so a reader can tell a confidently folded + domain from a disordered tail without opening the structure. + pattern: "*.plddt.tsv" + raw: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - "raw/**": + type: file + description: colabfold_batch's full output, every model and its scores + pattern: "raw/**" + versions_colabfold: + - - ${task.process}: + type: string + description: The name of the process + - colabfold: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("colabfold"))': + type: eval + description: The expression to obtain the version of the tool + +topics: + versions: + - - ${task.process}: + type: string + description: The name of the process + - colabfold: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("colabfold"))': + type: eval + description: The expression to obtain the version of the tool + +authors: + - "@Bboy010" +maintainers: + - "@Bboy010" diff --git a/modules/nf-core/colabfold/tests/main.nf.test b/modules/nf-core/colabfold/tests/main.nf.test new file mode 100644 index 000000000000..8fccbac8bc83 --- /dev/null +++ b/modules/nf-core/colabfold/tests/main.nf.test @@ -0,0 +1,62 @@ +nextflow_process { + + name "Test Process COLABFOLD" + script "../main.nf" + process "COLABFOLD" + + tag "modules" + tag "modules_nfcore" + tag "colabfold" + + // A real fold needs the ~4 GB AlphaFold2 weights, an MMseqs2 server and + // hours of CPU (or a GPU), which no CI runner has. What can run for real is + // the empty-input path: an upstream step that finds nothing to fold is a + // normal outcome, and the module must then emit no structure rather than + // fail or hand a downstream tool an empty placeholder. + test("empty fasta - no structure emitted") { + + when { + process { + """ + def empty = File.createTempFile('empty', '.faa') + empty.deleteOnExit() + input[0] = [ [ id:'test' ], file(empty.absolutePath) ] + input[1] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.out.pdb.size() == 0 }, + { assert process.out.plddt.size() == 0 }, + { assert snapshot(process.out.findAll { key, val -> key.startsWith('versions') }).match() } + ) + } + } + + test("protein fasta - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) + ] + input[1] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/colabfold/tests/main.nf.test.snap b/modules/nf-core/colabfold/tests/main.nf.test.snap new file mode 100644 index 000000000000..51bb05e300eb --- /dev/null +++ b/modules/nf-core/colabfold/tests/main.nf.test.snap @@ -0,0 +1,93 @@ +{ + "protein fasta - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.colabfold.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.plddt.tsv:md5,8572024a10c4589f01f58e524f116f0d" + ] + ], + "2": [ + [ + { + "id": "test" + }, + "test_unrelaxed_rank_001_model.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + "COLABFOLD", + "colabfold", + "1.5.5" + ] + ], + "pdb": [ + [ + { + "id": "test" + }, + "test.colabfold.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "plddt": [ + [ + { + "id": "test" + }, + "test.plddt.tsv:md5,8572024a10c4589f01f58e524f116f0d" + ] + ], + "raw": [ + [ + { + "id": "test" + }, + "test_unrelaxed_rank_001_model.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions_colabfold": [ + [ + "COLABFOLD", + "colabfold", + "1.5.5" + ] + ] + } + ], + "timestamp": "2026-09-30T19:09:38.216264026", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + }, + "empty fasta - no structure emitted": { + "content": [ + { + "versions_colabfold": [ + [ + "COLABFOLD", + "colabfold", + "1.5.5" + ] + ] + } + ], + "timestamp": "2026-09-30T19:09:19.808293056", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + } +} \ No newline at end of file From ab93c8ebe1c04a75ec3df58ea6639be169fbefef Mon Sep 17 00:00:00 2001 From: Bboy010 Date: Thu, 15 Oct 2026 11:49:25 +0000 Subject: [PATCH 2/6] colabfold: emit native colabfold_batch outputs, meta2 weights, sanitizeOutput snapshots Same adjustments as requested in the tmalign review (#13065): - Emit colabfold_batch's own files (pdb, scores json, a3m, png, log) instead of copying rank_001 models in a loop and computing a custom pLDDT table; per-residue pLDDT is already in the scores json and the PDB B-factor column. - Weights input is now a tuple with meta2. - Remove the header comment block and pipeline-specific workarounds (query-name trimming, unified-memory env, CUDA-image cache path); Amber relaxation is now opt-in through ext.args. - Tests snapshot sanitizeOutput(process.out). Co-Authored-By: Claude Opus 5.5 --- modules/nf-core/colabfold/main.nf | 101 ++++-------------- modules/nf-core/colabfold/meta.yml | 80 +++++++++----- modules/nf-core/colabfold/tests/main.nf.test | 22 ++-- .../nf-core/colabfold/tests/main.nf.test.snap | 86 +++++++-------- 4 files changed, 130 insertions(+), 159 deletions(-) diff --git a/modules/nf-core/colabfold/main.nf b/modules/nf-core/colabfold/main.nf index e943296ee75c..214e09a76d20 100644 --- a/modules/nf-core/colabfold/main.nf +++ b/modules/nf-core/colabfold/main.nf @@ -1,18 +1,3 @@ -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Module: COLABFOLD - Protein structure prediction with ColabFold (AlphaFold2). - - ColabFold takes its multiple sequence alignment from an MMseqs2 server - rather than from ~2.6 TB of local reference databases, so it runs without a - database download step. - - --host-url points at the public ColabFold server by default. For a run that - must not depend on an external service, point it at your own instance or - supply a local colabfold_db. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - process COLABFOLD { tag "${meta.id}" label 'process_high' @@ -25,87 +10,47 @@ process COLABFOLD { input: tuple val(meta), path(fasta) - path weights + tuple val(meta2), path(weights) output: - // All three are optional: with no candidate there is nothing to fold, and - // emitting a placeholder instead would hand TM-Align an empty structure. - tuple val(meta), path("*.colabfold.pdb"), emit: pdb, optional: true - tuple val(meta), path("*.plddt.tsv") , emit: plddt, optional: true - tuple val(meta), path("raw/**") , emit: raw, optional: true + tuple val(meta), path("${prefix}/*_rank_*.pdb") , emit: pdb , optional: true + tuple val(meta), path("${prefix}/*_scores_rank_*.json"), emit: json, optional: true + tuple val(meta), path("${prefix}/*.a3m") , emit: a3m , optional: true + tuple val(meta), path("${prefix}/*.png") , emit: png , optional: true + tuple val(meta), path("${prefix}/log.txt") , emit: log , optional: true tuple val("${task.process}"), val('colabfold'), eval("python -c 'import importlib.metadata as m; print(m.version(\"colabfold\"))'"), topic: versions, emit: versions_colabfold when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - // Amber relaxation only runs on a GPU; ext.use_gpu comes from process_gpu. - def relax = task.ext.use_gpu ? '--amber --use-gpu-relax' : '' - def data = weights ? "--data ${weights}" : '' - // The authors' CUDA image turns on CUDA unified memory with a pool of 4x - // the GPU's memory, spilling into host RAM. On a 6 GB card that asks for - // 24 GB of RAM, fills the task's memory and thrashes (45 min without - // finishing a 236-residue protein). A typical enzyme-sized protein fits in - // the GPU itself, so unified memory is switched off on GPU runs. - def gpu_env = task.ext.use_gpu - ? 'export TF_FORCE_UNIFIED_MEMORY=0 XLA_PYTHON_CLIENT_MEM_FRACTION=0.9' - : '' + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def data = weights ? "--data ${weights}" : '' """ - # Docker runs this container as the host's numeric UID (docker.runOptions - # -u \$(id -u):\$(id -g)), which has no /etc/passwd entry, so HOME resolves - # to '/' and colabfold's weight download fails with "Permission denied: - # '/.cache'". Give it a HOME it can write to. + # Under Docker the container runs as the host UID, which has no home + # directory; colabfold_batch needs a writable HOME for its cache. export HOME="\$PWD" - # The ColabFold authors' CUDA image (-profile gpu) sets XDG_CACHE_HOME to - # /cache, which that UID cannot write either. - export XDG_CACHE_HOME="\$PWD/.cache" - ${gpu_env} - # The official ColabFold CUDA image (-profile gpu) ships 'python' only. - py=\$(command -v python3 || command -v python) - # An empty FASTA is a legitimate outcome upstream, not an error. if [ ! -s ${fasta} ]; then - echo "WARN: ${fasta} is empty - nothing to fold for ${prefix}, no structure emitted" >&2 + echo "WARN: ${fasta} is empty, no structure predicted" >&2 else - colabfold_batch \ - ${fasta} \ - raw \ - ${data} \ - ${relax} \ + colabfold_batch \\ + ${fasta} \\ + ${prefix} \\ + ${data} \\ ${args} - - # One structure per candidate: colabfold_batch names each query's best - # model _unrelaxed_rank_001_*.pdb, plus a _relaxed_ one when - # Amber ran, which is the one kept. Anything after '_bitscore_' in the - # query name is dropped from the output file name. - for pdb in raw/*_unrelaxed_rank_001_*.pdb; do - query=\$(basename "\$pdb" | sed -E 's/_unrelaxed_rank_001_.*//') - relaxed=\$(ls raw/"\$query"_relaxed_rank_001_*.pdb 2>/dev/null | head -1) - name=\$(echo "\$query" | sed -E 's/_bitscore_.*//') - cp "\${relaxed:-\$pdb}" "${prefix}.\${name}.colabfold.pdb" - done - - # Per-residue confidence, so a reader can tell a folded domain from a - # disordered tail without opening the structure. The Python is kept on - # one line and printf's newline is escaped twice in the module source: - # any line at column 0 - a Python block, or a real newline - stops - # Nextflow stripping the script's indentation. - printf 'model\tmean_plddt\\n' > ${prefix}.plddt.tsv - for json in raw/*rank_001*.json; do - "\$py" -c "import json, sys, os; s = json.load(open(sys.argv[1])).get('plddt') or []; print('%s\t%.2f' % (os.path.basename(sys.argv[1]), sum(s) / len(s) if s else 0))" "\${json}" >> ${prefix}.plddt.tsv - done fi """ stub: - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" """ - mkdir -p raw - touch raw/${prefix}_unrelaxed_rank_001_model.pdb - touch ${prefix}.colabfold.pdb - printf 'model\tmean_plddt\\n' > ${prefix}.plddt.tsv - + mkdir ${prefix} + touch ${prefix}/${prefix}_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb + touch ${prefix}/${prefix}_scores_rank_001_alphafold2_ptm_model_1_seed_000.json + touch ${prefix}/${prefix}.a3m + touch ${prefix}/${prefix}_plddt.png + touch ${prefix}/log.txt """ } diff --git a/modules/nf-core/colabfold/meta.yml b/modules/nf-core/colabfold/meta.yml index 037c033bbae1..c0bf71a649b3 100644 --- a/modules/nf-core/colabfold/meta.yml +++ b/modules/nf-core/colabfold/meta.yml @@ -1,5 +1,6 @@ name: colabfold -description: Predicts protein structure with AlphaFold2, taking the multiple sequence alignment from an MMseqs2 server rather than local databases +description: Predicts protein structure with AlphaFold2, taking the multiple + sequence alignment from an MMseqs2 server rather than local databases keywords: - protein structure - structure prediction @@ -10,10 +11,12 @@ tools: - colabfold: description: | ColabFold runs AlphaFold2 (and other folding models) while sourcing its - multiple sequence alignment from a remote MMseqs2 server. That removes - the ~2.6 TB of reference databases a local AlphaFold2 install needs, - which is what makes structure prediction runnable on an ordinary - workstation. A GPU speeds inference up but is not required. + multiple sequence alignment from a remote MMseqs2 server, which removes + the ~2.6 TB of reference databases a local AlphaFold2 install needs. + The public server (api.colabfold.com) is used by default; pass + `--host-url` through `ext.args` to use your own instance. A GPU speeds + inference up but is not required; Amber relaxation is enabled with + `--amber` (and `--use-gpu-relax` on a GPU). homepage: https://github.com/sokrypton/ColabFold documentation: https://github.com/sokrypton/ColabFold doi: 10.1038/s41592-022-01488-1 @@ -29,15 +32,20 @@ input: - fasta: type: file description: | - Protein sequences to fold. May be empty — an upstream screen that - found no candidate is a legitimate outcome, and the module then emits - no structure rather than a placeholder. + Protein sequences to fold, one prediction per record. An empty file + is accepted and produces no output. pattern: "*.{fa,faa,fasta}" - - weights: - type: directory - description: | - AlphaFold2 parameter directory. Pass `[]` to let colabfold_batch - download the weights into its own cache on first use. + - - meta2: + type: map + description: | + Groovy Map containing weights information + e.g. [ id:'alphafold2_params' ] + - weights: + type: directory + description: | + ColabFold data directory containing the AlphaFold2 parameters + (`params/`). Pass `[]` to let colabfold_batch download them into its + own cache on first use. output: pdb: @@ -46,32 +54,54 @@ output: description: | Groovy Map containing sample information e.g. [ id:'sample1' ] - - "*.colabfold.pdb": + - ${prefix}/*_rank_*.pdb: + type: file + description: | + Predicted structures, named + _{unrelaxed,relaxed}_rank___seed_.pdb; + rank_001 is the best model. Per-residue pLDDT is stored in the + B-factor column. + pattern: "*_rank_*.pdb" + json: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - ${prefix}/*_scores_rank_*.json: type: file - description: Best-ranked predicted structure (rank_001), one file per query sequence - pattern: "*.colabfold.pdb" - plddt: + description: Per-model scores (per-residue pLDDT, PAE, pTM) + pattern: "*_scores_rank_*.json" + a3m: - - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'sample1' ] - - "*.plddt.tsv": + - ${prefix}/*.a3m: type: file + description: Multiple sequence alignment used for each query + pattern: "*.a3m" + png: + - - meta: + type: map description: | - Mean per-model pLDDT, so a reader can tell a confidently folded - domain from a disordered tail without opening the structure. - pattern: "*.plddt.tsv" - raw: + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - ${prefix}/*.png: + type: file + description: pLDDT, PAE and MSA coverage plots + pattern: "*.png" + log: - - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'sample1' ] - - "raw/**": + - ${prefix}/log.txt: type: file - description: colabfold_batch's full output, every model and its scores - pattern: "raw/**" + description: colabfold_batch log + pattern: "log.txt" versions_colabfold: - - ${task.process}: type: string diff --git a/modules/nf-core/colabfold/tests/main.nf.test b/modules/nf-core/colabfold/tests/main.nf.test index 8fccbac8bc83..4ea4d1ee9ee3 100644 --- a/modules/nf-core/colabfold/tests/main.nf.test +++ b/modules/nf-core/colabfold/tests/main.nf.test @@ -8,12 +8,10 @@ nextflow_process { tag "modules_nfcore" tag "colabfold" - // A real fold needs the ~4 GB AlphaFold2 weights, an MMseqs2 server and - // hours of CPU (or a GPU), which no CI runner has. What can run for real is - // the empty-input path: an upstream step that finds nothing to fold is a - // normal outcome, and the module must then emit no structure rather than - // fail or hand a downstream tool an empty placeholder. - test("empty fasta - no structure emitted") { + // A real prediction needs the ~4 GB AlphaFold2 weights, which no CI runner + // has. What can run for real is the empty-input path, where the module + // must succeed and emit no structure. + test("empty fasta") { when { process { @@ -21,7 +19,7 @@ nextflow_process { def empty = File.createTempFile('empty', '.faa') empty.deleteOnExit() input[0] = [ [ id:'test' ], file(empty.absolutePath) ] - input[1] = [] + input[1] = [ [:], [] ] """ } } @@ -29,14 +27,12 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert process.out.pdb.size() == 0 }, - { assert process.out.plddt.size() == 0 }, - { assert snapshot(process.out.findAll { key, val -> key.startsWith('versions') }).match() } + { assert snapshot(sanitizeOutput(process.out)).match() } ) } } - test("protein fasta - stub") { + test("proteomics - faa - stub") { options "-stub" @@ -47,7 +43,7 @@ nextflow_process { [ id:'test' ], file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) ] - input[1] = [] + input[1] = [ [:], [] ] """ } } @@ -55,7 +51,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot(sanitizeOutput(process.out)).match() } ) } } diff --git a/modules/nf-core/colabfold/tests/main.nf.test.snap b/modules/nf-core/colabfold/tests/main.nf.test.snap index 51bb05e300eb..bf30de7d5b84 100644 --- a/modules/nf-core/colabfold/tests/main.nf.test.snap +++ b/modules/nf-core/colabfold/tests/main.nf.test.snap @@ -1,60 +1,78 @@ { - "protein fasta - stub": { + "empty fasta": { "content": [ { - "0": [ + "a3m": [ + + ], + "json": [ + + ], + "log": [ + + ], + "pdb": [ + + ], + "png": [ + + ], + "versions_colabfold": [ [ - { - "id": "test" - }, - "test.colabfold.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + "COLABFOLD", + "colabfold", + "1.5.5" ] - ], - "1": [ + ] + } + ], + "timestamp": "2026-10-15T11:47:31.473614942", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + }, + "proteomics - faa - stub": { + "content": [ + { + "a3m": [ [ { "id": "test" }, - "test.plddt.tsv:md5,8572024a10c4589f01f58e524f116f0d" + "test.a3m:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "2": [ + "json": [ [ { "id": "test" }, - "test_unrelaxed_rank_001_model.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + "test_scores_rank_001_alphafold2_ptm_model_1_seed_000.json:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "3": [ - [ - "COLABFOLD", - "colabfold", - "1.5.5" - ] - ], - "pdb": [ + "log": [ [ { "id": "test" }, - "test.colabfold.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + "log.txt:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "plddt": [ + "pdb": [ [ { "id": "test" }, - "test.plddt.tsv:md5,8572024a10c4589f01f58e524f116f0d" + "test_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "raw": [ + "png": [ [ { "id": "test" }, - "test_unrelaxed_rank_001_model.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + "test_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "versions_colabfold": [ @@ -66,25 +84,7 @@ ] } ], - "timestamp": "2026-09-30T19:09:38.216264026", - "meta": { - "nf-test": "0.9.5", - "nextflow": "26.04.0" - } - }, - "empty fasta - no structure emitted": { - "content": [ - { - "versions_colabfold": [ - [ - "COLABFOLD", - "colabfold", - "1.5.5" - ] - ] - } - ], - "timestamp": "2026-09-30T19:09:19.808293056", + "timestamp": "2026-10-15T11:47:47.417058992", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" From a260a907441b354f685488d3b2a8a83b0eff800b Mon Sep 17 00:00:00 2001 From: Bboy010 Date: Sat, 24 Oct 2026 19:25:15 +0000 Subject: [PATCH 3/6] =?UTF-8?q?colabfold:=20address=20review=20=E2=80=94?= =?UTF-8?q?=20Wave=20containers,=20GPU=20path=20with=20a=20real=20test,=20?= =?UTF-8?q?meta.yml=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Containers: Seqera Wave builds. CPU via `nf-core modules containers create` (amd64; the arm64 builds failed on the Wave side). GPU variant from environment.gpu.yml (CUDA 12.0, jaxlib 0.4.25 cuda build, built with --build-template conda/micromamba:v2), selected with task.accelerator following the dual-container pattern of the GPU modules guide. - Pin dm-haiku=0.0.12 and flax=0.8.2: a fresh solve of colabfold 1.5.5 pulls dm-haiku 0.0.17, which fails at the first prediction with jax 0.4.25. - CUDA 12.0 rather than 11.8: the jaxlib cuda118 build has no ptxas, so ColabFold skipped every prediction while still exiting 0. - Emit the CUDA version on the versions topic (no CUDA available on CPU). - Tests: real single-sequence prediction of l_arginase in main.gpu.nf.test (tag gpu, nextflow.gpu.config sets accelerator = 1); CPU tests renamed to - - ; bare `assert process.success` before assertAll. - meta.yml: args_id, EDAM ontologies, one-line descriptions, weights marked Optional. Co-Authored-By: Claude Opus 5.5 --- .../linux_amd64-bd-50a22b7e73876edb_1.txt | 3001 +++++++++++++++++ modules/nf-core/colabfold/environment.gpu.yml | 14 + modules/nf-core/colabfold/environment.yml | 5 +- modules/nf-core/colabfold/main.nf | 7 +- modules/nf-core/colabfold/meta.yml | 65 +- .../nf-core/colabfold/tests/main.gpu.nf.test | 65 + .../colabfold/tests/main.gpu.nf.test.snap | 136 + modules/nf-core/colabfold/tests/main.nf.test | 11 +- .../nf-core/colabfold/tests/main.nf.test.snap | 20 +- .../colabfold/tests/nextflow.gpu.config | 8 + 10 files changed, 3304 insertions(+), 28 deletions(-) create mode 100644 modules/nf-core/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt create mode 100644 modules/nf-core/colabfold/environment.gpu.yml create mode 100644 modules/nf-core/colabfold/tests/main.gpu.nf.test create mode 100644 modules/nf-core/colabfold/tests/main.gpu.nf.test.snap create mode 100644 modules/nf-core/colabfold/tests/nextflow.gpu.config diff --git a/modules/nf-core/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt b/modules/nf-core/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt new file mode 100644 index 000000000000..7cb6f753318c --- /dev/null +++ b/modules/nf-core/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt @@ -0,0 +1,3001 @@ +version: 6 +environments: + default: + channels: + - url: https://conda.anaconda.org/conda-forge/ + - url: https://conda.anaconda.org/bioconda/ + - url: https://conda.anaconda.org/bioconda/ + - url: https://conda.anaconda.org/conda-forge/ + 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/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/absl-py-2.5.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aom-3.14.1-pl5321h57e6904_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aria2-1.37.0-h4e1c2bf_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.4-h4610da3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.15-h6bbde05_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.14.3-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h01ee8f8_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.11.0-hbe094ff_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.27.5-h4f381ba_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.13.1-h7508075_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.7-h01ee8f8_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h01ee8f8_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.8.0-py311hdac8cdf_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/biopython-1.82-py311h459d7ec_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-he440d0b_1.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/brotli-python-1.2.1-py311heb3be6f_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/linux-64/c-ares-1.34.9-hebe6cf0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-2.0.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-2.0.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.10.23-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/charset-normalizer-3.5.2-h1114479_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/chex-0.1.86-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/colabfold-1.5.5-pyh7cba7a3_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py311h724c32c_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.11.17-py311hd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.8.0-h4ba93d1_13.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyhc8e2a94_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/dm-haiku-0.0.12-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/dm-tree-0.1.8-py311hbffca5d_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/etils-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/flatbuffers-24.3.25-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/flax-0.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.67.0-py311h92159aa_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.3-ha770c72_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/gast-0.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gawk-5.4.1-h0a3468a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-ha257d8a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hfd2156b_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-pasta-0.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.62.2-py311ha6695c7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.16.0-nompi_py311h73d0c7d_105.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-2.2.0-nompi_hc529623_100.conda + - conda: https://conda.anaconda.org/bioconda/linux-64/hhsuite-3.3.0-h503566f_15.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.20-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-10.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-10.0.0-h392f40e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-7.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.17.1-pyh53cf698_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jax-0.4.25-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/jaxlib-0.4.25-cpu_py311hce36131_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.20.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jmp-0.0.4-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/bioconda/linux-64/kalign2-2.04-h7b50bb2_8.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/keras-3.11.2-pyh753f3f9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-h7cc23a3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.5.1-py311h4c6fd42_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-hbc21106_2.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/libabseil-20240116.2-cxx17_he02047a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.5-h088129d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.25.1-h0e23cf9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.4.2-h3ef1eba_4.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/libcurl-8.21.0-hcf29cc6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdav1d7-1.5.4-hebe6cf0_4.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/libev-4.33-h280c20c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.5-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/libgettextpo-0.25.1-h0e23cf9_2.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/libgomp-16.2.0-he0feb66_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.62.2-h15f2491_0.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.0-hb03c661_1.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/liblzma-devel-5.8.3-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h74cf4be_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.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/libprotobuf-4.25.3-hd5b35b9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpython-3.11.17-h0c77377_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h5a48ba9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.4-h0737f62_102.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-h6154650_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/libxcrypt-4.4.38-h280c20c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.9-h04c0eec_0.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/lz4-c-1.10.0-hee9eb32_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.11.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.4-py311h364832d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.9-py311h0f3be63_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ml-collections-1.0.0-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ml_dtypes-0.4.0-py311h7db5c69_2.conda + - conda: https://conda.anaconda.org/bioconda/linux-64/mmseqs2-18.8cc5c-hd6d6fdc_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-ha2cb11d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.3-py311h4c6fd42_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/namex-0.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-2.3.4-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-system-1.0.0-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/opencl-headers-2025.06.13-hecca717_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/openmm-8.0.0-py311h9766050_4.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/opt-einsum-3.4.0-hd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opt_einsum-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/optax-0.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/optree-0.20.0-py311h5f908af_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/orbax-checkpoint-0.4.4-pyhd8ed1ab_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.0.6-np2py311h1e9b377_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.7-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pdbfixer-1.9-pyh1a96a4e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/perl-5.44.0-1_h7cc23a3_perl5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-13.0.0-py311hf303fd3_0.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/noarch/prompt-toolkit-3.0.53-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/protobuf-4.25.3-py311hbffca5d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py311h194be0f_3.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/ptyprocess-0.7.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/py3dmol-2.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.3-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.17-h5f976f7_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-abi3-3.11-ha8785bc_3.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-flatbuffers-25.12.19-pyh9d96877_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.11.17-hd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.5-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.11-9_cp311.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py311h3778330_1.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/rav1e-0.8.1-h1fbca29_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-hd6e31c0_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-15.0.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.7.6-h7e3ee7f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py311hbe70eeb_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.2.1-pyhe730653_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h34e00bb_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/svt-av1-4.2.0-hd2095e1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.10.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tensorboard-2.17.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tensorboard-data-server-0.7.0-py311h97c413e_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tensorflow-base-2.17.0-cpu_py311h0e3e7eb_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tensorstore-0.1.65-py311he109767_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/termcolor-3.3.0-pyhd8ed1ab_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/toolz-1.2.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.70.1-pyhfa0c392_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.16.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-18.0.0-py311h0d48ccd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.8.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wcwidth-0.9.3-py311hd139983_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.1.9-pyh5ded981_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/wrapt-2.5.1-py311h194be0f_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/xz-5.8.3-ha02ee65_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.3-ha02ee65_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.3-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-hebe6cf0_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.2-h25fd6f3_3.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/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + sha256: 2a7204314663eeda5dec482a956f0e2eaf289bd5b9953eaaaad0e81aa64638f2 + md5: 3845f3d75991bae0fb90884662f4327c + depends: + - cpython + - python-gil + license: MIT + license_family: MIT + size: 8144 + timestamp: 1784221492234 +- conda: https://conda.anaconda.org/conda-forge/noarch/absl-py-2.5.1-pyh5ded981_0.conda + sha256: 9cb0eeb0b6a1ff78c2cc08e08d538858cfbfd6a8f75b94302f39bd031edded09 + md5: d109f9e8818dc94d2e42e3044a048aff + depends: + - python >=3.11 + - python + license: Apache-2.0 + license_family: APACHE + size: 121380 + timestamp: 1791814996533 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aom-3.14.1-pl5321h57e6904_2.conda + sha256: bcfe516fdebf4503ab10c7968ee880774ce1adee6e055738ca53c81745cfdd58 + md5: 5fabcad67aa128f07f269066ee7fdde6 + depends: + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + license: BSD-2-Clause + license_family: BSD + size: 3246374 + timestamp: 1787256015178 +- conda: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda + sha256: 5b9ef6d338525b332e17c3ed089ca2f53a5d74b7a7b432747d29c6466e39346d + md5: f4e90937bbfc3a4a92539545a37bb448 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 14835 + timestamp: 1733754069532 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aria2-1.37.0-h4e1c2bf_3.conda + sha256: f6a2a834482924e5260701576bf63f32cb4b6456d1a2c414a5b49691307faac5 + md5: 216b4c1584c711126c5b8cfe0c5c01ee + depends: + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=14 + - libgcc >=14 + - libsqlite >=3.51.1,<4.0a0 + - libxml2 >=2.13.9,<2.14.0a0 + - openssl >=3.5.4,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - c-ares >=1.34.6,<2.0a0 + - libssh2 >=1.11.1,<2.0a0 + license: GPL-2.0-only + license_family: GPL + size: 1829727 + timestamp: 1765244345828 +- conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.2-pyhd8ed1ab_0.conda + sha256: fbbd8ce60cbd5c16f3fe559eb644551f94285caff30985ea961ff851c1cf25ac + md5: 89d495168582cb00428dad699d149624 + depends: + - python >=3.10 + constrains: + - astroid >=2,<5 + license: Apache-2.0 + license_family: Apache + size: 34639 + timestamp: 1783975742052 +- conda: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_3.conda + sha256: 7304f265f146235c34e24db310a94648aa306ca0b2a4a12042bf96da1881f99c + md5: d3f195dfdbbf736e4ec178bbec2a975c + depends: + - python >=3.9 + - six >=1.6.1,<2.0 + license: BSD-3-Clause AND PSF-2.0 + size: 18143 + timestamp: 1736248194225 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.4-h4610da3_2.conda + sha256: 0c92dc5ddf4edd4038a63adb79f9f0b03f61e9455ce3253b7d2cf708e06ff99e + md5: cefa84dbf94066e7a6902af288a2fedd + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - aws-c-http >=0.11.0,<0.11.1.0a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - aws-c-io >=0.27.5,<0.27.6.0a0 + - aws-c-sdkutils >=0.2.7,<0.2.8.0a0 + - aws-c-cal >=0.9.15,<0.9.16.0a0 + license: Apache-2.0 + license_family: APACHE + size: 135127 + timestamp: 1785199053057 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.15-h6bbde05_1.conda + sha256: 6eb21a0129e0aa7c6be733c7f2d1de6bc97a60c8382c1016f19dced722600d73 + md5: 8f2b374c79908f271be3d0e9f1c462a8 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - libgcc >=14 + - openssl >=3.5.7,<4.0a0 + license: Apache-2.0 + license_family: Apache + size: 56630 + timestamp: 1785157790550 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.14.3-hb03c661_0.conda + sha256: 8ea79f36d50ba90d7147fe1a047f9a7f2d33b114a3d4bacf1360cd8df43986e4 + md5: ce8664d7c01d4a598ad38107b289b5ec + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: Apache-2.0 + license_family: Apache + size: 245819 + timestamp: 1784596136918 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h01ee8f8_5.conda + sha256: 27f8581573c533a92a1a9619516ebb66d390b9923d296331985cfd342dc32d29 + md5: ae862abdbb3160f97478d3d4749164c0 + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 22282 + timestamp: 1785157574179 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.11.0-hbe094ff_5.conda + sha256: a4a5e24b398e7c0ef64de5a341ecb3f0fa87c2879177695c5d0bcbde0c4f8b5e + md5: c09f7ec7327b8bd52fc2d6eacaa18d3b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - aws-c-io >=0.27.5,<0.27.6.0a0 + - aws-c-cal >=0.9.15,<0.9.16.0a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - aws-c-compression >=0.3.2,<0.3.3.0a0 + license: Apache-2.0 + license_family: APACHE + size: 231270 + timestamp: 1785186134512 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.27.5-h4f381ba_1.conda + sha256: 76ab4eb6cae12e14244cb1fe11ecccc2f103f8ffa7e80e222099c6b16c19ae20 + md5: 948f5a4fddac779b7942626e5807caba + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - aws-c-cal >=0.9.15,<0.9.16.0a0 + - s2n >=1.7.6,<1.7.7.0a0 + license: Apache-2.0 + license_family: APACHE + size: 183633 + timestamp: 1785170070776 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.13.1-h7508075_1.conda + sha256: d24f7f34b3b564535b533b17176e71f71b6944aa2cb71813283bece139908d9f + md5: 2daf54d3eef87b757f68d7597534dd2f + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - aws-c-http >=0.11.0,<0.11.1.0a0 + - aws-c-auth >=0.10.4,<0.10.5.0a0 + - openssl >=3.5.7,<4.0a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - aws-checksums >=0.2.10,<0.2.11.0a0 + - aws-c-io >=0.27.5,<0.27.6.0a0 + - aws-c-cal >=0.9.15,<0.9.16.0a0 + license: Apache-2.0 + license_family: APACHE + size: 157667 + timestamp: 1785351292770 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.7-h01ee8f8_3.conda + sha256: b308c393a3db78cef29942c6b83ca7321f86d357fbb47504d59f55254601c87a + md5: 412f0cf18cc4c4945655dba954ca2d76 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - aws-c-common >=0.14.3,<0.14.4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 68574 + timestamp: 1785159234141 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h01ee8f8_5.conda + sha256: f8d2cd9faccb273df739fc28431b484a90aca10027ef44f7fec1d4f0bd229a76 + md5: 4d70caf5260e0787675c3bf61ae5b64c + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 101887 + timestamp: 1785159213897 +- conda: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.8.0-py311hdac8cdf_1.conda + sha256: 76c3d51f543d8d64ae6ad2a8a575e841df17b76f2c9f4b10235898f02f47287f + md5: 1ecbd4939647a014c2da8489519a93c7 + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - zstd >=1.5.7,<1.6.0a0 + - python_abi 3.11.* *_cp311 + license: Python-2.0 + size: 249203 + timestamp: 1792690547998 +- conda: https://conda.anaconda.org/conda-forge/linux-64/biopython-1.82-py311h459d7ec_0.conda + sha256: 39d84052242b9a85cf1f2b49fac654cc0be1e125b9af6d38674c8b394b0590b7 + md5: 9efbc77b8265425656c19a9a5cd7a4b9 + depends: + - libgcc-ng >=12 + - numpy + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: LicenseRef-Biopython + size: 3358893 + timestamp: 1703262149442 +- conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-he440d0b_1.conda + sha256: e7af5d1183b06a206192ff440e08db1c4e8b2ca1f8376ee45fb2f3a85d4ee45d + md5: 2c2fae981fd2afd00812c92ac47d023d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - lz4-c >=1.10.0,<1.11.0a0 + - snappy >=1.2.1,<1.3.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + size: 48427 + timestamp: 1733513201413 +- 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/brotli-python-1.2.1-py311heb3be6f_0.conda + sha256: 8dd147ac02fbf7d6213e5e1859096bb606265bce24dab6696c34c543ff93b97f + md5: fea6c1e36427ac60dc3ecd31314dffe8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - libbrotlicommon 1.2.1 h39a168f_0 + license: MIT + license_family: MIT + size: 367877 + timestamp: 1792653779091 +- 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/linux-64/c-ares-1.34.9-hebe6cf0_0.conda + sha256: bd95dd25b80b5c4faf5349542377bf89b2794e23d0f7aa7f1c431e4f3b633f3c + md5: 78b505af04bf7a87ca957ef0cb5946f5 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 233759 + timestamp: 1792507024648 +- 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/noarch/cached-property-2.0.1-pyhcf101f3_0.conda + sha256: 39358005c3cc44d8315ed79789b18a960d69365be979970cc6bae8f7a6177703 + md5: 70e764e549c6c25de5e429d6e4a28b39 + depends: + - cached_property >=2.0.1,<2.0.2.0a0 + license: BSD-3-Clause + license_family: BSD + size: 3720 + timestamp: 1787678456483 +- conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-2.0.1-pyhcf101f3_0.conda + sha256: 4bd96dab5a434e4ee59fb6910cae704d4c5b453907d4886272a9943d37e42b6f + md5: 256d863ded0f79464391a075944d24a6 + depends: + - python >=3.10 + - python + license: BSD-3-Clause + license_family: BSD + size: 16597 + timestamp: 1787678456483 +- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.10.23-pyhd8ed1ab_0.conda + sha256: 04e641ccaa58278b431e97f2a43090bafc676436d04b5860dfd9b18166f2b326 + md5: 484e26532435808425148c83bf58aa0b + depends: + - python >=3.11 + license: ISC + size: 135537 + timestamp: 1792764012327 +- conda: https://conda.anaconda.org/conda-forge/linux-64/charset-normalizer-3.5.2-h1114479_0.conda + noarch: python + sha256: e4f04b45d68716fcc47c808aeacbf165f6f295fb91bd20b91aa38942b8d2cdc6 + md5: 78d5c6112c9320a1a797935cecfec7c2 + depends: + - python + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - _python_abi3_support 1.* + - cpython >=3.9 + license: MIT + license_family: MIT + size: 217200 + timestamp: 1790766086110 +- conda: https://conda.anaconda.org/conda-forge/noarch/chex-0.1.86-pyhd8ed1ab_0.conda + sha256: a95341e3131c7d9ad06188e0b5b8da3aa63214689bad5c7a0685c21800dacf26 + md5: a07f390c9f7e17295521faf5385e136f + depends: + - absl-py >=0.9.0 + - jax >=0.4.16 + - jaxlib >=0.1.37 + - numpy >=1.24.1 + - python >=3.9 + - toolz >=0.9.0 + - typing-extensions >=4.2.0 + license: Apache-2.0 + license_family: APACHE + size: 77788 + timestamp: 1710851026888 +- conda: https://conda.anaconda.org/bioconda/noarch/colabfold-1.5.5-pyh7cba7a3_2.tar.bz2 + sha256: d5a57fec9846c676c6cd1b689de49d6cea512b99e0f36b1b4d829266eea4f43d + md5: aa49aa68e6e041a3853613526e5b3ab0 + depends: + - absl-py + - appdirs + - biopython <=1.82 + - dm-haiku >=0.0.12 + - dm-tree + - hhsuite >=3.3.0 + - importlib-metadata + - jax >=0.4.23,<0.4.26 + - jaxlib >=0.4.23,<0.4.26 + - kalign2 >=2.04 + - matplotlib-base + - ml-collections + - mmseqs2 >=15.6f452 + - numpy + - openmm >=7.7.0,<8.1.0 + - pandas + - pdbfixer + - py3dmol + - python + - requests + - scipy + - tensorflow-base >=2.12.1 cpu* + - tqdm + license: MIT + size: 219613 + timestamp: 1713336435246 +- conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py311h724c32c_4.conda + sha256: fd7aca059253cff3d8b0aec71f0c1bf2904823b13f1997bf222aea00a76f3cce + md5: d04e508f5a03162c8bab4586a65d00bf + depends: + - numpy >=1.25 + - python + - libstdcxx >=14 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 320553 + timestamp: 1769155975008 +- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.11.17-py311hd8ed1ab_2.conda + noarch: generic + sha256: 1c59629c8936b9f8d619e97bcc55515326faadcc831d5183fb95c7ce427ca68e + md5: 38d49d6f7c2de06e3436729007af700d + depends: + - python >=3.11,<3.12.0a0 + - python_abi * *_cp311 + license: Python-2.0 + size: 49151 + timestamp: 1791909594927 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.8.0-h4ba93d1_13.conda + sha256: 1797bacaf5350f272413c7f50787c01aef0e8eb955df0f0db144b10be2819752 + md5: eb43f5f1f16e2fad2eba22219c3e499b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + constrains: + - __cuda >=11 + license: LicenseRef-NVIDIA-End-User-License-Agreement + size: 715605660 + timestamp: 1706881738892 +- 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/dataclasses-0.8-pyhc8e2a94_3.tar.bz2 + sha256: 63a83e62e0939bc1ab32de4ec736f6403084198c4639638b354a352113809c92 + md5: a362b2124b06aad102e2ee4581acee7d + depends: + - python >=3.7 + license: Apache-2.0 + license_family: APACHE + size: 9870 + timestamp: 1628958582931 +- conda: https://conda.anaconda.org/conda-forge/noarch/dm-haiku-0.0.12-pyhd8ed1ab_0.conda + sha256: accf2f1d11989adf1d321b90a2165997dd2b900555558d5f588ee4fa9b77cfcb + md5: ce5a99dacf46b9c87eaff773fa96543f + depends: + - absl-py >=0.7.1 + - flax >=0.7.1 + - jmp >=0.0.2 + - numpy >=1.18.0 + - python >=3.6 + - tabulate >=0.8.9 + license: Apache-2.0 + license_family: OTHER + size: 222477 + timestamp: 1709158647017 +- conda: https://conda.anaconda.org/conda-forge/linux-64/dm-tree-0.1.8-py311hbffca5d_5.conda + sha256: ae897dd994e02f4d5c94799a87b6735df895f4a7b604d18a4472a988f378c8e3 + md5: 63b2cd83ac0d3139421135f24663d021 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240116.2,<20240117.0a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: Apache-2.0 + license_family: Apache + size: 124353 + timestamp: 1725380879672 +- conda: https://conda.anaconda.org/conda-forge/noarch/etils-1.13.0-pyhd8ed1ab_0.conda + sha256: f3d500a61d04a26d1df5d9b45cacd4ac6eba1c31741d19d7604e11953dbb9f8d + md5: f9fa16b528ae31f70e11ab35116c3ab8 + depends: + - python >=3.10 + license: Apache-2.0 + license_family: APACHE + size: 794665 + timestamp: 1785007441185 +- conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.3.0-pyhd8ed1ab_0.conda + sha256: 6f15be90dda1401a5977d46f6e978ba59ee0b0a2b5f6a6b9ac44a4bb4f44cd7a + md5: d20deea26cfe86870cd4cf36090919b1 + depends: + - python >=3.11 + license: MIT + license_family: MIT + size: 32653 + timestamp: 1791894647138 +- conda: https://conda.anaconda.org/conda-forge/linux-64/flatbuffers-24.3.25-h59595ed_0.conda + sha256: 0f3b8d6a958d40d5b2ac105ba0ec09f61dd4ce78cafdf99ab2d0fc298dc54d75 + md5: 2941a8c4e4871cdfa738c8c1a7611533 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: Apache-2.0 + license_family: APACHE + size: 1459911 + timestamp: 1711467009850 +- conda: https://conda.anaconda.org/conda-forge/noarch/flax-0.8.2-pyhd8ed1ab_0.conda + sha256: ba547d4310cdd07f695e2559d18d5d15da253647ddda98f7167102059e90f0a2 + md5: afd6b6c813edde816ab20e0e62cad7ca + depends: + - jax >=0.4.11 + - matplotlib-base + - msgpack-python + - numpy >=1.12 + - optax + - orbax-checkpoint + - python >=3.9 + - pyyaml >=5.4.1 + - rich >=11.1.0 + - tensorstore + - typing_extensions >=4.2.0 + license: Apache-2.0 + license_family: APACHE + size: 509123 + timestamp: 1710420504459 +- conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.67.0-py311h92159aa_1.conda + sha256: 87ab3f499c8c05b7fc1f8c6822af6bea945ede59a96ce73ef47e1970b741a492 + md5: a8200695d161b5161b49a926c4e6b53e + depends: + - __glibc >=2.17,<3.0.a0 + - brotli + - libgcc >=15 + - munkres + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - unicodedata2 >=15.1.0 + license: MIT + license_family: MIT + size: 3211210 + timestamp: 1792672685904 +- 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/noarch/gast-0.7.0-pyhd8ed1ab_0.conda + sha256: 587a0e2606026716760af58e5d7c15ea02a848bd076a324946798be29d0229db + md5: 377a825d91b5d6fcc0e6cdb98bbe9799 + depends: + - python >=3.10 + constrains: + - pythran >=0.12.2 + license: BSD-3-Clause + license_family: BSD + size: 27047 + timestamp: 1764507196904 +- conda: https://conda.anaconda.org/conda-forge/linux-64/gawk-5.4.1-h0a3468a_0.conda + sha256: 0ae20399bc13d1097237cf29653c1f2dd68e37f08b47a9b3cab76f97556a6bfa + md5: 64fd8d804a6aaef55d6d6c562446d72b + depends: + - gmp + - mpfr + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - gmp >=6.3.0,<7.0a0 + - readline >=8.3,<9.0a0 + - libasprintf >=0.25.1,<1.0a0 + - libgettextpo >=0.25.1,<1.0a0 + - mpfr >=4.2.2,<5.0a0 + license: GPL-3.0-or-later + license_family: GPL + size: 1522511 + timestamp: 1783686211415 +- conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-ha257d8a_1.conda + sha256: 3611c5d605cd56017704e6c01c7bd849e74a656a546d4c49d655fde49ddfeecc + md5: bd7c3a8586ed0101f094962100d30a63 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: MIT + license_family: MIT + size: 77403 + timestamp: 1784694210187 +- conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hfd2156b_3.conda + sha256: f36c336efc874f346a53a9011f67e997f9faac505562cc18c13b6d399cfe61c7 + md5: 576e32739f323438bf69ab006c21be7b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + license: GPL-2.0-or-later OR LGPL-3.0-or-later + size: 493498 + timestamp: 1786629164954 +- conda: https://conda.anaconda.org/conda-forge/noarch/google-pasta-0.2.0-pyhd8ed1ab_2.conda + sha256: 9f668fe562a9cf71a5d1f348645ac041af3f2e4bc634b18d6374e838e1c55dd8 + md5: 005b9749218cb8c9e94ac2a77ca3c8c0 + depends: + - python >=3.9 + - six + license: Apache-2.0 + license_family: APACHE + size: 49210 + timestamp: 1733852592869 +- conda: https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.62.2-py311ha6695c7_0.conda + sha256: 1cd5f900102255e33f9cae37b9b79b210cb92f46922fefff09bd70c4ca5159ab + md5: 5256f630309144ad1a6e4ec1736f5d66 + depends: + - libgcc-ng >=12 + - libgrpc 1.62.2 h15f2491_0 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: Apache-2.0 + license_family: APACHE + size: 1049071 + timestamp: 1713391103530 +- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + sha256: 307dd6ec90140c3cf4171071b0e5e870abec314f4565c1edd5bc433e942cdcc0 + md5: e652ac7756069c456d0da2a922cd7df5 + depends: + - python >=3.10 + - hyperframe >=6.1,<7 + - hpack >=4.2,<5 + - python + license: MIT + license_family: MIT + size: 100789 + timestamp: 1785796355216 +- conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.16.0-nompi_py311h73d0c7d_105.conda + sha256: b5e9775ae1b06d264188a787ba61e9b126fa33913dec9cc2d6588fd6fcce8453 + md5: fa942613914af55bd5df71cf927d9281 + depends: + - __glibc >=2.17,<3.0.a0 + - cached-property + - hdf5 >=2.2.0,<3.0a0 + - libgcc >=15 + - numpy >=1.23,<3 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 1425636 + timestamp: 1790854998790 +- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-2.2.0-nompi_hc529623_100.conda + sha256: 786d126bfb33b923dd1341a92c2a3edd0ff5d0a71db8557fca9324ea4e93d677 + md5: 336f7fb9af0c49cc246e2cff0992c3c4 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-auth >=0.10.4,<0.10.5.0a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - aws-c-http >=0.11.0,<0.11.1.0a0 + - aws-c-io >=0.27.5,<0.27.6.0a0 + - aws-c-s3 >=0.13.1,<0.13.2.0a0 + - aws-c-sdkutils >=0.2.7,<0.2.8.0a0 + - libaec >=1.1.5,<2.0a0 + - libcurl >=8.21.0,<9.0a0 + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.4.0 + - libstdcxx >=14 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.7,<4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 4250161 + timestamp: 1786233343747 +- conda: https://conda.anaconda.org/bioconda/linux-64/hhsuite-3.3.0-h503566f_15.tar.bz2 + sha256: 1d7a96783862071c92102bb959a479e04dd25eccebabcadc5d3f18bd8070a67f + md5: e801804120ec051c8a1f8359e7e25067 + depends: + - _openmp_mutex >=4.5 + - libgcc >=13 + - libgomp + - libstdcxx >=13 + - perl + - python + license: GPL-3.0-or-later + license_family: GPL3 + size: 27406554 + timestamp: 1748404760882 +- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda + sha256: fdcea5d7cb314485d3907192ef024c704311548c5b0cbeb390cd1951051e29d2 + md5: b395909221b9bd1df066e5930e18855b + depends: + - python >=3.10 + license: MIT + license_family: MIT + size: 32884 + timestamp: 1782283986153 +- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 + md5: 8e6923fc12f1fe8f8c4e5c9f343256ac + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 17397 + timestamp: 1737618427549 +- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e + md5: 8b189310083baabfb622af68fd9d3ae3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: MIT + license_family: MIT + size: 12129203 + timestamp: 1720853576813 +- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.20-pyh5ded981_0.conda + sha256: e044b1ec829e2e24f971fa3f3408eb26f1db836e521a58f08b0fd9a03fee47be + md5: ee73be987f9de9ea5c2fdaeefa7b6491 + depends: + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + size: 178572 + timestamp: 1790020377150 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-10.0.0-pyh5ded981_0.conda + sha256: 43151c94c02fa67e8105cfe64c8c27a1b260b22bae6ddbe9c33b56a9c302e459 + md5: 8401f0ee3de84b5a549c47cf3038909b + depends: + - python >=3.11 + - zipp >=3.20 + - python + license: Apache-2.0 + license_family: APACHE + size: 37627 + timestamp: 1792795043391 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-10.0.0-h392f40e_0.conda + sha256: 910b942f67ad9d02696f676768fb621087ec5f5ab91d371f43ee1131840fe752 + md5: 15f67ecedc6ca16e249492d7f9915e3c + depends: + - importlib-metadata ==10.0.0 pyh5ded981_0 + license: Apache-2.0 + license_family: APACHE + size: 25331 + timestamp: 1792795043391 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-7.1.0-pyhd8ed1ab_0.conda + sha256: a563a51aa522998172838e867e6dedcf630bc45796e8612f5a1f6d73e9c8125a + md5: 0ba6225c279baf7ea9473a62ea0ec9ae + depends: + - python >=3.10 + - zipp >=3.1.0 + constrains: + - importlib-resources >=7.1.0,<7.1.1.0a0 + license: Apache-2.0 + license_family: APACHE + size: 34809 + timestamp: 1776068839274 +- conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.17.1-pyh53cf698_0.conda + sha256: 0fb38e0685e5065064ac007cf8317ee24b329373c9f80c31eb74c1bfcb0cfe24 + md5: 0e28933e51c1d05c179bfd595ead8aee + depends: + - __unix + - ipython_pygments_lexers >=1.0.0 + - jedi >=0.18.2 + - matplotlib-inline >=0.1.6 + - prompt-toolkit >=3.0.41,<3.1.0 + - psutil >=7 + - pygments >=2.14.0 + - python >=3.11 + - stack_data >=0.6.0 + - traitlets >=5.13.0 + - typing_extensions >=4.6 + - pexpect >4.6 + - python + license: BSD-3-Clause + license_family: BSD + size: 730678 + timestamp: 1788260388285 +- conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda + sha256: 894682a42a7d659ae12878dbcb274516a7031bbea9104e92f8e88c1f2765a104 + md5: bd80ba060603cc228d9d81c257093119 + depends: + - pygments + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 13993 + timestamp: 1737123723464 +- conda: https://conda.anaconda.org/conda-forge/noarch/jax-0.4.25-pyhd8ed1ab_0.conda + sha256: e21479fc9b50d9906b9b41e46630b049c0ef3fcd01e097c4c28b45be02f10faf + md5: c4c729f7c77da9ef637d9970f4f6d980 + depends: + - importlib_metadata >=4.6 + - jaxlib >=0.4.20 + - ml_dtypes >=0.2.0 + - numpy >=1.22,<2.0a0 + - opt-einsum + - python >=3.9 + - scipy >=1.9 + license: Apache-2.0 + license_family: APACHE + size: 1194295 + timestamp: 1709239812310 +- conda: https://conda.anaconda.org/conda-forge/linux-64/jaxlib-0.4.25-cpu_py311hce36131_0.conda + sha256: 3e038ae94c53714525fb4a73eecd93f377e25ecfffab23d76d9c9e94ee77eaa1 + md5: ce5ad7c89eaf3c62d5c66fd5414f9dd0 + depends: + - libabseil * cxx17* + - libabseil >=20240116.2,<20240117.0a0 + - libgcc-ng >=12 + - libgrpc >=1.62.2,<1.63.0a0 + - libstdcxx-ng >=12 + - libzlib >=1.3.1,<2.0a0 + - ml_dtypes >=0.2.0 + - numpy >=1.23.5,<2.0a0 + - openssl >=3.3.1,<4.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - scipy >=1.9 + constrains: + - jax >=0.4.25 + license: Apache-2.0 + license_family: APACHE + size: 56019435 + timestamp: 1719400632976 +- conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.20.1-pyh5ded981_0.conda + sha256: 5437a29f6fcbd6d5eb5d7bb12403f301f3563dee223208b1ad12684614c648bc + md5: 040e99e896e84cc7bdc0246619083931 + depends: + - python >=3.11 + - parso >=0.8.7,<0.9.0 + - python + license: Apache-2.0 AND MIT + size: 2716238 + timestamp: 1791846014577 +- conda: https://conda.anaconda.org/conda-forge/noarch/jmp-0.0.4-pyhcf101f3_2.conda + sha256: 67f82798c45b876fb66c8a2b0b6f3f91f4c584a97c9820a653db5cdd925f9ca8 + md5: 1baca3bd13178b61f87dbc0828baf8c0 + depends: + - dataclasses >=0.7 + - numpy >=1.19.5 + - python >=3.10 + - jax + - python + license: Apache-2.0 + license_family: APACHE + size: 26120 + timestamp: 1777300926028 +- conda: https://conda.anaconda.org/bioconda/linux-64/kalign2-2.04-h7b50bb2_8.tar.bz2 + sha256: 2dba13894a90d0f427085ad330da9b1b0dab550d48f274909bc7863afb204684 + md5: b8351c2fed8f377b6f7db3da31b966ff + depends: + - libgcc >=13 + license: GPLv2 + size: 105764 + timestamp: 1734082917746 +- conda: https://conda.anaconda.org/conda-forge/noarch/keras-3.11.2-pyh753f3f9_0.conda + sha256: 276921e78a021892de887c79034db994ea8d959de57ab88d9ae4865c6aac2d84 + md5: ad0b91bf2bab8992ae5869f0fce16301 + depends: + - absl-py + - h5py + - ml_dtypes + - namex + - numpy + - optree + - packaging + - python >=3.10 + - rich + constrains: + - tensorflow >=2.15.0 + - pytorch >=2.1.0 + - jax >=0.4.0 + license: Apache-2.0 + license_family: APACHE + size: 797213 + timestamp: 1755182149300 +- conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-h7cc23a3_1.conda + sha256: dd053c96dcb0dcfd59422aefea9d2fe937a190167f34fba7893ec1e10a7e8963 + md5: ba55d1b89fd7775e67de8291029b4059 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: LGPL-2.1-or-later + size: 135295 + timestamp: 1786739238128 +- conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.5.1-py311h4c6fd42_3.conda + sha256: 984113fcd6ecce2256c476fca7f2de853f1da8f6eb8fdb42624027708f60ac44 + md5: 257543ed82a917c48d01a16610d79a61 + depends: + - python + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 76708 + timestamp: 1790082012437 +- conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-hbc21106_2.conda + sha256: 2a5c38c85e63df84c4e69ee71439841ce570d259ae3060627bb9a49a938d66f4 + md5: 53318d715316929a574f83591308b1f8 + depends: + - __glibc >=2.17,<3.0.a0 + - keyutils >=1.6.3,<2.0a0 + - libedit >=3.1.20250104,<3.2.0a0 + - libedit >=3.1.20250104,<4.0a0 + - libgcc >=15 + - libstdcxx >=15 + - openssl >=3.5.7,<4.0a0 + license: MIT + license_family: MIT + size: 1394333 + timestamp: 1786762112514 +- 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/libabseil-20240116.2-cxx17_he02047a_1.conda + sha256: 945396726cadae174a661ce006e3f74d71dbd719219faf7cc74696b267f7b0b5 + md5: c48fc56ec03229f294176923c3265c05 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + constrains: + - abseil-cpp =20240116.2 + - libabseil-static =20240116.2=cxx17* + license: Apache-2.0 + license_family: Apache + size: 1264712 + timestamp: 1720857377573 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.5-h088129d_0.conda + sha256: 822e4ae421a7e9c04e841323526321185f6659222325e1a9aedec811c686e688 + md5: 86f7414544ae606282352fa1e116b41f + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + license: BSD-2-Clause + license_family: BSD + size: 36544 + timestamp: 1769221884824 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.25.1-h0e23cf9_2.conda + sha256: cd1acde49a1915b7a62a9678bdf42557f083d63f08d4ccc5cd9834553be96eb1 + md5: 708966b4a89392fe7b7d348f41501ffc + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + license: LGPL-2.1-or-later + size: 53449 + timestamp: 1790117307288 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.4.2-h3ef1eba_4.conda + sha256: f4c7dbdff93bc62e4aa4a94635c4a139cd4b1e8deb753af5892a8f1ee6456b4d + md5: 2326d9fe25838dddac1f3876aa7ff878 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - rav1e >=0.8.1,<0.9.0a0 + - aom >=3.14.1,<3.15.0a0 + - libdav1d7 >=1.5.4 + - svt-av1 >=4.2.0,<4.2.1.0a0 + license: BSD-2-Clause + license_family: BSD + size: 168234 + timestamp: 1788391245817 +- 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/libcurl-8.21.0-hcf29cc6_1.conda + sha256: 7d243f45a48f62cb8e3b871dd336137fe0fb90094a191756fb553508837f6338 + md5: 2c1e55d695b11525c760b486ac0be517 + depends: + - __glibc >=2.17,<3.0.a0 + - krb5 >=1.22.2,<1.23.0a0 + - libgcc >=14 + - libnghttp2 >=1.68.1,<2.0a0 + - libssh2 >=1.11.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.7,<4.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: curl + license_family: MIT + size: 478914 + timestamp: 1782802520033 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libdav1d7-1.5.4-hebe6cf0_4.conda + sha256: 9d3d31b9549f76ab61e2678a22566e4342842f388ec6df4ac10aea3ae3526697 + md5: ad38caba8fd619ac5e6d5fef0a6678cd + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: BSD-2-Clause + license_family: BSD + size: 765022 + timestamp: 1788366542408 +- 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/libev-4.33-h280c20c_3.conda + sha256: e4418f68d01a6307c4431b585c71b584f40189877364e542ee87deb777f5e85b + md5: 7bc31538d6e3fb349e897353969237ec + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + license: BSD-2-Clause OR GPL-2.0-or-later + license_family: GPL + size: 43220 + timestamp: 1785917328200 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.5-hd2095e1_0.conda + sha256: 6de73033a7c5f712c9c5a54124e4581e025691029835e5bceaf10a333a7e7bc0 + md5: 72cfd2b95b0540247220b42f58a148d7 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + constrains: + - expat 2.8.5.* + license: MIT + license_family: MIT + size: 77893 + timestamp: 1790346247149 +- 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/libgettextpo-0.25.1-h0e23cf9_2.conda + sha256: 58bbdb3ee8ab85fff94435bcf4a335fd5e7b61d4d84f15d9afc8b4207d522ea3 + md5: de2346aa9d78288e6924b01a2db091c1 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libiconv >=1.18,<2.0a0 + license: GPL-3.0-or-later + license_family: GPL + size: 186971 + timestamp: 1790117313607 +- 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/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/libgrpc-1.62.2-h15f2491_0.conda + sha256: 28241ed89335871db33cb6010e9ccb2d9e9b6bb444ddf6884f02f0857363c06a + md5: 8dabe607748cb3d7002ad73cd06f1325 + depends: + - c-ares >=1.28.1,<2.0a0 + - libabseil * cxx17* + - libabseil >=20240116.1,<20240117.0a0 + - libgcc-ng >=12 + - libprotobuf >=4.25.3,<4.25.4.0a0 + - libre2-11 >=2023.9.1 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + - openssl >=3.2.1,<4.0a0 + - re2 + constrains: + - grpc-cpp =1.62.2 + license: Apache-2.0 + license_family: APACHE + size: 7316832 + timestamp: 1713390645548 +- 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.0-hb03c661_1.conda + sha256: bba8538e6538ed58a8479b332337b96986561f975d06cfa2039a016c2d246ee4 + md5: 898d1c9793eaa52efc4727bd84d2e39a + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + size: 650434 + timestamp: 1785896381946 +- 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/liblzma-devel-5.8.3-hb03c661_1.conda + sha256: adef6e8b60afb684110b06b5310977c6836e1c923ce3ec199f45c0f000b42f20 + md5: 6d83d6a332c19424e9e66b69b180ec11 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - liblzma 5.8.3 hb03c661_1 + license: 0BSD + size: 491970 + timestamp: 1786348627135 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h74cf4be_1.conda + sha256: 11a2f54a6f391e25738bce0023e6ef499600147bbcf21c1fa69d2e251b03cc6a + md5: 75d211f04ac87506f1f43420712a69fe + depends: + - __glibc >=2.17,<3.0.a0 + - c-ares >=1.34.8,<2.0a0 + - libev >=4.33,<4.34.0a0 + - libev >=4.33,<5.0a0 + - libgcc >=15 + - libstdcxx >=15 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.7,<4.0a0 + license: MIT + license_family: MIT + size: 649974 + timestamp: 1787177490105 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda + sha256: 927fe72b054277cde6cb82597d0fcf6baf127dcbce2e0a9d8925a68f1265eef5 + md5: d864d34357c3b65a4b731f78c0801dc4 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: LGPL-2.1-only + license_family: GPL + size: 33731 + timestamp: 1750274110928 +- 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/libprotobuf-4.25.3-hd5b35b9_1.conda + sha256: 8b5e4e31ed93bf36fd14e9cf10cd3af78bb9184d0f1f87878b8d28c0374aa4dc + md5: 06def97690ef90781a91b786cb48a0a9 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240116.2,<20240117.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + size: 2883090 + timestamp: 1727161327039 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libpython-3.11.17-h0c77377_1_cpython.conda + build_number: 1 + sha256: bad3de581c5b9f193a3b43d634a47df3e90e6fb89ff712b5f6903920640e4a07 + md5: 96da685309a5aa6d57b96d5528461129 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + license: Python-2.0 + size: 7826338 + timestamp: 1791332362504 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h5a48ba9_2.conda + sha256: 3f3c65fe0e9e328b4c1ebc2b622727cef3e5b81b18228cfa6cf0955bc1ed8eff + md5: 41c69fba59d495e8cf5ffda48a607e35 + depends: + - libabseil * cxx17* + - libabseil >=20240116.1,<20240117.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + constrains: + - re2 2023.09.01.* + license: BSD-3-Clause + license_family: BSD + size: 232603 + timestamp: 1708946763521 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.4-h0737f62_102.conda + sha256: 0f6e60634de2b55da15772fe65485965fd9b61afcce0d749c1446f625babba30 + md5: 59ec6dc9fa87a6687c00969d4dcfcd97 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libzlib >=1.3.2,<2.0a0 + license: blessing + size: 969522 + timestamp: 1791167270446 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-h6154650_1.conda + sha256: 7e463000fa1cba3f3a6597b776f6ab301d425a96e3bc20d0d9d76a3b9f237aa3 + md5: 5c526561e1d2a2e071941174eae84557 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.7,<4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 306045 + timestamp: 1786713107897 +- 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/libxcrypt-4.4.38-h280c20c_0.conda + sha256: f7e9292dd219a6435bbb1223da9586c3e70d66d169c5a92f08db3f2127df04e9 + md5: f7a7ff5a6ab331e037abd34f379a631d + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + license: LGPL-2.1-or-later + size: 101957 + timestamp: 1785887123445 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.9-h04c0eec_0.conda + sha256: 5d12e993894cb8e9f209e2e6bef9c90fa2b7a339a1f2ab133014b71db81f5d88 + md5: 35eeb0a2add53b1e50218ed230fa6a02 + depends: + - __glibc >=2.17,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=14 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libzlib >=1.3.1,<2.0a0 + license: MIT + license_family: MIT + size: 697033 + timestamp: 1761766011241 +- 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/lz4-c-1.10.0-hee9eb32_2.conda + sha256: b8c0e930183e6b7f83cd35ace102f2b8c2f0faae41dc05255dc72f247dfc556a + md5: e38a3253d72ab07d471483f24947e2a2 + depends: + - libgcc >=15 + - libstdcxx >=15 + - __glibc >=2.17,<3.0.a0 + license: BSD-2-Clause + license_family: BSD + size: 181812 + timestamp: 1786717122815 +- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.11.2-pyh5ded981_0.conda + sha256: 9f08e888c7ec4a14aafcd03f4317cbde63d7a4b6a0383b61ef53d9677080ef40 + md5: 1422fdf237e251a219cf2c6a3ed7b2ab + depends: + - importlib-metadata >=4.4 + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + size: 89621 + timestamp: 1792444801683 +- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.2.0-pyhd8ed1ab_0.conda + sha256: 0c4c35376fe920714390d46e4b8d31c876d65f18e1655899e0763ec25f2a902f + md5: 6d03368f2b2b0a5fb6839df53b2eb5e0 + depends: + - mdurl >=0.1,<1 + - python >=3.10 + license: MIT + license_family: MIT + size: 69017 + timestamp: 1778169663339 +- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.4-py311h364832d_1.conda + sha256: b751f3c1f1a562eaf7a5896c3789be96e5dd30384cf2b8bcbf9f4a76941eb1a6 + md5: 34baa7315936ae51248b07a9a0ce954d + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - python_abi 3.11.* *_cp311 + constrains: + - jinja2 >=3.0.0 + license: BSD-3-Clause + license_family: BSD + size: 28475 + timestamp: 1791548971554 +- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.9-py311h0f3be63_0.conda + sha256: 3e122e4aacab6f07e046d87ddd2ad5896fb3bf344748ca784be3274891a4db8d + md5: cc259645be458c9222ffcf321ff5fc1e + depends: + - __glibc >=2.17,<3.0.a0 + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - freetype + - kiwisolver >=1.3.1 + - libfreetype >=2.14.3 + - libfreetype6 >=2.14.3 + - libgcc >=14 + - libstdcxx >=14 + - numpy >=1.23 + - numpy >=1.23,<3 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python >=3.11,<3.12.0a0 + - python-dateutil >=2.7 + - python_abi 3.11.* *_cp311 + - qhull >=2020.2,<2020.3.0a0 + - tk >=8.6.13,<8.7.0a0 + license: PSF-2.0 + license_family: PSF + size: 8372143 + timestamp: 1777000579013 +- conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.2-pyhd8ed1ab_0.conda + sha256: 35b43d7343f74452307fd018a1cca92b8f68961ff8e2ab6a81ce0a703c9a3764 + md5: 9acc1c385be401d533ff70ef5b50dae6 + depends: + - python >=3.10 + - traitlets + license: BSD-3-Clause + license_family: BSD + size: 15725 + timestamp: 1778264403247 +- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7 + md5: 592132998493b3ff25fd7479396e8351 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 14465 + timestamp: 1733255681319 +- conda: https://conda.anaconda.org/conda-forge/noarch/ml-collections-1.0.0-pyh29332c3_0.conda + sha256: a1693918512ad05f77c2e55ea5aeebf91c21d53853c4c8ac88d89c5551c59b0d + md5: 661f552a80844d1b4261d06307d2190a + depends: + - python >=3.10 + - absl-py + - pyyaml + - six + - python + license: Apache-2.0 + license_family: APACHE + size: 61636 + timestamp: 1731417481417 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ml_dtypes-0.4.0-py311h7db5c69_2.conda + sha256: 1e59cd504003da4171df8524a5568eab6ed818e1065957cd1c3fa83cb6a18546 + md5: 7df028e3691fb3940a03e5ad7938414e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - numpy >=1.19,<3 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: MPL-2.0 AND Apache-2.0 + size: 164649 + timestamp: 1725475216339 +- conda: https://conda.anaconda.org/bioconda/linux-64/mmseqs2-18.8cc5c-hd6d6fdc_0.tar.bz2 + sha256: 466c7bc19eecc58a6043e73f7c80865fc610b4f545af8498565547d87c45d9a9 + md5: a11c5e78c9e77099aa3a2291710292e3 + depends: + - _openmp_mutex >=4.5 + - aria2 + - bzip2 >=1.0.8,<2.0a0 + - gawk + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - zlib + license: MIT + size: 133026020 + timestamp: 1753615341810 +- conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-ha2cb11d_1.conda + sha256: 0be79ef2ee536e0c5d3ddb4a52bbae9f26d08560623299f33db2f4c4a17c525a + md5: 7dcc10f6c0bc3596d5519a710a84dfd4 + depends: + - __glibc >=2.17,<3.0.a0 + - gmp >=6.3.0,<7.0a0 + - libgcc >=15 + license: LGPL-3.0-only + license_family: LGPL + size: 730409 + timestamp: 1787236218159 +- conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.3-py311h4c6fd42_0.conda + sha256: 7a30da7fa0813d0bbf8056bdd454da11a0398d9a6bfe3fe69c58db0b0acf4b4e + md5: ebbe58997393ca83233b207a57758c16 + depends: + - python + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.11.* *_cp311 + license: Apache-2.0 + license_family: APACHE + size: 121278 + timestamp: 1790682659776 +- 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/namex-0.1.0-pyhd8ed1ab_0.conda + sha256: 295e0ef6aae0185b55752c981eca5c11443ba9ea4c236d45112128799fd99f51 + md5: 3eb854547a0183b994431957fa0e05d2 + depends: + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + size: 11936 + timestamp: 1748346473739 +- 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/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda + sha256: bb7b21d7fd0445ddc0631f64e66d91a179de4ba920b8381f29b9d006a42788c0 + md5: 598fd7d4d0de2455fb74f56063969a97 + depends: + - python >=3.9 + license: BSD-2-Clause + license_family: BSD + size: 11543 + timestamp: 1733325673691 +- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda + sha256: 3f4365e11b28e244c95ba8579942b0802761ba7bb31c026f50d1a9ea9c728149 + md5: a502d7aad449a1206efb366d6a12c52d + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 8065890 + timestamp: 1707225944355 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-2.3.4-hb03c661_1.conda + sha256: 75f3bf733523a338f73d6c276c4a26634877cd970edb558f2769d9fa52b100a9 + md5: c2871ba95727fd1382c05db66048b64c + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - opencl-headers >=2025.6.13 + license: BSD-2-Clause + license_family: BSD + size: 109598 + timestamp: 1780362789611 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-system-1.0.0-1.tar.bz2 + sha256: cb0ce5ce5ede1be2fd9edf88abd3ce3e6c2b7397c0283d623e4d8ccf96a1ed09 + md5: 577a4bd049737b11a24524e39a16a1f3 + depends: + - ocl-icd + license: BSD 3-Clause + license_family: BSD + size: 4253 + timestamp: 1575483836797 +- conda: https://conda.anaconda.org/conda-forge/linux-64/opencl-headers-2025.06.13-hecca717_0.conda + sha256: 8de2f0cd8a659b01abf86e7fbb8cea4f28ada62fd288429a2bbc040db1b98dd0 + md5: c930c8052d780caa41216af7de472226 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + license: Apache-2.0 + license_family: APACHE + size: 55754 + timestamp: 1773844383536 +- 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/openmm-8.0.0-py311h9766050_4.conda + sha256: a126d84ce95a9bd4023c0e663357b34687f685978f92553884828fc917406bbe + md5: f2673586fa3363a13c71e9675f8f6c29 + depends: + - __glibc >=2.17 + - __glibc >=2.17,<3.0.a0 + - cudatoolkit >=11.8,<12 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - numpy >=1.23.5,<2.0a0 + - ocl-icd >=2.3.1,<3.0a0 + - ocl-icd-system + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: LGPL-3.0-or-later + license_family: LGPL + size: 11355874 + timestamp: 1699900048203 +- 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/opt-einsum-3.4.0-hd8ed1ab_1.conda + sha256: 8db3d841c72f184de69e1237b900a2d79c742e30e8378973814543bf987b6bc6 + md5: b94f689d8b1ce7dd212946e0331037ad + depends: + - opt_einsum >=3.4.0,<3.4.1.0a0 + license: MIT + license_family: MIT + size: 6558 + timestamp: 1733688054327 +- conda: https://conda.anaconda.org/conda-forge/noarch/opt_einsum-3.4.0-pyhd8ed1ab_1.conda + sha256: af71aabb2bfa4b2c89b7b06403e5cec23b418452cae9f9772bd7ac3f9ea1ff44 + md5: 52919815cd35c4e1a0298af658ccda04 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 62479 + timestamp: 1733688053334 +- conda: https://conda.anaconda.org/conda-forge/noarch/optax-0.2.2-pyhd8ed1ab_1.conda + sha256: 68ab5cd076de8d3ec6971a78bd3786a129a2c0d172a0fc66776b36d28b54f5f8 + md5: dd370641d3610ed329ae747f0eae09c8 + depends: + - absl-py >=0.7.1 + - chex >=0.1.86 + - jax >=0.1.55 + - jaxlib >=0.1.37 + - numpy >=1.18.0 + - python >=3.9 + - typing_extensions >=3.10 + license: Apache-2.0 + license_family: APACHE + size: 145268 + timestamp: 1718550769933 +- conda: https://conda.anaconda.org/conda-forge/linux-64/optree-0.20.0-py311h5f908af_1.conda + sha256: 54cc90a5fb8f4895ab4bcf7c7f29fa0a65fc7fef8f7c16202e48f793744397f9 + md5: 6bd81661a37295786c9e779d0dd028eb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - typing-extensions >=4.10 + license: Apache-2.0 + license_family: Apache + size: 573233 + timestamp: 1788504561764 +- conda: https://conda.anaconda.org/conda-forge/noarch/orbax-checkpoint-0.4.4-pyhd8ed1ab_0.conda + sha256: 79012b755ed91777ed50d60ed790bf9cc5abff7bf05be807331cf15535618d1b + md5: 1f3efaebaa9f6e6b6af781bcb60718be + depends: + - absl-py + - etils + - importlib_resources + - jax >=0.4.9 + - jaxlib + - msgpack-python + - nest-asyncio + - numpy + - protobuf + - python >=3.9 + - pyyaml + - tensorstore >=0.1.35 + - typing_extensions + license: Apache-2.0 + license_family: APACHE + size: 86896 + timestamp: 1701452697513 +- 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.0.6-np2py311h1e9b377_0.conda + sha256: 85459025d8f749316df29ab837729155d8c54c48af2953ff6226107a7e4c1c9f + md5: 94bc77ee4421c9ff83fe336cb39f55b9 + depends: + - python + - numpy >=1.26.0 + - python-dateutil >=2.8.2 + - libgcc >=15 + - libstdcxx >=15 + - __glibc >=2.17,<3.0.a0 + - numpy >=1.23,<3 + - python_abi 3.11.* *_cp311 + constrains: + - adbc-driver-postgresql >=1.2.0 + - adbc-driver-sqlite >=1.2.0 + - beautifulsoup4 >=4.12.3 + - blosc >=1.21.3 + - bottleneck >=1.4.2 + - fastparquet >=2024.11.0 + - fsspec >=2024.10.0 + - gcsfs >=2024.10.0 + - html5lib >=1.1 + - hypothesis >=6.116.0 + - jinja2 >=3.1.5 + - lxml >=5.3.0 + - matplotlib >=3.9.3 + - numba >=0.60.0 + - numexpr >=2.10.2 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=13.0.0 + - pyiceberg >=0.8.1 + - pymysql >=1.1.1 + - pyqt5 >=5.15.9 + - pyreadstat >=1.2.8 + - pytables >=3.10.1 + - pytest >=8.3.4 + - pytest-xdist >=3.6.1 + - python-calamine >=0.3.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.2 + - scipy >=1.14.1 + - s3fs >=2024.10.0 + - sqlalchemy >=2.0.36 + - tabulate >=0.9.0 + - xarray >=2024.10.0 + - xlrd >=2.0.1 + - xlsxwriter >=3.2.0 + - zstandard >=0.23.0 + license: BSD-3-Clause + license_family: BSD + size: 15318970 + timestamp: 1789803360037 +- conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.7-pyhcf101f3_0.conda + sha256: 611882f7944b467281c46644ffde6c5145d1a7730388bcde26e7e86819b0998e + md5: 39894c952938276405a1bd30e4ce2caf + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + size: 82472 + timestamp: 1777722955579 +- conda: https://conda.anaconda.org/conda-forge/noarch/pdbfixer-1.9-pyh1a96a4e_0.conda + sha256: 053b4e535b178345c5666d04819c63004855eb38c5b49ae7c847e47a465b28c4 + md5: 20be3519aa2058a7088bf1474390638f + depends: + - numpy + - openmm >=8.0 + - python >=3.6 + - setuptools + license: MIT + license_family: MIT + size: 500978 + timestamp: 1684358498270 +- conda: https://conda.anaconda.org/conda-forge/linux-64/perl-5.44.0-1_h7cc23a3_perl5.conda + build_number: 1 + sha256: 43afad1c27c24ccc40d98461ab7e1648ccac876421a8783167861ae19c4edc83 + md5: 474944e9c978cc84911f1c1f9eaa8bb2 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libxcrypt >=4.4.38 + license: GPL-1.0-or-later OR Artistic-1.0-Perl + size: 11438995 + timestamp: 1790621296165 +- conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda + sha256: 202af1de83b585d36445dc1fda94266697341994d1a3328fabde4989e1b3d07a + md5: d0d408b1f18883a944376da5cf8101ea + depends: + - ptyprocess >=0.5 + - python >=3.9 + license: ISC + size: 53561 + timestamp: 1733302019362 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-13.0.0-py311hf303fd3_0.conda + sha256: be11b66178d9d4859d95a45d22b3c45f99e548844f1ec5c20a048d462d5647bf + md5: 551a711e559b4f06d2277e8e7bd6aa9f + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libfreetype >=2.14.3 + - libfreetype6 >=2.14.3 + - libjpeg-turbo >=3.2.0,<4.0a0 + - lcms2 >=2.19.1,<3.0a0 + - openjpeg >=2.5.4,<3.0a0 + - tk >=8.6.13,<8.7.0a0 + - libtiff >=4.7.2,<4.8.0a0 + - libxcb >=1.17.0,<2.0a0 + - libwebp-base >=1.6.0,<2.0a0 + - zlib-ng >=2.3.3,<2.4.0a0 + - python_abi 3.11.* *_cp311 + license: HPND + size: 1089138 + timestamp: 1792416406105 +- 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/noarch/prompt-toolkit-3.0.53-pyha770c72_0.conda + sha256: efe8def2c93aa34cd8d3c9af1dc4c7d312791cf769d8b2b615e32733e6df6051 + md5: 39c92a39517316e5001d645ae63d9ab9 + depends: + - python >=3.10 + - wcwidth + constrains: + - prompt_toolkit 3.0.53 + license: BSD-3-Clause + license_family: BSD + size: 276081 + timestamp: 1785160613307 +- conda: https://conda.anaconda.org/conda-forge/linux-64/protobuf-4.25.3-py311hbffca5d_1.conda + sha256: 3e06dcdd3ec2e73fb456d5c2fdf9c8829d7f70c15d724f9920a24276a0a1d6b5 + md5: 27089f71e28d01bcc070460d822d5acb + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240116.2,<20240117.0a0 + - libgcc >=13 + - libprotobuf >=4.25.3,<4.25.4.0a0 + - libstdcxx >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - setuptools + license: BSD-3-Clause + license_family: BSD + size: 398881 + timestamp: 1725018534875 +- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py311h194be0f_3.conda + sha256: 5733fbcaf4f5575051342b872de15e8589bb922c6b037d2d9425e86638ed2f1f + md5: 3c44e9e6a0ffaab88dbd7bd78f752a09 + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 231845 + timestamp: 1789682042836 +- 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/ptyprocess-0.7.0-pyhd8ed1ab_1.conda + sha256: a7713dfe30faf17508ec359e0bc7e0983f5d94682492469bd462cdaae9c64d83 + md5: 7d9daffbb8d8e0af0f769dbbcd173a54 + depends: + - python >=3.9 + license: ISC + size: 19457 + timestamp: 1733302371990 +- conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.4-pyhd8ed1ab_0.conda + sha256: 2151e981a422ef57031482b28df9c8432d54c1f44996e7760774813f167be863 + md5: 35993ea8ef5e76333e6efb6a0ffb3771 + depends: + - python >=3.11 + license: MIT + license_family: MIT + size: 18473 + timestamp: 1789159440378 +- conda: https://conda.anaconda.org/conda-forge/noarch/py3dmol-2.5.4-pyhd8ed1ab_0.conda + sha256: de9ac46d330aa7b5cb833ecb851249a550d6a6f8f8a4cbb7748b9cd6220f6c52 + md5: ebac7a00117092f22f0ebc28bc3dad66 + depends: + - ipython + - python >=3.10 + license: MIT + license_family: MIT + size: 13737 + timestamp: 1769417304572 +- conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 + sha256: d4fb485b79b11042a16dc6abfb0c44c4f557707c2653ac47c81e5d32b24a3bb0 + md5: 878f923dd6acc8aeb47a75da6c4098be + license: BSD-3-Clause + license_family: BSD + size: 9906 + timestamp: 1610372835205 +- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + sha256: f5f015ff1bc3e1b7fc08eee096b1865234189ae0b82bebdb86a5369116e42fa0 + md5: 2882dee445dfa45b0c5afce3ffb7730a + depends: + - python >=3.10 + - python + license: BSD-2-Clause + license_family: BSD + size: 959376 + timestamp: 1786995678795 +- 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/noarch/pysocks-1.7.1-pyha55dd90_7.conda + sha256: ba3b032fa52709ce0d9fd388f63d330a026754587a2f461117cac9ab73d8d0d8 + md5: 461219d1a5bd61342293efa2c0c90eac + depends: + - __unix + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 21085 + timestamp: 1733217331982 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.17-h5f976f7_1_cpython.conda + build_number: 1 + sha256: 524df25896667b5f7e391c2115495cac5e0077b97967981091af8afcc98fd312 + md5: 1e46b899831e9224d6edf13ea693b314 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.8.5,<3.0a0 + - libffi >=3.7.0,<3.8.0a0 + - libgcc >=15 + - liblzma >=5.8.3,<6.0a0 + - libnsl >=2.0.1,<2.1.0a0 + - libpython 3.11.17 h0c77377_1_cpython + - libsqlite >=3.53.4,<4.0a0 + - libuuid >=2.42.4,<3.0a0 + - libxcrypt >=4.4.38 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.9,<4.0a0 + - readline >=8.3,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + size: 23360932 + timestamp: 1791332402097 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-abi3-3.11-ha8785bc_3.conda + sha256: 3ac78bbfa9abfdf92a0f6e2f2d058d8393868c4bac36b012f95888a4455362cd + md5: 85d7b185396c14a0fdc1084028f82b21 + depends: + - __unix + - _python_abi3_support + - python 3.11.* + license: MIT + license_family: MIT + size: 8226 + timestamp: 1784221524056 +- 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-flatbuffers-25.12.19-pyh9d96877_0.conda + sha256: dff2f2fc462996f71686c05a0fba78a0dc919034ef8d879dd8366534ad64c0f1 + md5: 3a28cf4d2187c1dfb0c31aedbf275b8c + depends: + - python >=3.10 + license: Apache-2.0 + license_family: Apache + size: 35556 + timestamp: 1784053026634 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.11.17-hd8ed1ab_2.conda + sha256: 4164837168c91e0b54d3aca7933fbb7e78e7f4edd2c227ce8e7174082bd59bf6 + md5: 0b66d0a661f811417e712910dd98fc50 + depends: + - cpython 3.11.17.* + - python_abi * *_cp311 + license: Python-2.0 + size: 49113 + timestamp: 1791909605217 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.5-pyh5ded981_0.conda + sha256: b66b783be882069a9f6c00bc44ee561fc3dfba21fe4bab6de31599caf3c63154 + md5: 4a0ae2a06b469e6f8ca95d0655e31c86 + depends: + - python >=3.11 + - python + license: Apache-2.0 + license_family: APACHE + size: 141379 + timestamp: 1791025923003 +- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.11-9_cp311.conda + build_number: 9 + sha256: bcfbad269758f4617035314fe379ee655bc2d9db5282e7a00d61450b7cefa3cf + md5: 18e91a03be08122180f208723e42a52e + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6770 + timestamp: 1788302830198 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py311h3778330_1.conda + sha256: c9a6cd2c290d7c3d2b30ea34a0ccda30f770e8ddb2937871f2c404faf60d0050 + md5: a24add9a3bababee946f3bc1c829acfe + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 206190 + timestamp: 1770223702917 +- 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/rav1e-0.8.1-h1fbca29_0.conda + sha256: cf550bbc8e5ebedb6dba9ccaead3e07bd1cb86b183644a4c853e06e4b3ad5ac7 + md5: d83958768626b3c8471ce032e28afcd3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - __glibc >=2.17 + license: BSD-2-Clause + license_family: BSD + size: 5595970 + timestamp: 1772540833621 +- conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_2.conda + sha256: f0f520f57e6b58313e8c41abc7dfa48742a05f1681f05654558127b667c769a8 + md5: 8f70e36268dea8eb666ef14c29bd3cda + depends: + - libre2-11 2023.09.01 h5a48ba9_2 + license: BSD-3-Clause + license_family: BSD + size: 26617 + timestamp: 1708946796423 +- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-hd6e31c0_1.conda + sha256: 01b3fe073a66e321970d09e04b388708f8cbdca5cdfbfcb7c9eeb470ad10383d + md5: 69c01c781e7c8190bbdaf79e3848c5ca + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - ncurses >=6.6,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 348899 + timestamp: 1787033801506 +- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda + sha256: 1715246b19c9f85ee022933b4845f2fc14ac9184981b7b7d9b728bec8e9588da + md5: 4a85203c1d80c1059086ae860836ffb9 + depends: + - python >=3.10 + - certifi >=2023.5.7 + - charset-normalizer >=2,<4 + - idna >=2.5,<4 + - urllib3 >=1.26,<3 + - python + constrains: + - chardet >=3.0.2,<8 + license: Apache-2.0 + license_family: APACHE + size: 68709 + timestamp: 1778851103479 +- conda: https://conda.anaconda.org/conda-forge/noarch/rich-15.0.0-pyhcf101f3_0.conda + sha256: 3d6ba2c0fcdac3196ba2f0615b4104e532525ffa1335b50a2878be5ff488814a + md5: 0242025a3c804966bf71aa04eee82f66 + depends: + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.10 + - typing_extensions >=4.0.0,<5.0.0 + - python + license: MIT + license_family: MIT + size: 208577 + timestamp: 1775991661559 +- conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.7.6-h7e3ee7f_0.conda + sha256: 1e1ccc56fdf3fe82150b4eac1d626c806e612af208fbf40ce3abfe9a2eb2a626 + md5: e112cadcd79412d81496e784884bddf0 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - openssl >=3.5.7,<4.0a0 + license: Apache-2.0 + license_family: Apache + size: 393680 + timestamp: 1784674401024 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py311hbe70eeb_1.conda + sha256: 3ae2ff1d1cc5930de2ca6ac03216118bdf13b2af6098e28e827f1ba25bfcbc4e + md5: 089de2ee37e4e19885c985a4fe4aaf14 + depends: + - __glibc >=2.17,<3.0.a0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.3.0 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx >=14 + - numpy <2.7 + - numpy >=1.23,<3 + - numpy >=1.25.2 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 17303931 + timestamp: 1779874783665 +- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.2.1-pyhe730653_0.conda + sha256: 17add609d1a31c874e39a03935072be59bcafb06d42383eceabea746d12e6025 + md5: d41f95b8f1553165b2cc2f37162dac9c + depends: + - python >=3.11 + license: MIT + license_family: MIT + size: 567436 + timestamp: 1792571495729 +- 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/linux-64/snappy-1.2.2-h34e00bb_2.conda + sha256: 8635d10c7f127808b09c0c8e77b21a255829e0934e49326548c949f7e0551f09 + md5: 2b7e31ffbd476eecf33b3b833692339c + depends: + - libgcc >=15 + - libstdcxx >=15 + - __glibc >=2.17,<3.0.a0 + license: BSD-3-Clause + license_family: BSD + size: 45695 + timestamp: 1790063285616 +- conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda + sha256: 570da295d421661af487f1595045760526964f41471021056e993e73089e9c41 + md5: b1b505328da7a6b246787df4b5a49fbc + depends: + - asttokens + - executing + - pure_eval + - python >=3.9 + license: MIT + license_family: MIT + size: 26988 + timestamp: 1733569565672 +- conda: https://conda.anaconda.org/conda-forge/linux-64/svt-av1-4.2.0-hd2095e1_1.conda + sha256: 09c242d480632acca31f2a510c9a9f65bb8cca1e82b73d2d0261ec837fff48be + md5: 3bd5f5f3f6f6431b9f19b35ad4a8ed21 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + license: BSD-2-Clause + license_family: BSD + size: 2750545 + timestamp: 1787256261632 +- conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.10.0-pyhcf101f3_0.conda + sha256: 3f661e98a09f976775a494488beb3d35ebb00f535b169c6bd891f2e280d55783 + md5: 3b887b7b3468b0f494b4fad40178b043 + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + size: 43964 + timestamp: 1772732795746 +- conda: https://conda.anaconda.org/conda-forge/noarch/tensorboard-2.17.1-pyhd8ed1ab_0.conda + sha256: 0f9777cef2723977e8cb68bf305fde9b8f6cbc28ae5165ac0d5c208f1d767226 + md5: 1a6c7a02498c952ba92e08b0abe0c48c + depends: + - absl-py >=0.4 + - grpcio >=1.48.2 + - markdown >=2.6.8 + - numpy >=1.12.0 + - packaging + - protobuf >=3.19.6,!=4.24.0 + - python >=3.8 + - setuptools >=41.0.0 + - six >=1.9 + - tensorboard-data-server >=0.7.0,<0.8.0 + - werkzeug >=1.0.1 + license: Apache-2.0 + license_family: APACHE + size: 5188462 + timestamp: 1723713185024 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tensorboard-data-server-0.7.0-py311h97c413e_4.conda + sha256: 61a6d78685c4edd1562dcf433536ee307fff98d7ca67946c31c660b5ef27ccc1 + md5: e2d333d85b459ca7fce89351e2ca3c9e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - openssl >=3.5.4,<4.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - __glibc >=2.17 + license: Apache-2.0 + license_family: APACHE + size: 3494880 + timestamp: 1764929829640 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tensorflow-base-2.17.0-cpu_py311h0e3e7eb_2.conda + sha256: ce47cc11933d7973cd5b7edbfcb3ff9bf94ff90f4bcbbfd0d7beeb8a4aeee1f7 + md5: 69a676eece25f693f5f14dfae8f47ce2 + depends: + - __glibc >=2.17,<3.0.a0 + - absl-py >=1.0.0 + - astunparse >=1.6.0 + - flatbuffers >=24.3.25,<24.3.26.0a0 + - gast >=0.2.1,!=0.5.0,!=0.5.1,!=0.5.2 + - giflib >=5.2.2,<5.3.0a0 + - google-pasta >=0.1.1 + - grpcio 1.62.* + - h5py >=3.10 + - icu >=75.1,<76.0a0 + - keras >=3.0 + - libabseil * cxx17* + - libabseil >=20240116.2,<20240117.0a0 + - libcurl >=8.9.1,<9.0a0 + - libgcc >=13 + - libgrpc >=1.62.2,<1.63.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libpng >=1.6.43,<1.7.0a0 + - libprotobuf >=4.25.3,<4.25.4.0a0 + - libsqlite >=3.46.0,<4.0a0 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - ml_dtypes >=0.4.0,<0.5 + - numpy >=1.23.5,<2.0a0 + - openssl >=3.3.1,<4.0a0 + - opt_einsum >=2.3.2 + - packaging + - protobuf >=3.20.3,<5,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5 + - python >=3.11,<3.12.0a0 + - python-flatbuffers >=24.3.25 + - python_abi 3.11.* *_cp311 + - requests >=2.21.0,<3 + - six >=1.12 + - snappy >=1.2.1,<1.3.0a0 + - tensorboard >=2.17,<2.18 + - termcolor >=1.1.0 + - typing_extensions >=3.6.6 + - wrapt >=1.11.0 + track_features: + - tensorflow-cpu + license: Apache-2.0 + license_family: Apache + size: 156856860 + timestamp: 1725123950117 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tensorstore-0.1.65-py311he109767_1.conda + sha256: c3427c0f54303c5048554fde0285a651f67f1292a05677b1f18f3372c66b2947 + md5: c37931804b3dc7ccbeaf081c3705b0a3 + depends: + - __glibc >=2.17,<3.0.a0 + - blosc >=1.21.6,<2.0a0 + - bzip2 >=1.0.8,<2.0a0 + - libavif16 >=1.1.1,<2.0a0 + - libcurl >=8.10.0,<9.0a0 + - libgcc >=13 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libprotobuf >=4.25.3,<4.25.4.0a0 + - libstdcxx >=13 + - libwebp-base >=1.4.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - ml_dtypes + - numpy >=1.23.5,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - pybind11-abi 4 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - xz >=5.2.6,<6.0a0 + license: Apache-2.0 AND MIT AND BSD-3-Clause AND BSD-2-Clause + size: 8448874 + timestamp: 1726476589494 +- conda: https://conda.anaconda.org/conda-forge/noarch/termcolor-3.3.0-pyhd8ed1ab_0.conda + sha256: 2107f959cd2a8a804d52e124434088e1a28c843942b62a7f8a3d84072861f0ef + md5: bc6228906129e420c74a5ebaf0d63936 + depends: + - python >=3.10 + license: MIT + license_family: MIT + size: 13259 + timestamp: 1767096412722 +- 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/toolz-1.2.0-pyh5ded981_0.conda + sha256: 582d3ab0298347c5f46439c7ce834c7152eb43b0cce1e229568de7235cddad13 + md5: 17f8db9088267a3cb38d56cc22d268ae + depends: + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + size: 56736 + timestamp: 1791368097449 +- conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.70.1-pyhfa0c392_0.conda + sha256: 7c40c84de3de3624c2a753496122dbb880903c796d183e9d4be6c15c310c4bab + md5: ffc91f29264eeb8d3ba96fdc897316c3 + depends: + - python >=3.11 + - __unix + - python + constrains: + - envwrap >=0.2 + - ipywidgets >=6.0 + license: MPL-2.0 and MIT + size: 95977 + timestamp: 1789187326570 +- conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.16.1-pyhcf101f3_0.conda + sha256: 03dba5917f944c6684ab44c81daacac1624cd148e4b2cae215dcec594a210c48 + md5: a79bf97561232a31447b6246c2153ab5 + depends: + - python >=3.10 + - python + license: BSD-3-Clause + license_family: BSD + size: 116935 + timestamp: 1785761789772 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + sha256: b141933ece3518f6d7b75dfb59451e2f26b405a44c18e2518a83e9a02e09315c + md5: c680b5747e8c4c8f23dca0bb7042a8fc + depends: + - typing_extensions ==4.16.0 pyhcf101f3_0 + license: PSF-2.0 + license_family: PSF + size: 94080 + timestamp: 1783002732887 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + sha256: 2d888f90af0686044882c74193ec80a90ec1943145d94a7b1b048958acda1848 + md5: c70ad746c22219b9700931707482992c + depends: + - python >=3.10 + - python + license: PSF-2.0 + license_family: PSF + size: 52631 + timestamp: 1783002732887 +- 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/unicodedata2-18.0.0-py311h0d48ccd_0.conda + sha256: c8dce6fd51ed3a8ac9f600939ada429691b09c00bf651e611e221a900c16c2ec + md5: b3c135d87baf528b7263c06452926ff0 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: Apache-2.0 + license_family: Apache + size: 421360 + timestamp: 1789928103335 +- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.8.0-pyhd8ed1ab_0.conda + sha256: c5511c190ab55168ca412f3c54592fbf677ae6250784cb72b227a7cf3f538f7d + md5: 407a3d3778570bae8e8fcf554e803e43 + depends: + - backports.zstd >=1.0.0 + - brotli-python >=1.2.0 + - h2 >=4,<5 + - pysocks >=1.5.6,<2.0,!=1.5.7 + - python >=3.11 + license: MIT + license_family: MIT + size: 107485 + timestamp: 1789566710244 +- conda: https://conda.anaconda.org/conda-forge/linux-64/wcwidth-0.9.3-py311hd139983_0.conda + noarch: python + sha256: bd1b4399854d08a4565740ab517a38759e158fba061c8c9eb47568d3f97769d9 + md5: 33a6c45b26f3325496154778ce32b195 + depends: + - python + - python >=3.11 + - python-abi3 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - _python_abi3_support 1.* + - cpython >=3.11 + license: MIT + license_family: MIT + size: 368576 + timestamp: 1792530221364 +- conda: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.1.9-pyh5ded981_0.conda + sha256: 9bb5c06955efec7a5801bb39a06896f22026c39d845b9fc8ade15e6861ef9284 + md5: cb4014ab1e412ad4a8aeeee11577065e + depends: + - markupsafe >=2.1.1 + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + size: 260273 + timestamp: 1790550578594 +- 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/wrapt-2.5.1-py311h194be0f_0.conda + sha256: 3853ffc0fa575757dc5c01ba20ac7a7d2e7e4d1569a6eb95e8c901cbadab8b3a + md5: ab5e9525346030e8354b1ba7043b30dd + depends: + - python + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.11.* *_cp311 + license: BSD-2-Clause + license_family: BSD + size: 156447 + timestamp: 1792013641859 +- 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/xz-5.8.3-ha02ee65_1.conda + sha256: 547b2392d8f7b76efd4a0970946f6da2a1136ad5fe3dc936af81e02eb7181076 + md5: 36a079606b3aaf9d726211825f182452 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - liblzma 5.8.3 hb03c661_1 + - liblzma-devel 5.8.3 hb03c661_1 + - xz-gpl-tools 5.8.3 ha02ee65_1 + - xz-tools 5.8.3 hb03c661_1 + license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later + size: 23610 + timestamp: 1786348658246 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.3-ha02ee65_1.conda + sha256: ed6dbec5e4f0f71e7ac629b90dc4c9fba38d194cc88eab891c29e461b408977a + md5: 137db930adb0b3c5407485e0e1a50cfa + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - liblzma 5.8.3 hb03c661_1 + constrains: + - xz 5.8.3.* + license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later + size: 40118 + timestamp: 1786348648882 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.3-hb03c661_1.conda + sha256: c74fa3eddd3ea648456517948f85068d8a07acad7752fd83c7e95b6cebb7114a + md5: 10d693a2db6e8339e4eebcb3a3dae88d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - liblzma 5.8.3 hb03c661_1 + constrains: + - xz 5.8.3.* + license: 0BSD AND LGPL-2.1-or-later + size: 96459 + timestamp: 1786348637686 +- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-hebe6cf0_3.conda + sha256: d164dfa75ecd538f6fd68765defcc06aa875bc697b9b215362d79a2a73125dd0 + md5: e741576fb8f89821ac7c1c537322a33d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 84936 + timestamp: 1787228426393 +- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.2-pyh5ded981_0.conda + sha256: 4e5c50cf5ecc00d83a20b987c52d49b78fa96026437ab09b11f4b7c46b7fc061 + md5: 3a99defa674883e167603f141728de7e + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + size: 24791 + timestamp: 1792622774790 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.2-h25fd6f3_3.conda + sha256: 16080a1c7724f7d25727cdc23c7658e0cec2db52448c1dc0c33467ee2c6e1c62 + md5: 6acb86426229f96f93e5468d1df3a5e8 + depends: + - __glibc >=2.17,<3.0.a0 + - libzlib 1.3.2 h25fd6f3_3 + license: Zlib + license_family: Other + size: 96132 + timestamp: 1785362957588 +- 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/colabfold/environment.gpu.yml b/modules/nf-core/colabfold/environment.gpu.yml new file mode 100644 index 000000000000..4911bf51fca6 --- /dev/null +++ b/modules/nf-core/colabfold/environment.gpu.yml @@ -0,0 +1,14 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::colabfold=1.5.5" + # CUDA 12.0 is the lowest CUDA whose jaxlib build ships ptxas (via cuda-nvcc) + - "conda-forge::cuda-version=12.0" + # colabfold 1.5.5 needs jax <0.4.26; newer dm-haiku releases need a newer jax + - "conda-forge::dm-haiku=0.0.12" + - "conda-forge::flax=0.8.2" + - "conda-forge::jax=0.4.25" + - "conda-forge::jaxlib=0.4.25=*cuda*" diff --git a/modules/nf-core/colabfold/environment.yml b/modules/nf-core/colabfold/environment.yml index e6ec195199b9..34b0a2428866 100644 --- a/modules/nf-core/colabfold/environment.yml +++ b/modules/nf-core/colabfold/environment.yml @@ -4,4 +4,7 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::colabfold=1.5.5 + - "bioconda::colabfold=1.5.5" + # colabfold 1.5.5 needs jax <0.4.26; newer dm-haiku releases need a newer jax + - "conda-forge::dm-haiku=0.0.12" + - "conda-forge::flax=0.8.2" diff --git a/modules/nf-core/colabfold/main.nf b/modules/nf-core/colabfold/main.nf index 214e09a76d20..f05ef0ec8a9d 100644 --- a/modules/nf-core/colabfold/main.nf +++ b/modules/nf-core/colabfold/main.nf @@ -3,10 +3,10 @@ process COLABFOLD { label 'process_high' label 'process_gpu' - conda "${moduleDir}/environment.yml" + conda "${task.accelerator ? "${moduleDir}/environment.gpu.yml" : "${moduleDir}/environment.yml"}" container "${workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container - ? 'https://depot.galaxyproject.org/singularity/colabfold:1.5.5--pyh7cba7a3_2' - : 'quay.io/biocontainers/colabfold:1.5.5--pyh7cba7a3_2'}" + ? (task.accelerator ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/ee/eefb564f01b59ec8f7d85de34df208ba245d830ed9fecf1eb5bf8625cfbd68ef/data' : 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/d2/d2de6276b0c23cc1aaab4af2aa1336fa943b0c45d43ce4ed483911fb99a3db33/data') + : (task.accelerator ? 'community.wave.seqera.io/library/colabfold_cuda-version_dm-haiku_flax_pruned:ccfbc77af1b9acd9' : 'community.wave.seqera.io/library/colabfold_dm-haiku_flax:50a22b7e73876edb')}" input: tuple val(meta), path(fasta) @@ -19,6 +19,7 @@ process COLABFOLD { tuple val(meta), path("${prefix}/*.png") , emit: png , optional: true tuple val(meta), path("${prefix}/log.txt") , emit: log , optional: true tuple val("${task.process}"), val('colabfold'), eval("python -c 'import importlib.metadata as m; print(m.version(\"colabfold\"))'"), topic: versions, emit: versions_colabfold + tuple val("${task.process}"), val('cuda'), eval('python -c "import glob, json, sys; f = glob.glob(sys.prefix + \'/conda-meta/cuda-version-*.json\'); print(json.load(open(f[0]))[\'version\'] if f else \'no CUDA available\')"'), topic: versions, emit: versions_cuda when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/colabfold/meta.yml b/modules/nf-core/colabfold/meta.yml index c0bf71a649b3..cdc758fd579f 100644 --- a/modules/nf-core/colabfold/meta.yml +++ b/modules/nf-core/colabfold/meta.yml @@ -1,6 +1,5 @@ name: colabfold -description: Predicts protein structure with AlphaFold2, taking the multiple - sequence alignment from an MMseqs2 server rather than local databases +description: Predicts protein structure with AlphaFold2, taking the multiple sequence alignment from an MMseqs2 server rather than local databases keywords: - protein structure - structure prediction @@ -22,6 +21,7 @@ tools: doi: 10.1038/s41592-022-01488-1 licence: ["MIT"] identifier: biotools:colabfold + args_id: "$args" input: - - meta: @@ -31,10 +31,10 @@ input: e.g. [ id:'sample1' ] - fasta: type: file - description: | - Protein sequences to fold, one prediction per record. An empty file - is accepted and produces no output. + description: Protein sequences to fold, one prediction per record (an empty file produces no output) pattern: "*.{fa,faa,fasta}" + ontologies: + - edam: http://edamontology.org/format_1929 # FASTA - - meta2: type: map description: | @@ -42,11 +42,8 @@ input: e.g. [ id:'alphafold2_params' ] - weights: type: directory - description: | - ColabFold data directory containing the AlphaFold2 parameters - (`params/`). Pass `[]` to let colabfold_batch download them into its - own cache on first use. - + description: Optional ColabFold data directory with the AlphaFold2 parameters in `params/`; pass `[]` to download them + ontologies: [] output: pdb: - - meta: @@ -56,12 +53,10 @@ output: e.g. [ id:'sample1' ] - ${prefix}/*_rank_*.pdb: type: file - description: | - Predicted structures, named - _{unrelaxed,relaxed}_rank___seed_.pdb; - rank_001 is the best model. Per-residue pLDDT is stored in the - B-factor column. + description: Predicted structures (rank_001 is the best model; per-residue pLDDT in the B-factor column) pattern: "*_rank_*.pdb" + ontologies: + - edam: http://edamontology.org/format_1476 # PDB json: - - meta: type: map @@ -72,6 +67,8 @@ output: type: file description: Per-model scores (per-residue pLDDT, PAE, pTM) pattern: "*_scores_rank_*.json" + ontologies: + - edam: http://edamontology.org/format_3464 # JSON a3m: - - meta: type: map @@ -82,6 +79,7 @@ output: type: file description: Multiple sequence alignment used for each query pattern: "*.a3m" + ontologies: [] png: - - meta: type: map @@ -92,6 +90,8 @@ output: type: file description: pLDDT, PAE and MSA coverage plots pattern: "*.png" + ontologies: + - edam: http://edamontology.org/format_3603 # PNG log: - - meta: type: map @@ -102,6 +102,8 @@ output: type: file description: colabfold_batch log pattern: "log.txt" + ontologies: + - edam: http://edamontology.org/format_2330 # Textual format versions_colabfold: - - ${task.process}: type: string @@ -112,6 +114,16 @@ output: - python -c 'import importlib.metadata as m; print(m.version("colabfold"))': type: eval description: The expression to obtain the version of the tool + versions_cuda: + - - ${task.process}: + type: string + description: The name of the process + - cuda: + type: string + description: Name of the runtime + - python -c "import glob, json, sys; f = glob.glob(sys.prefix + '/conda-meta/cuda-version-*.json'); print(json.load(open(f[0]))['version'] if f else 'no CUDA available')": + type: eval + description: CUDA version of the task's environment, or `no CUDA available` on the CPU path topics: versions: @@ -124,8 +136,31 @@ topics: - python -c 'import importlib.metadata as m; print(m.version("colabfold"))': type: eval description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - cuda: + type: string + description: Name of the runtime + - python -c "import glob, json, sys; f = glob.glob(sys.prefix + '/conda-meta/cuda-version-*.json'); print(json.load(open(f[0]))['version'] if f else 'no CUDA available')": + type: eval + description: CUDA version of the task's environment, or `no CUDA available` on the CPU path authors: - "@Bboy010" maintainers: - "@Bboy010" +containers: + docker: + linux/amd64: + name: community.wave.seqera.io/library/colabfold_dm-haiku_flax:50a22b7e73876edb + build_id: bd-50a22b7e73876edb_1 + scan_id: sc-7d6a4f09ec9a8b34_1 + singularity: + linux/amd64: + name: oras://community.wave.seqera.io/library/colabfold_dm-haiku_flax:797eb5b15587ba43 + build_id: bd-797eb5b15587ba43_1 + https: https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/d2/d2de6276b0c23cc1aaab4af2aa1336fa943b0c45d43ce4ed483911fb99a3db33/data + conda: + linux/amd64: + lock_file: modules/nf-core/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt diff --git a/modules/nf-core/colabfold/tests/main.gpu.nf.test b/modules/nf-core/colabfold/tests/main.gpu.nf.test new file mode 100644 index 000000000000..b475a3dc9b41 --- /dev/null +++ b/modules/nf-core/colabfold/tests/main.gpu.nf.test @@ -0,0 +1,65 @@ +nextflow_process { + + name "Test Process COLABFOLD (GPU)" + script "../main.nf" + process "COLABFOLD" + + tag "gpu" + tag "modules" + tag "modules_nfcore" + tag "colabfold" + + // Weights are passed as [] so colabfold_batch downloads them (~3.5 GB); + // they cannot be shipped in nf-core/test-datasets. nextflow.gpu.config + // runs a single-sequence prediction, so no MSA server is queried. + test("proteomics - faa - single sequence - gpu") { + + config "./nextflow.gpu.config" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) + ] + input[1] = [ [:], [] ] + """ + } + } + + then { + assert process.success + assertAll( + { assert snapshot(sanitizeOutput(process.out, unstableKeys: ['pdb', 'json', 'png', 'log'])).match() }, + { assert path(process.out.pdb[0][1]).readLines().any { it.startsWith('ATOM') } }, + { assert path(process.out.log[0][1]).text.contains('Done') } + ) + } + } + + test("proteomics - faa - stub - gpu") { + + config "./nextflow.gpu.config" + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) + ] + input[1] = [ [:], [] ] + """ + } + } + + then { + assert process.success + assertAll( + { assert snapshot(sanitizeOutput(process.out)).match() } + ) + } + } +} diff --git a/modules/nf-core/colabfold/tests/main.gpu.nf.test.snap b/modules/nf-core/colabfold/tests/main.gpu.nf.test.snap new file mode 100644 index 000000000000..35c3505d3c91 --- /dev/null +++ b/modules/nf-core/colabfold/tests/main.gpu.nf.test.snap @@ -0,0 +1,136 @@ +{ + "proteomics - faa - single sequence - gpu": { + "content": [ + { + "a3m": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL.a3m:md5,a36c401ed826f58bbc5e0c1a386f8245" + ] + ], + "json": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL_scores_rank_001_alphafold2_ptm_model_1_seed_000.json" + ] + ], + "log": [ + [ + { + "id": "test" + }, + "log.txt" + ] + ], + "pdb": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb" + ] + ], + "png": [ + [ + { + "id": "test" + }, + [ + "GI_225038609_EFDID_719595_FULL_coverage.png", + "GI_225038609_EFDID_719595_FULL_pae.png", + "GI_225038609_EFDID_719595_FULL_plddt.png" + ] + ] + ], + "versions_colabfold": [ + [ + "COLABFOLD", + "colabfold", + "1.5.5" + ] + ], + "versions_cuda": [ + [ + "COLABFOLD", + "cuda", + "12.0" + ] + ] + } + ], + "timestamp": "2026-10-24T19:20:38.864797892", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + }, + "proteomics - faa - stub - gpu": { + "content": [ + { + "a3m": [ + [ + { + "id": "test" + }, + "test.a3m:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "json": [ + [ + { + "id": "test" + }, + "test_scores_rank_001_alphafold2_ptm_model_1_seed_000.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test" + }, + "log.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "pdb": [ + [ + { + "id": "test" + }, + "test_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "png": [ + [ + { + "id": "test" + }, + "test_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions_colabfold": [ + [ + "COLABFOLD", + "colabfold", + "1.5.5" + ] + ], + "versions_cuda": [ + [ + "COLABFOLD", + "cuda", + "12.0" + ] + ] + } + ], + "timestamp": "2026-10-24T19:13:35.415661257", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + } +} \ No newline at end of file diff --git a/modules/nf-core/colabfold/tests/main.nf.test b/modules/nf-core/colabfold/tests/main.nf.test index 4ea4d1ee9ee3..f10111842ffa 100644 --- a/modules/nf-core/colabfold/tests/main.nf.test +++ b/modules/nf-core/colabfold/tests/main.nf.test @@ -8,10 +8,9 @@ nextflow_process { tag "modules_nfcore" tag "colabfold" - // A real prediction needs the ~4 GB AlphaFold2 weights, which no CI runner - // has. What can run for real is the empty-input path, where the module - // must succeed and emit no structure. - test("empty fasta") { + // The real prediction test is in main.gpu.nf.test: on CPU, folding even a + // small protein takes over 10 minutes after a ~3.5 GB weights download. + test("proteomics - empty faa - no structures") { when { process { @@ -25,8 +24,8 @@ nextflow_process { } then { + assert process.success assertAll( - { assert process.success }, { assert snapshot(sanitizeOutput(process.out)).match() } ) } @@ -49,8 +48,8 @@ nextflow_process { } then { + assert process.success assertAll( - { assert process.success }, { assert snapshot(sanitizeOutput(process.out)).match() } ) } diff --git a/modules/nf-core/colabfold/tests/main.nf.test.snap b/modules/nf-core/colabfold/tests/main.nf.test.snap index bf30de7d5b84..77c2bba31ac3 100644 --- a/modules/nf-core/colabfold/tests/main.nf.test.snap +++ b/modules/nf-core/colabfold/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "empty fasta": { + "proteomics - empty faa - no structures": { "content": [ { "a3m": [ @@ -23,10 +23,17 @@ "colabfold", "1.5.5" ] + ], + "versions_cuda": [ + [ + "COLABFOLD", + "cuda", + "no CUDA available" + ] ] } ], - "timestamp": "2026-10-15T11:47:31.473614942", + "timestamp": "2026-10-24T11:34:34.000677521", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" @@ -81,10 +88,17 @@ "colabfold", "1.5.5" ] + ], + "versions_cuda": [ + [ + "COLABFOLD", + "cuda", + "no CUDA available" + ] ] } ], - "timestamp": "2026-10-15T11:47:47.417058992", + "timestamp": "2026-10-24T11:34:48.951180782", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" diff --git a/modules/nf-core/colabfold/tests/nextflow.gpu.config b/modules/nf-core/colabfold/tests/nextflow.gpu.config new file mode 100644 index 000000000000..0c2509b7aa1a --- /dev/null +++ b/modules/nf-core/colabfold/tests/nextflow.gpu.config @@ -0,0 +1,8 @@ +process { + withName: 'COLABFOLD' { + accelerator = 1 + // Concurrent GPU tasks on one GPU can deadlock under Singularity + maxForks = 1 + ext.args = '--msa-mode single_sequence --num-models 1 --num-recycle 1' + } +} From a5aaff6e3a1a61a2b333bd85a24b90f6ffa23ea4 Mon Sep 17 00:00:00 2001 From: Bboy010 Date: Sun, 25 Oct 2026 20:40:34 +0000 Subject: [PATCH 4/6] colabfold: expose template inputs and every output, report pinned deps, fix tests - Optional inputs for custom templates (--custom-template-path) and for a PDB hit file with a local PDB mirror (--pdb-hit-file, --local-pdb-path); each flag is passed only when its input is given, --templates stays in ext.args. - Emit every file colabfold_batch can write: PAE JSON, pickles, representation .npy files, result.zip, template domain names, config.json and cite.bibtex. - Report the pinned dm-haiku, flax and jax on the versions topic. - Stub writes the same files as a real run, and nothing for an empty FASTA. - GPU tests: stable checks inside the snapshot, test arguments through params.module_args, stub test renamed to end with "- stub". Co-Authored-By: Claude Opus 5.5 --- modules/nf-core/colabfold/main.nf | 52 ++++-- modules/nf-core/colabfold/meta.yml | 166 ++++++++++++++++++ .../nf-core/colabfold/tests/main.gpu.nf.test | 29 ++- .../colabfold/tests/main.gpu.nf.test.snap | 131 +++++++++++++- modules/nf-core/colabfold/tests/main.nf.test | 8 +- .../nf-core/colabfold/tests/main.nf.test.snap | 109 +++++++++++- .../colabfold/tests/nextflow.gpu.config | 2 +- 7 files changed, 464 insertions(+), 33 deletions(-) diff --git a/modules/nf-core/colabfold/main.nf b/modules/nf-core/colabfold/main.nf index f05ef0ec8a9d..2f390110097d 100644 --- a/modules/nf-core/colabfold/main.nf +++ b/modules/nf-core/colabfold/main.nf @@ -11,23 +11,39 @@ process COLABFOLD { input: tuple val(meta), path(fasta) tuple val(meta2), path(weights) + tuple val(meta3), path(templates) + tuple val(meta4), path(pdb_hits), path(local_pdb) output: - tuple val(meta), path("${prefix}/*_rank_*.pdb") , emit: pdb , optional: true - tuple val(meta), path("${prefix}/*_scores_rank_*.json"), emit: json, optional: true - tuple val(meta), path("${prefix}/*.a3m") , emit: a3m , optional: true - tuple val(meta), path("${prefix}/*.png") , emit: png , optional: true - tuple val(meta), path("${prefix}/log.txt") , emit: log , optional: true + tuple val(meta), path("${prefix}/*_rank_*.pdb") , emit: pdb , optional: true + tuple val(meta), path("${prefix}/*_scores_rank_*.json") , emit: json , optional: true + tuple val(meta), path("${prefix}/*_predicted_aligned_error_v1.json"), emit: pae , optional: true + tuple val(meta), path("${prefix}/*.a3m") , emit: a3m , optional: true + tuple val(meta), path("${prefix}/*.png") , emit: png , optional: true + tuple val(meta), path("${prefix}/*.pickle") , emit: pickle , optional: true + tuple val(meta), path("${prefix}/*_repr_*.npy") , emit: npy , optional: true + tuple val(meta), path("${prefix}/*.result.zip") , emit: zip , optional: true + tuple val(meta), path("${prefix}/*_template_domain_names.json") , emit: templates, optional: true + tuple val(meta), path("${prefix}/config.json") , emit: config , optional: true + tuple val(meta), path("${prefix}/cite.bibtex") , emit: bibtex , optional: true + tuple val(meta), path("${prefix}/log.txt") , emit: log , optional: true tuple val("${task.process}"), val('colabfold'), eval("python -c 'import importlib.metadata as m; print(m.version(\"colabfold\"))'"), topic: versions, emit: versions_colabfold tuple val("${task.process}"), val('cuda'), eval('python -c "import glob, json, sys; f = glob.glob(sys.prefix + \'/conda-meta/cuda-version-*.json\'); print(json.load(open(f[0]))[\'version\'] if f else \'no CUDA available\')"'), topic: versions, emit: versions_cuda + tuple val("${task.process}"), val('dm-haiku'), eval("python -c 'import importlib.metadata as m; print(m.version(\"dm-haiku\"))'"), topic: versions, emit: versions_dm_haiku + tuple val("${task.process}"), val('flax'), eval("python -c 'import importlib.metadata as m; print(m.version(\"flax\"))'"), topic: versions, emit: versions_flax + tuple val("${task.process}"), val('jax'), eval("python -c 'import importlib.metadata as m; print(m.version(\"jax\"))'"), topic: versions, emit: versions_jax when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - prefix = task.ext.prefix ?: "${meta.id}" - def data = weights ? "--data ${weights}" : '' + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def data = weights ? "--data ${weights}" : '' + // Templates are only used when ext.args also contains --templates + def template = templates ? "--custom-template-path ${templates}" : '' + def hit_file = pdb_hits ? "--pdb-hit-file ${pdb_hits}" : '' + def pdb_local = local_pdb ? "--local-pdb-path ${local_pdb}" : '' """ # Under Docker the container runs as the host UID, which has no home # directory; colabfold_batch needs a writable HOME for its cache. @@ -40,6 +56,9 @@ process COLABFOLD { ${fasta} \\ ${prefix} \\ ${data} \\ + ${template} \\ + ${hit_file} \\ + ${pdb_local} \\ ${args} fi """ @@ -48,10 +67,17 @@ process COLABFOLD { prefix = task.ext.prefix ?: "${meta.id}" """ mkdir ${prefix} - touch ${prefix}/${prefix}_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb - touch ${prefix}/${prefix}_scores_rank_001_alphafold2_ptm_model_1_seed_000.json - touch ${prefix}/${prefix}.a3m - touch ${prefix}/${prefix}_plddt.png - touch ${prefix}/log.txt + if [ -s ${fasta} ]; then + touch ${prefix}/${prefix}_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb + touch ${prefix}/${prefix}_scores_rank_001_alphafold2_ptm_model_1_seed_000.json + touch ${prefix}/${prefix}_predicted_aligned_error_v1.json + touch ${prefix}/${prefix}.a3m + touch ${prefix}/${prefix}_coverage.png + touch ${prefix}/${prefix}_pae.png + touch ${prefix}/${prefix}_plddt.png + touch ${prefix}/config.json + touch ${prefix}/cite.bibtex + touch ${prefix}/log.txt + fi """ } diff --git a/modules/nf-core/colabfold/meta.yml b/modules/nf-core/colabfold/meta.yml index cdc758fd579f..63fc39151084 100644 --- a/modules/nf-core/colabfold/meta.yml +++ b/modules/nf-core/colabfold/meta.yml @@ -44,6 +44,32 @@ input: type: directory description: Optional ColabFold data directory with the AlphaFold2 parameters in `params/`; pass `[]` to download them ontologies: [] + - - meta3: + type: map + description: | + Groovy Map containing templates information + e.g. [ id:'templates' ] + - templates: + type: directory + description: Optional directory of PDB/mmCIF files used as custom templates (`--custom-template-path`; needs `--templates` in `ext.args`) + ontologies: + - edam: http://edamontology.org/format_1476 # PDB + - edam: http://edamontology.org/format_1477 # mmCIF + - - meta4: + type: map + description: | + Groovy Map containing template hits information + e.g. [ id:'pdb_hits' ] + - pdb_hits: + type: file + description: Optional BLAST-m8 PDB hit file for the input MSA, e.g. from colabfold_search (`--pdb-hit-file`; needs `--templates` in `ext.args`) + pattern: "*.m8" + ontologies: [] + - local_pdb: + type: directory + description: Optional local mirror of the PDB mmCIF database, used for the templates in `pdb_hits` (`--local-pdb-path`) + ontologies: + - edam: http://edamontology.org/format_1477 # mmCIF output: pdb: - - meta: @@ -69,6 +95,18 @@ output: pattern: "*_scores_rank_*.json" ontologies: - edam: http://edamontology.org/format_3464 # JSON + pae: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - ${prefix}/*_predicted_aligned_error_v1.json: + type: file + description: Predicted aligned error of the best model, in the AlphaFold database format + pattern: "*_predicted_aligned_error_v1.json" + ontologies: + - edam: http://edamontology.org/format_3464 # JSON a3m: - - meta: type: map @@ -92,6 +130,77 @@ output: pattern: "*.png" ontologies: - edam: http://edamontology.org/format_3603 # PNG + pickle: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - ${prefix}/*.pickle: + type: file + description: Raw model outputs (`--save-all`) or the MSA and template features (`--msa-only`) + pattern: "*.pickle" + ontologies: + - edam: http://edamontology.org/format_4002 # pickle + npy: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - ${prefix}/*_repr_*.npy: + type: file + description: Single and pair representation embeddings (`--save-single-representations`, `--save-pair-representations`) + pattern: "*_repr_*.npy" + ontologies: + - edam: http://edamontology.org/format_4003 # NumPy format + zip: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - ${prefix}/*.result.zip: + type: file + description: All results of a query zipped into one archive (`--zip`; the other outputs are then removed) + pattern: "*.result.zip" + ontologies: + - edam: http://edamontology.org/format_3987 # ZIP format + templates: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - ${prefix}/*_template_domain_names.json: + type: file + description: Templates found for each query (`--templates`) + pattern: "*_template_domain_names.json" + ontologies: + - edam: http://edamontology.org/format_3464 # JSON + config: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - ${prefix}/config.json: + type: file + description: Parameters of the colabfold_batch run + pattern: "config.json" + ontologies: + - edam: http://edamontology.org/format_3464 # JSON + bibtex: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample1' ] + - ${prefix}/cite.bibtex: + type: file + description: Citations for the tools and databases used in the run + pattern: "cite.bibtex" + ontologies: [] log: - - meta: type: map @@ -124,6 +233,36 @@ output: - python -c "import glob, json, sys; f = glob.glob(sys.prefix + '/conda-meta/cuda-version-*.json'); print(json.load(open(f[0]))['version'] if f else 'no CUDA available')": type: eval description: CUDA version of the task's environment, or `no CUDA available` on the CPU path + versions_dm_haiku: + - - ${task.process}: + type: string + description: The name of the process + - dm-haiku: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("dm-haiku"))': + type: eval + description: The expression to obtain the version of the tool + versions_flax: + - - ${task.process}: + type: string + description: The name of the process + - flax: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("flax"))': + type: eval + description: The expression to obtain the version of the tool + versions_jax: + - - ${task.process}: + type: string + description: The name of the process + - jax: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("jax"))': + type: eval + description: The expression to obtain the version of the tool topics: versions: @@ -145,6 +284,33 @@ topics: - python -c "import glob, json, sys; f = glob.glob(sys.prefix + '/conda-meta/cuda-version-*.json'); print(json.load(open(f[0]))['version'] if f else 'no CUDA available')": type: eval description: CUDA version of the task's environment, or `no CUDA available` on the CPU path + - - ${task.process}: + type: string + description: The name of the process + - dm-haiku: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("dm-haiku"))': + type: eval + description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - flax: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("flax"))': + type: eval + description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - jax: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("jax"))': + type: eval + description: The expression to obtain the version of the tool authors: - "@Bboy010" diff --git a/modules/nf-core/colabfold/tests/main.gpu.nf.test b/modules/nf-core/colabfold/tests/main.gpu.nf.test index b475a3dc9b41..857f5c308177 100644 --- a/modules/nf-core/colabfold/tests/main.gpu.nf.test +++ b/modules/nf-core/colabfold/tests/main.gpu.nf.test @@ -3,6 +3,7 @@ nextflow_process { name "Test Process COLABFOLD (GPU)" script "../main.nf" process "COLABFOLD" + config "./nextflow.gpu.config" tag "gpu" tag "modules" @@ -10,13 +11,14 @@ nextflow_process { tag "colabfold" // Weights are passed as [] so colabfold_batch downloads them (~3.5 GB); - // they cannot be shipped in nf-core/test-datasets. nextflow.gpu.config - // runs a single-sequence prediction, so no MSA server is queried. + // they cannot be shipped in nf-core/test-datasets. A single-sequence + // prediction queries no MSA server. test("proteomics - faa - single sequence - gpu") { - config "./nextflow.gpu.config" - when { + params { + module_args = '--msa-mode single_sequence --num-models 1 --num-recycle 1' + } process { """ input[0] = [ @@ -24,6 +26,8 @@ nextflow_process { file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) ] input[1] = [ [:], [] ] + input[2] = [ [:], [] ] + input[3] = [ [:], [], [] ] """ } } @@ -31,19 +35,24 @@ nextflow_process { then { assert process.success assertAll( - { assert snapshot(sanitizeOutput(process.out, unstableKeys: ['pdb', 'json', 'png', 'log'])).match() }, - { assert path(process.out.pdb[0][1]).readLines().any { it.startsWith('ATOM') } }, - { assert path(process.out.log[0][1]).text.contains('Done') } + { assert snapshot( + sanitizeOutput(process.out, unstableKeys: ['pdb', 'json', 'pae', 'png', 'config', 'bibtex', 'log']), + path(process.out.pdb[0][1]).readLines().count { line -> line.startsWith('ATOM') }, + path(process.out.json[0][1]).text.contains('plddt'), + path(process.out.log[0][1]).text.contains('Done') + ).match() } ) } } - test("proteomics - faa - stub - gpu") { + test("proteomics - faa - gpu - stub") { - config "./nextflow.gpu.config" options "-stub" when { + params { + module_args = '--msa-mode single_sequence --num-models 1 --num-recycle 1' + } process { """ input[0] = [ @@ -51,6 +60,8 @@ nextflow_process { file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) ] input[1] = [ [:], [] ] + input[2] = [ [:], [] ] + input[3] = [ [:], [], [] ] """ } } diff --git a/modules/nf-core/colabfold/tests/main.gpu.nf.test.snap b/modules/nf-core/colabfold/tests/main.gpu.nf.test.snap index 35c3505d3c91..0f281eaafdd0 100644 --- a/modules/nf-core/colabfold/tests/main.gpu.nf.test.snap +++ b/modules/nf-core/colabfold/tests/main.gpu.nf.test.snap @@ -10,6 +10,22 @@ "GI_225038609_EFDID_719595_FULL.a3m:md5,a36c401ed826f58bbc5e0c1a386f8245" ] ], + "bibtex": [ + [ + { + "id": "test" + }, + "cite.bibtex" + ] + ], + "config": [ + [ + { + "id": "test" + }, + "config.json" + ] + ], "json": [ [ { @@ -26,6 +42,17 @@ "log.txt" ] ], + "npy": [ + + ], + "pae": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL_predicted_aligned_error_v1.json" + ] + ], "pdb": [ [ { @@ -33,6 +60,9 @@ }, "GI_225038609_EFDID_719595_FULL_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb" ] + ], + "pickle": [ + ], "png": [ [ @@ -45,6 +75,9 @@ "GI_225038609_EFDID_719595_FULL_plddt.png" ] ] + ], + "templates": [ + ], "versions_colabfold": [ [ @@ -59,16 +92,43 @@ "cuda", "12.0" ] + ], + "versions_dm_haiku": [ + [ + "COLABFOLD", + "dm-haiku", + "0.0.12" + ] + ], + "versions_flax": [ + [ + "COLABFOLD", + "flax", + "0.8.2" + ] + ], + "versions_jax": [ + [ + "COLABFOLD", + "jax", + "0.4.25" + ] + ], + "zip": [ + ] - } + }, + 2705, + true, + true ], - "timestamp": "2026-10-24T19:20:38.864797892", + "timestamp": "2026-10-25T20:31:00.373531312", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" } }, - "proteomics - faa - stub - gpu": { + "proteomics - faa - gpu - stub": { "content": [ { "a3m": [ @@ -79,6 +139,22 @@ "test.a3m:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], + "bibtex": [ + [ + { + "id": "test" + }, + "cite.bibtex:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "config": [ + [ + { + "id": "test" + }, + "config.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], "json": [ [ { @@ -95,6 +171,17 @@ "log.txt:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], + "npy": [ + + ], + "pae": [ + [ + { + "id": "test" + }, + "test_predicted_aligned_error_v1.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], "pdb": [ [ { @@ -102,14 +189,24 @@ }, "test_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" ] + ], + "pickle": [ + ], "png": [ [ { "id": "test" }, - "test_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test_coverage.png:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_pae.png:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] + ], + "templates": [ + ], "versions_colabfold": [ [ @@ -124,10 +221,34 @@ "cuda", "12.0" ] + ], + "versions_dm_haiku": [ + [ + "COLABFOLD", + "dm-haiku", + "0.0.12" + ] + ], + "versions_flax": [ + [ + "COLABFOLD", + "flax", + "0.8.2" + ] + ], + "versions_jax": [ + [ + "COLABFOLD", + "jax", + "0.4.25" + ] + ], + "zip": [ + ] } ], - "timestamp": "2026-10-24T19:13:35.415661257", + "timestamp": "2026-10-25T20:31:17.402725576", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" diff --git a/modules/nf-core/colabfold/tests/main.nf.test b/modules/nf-core/colabfold/tests/main.nf.test index f10111842ffa..abcc0aa36788 100644 --- a/modules/nf-core/colabfold/tests/main.nf.test +++ b/modules/nf-core/colabfold/tests/main.nf.test @@ -8,8 +8,8 @@ nextflow_process { tag "modules_nfcore" tag "colabfold" - // The real prediction test is in main.gpu.nf.test: on CPU, folding even a - // small protein takes over 10 minutes after a ~3.5 GB weights download. + // The real prediction test is in main.gpu.nf.test: on 4 CPUs, folding the + // 350-residue test protein takes ~15 minutes after a ~3.5 GB weights download. test("proteomics - empty faa - no structures") { when { @@ -19,6 +19,8 @@ nextflow_process { empty.deleteOnExit() input[0] = [ [ id:'test' ], file(empty.absolutePath) ] input[1] = [ [:], [] ] + input[2] = [ [:], [] ] + input[3] = [ [:], [], [] ] """ } } @@ -43,6 +45,8 @@ nextflow_process { file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) ] input[1] = [ [:], [] ] + input[2] = [ [:], [] ] + input[3] = [ [:], [], [] ] """ } } diff --git a/modules/nf-core/colabfold/tests/main.nf.test.snap b/modules/nf-core/colabfold/tests/main.nf.test.snap index 77c2bba31ac3..e9997d063aa5 100644 --- a/modules/nf-core/colabfold/tests/main.nf.test.snap +++ b/modules/nf-core/colabfold/tests/main.nf.test.snap @@ -4,18 +4,36 @@ { "a3m": [ + ], + "bibtex": [ + + ], + "config": [ + ], "json": [ ], "log": [ + ], + "npy": [ + + ], + "pae": [ + ], "pdb": [ + ], + "pickle": [ + ], "png": [ + ], + "templates": [ + ], "versions_colabfold": [ [ @@ -30,10 +48,34 @@ "cuda", "no CUDA available" ] + ], + "versions_dm_haiku": [ + [ + "COLABFOLD", + "dm-haiku", + "0.0.12" + ] + ], + "versions_flax": [ + [ + "COLABFOLD", + "flax", + "0.8.2" + ] + ], + "versions_jax": [ + [ + "COLABFOLD", + "jax", + "0.4.25" + ] + ], + "zip": [ + ] } ], - "timestamp": "2026-10-24T11:34:34.000677521", + "timestamp": "2026-10-25T20:23:34.480521323", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" @@ -50,6 +92,22 @@ "test.a3m:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], + "bibtex": [ + [ + { + "id": "test" + }, + "cite.bibtex:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "config": [ + [ + { + "id": "test" + }, + "config.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], "json": [ [ { @@ -66,6 +124,17 @@ "log.txt:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], + "npy": [ + + ], + "pae": [ + [ + { + "id": "test" + }, + "test_predicted_aligned_error_v1.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], "pdb": [ [ { @@ -73,14 +142,24 @@ }, "test_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" ] + ], + "pickle": [ + ], "png": [ [ { "id": "test" }, - "test_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test_coverage.png:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_pae.png:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] + ], + "templates": [ + ], "versions_colabfold": [ [ @@ -95,10 +174,34 @@ "cuda", "no CUDA available" ] + ], + "versions_dm_haiku": [ + [ + "COLABFOLD", + "dm-haiku", + "0.0.12" + ] + ], + "versions_flax": [ + [ + "COLABFOLD", + "flax", + "0.8.2" + ] + ], + "versions_jax": [ + [ + "COLABFOLD", + "jax", + "0.4.25" + ] + ], + "zip": [ + ] } ], - "timestamp": "2026-10-24T11:34:48.951180782", + "timestamp": "2026-10-25T20:23:51.110561499", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" diff --git a/modules/nf-core/colabfold/tests/nextflow.gpu.config b/modules/nf-core/colabfold/tests/nextflow.gpu.config index 0c2509b7aa1a..1871371ea562 100644 --- a/modules/nf-core/colabfold/tests/nextflow.gpu.config +++ b/modules/nf-core/colabfold/tests/nextflow.gpu.config @@ -3,6 +3,6 @@ process { accelerator = 1 // Concurrent GPU tasks on one GPU can deadlock under Singularity maxForks = 1 - ext.args = '--msa-mode single_sequence --num-models 1 --num-recycle 1' + ext.args = { params.module_args ?: '' } } } From e22eedc7ed7cdab775b853eabcd20a5e0d2b0f72 Mon Sep 17 00:00:00 2001 From: Bboy010 Date: Wed, 28 Oct 2026 18:53:54 +0000 Subject: [PATCH 5/6] colabfold: split into colabfold/downloadmodels + colabfold/colabfold, test every input - New colabfold/downloadmodels (COLABFOLD_DOWNLOADMODELS): downloads a parameter set once with colabfold's own download_alphafold_params(), which also writes the params/download*_finished.txt marker. Stub test. - colabfold/colabfold (COLABFOLD_COLABFOLD, moved from colabfold/): weights are a required input (--data); the empty-FASTA guard and its test are gone, the CPU test file is stub-only. - templates are staged as files into templates/, so the pdb70 index and PDB->mmCIF conversions colabfold writes there stay in the task dir. - The input also accepts a single A3M (colabfold names that query after the file); with a FASTA, --templates always queries the MSA server. - Stub names the files after the FASTA headers (or the A3M file name). - GPU tests take the weights from a setup block running COLABFOLD_DOWNLOADMODELS, and cover custom templates (1L2Y) and pdb_hits + local_pdb (via UNTAR) on Trp-cage; test data in nf-core/test-datasets#2354. - meta.yml: weights description (download marker), TSV for *.m8. Co-Authored-By: Claude Opus 5.5 --- .../linux_amd64-bd-50a22b7e73876edb_1.txt | 0 .../{ => colabfold}/environment.gpu.yml | 0 .../colabfold/{ => colabfold}/environment.yml | 0 .../nf-core/colabfold/{ => colabfold}/main.nf | 47 +- .../colabfold/{ => colabfold}/meta.yml | 20 +- .../colabfold/tests/main.gpu.nf.test | 193 ++ .../colabfold/tests/main.gpu.nf.test.snap | 525 +++ .../{ => colabfold}/tests/main.nf.test | 24 +- .../tests/main.nf.test.snap} | 71 +- .../{ => colabfold}/tests/nextflow.gpu.config | 2 +- .../linux_amd64-bd-50a22b7e73876edb_1.txt | 3001 +++++++++++++++++ .../colabfold/downloadmodels/environment.yml | 10 + .../nf-core/colabfold/downloadmodels/main.nf | 40 + .../nf-core/colabfold/downloadmodels/meta.yml | 83 + .../downloadmodels/tests/main.nf.test | 32 + .../downloadmodels/tests/main.nf.test.snap | 32 + .../nf-core/colabfold/tests/main.gpu.nf.test | 76 - .../nf-core/colabfold/tests/main.nf.test.snap | 210 -- 18 files changed, 3999 insertions(+), 367 deletions(-) rename modules/nf-core/colabfold/{ => colabfold}/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt (100%) rename modules/nf-core/colabfold/{ => colabfold}/environment.gpu.yml (100%) rename modules/nf-core/colabfold/{ => colabfold}/environment.yml (100%) rename modules/nf-core/colabfold/{ => colabfold}/main.nf (79%) rename modules/nf-core/colabfold/{ => colabfold}/meta.yml (92%) create mode 100644 modules/nf-core/colabfold/colabfold/tests/main.gpu.nf.test create mode 100644 modules/nf-core/colabfold/colabfold/tests/main.gpu.nf.test.snap rename modules/nf-core/colabfold/{ => colabfold}/tests/main.nf.test (70%) rename modules/nf-core/colabfold/{tests/main.gpu.nf.test.snap => colabfold/tests/main.nf.test.snap} (74%) rename modules/nf-core/colabfold/{ => colabfold}/tests/nextflow.gpu.config (83%) create mode 100644 modules/nf-core/colabfold/downloadmodels/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt create mode 100644 modules/nf-core/colabfold/downloadmodels/environment.yml create mode 100644 modules/nf-core/colabfold/downloadmodels/main.nf create mode 100644 modules/nf-core/colabfold/downloadmodels/meta.yml create mode 100644 modules/nf-core/colabfold/downloadmodels/tests/main.nf.test create mode 100644 modules/nf-core/colabfold/downloadmodels/tests/main.nf.test.snap delete mode 100644 modules/nf-core/colabfold/tests/main.gpu.nf.test delete mode 100644 modules/nf-core/colabfold/tests/main.nf.test.snap diff --git a/modules/nf-core/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt b/modules/nf-core/colabfold/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt similarity index 100% rename from modules/nf-core/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt rename to modules/nf-core/colabfold/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt diff --git a/modules/nf-core/colabfold/environment.gpu.yml b/modules/nf-core/colabfold/colabfold/environment.gpu.yml similarity index 100% rename from modules/nf-core/colabfold/environment.gpu.yml rename to modules/nf-core/colabfold/colabfold/environment.gpu.yml diff --git a/modules/nf-core/colabfold/environment.yml b/modules/nf-core/colabfold/colabfold/environment.yml similarity index 100% rename from modules/nf-core/colabfold/environment.yml rename to modules/nf-core/colabfold/colabfold/environment.yml diff --git a/modules/nf-core/colabfold/main.nf b/modules/nf-core/colabfold/colabfold/main.nf similarity index 79% rename from modules/nf-core/colabfold/main.nf rename to modules/nf-core/colabfold/colabfold/main.nf index 2f390110097d..228ce680b818 100644 --- a/modules/nf-core/colabfold/main.nf +++ b/modules/nf-core/colabfold/colabfold/main.nf @@ -1,4 +1,4 @@ -process COLABFOLD { +process COLABFOLD_COLABFOLD { tag "${meta.id}" label 'process_high' label 'process_gpu' @@ -11,7 +11,7 @@ process COLABFOLD { input: tuple val(meta), path(fasta) tuple val(meta2), path(weights) - tuple val(meta3), path(templates) + tuple val(meta3), path(templates, stageAs: 'templates/*') tuple val(meta4), path(pdb_hits), path(local_pdb) output: @@ -39,42 +39,41 @@ process COLABFOLD { script: def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" - def data = weights ? "--data ${weights}" : '' // Templates are only used when ext.args also contains --templates - def template = templates ? "--custom-template-path ${templates}" : '' + def template = templates ? "--custom-template-path templates" : '' def hit_file = pdb_hits ? "--pdb-hit-file ${pdb_hits}" : '' def pdb_local = local_pdb ? "--local-pdb-path ${local_pdb}" : '' """ # Under Docker the container runs as the host UID, which has no home - # directory; colabfold_batch needs a writable HOME for its cache. + # directory; colabfold_batch needs a writable HOME for its caches. export HOME="\$PWD" - if [ ! -s ${fasta} ]; then - echo "WARN: ${fasta} is empty, no structure predicted" >&2 - else - colabfold_batch \\ - ${fasta} \\ - ${prefix} \\ - ${data} \\ - ${template} \\ - ${hit_file} \\ - ${pdb_local} \\ - ${args} - fi + colabfold_batch \\ + ${fasta} \\ + ${prefix} \\ + --data ${weights} \\ + ${template} \\ + ${hit_file} \\ + ${pdb_local} \\ + ${args} """ stub: prefix = task.ext.prefix ?: "${meta.id}" + // colabfold_batch names each query after its FASTA header, or after the file for an A3M + def queries = fasta.name.endsWith('.a3m') ? "echo '${fasta.baseName}'" : "grep '^>' ${fasta} | sed 's/^>//'" """ mkdir ${prefix} + ${queries} | sed 's/[^A-Za-z0-9_.-]/_/g' | while read -r name; do + touch ${prefix}/\${name}_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb + touch ${prefix}/\${name}_scores_rank_001_alphafold2_ptm_model_1_seed_000.json + touch ${prefix}/\${name}_predicted_aligned_error_v1.json + touch ${prefix}/\${name}.a3m + touch ${prefix}/\${name}_coverage.png + touch ${prefix}/\${name}_pae.png + touch ${prefix}/\${name}_plddt.png + done if [ -s ${fasta} ]; then - touch ${prefix}/${prefix}_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb - touch ${prefix}/${prefix}_scores_rank_001_alphafold2_ptm_model_1_seed_000.json - touch ${prefix}/${prefix}_predicted_aligned_error_v1.json - touch ${prefix}/${prefix}.a3m - touch ${prefix}/${prefix}_coverage.png - touch ${prefix}/${prefix}_pae.png - touch ${prefix}/${prefix}_plddt.png touch ${prefix}/config.json touch ${prefix}/cite.bibtex touch ${prefix}/log.txt diff --git a/modules/nf-core/colabfold/meta.yml b/modules/nf-core/colabfold/colabfold/meta.yml similarity index 92% rename from modules/nf-core/colabfold/meta.yml rename to modules/nf-core/colabfold/colabfold/meta.yml index 63fc39151084..befc08c59774 100644 --- a/modules/nf-core/colabfold/meta.yml +++ b/modules/nf-core/colabfold/colabfold/meta.yml @@ -1,4 +1,4 @@ -name: colabfold +name: colabfold_colabfold description: Predicts protein structure with AlphaFold2, taking the multiple sequence alignment from an MMseqs2 server rather than local databases keywords: - protein structure @@ -31,8 +31,8 @@ input: e.g. [ id:'sample1' ] - fasta: type: file - description: Protein sequences to fold, one prediction per record (an empty file produces no output) - pattern: "*.{fa,faa,fasta}" + description: Protein sequences to fold (FASTA, one prediction per record) or a precomputed MSA (A3M, one prediction per file) + pattern: "*.{fa,faa,fasta,a3m}" ontologies: - edam: http://edamontology.org/format_1929 # FASTA - - meta2: @@ -42,7 +42,7 @@ input: e.g. [ id:'alphafold2_params' ] - weights: type: directory - description: Optional ColabFold data directory with the AlphaFold2 parameters in `params/`; pass `[]` to download them + description: ColabFold data directory with the AlphaFold2 parameters in `params/`. It must contain the empty `params/download_finished.txt` that colabfold's downloader creates (e.g. via `colabfold/downloadmodels`); without it colabfold downloads the weights again ontologies: [] - - meta3: type: map @@ -50,8 +50,9 @@ input: Groovy Map containing templates information e.g. [ id:'templates' ] - templates: - type: directory - description: Optional directory of PDB/mmCIF files used as custom templates (`--custom-template-path`; needs `--templates` in `ext.args`) + type: file + description: Optional PDB/mmCIF files used as custom templates, staged into `templates/` (`--custom-template-path`; needs `--templates` in `ext.args`) + pattern: "*.{pdb,cif}" ontologies: - edam: http://edamontology.org/format_1476 # PDB - edam: http://edamontology.org/format_1477 # mmCIF @@ -62,9 +63,10 @@ input: e.g. [ id:'pdb_hits' ] - pdb_hits: type: file - description: Optional BLAST-m8 PDB hit file for the input MSA, e.g. from colabfold_search (`--pdb-hit-file`; needs `--templates` in `ext.args`) + description: Optional BLAST-m8 PDB hit file for the input MSA, e.g. from colabfold_search (`--pdb-hit-file`; needs `--templates` in `ext.args`; not combinable with `templates`) pattern: "*.m8" - ontologies: [] + ontologies: + - edam: http://edamontology.org/format_3475 # TSV - local_pdb: type: directory description: Optional local mirror of the PDB mmCIF database, used for the templates in `pdb_hits` (`--local-pdb-path`) @@ -329,4 +331,4 @@ containers: https: https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/d2/d2de6276b0c23cc1aaab4af2aa1336fa943b0c45d43ce4ed483911fb99a3db33/data conda: linux/amd64: - lock_file: modules/nf-core/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt + lock_file: modules/nf-core/colabfold/colabfold/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt diff --git a/modules/nf-core/colabfold/colabfold/tests/main.gpu.nf.test b/modules/nf-core/colabfold/colabfold/tests/main.gpu.nf.test new file mode 100644 index 000000000000..b4f6df36fd1f --- /dev/null +++ b/modules/nf-core/colabfold/colabfold/tests/main.gpu.nf.test @@ -0,0 +1,193 @@ +nextflow_process { + + name "Test Process COLABFOLD_COLABFOLD (GPU)" + script "../main.nf" + process "COLABFOLD_COLABFOLD" + config "./nextflow.gpu.config" + + tag "gpu" + tag "modules" + tag "modules_nfcore" + tag "colabfold" + tag "colabfold/colabfold" + tag "colabfold/downloadmodels" + tag "untar" + + // The ~3.5 GB AlphaFold2 weights come from colabfold/downloadmodels, so the + // --data path that pipelines use is the one tested. No test queries the MSA + // server: the FASTA test runs in single-sequence mode, the template tests + // read a single-sequence A3M. + test("proteomics - faa - single sequence - gpu") { + + setup { + run("COLABFOLD_DOWNLOADMODELS") { + script "../../downloadmodels/main.nf" + process { + """ + input[0] = 'alphafold2_ptm' + """ + } + } + } + + when { + params { + module_args = '--msa-mode single_sequence --num-models 1 --num-recycle 1' + } + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) + ] + input[1] = COLABFOLD_DOWNLOADMODELS.out.weights + input[2] = [ [:], [] ] + input[3] = [ [:], [], [] ] + """ + } + } + + then { + assert process.success + assertAll( + { assert snapshot( + sanitizeOutput(process.out, unstableKeys: ['pdb', 'json', 'pae', 'png', 'config', 'bibtex', 'log']), + path(process.out.pdb[0][1]).readLines().count { line -> line.startsWith('ATOM') }, + path(process.out.json[0][1]).text.contains('plddt'), + path(process.out.log[0][1]).text.contains('Done') + ).match() } + ) + } + } + + test("proteomics - a3m - custom templates - gpu") { + + setup { + run("COLABFOLD_DOWNLOADMODELS") { + script "../../downloadmodels/main.nf" + process { + """ + input[0] = 'alphafold2_ptm' + """ + } + } + } + + when { + params { + module_args = '--templates --num-models 1 --num-recycle 1' + } + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'proteomics/colabfold/trp_cage.a3m', checkIfExists: true) + ] + input[1] = COLABFOLD_DOWNLOADMODELS.out.weights + input[2] = [ + [ id:'1l2y' ], + file(params.modules_testdata_base_path + 'proteomics/pdb/1l2y.pdb', checkIfExists: true) + ] + input[3] = [ [:], [], [] ] + """ + } + } + + then { + assert process.success + assertAll( + { assert snapshot( + sanitizeOutput(process.out, unstableKeys: ['pdb', 'json', 'pae', 'png', 'config', 'bibtex', 'log']), + path(process.out.pdb[0][1]).readLines().count { line -> line.startsWith('ATOM') }, + path(process.out.log[0][1]).text.contains("found templates: ['1l2y_A']"), + path(process.out.log[0][1]).text.contains('Done') + ).match() } + ) + } + } + + test("proteomics - a3m - pdb hits - gpu") { + + setup { + run("COLABFOLD_DOWNLOADMODELS") { + script "../../downloadmodels/main.nf" + process { + """ + input[0] = 'alphafold2_ptm' + """ + } + } + run("UNTAR") { + script "../../../untar/main.nf" + process { + """ + input[0] = [ + [ id:'local_pdb' ], + file(params.modules_testdata_base_path + 'proteomics/colabfold/local_pdb.tar.gz', checkIfExists: true) + ] + """ + } + } + } + + when { + params { + module_args = '--templates --num-models 1 --num-recycle 1' + } + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'proteomics/colabfold/trp_cage.a3m', checkIfExists: true) + ] + input[1] = COLABFOLD_DOWNLOADMODELS.out.weights + input[2] = [ [:], [] ] + input[3] = UNTAR.out.untar.map { meta, local_pdb -> + [ meta, file(params.modules_testdata_base_path + 'proteomics/colabfold/trp_cage_pdb_hits.m8', checkIfExists: true), local_pdb ] + } + """ + } + } + + then { + assert process.success + assertAll( + { assert snapshot( + sanitizeOutput(process.out, unstableKeys: ['pdb', 'json', 'pae', 'png', 'config', 'bibtex', 'log']), + path(process.out.pdb[0][1]).readLines().count { line -> line.startsWith('ATOM') }, + path(process.out.log[0][1]).text.contains("found templates: ['1l2y_A']"), + path(process.out.log[0][1]).text.contains('Done') + ).match() } + ) + } + } + + test("proteomics - faa - gpu - stub") { + + options "-stub" + + when { + params { + module_args = '--msa-mode single_sequence --num-models 1 --num-recycle 1' + } + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) + ] + input[1] = [ [:], [] ] + input[2] = [ [:], [] ] + input[3] = [ [:], [], [] ] + """ + } + } + + then { + assert process.success + assertAll( + { assert snapshot(sanitizeOutput(process.out)).match() } + ) + } + } +} diff --git a/modules/nf-core/colabfold/colabfold/tests/main.gpu.nf.test.snap b/modules/nf-core/colabfold/colabfold/tests/main.gpu.nf.test.snap new file mode 100644 index 000000000000..d0cf68b3e326 --- /dev/null +++ b/modules/nf-core/colabfold/colabfold/tests/main.gpu.nf.test.snap @@ -0,0 +1,525 @@ +{ + "proteomics - a3m - custom templates - gpu": { + "content": [ + { + "a3m": [ + [ + { + "id": "test" + }, + "trp_cage.a3m:md5,a75c99cf79f737200597e0812ccc2ff5" + ] + ], + "bibtex": [ + [ + { + "id": "test" + }, + "cite.bibtex" + ] + ], + "config": [ + [ + { + "id": "test" + }, + "config.json" + ] + ], + "json": [ + [ + { + "id": "test" + }, + "trp_cage_scores_rank_001_alphafold2_ptm_model_1_seed_000.json" + ] + ], + "log": [ + [ + { + "id": "test" + }, + "log.txt" + ] + ], + "npy": [ + + ], + "pae": [ + [ + { + "id": "test" + }, + "trp_cage_predicted_aligned_error_v1.json" + ] + ], + "pdb": [ + [ + { + "id": "test" + }, + "trp_cage_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb" + ] + ], + "pickle": [ + + ], + "png": [ + [ + { + "id": "test" + }, + [ + "trp_cage_coverage.png", + "trp_cage_pae.png", + "trp_cage_plddt.png" + ] + ] + ], + "templates": [ + [ + { + "id": "test" + }, + "trp_cage_template_domain_names.json:md5,e363e2f849c018540bf69494ca0df80a" + ] + ], + "versions_colabfold": [ + [ + "COLABFOLD_COLABFOLD", + "colabfold", + "1.5.5" + ] + ], + "versions_cuda": [ + [ + "COLABFOLD_COLABFOLD", + "cuda", + "12.0" + ] + ], + "versions_dm_haiku": [ + [ + "COLABFOLD_COLABFOLD", + "dm-haiku", + "0.0.12" + ] + ], + "versions_flax": [ + [ + "COLABFOLD_COLABFOLD", + "flax", + "0.8.2" + ] + ], + "versions_jax": [ + [ + "COLABFOLD_COLABFOLD", + "jax", + "0.4.25" + ] + ], + "zip": [ + + ] + }, + 153, + true, + true + ], + "timestamp": "2026-10-28T18:45:23.08781069", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + }, + "proteomics - a3m - pdb hits - gpu": { + "content": [ + { + "a3m": [ + [ + { + "id": "test" + }, + "trp_cage.a3m:md5,a75c99cf79f737200597e0812ccc2ff5" + ] + ], + "bibtex": [ + [ + { + "id": "test" + }, + "cite.bibtex" + ] + ], + "config": [ + [ + { + "id": "test" + }, + "config.json" + ] + ], + "json": [ + [ + { + "id": "test" + }, + "trp_cage_scores_rank_001_alphafold2_ptm_model_1_seed_000.json" + ] + ], + "log": [ + [ + { + "id": "test" + }, + "log.txt" + ] + ], + "npy": [ + + ], + "pae": [ + [ + { + "id": "test" + }, + "trp_cage_predicted_aligned_error_v1.json" + ] + ], + "pdb": [ + [ + { + "id": "test" + }, + "trp_cage_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb" + ] + ], + "pickle": [ + + ], + "png": [ + [ + { + "id": "test" + }, + [ + "trp_cage_coverage.png", + "trp_cage_pae.png", + "trp_cage_plddt.png" + ] + ] + ], + "templates": [ + [ + { + "id": "test" + }, + "trp_cage_template_domain_names.json:md5,e363e2f849c018540bf69494ca0df80a" + ] + ], + "versions_colabfold": [ + [ + "COLABFOLD_COLABFOLD", + "colabfold", + "1.5.5" + ] + ], + "versions_cuda": [ + [ + "COLABFOLD_COLABFOLD", + "cuda", + "12.0" + ] + ], + "versions_dm_haiku": [ + [ + "COLABFOLD_COLABFOLD", + "dm-haiku", + "0.0.12" + ] + ], + "versions_flax": [ + [ + "COLABFOLD_COLABFOLD", + "flax", + "0.8.2" + ] + ], + "versions_jax": [ + [ + "COLABFOLD_COLABFOLD", + "jax", + "0.4.25" + ] + ], + "zip": [ + + ] + }, + 153, + true, + true + ], + "timestamp": "2026-10-28T18:46:37.763714448", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + }, + "proteomics - faa - single sequence - gpu": { + "content": [ + { + "a3m": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL.a3m:md5,a36c401ed826f58bbc5e0c1a386f8245" + ] + ], + "bibtex": [ + [ + { + "id": "test" + }, + "cite.bibtex" + ] + ], + "config": [ + [ + { + "id": "test" + }, + "config.json" + ] + ], + "json": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL_scores_rank_001_alphafold2_ptm_model_1_seed_000.json" + ] + ], + "log": [ + [ + { + "id": "test" + }, + "log.txt" + ] + ], + "npy": [ + + ], + "pae": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL_predicted_aligned_error_v1.json" + ] + ], + "pdb": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb" + ] + ], + "pickle": [ + + ], + "png": [ + [ + { + "id": "test" + }, + [ + "GI_225038609_EFDID_719595_FULL_coverage.png", + "GI_225038609_EFDID_719595_FULL_pae.png", + "GI_225038609_EFDID_719595_FULL_plddt.png" + ] + ] + ], + "templates": [ + + ], + "versions_colabfold": [ + [ + "COLABFOLD_COLABFOLD", + "colabfold", + "1.5.5" + ] + ], + "versions_cuda": [ + [ + "COLABFOLD_COLABFOLD", + "cuda", + "12.0" + ] + ], + "versions_dm_haiku": [ + [ + "COLABFOLD_COLABFOLD", + "dm-haiku", + "0.0.12" + ] + ], + "versions_flax": [ + [ + "COLABFOLD_COLABFOLD", + "flax", + "0.8.2" + ] + ], + "versions_jax": [ + [ + "COLABFOLD_COLABFOLD", + "jax", + "0.4.25" + ] + ], + "zip": [ + + ] + }, + 2705, + true, + true + ], + "timestamp": "2026-10-28T18:44:16.043351636", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + }, + "proteomics - faa - gpu - stub": { + "content": [ + { + "a3m": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL.a3m:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bibtex": [ + [ + { + "id": "test" + }, + "cite.bibtex:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "config": [ + [ + { + "id": "test" + }, + "config.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "json": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL_scores_rank_001_alphafold2_ptm_model_1_seed_000.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test" + }, + "log.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "npy": [ + + ], + "pae": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL_predicted_aligned_error_v1.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "pdb": [ + [ + { + "id": "test" + }, + "GI_225038609_EFDID_719595_FULL_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "pickle": [ + + ], + "png": [ + [ + { + "id": "test" + }, + [ + "GI_225038609_EFDID_719595_FULL_coverage.png:md5,d41d8cd98f00b204e9800998ecf8427e", + "GI_225038609_EFDID_719595_FULL_pae.png:md5,d41d8cd98f00b204e9800998ecf8427e", + "GI_225038609_EFDID_719595_FULL_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "templates": [ + + ], + "versions_colabfold": [ + [ + "COLABFOLD_COLABFOLD", + "colabfold", + "1.5.5" + ] + ], + "versions_cuda": [ + [ + "COLABFOLD_COLABFOLD", + "cuda", + "12.0" + ] + ], + "versions_dm_haiku": [ + [ + "COLABFOLD_COLABFOLD", + "dm-haiku", + "0.0.12" + ] + ], + "versions_flax": [ + [ + "COLABFOLD_COLABFOLD", + "flax", + "0.8.2" + ] + ], + "versions_jax": [ + [ + "COLABFOLD_COLABFOLD", + "jax", + "0.4.25" + ] + ], + "zip": [ + + ] + } + ], + "timestamp": "2026-10-28T18:46:49.186454", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + } +} \ No newline at end of file diff --git a/modules/nf-core/colabfold/tests/main.nf.test b/modules/nf-core/colabfold/colabfold/tests/main.nf.test similarity index 70% rename from modules/nf-core/colabfold/tests/main.nf.test rename to modules/nf-core/colabfold/colabfold/tests/main.nf.test index abcc0aa36788..d33435622d0e 100644 --- a/modules/nf-core/colabfold/tests/main.nf.test +++ b/modules/nf-core/colabfold/colabfold/tests/main.nf.test @@ -1,23 +1,27 @@ nextflow_process { - name "Test Process COLABFOLD" + name "Test Process COLABFOLD_COLABFOLD" script "../main.nf" - process "COLABFOLD" + process "COLABFOLD_COLABFOLD" tag "modules" tag "modules_nfcore" tag "colabfold" + tag "colabfold/colabfold" - // The real prediction test is in main.gpu.nf.test: on 4 CPUs, folding the - // 350-residue test protein takes ~15 minutes after a ~3.5 GB weights download. - test("proteomics - empty faa - no structures") { + // Stub only: the real predictions, with weights from colabfold/downloadmodels, + // run in main.gpu.nf.test + test("proteomics - faa - stub") { + + options "-stub" when { process { """ - def empty = File.createTempFile('empty', '.faa') - empty.deleteOnExit() - input[0] = [ [ id:'test' ], file(empty.absolutePath) ] + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) + ] input[1] = [ [:], [] ] input[2] = [ [:], [] ] input[3] = [ [:], [], [] ] @@ -33,7 +37,7 @@ nextflow_process { } } - test("proteomics - faa - stub") { + test("proteomics - a3m - stub") { options "-stub" @@ -42,7 +46,7 @@ nextflow_process { """ input[0] = [ [ id:'test' ], - file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) + file(params.modules_testdata_base_path + 'proteomics/colabfold/trp_cage.a3m', checkIfExists: true) ] input[1] = [ [:], [] ] input[2] = [ [:], [] ] diff --git a/modules/nf-core/colabfold/tests/main.gpu.nf.test.snap b/modules/nf-core/colabfold/colabfold/tests/main.nf.test.snap similarity index 74% rename from modules/nf-core/colabfold/tests/main.gpu.nf.test.snap rename to modules/nf-core/colabfold/colabfold/tests/main.nf.test.snap index 0f281eaafdd0..93ded3a12a9a 100644 --- a/modules/nf-core/colabfold/tests/main.gpu.nf.test.snap +++ b/modules/nf-core/colabfold/colabfold/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "proteomics - faa - single sequence - gpu": { + "proteomics - faa - stub": { "content": [ { "a3m": [ @@ -7,7 +7,7 @@ { "id": "test" }, - "GI_225038609_EFDID_719595_FULL.a3m:md5,a36c401ed826f58bbc5e0c1a386f8245" + "GI_225038609_EFDID_719595_FULL.a3m:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bibtex": [ @@ -15,7 +15,7 @@ { "id": "test" }, - "cite.bibtex" + "cite.bibtex:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "config": [ @@ -23,7 +23,7 @@ { "id": "test" }, - "config.json" + "config.json:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "json": [ @@ -31,7 +31,7 @@ { "id": "test" }, - "GI_225038609_EFDID_719595_FULL_scores_rank_001_alphafold2_ptm_model_1_seed_000.json" + "GI_225038609_EFDID_719595_FULL_scores_rank_001_alphafold2_ptm_model_1_seed_000.json:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "log": [ @@ -39,7 +39,7 @@ { "id": "test" }, - "log.txt" + "log.txt:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "npy": [ @@ -50,7 +50,7 @@ { "id": "test" }, - "GI_225038609_EFDID_719595_FULL_predicted_aligned_error_v1.json" + "GI_225038609_EFDID_719595_FULL_predicted_aligned_error_v1.json:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "pdb": [ @@ -58,7 +58,7 @@ { "id": "test" }, - "GI_225038609_EFDID_719595_FULL_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb" + "GI_225038609_EFDID_719595_FULL_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "pickle": [ @@ -70,9 +70,9 @@ "id": "test" }, [ - "GI_225038609_EFDID_719595_FULL_coverage.png", - "GI_225038609_EFDID_719595_FULL_pae.png", - "GI_225038609_EFDID_719595_FULL_plddt.png" + "GI_225038609_EFDID_719595_FULL_coverage.png:md5,d41d8cd98f00b204e9800998ecf8427e", + "GI_225038609_EFDID_719595_FULL_pae.png:md5,d41d8cd98f00b204e9800998ecf8427e", + "GI_225038609_EFDID_719595_FULL_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" ] ] ], @@ -81,35 +81,35 @@ ], "versions_colabfold": [ [ - "COLABFOLD", + "COLABFOLD_COLABFOLD", "colabfold", "1.5.5" ] ], "versions_cuda": [ [ - "COLABFOLD", + "COLABFOLD_COLABFOLD", "cuda", - "12.0" + "no CUDA available" ] ], "versions_dm_haiku": [ [ - "COLABFOLD", + "COLABFOLD_COLABFOLD", "dm-haiku", "0.0.12" ] ], "versions_flax": [ [ - "COLABFOLD", + "COLABFOLD_COLABFOLD", "flax", "0.8.2" ] ], "versions_jax": [ [ - "COLABFOLD", + "COLABFOLD_COLABFOLD", "jax", "0.4.25" ] @@ -117,18 +117,15 @@ "zip": [ ] - }, - 2705, - true, - true + } ], - "timestamp": "2026-10-25T20:31:00.373531312", + "timestamp": "2026-10-28T18:22:30.839674235", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" } }, - "proteomics - faa - gpu - stub": { + "proteomics - a3m - stub": { "content": [ { "a3m": [ @@ -136,7 +133,7 @@ { "id": "test" }, - "test.a3m:md5,d41d8cd98f00b204e9800998ecf8427e" + "trp_cage.a3m:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bibtex": [ @@ -160,7 +157,7 @@ { "id": "test" }, - "test_scores_rank_001_alphafold2_ptm_model_1_seed_000.json:md5,d41d8cd98f00b204e9800998ecf8427e" + "trp_cage_scores_rank_001_alphafold2_ptm_model_1_seed_000.json:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "log": [ @@ -179,7 +176,7 @@ { "id": "test" }, - "test_predicted_aligned_error_v1.json:md5,d41d8cd98f00b204e9800998ecf8427e" + "trp_cage_predicted_aligned_error_v1.json:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "pdb": [ @@ -187,7 +184,7 @@ { "id": "test" }, - "test_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" + "trp_cage_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "pickle": [ @@ -199,9 +196,9 @@ "id": "test" }, [ - "test_coverage.png:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_pae.png:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" + "trp_cage_coverage.png:md5,d41d8cd98f00b204e9800998ecf8427e", + "trp_cage_pae.png:md5,d41d8cd98f00b204e9800998ecf8427e", + "trp_cage_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" ] ] ], @@ -210,35 +207,35 @@ ], "versions_colabfold": [ [ - "COLABFOLD", + "COLABFOLD_COLABFOLD", "colabfold", "1.5.5" ] ], "versions_cuda": [ [ - "COLABFOLD", + "COLABFOLD_COLABFOLD", "cuda", - "12.0" + "no CUDA available" ] ], "versions_dm_haiku": [ [ - "COLABFOLD", + "COLABFOLD_COLABFOLD", "dm-haiku", "0.0.12" ] ], "versions_flax": [ [ - "COLABFOLD", + "COLABFOLD_COLABFOLD", "flax", "0.8.2" ] ], "versions_jax": [ [ - "COLABFOLD", + "COLABFOLD_COLABFOLD", "jax", "0.4.25" ] @@ -248,7 +245,7 @@ ] } ], - "timestamp": "2026-10-25T20:31:17.402725576", + "timestamp": "2026-10-28T18:22:44.864932122", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" diff --git a/modules/nf-core/colabfold/tests/nextflow.gpu.config b/modules/nf-core/colabfold/colabfold/tests/nextflow.gpu.config similarity index 83% rename from modules/nf-core/colabfold/tests/nextflow.gpu.config rename to modules/nf-core/colabfold/colabfold/tests/nextflow.gpu.config index 1871371ea562..6cebf5bc46c5 100644 --- a/modules/nf-core/colabfold/tests/nextflow.gpu.config +++ b/modules/nf-core/colabfold/colabfold/tests/nextflow.gpu.config @@ -1,5 +1,5 @@ process { - withName: 'COLABFOLD' { + withName: 'COLABFOLD_COLABFOLD' { accelerator = 1 // Concurrent GPU tasks on one GPU can deadlock under Singularity maxForks = 1 diff --git a/modules/nf-core/colabfold/downloadmodels/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt b/modules/nf-core/colabfold/downloadmodels/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt new file mode 100644 index 000000000000..7cb6f753318c --- /dev/null +++ b/modules/nf-core/colabfold/downloadmodels/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt @@ -0,0 +1,3001 @@ +version: 6 +environments: + default: + channels: + - url: https://conda.anaconda.org/conda-forge/ + - url: https://conda.anaconda.org/bioconda/ + - url: https://conda.anaconda.org/bioconda/ + - url: https://conda.anaconda.org/conda-forge/ + 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/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/absl-py-2.5.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aom-3.14.1-pl5321h57e6904_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aria2-1.37.0-h4e1c2bf_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.4-h4610da3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.15-h6bbde05_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.14.3-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h01ee8f8_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.11.0-hbe094ff_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.27.5-h4f381ba_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.13.1-h7508075_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.7-h01ee8f8_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h01ee8f8_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.8.0-py311hdac8cdf_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/biopython-1.82-py311h459d7ec_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-he440d0b_1.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/brotli-python-1.2.1-py311heb3be6f_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/linux-64/c-ares-1.34.9-hebe6cf0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-2.0.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-2.0.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.10.23-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/charset-normalizer-3.5.2-h1114479_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/chex-0.1.86-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/colabfold-1.5.5-pyh7cba7a3_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py311h724c32c_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.11.17-py311hd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.8.0-h4ba93d1_13.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyhc8e2a94_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/dm-haiku-0.0.12-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/dm-tree-0.1.8-py311hbffca5d_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/etils-1.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/flatbuffers-24.3.25-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/flax-0.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.67.0-py311h92159aa_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.3-ha770c72_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/gast-0.7.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gawk-5.4.1-h0a3468a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-ha257d8a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hfd2156b_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-pasta-0.2.0-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.62.2-py311ha6695c7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.16.0-nompi_py311h73d0c7d_105.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-2.2.0-nompi_hc529623_100.conda + - conda: https://conda.anaconda.org/bioconda/linux-64/hhsuite-3.3.0-h503566f_15.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.20-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-10.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-10.0.0-h392f40e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-7.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.17.1-pyh53cf698_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jax-0.4.25-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/jaxlib-0.4.25-cpu_py311hce36131_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.20.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jmp-0.0.4-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/bioconda/linux-64/kalign2-2.04-h7b50bb2_8.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/keras-3.11.2-pyh753f3f9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-h7cc23a3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.5.1-py311h4c6fd42_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-hbc21106_2.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/libabseil-20240116.2-cxx17_he02047a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.5-h088129d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.25.1-h0e23cf9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.4.2-h3ef1eba_4.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/libcurl-8.21.0-hcf29cc6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdav1d7-1.5.4-hebe6cf0_4.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/libev-4.33-h280c20c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.5-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/libgettextpo-0.25.1-h0e23cf9_2.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/libgomp-16.2.0-he0feb66_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.62.2-h15f2491_0.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.0-hb03c661_1.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/liblzma-devel-5.8.3-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h74cf4be_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.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/libprotobuf-4.25.3-hd5b35b9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpython-3.11.17-h0c77377_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h5a48ba9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.4-h0737f62_102.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-h6154650_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/libxcrypt-4.4.38-h280c20c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.9-h04c0eec_0.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/lz4-c-1.10.0-hee9eb32_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.11.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.4-py311h364832d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.9-py311h0f3be63_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ml-collections-1.0.0-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ml_dtypes-0.4.0-py311h7db5c69_2.conda + - conda: https://conda.anaconda.org/bioconda/linux-64/mmseqs2-18.8cc5c-hd6d6fdc_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-ha2cb11d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.3-py311h4c6fd42_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/namex-0.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-2.3.4-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-system-1.0.0-1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/opencl-headers-2025.06.13-hecca717_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/openmm-8.0.0-py311h9766050_4.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/opt-einsum-3.4.0-hd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opt_einsum-3.4.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/optax-0.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/optree-0.20.0-py311h5f908af_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/orbax-checkpoint-0.4.4-pyhd8ed1ab_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.0.6-np2py311h1e9b377_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.7-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pdbfixer-1.9-pyh1a96a4e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/perl-5.44.0-1_h7cc23a3_perl5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-13.0.0-py311hf303fd3_0.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/noarch/prompt-toolkit-3.0.53-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/protobuf-4.25.3-py311hbffca5d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py311h194be0f_3.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/ptyprocess-0.7.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/py3dmol-2.5.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.3-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.17-h5f976f7_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-abi3-3.11-ha8785bc_3.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-flatbuffers-25.12.19-pyh9d96877_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.11.17-hd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.5-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.11-9_cp311.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py311h3778330_1.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/rav1e-0.8.1-h1fbca29_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-hd6e31c0_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-15.0.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.7.6-h7e3ee7f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py311hbe70eeb_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.2.1-pyhe730653_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h34e00bb_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/svt-av1-4.2.0-hd2095e1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.10.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tensorboard-2.17.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tensorboard-data-server-0.7.0-py311h97c413e_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tensorflow-base-2.17.0-cpu_py311h0e3e7eb_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tensorstore-0.1.65-py311he109767_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/termcolor-3.3.0-pyhd8ed1ab_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/toolz-1.2.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.70.1-pyhfa0c392_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.16.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-18.0.0-py311h0d48ccd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.8.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wcwidth-0.9.3-py311hd139983_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.1.9-pyh5ded981_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/wrapt-2.5.1-py311h194be0f_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/xz-5.8.3-ha02ee65_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.3-ha02ee65_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.3-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-hebe6cf0_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.2-h25fd6f3_3.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/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + sha256: 2a7204314663eeda5dec482a956f0e2eaf289bd5b9953eaaaad0e81aa64638f2 + md5: 3845f3d75991bae0fb90884662f4327c + depends: + - cpython + - python-gil + license: MIT + license_family: MIT + size: 8144 + timestamp: 1784221492234 +- conda: https://conda.anaconda.org/conda-forge/noarch/absl-py-2.5.1-pyh5ded981_0.conda + sha256: 9cb0eeb0b6a1ff78c2cc08e08d538858cfbfd6a8f75b94302f39bd031edded09 + md5: d109f9e8818dc94d2e42e3044a048aff + depends: + - python >=3.11 + - python + license: Apache-2.0 + license_family: APACHE + size: 121380 + timestamp: 1791814996533 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aom-3.14.1-pl5321h57e6904_2.conda + sha256: bcfe516fdebf4503ab10c7968ee880774ce1adee6e055738ca53c81745cfdd58 + md5: 5fabcad67aa128f07f269066ee7fdde6 + depends: + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + license: BSD-2-Clause + license_family: BSD + size: 3246374 + timestamp: 1787256015178 +- conda: https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda + sha256: 5b9ef6d338525b332e17c3ed089ca2f53a5d74b7a7b432747d29c6466e39346d + md5: f4e90937bbfc3a4a92539545a37bb448 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 14835 + timestamp: 1733754069532 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aria2-1.37.0-h4e1c2bf_3.conda + sha256: f6a2a834482924e5260701576bf63f32cb4b6456d1a2c414a5b49691307faac5 + md5: 216b4c1584c711126c5b8cfe0c5c01ee + depends: + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=14 + - libgcc >=14 + - libsqlite >=3.51.1,<4.0a0 + - libxml2 >=2.13.9,<2.14.0a0 + - openssl >=3.5.4,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - c-ares >=1.34.6,<2.0a0 + - libssh2 >=1.11.1,<2.0a0 + license: GPL-2.0-only + license_family: GPL + size: 1829727 + timestamp: 1765244345828 +- conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.2-pyhd8ed1ab_0.conda + sha256: fbbd8ce60cbd5c16f3fe559eb644551f94285caff30985ea961ff851c1cf25ac + md5: 89d495168582cb00428dad699d149624 + depends: + - python >=3.10 + constrains: + - astroid >=2,<5 + license: Apache-2.0 + license_family: Apache + size: 34639 + timestamp: 1783975742052 +- conda: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_3.conda + sha256: 7304f265f146235c34e24db310a94648aa306ca0b2a4a12042bf96da1881f99c + md5: d3f195dfdbbf736e4ec178bbec2a975c + depends: + - python >=3.9 + - six >=1.6.1,<2.0 + license: BSD-3-Clause AND PSF-2.0 + size: 18143 + timestamp: 1736248194225 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.4-h4610da3_2.conda + sha256: 0c92dc5ddf4edd4038a63adb79f9f0b03f61e9455ce3253b7d2cf708e06ff99e + md5: cefa84dbf94066e7a6902af288a2fedd + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - aws-c-http >=0.11.0,<0.11.1.0a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - aws-c-io >=0.27.5,<0.27.6.0a0 + - aws-c-sdkutils >=0.2.7,<0.2.8.0a0 + - aws-c-cal >=0.9.15,<0.9.16.0a0 + license: Apache-2.0 + license_family: APACHE + size: 135127 + timestamp: 1785199053057 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.15-h6bbde05_1.conda + sha256: 6eb21a0129e0aa7c6be733c7f2d1de6bc97a60c8382c1016f19dced722600d73 + md5: 8f2b374c79908f271be3d0e9f1c462a8 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - libgcc >=14 + - openssl >=3.5.7,<4.0a0 + license: Apache-2.0 + license_family: Apache + size: 56630 + timestamp: 1785157790550 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.14.3-hb03c661_0.conda + sha256: 8ea79f36d50ba90d7147fe1a047f9a7f2d33b114a3d4bacf1360cd8df43986e4 + md5: ce8664d7c01d4a598ad38107b289b5ec + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: Apache-2.0 + license_family: Apache + size: 245819 + timestamp: 1784596136918 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h01ee8f8_5.conda + sha256: 27f8581573c533a92a1a9619516ebb66d390b9923d296331985cfd342dc32d29 + md5: ae862abdbb3160f97478d3d4749164c0 + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 22282 + timestamp: 1785157574179 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.11.0-hbe094ff_5.conda + sha256: a4a5e24b398e7c0ef64de5a341ecb3f0fa87c2879177695c5d0bcbde0c4f8b5e + md5: c09f7ec7327b8bd52fc2d6eacaa18d3b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - aws-c-io >=0.27.5,<0.27.6.0a0 + - aws-c-cal >=0.9.15,<0.9.16.0a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - aws-c-compression >=0.3.2,<0.3.3.0a0 + license: Apache-2.0 + license_family: APACHE + size: 231270 + timestamp: 1785186134512 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.27.5-h4f381ba_1.conda + sha256: 76ab4eb6cae12e14244cb1fe11ecccc2f103f8ffa7e80e222099c6b16c19ae20 + md5: 948f5a4fddac779b7942626e5807caba + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - aws-c-cal >=0.9.15,<0.9.16.0a0 + - s2n >=1.7.6,<1.7.7.0a0 + license: Apache-2.0 + license_family: APACHE + size: 183633 + timestamp: 1785170070776 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.13.1-h7508075_1.conda + sha256: d24f7f34b3b564535b533b17176e71f71b6944aa2cb71813283bece139908d9f + md5: 2daf54d3eef87b757f68d7597534dd2f + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - aws-c-http >=0.11.0,<0.11.1.0a0 + - aws-c-auth >=0.10.4,<0.10.5.0a0 + - openssl >=3.5.7,<4.0a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - aws-checksums >=0.2.10,<0.2.11.0a0 + - aws-c-io >=0.27.5,<0.27.6.0a0 + - aws-c-cal >=0.9.15,<0.9.16.0a0 + license: Apache-2.0 + license_family: APACHE + size: 157667 + timestamp: 1785351292770 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.7-h01ee8f8_3.conda + sha256: b308c393a3db78cef29942c6b83ca7321f86d357fbb47504d59f55254601c87a + md5: 412f0cf18cc4c4945655dba954ca2d76 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - aws-c-common >=0.14.3,<0.14.4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 68574 + timestamp: 1785159234141 +- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h01ee8f8_5.conda + sha256: f8d2cd9faccb273df739fc28431b484a90aca10027ef44f7fec1d4f0bd229a76 + md5: 4d70caf5260e0787675c3bf61ae5b64c + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 101887 + timestamp: 1785159213897 +- conda: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.8.0-py311hdac8cdf_1.conda + sha256: 76c3d51f543d8d64ae6ad2a8a575e841df17b76f2c9f4b10235898f02f47287f + md5: 1ecbd4939647a014c2da8489519a93c7 + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - zstd >=1.5.7,<1.6.0a0 + - python_abi 3.11.* *_cp311 + license: Python-2.0 + size: 249203 + timestamp: 1792690547998 +- conda: https://conda.anaconda.org/conda-forge/linux-64/biopython-1.82-py311h459d7ec_0.conda + sha256: 39d84052242b9a85cf1f2b49fac654cc0be1e125b9af6d38674c8b394b0590b7 + md5: 9efbc77b8265425656c19a9a5cd7a4b9 + depends: + - libgcc-ng >=12 + - numpy + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: LicenseRef-Biopython + size: 3358893 + timestamp: 1703262149442 +- conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-he440d0b_1.conda + sha256: e7af5d1183b06a206192ff440e08db1c4e8b2ca1f8376ee45fb2f3a85d4ee45d + md5: 2c2fae981fd2afd00812c92ac47d023d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - lz4-c >=1.10.0,<1.11.0a0 + - snappy >=1.2.1,<1.3.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + size: 48427 + timestamp: 1733513201413 +- 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/brotli-python-1.2.1-py311heb3be6f_0.conda + sha256: 8dd147ac02fbf7d6213e5e1859096bb606265bce24dab6696c34c543ff93b97f + md5: fea6c1e36427ac60dc3ecd31314dffe8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - libbrotlicommon 1.2.1 h39a168f_0 + license: MIT + license_family: MIT + size: 367877 + timestamp: 1792653779091 +- 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/linux-64/c-ares-1.34.9-hebe6cf0_0.conda + sha256: bd95dd25b80b5c4faf5349542377bf89b2794e23d0f7aa7f1c431e4f3b633f3c + md5: 78b505af04bf7a87ca957ef0cb5946f5 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 233759 + timestamp: 1792507024648 +- 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/noarch/cached-property-2.0.1-pyhcf101f3_0.conda + sha256: 39358005c3cc44d8315ed79789b18a960d69365be979970cc6bae8f7a6177703 + md5: 70e764e549c6c25de5e429d6e4a28b39 + depends: + - cached_property >=2.0.1,<2.0.2.0a0 + license: BSD-3-Clause + license_family: BSD + size: 3720 + timestamp: 1787678456483 +- conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-2.0.1-pyhcf101f3_0.conda + sha256: 4bd96dab5a434e4ee59fb6910cae704d4c5b453907d4886272a9943d37e42b6f + md5: 256d863ded0f79464391a075944d24a6 + depends: + - python >=3.10 + - python + license: BSD-3-Clause + license_family: BSD + size: 16597 + timestamp: 1787678456483 +- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.10.23-pyhd8ed1ab_0.conda + sha256: 04e641ccaa58278b431e97f2a43090bafc676436d04b5860dfd9b18166f2b326 + md5: 484e26532435808425148c83bf58aa0b + depends: + - python >=3.11 + license: ISC + size: 135537 + timestamp: 1792764012327 +- conda: https://conda.anaconda.org/conda-forge/linux-64/charset-normalizer-3.5.2-h1114479_0.conda + noarch: python + sha256: e4f04b45d68716fcc47c808aeacbf165f6f295fb91bd20b91aa38942b8d2cdc6 + md5: 78d5c6112c9320a1a797935cecfec7c2 + depends: + - python + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - _python_abi3_support 1.* + - cpython >=3.9 + license: MIT + license_family: MIT + size: 217200 + timestamp: 1790766086110 +- conda: https://conda.anaconda.org/conda-forge/noarch/chex-0.1.86-pyhd8ed1ab_0.conda + sha256: a95341e3131c7d9ad06188e0b5b8da3aa63214689bad5c7a0685c21800dacf26 + md5: a07f390c9f7e17295521faf5385e136f + depends: + - absl-py >=0.9.0 + - jax >=0.4.16 + - jaxlib >=0.1.37 + - numpy >=1.24.1 + - python >=3.9 + - toolz >=0.9.0 + - typing-extensions >=4.2.0 + license: Apache-2.0 + license_family: APACHE + size: 77788 + timestamp: 1710851026888 +- conda: https://conda.anaconda.org/bioconda/noarch/colabfold-1.5.5-pyh7cba7a3_2.tar.bz2 + sha256: d5a57fec9846c676c6cd1b689de49d6cea512b99e0f36b1b4d829266eea4f43d + md5: aa49aa68e6e041a3853613526e5b3ab0 + depends: + - absl-py + - appdirs + - biopython <=1.82 + - dm-haiku >=0.0.12 + - dm-tree + - hhsuite >=3.3.0 + - importlib-metadata + - jax >=0.4.23,<0.4.26 + - jaxlib >=0.4.23,<0.4.26 + - kalign2 >=2.04 + - matplotlib-base + - ml-collections + - mmseqs2 >=15.6f452 + - numpy + - openmm >=7.7.0,<8.1.0 + - pandas + - pdbfixer + - py3dmol + - python + - requests + - scipy + - tensorflow-base >=2.12.1 cpu* + - tqdm + license: MIT + size: 219613 + timestamp: 1713336435246 +- conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py311h724c32c_4.conda + sha256: fd7aca059253cff3d8b0aec71f0c1bf2904823b13f1997bf222aea00a76f3cce + md5: d04e508f5a03162c8bab4586a65d00bf + depends: + - numpy >=1.25 + - python + - libstdcxx >=14 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 320553 + timestamp: 1769155975008 +- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.11.17-py311hd8ed1ab_2.conda + noarch: generic + sha256: 1c59629c8936b9f8d619e97bcc55515326faadcc831d5183fb95c7ce427ca68e + md5: 38d49d6f7c2de06e3436729007af700d + depends: + - python >=3.11,<3.12.0a0 + - python_abi * *_cp311 + license: Python-2.0 + size: 49151 + timestamp: 1791909594927 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cudatoolkit-11.8.0-h4ba93d1_13.conda + sha256: 1797bacaf5350f272413c7f50787c01aef0e8eb955df0f0db144b10be2819752 + md5: eb43f5f1f16e2fad2eba22219c3e499b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + constrains: + - __cuda >=11 + license: LicenseRef-NVIDIA-End-User-License-Agreement + size: 715605660 + timestamp: 1706881738892 +- 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/dataclasses-0.8-pyhc8e2a94_3.tar.bz2 + sha256: 63a83e62e0939bc1ab32de4ec736f6403084198c4639638b354a352113809c92 + md5: a362b2124b06aad102e2ee4581acee7d + depends: + - python >=3.7 + license: Apache-2.0 + license_family: APACHE + size: 9870 + timestamp: 1628958582931 +- conda: https://conda.anaconda.org/conda-forge/noarch/dm-haiku-0.0.12-pyhd8ed1ab_0.conda + sha256: accf2f1d11989adf1d321b90a2165997dd2b900555558d5f588ee4fa9b77cfcb + md5: ce5a99dacf46b9c87eaff773fa96543f + depends: + - absl-py >=0.7.1 + - flax >=0.7.1 + - jmp >=0.0.2 + - numpy >=1.18.0 + - python >=3.6 + - tabulate >=0.8.9 + license: Apache-2.0 + license_family: OTHER + size: 222477 + timestamp: 1709158647017 +- conda: https://conda.anaconda.org/conda-forge/linux-64/dm-tree-0.1.8-py311hbffca5d_5.conda + sha256: ae897dd994e02f4d5c94799a87b6735df895f4a7b604d18a4472a988f378c8e3 + md5: 63b2cd83ac0d3139421135f24663d021 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240116.2,<20240117.0a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: Apache-2.0 + license_family: Apache + size: 124353 + timestamp: 1725380879672 +- conda: https://conda.anaconda.org/conda-forge/noarch/etils-1.13.0-pyhd8ed1ab_0.conda + sha256: f3d500a61d04a26d1df5d9b45cacd4ac6eba1c31741d19d7604e11953dbb9f8d + md5: f9fa16b528ae31f70e11ab35116c3ab8 + depends: + - python >=3.10 + license: Apache-2.0 + license_family: APACHE + size: 794665 + timestamp: 1785007441185 +- conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.3.0-pyhd8ed1ab_0.conda + sha256: 6f15be90dda1401a5977d46f6e978ba59ee0b0a2b5f6a6b9ac44a4bb4f44cd7a + md5: d20deea26cfe86870cd4cf36090919b1 + depends: + - python >=3.11 + license: MIT + license_family: MIT + size: 32653 + timestamp: 1791894647138 +- conda: https://conda.anaconda.org/conda-forge/linux-64/flatbuffers-24.3.25-h59595ed_0.conda + sha256: 0f3b8d6a958d40d5b2ac105ba0ec09f61dd4ce78cafdf99ab2d0fc298dc54d75 + md5: 2941a8c4e4871cdfa738c8c1a7611533 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: Apache-2.0 + license_family: APACHE + size: 1459911 + timestamp: 1711467009850 +- conda: https://conda.anaconda.org/conda-forge/noarch/flax-0.8.2-pyhd8ed1ab_0.conda + sha256: ba547d4310cdd07f695e2559d18d5d15da253647ddda98f7167102059e90f0a2 + md5: afd6b6c813edde816ab20e0e62cad7ca + depends: + - jax >=0.4.11 + - matplotlib-base + - msgpack-python + - numpy >=1.12 + - optax + - orbax-checkpoint + - python >=3.9 + - pyyaml >=5.4.1 + - rich >=11.1.0 + - tensorstore + - typing_extensions >=4.2.0 + license: Apache-2.0 + license_family: APACHE + size: 509123 + timestamp: 1710420504459 +- conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.67.0-py311h92159aa_1.conda + sha256: 87ab3f499c8c05b7fc1f8c6822af6bea945ede59a96ce73ef47e1970b741a492 + md5: a8200695d161b5161b49a926c4e6b53e + depends: + - __glibc >=2.17,<3.0.a0 + - brotli + - libgcc >=15 + - munkres + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - unicodedata2 >=15.1.0 + license: MIT + license_family: MIT + size: 3211210 + timestamp: 1792672685904 +- 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/noarch/gast-0.7.0-pyhd8ed1ab_0.conda + sha256: 587a0e2606026716760af58e5d7c15ea02a848bd076a324946798be29d0229db + md5: 377a825d91b5d6fcc0e6cdb98bbe9799 + depends: + - python >=3.10 + constrains: + - pythran >=0.12.2 + license: BSD-3-Clause + license_family: BSD + size: 27047 + timestamp: 1764507196904 +- conda: https://conda.anaconda.org/conda-forge/linux-64/gawk-5.4.1-h0a3468a_0.conda + sha256: 0ae20399bc13d1097237cf29653c1f2dd68e37f08b47a9b3cab76f97556a6bfa + md5: 64fd8d804a6aaef55d6d6c562446d72b + depends: + - gmp + - mpfr + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - gmp >=6.3.0,<7.0a0 + - readline >=8.3,<9.0a0 + - libasprintf >=0.25.1,<1.0a0 + - libgettextpo >=0.25.1,<1.0a0 + - mpfr >=4.2.2,<5.0a0 + license: GPL-3.0-or-later + license_family: GPL + size: 1522511 + timestamp: 1783686211415 +- conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-ha257d8a_1.conda + sha256: 3611c5d605cd56017704e6c01c7bd849e74a656a546d4c49d655fde49ddfeecc + md5: bd7c3a8586ed0101f094962100d30a63 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: MIT + license_family: MIT + size: 77403 + timestamp: 1784694210187 +- conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hfd2156b_3.conda + sha256: f36c336efc874f346a53a9011f67e997f9faac505562cc18c13b6d399cfe61c7 + md5: 576e32739f323438bf69ab006c21be7b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + license: GPL-2.0-or-later OR LGPL-3.0-or-later + size: 493498 + timestamp: 1786629164954 +- conda: https://conda.anaconda.org/conda-forge/noarch/google-pasta-0.2.0-pyhd8ed1ab_2.conda + sha256: 9f668fe562a9cf71a5d1f348645ac041af3f2e4bc634b18d6374e838e1c55dd8 + md5: 005b9749218cb8c9e94ac2a77ca3c8c0 + depends: + - python >=3.9 + - six + license: Apache-2.0 + license_family: APACHE + size: 49210 + timestamp: 1733852592869 +- conda: https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.62.2-py311ha6695c7_0.conda + sha256: 1cd5f900102255e33f9cae37b9b79b210cb92f46922fefff09bd70c4ca5159ab + md5: 5256f630309144ad1a6e4ec1736f5d66 + depends: + - libgcc-ng >=12 + - libgrpc 1.62.2 h15f2491_0 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: Apache-2.0 + license_family: APACHE + size: 1049071 + timestamp: 1713391103530 +- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + sha256: 307dd6ec90140c3cf4171071b0e5e870abec314f4565c1edd5bc433e942cdcc0 + md5: e652ac7756069c456d0da2a922cd7df5 + depends: + - python >=3.10 + - hyperframe >=6.1,<7 + - hpack >=4.2,<5 + - python + license: MIT + license_family: MIT + size: 100789 + timestamp: 1785796355216 +- conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.16.0-nompi_py311h73d0c7d_105.conda + sha256: b5e9775ae1b06d264188a787ba61e9b126fa33913dec9cc2d6588fd6fcce8453 + md5: fa942613914af55bd5df71cf927d9281 + depends: + - __glibc >=2.17,<3.0.a0 + - cached-property + - hdf5 >=2.2.0,<3.0a0 + - libgcc >=15 + - numpy >=1.23,<3 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 1425636 + timestamp: 1790854998790 +- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-2.2.0-nompi_hc529623_100.conda + sha256: 786d126bfb33b923dd1341a92c2a3edd0ff5d0a71db8557fca9324ea4e93d677 + md5: 336f7fb9af0c49cc246e2cff0992c3c4 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-auth >=0.10.4,<0.10.5.0a0 + - aws-c-common >=0.14.3,<0.14.4.0a0 + - aws-c-http >=0.11.0,<0.11.1.0a0 + - aws-c-io >=0.27.5,<0.27.6.0a0 + - aws-c-s3 >=0.13.1,<0.13.2.0a0 + - aws-c-sdkutils >=0.2.7,<0.2.8.0a0 + - libaec >=1.1.5,<2.0a0 + - libcurl >=8.21.0,<9.0a0 + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.4.0 + - libstdcxx >=14 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.7,<4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 4250161 + timestamp: 1786233343747 +- conda: https://conda.anaconda.org/bioconda/linux-64/hhsuite-3.3.0-h503566f_15.tar.bz2 + sha256: 1d7a96783862071c92102bb959a479e04dd25eccebabcadc5d3f18bd8070a67f + md5: e801804120ec051c8a1f8359e7e25067 + depends: + - _openmp_mutex >=4.5 + - libgcc >=13 + - libgomp + - libstdcxx >=13 + - perl + - python + license: GPL-3.0-or-later + license_family: GPL3 + size: 27406554 + timestamp: 1748404760882 +- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda + sha256: fdcea5d7cb314485d3907192ef024c704311548c5b0cbeb390cd1951051e29d2 + md5: b395909221b9bd1df066e5930e18855b + depends: + - python >=3.10 + license: MIT + license_family: MIT + size: 32884 + timestamp: 1782283986153 +- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 + md5: 8e6923fc12f1fe8f8c4e5c9f343256ac + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 17397 + timestamp: 1737618427549 +- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e + md5: 8b189310083baabfb622af68fd9d3ae3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: MIT + license_family: MIT + size: 12129203 + timestamp: 1720853576813 +- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.20-pyh5ded981_0.conda + sha256: e044b1ec829e2e24f971fa3f3408eb26f1db836e521a58f08b0fd9a03fee47be + md5: ee73be987f9de9ea5c2fdaeefa7b6491 + depends: + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + size: 178572 + timestamp: 1790020377150 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-10.0.0-pyh5ded981_0.conda + sha256: 43151c94c02fa67e8105cfe64c8c27a1b260b22bae6ddbe9c33b56a9c302e459 + md5: 8401f0ee3de84b5a549c47cf3038909b + depends: + - python >=3.11 + - zipp >=3.20 + - python + license: Apache-2.0 + license_family: APACHE + size: 37627 + timestamp: 1792795043391 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-10.0.0-h392f40e_0.conda + sha256: 910b942f67ad9d02696f676768fb621087ec5f5ab91d371f43ee1131840fe752 + md5: 15f67ecedc6ca16e249492d7f9915e3c + depends: + - importlib-metadata ==10.0.0 pyh5ded981_0 + license: Apache-2.0 + license_family: APACHE + size: 25331 + timestamp: 1792795043391 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-7.1.0-pyhd8ed1ab_0.conda + sha256: a563a51aa522998172838e867e6dedcf630bc45796e8612f5a1f6d73e9c8125a + md5: 0ba6225c279baf7ea9473a62ea0ec9ae + depends: + - python >=3.10 + - zipp >=3.1.0 + constrains: + - importlib-resources >=7.1.0,<7.1.1.0a0 + license: Apache-2.0 + license_family: APACHE + size: 34809 + timestamp: 1776068839274 +- conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.17.1-pyh53cf698_0.conda + sha256: 0fb38e0685e5065064ac007cf8317ee24b329373c9f80c31eb74c1bfcb0cfe24 + md5: 0e28933e51c1d05c179bfd595ead8aee + depends: + - __unix + - ipython_pygments_lexers >=1.0.0 + - jedi >=0.18.2 + - matplotlib-inline >=0.1.6 + - prompt-toolkit >=3.0.41,<3.1.0 + - psutil >=7 + - pygments >=2.14.0 + - python >=3.11 + - stack_data >=0.6.0 + - traitlets >=5.13.0 + - typing_extensions >=4.6 + - pexpect >4.6 + - python + license: BSD-3-Clause + license_family: BSD + size: 730678 + timestamp: 1788260388285 +- conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda + sha256: 894682a42a7d659ae12878dbcb274516a7031bbea9104e92f8e88c1f2765a104 + md5: bd80ba060603cc228d9d81c257093119 + depends: + - pygments + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 13993 + timestamp: 1737123723464 +- conda: https://conda.anaconda.org/conda-forge/noarch/jax-0.4.25-pyhd8ed1ab_0.conda + sha256: e21479fc9b50d9906b9b41e46630b049c0ef3fcd01e097c4c28b45be02f10faf + md5: c4c729f7c77da9ef637d9970f4f6d980 + depends: + - importlib_metadata >=4.6 + - jaxlib >=0.4.20 + - ml_dtypes >=0.2.0 + - numpy >=1.22,<2.0a0 + - opt-einsum + - python >=3.9 + - scipy >=1.9 + license: Apache-2.0 + license_family: APACHE + size: 1194295 + timestamp: 1709239812310 +- conda: https://conda.anaconda.org/conda-forge/linux-64/jaxlib-0.4.25-cpu_py311hce36131_0.conda + sha256: 3e038ae94c53714525fb4a73eecd93f377e25ecfffab23d76d9c9e94ee77eaa1 + md5: ce5ad7c89eaf3c62d5c66fd5414f9dd0 + depends: + - libabseil * cxx17* + - libabseil >=20240116.2,<20240117.0a0 + - libgcc-ng >=12 + - libgrpc >=1.62.2,<1.63.0a0 + - libstdcxx-ng >=12 + - libzlib >=1.3.1,<2.0a0 + - ml_dtypes >=0.2.0 + - numpy >=1.23.5,<2.0a0 + - openssl >=3.3.1,<4.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - scipy >=1.9 + constrains: + - jax >=0.4.25 + license: Apache-2.0 + license_family: APACHE + size: 56019435 + timestamp: 1719400632976 +- conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.20.1-pyh5ded981_0.conda + sha256: 5437a29f6fcbd6d5eb5d7bb12403f301f3563dee223208b1ad12684614c648bc + md5: 040e99e896e84cc7bdc0246619083931 + depends: + - python >=3.11 + - parso >=0.8.7,<0.9.0 + - python + license: Apache-2.0 AND MIT + size: 2716238 + timestamp: 1791846014577 +- conda: https://conda.anaconda.org/conda-forge/noarch/jmp-0.0.4-pyhcf101f3_2.conda + sha256: 67f82798c45b876fb66c8a2b0b6f3f91f4c584a97c9820a653db5cdd925f9ca8 + md5: 1baca3bd13178b61f87dbc0828baf8c0 + depends: + - dataclasses >=0.7 + - numpy >=1.19.5 + - python >=3.10 + - jax + - python + license: Apache-2.0 + license_family: APACHE + size: 26120 + timestamp: 1777300926028 +- conda: https://conda.anaconda.org/bioconda/linux-64/kalign2-2.04-h7b50bb2_8.tar.bz2 + sha256: 2dba13894a90d0f427085ad330da9b1b0dab550d48f274909bc7863afb204684 + md5: b8351c2fed8f377b6f7db3da31b966ff + depends: + - libgcc >=13 + license: GPLv2 + size: 105764 + timestamp: 1734082917746 +- conda: https://conda.anaconda.org/conda-forge/noarch/keras-3.11.2-pyh753f3f9_0.conda + sha256: 276921e78a021892de887c79034db994ea8d959de57ab88d9ae4865c6aac2d84 + md5: ad0b91bf2bab8992ae5869f0fce16301 + depends: + - absl-py + - h5py + - ml_dtypes + - namex + - numpy + - optree + - packaging + - python >=3.10 + - rich + constrains: + - tensorflow >=2.15.0 + - pytorch >=2.1.0 + - jax >=0.4.0 + license: Apache-2.0 + license_family: APACHE + size: 797213 + timestamp: 1755182149300 +- conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-h7cc23a3_1.conda + sha256: dd053c96dcb0dcfd59422aefea9d2fe937a190167f34fba7893ec1e10a7e8963 + md5: ba55d1b89fd7775e67de8291029b4059 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: LGPL-2.1-or-later + size: 135295 + timestamp: 1786739238128 +- conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.5.1-py311h4c6fd42_3.conda + sha256: 984113fcd6ecce2256c476fca7f2de853f1da8f6eb8fdb42624027708f60ac44 + md5: 257543ed82a917c48d01a16610d79a61 + depends: + - python + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 76708 + timestamp: 1790082012437 +- conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-hbc21106_2.conda + sha256: 2a5c38c85e63df84c4e69ee71439841ce570d259ae3060627bb9a49a938d66f4 + md5: 53318d715316929a574f83591308b1f8 + depends: + - __glibc >=2.17,<3.0.a0 + - keyutils >=1.6.3,<2.0a0 + - libedit >=3.1.20250104,<3.2.0a0 + - libedit >=3.1.20250104,<4.0a0 + - libgcc >=15 + - libstdcxx >=15 + - openssl >=3.5.7,<4.0a0 + license: MIT + license_family: MIT + size: 1394333 + timestamp: 1786762112514 +- 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/libabseil-20240116.2-cxx17_he02047a_1.conda + sha256: 945396726cadae174a661ce006e3f74d71dbd719219faf7cc74696b267f7b0b5 + md5: c48fc56ec03229f294176923c3265c05 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + constrains: + - abseil-cpp =20240116.2 + - libabseil-static =20240116.2=cxx17* + license: Apache-2.0 + license_family: Apache + size: 1264712 + timestamp: 1720857377573 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.5-h088129d_0.conda + sha256: 822e4ae421a7e9c04e841323526321185f6659222325e1a9aedec811c686e688 + md5: 86f7414544ae606282352fa1e116b41f + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + license: BSD-2-Clause + license_family: BSD + size: 36544 + timestamp: 1769221884824 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libasprintf-0.25.1-h0e23cf9_2.conda + sha256: cd1acde49a1915b7a62a9678bdf42557f083d63f08d4ccc5cd9834553be96eb1 + md5: 708966b4a89392fe7b7d348f41501ffc + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + license: LGPL-2.1-or-later + size: 53449 + timestamp: 1790117307288 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.4.2-h3ef1eba_4.conda + sha256: f4c7dbdff93bc62e4aa4a94635c4a139cd4b1e8deb753af5892a8f1ee6456b4d + md5: 2326d9fe25838dddac1f3876aa7ff878 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - rav1e >=0.8.1,<0.9.0a0 + - aom >=3.14.1,<3.15.0a0 + - libdav1d7 >=1.5.4 + - svt-av1 >=4.2.0,<4.2.1.0a0 + license: BSD-2-Clause + license_family: BSD + size: 168234 + timestamp: 1788391245817 +- 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/libcurl-8.21.0-hcf29cc6_1.conda + sha256: 7d243f45a48f62cb8e3b871dd336137fe0fb90094a191756fb553508837f6338 + md5: 2c1e55d695b11525c760b486ac0be517 + depends: + - __glibc >=2.17,<3.0.a0 + - krb5 >=1.22.2,<1.23.0a0 + - libgcc >=14 + - libnghttp2 >=1.68.1,<2.0a0 + - libssh2 >=1.11.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.7,<4.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: curl + license_family: MIT + size: 478914 + timestamp: 1782802520033 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libdav1d7-1.5.4-hebe6cf0_4.conda + sha256: 9d3d31b9549f76ab61e2678a22566e4342842f388ec6df4ac10aea3ae3526697 + md5: ad38caba8fd619ac5e6d5fef0a6678cd + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: BSD-2-Clause + license_family: BSD + size: 765022 + timestamp: 1788366542408 +- 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/libev-4.33-h280c20c_3.conda + sha256: e4418f68d01a6307c4431b585c71b584f40189877364e542ee87deb777f5e85b + md5: 7bc31538d6e3fb349e897353969237ec + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + license: BSD-2-Clause OR GPL-2.0-or-later + license_family: GPL + size: 43220 + timestamp: 1785917328200 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.5-hd2095e1_0.conda + sha256: 6de73033a7c5f712c9c5a54124e4581e025691029835e5bceaf10a333a7e7bc0 + md5: 72cfd2b95b0540247220b42f58a148d7 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + constrains: + - expat 2.8.5.* + license: MIT + license_family: MIT + size: 77893 + timestamp: 1790346247149 +- 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/libgettextpo-0.25.1-h0e23cf9_2.conda + sha256: 58bbdb3ee8ab85fff94435bcf4a335fd5e7b61d4d84f15d9afc8b4207d522ea3 + md5: de2346aa9d78288e6924b01a2db091c1 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libiconv >=1.18,<2.0a0 + license: GPL-3.0-or-later + license_family: GPL + size: 186971 + timestamp: 1790117313607 +- 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/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/libgrpc-1.62.2-h15f2491_0.conda + sha256: 28241ed89335871db33cb6010e9ccb2d9e9b6bb444ddf6884f02f0857363c06a + md5: 8dabe607748cb3d7002ad73cd06f1325 + depends: + - c-ares >=1.28.1,<2.0a0 + - libabseil * cxx17* + - libabseil >=20240116.1,<20240117.0a0 + - libgcc-ng >=12 + - libprotobuf >=4.25.3,<4.25.4.0a0 + - libre2-11 >=2023.9.1 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + - openssl >=3.2.1,<4.0a0 + - re2 + constrains: + - grpc-cpp =1.62.2 + license: Apache-2.0 + license_family: APACHE + size: 7316832 + timestamp: 1713390645548 +- 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.0-hb03c661_1.conda + sha256: bba8538e6538ed58a8479b332337b96986561f975d06cfa2039a016c2d246ee4 + md5: 898d1c9793eaa52efc4727bd84d2e39a + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + size: 650434 + timestamp: 1785896381946 +- 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/liblzma-devel-5.8.3-hb03c661_1.conda + sha256: adef6e8b60afb684110b06b5310977c6836e1c923ce3ec199f45c0f000b42f20 + md5: 6d83d6a332c19424e9e66b69b180ec11 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - liblzma 5.8.3 hb03c661_1 + license: 0BSD + size: 491970 + timestamp: 1786348627135 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h74cf4be_1.conda + sha256: 11a2f54a6f391e25738bce0023e6ef499600147bbcf21c1fa69d2e251b03cc6a + md5: 75d211f04ac87506f1f43420712a69fe + depends: + - __glibc >=2.17,<3.0.a0 + - c-ares >=1.34.8,<2.0a0 + - libev >=4.33,<4.34.0a0 + - libev >=4.33,<5.0a0 + - libgcc >=15 + - libstdcxx >=15 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.7,<4.0a0 + license: MIT + license_family: MIT + size: 649974 + timestamp: 1787177490105 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda + sha256: 927fe72b054277cde6cb82597d0fcf6baf127dcbce2e0a9d8925a68f1265eef5 + md5: d864d34357c3b65a4b731f78c0801dc4 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: LGPL-2.1-only + license_family: GPL + size: 33731 + timestamp: 1750274110928 +- 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/libprotobuf-4.25.3-hd5b35b9_1.conda + sha256: 8b5e4e31ed93bf36fd14e9cf10cd3af78bb9184d0f1f87878b8d28c0374aa4dc + md5: 06def97690ef90781a91b786cb48a0a9 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240116.2,<20240117.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + size: 2883090 + timestamp: 1727161327039 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libpython-3.11.17-h0c77377_1_cpython.conda + build_number: 1 + sha256: bad3de581c5b9f193a3b43d634a47df3e90e6fb89ff712b5f6903920640e4a07 + md5: 96da685309a5aa6d57b96d5528461129 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + license: Python-2.0 + size: 7826338 + timestamp: 1791332362504 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2023.09.01-h5a48ba9_2.conda + sha256: 3f3c65fe0e9e328b4c1ebc2b622727cef3e5b81b18228cfa6cf0955bc1ed8eff + md5: 41c69fba59d495e8cf5ffda48a607e35 + depends: + - libabseil * cxx17* + - libabseil >=20240116.1,<20240117.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + constrains: + - re2 2023.09.01.* + license: BSD-3-Clause + license_family: BSD + size: 232603 + timestamp: 1708946763521 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.4-h0737f62_102.conda + sha256: 0f6e60634de2b55da15772fe65485965fd9b61afcce0d749c1446f625babba30 + md5: 59ec6dc9fa87a6687c00969d4dcfcd97 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libzlib >=1.3.2,<2.0a0 + license: blessing + size: 969522 + timestamp: 1791167270446 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-h6154650_1.conda + sha256: 7e463000fa1cba3f3a6597b776f6ab301d425a96e3bc20d0d9d76a3b9f237aa3 + md5: 5c526561e1d2a2e071941174eae84557 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.7,<4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 306045 + timestamp: 1786713107897 +- 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/libxcrypt-4.4.38-h280c20c_0.conda + sha256: f7e9292dd219a6435bbb1223da9586c3e70d66d169c5a92f08db3f2127df04e9 + md5: f7a7ff5a6ab331e037abd34f379a631d + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + license: LGPL-2.1-or-later + size: 101957 + timestamp: 1785887123445 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.9-h04c0eec_0.conda + sha256: 5d12e993894cb8e9f209e2e6bef9c90fa2b7a339a1f2ab133014b71db81f5d88 + md5: 35eeb0a2add53b1e50218ed230fa6a02 + depends: + - __glibc >=2.17,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=14 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libzlib >=1.3.1,<2.0a0 + license: MIT + license_family: MIT + size: 697033 + timestamp: 1761766011241 +- 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/lz4-c-1.10.0-hee9eb32_2.conda + sha256: b8c0e930183e6b7f83cd35ace102f2b8c2f0faae41dc05255dc72f247dfc556a + md5: e38a3253d72ab07d471483f24947e2a2 + depends: + - libgcc >=15 + - libstdcxx >=15 + - __glibc >=2.17,<3.0.a0 + license: BSD-2-Clause + license_family: BSD + size: 181812 + timestamp: 1786717122815 +- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-3.11.2-pyh5ded981_0.conda + sha256: 9f08e888c7ec4a14aafcd03f4317cbde63d7a4b6a0383b61ef53d9677080ef40 + md5: 1422fdf237e251a219cf2c6a3ed7b2ab + depends: + - importlib-metadata >=4.4 + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + size: 89621 + timestamp: 1792444801683 +- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.2.0-pyhd8ed1ab_0.conda + sha256: 0c4c35376fe920714390d46e4b8d31c876d65f18e1655899e0763ec25f2a902f + md5: 6d03368f2b2b0a5fb6839df53b2eb5e0 + depends: + - mdurl >=0.1,<1 + - python >=3.10 + license: MIT + license_family: MIT + size: 69017 + timestamp: 1778169663339 +- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.4-py311h364832d_1.conda + sha256: b751f3c1f1a562eaf7a5896c3789be96e5dd30384cf2b8bcbf9f4a76941eb1a6 + md5: 34baa7315936ae51248b07a9a0ce954d + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - python_abi 3.11.* *_cp311 + constrains: + - jinja2 >=3.0.0 + license: BSD-3-Clause + license_family: BSD + size: 28475 + timestamp: 1791548971554 +- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.9-py311h0f3be63_0.conda + sha256: 3e122e4aacab6f07e046d87ddd2ad5896fb3bf344748ca784be3274891a4db8d + md5: cc259645be458c9222ffcf321ff5fc1e + depends: + - __glibc >=2.17,<3.0.a0 + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - freetype + - kiwisolver >=1.3.1 + - libfreetype >=2.14.3 + - libfreetype6 >=2.14.3 + - libgcc >=14 + - libstdcxx >=14 + - numpy >=1.23 + - numpy >=1.23,<3 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python >=3.11,<3.12.0a0 + - python-dateutil >=2.7 + - python_abi 3.11.* *_cp311 + - qhull >=2020.2,<2020.3.0a0 + - tk >=8.6.13,<8.7.0a0 + license: PSF-2.0 + license_family: PSF + size: 8372143 + timestamp: 1777000579013 +- conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.2-pyhd8ed1ab_0.conda + sha256: 35b43d7343f74452307fd018a1cca92b8f68961ff8e2ab6a81ce0a703c9a3764 + md5: 9acc1c385be401d533ff70ef5b50dae6 + depends: + - python >=3.10 + - traitlets + license: BSD-3-Clause + license_family: BSD + size: 15725 + timestamp: 1778264403247 +- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7 + md5: 592132998493b3ff25fd7479396e8351 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 14465 + timestamp: 1733255681319 +- conda: https://conda.anaconda.org/conda-forge/noarch/ml-collections-1.0.0-pyh29332c3_0.conda + sha256: a1693918512ad05f77c2e55ea5aeebf91c21d53853c4c8ac88d89c5551c59b0d + md5: 661f552a80844d1b4261d06307d2190a + depends: + - python >=3.10 + - absl-py + - pyyaml + - six + - python + license: Apache-2.0 + license_family: APACHE + size: 61636 + timestamp: 1731417481417 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ml_dtypes-0.4.0-py311h7db5c69_2.conda + sha256: 1e59cd504003da4171df8524a5568eab6ed818e1065957cd1c3fa83cb6a18546 + md5: 7df028e3691fb3940a03e5ad7938414e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - numpy >=1.19,<3 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: MPL-2.0 AND Apache-2.0 + size: 164649 + timestamp: 1725475216339 +- conda: https://conda.anaconda.org/bioconda/linux-64/mmseqs2-18.8cc5c-hd6d6fdc_0.tar.bz2 + sha256: 466c7bc19eecc58a6043e73f7c80865fc610b4f545af8498565547d87c45d9a9 + md5: a11c5e78c9e77099aa3a2291710292e3 + depends: + - _openmp_mutex >=4.5 + - aria2 + - bzip2 >=1.0.8,<2.0a0 + - gawk + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - zlib + license: MIT + size: 133026020 + timestamp: 1753615341810 +- conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-ha2cb11d_1.conda + sha256: 0be79ef2ee536e0c5d3ddb4a52bbae9f26d08560623299f33db2f4c4a17c525a + md5: 7dcc10f6c0bc3596d5519a710a84dfd4 + depends: + - __glibc >=2.17,<3.0.a0 + - gmp >=6.3.0,<7.0a0 + - libgcc >=15 + license: LGPL-3.0-only + license_family: LGPL + size: 730409 + timestamp: 1787236218159 +- conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.2.3-py311h4c6fd42_0.conda + sha256: 7a30da7fa0813d0bbf8056bdd454da11a0398d9a6bfe3fe69c58db0b0acf4b4e + md5: ebbe58997393ca83233b207a57758c16 + depends: + - python + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.11.* *_cp311 + license: Apache-2.0 + license_family: APACHE + size: 121278 + timestamp: 1790682659776 +- 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/namex-0.1.0-pyhd8ed1ab_0.conda + sha256: 295e0ef6aae0185b55752c981eca5c11443ba9ea4c236d45112128799fd99f51 + md5: 3eb854547a0183b994431957fa0e05d2 + depends: + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + size: 11936 + timestamp: 1748346473739 +- 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/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda + sha256: bb7b21d7fd0445ddc0631f64e66d91a179de4ba920b8381f29b9d006a42788c0 + md5: 598fd7d4d0de2455fb74f56063969a97 + depends: + - python >=3.9 + license: BSD-2-Clause + license_family: BSD + size: 11543 + timestamp: 1733325673691 +- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda + sha256: 3f4365e11b28e244c95ba8579942b0802761ba7bb31c026f50d1a9ea9c728149 + md5: a502d7aad449a1206efb366d6a12c52d + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 8065890 + timestamp: 1707225944355 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-2.3.4-hb03c661_1.conda + sha256: 75f3bf733523a338f73d6c276c4a26634877cd970edb558f2769d9fa52b100a9 + md5: c2871ba95727fd1382c05db66048b64c + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - opencl-headers >=2025.6.13 + license: BSD-2-Clause + license_family: BSD + size: 109598 + timestamp: 1780362789611 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ocl-icd-system-1.0.0-1.tar.bz2 + sha256: cb0ce5ce5ede1be2fd9edf88abd3ce3e6c2b7397c0283d623e4d8ccf96a1ed09 + md5: 577a4bd049737b11a24524e39a16a1f3 + depends: + - ocl-icd + license: BSD 3-Clause + license_family: BSD + size: 4253 + timestamp: 1575483836797 +- conda: https://conda.anaconda.org/conda-forge/linux-64/opencl-headers-2025.06.13-hecca717_0.conda + sha256: 8de2f0cd8a659b01abf86e7fbb8cea4f28ada62fd288429a2bbc040db1b98dd0 + md5: c930c8052d780caa41216af7de472226 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + license: Apache-2.0 + license_family: APACHE + size: 55754 + timestamp: 1773844383536 +- 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/openmm-8.0.0-py311h9766050_4.conda + sha256: a126d84ce95a9bd4023c0e663357b34687f685978f92553884828fc917406bbe + md5: f2673586fa3363a13c71e9675f8f6c29 + depends: + - __glibc >=2.17 + - __glibc >=2.17,<3.0.a0 + - cudatoolkit >=11.8,<12 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - numpy >=1.23.5,<2.0a0 + - ocl-icd >=2.3.1,<3.0a0 + - ocl-icd-system + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: LGPL-3.0-or-later + license_family: LGPL + size: 11355874 + timestamp: 1699900048203 +- 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/opt-einsum-3.4.0-hd8ed1ab_1.conda + sha256: 8db3d841c72f184de69e1237b900a2d79c742e30e8378973814543bf987b6bc6 + md5: b94f689d8b1ce7dd212946e0331037ad + depends: + - opt_einsum >=3.4.0,<3.4.1.0a0 + license: MIT + license_family: MIT + size: 6558 + timestamp: 1733688054327 +- conda: https://conda.anaconda.org/conda-forge/noarch/opt_einsum-3.4.0-pyhd8ed1ab_1.conda + sha256: af71aabb2bfa4b2c89b7b06403e5cec23b418452cae9f9772bd7ac3f9ea1ff44 + md5: 52919815cd35c4e1a0298af658ccda04 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 62479 + timestamp: 1733688053334 +- conda: https://conda.anaconda.org/conda-forge/noarch/optax-0.2.2-pyhd8ed1ab_1.conda + sha256: 68ab5cd076de8d3ec6971a78bd3786a129a2c0d172a0fc66776b36d28b54f5f8 + md5: dd370641d3610ed329ae747f0eae09c8 + depends: + - absl-py >=0.7.1 + - chex >=0.1.86 + - jax >=0.1.55 + - jaxlib >=0.1.37 + - numpy >=1.18.0 + - python >=3.9 + - typing_extensions >=3.10 + license: Apache-2.0 + license_family: APACHE + size: 145268 + timestamp: 1718550769933 +- conda: https://conda.anaconda.org/conda-forge/linux-64/optree-0.20.0-py311h5f908af_1.conda + sha256: 54cc90a5fb8f4895ab4bcf7c7f29fa0a65fc7fef8f7c16202e48f793744397f9 + md5: 6bd81661a37295786c9e779d0dd028eb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - typing-extensions >=4.10 + license: Apache-2.0 + license_family: Apache + size: 573233 + timestamp: 1788504561764 +- conda: https://conda.anaconda.org/conda-forge/noarch/orbax-checkpoint-0.4.4-pyhd8ed1ab_0.conda + sha256: 79012b755ed91777ed50d60ed790bf9cc5abff7bf05be807331cf15535618d1b + md5: 1f3efaebaa9f6e6b6af781bcb60718be + depends: + - absl-py + - etils + - importlib_resources + - jax >=0.4.9 + - jaxlib + - msgpack-python + - nest-asyncio + - numpy + - protobuf + - python >=3.9 + - pyyaml + - tensorstore >=0.1.35 + - typing_extensions + license: Apache-2.0 + license_family: APACHE + size: 86896 + timestamp: 1701452697513 +- 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.0.6-np2py311h1e9b377_0.conda + sha256: 85459025d8f749316df29ab837729155d8c54c48af2953ff6226107a7e4c1c9f + md5: 94bc77ee4421c9ff83fe336cb39f55b9 + depends: + - python + - numpy >=1.26.0 + - python-dateutil >=2.8.2 + - libgcc >=15 + - libstdcxx >=15 + - __glibc >=2.17,<3.0.a0 + - numpy >=1.23,<3 + - python_abi 3.11.* *_cp311 + constrains: + - adbc-driver-postgresql >=1.2.0 + - adbc-driver-sqlite >=1.2.0 + - beautifulsoup4 >=4.12.3 + - blosc >=1.21.3 + - bottleneck >=1.4.2 + - fastparquet >=2024.11.0 + - fsspec >=2024.10.0 + - gcsfs >=2024.10.0 + - html5lib >=1.1 + - hypothesis >=6.116.0 + - jinja2 >=3.1.5 + - lxml >=5.3.0 + - matplotlib >=3.9.3 + - numba >=0.60.0 + - numexpr >=2.10.2 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=13.0.0 + - pyiceberg >=0.8.1 + - pymysql >=1.1.1 + - pyqt5 >=5.15.9 + - pyreadstat >=1.2.8 + - pytables >=3.10.1 + - pytest >=8.3.4 + - pytest-xdist >=3.6.1 + - python-calamine >=0.3.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.2 + - scipy >=1.14.1 + - s3fs >=2024.10.0 + - sqlalchemy >=2.0.36 + - tabulate >=0.9.0 + - xarray >=2024.10.0 + - xlrd >=2.0.1 + - xlsxwriter >=3.2.0 + - zstandard >=0.23.0 + license: BSD-3-Clause + license_family: BSD + size: 15318970 + timestamp: 1789803360037 +- conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.7-pyhcf101f3_0.conda + sha256: 611882f7944b467281c46644ffde6c5145d1a7730388bcde26e7e86819b0998e + md5: 39894c952938276405a1bd30e4ce2caf + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + size: 82472 + timestamp: 1777722955579 +- conda: https://conda.anaconda.org/conda-forge/noarch/pdbfixer-1.9-pyh1a96a4e_0.conda + sha256: 053b4e535b178345c5666d04819c63004855eb38c5b49ae7c847e47a465b28c4 + md5: 20be3519aa2058a7088bf1474390638f + depends: + - numpy + - openmm >=8.0 + - python >=3.6 + - setuptools + license: MIT + license_family: MIT + size: 500978 + timestamp: 1684358498270 +- conda: https://conda.anaconda.org/conda-forge/linux-64/perl-5.44.0-1_h7cc23a3_perl5.conda + build_number: 1 + sha256: 43afad1c27c24ccc40d98461ab7e1648ccac876421a8783167861ae19c4edc83 + md5: 474944e9c978cc84911f1c1f9eaa8bb2 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libxcrypt >=4.4.38 + license: GPL-1.0-or-later OR Artistic-1.0-Perl + size: 11438995 + timestamp: 1790621296165 +- conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda + sha256: 202af1de83b585d36445dc1fda94266697341994d1a3328fabde4989e1b3d07a + md5: d0d408b1f18883a944376da5cf8101ea + depends: + - ptyprocess >=0.5 + - python >=3.9 + license: ISC + size: 53561 + timestamp: 1733302019362 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-13.0.0-py311hf303fd3_0.conda + sha256: be11b66178d9d4859d95a45d22b3c45f99e548844f1ec5c20a048d462d5647bf + md5: 551a711e559b4f06d2277e8e7bd6aa9f + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libfreetype >=2.14.3 + - libfreetype6 >=2.14.3 + - libjpeg-turbo >=3.2.0,<4.0a0 + - lcms2 >=2.19.1,<3.0a0 + - openjpeg >=2.5.4,<3.0a0 + - tk >=8.6.13,<8.7.0a0 + - libtiff >=4.7.2,<4.8.0a0 + - libxcb >=1.17.0,<2.0a0 + - libwebp-base >=1.6.0,<2.0a0 + - zlib-ng >=2.3.3,<2.4.0a0 + - python_abi 3.11.* *_cp311 + license: HPND + size: 1089138 + timestamp: 1792416406105 +- 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/noarch/prompt-toolkit-3.0.53-pyha770c72_0.conda + sha256: efe8def2c93aa34cd8d3c9af1dc4c7d312791cf769d8b2b615e32733e6df6051 + md5: 39c92a39517316e5001d645ae63d9ab9 + depends: + - python >=3.10 + - wcwidth + constrains: + - prompt_toolkit 3.0.53 + license: BSD-3-Clause + license_family: BSD + size: 276081 + timestamp: 1785160613307 +- conda: https://conda.anaconda.org/conda-forge/linux-64/protobuf-4.25.3-py311hbffca5d_1.conda + sha256: 3e06dcdd3ec2e73fb456d5c2fdf9c8829d7f70c15d724f9920a24276a0a1d6b5 + md5: 27089f71e28d01bcc070460d822d5acb + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240116.2,<20240117.0a0 + - libgcc >=13 + - libprotobuf >=4.25.3,<4.25.4.0a0 + - libstdcxx >=13 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - setuptools + license: BSD-3-Clause + license_family: BSD + size: 398881 + timestamp: 1725018534875 +- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py311h194be0f_3.conda + sha256: 5733fbcaf4f5575051342b872de15e8589bb922c6b037d2d9425e86638ed2f1f + md5: 3c44e9e6a0ffaab88dbd7bd78f752a09 + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 231845 + timestamp: 1789682042836 +- 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/ptyprocess-0.7.0-pyhd8ed1ab_1.conda + sha256: a7713dfe30faf17508ec359e0bc7e0983f5d94682492469bd462cdaae9c64d83 + md5: 7d9daffbb8d8e0af0f769dbbcd173a54 + depends: + - python >=3.9 + license: ISC + size: 19457 + timestamp: 1733302371990 +- conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.4-pyhd8ed1ab_0.conda + sha256: 2151e981a422ef57031482b28df9c8432d54c1f44996e7760774813f167be863 + md5: 35993ea8ef5e76333e6efb6a0ffb3771 + depends: + - python >=3.11 + license: MIT + license_family: MIT + size: 18473 + timestamp: 1789159440378 +- conda: https://conda.anaconda.org/conda-forge/noarch/py3dmol-2.5.4-pyhd8ed1ab_0.conda + sha256: de9ac46d330aa7b5cb833ecb851249a550d6a6f8f8a4cbb7748b9cd6220f6c52 + md5: ebac7a00117092f22f0ebc28bc3dad66 + depends: + - ipython + - python >=3.10 + license: MIT + license_family: MIT + size: 13737 + timestamp: 1769417304572 +- conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 + sha256: d4fb485b79b11042a16dc6abfb0c44c4f557707c2653ac47c81e5d32b24a3bb0 + md5: 878f923dd6acc8aeb47a75da6c4098be + license: BSD-3-Clause + license_family: BSD + size: 9906 + timestamp: 1610372835205 +- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + sha256: f5f015ff1bc3e1b7fc08eee096b1865234189ae0b82bebdb86a5369116e42fa0 + md5: 2882dee445dfa45b0c5afce3ffb7730a + depends: + - python >=3.10 + - python + license: BSD-2-Clause + license_family: BSD + size: 959376 + timestamp: 1786995678795 +- 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/noarch/pysocks-1.7.1-pyha55dd90_7.conda + sha256: ba3b032fa52709ce0d9fd388f63d330a026754587a2f461117cac9ab73d8d0d8 + md5: 461219d1a5bd61342293efa2c0c90eac + depends: + - __unix + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 21085 + timestamp: 1733217331982 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.17-h5f976f7_1_cpython.conda + build_number: 1 + sha256: 524df25896667b5f7e391c2115495cac5e0077b97967981091af8afcc98fd312 + md5: 1e46b899831e9224d6edf13ea693b314 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.8.5,<3.0a0 + - libffi >=3.7.0,<3.8.0a0 + - libgcc >=15 + - liblzma >=5.8.3,<6.0a0 + - libnsl >=2.0.1,<2.1.0a0 + - libpython 3.11.17 h0c77377_1_cpython + - libsqlite >=3.53.4,<4.0a0 + - libuuid >=2.42.4,<3.0a0 + - libxcrypt >=4.4.38 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.9,<4.0a0 + - readline >=8.3,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + size: 23360932 + timestamp: 1791332402097 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-abi3-3.11-ha8785bc_3.conda + sha256: 3ac78bbfa9abfdf92a0f6e2f2d058d8393868c4bac36b012f95888a4455362cd + md5: 85d7b185396c14a0fdc1084028f82b21 + depends: + - __unix + - _python_abi3_support + - python 3.11.* + license: MIT + license_family: MIT + size: 8226 + timestamp: 1784221524056 +- 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-flatbuffers-25.12.19-pyh9d96877_0.conda + sha256: dff2f2fc462996f71686c05a0fba78a0dc919034ef8d879dd8366534ad64c0f1 + md5: 3a28cf4d2187c1dfb0c31aedbf275b8c + depends: + - python >=3.10 + license: Apache-2.0 + license_family: Apache + size: 35556 + timestamp: 1784053026634 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.11.17-hd8ed1ab_2.conda + sha256: 4164837168c91e0b54d3aca7933fbb7e78e7f4edd2c227ce8e7174082bd59bf6 + md5: 0b66d0a661f811417e712910dd98fc50 + depends: + - cpython 3.11.17.* + - python_abi * *_cp311 + license: Python-2.0 + size: 49113 + timestamp: 1791909605217 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.5-pyh5ded981_0.conda + sha256: b66b783be882069a9f6c00bc44ee561fc3dfba21fe4bab6de31599caf3c63154 + md5: 4a0ae2a06b469e6f8ca95d0655e31c86 + depends: + - python >=3.11 + - python + license: Apache-2.0 + license_family: APACHE + size: 141379 + timestamp: 1791025923003 +- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.11-9_cp311.conda + build_number: 9 + sha256: bcfbad269758f4617035314fe379ee655bc2d9db5282e7a00d61450b7cefa3cf + md5: 18e91a03be08122180f208723e42a52e + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6770 + timestamp: 1788302830198 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py311h3778330_1.conda + sha256: c9a6cd2c290d7c3d2b30ea34a0ccda30f770e8ddb2937871f2c404faf60d0050 + md5: a24add9a3bababee946f3bc1c829acfe + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 206190 + timestamp: 1770223702917 +- 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/rav1e-0.8.1-h1fbca29_0.conda + sha256: cf550bbc8e5ebedb6dba9ccaead3e07bd1cb86b183644a4c853e06e4b3ad5ac7 + md5: d83958768626b3c8471ce032e28afcd3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - __glibc >=2.17 + license: BSD-2-Clause + license_family: BSD + size: 5595970 + timestamp: 1772540833621 +- conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2023.09.01-h7f4b329_2.conda + sha256: f0f520f57e6b58313e8c41abc7dfa48742a05f1681f05654558127b667c769a8 + md5: 8f70e36268dea8eb666ef14c29bd3cda + depends: + - libre2-11 2023.09.01 h5a48ba9_2 + license: BSD-3-Clause + license_family: BSD + size: 26617 + timestamp: 1708946796423 +- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-hd6e31c0_1.conda + sha256: 01b3fe073a66e321970d09e04b388708f8cbdca5cdfbfcb7c9eeb470ad10383d + md5: 69c01c781e7c8190bbdaf79e3848c5ca + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - ncurses >=6.6,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 348899 + timestamp: 1787033801506 +- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda + sha256: 1715246b19c9f85ee022933b4845f2fc14ac9184981b7b7d9b728bec8e9588da + md5: 4a85203c1d80c1059086ae860836ffb9 + depends: + - python >=3.10 + - certifi >=2023.5.7 + - charset-normalizer >=2,<4 + - idna >=2.5,<4 + - urllib3 >=1.26,<3 + - python + constrains: + - chardet >=3.0.2,<8 + license: Apache-2.0 + license_family: APACHE + size: 68709 + timestamp: 1778851103479 +- conda: https://conda.anaconda.org/conda-forge/noarch/rich-15.0.0-pyhcf101f3_0.conda + sha256: 3d6ba2c0fcdac3196ba2f0615b4104e532525ffa1335b50a2878be5ff488814a + md5: 0242025a3c804966bf71aa04eee82f66 + depends: + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.10 + - typing_extensions >=4.0.0,<5.0.0 + - python + license: MIT + license_family: MIT + size: 208577 + timestamp: 1775991661559 +- conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.7.6-h7e3ee7f_0.conda + sha256: 1e1ccc56fdf3fe82150b4eac1d626c806e612af208fbf40ce3abfe9a2eb2a626 + md5: e112cadcd79412d81496e784884bddf0 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - openssl >=3.5.7,<4.0a0 + license: Apache-2.0 + license_family: Apache + size: 393680 + timestamp: 1784674401024 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py311hbe70eeb_1.conda + sha256: 3ae2ff1d1cc5930de2ca6ac03216118bdf13b2af6098e28e827f1ba25bfcbc4e + md5: 089de2ee37e4e19885c985a4fe4aaf14 + depends: + - __glibc >=2.17,<3.0.a0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.3.0 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx >=14 + - numpy <2.7 + - numpy >=1.23,<3 + - numpy >=1.25.2 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: BSD-3-Clause + license_family: BSD + size: 17303931 + timestamp: 1779874783665 +- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.2.1-pyhe730653_0.conda + sha256: 17add609d1a31c874e39a03935072be59bcafb06d42383eceabea746d12e6025 + md5: d41f95b8f1553165b2cc2f37162dac9c + depends: + - python >=3.11 + license: MIT + license_family: MIT + size: 567436 + timestamp: 1792571495729 +- 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/linux-64/snappy-1.2.2-h34e00bb_2.conda + sha256: 8635d10c7f127808b09c0c8e77b21a255829e0934e49326548c949f7e0551f09 + md5: 2b7e31ffbd476eecf33b3b833692339c + depends: + - libgcc >=15 + - libstdcxx >=15 + - __glibc >=2.17,<3.0.a0 + license: BSD-3-Clause + license_family: BSD + size: 45695 + timestamp: 1790063285616 +- conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda + sha256: 570da295d421661af487f1595045760526964f41471021056e993e73089e9c41 + md5: b1b505328da7a6b246787df4b5a49fbc + depends: + - asttokens + - executing + - pure_eval + - python >=3.9 + license: MIT + license_family: MIT + size: 26988 + timestamp: 1733569565672 +- conda: https://conda.anaconda.org/conda-forge/linux-64/svt-av1-4.2.0-hd2095e1_1.conda + sha256: 09c242d480632acca31f2a510c9a9f65bb8cca1e82b73d2d0261ec837fff48be + md5: 3bd5f5f3f6f6431b9f19b35ad4a8ed21 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libstdcxx >=15 + license: BSD-2-Clause + license_family: BSD + size: 2750545 + timestamp: 1787256261632 +- conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.10.0-pyhcf101f3_0.conda + sha256: 3f661e98a09f976775a494488beb3d35ebb00f535b169c6bd891f2e280d55783 + md5: 3b887b7b3468b0f494b4fad40178b043 + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + size: 43964 + timestamp: 1772732795746 +- conda: https://conda.anaconda.org/conda-forge/noarch/tensorboard-2.17.1-pyhd8ed1ab_0.conda + sha256: 0f9777cef2723977e8cb68bf305fde9b8f6cbc28ae5165ac0d5c208f1d767226 + md5: 1a6c7a02498c952ba92e08b0abe0c48c + depends: + - absl-py >=0.4 + - grpcio >=1.48.2 + - markdown >=2.6.8 + - numpy >=1.12.0 + - packaging + - protobuf >=3.19.6,!=4.24.0 + - python >=3.8 + - setuptools >=41.0.0 + - six >=1.9 + - tensorboard-data-server >=0.7.0,<0.8.0 + - werkzeug >=1.0.1 + license: Apache-2.0 + license_family: APACHE + size: 5188462 + timestamp: 1723713185024 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tensorboard-data-server-0.7.0-py311h97c413e_4.conda + sha256: 61a6d78685c4edd1562dcf433536ee307fff98d7ca67946c31c660b5ef27ccc1 + md5: e2d333d85b459ca7fce89351e2ca3c9e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - openssl >=3.5.4,<4.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - __glibc >=2.17 + license: Apache-2.0 + license_family: APACHE + size: 3494880 + timestamp: 1764929829640 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tensorflow-base-2.17.0-cpu_py311h0e3e7eb_2.conda + sha256: ce47cc11933d7973cd5b7edbfcb3ff9bf94ff90f4bcbbfd0d7beeb8a4aeee1f7 + md5: 69a676eece25f693f5f14dfae8f47ce2 + depends: + - __glibc >=2.17,<3.0.a0 + - absl-py >=1.0.0 + - astunparse >=1.6.0 + - flatbuffers >=24.3.25,<24.3.26.0a0 + - gast >=0.2.1,!=0.5.0,!=0.5.1,!=0.5.2 + - giflib >=5.2.2,<5.3.0a0 + - google-pasta >=0.1.1 + - grpcio 1.62.* + - h5py >=3.10 + - icu >=75.1,<76.0a0 + - keras >=3.0 + - libabseil * cxx17* + - libabseil >=20240116.2,<20240117.0a0 + - libcurl >=8.9.1,<9.0a0 + - libgcc >=13 + - libgrpc >=1.62.2,<1.63.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libpng >=1.6.43,<1.7.0a0 + - libprotobuf >=4.25.3,<4.25.4.0a0 + - libsqlite >=3.46.0,<4.0a0 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - ml_dtypes >=0.4.0,<0.5 + - numpy >=1.23.5,<2.0a0 + - openssl >=3.3.1,<4.0a0 + - opt_einsum >=2.3.2 + - packaging + - protobuf >=3.20.3,<5,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5 + - python >=3.11,<3.12.0a0 + - python-flatbuffers >=24.3.25 + - python_abi 3.11.* *_cp311 + - requests >=2.21.0,<3 + - six >=1.12 + - snappy >=1.2.1,<1.3.0a0 + - tensorboard >=2.17,<2.18 + - termcolor >=1.1.0 + - typing_extensions >=3.6.6 + - wrapt >=1.11.0 + track_features: + - tensorflow-cpu + license: Apache-2.0 + license_family: Apache + size: 156856860 + timestamp: 1725123950117 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tensorstore-0.1.65-py311he109767_1.conda + sha256: c3427c0f54303c5048554fde0285a651f67f1292a05677b1f18f3372c66b2947 + md5: c37931804b3dc7ccbeaf081c3705b0a3 + depends: + - __glibc >=2.17,<3.0.a0 + - blosc >=1.21.6,<2.0a0 + - bzip2 >=1.0.8,<2.0a0 + - libavif16 >=1.1.1,<2.0a0 + - libcurl >=8.10.0,<9.0a0 + - libgcc >=13 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libpng >=1.6.44,<1.7.0a0 + - libprotobuf >=4.25.3,<4.25.4.0a0 + - libstdcxx >=13 + - libwebp-base >=1.4.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - ml_dtypes + - numpy >=1.23.5,<2.0a0 + - openssl >=3.3.2,<4.0a0 + - pybind11-abi 4 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - xz >=5.2.6,<6.0a0 + license: Apache-2.0 AND MIT AND BSD-3-Clause AND BSD-2-Clause + size: 8448874 + timestamp: 1726476589494 +- conda: https://conda.anaconda.org/conda-forge/noarch/termcolor-3.3.0-pyhd8ed1ab_0.conda + sha256: 2107f959cd2a8a804d52e124434088e1a28c843942b62a7f8a3d84072861f0ef + md5: bc6228906129e420c74a5ebaf0d63936 + depends: + - python >=3.10 + license: MIT + license_family: MIT + size: 13259 + timestamp: 1767096412722 +- 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/toolz-1.2.0-pyh5ded981_0.conda + sha256: 582d3ab0298347c5f46439c7ce834c7152eb43b0cce1e229568de7235cddad13 + md5: 17f8db9088267a3cb38d56cc22d268ae + depends: + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + size: 56736 + timestamp: 1791368097449 +- conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.70.1-pyhfa0c392_0.conda + sha256: 7c40c84de3de3624c2a753496122dbb880903c796d183e9d4be6c15c310c4bab + md5: ffc91f29264eeb8d3ba96fdc897316c3 + depends: + - python >=3.11 + - __unix + - python + constrains: + - envwrap >=0.2 + - ipywidgets >=6.0 + license: MPL-2.0 and MIT + size: 95977 + timestamp: 1789187326570 +- conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.16.1-pyhcf101f3_0.conda + sha256: 03dba5917f944c6684ab44c81daacac1624cd148e4b2cae215dcec594a210c48 + md5: a79bf97561232a31447b6246c2153ab5 + depends: + - python >=3.10 + - python + license: BSD-3-Clause + license_family: BSD + size: 116935 + timestamp: 1785761789772 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + sha256: b141933ece3518f6d7b75dfb59451e2f26b405a44c18e2518a83e9a02e09315c + md5: c680b5747e8c4c8f23dca0bb7042a8fc + depends: + - typing_extensions ==4.16.0 pyhcf101f3_0 + license: PSF-2.0 + license_family: PSF + size: 94080 + timestamp: 1783002732887 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + sha256: 2d888f90af0686044882c74193ec80a90ec1943145d94a7b1b048958acda1848 + md5: c70ad746c22219b9700931707482992c + depends: + - python >=3.10 + - python + license: PSF-2.0 + license_family: PSF + size: 52631 + timestamp: 1783002732887 +- 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/unicodedata2-18.0.0-py311h0d48ccd_0.conda + sha256: c8dce6fd51ed3a8ac9f600939ada429691b09c00bf651e611e221a900c16c2ec + md5: b3c135d87baf528b7263c06452926ff0 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + license: Apache-2.0 + license_family: Apache + size: 421360 + timestamp: 1789928103335 +- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.8.0-pyhd8ed1ab_0.conda + sha256: c5511c190ab55168ca412f3c54592fbf677ae6250784cb72b227a7cf3f538f7d + md5: 407a3d3778570bae8e8fcf554e803e43 + depends: + - backports.zstd >=1.0.0 + - brotli-python >=1.2.0 + - h2 >=4,<5 + - pysocks >=1.5.6,<2.0,!=1.5.7 + - python >=3.11 + license: MIT + license_family: MIT + size: 107485 + timestamp: 1789566710244 +- conda: https://conda.anaconda.org/conda-forge/linux-64/wcwidth-0.9.3-py311hd139983_0.conda + noarch: python + sha256: bd1b4399854d08a4565740ab517a38759e158fba061c8c9eb47568d3f97769d9 + md5: 33a6c45b26f3325496154778ce32b195 + depends: + - python + - python >=3.11 + - python-abi3 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - _python_abi3_support 1.* + - cpython >=3.11 + license: MIT + license_family: MIT + size: 368576 + timestamp: 1792530221364 +- conda: https://conda.anaconda.org/conda-forge/noarch/werkzeug-3.1.9-pyh5ded981_0.conda + sha256: 9bb5c06955efec7a5801bb39a06896f22026c39d845b9fc8ade15e6861ef9284 + md5: cb4014ab1e412ad4a8aeeee11577065e + depends: + - markupsafe >=2.1.1 + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + size: 260273 + timestamp: 1790550578594 +- 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/wrapt-2.5.1-py311h194be0f_0.conda + sha256: 3853ffc0fa575757dc5c01ba20ac7a7d2e7e4d1569a6eb95e8c901cbadab8b3a + md5: ab5e9525346030e8354b1ba7043b30dd + depends: + - python + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.11.* *_cp311 + license: BSD-2-Clause + license_family: BSD + size: 156447 + timestamp: 1792013641859 +- 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/xz-5.8.3-ha02ee65_1.conda + sha256: 547b2392d8f7b76efd4a0970946f6da2a1136ad5fe3dc936af81e02eb7181076 + md5: 36a079606b3aaf9d726211825f182452 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - liblzma 5.8.3 hb03c661_1 + - liblzma-devel 5.8.3 hb03c661_1 + - xz-gpl-tools 5.8.3 ha02ee65_1 + - xz-tools 5.8.3 hb03c661_1 + license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later + size: 23610 + timestamp: 1786348658246 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.3-ha02ee65_1.conda + sha256: ed6dbec5e4f0f71e7ac629b90dc4c9fba38d194cc88eab891c29e461b408977a + md5: 137db930adb0b3c5407485e0e1a50cfa + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - liblzma 5.8.3 hb03c661_1 + constrains: + - xz 5.8.3.* + license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later + size: 40118 + timestamp: 1786348648882 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.3-hb03c661_1.conda + sha256: c74fa3eddd3ea648456517948f85068d8a07acad7752fd83c7e95b6cebb7114a + md5: 10d693a2db6e8339e4eebcb3a3dae88d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - liblzma 5.8.3 hb03c661_1 + constrains: + - xz 5.8.3.* + license: 0BSD AND LGPL-2.1-or-later + size: 96459 + timestamp: 1786348637686 +- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-hebe6cf0_3.conda + sha256: d164dfa75ecd538f6fd68765defcc06aa875bc697b9b215362d79a2a73125dd0 + md5: e741576fb8f89821ac7c1c537322a33d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: MIT + license_family: MIT + size: 84936 + timestamp: 1787228426393 +- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.2-pyh5ded981_0.conda + sha256: 4e5c50cf5ecc00d83a20b987c52d49b78fa96026437ab09b11f4b7c46b7fc061 + md5: 3a99defa674883e167603f141728de7e + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + size: 24791 + timestamp: 1792622774790 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.2-h25fd6f3_3.conda + sha256: 16080a1c7724f7d25727cdc23c7658e0cec2db52448c1dc0c33467ee2c6e1c62 + md5: 6acb86426229f96f93e5468d1df3a5e8 + depends: + - __glibc >=2.17,<3.0.a0 + - libzlib 1.3.2 h25fd6f3_3 + license: Zlib + license_family: Other + size: 96132 + timestamp: 1785362957588 +- 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/colabfold/downloadmodels/environment.yml b/modules/nf-core/colabfold/downloadmodels/environment.yml new file mode 100644 index 000000000000..34b0a2428866 --- /dev/null +++ b/modules/nf-core/colabfold/downloadmodels/environment.yml @@ -0,0 +1,10 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::colabfold=1.5.5" + # colabfold 1.5.5 needs jax <0.4.26; newer dm-haiku releases need a newer jax + - "conda-forge::dm-haiku=0.0.12" + - "conda-forge::flax=0.8.2" diff --git a/modules/nf-core/colabfold/downloadmodels/main.nf b/modules/nf-core/colabfold/downloadmodels/main.nf new file mode 100644 index 000000000000..6f56490cf56e --- /dev/null +++ b/modules/nf-core/colabfold/downloadmodels/main.nf @@ -0,0 +1,40 @@ +process COLABFOLD_DOWNLOADMODELS { + tag "${model_type}" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${workflow.containerEngine in ['singularity', 'apptainer'] && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/d2/d2de6276b0c23cc1aaab4af2aa1336fa943b0c45d43ce4ed483911fb99a3db33/data' + : 'community.wave.seqera.io/library/colabfold_dm-haiku_flax:50a22b7e73876edb'}" + + input: + val(model_type) + + output: + tuple val(meta), path("weights"), emit: weights + tuple val("${task.process}"), val('colabfold'), eval("python -c 'import importlib.metadata as m; print(m.version(\"colabfold\"))'"), topic: versions, emit: versions_colabfold + + when: + task.ext.when == null || task.ext.when + + script: + meta = [ id: model_type ] + """ + # Same downloader colabfold_batch calls itself; it also writes the + # params/download*_finished.txt marker that colabfold_batch checks for + python -c "from pathlib import Path; from colabfold.download import download_alphafold_params; download_alphafold_params('${model_type}', Path('weights'))" + """ + + stub: + meta = [ id: model_type ] + def markers = [ + alphafold2_multimer_v1: 'download_complexes_multimer_v1_finished.txt', + alphafold2_multimer_v2: 'download_complexes_multimer_v2_finished.txt', + alphafold2_multimer_v3: 'download_complexes_multimer_v3_finished.txt', + deepfold_v1 : 'download_deepfold-v1_finished.txt', + ] + """ + mkdir -p weights/params + touch weights/params/${markers[model_type] ?: 'download_finished.txt'} + """ +} diff --git a/modules/nf-core/colabfold/downloadmodels/meta.yml b/modules/nf-core/colabfold/downloadmodels/meta.yml new file mode 100644 index 000000000000..6754e449cf95 --- /dev/null +++ b/modules/nf-core/colabfold/downloadmodels/meta.yml @@ -0,0 +1,83 @@ +name: colabfold_downloadmodels +description: Downloads the AlphaFold2 (or DeepFold) parameters that ColabFold needs, once, as a data directory for colabfold/colabfold +keywords: + - protein structure + - structure prediction + - AlphaFold2 + - model + - download +tools: + - colabfold: + description: | + ColabFold runs AlphaFold2 (and other folding models) while sourcing its + multiple sequence alignment from a remote MMseqs2 server. This module + calls ColabFold's own downloader, `download_alphafold_params()`, which + extracts the parameters into `params/` and writes the empty + `params/download*_finished.txt` marker that `colabfold_batch` checks + before using a data directory. + homepage: https://github.com/sokrypton/ColabFold + documentation: https://github.com/sokrypton/ColabFold + doi: 10.1038/s41592-022-01488-1 + licence: ["MIT"] + identifier: biotools:colabfold + +input: + - model_type: + type: string + description: | + Set of parameters to download, as named by `colabfold_batch --model-type`: + `alphafold2_ptm` (monomers, ~3.5 GB), `alphafold2_multimer_v1`, + `alphafold2_multimer_v2`, `alphafold2_multimer_v3` (complexes) or `deepfold_v1` +output: + weights: + - - meta: + type: map + description: | + Groovy Map naming the downloaded parameter set + e.g. [ id:'alphafold2_ptm' ] + - weights: + type: directory + description: ColabFold data directory with the parameters and the download marker in `params/`, to pass as `weights` to colabfold/colabfold + pattern: "weights" + ontologies: [] + versions_colabfold: + - - ${task.process}: + type: string + description: The name of the process + - colabfold: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("colabfold"))': + type: eval + description: The expression to obtain the version of the tool + +topics: + versions: + - - ${task.process}: + type: string + description: The name of the process + - colabfold: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("colabfold"))': + type: eval + description: The expression to obtain the version of the tool + +authors: + - "@Bboy010" +maintainers: + - "@Bboy010" +containers: + docker: + linux/amd64: + name: community.wave.seqera.io/library/colabfold_dm-haiku_flax:50a22b7e73876edb + build_id: bd-50a22b7e73876edb_1 + scan_id: sc-7d6a4f09ec9a8b34_1 + singularity: + linux/amd64: + name: oras://community.wave.seqera.io/library/colabfold_dm-haiku_flax:797eb5b15587ba43 + build_id: bd-797eb5b15587ba43_1 + https: https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/d2/d2de6276b0c23cc1aaab4af2aa1336fa943b0c45d43ce4ed483911fb99a3db33/data + conda: + linux/amd64: + lock_file: modules/nf-core/colabfold/downloadmodels/.conda-lock/linux_amd64-bd-50a22b7e73876edb_1.txt diff --git a/modules/nf-core/colabfold/downloadmodels/tests/main.nf.test b/modules/nf-core/colabfold/downloadmodels/tests/main.nf.test new file mode 100644 index 000000000000..f247a361070e --- /dev/null +++ b/modules/nf-core/colabfold/downloadmodels/tests/main.nf.test @@ -0,0 +1,32 @@ +nextflow_process { + + name "Test Process COLABFOLD_DOWNLOADMODELS" + script "../main.nf" + process "COLABFOLD_DOWNLOADMODELS" + + tag "modules" + tag "modules_nfcore" + tag "colabfold" + tag "colabfold/downloadmodels" + + // Stub only: the real ~3.5 GB download runs in colabfold/colabfold's GPU tests + test("alphafold2_ptm - stub") { + + options "-stub" + + when { + process { + """ + input[0] = 'alphafold2_ptm' + """ + } + } + + then { + assert process.success + assertAll( + { assert snapshot(sanitizeOutput(process.out)).match() } + ) + } + } +} diff --git a/modules/nf-core/colabfold/downloadmodels/tests/main.nf.test.snap b/modules/nf-core/colabfold/downloadmodels/tests/main.nf.test.snap new file mode 100644 index 000000000000..5781e890a2e8 --- /dev/null +++ b/modules/nf-core/colabfold/downloadmodels/tests/main.nf.test.snap @@ -0,0 +1,32 @@ +{ + "alphafold2_ptm - stub": { + "content": [ + { + "versions_colabfold": [ + [ + "COLABFOLD_DOWNLOADMODELS", + "colabfold", + "1.5.5" + ] + ], + "weights": [ + [ + { + "id": "alphafold2_ptm" + }, + [ + [ + "download_finished.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ] + ] + } + ], + "timestamp": "2026-10-28T18:21:52.363563905", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + } +} \ No newline at end of file diff --git a/modules/nf-core/colabfold/tests/main.gpu.nf.test b/modules/nf-core/colabfold/tests/main.gpu.nf.test deleted file mode 100644 index 857f5c308177..000000000000 --- a/modules/nf-core/colabfold/tests/main.gpu.nf.test +++ /dev/null @@ -1,76 +0,0 @@ -nextflow_process { - - name "Test Process COLABFOLD (GPU)" - script "../main.nf" - process "COLABFOLD" - config "./nextflow.gpu.config" - - tag "gpu" - tag "modules" - tag "modules_nfcore" - tag "colabfold" - - // Weights are passed as [] so colabfold_batch downloads them (~3.5 GB); - // they cannot be shipped in nf-core/test-datasets. A single-sequence - // prediction queries no MSA server. - test("proteomics - faa - single sequence - gpu") { - - when { - params { - module_args = '--msa-mode single_sequence --num-models 1 --num-recycle 1' - } - process { - """ - input[0] = [ - [ id:'test' ], - file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) - ] - input[1] = [ [:], [] ] - input[2] = [ [:], [] ] - input[3] = [ [:], [], [] ] - """ - } - } - - then { - assert process.success - assertAll( - { assert snapshot( - sanitizeOutput(process.out, unstableKeys: ['pdb', 'json', 'pae', 'png', 'config', 'bibtex', 'log']), - path(process.out.pdb[0][1]).readLines().count { line -> line.startsWith('ATOM') }, - path(process.out.json[0][1]).text.contains('plddt'), - path(process.out.log[0][1]).text.contains('Done') - ).match() } - ) - } - } - - test("proteomics - faa - gpu - stub") { - - options "-stub" - - when { - params { - module_args = '--msa-mode single_sequence --num-models 1 --num-recycle 1' - } - process { - """ - input[0] = [ - [ id:'test' ], - file(params.modules_testdata_base_path + 'proteomics/interproscan/l_arginase.faa', checkIfExists: true) - ] - input[1] = [ [:], [] ] - input[2] = [ [:], [] ] - input[3] = [ [:], [], [] ] - """ - } - } - - then { - assert process.success - assertAll( - { assert snapshot(sanitizeOutput(process.out)).match() } - ) - } - } -} diff --git a/modules/nf-core/colabfold/tests/main.nf.test.snap b/modules/nf-core/colabfold/tests/main.nf.test.snap deleted file mode 100644 index e9997d063aa5..000000000000 --- a/modules/nf-core/colabfold/tests/main.nf.test.snap +++ /dev/null @@ -1,210 +0,0 @@ -{ - "proteomics - empty faa - no structures": { - "content": [ - { - "a3m": [ - - ], - "bibtex": [ - - ], - "config": [ - - ], - "json": [ - - ], - "log": [ - - ], - "npy": [ - - ], - "pae": [ - - ], - "pdb": [ - - ], - "pickle": [ - - ], - "png": [ - - ], - "templates": [ - - ], - "versions_colabfold": [ - [ - "COLABFOLD", - "colabfold", - "1.5.5" - ] - ], - "versions_cuda": [ - [ - "COLABFOLD", - "cuda", - "no CUDA available" - ] - ], - "versions_dm_haiku": [ - [ - "COLABFOLD", - "dm-haiku", - "0.0.12" - ] - ], - "versions_flax": [ - [ - "COLABFOLD", - "flax", - "0.8.2" - ] - ], - "versions_jax": [ - [ - "COLABFOLD", - "jax", - "0.4.25" - ] - ], - "zip": [ - - ] - } - ], - "timestamp": "2026-10-25T20:23:34.480521323", - "meta": { - "nf-test": "0.9.5", - "nextflow": "26.04.0" - } - }, - "proteomics - faa - stub": { - "content": [ - { - "a3m": [ - [ - { - "id": "test" - }, - "test.a3m:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "bibtex": [ - [ - { - "id": "test" - }, - "cite.bibtex:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "config": [ - [ - { - "id": "test" - }, - "config.json:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "json": [ - [ - { - "id": "test" - }, - "test_scores_rank_001_alphafold2_ptm_model_1_seed_000.json:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "log": [ - [ - { - "id": "test" - }, - "log.txt:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "npy": [ - - ], - "pae": [ - [ - { - "id": "test" - }, - "test_predicted_aligned_error_v1.json:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "pdb": [ - [ - { - "id": "test" - }, - "test_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "pickle": [ - - ], - "png": [ - [ - { - "id": "test" - }, - [ - "test_coverage.png:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_pae.png:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_plddt.png:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "templates": [ - - ], - "versions_colabfold": [ - [ - "COLABFOLD", - "colabfold", - "1.5.5" - ] - ], - "versions_cuda": [ - [ - "COLABFOLD", - "cuda", - "no CUDA available" - ] - ], - "versions_dm_haiku": [ - [ - "COLABFOLD", - "dm-haiku", - "0.0.12" - ] - ], - "versions_flax": [ - [ - "COLABFOLD", - "flax", - "0.8.2" - ] - ], - "versions_jax": [ - [ - "COLABFOLD", - "jax", - "0.4.25" - ] - ], - "zip": [ - - ] - } - ], - "timestamp": "2026-10-25T20:23:51.110561499", - "meta": { - "nf-test": "0.9.5", - "nextflow": "26.04.0" - } - } -} \ No newline at end of file From c34377fe4226eab9c87e47a1eec0e650bd9fba1b Mon Sep 17 00:00:00 2001 From: Bboy010 Date: Fri, 30 Oct 2026 21:17:05 +0000 Subject: [PATCH 6/6] colabfold: report pinned dm-haiku and flax in downloadmodels; no ontology for local_pdb - colabfold/downloadmodels: versions_dm_haiku and versions_flax emits, as in colabfold/colabfold (both are pinned in environment.yml). - colabfold/colabfold meta.yml: local_pdb is a directory, so `ontologies: []`. Co-Authored-By: Claude Opus 5.5 --- modules/nf-core/colabfold/colabfold/meta.yml | 3 +- .../nf-core/colabfold/downloadmodels/main.nf | 2 + .../nf-core/colabfold/downloadmodels/meta.yml | 38 +++++++++++++++++++ .../downloadmodels/tests/main.nf.test.snap | 16 +++++++- 4 files changed, 56 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/colabfold/colabfold/meta.yml b/modules/nf-core/colabfold/colabfold/meta.yml index befc08c59774..cf7dd22024f3 100644 --- a/modules/nf-core/colabfold/colabfold/meta.yml +++ b/modules/nf-core/colabfold/colabfold/meta.yml @@ -70,8 +70,7 @@ input: - local_pdb: type: directory description: Optional local mirror of the PDB mmCIF database, used for the templates in `pdb_hits` (`--local-pdb-path`) - ontologies: - - edam: http://edamontology.org/format_1477 # mmCIF + ontologies: [] output: pdb: - - meta: diff --git a/modules/nf-core/colabfold/downloadmodels/main.nf b/modules/nf-core/colabfold/downloadmodels/main.nf index 6f56490cf56e..b3f9566cf768 100644 --- a/modules/nf-core/colabfold/downloadmodels/main.nf +++ b/modules/nf-core/colabfold/downloadmodels/main.nf @@ -13,6 +13,8 @@ process COLABFOLD_DOWNLOADMODELS { output: tuple val(meta), path("weights"), emit: weights tuple val("${task.process}"), val('colabfold'), eval("python -c 'import importlib.metadata as m; print(m.version(\"colabfold\"))'"), topic: versions, emit: versions_colabfold + tuple val("${task.process}"), val('dm-haiku'), eval("python -c 'import importlib.metadata as m; print(m.version(\"dm-haiku\"))'"), topic: versions, emit: versions_dm_haiku + tuple val("${task.process}"), val('flax'), eval("python -c 'import importlib.metadata as m; print(m.version(\"flax\"))'"), topic: versions, emit: versions_flax when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/colabfold/downloadmodels/meta.yml b/modules/nf-core/colabfold/downloadmodels/meta.yml index 6754e449cf95..7d057f20ec77 100644 --- a/modules/nf-core/colabfold/downloadmodels/meta.yml +++ b/modules/nf-core/colabfold/downloadmodels/meta.yml @@ -50,6 +50,26 @@ output: - python -c 'import importlib.metadata as m; print(m.version("colabfold"))': type: eval description: The expression to obtain the version of the tool + versions_dm_haiku: + - - ${task.process}: + type: string + description: The name of the process + - dm-haiku: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("dm-haiku"))': + type: eval + description: The expression to obtain the version of the tool + versions_flax: + - - ${task.process}: + type: string + description: The name of the process + - flax: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("flax"))': + type: eval + description: The expression to obtain the version of the tool topics: versions: @@ -62,6 +82,24 @@ topics: - python -c 'import importlib.metadata as m; print(m.version("colabfold"))': type: eval description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - dm-haiku: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("dm-haiku"))': + type: eval + description: The expression to obtain the version of the tool + - - ${task.process}: + type: string + description: The name of the process + - flax: + type: string + description: The name of the tool + - python -c 'import importlib.metadata as m; print(m.version("flax"))': + type: eval + description: The expression to obtain the version of the tool authors: - "@Bboy010" diff --git a/modules/nf-core/colabfold/downloadmodels/tests/main.nf.test.snap b/modules/nf-core/colabfold/downloadmodels/tests/main.nf.test.snap index 5781e890a2e8..30f9d77a3c13 100644 --- a/modules/nf-core/colabfold/downloadmodels/tests/main.nf.test.snap +++ b/modules/nf-core/colabfold/downloadmodels/tests/main.nf.test.snap @@ -9,6 +9,20 @@ "1.5.5" ] ], + "versions_dm_haiku": [ + [ + "COLABFOLD_DOWNLOADMODELS", + "dm-haiku", + "0.0.12" + ] + ], + "versions_flax": [ + [ + "COLABFOLD_DOWNLOADMODELS", + "flax", + "0.8.2" + ] + ], "weights": [ [ { @@ -23,7 +37,7 @@ ] } ], - "timestamp": "2026-10-28T18:21:52.363563905", + "timestamp": "2026-10-30T21:14:44.287042728", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0"