DepMap — Cancer Dependency Map

Query the Cancer Dependency Map (DepMap) for cancer cell line gene dependency scores (CRISPR Chronos), drug sensitivity data, and gene effect profiles.

How to use it

  1. Hit Copy SKILL.md — or use the Claude Code line below to get every file.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit K-Dense-AI/scientific-agent-skills/skills/depmap#main ~/.claude/skills/depmap

For one project only, change the path to .claude/skills/depmap. This skill also uses response.json — copying SKILL.md alone won't be enough. See the folder on GitHub.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text302 lines
depmap/SKILL.md302 lines11.0 KBpushed 57d agoRawView on GitHub

DepMap — Cancer Dependency Map

Overview

The Cancer Dependency Map (DepMap) project, run by the Broad Institute, systematically characterizes genetic dependencies across hundreds of cancer cell lines using genome-wide CRISPR knockout screens (DepMap CRISPR), RNA interference (RNAi), and compound sensitivity assays (PRISM). DepMap data is essential for:

  • Identifying which genes are essential for specific cancer types
  • Finding cancer-selective dependencies (therapeutic targets)
  • Validating oncology drug targets
  • Discovering synthetic lethal interactions

Key resources:

When to Use This Skill

Use DepMap when:

  • Target validation: Is a gene essential for survival in cancer cell lines with a specific mutation (e.g., KRAS-mutant)?
  • Biomarker discovery: What genomic features predict sensitivity to knockout of a gene?
  • Synthetic lethality: Find genes that are selectively essential when another gene is mutated/deleted
  • Drug sensitivity: What cell line features predict response to a compound?
  • Pan-cancer essentiality: Is a gene broadly essential across all cancer types (bad target) or selectively essential?
  • Correlation analysis: Which pairs of genes have correlated dependency profiles (co-essentiality)?

Core Concepts

Dependency Scores

Score Range Meaning
Chronos (CRISPR) ~ -3 to 0+ More negative = more essential. Common essential threshold: −1. Pan-essential genes ~−1 to −2
RNAi DEMETER2 ~ -3 to 0+ Similar scale to Chronos
Gene Effect normalized Normalized Chronos; −1 = median effect of common essential genes

Key thresholds:

  • Chronos ≤ −0.5: likely dependent
  • Chronos ≤ −1: strongly dependent (common essential range)

Cell Line Annotations

Each cell line has:

  • DepMap_ID: unique identifier (e.g., ACH-000001)
  • cell_line_name: human-readable name
  • primary_disease: cancer type
  • lineage: broad tissue lineage
  • lineage_subtype: specific subtype

Core Capabilities

1. DepMap API

import requests
import pandas as pd

BASE_URL = "https://depmap.org/portal/api"

def depmap_get(endpoint, params=None):
    url = f"{BASE_URL}/{endpoint}"
    response = requests.get(url, params=params)
    response.raise_for_status()
    return response.json()

2. Gene Dependency Scores

def get_gene_dependency(gene_symbol, dataset="Chronos_Combined"):
    """Get CRISPR dependency scores for a gene across all cell lines."""
    url = f"{BASE_URL}/gene"
    params = {
        "gene_id": gene_symbol,
        "dataset": dataset
    }
    response = requests.get(url, params=params)
    return response.json()

# Alternatively, use the /data endpoint:
def get_dependencies_slice(gene_symbol, dataset_name="CRISPRGeneEffect"):
    """Get a gene's dependency slice from a dataset."""
    url = f"{BASE_URL}/data/gene_dependency"
    params = {"gene_name": gene_symbol, "dataset_name": dataset_name}
    response = requests.get(url, params=params)
    data = response.json()
    return data

3. Download-Based Analysis (Recommended for Large Queries)

For large-scale analysis, download DepMap data files and analyze locally:

import pandas as pd
import requests, os

def download_depmap_data(url, output_path):
    """Download a DepMap data file."""
    response = requests.get(url, stream=True)
    with open(output_path, 'wb') as f:
        for chunk in response.iter_content(chunk_size=8192):
            f.write(chunk)

