如何使用R语言包circlize可视化展示blast双序列比对结果

技术如何使用R语言包circlize可视化展示blast双序列比对结果如何使用R语言包circlize可视化展示blast双序列比对结果,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题

如何用R语言包circlize实现blast双序列比对结果的可视化显示,针对这个问题,本文详细介绍了相应的分析和解答,希望能帮助更多想要解决这个问题的朋友找到更简单易行的方法。

Circlize是一个功能强大的包,用R语言画圆图非常方便。

今天,本文记录了用circlize画一个圆图来显示blast双序列比对结果的代码。

关于植物线粒体基因组的文章通常分析细胞器和基因组之间的基因转移,基本的分析方法是blast比较。可视化可以用这个圆形图来完成。

首先,使用blast构建数据库比较。

makebstdb-inmt . fasta-dbtypenucl-out mt

blastn-querycp . fasta-dbmt-outmt6 output . txt

然后准备好数据,画出最外面的圆来显示这两个序列。

df-data.frame(chr=c(rep('叶绿体',2),rep('线粒体',2)),

x=c(1,131478,1,444567),

y=c(0,1,0,1))

df

chrxy

1叶绿体10

2叶绿体1314781

3线粒体10

4线粒体4445671

然后读取blast的输出。

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

用于映射的代码

库(循环)

图书馆

库(复杂热图)

col-rcolorbrewr : brewer . pal(6,‘配对’)

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){ 0

circos.axis()

},轨道.高度=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"))

 

如何使用R语言包circlize可视化展示blast双序列比对结果
image.png

 新学到的两个知识点

调整整体的角度

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参数

 遇到的问题是

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

关于如何使用R语言包circlize可视化展示blast双序列比对结果问题的解答就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/78660.html

(0)

相关推荐

  • http2的真正性能到底如何

    技术http2的真正性能到底如何http2的真正性能到底如何,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、研究目的http2的概念提出已经有相当长一

    攻略 2021年11月16日
  • C#泛型类概念举例分析

    技术C#泛型类概念举例分析这篇文章主要讲解了“C#泛型类概念举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#泛型类概念举例分析”吧!C# 泛型类封装不是特定于具

    攻略 2021年12月2日
  • 怎么打出拼音声调,怎么打出汉语拼音声调符号

    技术怎么打出拼音声调,怎么打出汉语拼音声调符号打开WORD后怎么打出拼音声调,选择“插入→符号”,在符号→子集”选项里选择“进格的修饰字符”,里面就有汉语的声调符号.如图所示. 拼音声调
    拼音声调是指普通话中的声调,通

    生活 2021年10月21日
  • java多线程梳理,1)

    技术java多线程梳理,1) java多线程梳理(1)要开始了解多线程的知识我们先得理解线程是什么线程和进程之间关系
    线程是什么
    线程是程序的一个指令序列,具有传统进程所具有的特征,故又称为轻型进程或进

    礼包 2021年11月4日
  • 猪宝宝小名,你孩子的名字是自己起的吗

    技术猪宝宝小名,你孩子的名字是自己起的吗是的,把我和孩子带坑里去了猪宝宝小名。尤其是我女儿的。生产前并不知道性别,所以就没先给孩子取名,出生后也才被告知要3天内取名,所以当时挺急的,女儿又是双方家庭的第一个孩子。此为背景

    生活 2021年10月30日
  • 如何理解mysql的锁机制

    技术如何理解mysql的锁机制本篇文章为大家展示了如何理解mysql的锁机制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 锁0.1 锁机制当前MySQL已经支持 ISAM, M

    攻略 2021年11月16日