CrossICC包完成分子分型教程

随着RNA-Seq技术的发展,越来越多的研究进行了疾病样本的RNA测序,而以基因表达谱为基础的分子分型更也进一步加深了人类对疾病的理解。TCGA发表的系列大文章更是将RNA-分子分型这一“套路”变成必备级的操作。而技术的发展也带来了新的问题和挑战,因为同类型的疾病可能存在多个数据集,每个数据集所纳入的病人可能存在一些这样或者那样的差异,而且不同数据集之间的批次效应也是个不容忽略的问题,这就让不同数据集的整合成为了一个难题。

消除批次效应常用的R包是Combat,但是这个包在消除批次效应的同时,也会消除一些疾病内部本身的差异。如果这时再用ConsensusClusterPlus进行聚类分型,我们可以看到几乎所有的样本都是同一个分子类型,这样的结果显然不符合逻辑和预期。

小鹿最近在国际著名生物信息学杂志《Briefings in Bioinformatics》看到了中山大学肿瘤防治中心研究团队开发的一个新分子分型工具——CrossICC,可以实现在不用Combat去批次的前提下进行分子分型。

同样还是上图的那个数据集,我们可以看到用CrossICC做分子分型效果杠杠的,不同批次的样本在不同的分型中都有分布,不同分子亚型的病人也存在显著的生存差异。

另外,一般的聚类分型工具不能根据已知的分型结果,对新样本的分子亚型进行预测,而CrossICC解决了这一问题。在这篇论文中作者用5个数据集对乳腺癌进行训练分型后,然后再用一个数据集进行预测,验证集里的样本同样被分成了5个cluster,其生存曲线的趋势也和训练集基本一致,效果非常棒。

根据表达数据做的热图来看,分型的效果也很好。

下面笔者就来介绍一下这个包的安装使用方法:

大家可以在Bioconductor的库里安装这个包,命令如下

if (!requireNamespace("BiocManager", quietly = TRUE))    install.packages("BiocManager")BiocManager::install("CrossICC")

导入数据时只需提供所有表达谱数据的文件名,就可以用CrossICC.input一键导入(前提是你的表达谱文件格式为:行为基因名,列为样本名)。

先获取所有文件名,path可指定文件位置,pattern指定表达谱文件名的某个特点,如都是txt格式就指定为”txt”,然后用CrossICCInput函数一键搞定。

library(CrossICC)exp.files <- list.files(path = "", pattern = "txt")CrossICC.input <- CrossICCInput(exp.files)

笔者看了下开发者在github的源码,发现他们读取数据时使用的是data.table这个R包里的fread函数,所以读取数据的速度很快,而且不用指定数据的分隔符类型,逗号、空格或者tab分隔都可以自动识别。生成的CrossICC.input可以直接导入到主函数CrossICC()直接使用。

主函数的使用可以先用一个开发者自己的例子数据,

使用如下命令

data(demo.platforms)
CrossICC.object <- CrossICC(demo.platforms, skip.mfs = TRUE, use.shiny = FALSE, overwrite = TRUE, output.dir = tempdir())

值得一提的是,如果大家使用的时候需要用CrossICC对数据进行可视化,可以设置use.shiny = TRUE,这样在命令运行完以后会自动跳出shiny界面自动展示分型结果,上面展示的热图也会自动绘制出来。主程序运行完后,也会把结果存在一个rds的文件里,文件的位置可以通过output.dir这个参数进行指定。

每个亚型的signature基因也存在了CrossICC.object和rds的文件里,大家可以提取出来用来做通路富集,看不同亚型的通路特点。

CrossICC的另一个大招就是提供预测功能了,用前面CrossICC主程序进行分型后,使用分型的signature对新的数据集里的样本进行分类,这是其他分型工具所不具备的。使用的函数为predictor(),只有2个参数,一个为model,也就是前面的CrossICC.object,另一个是pre.dat,也就是一个标准的表达矩阵。经过几分钟的计算就可以得到新数据集的分类结果了。小鹿觉得这个功能太有意义了,它可以让分型结果的意义不仅仅局限于paper上有个显著结果,还可以拓展到实际的应用上来。

关于这个包的使用就给大家介绍到这里了,关于一些详细的参数含义,大家可以通过“?CrossICC”这样经典的方式,查看每个参数的含义。祝大家能挖到迷人的宝贝!

生物信息学

R语言基本功:数据集取子集

2020-8-20 21:39:46

生物信息学

在matplotlib中用箭头和文字来标记重要的点

2020-8-22 0:30:55

加入Q群
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索