上海锐翌生物科技有限公司

服务电话:021-51001612

邮箱:support@realbio.cn

技术课堂

还不会绘制好看的Circos热图?快来了解一下
发布时间:2018-04-04 11:30   点击率:
Circos圈图起初是为了基因组序列相关数据的可视化,比如甲基化,组蛋白修饰,snp等。现在Circos可以实现大多数关系型数据的可视化,可以应用于各个领域。
Circos有多种方式来展示各类数据,如使用直方图,热图来展示SNP,InDel在染色体上的分布,基因的表达等信息。这就使得Circos图一圈一圈的看起来很是复杂,但我们将其分解开一点一点的看,就会发现Circos图没有那么困难。今天我们一起来看下Circos热图和颜色相关设置。


01. 热图
热图的设置写在<plots></plots>中,每个热图要单独一个<plot></plot>,一个简单的热图参数如下:
<plot>
#选择画图的类型
type = heatmap
#文件路径
file =
#热图的位置,可以使用r表示,也可以用r和p共同表示。
r1 = 0.89r  #1r+20p
r0 = 0.88r  #1r+10p
</plot>
效果如图:



02.  热图颜色的计算
#计算方法:
#f = (value - min) / ( max - min )
#n =  0      if f < 0
#    N      if f > 1
#    N * f  otherwise   
# 由上面的公式计算出代表颜色的 n 值,每个n 对应一系列的颜色 c[n], i=0..N。
#多种颜色用,号隔开,也可以直接使用circos的colorlist
color = color1,color2,.....  #blues-4-seq 即为下图左边的热图颜色。       

# 设定 scale_log_base 参数。
计算颜色的方法如下: 
# n = N * f ** (1/scale_log_base)   
# 若scale_log_base > 1,则颜色向小方向靠近;  
# 若scale_log_base < 1,则颜色向大方向靠近。
#方格间的边界线可以用stroke_color,stroke_thickness 来指定颜色和宽度,这里指定宽度为0,也就是没有边界线。
颜色设定既可以是渐变的,也可以是离散的(如上图)。


03. 自定义颜色
circos的颜色可以通过查看etc/colors.brewer.conf来得到,如果你对circos的颜色不满意,你可以用rgb或HSV自己定义颜色:
如用rgb定义:
<colors>
#添加test1,test2,分别是下图右边内圈的2种颜色(白色,浅蓝色)。
test1=245,245,240
test2=37,101,179
#使用默认的颜色
<<include etc/colors.conf>>
</colors>

除了可以在<colors></colors>中修改颜色,也可以直接在etc/colors.brewer.conf中添加,方便一直使用。

锐翌原创文章,未经授权严禁转载。