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
- Hit Copy SKILL.md — or use the Claude Code line below to get every file.
- 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. - Describe your job in plain words. The AI follows the skill from there.
npx degit K-Dense-AI/scientific-agent-skills/skills/depmap#main ~/.claude/skills/depmapFor 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.
Paste into Claude, ChatGPT or Cursor.
Show the full text302 lines
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:
- DepMap Portal: https://depmap.org/portal/
- DepMap data downloads: https://depmap.org/portal/download/all/
- Python package:
depmap(or access via API/downloads) - API: https://depmap.org/portal/api/
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 nameprimary_disease: cancer typelineage: broad tissue lineagelineage_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
- Download
CRISPRGeneEffect.csvandsample_info.csv - Filter cell lines by cancer type
- Compute mean gene effect for target gene in cancer vs. all others
- Calculate selectivity: how specific is the dependency to your cancer type?
- Cross-reference with mutation, expression, or CNA data as biomarkers
Workflow 2: Synthetic Lethality Screen
- Identify cell lines with mutation/deletion in gene of interest (e.g., BRCA1-mutant)
- Compute gene effect scores for all genes in mutant vs. WT lines
- Identify genes significantly more essential in mutant lines (synthetic lethal partners)
- Filter by selectivity and effect size
Workflow 3: Compound Sensitivity Analysis
- Download PRISM compound sensitivity data (
primary-screen-replicate-treatment-info.csv) - Correlate compound AUC/log2(fold-change) with genomic features
- 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
- DepMap Portal: https://depmap.org/portal/
- Data downloads: https://depmap.org/portal/download/all/
- DepMap paper: Behan FM et al. (2019) Nature. PMID: 30971826
- Chronos paper: Dempster JM et al. (2021) Nature Methods. PMID: 34349281
- GitHub: https://github.com/broadinstitute/depmap-portal
- Figshare: https://figshare.com/articles/dataset/DepMap_24Q4_Public/27993966
| 1 | |
| 2 | name depmap |
| 3 | description 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. |
| 4 | license CC-BY-4.0 |
| 5 | metadata |
| 6 | version "1.0" |
| 7 | skill-author Kuan-lin Huang |
| 8 | |
| 9 | |
| 10 | # DepMap — Cancer Dependency Map |
| 11 | |
| 12 | ## Overview |
| 13 | |
| 14 | 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: |
| 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 | |
| 28 | Use 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 | |
| 53 | Each 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 | |
| 65 | import requests |
| 66 | import pandas as pd |
| 67 | |
| 68 | BASE_URL = "https://depmap.org/portal/api" |
| 69 | |
| 70 | def 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 | |
| 80 | def 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: |
| 91 | def 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 | |
| 102 | For large-scale analysis, download DepMap data files and analyze locally: |
| 103 | |
| 104 | |
| 105 | import pandas as pd |
| 106 | import requests, os |
| 107 | |
| 108 | def 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) |
| 116 | FILES = { |
| 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 | |
| 127 | def 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 | |
| 137 | def 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 | |
| 145 | import numpy as np |
| 146 | import pandas as pd |
| 147 | |
| 148 | def 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 | |
| 179 | import pandas as pd |
| 180 | from scipy import stats |
| 181 | |
| 182 | def 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 | |
| 220 | import pandas as pd |
| 221 | |
| 222 | def 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 | |
| 251 | Download `CRISPRGeneEffect.csv` and `sample_info.csv` |
| 252 | Filter cell lines by cancer type |
| 253 | Compute mean gene effect for target gene in cancer vs. all others |
| 254 | Calculate selectivity: how specific is the dependency to your cancer type? |
| 255 | Cross-reference with mutation, expression, or CNA data as biomarkers |
| 256 | |
| 257 | ### Workflow 2: Synthetic Lethality Screen |
| 258 | |
| 259 | Identify cell lines with mutation/deletion in gene of interest (e.g., BRCA1-mutant) |
| 260 | Compute gene effect scores for all genes in mutant vs. WT lines |
| 261 | Identify genes significantly more essential in mutant lines (synthetic lethal partners) |
| 262 | Filter by selectivity and effect size |
| 263 | |
| 264 | ### Workflow 3: Compound Sensitivity Analysis |
| 265 | |
| 266 | Download PRISM compound sensitivity data (`primary-screen-replicate-treatment-info.csv`) |
| 267 | Correlate compound AUC/log2(fold-change) with genomic features |
| 268 | 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 | |
| 283 | Download 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 |