各位科研芝士的小伙伴,TCGA、GEO数据库的挖掘现如今已经十分火爆。不可否认,现如今各种培训层出不穷,几乎都是给你一个代码让你去跑,却并没有让你真正懂其精髓。今天我们一文帮助大家学习GEO数据库中的一个难点:两套GEO数据集如何合并获得一个更大的表达矩阵。今天我们就攻下这个高地。
欲练此功,先有其data。今天我们选择的数据集为胰腺癌研究的数据集:GSE46234和GSE3325。
GSE46234数据集包括4个正常组织和4个胰腺癌组织; GSE3325数据集包括6个正常组织和13个肿瘤组织。
注意
首先大家需要自行获取相应的表达矩阵,我们也已经整理好相应的表达矩阵的R文件,大家可以后台留言“表达矩阵”获取,本案例的目的是带着大家实现数据集的合并操作。
不同的GEO数据集中,由于存在不同实验的仪器不同,实验人员的熟练程度也不同,甚至试剂都不同,这样就会造成实验的batch差异。我们需要进行实验批次矫正了(batch normalization),接下来我们需要掌握基于去除批次效应的数据集合并。
批次矫正采用sva工具包
1. 安装加载sva包,直接install和library即可
2. 加载GSE3325数据集和GSE46234数据集,由于我们事先保存成Rdata文件,因此我们需要load进去
3. 数据集合并,我们基于load进去之后的变量,1为GSE3325的数据,2为GSE46234的数据,我们将数据集合并成一个merge_eset对象:
具体数据内容如下:
查看一下数据集维度,发现为20183行,27列,每行代表一个基因,每列代表一个样本,前面19个样本为GSE3325数据集,后面8个样本为GSE46234数据集,一共27个样本
4. 整理成sva包所需要的数据类型,首先变成矩阵格式,接着将每个维度的名字变成列表,最后整理成矩阵格式的data,如下:
结果:
5. 设置需要考虑的批次效应有哪些,一是不同的GSE号,二是不同的normal和tumor样本数量。
可以看到先是batchType,在是modType,最后采用model.matrix生成一个mod对象即可。
6. 一行命令搞定批次去除,主要是Combat命令的使用,将我们的需要考虑的batchType,mod,作为参数填充,即可
结果如下:
OK,这样的话我们就可以实现批次去除,实现多套GEO数据的整合,我们平台近期会推出了GEO数据全面打通教程,帮助你彻底了解GEO数据库,敬请期待!