如何用Python从GEO、TCGA等数据库提取乳腺癌基因组数据?
从TCGA、GEO提取乳腺癌基因组数据的Python实操指南
一、TCGA数据提取(用tcga-biolinks库)
tcga-biolinks是TCGA官方推荐的Python工具,适合新手快速获取标准化数据。
- 安装依赖库
pip install tcga-biolinks pandas numpy
- 核心代码示例(提取乳腺癌RNA-seq及转移相关样本)
import tcga_biolinks as tb import pandas as pd # 构建查询:指定乳腺癌项目ID、RNA-seq数据类型 query = tb.query_gdc( project_id="TCGA-BRCA", data_type="Gene Expression Quantification", experimental_strategy="RNA-Seq", workflow_type="STAR - Counts" ) # 下载数据到本地目录 tb.download(query, directory="./tcga_brca_data") # 读取并整理原始计数矩阵 counts_df = tb.prepare_expression_matrix("./tcga_brca_data", "raw") # 拉取临床数据,筛选转移样本(M1表示有远处转移) clinical_data = tb.get_clinical("TCGA-BRCA") metastatic_sample_ids = clinical_data[clinical_data["ajcc_pathologic_m"] == "M1"]["submitter_id"] metastatic_counts = counts_df[counts_df.columns.isin(metastatic_sample_ids)] # 保存筛选后的结果 metastatic_counts.to_csv("./tcga_brca_metastatic_counts.csv")
二、GEO数据提取(用GEOquery库)
GEOquery可直接拉取GEO公开数据集,适合获取特定研究的乳腺癌样本数据。
- 安装依赖库
pip install GEOquery pandas
- 核心代码示例(以含转移样本的GSE20685为例)
from GEOquery import getGEO import pandas as pd # 获取目标GEO数据集(替换为你需要的数据集ID) gse = getGEO("GSE20685", destdir="./geo_data") # 提取基因表达矩阵 expr_matrix = gse[0].table # 提取样本信息,筛选转移相关样本 sample_info = gse[0].phenotype_data metastatic_sample_names = sample_info[sample_info["characteristics_ch1.2"].str.contains("metastatic")]["title"] metastatic_expr = expr_matrix[expr_matrix.columns.isin(metastatic_sample_names)] # 保存结果 metastatic_expr.to_csv("./geo_gse20685_metastatic_expr.csv")
新手实操提示
- 建议用conda创建独立环境避免依赖冲突:
conda create -n bioinfo python=3.9,激活后再安装库 - 首次下载数据耗时较长,尽量在稳定网络环境下操作
- 若需筛选特定转移相关基因,可在提取矩阵后用
counts_df.loc[target_gene_list, :]实现 - TCGA临床数据中
ajcc_pathologic_m字段是转移状态标记,GEO样本的转移信息需根据对应数据集的phenotype字段自行匹配
内容的提问来源于stack exchange,提问作者JackCacti
相关产品推荐
相关产品推荐

