DepMap — Cancer Dependency Map(がん依存性マップ)
概要
Cancer Dependency Map(DepMap)プロジェクトは、Broad Instituteが主導する、ゲノムワイドCRISPRノックアウトスクリーニング(DepMap CRISPR)、RNA干渉(RNAi)、化合物感受性アッセイ(PRISM)を用いて数百のがん細胞株にわたる遺伝子依存性を体系的に特徴付ける取り組みです。DepMapデータは以下の目的に不可欠です:
- 特定のがん種において必須な遺伝子を特定する
- がん選択的な依存性(治療標的)を見つける
- がん治療薬の標的を検証する
- 合成致死相互作用を発見する
主要リソース:
- DepMap Portal: https://depmap.org/portal/
- DepMapデータダウンロード: https://depmap.org/portal/download/all/
- Pythonパッケージ:
depmap(API/ダウンロード経由でもアクセス可能) - API: https://depmap.org/portal/api/
このスキルを使用するタイミング
以下のような場合にDepMapを使用します:
- 標的検証:特定の変異(例:KRAS変異)を持つがん細胞株において、遺伝子が生存に必須か?
- バイオマーカー発見:どのゲノム特徴が遺伝子ノックアウトに対する感受性を予測するか?
- 合成致死:別の遺伝子が変異・欠失している場合に選択的に必須となる遺伝子を見つける
- 薬剤感受性:どの細胞株特徴が化合物への応答を予測するか?
- パンがん必須性:遺伝子はすべてのがん種で広く必須(悪い標的)か、選択的に必須か?
- 相関解析:どの遺伝子ペアが相関した依存性プロファイル(共必須性)を持つか?
コアコンセプト
依存性スコア
| スコア | 範囲 | 意味 |
|---|---|---|
| Chronos (CRISPR) | ~ -3 ~ 0+ | 負の値が大きいほど必須性が高い。一般的な必須閾値:−1。パン必須遺伝子は約−1~−2 |
| RNAi DEMETER2 | ~ -3 ~ 0+ | Chronosと同様のスケール |
| Gene Effect | 正規化済み | 正規化されたChronos;−1は一般的必須遺伝子の中央値効果 |
主要閾値:
- Chronos ≤ −0.5:依存性の可能性あり
- Chronos ≤ −1:強い依存性(一般的必須遺伝子の範囲)
細胞株アノテーション
各細胞株には以下の情報があります:
DepMap_ID: 一意識別子(例:ACH-000001)cell_line_name: 人間が読み取れる名称primary_disease: がん種lineage: 広い組織系統lineage_subtype: 特定のサブタイプ
コア機能
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. 遺伝子依存性スコア
def get_gene_dependency(gene_symbol, dataset="Chronos_Combined"):
"""特定の遺伝子のCRISPR依存性スコアを全細胞株から取得。"""
url = f"{BASE_URL}/gene"
params = {
"gene_id": gene_symbol,
"dataset": dataset
}
response = requests.get(url, params=params)
return response.json()
# あるいは /data エンドポイントを使用:
def get_dependencies_slice(gene_symbol, dataset_name="CRISPRGeneEffect"):
"""データセットから遺伝子の依存性スライスを取得。"""
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. ダウンロードベースの解析(大規模クエリに推奨)
大規模解析には、DepMapデータファイルをダウンロードしてローカルで解析します:
import pandas as pd
import requests, os
def download_depmap_data(url, output_path):
"""DepMapデータファイルをダウンロード。"""
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 データファイル(必要に応じてバージョンを更新)
FILES = {
"crispr_gene_effect": "https://figshare.com/ndownloader/files/...",
# または https://depmap.org/portal/download/all/ からダウンロード
# 利用可能なファイル:
# CRISPRGeneEffect.csv - Chronos遺伝子効果スコア
# OmicsExpressionProteinCodingGenesTPMLogp1.csv - mRNA発現
# OmicsSomaticMutationsMatrixDamaging.csv - 変異バイナリ行列
# OmicsCNGene.csv - コピー数
# sample_info.csv - 細胞株メタデータ
}
def load_depmap_gene_effect(filepath="CRISPRGeneEffect.csv"):
"""
DepMap CRISPR遺伝子効果行列を読み込み。
行 = 細胞株 (DepMap_ID)、列 = 遺伝子 (Symbol (EntrezID))
"""
df = pd.read_csv(filepath, index_col=0)
# 列名を遺伝子シンボルのみに変更
df.columns = [col.split(" ")[0] for col in df.columns]
return df
def load_cell_line_info(filepath="sample_info.csv"):
"""細胞株メタデータを読み込み。"""
return pd.read_csv(filepath)
4. 選択的依存性の特定
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):
"""特定の遺伝子に選択的に依存する細胞株を特定。"""
# 対象遺伝子のスコアを取得
if target_gene not in gene_effect_df.columns:
return None
scores = gene_effect_df[target_gene].dropna()
dependent = scores[scores <= threshold]
# 細胞株情報を追加
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")
# 使用例(データ読み込み後)
# 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. バイオマーカー解析(遺伝子効果 vs 変異)
import pandas as pd
from scipy import stats
def biomarker_analysis(gene_effect_df, mutation_df, target_gene, biomarker_gene):
"""
バイオマーカー遺伝子の変異が対象遺伝子への依存性を予測するかを検定。
Args:
gene_effect_df: CRISPR遺伝子効果DataFrame
mutation_df: バイナリ変異DataFrame(1 = 変異あり)
target_gene: 依存性を評価する遺伝子
biomarker_gene: 変異が依存性を予測する可能性のある遺伝子
"""
if target_gene not in gene_effect_df.columns or biomarker_gene not in mutation_df.columns:
return None
# 細胞株を揃える
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. 共必須性解析
import pandas as pd
def co_essentiality(gene_effect_df, target_gene, top_n=20):
"""最も相関の高い依存性プロファイルを持つ遺伝子(共必須パートナー)を特定。"""
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)
# 共必須遺伝子はしばしば同じ生物学的複合体や経路を共有する
クエリワークフロー
ワークフロー1: がん種に対する標的検証
CRISPRGeneEffect.csvとsample_info.csvをダウンロード- がん種で細胞株をフィルタリング
- 対象遺伝子の平均遺伝子効果をがん種 vs その他で計算
- 選択性を計算:そのがん種に対する依存性の特異性はどの程度か?
- バイオマーカーとして変異、発現、CNAデータと相互参照
ワークフロー2: 合成致死スクリーニング
- 対象遺伝子(例:BRCA1変異)に変異・欠失を持つ細胞株を特定
- 変異株 vs WT株ですべての遺伝子の遺伝子効果スコアを計算
- 変異株で有意に必須性が高い遺伝子(合成致死パートナー)を特定
- 選択性と効果サイズでフィルタリング
ワークフロー3: 化合物感受性解析
- PRISM化合物感受性データ(
primary-screen-replicate-treatment-info.csv)をダウンロード - 化合物のAUC/log2(fold-change)とゲノム特徴を相関
- 化合物感受性の予測バイオマーカーを特定
DepMapデータファイルリファレンス
| ファイル | 説明 |
|---|---|
CRISPRGeneEffect.csv | CRISPR Chronos遺伝子効果(主要依存性データ) |
CRISPRGeneEffectUnscaled.csv | 非スケールCRISPRスコア |
RNAi_merged.csv | DEMETER2 RNAi依存性 |
sample_info.csv | 細胞株メタデータ(系統、疾患など) |
OmicsExpressionProteinCodingGenesTPMLogp1.csv | mRNA発現 |
OmicsSomaticMutationsMatrixDamaging.csv | 有害な体細胞変異(バイナリ) |
OmicsCNGene.csv | 遺伝子ごとのコピー数 |
PRISM_Repurposing_Primary_Screens_Data.csv | 薬剤感受性(リパーパシングライブラリ) |
すべてのファイルは以下からダウンロード可能:https://depmap.org/portal/download/all/
ベストプラクティス
- 現在のCRISPR解析にはChronosスコアを使用する(DEMETER2ではなく) — 切断効率をより適切に制御
- パン必須性とがん選択性を区別する:分散が低い(すべての株で必須)遺伝子は創薬標的として不適切
- 発現データで検証する:細胞株で発現していない遺伝子は、実際の機能に関わらず非必須としてスコアリングされる
- 細胞株識別にはDepMap IDを使用する — cell_line_nameは曖昧になる可能性がある
- コピー数を考慮する:増幅された遺伝子はコピー数効果(ジャンクDNA仮説)により必須に見える場合がある
- 多重検定補正:ゲノム全体でバイオマーカー関連を計算する場合は、FDR補正を適用する
追加リソース
- DepMap Portal: https://depmap.org/portal/
- データダウンロード: https://depmap.org/portal/download/all/
- DepMap論文: Behan FM et al. (2019) Nature. PMID: 30971826
- Chronos論文: 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