美文网首页TBtools攻略磕盐——从入门到自闭可视化相关收集
『TBtools-circos』谁说TBtools画的图丑!老夫

『TBtools-circos』谁说TBtools画的图丑!老夫

作者: ShawnMagic | 来源:发表于2020-08-17 22:34 被阅读0次

    国际惯例,先上图


    20200817221534.jpg

    目的

    Overview最后一部分是circRNA染色体分布展示,这里想到用circos图就是俗称的圈图来展示。

    • 关系: 之前想再circos中把circRNA-miRNA,miRNA-mRNA整出来,后来查看了miRNA-mRNA的关系数量多达7万多个,这个画出来基本什么也看不到了,所以只画了circRNA-miRNA
    • 转录本密度: circRNA和microRNA的数量都比较少,再染色体上画分布的话最好用scatter plot展示,就是散点图,统计的话100bp的bin,bin画太大也没有意义,尽量的展现出来。mRNA数量众多,这里用热图展示,mRNA的bin用的是10k

    之前一直用circos画圈图,确实出图好看,速度快,也多样化,conf文件相对也比较好写。跟着官网走就可以了。之前用TBtools画过一次圈图,电脑太卡了,这次升级电脑以后,又尝试了下,果然顺滑了不少,这里做下记录。


    数据准备

    因为需要找到miRNA-circRNA的关系,所以要先找到map,此外还要知道转录本的位置,所以需要知道miRNA,circRNA的位置,最后在R下面用left_join将位置合并,就是我们的link文件。

    • miRNA-circRNA map,这个公司做过,用的方法是 TargettFinder 软件
    • miRNA位置;新检测到的miRNA的位置是已知的,而数据库中已知的miRNA的位置则是通过前体和基因组进行blast比对得到的位置,经过测试nove的结果和公司提供的位置结果基本一致。
    • mRNA位置;这个之前说过,TBtools GXF工具中从GFF文件提取。
    • circRNA位置; 公司提供。

    具体操作

    • mRNA位置,如图操作
    20200817212246.jpg
    • miRNA位置
    20200817212814.jpg
    • miRNA-circRNA
    #####################################
    #     Prj: Heterosis-circ
    #     Assignment: circRNA-miRNA-mRNA link
    #     Author: Shawn Wang
    #     Date: Aug 12 2020
    ####################################
    ##=========== 01.load packages ===========
    setwd("~/02.Project/03.circRNA/02.Overview/01.DataAnalysis/")
    options(stringsAsFactors = F)
    library(dplyr)
    library(ggplot2)
    library(reshape2)
    library(stringr)
    
    ## function of check the first yxy area of a df
    heady = function(x,y){
      x[1:y,1:y]
    }
    ##=========== 02.load data ===========
    # position
    mRNApos <- read.delim("../../01.Database/01.map/02.clean/01.Gh.pos.xls", 
                          header = F,
                          sep = "\t")
    head(mRNApos)
    colnames(mRNApos) = c("GeneID","Chr","Start","End")
    circ.pos <- read.delim("../../01.Database/01.map/02.clean/03.circ.pos.xls",
                          header = F,
                          sep = "\t")
    head(circ.pos)
    colnames(circ.pos) = c("circID","Chr","Start","End")
    miRpos <- read.delim("../../01.Database/01.map/02.clean/02.miRNA-pos.final.xls",
                         header = F,
                         sep = "\t")
    
    colnames(miRpos) = c("miID","Chr","Start","End")
    miRpos$miID = gsub(pattern = "MI",replacement = "mi",miRpos$miID)
    head(miRpos)
    ## map
    circ2mi <- read.delim("../../01.Database/01.map/02.clean/06.miRNA2circ.map",
                          header = F,
                          sep = "\t")
    head(circ2mi)
    colnames(circ2mi) = c("miID","circID")
    mi2mRNA <- read.delim("../../01.Database/01.map/02.clean/05.mi2mRNA.map",
                          header = T,
                          sep = "\t")
    head(mi2mRNA)
    mi2mRNA = mi2mRNA[,-2]
    circ2host <- read.delim("../../01.Database/01.map/02.clean/04.circ2host.map",
                            header = T,
                            sep = "\t")
    head(circ2host)
    ##=========== 02.load data ===========
    ## merge
    circ2mi_link = left_join(circ2mi,circ.pos,by = "circID")%>% left_join(.,miRpos,by = "miID")
    head(circ2mi_link)
    circ2mi_link = circ2mi_link[,c(3,4,5,6,7,8)]
    write.table(circ2mi_link,file = "../circ2mi_link.xls",
                col.names = F,
                row.names = F,
                sep = "\t",
                quote = F)
    circ2host_link = left_join(circ2host, circ.pos,by = "circID")%>% left_join(.,mRNApos,by = "GeneID")
    head(circ2host_link)
    write.table(circ2host_link[,-c(1,2)],file = "../circ2host.link.xls",
                col.names = F,
                row.names = F,
                sep = "\t",
                quote = F)
    mi2mRNA_link = left_join(mi2mRNA, miRpos, by = "miID")%>% left_join(.,mRNApos,by = "GeneID")
    head(mi2mRNA_link)
    write.table(mi2mRNA_link[,-c(1,2)],file = "../mi2mRNA.link.xls",
                col.names = F,
                row.names = F,
                sep = "\t",
                quote = F)
    
    

    额,这里都做了一下。

    画图

    准备好这几个文件

    --- 02.Overview/05.tbtoolscircos » tree 
    .
    ├── 01.TBtoolsNew.svg
    ├── 01.TBtoolsRaw.300dpi.jpg
    ├── 01.TBtoolsRaw.600dpi.jpg
    ├── 01.TBtoolsRaw.svg
    ├── Gh.chr.len              ## 染色体长度
    ├── circ2mi_link.xls    ## circ-miRNA
    ├── circpos.txt             ## circRNA位置
    ├── mRNApos.txt             ## mRNA位置
    ├── mRNApos.xlsx            
    └── miRNApos.txt            ## miRNA位置
    ##= 染色体长度文件 =##
    head -3 Gh.chr.len       
    A01 115949770
    A02 105669191
    A03 110115461
    ###################
    ##= circ-miRNA =##
    ## 前面三列是circRNA的染色体和起始位置,后面是miRNA的染色体和起始位置,最后是线条的RGB颜色
    head -3 circ2mi_link.xls 
    A01 33355841    33370716    A01 165803  165927  "255,105,180"   
    A01 6737689 6754243 A01 114627734   114627493   "255,105,180"   
    A01 3587538 3609685 A01 12372957    12373079    "255,105,180"   
    ###################
    ##= mRNA pos =##
    ## 前3列还是位置,第四列是一列1,TBtools中可以设置bin大小,然后对第四列计算,这里都设置成1就是一会会用这个1求和,那么就是密度值。
    A01 45486   49597   1
    A01 60648   62498   1
    A01 66475   68196   1
    ###################
    
    20200817220140.jpg

    当然这一步只是设置了track的参数,而染色体和link具体的参数还没有设置,show my circos plot之后再在里面详细设置

    20200817220412.jpg

    现在有点丑,主要原因是没有设置染色体框架的位置和参数,还有link也没有设置。下面美化它

    20200817221414.jpg

    最后调整

    CJ说配色太轻佻了,哈哈 老夫的少女心啊!然后改了比较暗的颜色,自己加了legend。

    相关文章

      网友评论

        本文标题:『TBtools-circos』谁说TBtools画的图丑!老夫

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