首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CS番外2:过滤ChIPseeker注释结果

有一天我的师弟提了一个需求:

对于ChIP的下游分析,我很喜欢DiffBind做差异分析然后用ChIPseeker做注释这一套流程(因为ChIPseeker的输入格式是GRange格式,而DiffBind的dba.report输出也恰好是GRange格式,两者可以无缝衔接)。我之前的套路,一直都是无脑输出所有的DiffBind结果,然后放入ChIPSeeker里面做注释,完了之后转成data.frame,然后对data.frame做subset,做后续的GO分析()。但今天突然想对ChIPseeker的注释结果直接做subset,然后分别对上下调的结果画plotAnnoPie等ChipSeeker内置的画图函数。但发现subset无法对ChipSeeker annotatePeak函数的输出结果做筛选。

当然,对于DiffBind的结果用subset,分别提取上下调,然后再注释也是可以的,不过这样感觉更麻烦。

面对需求,如果无法解决提出需求的人,那么就只能写代码实现这个需求了。于是经过一个下午的努力,我给ChIPseeker加上了subset的功能。

先来介绍下如何使用。我们需要用安装最新的ChIPseeker

我们以测试数据集来演示

此时会输出peakAnno里的描述统计信息

peakAnno可以直接用来画图

Pie

upset

假如你突发奇想,我能不能就看看某一条染色体的作图结果,或者对于MACS2的结果,想根据FDR筛选下peak,然后看下peak的变化。

在之前我们无法直接对peakAnno背后的对象进行操作,所以需要先对输入的GRanges进行过滤然后再用进行注释,然后画图。

但是现在我们有了, 这一切就变得稍微简单起来了

我们可以按照染色体编号进行筛选

可以按照peak宽度进行筛选

filter

如果筛选之后没有任何结果,那么就会报错

那么问题就是,这些筛选条件的名字怎么获知。

只要将peakAnno转成GRanges格式,所以可以看到的列都是你可以筛选的标准。

给ChIPseeker增加subset的功能,应该是我第一次在GitHub进行pull requests操作。写这个函数,需要先去理解csAnno对象到底是什么,以及如何保证csAnno这个对象在操作前后不会发生变化。

其实这个函数挺简单的,就是下面几行

因为有很多功能是ChIPseeker已经有了的,比如说, 还有一些是S4Vectors和BiocGenerics包提供的,比如说subset, start和end。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190830A0CB1B00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券