circlize这个包还挺强大的,R语言里用来画圈图还挺方便的。 今天这篇文章记录用circlize这个包画圈图展示blast双序列比对结果的代码

植物线粒体基因组类的文章通常会分析细胞器基因组间基因转移情况,基本的分析方法就是blast比对。可视化展示可以选择用这个圈图来做

首先是使用blast建库比对

makeblastdb -in mt.fasta -dbtype nucl -out mt
blastn -query cp.fasta -db mt -outfmt 6 > output.txt

首先是准备数据用来画最外圈用来展示两条序列的部分

df<-data.frame(chr=c(rep("chloroplast",2),rep("mitochondrial",2)),x=c(1,131478,1,444567),y=c(0,1,0,1))> dfchr      x y
1   chloroplast      1 0
2   chloroplast 131478 1
3 mitochondrial      1 0
4 mitochondrial 444567 1

然后是读入blast的输出结果

df1<-read.csv("output6.txt",stringsAsFactors = F,header=F,sep="t")

作图用到的代码

library(circlize)
library(RColorBrewer)
library(ComplexHeatmap)
col<-RColorBrewer::brewer.pal(6,"Paired")
circos.par("start.degree" = 130)
circos.initialize(factors = df$chr,x=df$x)
circos.trackPlotRegion(factors = df$chr,y=df$y,panel.fun = function(x,y){circos.axis()},track.height = 0.1)
highlight.sector(sector.index = "chloroplast",col=col[1])
highlight.sector(sector.index = "mitochondrial",col=col[2])
circos.text(x=70000,y=0.5,labels = "chloroplast",sector.index = "chloroplast")
circos.text(x=220000,y=0.5,labels = "mitochondrial",sector.index = "mitochondrial",facing = "outside")
col_fun = colorRamp2(c(70,90,100),c("green", "yellow", "red"))
for (i in 1:13){x<-sort(c(df1[i,8],df1[i,7]))y<-sort(c(df1[i,10],df1[i,9]))z<-df1[i,3]circos.link("chloroplast",x,"mitochondrial",y,col=add_transparency(col_fun(z)))
}
circos.clear()
lgd_links = Legend(at = c(70, 80, 90, 100), col_fun = col_fun, title_position = "topleft",title = "identity(%)")
lgd_list_vertical = packLegend(lgd_links)draw(lgd_list_vertical, x = unit(10, "mm"), y = unit(10, "mm"), just = c("left", "bottom"))

新学到的两个知识点

调整整体的角度

circos.par("start.degree" = 130)

调整用来表示染色体的外圈粗细

circos.trackPlotRegion(factors = df$chr,y=df$y,panel.fun = function(x,y){circos.axis()},track.height = 0.1)

画图的时候可以加一个track.height参数

遇到的问题是

调整外圈的刻度,现在展示的有点多,我想增大间隔,减少展示的数字,暂时不知道如何实现。

添加图例参考了文章

https://jokergoo.github.io/circlize_book/book/legends.html

欢迎大家关注我的公众号 小明的数据分析笔记本

r语言remarkdown展示图_使用R语言包circlize可视化展示blast双序列比对结果相关推荐

  1. r语言remarkdown展示图_解决R markdown 图片显示不完整

    R markdown功能多多 可以用网页HTML.PDF.Word等多种展示方式.做presentation非常有用,文件小,内容大.最近我想做一个R Markdown写一些作用,然后发现R Mark ...

  2. r语言绘制雷达图_用r绘制雷达蜘蛛图

    r语言绘制雷达图 I've tried several different types of NBA analytical articles within my readership who are ...

  3. python使用matplotlib可视化线图(line plot)、为可视化图像添加双Y轴、分别可视化不同范围的数据(double y axis in matplotlib)

    python使用matplotlib可视化线图(line plot).为可视化图像添加双Y轴.分别可视化不同范围的数据(double y axis in matplotlib) 目录

  4. r语言 python 互联网数据分析_对比R语言和Python,教你实现回归分析

    变量之间关系可以分为两类: 函数关系:反映了事务之间某种确定性关系 相关关系:两个变量之间存在某种依存关系,但二者并不是一一对应的:反映了事务间不完全确定关系:相关系数(r)可以衡量这种相关关系. r ...

  5. R语言绘制箱图(Base R and ggplot2)

    R语言绘制箱图 目录 R语言绘制箱图 R原生绘制箱图 ggplot2绘制箱图 箱图boxplot(有时称为Box-and-Whitker plot)是一种显示

  6. r语言java环境安装_【R语言入门】R语言环境搭建

    说明 R 语言是一个功能十分强大的工具,几乎绝大多数的数据分析工作都可以在 R 中完成,并且拥有很极强的绘图功能支持,能让你手中的数据以各种姿势进行可视化呈现,而且支持 Windows.Mac OS. ...

  7. R语言绘制热图实践(一)pheatmap包

    目录 前言 pheatmap包 pheatmap简介 常用参数介绍 使用 安装 绘制样本间相关系数图(简单使用) 差异表达基因热图(进阶使用) 如何查看pheatmap的聚类结果 pheatmap总结 ...

  8. matlab和r语言做热图,案例演示 | R语言绘制热图代码

    本文是个人笔记,请谨慎付费[星球用户可免费看]. 我们在分析了差异表达数据之后,经常要进行热图的可视化展示. 热图(Heat map)是一个以颜色变化来显示数据的矩阵.虽然"热图" ...

  9. java和c语言有关联吗_关于JAVA语言,和C语言有什么联系吗?

    展开全部 Java语言由语法规则和类库两部分组成,其中语法规则确定了Java程序的书写规范,62616964757a686964616fe59b9ee7ad9431333337626264学习好语法规 ...

最新文章

  1. lintcode-136-分割回文串
  2. $.post把表单对象传递过去_第二章 第三节 Request请求对象详解
  3. 服务器怎么清除日志文件,如何清理服务器数据库日志文件
  4. Halcon知识:segment_contours_xld算子
  5. Winform中实现自定义水晶按钮控件(附代码下载)
  6. solver.prototxt文件里面参数含义及其设置
  7. 怎么在云服务器上建网站_云服务器怎么做安全维护
  8. 基于UDP/TCP的网络协议(端口分配)
  9. C语言 1A gt $20,C语言输出 1到20 的阶乘之和
  10. django笔记精炼 200304
  11. 到需要了解AD和LDAP的关系的时候了
  12. 充满艺术范儿!艺术感在线的界面欣赏
  13. 利用spring的CommonsMultipartResolver上传文件
  14. UIScrollView总结
  15. js中普通函数与函数对象
  16. 难以置信:某国产平台制定打包deb规范,竟然没有测试
  17. 5G简介【华为ICT学堂】笔记
  18. Oracle JDK商用费用分析
  19. 面包板电源线怎么接_面包板的结构和使用方法详细介绍
  20. 平平淡淡的真,安安静静的情

热门文章

  1. excel:隔行选取复制功能
  2. c++ 判断文件夹是否存在,不存在则创建(可建多级目录)
  3. hibernate连接mysql数据库步骤_Hibernate (操作步骤)
  4. Go的日志模块glog调研笔记
  5. linux文件IO与内存映射:分散/聚集IO技术(scatter-gather)
  6. linux进程间通信:system V 共享内存
  7. 微信是个坑货4-网页授权
  8. CoreCRM 开发实录 —— Profile
  9. servlet response 中文乱码
  10. 顺序表应用6:有序顺序表查询