美文网首页基因组
#基因组干货#之保守性分析及作图

#基因组干货#之保守性分析及作图

作者: 生信杂谈 | 来源:发表于2017-05-12 20:27 被阅读0次

    保守序列一般预示其具有潜在的功能,或在细胞发育及调控方面可能发挥重要作用。一般来说编码区序列是高度保守的,尤其是启动子及转录起始位点(TSS)具有极高的保守性。
      但如何研究我们自己的序列的保守性并量化保守性的值呢,一般的方法是通过物种多序列比对,不过我们并不需要自己进行比对,老外已经帮我们做好了,在UCSC里已经展示了使用PhastConsPhylop (PHAST包)两种方法的多物种序列(100个物种和46个物种)的进化保守性, 多序列比对会产生MAF格式文件,这个比对结果文件还可以用于编码潜能的预测,因为编码区是高度保守嘛,比较有名的工具如phyloCSF,但不建议本地操作MAF文件,因为MAF文件实在是太TM的大了足足有上百G,建议使用galaxy在线分析序列的编码潜能,顺便安利其他几个能预测序列编码潜能的工具:pfamscan、CNCI和CPC,一般是预测完编码潜能后这几个工具取交集作为结果。


      下面开始分析序列保守性并进行实际操作,首先,如果我有条序列及其位置信息,如何观察这条序列的保守性呢?很简单,打开UCSC,左上角点击Genomes,选择基因组版本,在configure界面找到“Comparative Genomics”栏目,把“conservation”track调为” full”就行,如果已经是” full”就不用调了,点击”submit”,然后在基因组浏览器界面输入你的序列的位置信息,比如我想看看FBLIM1基因启动子位置的保守性,我直接输入FBLIM1或” chr1:16,075,390-16,103,219”,得到结果如下图,可以看出FBLIM1的转录起始位点具有高的保守性(黑色凸起的柱子就是)。
      但是,如果我有一堆具有类似特征的序列,比如我预测的新的转录本,我想看看这些新转录本的保守性或这些转录本的启动子的保守性,那该如何表示呢?首先从UCSC获得保守性分值的数据文件,100个物种和46个物种的都可以,我一般看到文献里都是用的PhastCons表示保守性分值,所以下载PhastCons conservationwig格式的文件而不是PhyloP conservation的wig格式的文件(当然你想用这个也可以),下载页面在这里:http://hgdownload.cse.ucsc.edu/goldenPath/hg19/phyloP100way, 然后将其转为bigwig文件,不知道怎么转以及为什么转的请看以前的推送。下载下一个压缩包,解压出来是染色体命名的.wigfix格式的文件(wig格式有可变步长var和固定步长fix格式两种),然后先将每个染色体的.wigfix文件批量转为.bw文件,bigWigMerge工具从http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/ 下载。
    #获得所有wigFix的文件列表并存入数组
    wigFix_a=(`echo *.wigFix`)
    #写个循环批量实现
    for i in${wigFix_a[@]}
    do
      #用染色体名定义要输出的文件名。
      wigFix_out=`echo $i|cut -d . -f 1|awk '{print $1".bw"}' -`
      #将每个.wigFix文件转为.bw文件
      /home/ding/tool/wigToBigWig $i/home/ding/tool/hg19.chrom.sizes $wigFix_out
    done
    #使用UCSC的bigWigMerge工具合并各个染色体的bw文件为.bedGraph文件,因为我没找到能合并为.bw的工具。。
    /home/ding/tool/bigWigMergechr10.bw  chr11.bw  chr12.bw chr13.bw  chr14.bw  chr15.bw chr16.bw  chr17.bw  chr18.bw chr19.bw  chr1.bw  chr20.bw chr21.bw  chr22.bw  chr2.bw chr3.bw  chr4.bw  chr5.bw chr6.bw  chr7.bw  chr8.bw chr9.bw  chrX.bw  chrY.bw phastCons46.bedGraph
    #将.bedgraph文件转为.bw文件。
    /home/ding/tool/wigToBigWig  phastCons46.bedGraph  /home/ding/tool/hg19.chrom.sizes  phastCons46.bw
    

      现在我们已经得到了保守性分值的.bw格式文件,接下来就是套路了,用bwtool提取要分析的序列位置的PhastCons分值的均值,然后作图,shell代码及注释如下:

    #使用bedtools获得随机序列2000条
    randomBed -l 200 -n 2000-seed 2 -g ../hg19.chrom_24.sizes|sortBed -i -  >./enh_statistics/random_all_enh.bed
    #使用bwtool获得各个bed文件中心附近2000bp的保守性分值。
    bwtool agg 2000:2000  ./enh_statistics/random_all_enh.bed,./enh_statistics/my_sequence.bed,./enh_statistics/uni_cluster.bed,../gencode/protein_gene2.ss,./enh_statistics/other_cluster.bed../phastCons46/phastCons46.bw  /dev/stdout >./enh_statistics/conservation2_result.mean_signal
    

      使用R作图及代码如下,从图中可以看出,蛋白编码Gene转录起始位点的保守性最高,这是理所当然的,随机区域的保守性最低且没有起伏,其他几个预测的转录本集合的转录起始位点的保守性Seq-p2(黄线)是最高的,而且可以看出蛋白编码基因的phastCons分值达到了0.45左右,所以我个人认为非要给保守性高低一个阈值的化,我觉得应该是0.4,phastCons高于0.4是具有极高的保守性的,高于0.3具有高的保守性,当然还需要进一步与其他功能元件进行比较。

    rm(list=ls())
    setwd("/home")
    library(ggplot2)
    library(reshape)
    library(Cairo)
    mean_signal<-as.data.frame(read.table("./enh_statistics/conservation2_result.mean_signal",header=F,sep="\t",stringsAsFactors= F))
    apply(mean_signal,2,as.numeric)
     
     
    #画图:
    png_path="./figure/conservation_isspe.png"
    CairoPNG(png_path, width =6.2, height =6, units='in', dpi=600)
     
    ggplot(data=mean_signal_melt,aes(x=loc,y=value,colour=type))+
      geom_line(size=0.6,alpha=1)+
      xlab("Distance to transcriptionstart sites (bp)")+
      ylab("PhastConsScore")+
      xlim(c(-1000,1000))+
      scale_colour_manual(limits=c("seq1","seq2","seq2","gene TSS","random"),labels=c(expression(seq1-p1),expression(seq-p2),expression(seq-p3),"Gene TSS","random"),values =c("red","gold","green","blue","black"))+
      theme_bw()+
      theme(
        axis.text=element_text(size = rel(1.3)),
        axis.title=element_text(size=rel(1.3)),
        # axis.title.x=element_blank(),
        legend.text=element_text(size=rel(1.3)),
        legend.title=element_blank(),
        legend.background=element_blank(),
        legend.key = element_blank(),
        legend.margin=margin(0,0,0,0,"mm"),
        legend.box.spacing =unit(1,"mm"),
        #legend.position=c(1,1),legend.justification=c(1,1),
        legend.position="top"
      )
    dev.off()
    

      写在最后,保守性分析完了可以进行motif预测分析,然后motif又可以进行GO等功能性分析(请查看历史消息),都是妥妥的套路,这些套路咱们以后慢慢揭露,尽情关注并接收更多套路文章。

    相关文章

      网友评论

        本文标题:#基因组干货#之保守性分析及作图

        本文链接:https://www.haomeiwen.com/subject/okjtxxtx.html