在生命过程中,蛋白质往往会和DNA在一起发挥功能。那么,当我们想知道蛋白发挥什么功能的时候?怎么办? 直接点,就是看蛋白处于DNA什么位置,这段DNA区域又是什么基因,这个基因又是有什么功能。这样间接的认为蛋白可能存在该基因的功能。
这里可以通过ChIP-seq 实验得到蛋白binding的区域。
Binding到的区域一般很多,这些区域按照测序的泊松分布累加起来可以分为broad peak 与 narrow peak两类。
当我们需要对broad peak进行基因注释的时候,最近这里遇到了一个问题【遇到了如果broad peak覆盖了多个基因,如何找出全部的基因,而不是只记录聚类TSS(转录起始位点)最近的基因呢?】,记录解决办法。这里记录的与同学的一问一答。
一般我们做chipseq peak注释的时候,如果不是strand-specific 是按照正链(+)处理。还是+/-都注释一下吗?
ChIPseeker可以做注释
想问下你关于chipseeker,如果是非常宽的peak,peak内含有2个gene,但是也只会注释出来离center最近的一个是吗?
一开始让同学试了试ChIPseeker 中 overlap=all的参数,后来我自己也做测试发现,这个功能并没有解决她的问题。
当时想想,也真傻,何必使用chipseeker,其实我自己本身对这个包的意见也有一点。。。当时看过几个函数的代码,在GO功能注释的时候,那个包存在一些小问题。。。过于想得到更好的P值。。
那么就换一个办法。如果你想得到一个peak覆盖到的所有gene的话。chipseeker不行的话,我觉得可以在USCS(https://genome.ucsc.edu/cgi-bin/hgTables)下载对应生物的基因.bed文件,然后两个peak.bed 与 gene.bed用bedtools(http://quinlanlab.org/tutorials/bedtools/bedtools.html)取交集。
格式选择
结果
这里bed格式的说明https://genome.ucsc.edu/FAQ/FAQformat.html#format1
这样做完,就只有一个问题,那就是UCSC【确切的说是NCBI RefSeq】(因为是自己选择的格式,在UCSC中)的基因名字需要转换成常见的格式。
最后在NCBI的FTP中找到了对应物种,ID之间的转换文件。
https://ftp.ncbi.nih.gov/refseq/H_sapiens/RefSeqGene/Aligned2RefSeqGene
这样子,peak.bed与gene.bed,取交集得到基因,基因名字转换成常用的ID。之后想做GO或者什么都可以了。
工欲善其事必先利其器,有机会需要把自己接触过的数据库整理一下。毕竟数据库不花钱,并且是他人整理完善的东西。