# ============================================================
# 教程配套脚本 02：下载 TCGA-LIHC 与 GEO 数据
# 注意：需要联网；下载较慢时请耐心等待
# ============================================================

# ---- 方式 A：GEO 数据（GSE14520，HCC 表达谱 + 生存）----
library(GEOquery)

# 下载并解析 GSE14520（GSEMatrix 格式，含表达矩阵与表型）
gse <- getGEO("GSE14520", GSEMatrix = TRUE, AnnotGPL = TRUE)

# 取第一个平台（GSE14520 含两个平台，通常用主平台）
eset <- gse[[1]]

# 提取表达矩阵（探针 × 样本）
expr <- exprs(eset)
dim(expr)                      # 探针数 × 样本数
expr[1:5, 1:5]                 # 查看前几行

# 提取临床/表型信息
pheno <- pData(eset)
colnames(pheno)                # 查看有哪些临床字段
table(pheno$characteristics_ch1)  # 看分组（tumor/normal）

# 保存原始数据（教程建议 data/ 只读存放）
write.csv(expr, "data/raw/GSE14520_expr_raw.csv", quote = FALSE)
write.csv(pheno, "data/raw/GSE14520_pheno_raw.csv", quote = FALSE)

# ---- 方式 B：TCGA-LIHC 数据 ----
# 推荐路径 1：UCSC Xena 网页下载（无需编程）
#   1. 打开 https://xena.ucsc.edu  → 选择 "TCGA Liver Cancer (LIHC)"
#   2. 下载基因表达 "TCGA-LIHC.htseq-fpkm.tsv.gz"
#   3. 下载表型 "TCGA-LIHC.GDC_phenotype.tsv.gz"
#   4. 解压后放入 data/raw/

# 推荐路径 2：GDC 官方下载（需注册 eRA Commons，流程较长，新手不推荐首选）

# 读取 Xena 下载的表达矩阵（若已下载）
# expr_tcga <- read.delim("data/raw/TCGA-LIHC.htseq-fpkm.tsv.gz", row.names = 1)
# dim(expr_tcga)
# expr_tcga[1:5, 1:5]

cat("数据下载/读取完成！\n")
