xiaohongshu
xiaohongshu
clustermarkers
Finds differentially expressed genes (markers) for clusters of T/B cells using Seurat's FindMarkers function. Performs statistical testing between clusters, identifies cluster-defining genes, and automatically runs pathway enrichment analysis (via Enrichr) on significant markers. Generates public...
Full skill instructions
Finds differentially expressed genes (markers) for clusters of T/B cells using Seurat's FindMarkers function. Performs statistical testing between clusters, identifies cluster-defining genes, and automatically runs pathway enrichment analysis (via Enrichr) on significant markers. Generates publication-ready visualizations including volcano plots, dot plots, heatmaps, and enrichment plots.
[ClusterMarkers]
cache = true # Cache results for faster re-runs with different visualizations
[ClusterMarkers.in]
srtobj = ["SeuratClustering"] # Seurat object with cluster assignments
[ClusterMarkers.envs]
# Number of cores for parallel computation
ncores = 1 # int; Parallelize Seurat procedures
# Subset cells before marker finding (R expression)
subset = "seurat_clusters %in% c('c1', 'c2', 'c3')" # Optional
# Cache location for intermediate results
cache = "/tmp" # Path; Set to false to disable caching
# Assay to use for marker finding
assay = "RNA" # Default: uses active assay
# Error on no markers found
error = false # bool; If true, fail if no markers found
[ClusterMarkers.envs]
# Statistical test for differential expression
test.use = "wilcox" # Default
Available tests:
"wilcox": Wilcoxon rank sum test (default, fast)"wilcox_limma": Limma implementation (Seurat v4 compatibility)"MAST": GLM with cellular detection rate covariate (recommended)"DESeq2": Negative binomial model (robust, requires counts)"roc": ROC analysis (AUC-based classification)"t": Student's t-test"tobit": Tobit test for censored data"bimod": Likelihood-ratio test for bimodal expression"poisson": Poisson distribution (UMI datasets only)"negbinom": Negative binomial (UMI datasets only)"LR": Logistic regression (latent.vars supported)Test selection guidelines:
"wilcox" for speed and reliability"MAST" for single-cell-specific modeling"DESeq2" for rigorous statistical testing"negbinom" or "poisson" for count-based models"roc" for AUC-based marker ranking[ClusterMarkers.envs]
# Minimum log2 fold change threshold
logfc.threshold = 0.25 # float; Default: 0.25
# Minimum percentage of cells expressing gene
min.pct = 0.1 # float; Range: 0.0-1.0
# Minimum difference in detection percentage
min.diff.pct = -Inf # float; Default: no limit
# Only positive markers (higher in ident.1 group)
only.pos = false # bool; Default: false (both directions)
# Maximum cells per identity (downsampling)
max.cells.per.ident = Inf # int; No downsampling by default
# Minimum cells expressing gene (poisson/negbinom tests)
min.cells.feature = 3 # int
# Minimum cells per group
min.cells.group = 3 # int
Note: Use - to replace . in parameter names (e.g., logfc.threshold, not logfc.threshold)
[ClusterMarkers.envs]
# Filter markers for enrichment analysis (R expression)
sigmarkers = "p_val_adj < 0.05 & avg_log2FC > 0" # Default
# Variables available: p_val, avg_log2FC, pct.1, pct.2, p_val_adj
# Example: "p_val_adj < 0.05 & abs(avg_log2FC) > 1" (both directions)
[ClusterMarkers.envs]
# Databases for pathway enrichment
dbs = ["KEGG_2021_Human", "MSigDB_Hallmark_2020"] # Default
# Enrichment style
enrich_style = "enrichr" # Options: "enrichr", "clusterprofiler", "clusterProfiler"
Available databases (enrichit):
"KEGG_2021_Human", "KEGG": KEGG pathways"MSigDB_Hallmark_2020", "Hallmark": MSigDB Hallmark gene sets"GO_Biological_Process_2025": Gene Ontology Biological Process"GO_Cellular_Component_2025": Gene Ontology Cellular Component"GO_Molecular_Function_2025": Gene Ontology Molecular Function"Reactome_Pathways_2024", "Reactome": Reactome pathways"WikiPathways_2024_Human", "WikiPathways": WikiPathways"BioCarta_2016": BioCarta pathwaysMore databases: https://maayanlab.cloud/Enrichr/#libraries
[ClusterMarkers.envs]
# Marker plots configuration
marker_plots_defaults = {order_by = "desc(avg_log2FC)"}
# All markers plots (across clusters)
allmarker_plots = {"Top 10 markers of all clusters": {plot_type = "heatmap"}}
# Enrichment plots (all clusters)
allenrich_plots = {} # Empty by default
# Marker plots (per cluster)
marker_plots = {} # Default: volcano plots and dot plots
# Enrichment plots (per cluster)
enrich_plots = {} # Default: bar plot
# Overlap analysis (venn/upset)
overlaps = {} # Empty by default
https://satijalab.org/seurat/reference/findmarkers
https://maayanlab.cloud/Enrichr/#libraries
https://pwwang.github.io/biopipen/api/biopipen.ns.scrna/#biopipen.ns.scrna.MarkersFinder
[ClusterMarkers]
[ClusterMarkers.in]
srtobj = ["SeuratClustering"]
Result: Default wilcox test, standard thresholds, hallmark + KEGG enrichment
[ClusterMarkers]
[ClusterMarkers.in]
srtobj = ["SeuratClustering"]
[ClusterMarkers.envs]
test.use = "wilcox"
logfc.threshold = 0.25
min.pct = 0.1
sigmarkers = "p_val_adj < 0.05 & avg_log2FC > 0"
[ClusterMarkers]
[ClusterMarkers.in]
srtobj = ["SeuratClustering"]
[ClusterMarkers.envs]
test.use = "MAST"
logfc.threshold = 0.25
min.pct = 0.1
sigmarkers = "p_val_adj < 0.01 & abs(avg_log2FC) > 1"
ncores = 4
[ClusterMarkers]
[ClusterMarkers.in]
srtobj = ["SeuratClustering"]
[ClusterMarkers.envs]
test.use = "DESeq2"
logfc.threshold = 0.5 # More stringent
min.pct = 0.15
sigmarkers = "p_val_adj < 0.05 & avg_log2FC > 0.5"
Note: DESeq2 requires count data in the Seurat object
[ClusterMarkers.envs]
logfc.threshold = 0.58 # 1.5-fold change (2^0.58)
min.pct = 0.25 # Expressed in >25% cells
min.diff.pct = 0.1 # 10% difference in detection
only.pos = true # Positive markers only
sigmarkers = "p_val_adj < 0.01 & avg_log2FC > 1"
[ClusterMarkers.envs]
# Only analyze clusters c1, c2, c3 to save computation
subset = "seurat_clusters %in% c('c1', 'c2', 'c3')"
[ClusterMarkers.envs]
# Use different pathway databases
dbs = ["Reactome_Pathways_2024", "GO_Biological_Process_2025"]
enrich_style = "clusterprofiler"
[ClusterMarkers.envs]
only.pos = true
sigmarkers = "p_val_adj < 0.05 & avg_log2FC > 0"
[ClusterMarkers.envs]
max.cells.per.ident = 5000 # Limit to 5000 cells per cluster
random.seed = 42 # Reproducible downsampling
[ClusterMarkers]
[ClusterMarkers.in]
srtobj = ["SeuratClustering"]
Use case: Initial exploration, speed priority
[ClusterMarkers]
[ClusterMarkers.in]
srtobj = ["SeuratClustering"]
[ClusterMarkers.envs]
test.use = "MAST"
logfc.threshold = 0.25
min.pct = 0.1
ncores = 8
Use case: Single-cell publication, accounts for detection rate
[ClusterMarkers.envs]
only.pos = false
sigmarkers = "p_val_adj < 0.05 & abs(avg_log2FC) > 0.5"
Use case: Find genes upregulated and downregulated in each cluster
[ClusterMarkers.envs]
logfc.threshold = 1.0 # 2-fold change
min.pct = 0.3
sigmarkers = "p_val_adj < 0.001 & avg_log2FC > 1"
only.pos = true
Use case: High-confidence cluster markers for annotation
[ClusterMarkers.envs]
dbs = [
"KEGG_2021_Human",
"MSigDB_Hallmark_2020",
"GO_Biological_Process_2025",
"Reactome_Pathways_2024"
]
enrich_style = "enrichr"
[ClusterMarkers.envs]
test.use = "roc"
logfc.threshold = 0.1
sigmarkers = "p_val_adj < 0.05 & avg_log2FC > 0"
Use case: Find markers with highest AUC for classification
SeuratClustering (provides cluster assignments)SeuratSubClustering (if sub-clustering analysis)TOrBCellSelection if T/B cell selection is enabledtest.use must be one of: wilcox, wilcox_limma, MAST, DESeq2, roc, t, tobit, bimod, poisson, negbinom, LRlatent.vars for additional covariateslogfc.threshold: ≥ 0 (typical range: 0.1-1.0)min.pct: 0.0-1.0 (typical: 0.1-0.3)min.diff.pct: ≥ -Inf (typical: 0.05-0.2)min.cells.feature: ≥ 1 (default: 3)min.cells.group: ≥ 1 (default: 3)& for AND, | for OR, ! for NOTdbs must be valid enrichit database names or GMT file pathsSymptoms: Thousands of markers, low statistical power
Solutions:
[ClusterMarkers.envs]
logfc.threshold = 0.5 # Increase fold change threshold
min.pct = 0.25 # Increase expression percentage
min.diff.pct = 0.15 # Increase detection difference
sigmarkers = "p_val_adj < 0.01 & avg_log2FC > 1" # Stricter filter
Symptoms: Empty marker tables, no enrichment results
Solutions:
[ClusterMarkers.envs]
logfc.threshold = 0.1 # Lower threshold
min.pct = 0.05 # Lower expression requirement
min.diff.pct = -Inf # Remove detection difference
sigmarkers = "p_val_adj < 0.1 & avg_log2FC > 0.1" # Looser filter
Symptoms: Marker finding takes hours
Solutions:
[ClusterMarkers.envs]
ncores = 8 # Use more cores
logfc.threshold = 0.5 # Higher threshold reduces genes tested
max.cells.per.ident = 5000 # Downsample large clusters
Symptoms: DESeq2 error on integrated Seurat object
Cause: DESeq2 requires count data, integrated objects have empty counts slot
Solution:
# Use SCTransform counts instead of integrated data
[SeuratPreparing.envs]
method = "SCTransform"
integration_method = null # Skip integration for DESeq2
[ClusterMarkers.envs]
test.use = "DESeq2"
Alternative: Use MAST or wilcox on integrated data
Symptoms: Empty enrichment tables/plots
Solutions:
[ClusterMarkers.envs]
# Check sigmarkers filter is too strict
sigmarkers = "p_val_adj < 0.1 & avg_log2FC > 0"
# Add more databases
dbs = ["KEGG_2021_Human", "MSigDB_Hallmark_2020", "Reactome_Pathways_2024"]
Symptoms: Some markers have NA p-values
Cause: Insufficient cells per group or low expression variance
Solutions:
[ClusterMarkers.envs]
min.cells.group = 10 # Increase minimum cells
min.cells.feature = 5 # Increase minimum expressing cells
Symptoms: wilcox and MAST return nearly identical gene lists
Cause: Strong markers are robust across methods
Solution: Use ROC analysis for alternative ranking:
[ClusterMarkers.envs]
test.use = "roc"
Symptoms: Enrichment step takes very long
Solutions:
[ClusterMarkers.envs]
# Limit markers for enrichment
sigmarkers = "p_val_adj < 0.01 & avg_log2FC > 1"
# Use fewer databases
dbs = ["MSigDB_Hallmark_2020"]
# Subset clusters for analysis
subset = "seurat_clusters %in% c('c1', 'c2')"
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience