
文献复现:肝细胞癌中CAF特征及风险特征构建的研究
单细胞数据炸开肝细胞癌的肿瘤微环境,成纤维细胞这群"建筑工人"突然变得可疑。当我们从GEO
扒下GSE156625数据集时,先给原始数据做个大扫除——线粒体基因占比超过15%的细胞直接踢出局,基因表
达量低于200的细胞也别想蒙混过关。
```r
library(Seurat)
sc_data <- CreateSeuratObject(counts = raw_data,
min.cells = 3,
min.features = 200)
sc_data[["percent.mt"]] <- PercentageFeatureSet(sc_data, pattern = "^MT-")
sc_data <- subset(sc_data, subset = percent.mt < 15)
```
这个预处理就像筛沙子,筛掉质量差的细胞后,数据标准化得用SCTransform才够劲。注意这里设置
的vars.to.regress参数,线粒体基因的影响必须被中和掉。当UMAP图上的细胞聚成20多个小岛时,用经典
标记基因PDGFRA、ACTA2给成纤维细胞挂牌子特别重要——千万别把周细胞错当成CAF,那会闹大笑话。
在解析亚群功能时,Metascape的富集分析跳出来一堆ECM相关通路。这时候要玩点花活:用WGCNA构
建共表达网络,发现模块3的基因不仅和Hedgehog信号强相关,还在预后差的患者中异常活跃。筛选关键基
因时,别被表面上的差异基因迷惑,得用Spearman相关性再筛一轮:
```python
import scanpy as sc
sc.tl.dendrogram(adata, groupby='celltype')
sc.pl.dotplot(adata, var_names=['COL1A1','MMP11','TIMP1'],
groupby='subcluster',
dendrogram=True)
```
构建风险模型就像组装乐高,单因素Cox筛出的50个候选基因放进LASSO回归压缩后,剩下7个硬核
玩家。有意思的是用stepAIC做变量选择时,某个基因每次都被踢出模型——这货可能是个专业气氛组。最终
的列线图要玩点视觉魔术,把年龄、分期和风险评分画成动态可调的滑块,临床医生看到直接眼睛发亮。
当分析基因突变特征时,maftools包画出的瀑布图里,TP53和CTNNB1突变在高低风险组呈现镜像分
布。免疫浸润分析更劲爆——高风险组的巨噬细胞M2型像打了鸡血,而CD8+T细胞却集体躺平。最刺激的还是
免疫治疗预测部分,用oncoPredict包跑出的PD1抑制剂响应率,高风险组患者居然有40%是"冷肿瘤",这数
据往论文里一放,审稿人直接给过。