美文网首页
circos 学习手册(二十四)

circos 学习手册(二十四)

作者: 名本无名 | 来源:发表于2020-12-31 18:21 被阅读0次

    2D 数据绘制(五)

    9. 字形—Part I

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

    <rule>
    condition  = 1
    value      = X
    </rule>
    

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

    # first change color
    <rule>
    condition  = var(value) eq "A"
    color      = red
    flow       = continue
    </rule>
    
    <rule>
    condition  = var(value) eq "T"
    color      = blue
    flow       = continue
    </rule>
    
    <rule>
    condition  = var(value) eq "C"
    color      = green
    flow       = continue
    </rule>
    
    # change label text, for all data points
    <rule>
    condition  = 1
    value      = X
    </rule>
    

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

    <plot>
    label_font = glyph
    
    <rules>
    ...
    <rule>
    condition = 1
    value     = m
    </rule>
    ...
    </rules>
    

    符号字体定义了以下字符

     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
    
    image.png 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 表示剩余的基因,使用下面的规则改变基因的字形颜色

    <rules>
    
    flow = continue
    
    <rule>
    condition  = var(value) =~ /cancer/
    color      = red
    </rule>
    
    <rule>
    condition  = var(value) =~ /omim/
    color      = green
    </rule>
    
    <rule>
    condition  = var(value) =~ /other/
    color      = blue
    </rule>
    
    <rule>
    condition  = 1
    value      = N
    </rule>
    
    </rules>
    

    通过设置规则隐藏基因

    <plot>
    
    r0 = 1r+10p
    r1 = 1r+200p
    color = red
    ...
    
    <rules>
    
    <rule>
    condition  = var(value) !~ /cancer/
    # hide anything that doesn't match "cancer"
    show = no
    </rule>
    
    <rule>
    condition  = 1
    # circle
    value = N
    </rule>
    
    </rules>
    
    </plot>
    

    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))
    
    image.png

    11. 连接器

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

    连接器的定义为

    <plot>
    
    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
    </plot>
    

    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) 中均匀抽样的随机数.

    <rule>
    condition = rand() < 0.1
    show      = no
    </rule>
    

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

    12.3 随机格式化数据

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

    <rule>
    condition = rand() < 0.5
    color     = red
    </rule>
    

    12.4 隐藏热图元素

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

    type         = heatmap
    ...
    color        = black,grey,vlgrey,white,lgreen,green,dgreen
    ...
    </plot>
    

    12.5 相邻直方图

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

    <plot>
    type         = histogram
    ...
    orientation  = in
    r0           = 0.65r
    r1           = 0.75r
    ...
    </plot>
    
    <plot>
    type         = histogram
    ...
    orientation  = out
    r0           = 0.75r
    r1           = 0.85r
    ...
    </plot>
    

    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 学习手册(二十四)

          本文链接:https://www.haomeiwen.com/subject/sifxoktx.html