# Bioconductor Condiments

This package encapsulate many functions to conduct a differential topology analysis.

- Repository: https://github.com/bioMate-AI/biomate-bioconductor-kb (793 stars)
- Category: Data and ML
- License: see repository
- Last updated: 2026-06-20
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add bioMate-AI/biomate-bioconductor-kb --skill bioconductor-condiments -g -a claude-code -y`
Codex: `npx skills add bioMate-AI/biomate-bioconductor-kb --skill bioconductor-condiments -g -a codex -y`
Cursor: `npx skills add bioMate-AI/biomate-bioconductor-kb --skill bioconductor-condiments -g -a cursor -y`
Gemini CLI: `npx skills add bioMate-AI/biomate-bioconductor-kb --skill bioconductor-condiments -g -a gemini-cli -y`

## Description

This package encapsulate many functions to conduct a differential topology analysis. It focuses on analyzing an 'omic dataset with multiple conditions. While the package is mostly geared toward scRNASeq, it does not place any restriction on the actual input format.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# condiments

## Workflows

### Standard Workflow

Perform differential topology, progression, and fate selection analysis on single-cell data across multiple conditions.

```r
library(condiments)
library(slingshot)
library(dplyr)

# Load toy dataset
data("toy_dataset", package = "condiments")
df <- toy_dataset$sd

# 1. Compute imbalance scores
scores <- imbalance_score(
  Object = df %>% select(Dim1, Dim2) %>% as.matrix(),
  conditions = df$conditions
)
df$scores <- scores$scores
df$scaled_scores <- scores$scaled_scores

# 2. Infer a common trajectory using slingshot
rd <- as.matrix(df[, c("Dim1", "Dim2")])
sds <- slingshot(rd, df$cl)

# 3. Test trajectory topology
top_res <- topologyTest(sds = sds, conditions = df$conditions, rep = 10)

# 4. Test for differential progression along lineages
prog_res <- progressionTest(sds, conditions = df$conditions, global = TRUE, lineages = TRUE)

# 5. Test for differential fate selection between lineages
dif_res <- fateSelectionTest(sds, conditions = df$conditions, global = FALSE, pairwise = TRUE)
```
*Note on inputs/outputs:* Input is a cell metadata data frame containing reduced dimensions and condition assignments; outputs are statistical test tables assessing differences in topology, progression, and fate selection between conditions.

## When to Use
- **Differential Topology Analysis:** Determine if a common trajectory can be fitted across conditions or if separate trajectories are required using `topologyTest`.
- **Differential Progression Analysis:** Test if cells from different conditions are equally represented along pseudotime within a lineage using `progressionTest`.
- **Differential Fate Selection:** Assess whether cells differentiate preferentially along specific lineages across different conditions using `fateSelectionTest`.
- **Imbalance Score Estimation:** Identify regions of local condition imbalance in a reduced dimensional space using `imbalance_score`.

The rest: https://github.com/bioMate-AI/biomate-bioconductor-kb/blob/HEAD/skills/transcriptomics/condiments/SKILL.md