# DepMap 24Q4 data files (update version as needed)
FILES = {
    "crispr_gene_effect": "https://figshare.com/ndownloader/files/...",
    # OR download from: https://depmap.org/portal/download/all/
    # Files available:
    # CRISPRGeneEffect.csv - Chronos gene effect scores
    # OmicsExpressionProteinCodingGenesTPMLogp1.csv - mRNA expression
    # OmicsSomaticMutationsMatrixDamaging.csv - mutation binary matrix
    # OmicsCNGene.csv - copy number
    # sample_info.csv - cell line metadata
}

def load_depmap_gene_effect(filepath="CRISPRGeneEffect.csv"):
    """
    Load DepMap CRISPR gene effect matrix.
    Rows = cell lines (DepMap_ID), Columns = genes (Symbol (EntrezID))
    """
    df = pd.read_csv(filepath, index_col=0)
    # Rename columns to gene symbols only
    df.columns = [col.split(" ")[0] for col in df.columns]
    return df

def load_cell_line_info(filepath="sample_info.csv"):
    """Load cell line metadata."""
    return pd.read_csv(filepath)

4. Identifying Selective Dependencies

import numpy as np
import pandas as pd

def find_selective_dependencies(gene_effect_df, cell_line_info, target_gene,
                                 cancer_type=None, threshold=-0.5):
    """Find cell lines selectively dependent on a gene."""

    # Get scores for target gene
    if target_gene not in gene_effect_df.columns:
        return None

    scores = gene_effect_df[target_gene].dropna()
    dependent = scores[scores <= threshold]

    # Add cell line info
    result = pd.DataFrame({
        "DepMap_ID": dependent.index,
        "gene_effect": dependent.values
    }).merge(cell_line_info[["DepMap_ID", "cell_line_name", "primary_disease", "lineage"]])

    if cancer_type:
        result = result[result["primary_disease"].str.contains(cancer_type, case=False, na=False)]

    return result.sort_values("gene_effect")

# Example usage (after loading data)
# df_effect = load_depmap_gene_effect("CRISPRGeneEffect.csv")
# cell_info = load_cell_line_info("sample_info.csv")
# deps = find_selective_dependencies(df_effect, cell_info, "KRAS", cancer_type="Lung")

5. Biomarker Analysis (Gene Effect vs. Mutation)

import pandas as pd
from scipy import stats

def biomarker_analysis(gene_effect_df, mutation_df, target_gene, biomarker_gene):
    """
    Test if mutation in biomarker_gene predicts dependency on target_gene.

    Args:
        gene_effect_df: CRISPR gene effect DataFrame
        mutation_df: Binary mutation DataFrame (1 = mutated)
        target_gene: Gene to assess dependency of
        biomarker_gene: Gene whose mutation may predict dependency
    """
    if target_gene not in gene_effect_df.columns or biomarker_gene not in mutation_df.columns:
        return None

    # Align cell lines
    common_lines = gene_effect_df.index.intersection(mutation_df.index)
    scores = gene_effect_df.loc[common_lines, target_gene].dropna()
    mutations = mutation_df.loc[scores.index, biomarker_gene]

    mutated = scores[mutations == 1]
    wt = scores[mutations == 0]

    stat, pval = stats.mannwhitneyu(mutated, wt, alternative='less')

    return {
        "target_gene": target_gene,
        "biomarker_gene": biomarker_gene,
        "n_mutated": len(mutated),
        "n_wt": len(wt),
        "mean_effect_mutated": mutated.mean(),
        "mean_effect_wt": wt.mean(),
        "pval": pval,
        "significant": pval < 0.05
    }

6. Co-Essentiality Analysis

import pandas as pd

def co_essentiality(gene_effect_df, target_gene, top_n=20):
    """Find genes with most correlated dependency profiles (co-essential partners)."""
    if target_gene not in gene_effect_df.columns:
        return None

    target_scores = gene_effect_df[target_gene].dropna()

    correlations = {}
    for gene in gene_effect_df.columns:
        if gene == target_gene:
            continue
        other_scores = gene_effect_df[gene].dropna()
        common = target_scores.index.intersection(other_scores.index)
        if len(common) < 50:
            continue
        r = target_scores[common].corr(other_scores[common])
        if not pd.isna(r):
            correlations[gene] = r

    corr_series = pd.Series(correlations).sort_values(ascending=False)
    return corr_series.head(top_n)

