对于生信狗,天天黑白命令行,实验室的同事,经常对着我的Emacs说,这么小的字体你看得清吗?我只能无奈地回答,因为我要一个屏幕显示一整个函数。我自己平时写代码也很注意这一点,函数尽量小,太长就要考虑切分成几个函数,我说自己是脑容量不够,写不了长函数。我希望如果有人看我代码,他/她可以看得舒服点,虽然写的不见得好,但起码一个函数,你一个屏幕是装得下的。岁月留给我们的,是越来越厚的镜片!然而最近有一款神器,让我们在命令行里,可以高亮显示生物学常见的数据格式,包括SAM, VCF, GTF, PDB和FASTA。这款神器叫bioSyntax (http://bioSyntax.org) ,看着舒服多了,而且逼格十足,如果大家序列比对看多了,其实都会依赖于看颜色,黑白字体情况下,你很难去区分ATCG,即使有明显的pattern,你也很难看出来。

Continue reading

ChIPseq-GEO数据挖掘

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的话,这个数据挖掘这一块我就会写多点。

Continue reading

meme无非是照片上加两行字,meme这个包本来是练手之作,用来模拟ggplot2的api。结果我后面又实现了字体阴影效果,这次我又带来了外部字体支持。

加载外部字体在R上面主要有extrafont和showtext两个实现,特别是showtext用起来还是非常简单的。我在meme包里写了font_import函数,内部就是用showtext,只是简单的包装了一下,这样小白用户可以直接下个字体就开撸。有阴影效果,有搞笑字体,就万事具备了,这俨然是个专业的meme工具了。

Continue reading

在《CS7:Genomic coordination的富集性分析(1)》说到了seq2pathway这个包,其实是两部曲,seq2gene->gene2pathway,无非是把测序片段用临近的基因注释,包括和TSS overlap的基因,宿主基因,上下游的基因等,然后拿这些基因跑ORA,做富集,仅此而已,这个包支持的物种极有限,《CS4:关于ChIPseq注释的几个问题》这一文中讲到ChIPseeker支持所有有基因组注释的物种,而《clusterProfiler for enrichment analysis》也支持所有物种(即使你自己跑的电子注释,也能支持),那么使用ChIPseeker来做基因注释,然后衔接clusterProfiler就可以支持所有物种的测序片段进行功能富集分析了。

CS3: peak注释》本身就支持几种注释,另外我写了一个seq2gene的函数,套用seq2pathway的思路,把一个基因位置上所有关联的基因全部返回来,我们可以使用它去把基因位置信息转换成基因列表,然后用于富集分析,还是熟悉的味道,还是熟悉的配方🦄

Continue reading

取子集对于进化树可视化来说是非常常见的,我们要区分内部节点和外部节点,我们也可能想针对某些特点的节点进行注释。

ggplot2现在所有图层都不支持直接取子集,所以呢ggtree就自己定义了一些修改的图层,包括geom_text2, geom_label2, geom_point2geom_segment2,这些图层和ggplot2的版本唯一差别就是支持取子集。这样对于我们做注释来说,就更方便了。

比如说我想给内部节点打点,可以用:

ggtree(tree) + geom_text2(aes(label=label, subset=!isTip), hjust=-.2) +
        geom_point2(aes(subset=!isTip), color="red", size=3)

Continue reading

Author's picture

Guangchuang Yu

a senior-in-age-but-not-senior-in-knowledge bioinformatician

Postdoc researcher

Hong Kong