共线性分析

如何使用Circos-3:Tick and Ldeogram 简

2018-02-11  本文已影响62人  思考问题的熊

说明,该系列原文写于2016年3月。

如何使用Circos(1):总体介绍 中,我们已经展示了一个最简单的Circos示例“hello world”。
这一部分内容,我们将简单地介绍其他几项常用内容的基础应用范例,并对一些需要注意的地方进行注释和说明。
在学习这部分内容时,可能需要我们通过反复调整一个参数来直观的感受它的作用,为了提高效率,你应该记住下面这条规则:

任何一个参数A,都可以被参数A*覆盖,而参数A**则可以覆盖A*

例1 circos.conf

<image>
<<include etc/image.conf>>
file* = myfile.png #自定义图片名称
radius* = 1000p #自定义图片大小
</image>

首先简单介绍ideogram的labels,ticks,和模块化配置的内容。
我们会为之前的那个图像添加tick marks, tick labels and ideogram labels。
这里需要用到<ticks>block and 扩展的 <ideogram> block.
为了使配置文件更加模块化更加整洁, tick 和 ideogram 参数将会分别保存在不同的文件中再通过使用<<include>> 指令来引用。

例2.1:circos.conf

备注1:关于文件命名的问题在这里做一个提示,不建议修改circos.conf这一文件名,因为系统在运行时或默认搜索以这一名字命名的配置文件,为了更方便的管理数据,可以将一套配置文件和原始数据置于同一个目录下,对不同的目录进行重命名。

karyotype = karyotype.eui.txt

# 首先为了表示和操作的方便,我们会为跟据染色体本身的长度来设定一个单位,用 "u"来表示, 在后续的参数设置中,例如设置 ideogram 和 tick 的spacing, 我们就可以通过使用单位"u" 来代替若干个"0"。
#不需要写spacing = 10000000,而是使用spacing = 10u

chromosomes_units = 1000000

#在这个例子中我们使用人的染色体,根据人染色体长度的数量级,设置chromosomes_units = 1000000
#如果我们要展示的是一个长度为5000的内容,可以设置为chromosomes_units = 10。
#这一参数需要根据你想展示的细节和信息来进行调整。

# ideogram 和 ticks 两部分内容我们写在单独的文件中,会在下文进行展示。在circos.conf的文件中我们只是需要将其引入即可,这种方式在后续的多个模块的使用中还会遇到。
<<include ideogram.conf>>
<<include ticks.conf>>

#下面的内容是每一个配置文件都需要涉及的默认引用内容,一般情况下不需要更改默认的配置。
<image>
<<include etc/image.conf>>
</image>

<<include etc/colors_fonts_patterns.conf>>
<<include etc/housekeeping.conf>>

例2.2:ticks.conf

#下面这两个参数是全局的配置,决定了你图像中染色体上否会显示刻度以及刻度上的数字。

show_ticks = yes
show_tick_labels = yes

#show_ticks = no不会显示刻度上的数字,效果见example3文件夹中的circos2.png
#show_tick_labels = no 则不会刻度和刻度上的数字,效果见example3文件夹中的circos3.png

<ticks>
radius = 1r
#修改刻度线的半径,修改为1.2r后的效果见circos9.png
color = black
#修改color会改变刻度线的颜色,效果可将circos4.png和原图进行对比
thickness = 2p
#修改刻度线的宽度,改为8p后的效果见circos9.png

# 数字展示形式
# multiplier这一参数是为了调整刻度上数字的位数
multiplier = 1e-6
#修改multiplier = 1e-2 显示数字会从50变为500000,见circos5.png

#以下四个参数可以确定数字的展示效果,比如整数形式,或者若干位小数。
# %d - integer整数
# %f - float 小数
# %.1f - float with one decimal 一位小数
# %.2f - float with two decimals 两位小数

format = %d

<tick>
#这个<tick>中的内容是每一条染色体上小刻度线的参数

spacing = 5u
#间隔,和后面的spacing = 25u对比理解
#这里开始使用在circos.conf中自定义的长度u
#改为8u刻度宽度的变化效果见cirocs10.png

size = 10p
#尺寸,改为30后的效果见circos11.png
</tick>

<tick>
#因为spacing长度的改变,这个<tick>中的内容是每一条染色体上长刻度线的参数
spacing = 25u
#这里的cpacing是上一个spacing的五倍,在图中的展示效果就是每两个长刻度之间被小刻度线分为5份。
#改成15U后的效果见circos2.png

size = 15p
show_label = yes #是否要展示数字
label_size = 20p #展示数字的大小
label_offset = 10p #偏移量,刻度尺上的数字离刻度线的距离
format = %d #展示形式
</tick>

</ticks>

例2.3 ideogram.conf

<ideogram>

<spacing>
default = 0.005r
# 通常使用默认值即可,表示两个染色体之间的距离。
</spacing>

# 接下来定义Ideogram 的位置,填充和轮廓等参数。
radius = 0.90r # 半径
thickness = 20p # 厚度
fill = yes # 是否填充
stroke_color = dgrey # 颜色
stroke_thickness = 2p # 厚度

#效果可以和circos14.png 进行对比
#radius = 0.80r
#thickness = 25p
#fill = yes
#stroke_color = blue
#stroke_thickness = 5p

#对ideogram 的标签进行最基本的设置
show_label = yes
label_font = default #默认字体 bold light 等等
label_radius = dims(image,radius)-60p #标签的位置
label_size = 30
label_parallel = yes
#这个参数是设置label和圆圈是否平行,如果选择no则垂直于圆的直径。效果可以参考circos15.png

</ideogram>

有了上述三个配置文件和对应的原始数据,就可以在”hello world”的基础上,得到一个带有刻度和标签的结果了,效果可以参考下图


补充内容:ideogram的选择、比例、颜色和方向。

#circos默认展示 karyotype file 中的全部内容,但是我们可以选择只展示一部分。

karyotype = data/karyotype/karyotype.human.txt
chromosomes_units = 1000000

#和chromosomes相关的参数可以可以帮助我们完成这一需求。
chromosomes = /hs[1-4]$/
#显示连续的几个染色体
#也可以chromosomes = hs1;hs2;hs3;hs4

# 如果我们想让某一条染色体在图中占据固定的比例,而非按照其长度进行默认分配,可以通过使用相对量或者绝对量来进行设定。
#绝对量缩放,
hs1=0.5

#当使用相对单位 "r"其含义是相对于圆形周长的多少.
#因此
hs1=0.5r
#将会使hs1占据整个图表的一半.

#为了使其它几条要展示的染色体在剩下一半的空间里均匀分布,我们可以使用 "rn" 后缀 (relative normalized).
# /hs[234]/=0.5rn 将会使 hs2, hs3, hs4 各占图中的16%

chromosomes_scale = hs1=0.5r,/hs[234]/=0.5rn

#默认情况下,展示方向是顺时针方向. 但是可以在<image> block使用 'angle_orientation' (clockwise or counterclockwise).

#也可以使用'chromosomes-reverse'将某一条染色体方向扭转

chromosomes_reverse = /hs[234]/

# ideogram颜色会在原始数据中进行设定,但是想对几个染色体的颜色进行设定,可以使用 'chromosomes_color'

chromosomes_color = hs1=red,hs2=orange,hs3=green,hs4=blue

# 所有ideograms 的位置在<ideogram> block 通过 'radius半径' 设定,想要改变某一个的特定位置可以使用 chromosomes_radius.

chromosomes_radius = hs4:0.9r
#注意,大于1可能会显示不全,或者不显示

加入靠谱熊基地,和大家一起交流
上一篇 下一篇

猜你喜欢

热点阅读