# Co-essential genes often share biological complexes or pathways

Query Workflows

Workflow 1: Target Validation for a Cancer Type

  1. Download CRISPRGeneEffect.csv and sample_info.csv
  2. Filter cell lines by cancer type
  3. Compute mean gene effect for target gene in cancer vs. all others
  4. Calculate selectivity: how specific is the dependency to your cancer type?
  5. Cross-reference with mutation, expression, or CNA data as biomarkers

Workflow 2: Synthetic Lethality Screen

  1. Identify cell lines with mutation/deletion in gene of interest (e.g., BRCA1-mutant)
  2. Compute gene effect scores for all genes in mutant vs. WT lines
  3. Identify genes significantly more essential in mutant lines (synthetic lethal partners)
  4. Filter by selectivity and effect size

Workflow 3: Compound Sensitivity Analysis

  1. Download PRISM compound sensitivity data (primary-screen-replicate-treatment-info.csv)
  2. Correlate compound AUC/log2(fold-change) with genomic features
  3. Identify predictive biomarkers for compound sensitivity

DepMap Data Files Reference

File Description
CRISPRGeneEffect.csv CRISPR Chronos gene effect (primary dependency data)
CRISPRGeneEffectUnscaled.csv Unscaled CRISPR scores
RNAi_merged.csv DEMETER2 RNAi dependency
sample_info.csv Cell line metadata (lineage, disease, etc.)
OmicsExpressionProteinCodingGenesTPMLogp1.csv mRNA expression
OmicsSomaticMutationsMatrixDamaging.csv Damaging somatic mutations (binary)
OmicsCNGene.csv Copy number per gene
PRISM_Repurposing_Primary_Screens_Data.csv Drug sensitivity (repurposing library)

Download all files from: https://depmap.org/portal/download/all/

Best Practices

  • Use Chronos scores (not DEMETER2) for current CRISPR analyses — better controlled for cutting efficiency
  • Distinguish pan-essential from cancer-selective: Target genes with low variance (essential in all lines) are poor drug targets
  • Validate with expression data: A gene not expressed in a cell line will score as non-essential regardless of actual function
  • Use DepMap ID for cell line identification — cell_line_name can be ambiguous
  • Account for copy number: Amplified genes may appear essential due to copy number effect (junk DNA hypothesis)
  • Multiple testing correction: When computing biomarker associations genome-wide, apply FDR correction

Additional Resources

