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

国际惯例,先上图


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。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350