circos 学习手册(二十四)

2D 数据绘制(五)

9. 字形—Part I

规则不仅可以用于调整标签的文本,也可以为所有标签设置值


condition  = 1
value      = X

你可以把这个规则和其他规则结合起来。例如,如果文本是序列,则可以根据其标识设置字符的颜色,然后将其更改为其他值。

# first change color

condition  = var(value) eq "A"
color      = red
flow       = continue



condition  = var(value) eq "T"
color      = blue
flow       = continue



condition  = var(value) eq "C"
color      = green
flow       = continue


# change label text, for all data points

condition  = 1
value      = X

你可以通过更改字体并将文本标签调整为所需的字形(fonts/symbols/symbols.ttf)。例如,用符号字体设置方形符号


label_font = glyph


...

condition = 1
value     = m

...

符号字体定义了以下字符

 small
 | medium
 | | large
 | | |
 a b c   square
 d e f   rhombus
 g h i   triangle up
 j k l   triangle down
 m n o   circle

upper case - solid
lower case - hollow
circos 学习手册(二十四)_第1张图片
image.png
circos 学习手册(二十四)_第2张图片
image.png

10. 符号—Part II

将标签改为符号是制作一般字形轨迹的理想选择。例如,考虑一个基因列表(data/6/genes.glyph.txt

...
hs12 56428271 56432431 CDK4_cancer
hs12 64504506 64595566 HMGA2_cancer
hs12 64504506 64638901 P52926_cancer
...
hs10 108323411 108914282 SORCS1_omim
hs10 111614513 111673192 XPNPEP1_omim
hs10 111755715 111885310 ADD3_omim
...
hs7 139864688 139948811 DENND2A_other
hs7 140019421 140041377 ADCK2_other
hs7 140042949 140052913 NDUFB2_other
...

其中 _cancer 后缀表示癌基因,_omim 表示疾病相关的,_other 表示剩余的基因,使用下面的规则改变基因的字形颜色



flow = continue


condition  = var(value) =~ /cancer/
color      = red



condition  = var(value) =~ /omim/
color      = green



condition  = var(value) =~ /other/
color      = blue



condition  = 1
value      = N



通过设置规则隐藏基因



r0 = 1r+10p
r1 = 1r+200p
color = red
...




condition  = var(value) !~ /cancer/
# hide anything that doesn't match "cancer"
show = no



condition  = 1
# circle
value = N





10.1 用符号密度绘制

最后看一个例子,其中符号的大小编码数据点的密度。circos 不会为你计算密度,但你可以预处理数据并将密度编码为标签大小。

data/6/gene.density.txt 文件中

...
hs1 3000000 3000000 cancer label_size=1
hs1 6000000 6000000 cancer label_size=2
...
hs1 1000000 1000000 omim label_size=9
hs1 2000000 2000000 omim label_size=14
...
hs1 1000000 1000000 other label_size=26
hs1 2000000 2000000 other label_size=10
...

使用规则,你可以将 label_size 重新映射到另一个值,原来的值范围是 1p42p

# linear remap to [6,50]
label_size = eval(remap_int(var(label_size),1,42,6,50))

# ... with shallower increase
label_size = eval(remap_int(sqrt(var(label_size)),1,sqrt(42),6,50))

# ... with steeper increase
label_size = eval(remap_int(var(label_size)**2,1,42**2,6,50))
circos 学习手册(二十四)_第3张图片
image.png

11. 连接器

连接器是连接 ideogram 上两个径向位置之间的铰接线段

连接器的定义为



type = connector
file = data/6/connectors.txt

r0   = 0.8925r
r1   = 0.999r

connector_dims = 0,0.3,0.4,0.3,0

thickness = 2
color     = black

connector_dims 参数控制连接器的线的形状,这条线有 5 个片段,5 个值定义了每个片段的大小

数据文件定义了用线连接 r0r1 的位置

# connectors.txt
...
hs22 15116257 16046604
hs22 15136864 16056568
...
image.png

12. 组合绘制

在本节中,我们创建一个包含大量轨迹的图像,包括前面讨论的所有类型。

这张图片看起来像是心脏病发作,所有,如果不是为了探索 circos 的语法,并不建议这样做

12.1 在数据层之间放置高亮

当高亮显示定义为 plot 块时,你可以使用 z-depth 值将其放置在其他数据层中的任何位置

高亮绘制在热图的上方,但在折线图、直方图、线和图块下面。

12.2 随机抽样数据

你可以选择使用包含对随机数生成器的调用规则来随机隐藏数据点,Perl 函数 rand() 函数返回从 [0,1) 中均匀抽样的随机数.


condition = rand() < 0.1
show      = no

在这种情况下,平均 10% 的数据点不会出现。每次创建图像时,将隐藏一组不同的点。

12.3 随机格式化数据

例如,要使 50% 的点是红色的


condition = rand() < 0.5
color     = red

12.4 隐藏热图元素

你可以使用 show=no 来隐藏热图元素,也可以颠倒颜色列表,并在列表中包含背景颜色

type         = heatmap
...
color        = black,grey,vlgrey,white,lgreen,green,dgreen
...

12.5 相邻直方图

可以通过堆叠两个直方图来创建一个浮动的直方图。外部直方图的朝向是向外,内部直方图朝向内


type         = histogram
...
orientation  = in
r0           = 0.65r
r1           = 0.75r
...



type         = histogram
...
orientation  = out
r0           = 0.75r
r1           = 0.85r
...

12.6 相邻 ideogram 半径

调整 ideogram 的字符标识及区域半径

chromosomes        = hs2[a]:5-35;hs2[b]:40-75;hs2[c]:80-115;hs2[d]:120-155;hs2[e]:160-195;hs2[f]:200-240
chromosomes_radius = a:0.95r;b:0.9r;c:0.85r;d:0.8r;e:0.75r;f:0.7r

最后图片长这样

image.png

你可能感兴趣的:(circos 学习手册(二十四))