BED文件

BED的全称是Browser Extensible Data,顾名思义是为genome browser设计的,大名鼎鼎的bedtools可不是什么「床上用品」。

BED包含有3个必须的字段和9个可选字段。

三个字段包括:

  • 1 chrom - 染色体名字
  • 2 chromStart - 染色体起始位点
  • 3 chromEnd - 染色体终止位点

这里必须指出的是chromStart是起始于0,而不是1。很多分析软件都忽略 了这一点,会有一个碱基的位移,据我所知Homer和ChIPseeker没有这个问题,而像peakAnalyzer, ChIPpeakAnno等都有位移的问题。

可选的9个字段包括:

  • 4 name - 名字
  • 5 score - 分值(0-1000), 用于genome browser展示时上色。
  • 6 strand - 正负链,对于ChIPseq数据来说,一般没有正负链信息。
  • 7 thickStart - 画矩形的起点
  • 8 thickEnd - 画矩形的终点
  • 9 itemRgb - RGB值
  • 10 blockCount - 子元件(比如外显子)的数目
  • 11 blockSizes - 子元件的大小
  • 12 blockStarts - 子元件的起始位点

Continue reading

ChIPseq简介

ChIP是指染色质免疫沉淀,它通过特异结合抗体将DNA结合蛋白免疫沉淀,可以用于捕获蛋白质(如转录因子,组蛋白修饰)的DNA靶点。这技术存在非常久了,在二代测序之前,结合microarray,它的名字叫ChIP-on-chip,二代测序出来之后,显而易见的,免疫沉淀拉下来的DNA拿去NGS测序,这必然是下一代的ChIP技术,优点也是显而易见的,不再需要设计探针(往往存在着一定的偏向性)。所以NGS出来以后,不差钱的牛逼实验室显然占据上风,谁先做出来,谁就定义了新技术。这是有钱人的竞赛,没钱的只能等着技术烂大街的时候跟风做。

这是显而易见的下一代技术,外加技术上完全是可行的,所以这是一场单纯的时间竞赛,于是几乎同时出来CNS文章,基本上谁也不比谁差地同时扔出来。

  • Johnson DS, Mortazavi A et al. (2007) Genome-wide mapping of in vivo protein–DNA interactions. Science 316: 1497–1502
  • Robertson G et al.(2007) Genome-wide profiles of STAT1 DNA association using chromatin immunoprecipitation and massively parallel sequencing. Nature Methods 4: 651–657
  • Schmid et al. (2007) ChIP-Seq Data reveal nucleosome architecture of human promoters. Cell 131: 831–832

2007年来自三个不同的实验室,几乎是同时间出来(最长差不了3个月),分别发CNS,一起定义了这个ChIPseq技术。

Continue reading

wrapping labels in ggplot2

在公众号biobabble后台有多人同时在问这个问题:

晒这个截屏主要想说一点,如果是一两句话就能说清楚的问题,可以提问,如果不是,则不要在后台提问,写邮件或者到论坛提问,是更好的方式,像截屏中显示的,图片显示过期,我根本就没看到过图片。在手机上是无法看的,而我正好几天没在电脑前,于是你们发的图片我看不了,而且我如果没有在24小时之内回复,公众平台就不允许我回复了,因为问题已经过期。所以在此强调,不要在后台发图片提问,不要在后台问稍复杂的问题。

这个问题其实很简单,用stringr包的str_wrap来完成文本自动换行就行了。

Continue reading

ggtree发表

MEE在18号出版了今年(第8卷)第1期,ggtree正好在这一期出版,一经出版就有几条推在传播, 我也是在推特上看到,才发现,哦原来我的文章出版了。然后我又发现2017年新鲜出炉有了一篇PNAS的引用。

我以前没接触过进化,来了现在这个实验室,发现可视化是个大问题,大家都在用AI,慢慢地抠,对于一些和进化树相关的数据,自己一点一点地在AI里面加上去。甚至于genotype table是一个框一个框地在AI里面加的。一方面画一顆树可能用掉你几天的时间,另一方面,太容易出错了,再者你花的时间并不能转化为生产力,每一次你都要这么搞!这简直就是水深火热啊!

我也帮师兄写过一些代码,给定进化树上节点的序列,我比较父节点和子节点,把碱基或氨基酸替换写到newick树的node label,然后就可以用软件展示序列的替换情况。教会了师兄,他再去给他的师弟师妹们演示,说以后咱们可以这么干了,一个个觉得很牛逼,我内心想的是,愚蠢的人类啊,node label只能存一个信息,牛逼的方式应该是可以展示多个维度的信息,通过图层自由组合。这个时候我就产生了要写ggtree的想法。

Continue reading

R包辣鸡之CorMut

曾经QQ上有人叫我帮忙,跑某个R包做个分析,我一看那包,一堆bug,显然不能用,那就不是简单的事了,我可没空帮他写代码,于是他就经常恶心我,有事没事就来说我写ggtree没意义,不是实质科研,不如跟他做点牛逼的,不如再写个R包干他那事。昨天用马甲在进化群里问画树,我还热心贴个代码给他,说看不懂,我在群里说了,我写个文详细介绍一下。然而他的马甲身份暴露啦,所以今日跳票,我写好的文也不发了,你牛逼就不要用马甲来骗代码呀,ggtree没用你不要用呀,叔就是这么任性😎

之前讲过某个R包我一看一堆bug,直接放弃,今天倒是拿出来晒一下,不为别的,我只想说一句,一知半解是很危险的,盲目相信软件也是很危险的。

Continue reading

接下来要出一个ChIPseq系列,讲一讲ChIPseq和我的ChIPseeker包,从入门到放弃是我自己的个人写照。我做ChIPseq总共也就3个月的时间,做的事情并不多,在一知半解的情况下写下了ChIPseeker包。

我当时被要求做ChIPseq分析是为他人做嫁衣,而且是完全白干那种,但做为学生,白干也得干。

当时一开始使用ChIPpeakAnno做注释,但用UCSC genome browser检验结果的时候,发现对不上。在对ChIPpeakAnno包不满意的情况下,开始着手写ChIPseeker,其实在使用ChIPpeakAnno的时候,我就有写代码对结果做一些可视化,所以未有ChIPseeker先有ChIPseeker的部分可视化功能。当时写了篇博客文说ChIPpeakAnno的问题,一个月后就在Bioconductor上发表了ChIPseeker,这包完全是我半夜在宿舍里写出来的。

Continue reading

Author's picture

Guangchuang Yu

Bioinformatics Professor @ SMU

Bioinformatics Professor

Guangzhou