如何用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"))
新学到的两个知识点
调整整体的角度
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