1---
2name: depmap
3description: Query the Cancer Dependency Map (DepMap) for cancer cell line gene dependency scores (CRISPR Chronos), drug sensitivity data, and gene effect profiles. Use for identifying cancer-specific vulnerabilities, synthetic lethal interactions, and validating oncology drug targets.
4license: CC-BY-4.0
5metadata:
6 version: "1.0"
7 skill-author: Kuan-lin Huang
8---
9 
10# DepMap — Cancer Dependency Map
11 
12## Overview
13 
14The Cancer Dependency Map (DepMap) project, run by the Broad Institute, systematically characterizes genetic dependencies across hundreds of cancer cell lines using genome-wide CRISPR knockout screens (DepMap CRISPR), RNA interference (RNAi), and compound sensitivity assays (PRISM). DepMap data is essential for:
15- Identifying which genes are essential for specific cancer types
16- Finding cancer-selective dependencies (therapeutic targets)
17- Validating oncology drug targets
18- Discovering synthetic lethal interactions
19 
20**Key resources:**
21- DepMap Portal: https://depmap.org/portal/
22- DepMap data downloads: https://depmap.org/portal/download/all/
23- Python package: `depmap` (or access via API/downloads)
24- API: https://depmap.org/portal/api/
25 
26## When to Use This Skill
27 
28Use DepMap when:
29 
30- **Target validation**: Is a gene essential for survival in cancer cell lines with a specific mutation (e.g., KRAS-mutant)?
31- **Biomarker discovery**: What genomic features predict sensitivity to knockout of a gene?
32- **Synthetic lethality**: Find genes that are selectively essential when another gene is mutated/deleted
33- **Drug sensitivity**: What cell line features predict response to a compound?
34- **Pan-cancer essentiality**: Is a gene broadly essential across all cancer types (bad target) or selectively essential?
35- **Correlation analysis**: Which pairs of genes have correlated dependency profiles (co-essentiality)?
36 
37## Core Concepts
38 
39### Dependency Scores
40 
41| Score | Range | Meaning |
42|-------|-------|---------|
43| **Chronos** (CRISPR) | ~ -3 to 0+ | More negative = more essential. Common essential threshold: −1. Pan-essential genes ~−1 to −2 |
44| **RNAi DEMETER2** | ~ -3 to 0+ | Similar scale to Chronos |
45| **Gene Effect** | normalized | Normalized Chronos; −1 = median effect of common essential genes |
46 
47**Key thresholds:**
48- Chronos ≤ −0.5: likely dependent
49- Chronos ≤ −1: strongly dependent (common essential range)
50 
51### Cell Line Annotations
52 
53Each cell line has:
54- `DepMap_ID`: unique identifier (e.g., `ACH-000001`)
55- `cell_line_name`: human-readable name
56- `primary_disease`: cancer type
57- `lineage`: broad tissue lineage
58- `lineage_subtype`: specific subtype
59 
60## Core Capabilities
61 
62### 1. DepMap API
63 
64```python
65import requests
66import pandas as pd
67 
68BASE_URL = "https://depmap.org/portal/api"
69 
70def depmap_get(endpoint, params=None):
71 url = f"{BASE_URL}/{endpoint}"
72 response = requests.get(url, params=params)
73 response.raise_for_status()
74 return response.json()
75```
76 
77### 2. Gene Dependency Scores
78 
79```python
80def get_gene_dependency(gene_symbol, dataset="Chronos_Combined"):
81 """Get CRISPR dependency scores for a gene across all cell lines."""
82 url = f"{BASE_URL}/gene"
83 params = {
84 "gene_id": gene_symbol,
85 "dataset": dataset
86 }
87 response = requests.get(url, params=params)
88 return response.json()
89 
90# Alternatively, use the /data endpoint:
91def get_dependencies_slice(gene_symbol, dataset_name="CRISPRGeneEffect"):
92 """Get a gene's dependency slice from a dataset."""
93 url = f"{BASE_URL}/data/gene_dependency"
94 params = {"gene_name": gene_symbol, "dataset_name": dataset_name}
95 response = requests.get(url, params=params)
96 data = response.json()
97 return data
98```
99 
100### 3. Download-Based Analysis (Recommended for Large Queries)
101 
102For large-scale analysis, download DepMap data files and analyze locally:
103 
104```python
105import pandas as pd
106import requests, os
107 
108def download_depmap_data(url, output_path):
109 """Download a DepMap data file."""
110 response = requests.get(url, stream=True)
111 with open(output_path, 'wb') as f:
112 for chunk in response.iter_content(chunk_size=8192):
113 f.write(chunk)
114 
115# DepMap 24Q4 data files (update version as needed)
116FILES = {
117 "crispr_gene_effect": "https://figshare.com/ndownloader/files/...",
118 # OR download from: https://depmap.org/portal/download/all/
119 # Files available:
120 # CRISPRGeneEffect.csv - Chronos gene effect scores
121 # OmicsExpressionProteinCodingGenesTPMLogp1.csv - mRNA expression
122 # OmicsSomaticMutationsMatrixDamaging.csv - mutation binary matrix
123 # OmicsCNGene.csv - copy number
124 # sample_info.csv - cell line metadata
125}
126 
127def load_depmap_gene_effect(filepath="CRISPRGeneEffect.csv"):
128 """
129 Load DepMap CRISPR gene effect matrix.
130 Rows = cell lines (DepMap_ID), Columns = genes (Symbol (EntrezID))
131 """
132 df = pd.read_csv(filepath, index_col=0)
133 # Rename columns to gene symbols only
134 df.columns = [col.split(" ")[0] for col in df.columns]
135 return df
136 
137def load_cell_line_info(filepath="sample_info.csv"):
138 """Load cell line metadata."""
139 return pd.read_csv(filepath)
140```
141 
142### 4. Identifying Selective Dependencies
143 
144```python
145import numpy as np
146import pandas as pd
147 
148def find_selective_dependencies(gene_effect_df, cell_line_info, target_gene,
149 cancer_type=None, threshold=-0.5):
150 """Find cell lines selectively dependent on a gene."""
151 
152 # Get scores for target gene
153 if target_gene not in gene_effect_df.columns:
154 return None
155 
156 scores = gene_effect_df[target_gene].dropna()
157 dependent = scores[scores <= threshold]
158 
159 # Add cell line info
160 result = pd.DataFrame({
161 "DepMap_ID": dependent.index,
162 "gene_effect": dependent.values
163 }).merge(cell_line_info[["DepMap_ID", "cell_line_name", "primary_disease", "lineage"]])
164 
165 if cancer_type:
166 result = result[result["primary_disease"].str.contains(cancer_type, case=False, na=False)]
167 
168 return result.sort_values("gene_effect")
169 
170# Example usage (after loading data)
171# df_effect = load_depmap_gene_effect("CRISPRGeneEffect.csv")
172# cell_info = load_cell_line_info("sample_info.csv")
173# deps = find_selective_dependencies(df_effect, cell_info, "KRAS", cancer_type="Lung")
174```
175 
176### 5. Biomarker Analysis (Gene Effect vs. Mutation)
177 
178```python
179import pandas as pd
180from scipy import stats
181 
182def biomarker_analysis(gene_effect_df, mutation_df, target_gene, biomarker_gene):
183 """
184 Test if mutation in biomarker_gene predicts dependency on target_gene.
185 
186 Args:
187 gene_effect_df: CRISPR gene effect DataFrame
188 mutation_df: Binary mutation DataFrame (1 = mutated)
189 target_gene: Gene to assess dependency of
190 biomarker_gene: Gene whose mutation may predict dependency
191 """
192 if target_gene not in gene_effect_df.columns or biomarker_gene not in mutation_df.columns:
193 return None
194 
195 # Align cell lines
196 common_lines = gene_effect_df.index.intersection(mutation_df.index)
197 scores = gene_effect_df.loc[common_lines, target_gene].dropna()
198 mutations = mutation_df.loc[scores.index, biomarker_gene]
199 
200 mutated = scores[mutations == 1]
201 wt = scores[mutations == 0]
202 
203 stat, pval = stats.mannwhitneyu(mutated, wt, alternative='less')
204 
205 return {
206 "target_gene": target_gene,
207 "biomarker_gene": biomarker_gene,
208 "n_mutated": len(mutated),
209 "n_wt": len(wt),
210 "mean_effect_mutated": mutated.mean(),
211 "mean_effect_wt": wt.mean(),
212 "pval": pval,
213 "significant": pval < 0.05
214 }
215```
216 
217### 6. Co-Essentiality Analysis
218 
219```python
220import pandas as pd
221 
222def co_essentiality(gene_effect_df, target_gene, top_n=20):
223 """Find genes with most correlated dependency profiles (co-essential partners)."""
224 if target_gene not in gene_effect_df.columns:
225 return None
226 
227 target_scores = gene_effect_df[target_gene].dropna()
228 
229 correlations = {}
230 for gene in gene_effect_df.columns:
231 if gene == target_gene:
232 continue
233 other_scores = gene_effect_df[gene].dropna()
234 common = target_scores.index.intersection(other_scores.index)
235 if len(common) < 50:
236 continue
237 r = target_scores[common].corr(other_scores[common])
238 if not pd.isna(r):
239 correlations[gene] = r
240 
241 corr_series = pd.Series(correlations).sort_values(ascending=False)
242 return corr_series.head(top_n)
243 
244# Co-essential genes often share biological complexes or pathways
245```
246 
247## Query Workflows
248 
249### Workflow 1: Target Validation for a Cancer Type
250 
2511. Download `CRISPRGeneEffect.csv` and `sample_info.csv`
2522. Filter cell lines by cancer type
2533. Compute mean gene effect for target gene in cancer vs. all others
2544. Calculate selectivity: how specific is the dependency to your cancer type?
2555. Cross-reference with mutation, expression, or CNA data as biomarkers
256 
257### Workflow 2: Synthetic Lethality Screen
258 
2591. Identify cell lines with mutation/deletion in gene of interest (e.g., BRCA1-mutant)
2602. Compute gene effect scores for all genes in mutant vs. WT lines
2613. Identify genes significantly more essential in mutant lines (synthetic lethal partners)
2624. Filter by selectivity and effect size
263 
264### Workflow 3: Compound Sensitivity Analysis
265 
2661. Download PRISM compound sensitivity data (`primary-screen-replicate-treatment-info.csv`)
2672. Correlate compound AUC/log2(fold-change) with genomic features
2683. Identify predictive biomarkers for compound sensitivity
269 
270## DepMap Data Files Reference
271 
272| File | Description |
273|------|-------------|
274| `CRISPRGeneEffect.csv` | CRISPR Chronos gene effect (primary dependency data) |
275| `CRISPRGeneEffectUnscaled.csv` | Unscaled CRISPR scores |
276| `RNAi_merged.csv` | DEMETER2 RNAi dependency |
277| `sample_info.csv` | Cell line metadata (lineage, disease, etc.) |
278| `OmicsExpressionProteinCodingGenesTPMLogp1.csv` | mRNA expression |
279| `OmicsSomaticMutationsMatrixDamaging.csv` | Damaging somatic mutations (binary) |
280| `OmicsCNGene.csv` | Copy number per gene |
281| `PRISM_Repurposing_Primary_Screens_Data.csv` | Drug sensitivity (repurposing library) |
282 
283Download all files from: https://depmap.org/portal/download/all/
284 
285## Best Practices
286 
287- **Use Chronos scores** (not DEMETER2) for current CRISPR analyses — better controlled for cutting efficiency
288- **Distinguish pan-essential from cancer-selective**: Target genes with low variance (essential in all lines) are poor drug targets
289- **Validate with expression data**: A gene not expressed in a cell line will score as non-essential regardless of actual function
290- **Use DepMap ID** for cell line identification — cell_line_name can be ambiguous
291- **Account for copy number**: Amplified genes may appear essential due to copy number effect (junk DNA hypothesis)
292- **Multiple testing correction**: When computing biomarker associations genome-wide, apply FDR correction
293 
294## Additional Resources
295 
296- **DepMap Portal**: https://depmap.org/portal/
297- **Data downloads**: https://depmap.org/portal/download/all/
298- **DepMap paper**: Behan FM et al. (2019) Nature. PMID: 30971826
299- **Chronos paper**: Dempster JM et al. (2021) Nature Methods. PMID: 34349281
300- **GitHub**: https://github.com/broadinstitute/depmap-portal
301- **Figshare**: https://figshare.com/articles/dataset/DepMap_24Q4_Public/27993966
302 

Discussion

Alternatives

Also in Genomics & omics
AnndataData structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.Science · MITArboretoInfer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.Science · MITBiopython: Computational Molecular Biology in PythonComprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.Science · MITBulk rnaseqEnd-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g. "analyze my RNA-seq", "FASTQ to DESeq2", "run nf-core/rnaseq", "STAR/Salmon quantification", "build a counts matrix for DESeq2", or "go from reads to differentially expressed genes and enriched pathways". Routes between an nf-core/rnaseq (Nextflow) path and a standalone STAR/Salmon path, and covers experimental design, strandedness, and QC gates. For single-cell RNA-seq use the scanpy skill instead.Science · MIT