圣诞节期间,一个个在@微信官方,要加圣诞帽,这让人想起了以前:
今天是马化腾的生日,转发5个群,自动开通一个月的QQ会员
这班玩QQ长大的孩子,现在变成了玩微信的油腻中年了。
做为biobabble公众号的粉丝,我觉得你们是有能力用两三行R代码来给自己加个帽子的。由于我在过圣诞节,所以这篇文章没有能够及时推送出来,就当马后炮吧,不合时宜地调侃一下大家。
圣诞节期间,一个个在@微信官方,要加圣诞帽,这让人想起了以前:
今天是马化腾的生日,转发5个群,自动开通一个月的QQ会员
这班玩QQ长大的孩子,现在变成了玩微信的油腻中年了。
做为biobabble公众号的粉丝,我觉得你们是有能力用两三行R代码来给自己加个帽子的。由于我在过圣诞节,所以这篇文章没有能够及时推送出来,就当马后炮吧,不合时宜地调侃一下大家。
周日是港大医学院的198届毕业典礼,Y叔要去参加,今年也正好是医学院130周年,做为画图界的传说,我决定画一个蛋糕。
要画蛋糕,这有何难,我们有emojifont
啊,还记得《emojifont新功能(有视频哦)》一文中的geom_emoji
图层吗?
ChIPseeker这个系列,从《CS0: ChIPseq从入门到放弃》到现在CS10,总共11篇,第一篇以八卦开始,我想很有必要以八卦来结束。
ChIPseeker系列文章已经介绍了很多内容,包括注释的方方面面,也包括强大的可视化功能(《CS6: ChIPseeker的可视化方法(中秋节的视觉饕餮)》)。
今天要介绍一下数据挖掘,从大量已有的数据来产生新的hypothesis。正如我在ChIPseeker的文章里写的:
There are increasing evidences shown that combinations of TFs are important for regulating gene expression (Perez-Pinera et al., 2013; Zhu et al., 2008). However, systematically identification of TF interactions by ChIP-seq is still not available. Even if a specific TF binding is essential for a particular regulation was known, we do not have prior knowledge of all its co-factors. There are no systematic strategies available to identified un-known co-factors by ChIP- seq.
并没有方法可以大规模地预测未知的共同调控因子,而数据挖掘就是要给我们这种预测的能力。
我当年在写ChIPseeker的时候,我有纠结是写篇Bioinformatics的application note呢,还是写篇长文灌水NAR,毕竟NAR影响因子高一点,最后还是发了Bioinformatics,因为我没钱,囧,Bioinformatics不要版面费啊。然后限于篇幅,ChIPseeker有大量可视化的函数,我在文章中一张图都没放!!!如果当时决定发NAR的话,这个数据挖掘这一块我就会写多点。
meme无非是照片上加两行字,meme这个包本来是练手之作,用来模拟ggplot2的api。结果我后面又实现了字体阴影效果,这次我又带来了外部字体支持。
加载外部字体在R上面主要有extrafont和showtext两个实现,特别是showtext用起来还是非常简单的。我在meme包里写了font_import
函数,内部就是用showtext,只是简单的包装了一下,这样小白用户可以直接下个字体就开撸。有阴影效果,有搞笑字体,就万事具备了,这俨然是个专业的meme工具了。
在《CS7:Genomic coordination的富集性分析(1)》说到了seq2pathway这个包,其实是两部曲,seq2gene->gene2pathway,无非是把测序片段用临近的基因注释,包括和TSS overlap的基因,宿主基因,上下游的基因等,然后拿这些基因跑ORA,做富集,仅此而已,这个包支持的物种极有限,《CS4:关于ChIPseq注释的几个问题》这一文中讲到ChIPseeker支持所有有基因组注释的物种,而《clusterProfiler for enrichment analysis》也支持所有物种(即使你自己跑的电子注释,也能支持),那么使用ChIPseeker来做基因注释,然后衔接clusterProfiler就可以支持所有物种的测序片段进行功能富集分析了。
《CS3: peak注释》本身就支持几种注释,另外我写了一个seq2gene
的函数,套用seq2pathway
的思路,把一个基因位置上所有关联的基因全部返回来,我们可以使用它去把基因位置信息转换成基因列表,然后用于富集分析,还是熟悉的味道,还是熟悉的配方🦄
取子集对于进化树可视化来说是非常常见的,我们要区分内部节点和外部节点,我们也可能想针对某些特点的节点进行注释。
ggplot2现在所有图层都不支持直接取子集,所以呢ggtree就自己定义了一些修改的图层,包括geom_text2
, geom_label2
, geom_point2
和 geom_segment2
,这些图层和ggplot2的版本唯一差别就是支持取子集。这样对于我们做注释来说,就更方便了。
比如说我想给内部节点打点,可以用:
ggtree(tree) + geom_text2(aes(label=label, subset=!isTip), hjust=-.2) +
geom_point2(aes(subset=!isTip), color="red", size=3)