Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

* Added `ARI_batch` and `NMI_batch` to `metrics/clustering_overlap` (PR #68).

* Added `methods/bbknn_ts` component (PR #84).
* Added `methods/era_combat_bbknn` component (PR #84).

* Added `metrics/cilisi` new metric component (PR #57).
- ciLISI measures batch mixing in a cell type-aware manner by computing iLISI within each cell type and normalizing
Expand Down
54 changes: 0 additions & 54 deletions src/methods/bbknn_ts/config.vsh.yaml

This file was deleted.

248 changes: 0 additions & 248 deletions src/methods/bbknn_ts/script.py

This file was deleted.

64 changes: 64 additions & 0 deletions src/methods/era_combat_bbknn/config.vsh.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
__merge__: ../../api/comp_method.yaml

name: era_combat_bbknn
label: ERA ComBat + BBKNN
summary: "A combination of ComBat and BBKNN discovered and implemented by the ERA AI system."
description: |
Standard scRNA-seq preprocessing steps are applied to the raw counts, including
total count normalization, log-transformation and scaling of the gene expression
data. Batch effect correction is performed using `scanpy.pp.combat` directly on the
gene expression matrix (before dimensionality reduction). Dimensionality reduction
is then applied using PCA on the ComBat-corrected data, and this PCA embedding is
returned as the integrated embedding.

A custom batch-aware nearest neighbors graph is constructed based on this integrated
embedding: for each cell, neighbors are independently identified within its own batch
and other batches, up to `n_neighbors_per_batch`. These candidate neighbors are
merged and the top `total_k_neighbors` are selected for each cell. Finally, a
symmetric sparse distance matrix and a binary connectivities matrix are generated to
represent the integrated neighborhood graph.

The integration was devised by the AI system described in the associated
publication. The original implementation was rewritten to fit the component
structure, but produces the same embedding and graph.
references:
# Aygün, E., Belyaeva, A., Comanici, G. et al.
# An AI system to help scientists write expert-level empirical software.
# Nature 654, 909-916 (2026). https://doi.org/10.1038/s41586-026-10658-6
doi: 10.1038/s41586-026-10658-6
links:
documentation: https://google-research.github.io/era/
repository: https://github.com/google-research/era

info:
method_types: [embedding, graph]
preferred_normalization: counts

arguments:
- name: "--n_pca_components"
type: "integer"
default: 100
description: "Number of PCA components."
- name: "--n_neighbors_per_batch"
type: "integer"
default: 10
description: "Number of neighbors to use within each batch."
- name: "--total_k_neighbors"
type: "integer"
default: 50
description: "Total number of nearest neighbors to retain for the final graph."

resources:
- type: python_script
path: script.py
- path: /src/utils/read_anndata_partial.py

engines:
- type: docker
image: openproblems/base_python:1

runners:
- type: executable
- type: nextflow
directives:
label: [hightime, highmem, midcpu]
Loading