circos-中文教程


i Circos 中文教程 目录 一、 目录结构与配置.............................................................................................. 1 1.1 Unix VS windows .............................................................................................. 1 UNIX VS WINDOWS ........................................................................................ 1 Perl 安装 ...................................................................................................... 2 CIRCOS 安装 ................................................................................................ 2 路径分隔符.................................................................................................... 2 配置................................................................................................................ 2 批处理文件.................................................................................................... 2 1.2 DISTRIBUTION DIRECTORY STRUCTURE AND INSTALLATION .......................... 3 在 UNIX 上检查 Perl ...................................................................................... 3 在 WINDOWS 上检查 PERL ........................................................................ 3 安装 perl 模块 ............................................................................................... 3 安装 circos ..................................................................................................... 3 在 UNIX 上安装 Circos ............................................................................... 3 在 Windows 上安装 circos ........................................................................ 4 circos 内容 .................................................................................................... 4 1.3 配置文件-语法,颜色,字体和单位 ........................................................... 6 配置语法........................................................................................................ 6 4 种方法去指定配置参数:全局,轨迹,数据和规则 ............................ 7 外部导入........................................................................................................ 9 动态地评估参数.......................................................................................... 10 颜色.............................................................................................................. 12 字体.............................................................................................................. 16 1.4. 数据文件 ..................................................................................................... 18 文件格式...................................................................................................... 18 1.5 文件位置 ...................................................................................................... 19 1.6 运行参数 ...................................................................................................... 20 二、 快速指南........................................................................................................ 23 1.Hello World(很多编程语言都这样!!你懂的) ....................................... 23 2. 刻度和标签 .................................................................................................... 24 象形标签...................................................................................................... 25 刻度标记和标签.......................................................................................... 26 3. 象形选择、大小、颜色和方向 .................................................................... 27 象形的选择.................................................................................................. 27 IDEOGRAM SCALE ................................................................................... 28 象形方向...................................................................................................... 28 象形颜色...................................................................................................... 29 象形半径位置.............................................................................................. 29 4. 连接和规则 .................................................................................................... 29 ii 自定义颜色.................................................................................................. 29 连接.............................................................................................................. 30 规则.............................................................................................................. 30 更多规则...................................................................................................... 31 5. 直方图 ............................................................................................................ 33 数据格式...................................................................................................... 33 绘制块.......................................................................................................... 34 直方图.......................................................................................................... 34 连接区间 JOINING BINS ........................................................................... 34 填充和轮廓颜色.......................................................................................... 35 直方图方向.................................................................................................. 35 管理默认值.................................................................................................. 35 6 规则 .................................................................................................................. 35 堆积式直方图.............................................................................................. 37 7. 热图 ........................................................................................................ 41 8. 文本 ........................................................................................................ 46 1. 象形 ........................................................................................................ 48 剖析 Circos 图像 ....................................................................................... 48 2. 核型 ................................................................................................................ 50 定义染色体.................................................................................................. 50 细胞遗传学带型.......................................................................................... 51 多物种定义.................................................................................................. 52 适当修改核型文件...................................................................................... 52 带型透明度.................................................................................................. 52 3. 过滤 ................................................................................................................ 54 CHROMOSOMES_DISPLAY_DEFAULT ................................................. 54 CHROMOSOMES ....................................................................................... 54 4. 象形顺序 ........................................................................................................ 54 默认顺序...................................................................................................... 54 通用顺序-第 1 部分-绝对顺序 .................................................................. 55 通用顺序-第 2 部分-相对顺序 .................................................................. 55 通用顺序-第 3 部分-有间隔的相对顺序 .................................................. 55 CUSTOM ORDER - PART 4 - ANCHORS ............................................. 56 CUSTOM ORDER - PART 5 - MULTIPLE GROUPS ............................. 56 CUSTOM ORDER - PART 6 - MULTIPLE GROUPS WITH ANCHORS ...................................................................................................................... 57 5. 裁剪 ................................................................................................................ 58 指定染色体区间.......................................................................................... 58 染色体单位.................................................................................................. 59 坐标轴断层.................................................................................................. 59 组合区间...................................................................................................... 60 6. 间隔和坐标轴断层 ........................................................................................ 62 象形间隔...................................................................................................... 62 通常象形间隔.............................................................................................. 62 iii 坐标轴断层.................................................................................................. 63 7. 标签 ................................................................................................................ 65 8. 可变的半径 .................................................................................................... 66 为标签化的象形设置半径.......................................................................... 67 9. 文本标签 ........................................................................................................ 67 象形 VS 染色体 ......................................................................................... 68 字体.............................................................................................................. 68 象形文本标签.............................................................................................. 68 文本标签标记.............................................................................................. 69 文本标签字体.............................................................................................. 69 文本标签位置.............................................................................................. 69 文本标签方向.............................................................................................. 69 文本标签大小写.......................................................................................... 69 文本标签格式.............................................................................................. 70 10. 连续性与方向 ............................................................................................. 71 角度偏移量.................................................................................................. 71 象形连续性.................................................................................................. 71 象形方向...................................................................................................... 72 三、 高亮.................................................................................................................... 76 1. 楔形高亮 ........................................................................................................ 76 楔形 VS 象形高亮 ..................................................................................... 77 定义高亮...................................................................................................... 77 高亮半径位置.............................................................................................. 78 Z-深度 .......................................................................................................... 78 高亮格式化.................................................................................................. 78 2. 高亮参数-第 1 部分-数据文件嵌入 ............................................................. 79 格式化基因列表.......................................................................................... 79 3. 高亮参数-第 2 部分-使用 z 深度 ................................................................ 80 避免重叠...................................................................................................... 81 4. 高亮参数-第 3 部分-半径位置 ..................................................................... 82 格式化半径位置.......................................................................................... 83 5. 象形高亮 ........................................................................................................ 85 向象形高亮添加透明度.............................................................................. 85 6. 技巧 1 – 象形高亮 ...................................................................................... 87 7. 技巧 2 – 关注基因组的一个区间 .............................................................. 88 继续染色体颜色框架.................................................................................. 89 FOCUS ON GENOMIC REGIONS ........................................................... 91 1 前言 最近在用 Circos 画一些典型的基因组物理图,也在适当的用 circos 的这种展示方 式来表示一些其他的联系,比如遗传图谱 marker 之间的关系、遗传图谱与物理 图谱的对应关系等。所以感觉一步步的把 circos 的英文教程翻译出来,是对自己 的一个锻炼也方便与大家一起交流。废话不多说了,开始吧!!! 一、 目录结构与配置 1.1 Unix VS windows 如果你在安装 perl 或者一些模块时有困难,你可以使用网上的一些资源来解 释如何去下载 perl,如何去在 Linux、Mac OS X 和 Windows 上工作以及如何去安 装模块。如果你任然有困难,你可以把你的问题提交到 Circos group。 需要去安装模块吗?去了解模块安装指导和 Windows 用户教程。 关于 libgd 和 GD 模块有困难?去了解 Perl libgd/GD 教程或者 Paulo Nuin's Installing Circos on Mac OS X. 需要在 Windows 上运行 Bash shell 批处理文件吗?你将需要安装一个 UNIX 命令行 shell,比如 Cygwin。 被错误困住?一个好的策略是去在 Google 上搜索错误信息(比如说 mkdir 权限问题)。 想去更多学习 perl 吗?试试这个网站 learn.perl.org。 UNIX VS WINDOWS 要运行 Circos,你需要 Perl. Perl 是一个解释性语言,这意味着你不需要去编译 Circos 来运 行它。Perl 代码是可执行的,这涉及到解释、编译、运行。 Circos 已经被设计成适合 UNIX 用户:没有用户界面,文本配置和命令行工具。Windows 用户刚开始将发现有些不适应,但是相对来说很快就能熟悉。这部分的教程包含安装,配置, 和 Perl 模块讨论 Circos 使用在 UNIX 和 Windows 上的差异。 你不必去知道 Perl 怎么运行 Circos,你只需要去熟悉:  目录和文件的概念  在命令行下切换目录  在命令行下创建和删除目录  相对路径和绝对路径的概念 不熟悉 DOS 命令行的 Windows 用户应该阅读下面的这些教程。  Windows command line tutorial  Windows command line prompt in 15 minutes 2 PERL 安装 Windows 用户应该不熟悉 Perl。这没什么好担心的,仅仅像是你安装过的其他应用程序一样。 你必须在 DOS 命令行下使用它,但是这很快就能学会。 UNIX 默认是安装了 Perl 的,除非你的系统很古老(用 perl –v 去显示你的 Perl 版本,如果 低于 5.8,那么该更新了),那你已经拥有了一个最近的版本。 Windows 用户应该安装 Strawberry Perl 或者 ActiveState Perl。两者都有包管理器它可以帮助 你安装,更新和卸载模块。如何可能的话,使用管理器去取代 CPAN shell 来安装模块。细 节可以去用看 Perl and Modules section。 CIRCOS 安装 UNIX 用户可以用 tar 来解压 Circos(比如 tar xvfz circos-0.54.tar.gz)。Windows 用户应该使用 Windows 内置的解压软件或者免费的工具像 7-Zip 或者其他的 WinRAR 或者 WinZip 来解压。你将需要首先将文件解压成.tar,再抽取其中的文件。 Circos 安装的细节在 Distribution and Installation 部分。 在命令行中,你需要去想下面的参数来运行 perl 和使用 circos 脚本 perl bin\circos -conf tutorials\2\2\circos.conf Windows 可能不知道该去如何处理 bin\circos 文件 Circos 教程在一个分开的包里你需要去另外下载。 路径分隔符 Windows 使用 \ 作为目录分隔符,但是 UNIX 使用 /。 在教程中将使用 UNIX 的习惯。所 以当你看到下面的格式: tutorials/2/2/circos.conf 配置 因为 UNIX 和 Windows 的目录结构不一样,所以你可能需要去调整教程例子的输出路径。 例如,在UNIX上 /tmp 被用作一个临时目录(可以创建临时文件比如教程图片)。在Windows 上这种目录是不存在的。 你可以用-outputdir 和 -outputfile 参数来重新定义输出的目录和文件。 # 在 windows 上可以这样执行 perl bin\circos -conf tutorials\2\2\circos.conf -outputdir . -outputfile tutorial_image.png 细节可以看 Runtime Parameters section。 批处理文件 在有些工具和教程的目录中你将发现 UNIX 批处理文件,比如下面的这样: # tools/tableviewer/makeimage #!/bin/bash ... cat samples/table-$n.txt | bin/parse-table -conf samples/parse-table-$n.conf | bin/make-conf -dir data ... 3 这是使用 BASH shell 写的不能在 Windows 上运行。你可以去安装个 Cygwin 来运行 UNIX shell。 1.2 DISTRIBUTION DIRECTORY STRUCTURE AND INSTALLATION 在 UNIX 上检查 Perl 对于 UNIX 和 Mac OS X 用户来说,Perl 作为一个基本的安装程序在系统上已经安装好了。 去检查这个,你可以在终端运行下面的这个命令 > which perl 如果你安装了 perl 并且执行目录在 PATH 下,那么将返回这样的结果。 > which perl /usr/bin/perl 或者 > which perl /usr/local/bin/perl 或者其他位置,这依赖于你的安装。如果 which 没有返回任何结果,那你可能没有安装 likely 检查已经安装的 perl 的版本: > perl -v This is perl, v5.10.0 built for ... 在 WINDOWS 上检查 PERL 如果你运行 windows,那么你可能没有安装 perl,perl 的安装在 Perl and Modules 部分。 检查已经安装的 perl 的版本: C:> perl -v This is perl, v5.10.0 built for ... 安装 perl 模块 即使你已经有了 Perl,你将需要一些额外的模块去运行 Circos。 安装 circos 要去大致了解安装过程和 UNIX 与 Windows 上的不同,请参考 UNIX vs Windows section。 首先下载 Circos(download Circos)。内容描述如下: 在 UNIX 上安装 CIRCOS 在 UNIX 系统上,用 tar 工具去抽取 Circos 文件。 > tar xvfz circos-x.xx.tgz > cd circos-x.xx 到了这一步,你可以去运行 Circos 测试下 4 > bin/circos -man 你应该得到一个帮助手册页面,另一方面,如果你得到像下面的错误: -bash: /bin/env: No such file or directory 在你系统上 env 这个二进制文件的位置不是一个标准的位置(例如 Mac OS X)。到这里你 需要在文件中或者系统中去做适当的调整。首先检查你的 env 文件在哪。 > which env /usr/bin/env 现在要么把 bin 和 tools/*/bin 下面所有脚本的第一行改成 #!/usr/bin/env perl 或者更好的方法是做个链接 /usr/bin/env 到 /bin/env > sudo su > cd /bin > ln -s /usr/bin/env env 在 WINDOWS 上安装 CIRCOS Windows 用户应该使用 Windows 内置的解压软件或者免费的工具像 7-Zip 或者其他的 WinRAR 或者 WinZip 来解压。你将需要首先将文件解压成.tar,再抽取其中的文件。 你不需要去移动或者编辑任何文件。 去运行 Circos,你需要去调用 perl 和使用命令行将 circos 脚本作为参数传递给 perl。 C:>perl C:\path\to\circos\bin\circos [any command-line parameters] 任何时候你看到下面这种格式去运行脚本: > tools/bin/binlinks ... 用这种方式代替 C:>perl tools\bin\binlinks ... 同样要注意在 UNIX 文件路径用/最为文件分隔符(例如 /bin/env) 在 Windows 上用\ (像 C:\perl\bin\perl)。 Windows 用户应该安装 Strawberry Perl 或者 ActiveState Perl。两者都有包管理器它可以帮助 你安装,更新和卸载模块。如何可能的话,使用管理器去取代 CPAN shell 来安装模块。细 节可以去用看 Perl and Modules section。 circos 内容 当你下载和解压了 Circos,你将得到下面的目录结构: circos-x.xx CHANGES README TODO bin/ etc/ fonts/ lib/ tiles/ 5 tools/ 教程内容如下: data/ tutorials/ BIN/ Circos 脚本就在这个目录。Circos 是用 perl 写的并且是作为一个单独的可执行程序 (bin/circos)。 DATA/ 这个路径包含大量的数据文件,这些是教程所需要的。大部分这些数据文件是解析过 的 UCSC Genome Viewer Table Browser 的输出。下部分数据文件时包括一些随机产生的数 据。 ETC/ Circos 全局配置文件在这里,想 colors.conf 和 fonts.conf。这些文件是被导入到其他配置文 件(像教程中的配置文件)。颜色和字体配置文件在 Configuration File section 有描述。 教 程配置文件在 tutorials/ 。 FONTS/ Circos 使用 TTF。这些字体在 etc/fonts.conf 中有描述。Circos 只支持 TTF 而不支持 Postscript 或者 OTF。 LIB/ 代码库,这个你不用去看它。 TILES/ 磁贴填充。在教程的 8.15 有讲解。 TOOLS/ 各种帮助工具来为 Circos 进行操作(像连接的计数 用 binlinks)和解析 data (想 tab 格式的 可视化用)。 TUTORIALS/ 教程是单独的作为 Circos 的文档。每个教程都将图像和对应的配置文件关联起来。 6 教程是按组和章节组织的。每个组展示了 circos 的一些特征,并且每个独立的章节展示了配 置文件的语法与特别的特征集。 tutorials/ ... 2/ 1/ 2/ circos.conf ticks.conf ideogram.conf 3/ ... ... 不是所有的教程有 .conf 文件。有些教程,像 Configuration 描述一些内容(像关于 circos 的分布,配置语法,数据文件等),但是没有一些举例的图像所以也没用.conf 文件 。所有 的教程配置文件将从 etc/中导入全局配置文件,比如 fonts.conf, colors.conf 和其他。 1.3 配置文件-语法,颜色,字体和单位 Circos 产生静态图片。这些图片的产生过程是通过一个配置文件的实现的。这个文件通常会 导入其它的配置文件,例如全局的颜色和字体设置。 Circos 没有图形界面。典型的流程如下:  觉得数据该如何被显示(这是最难的部分)  将数据解析成 Circos 格式  构建一个配置文件,自己写或者用教程中的模版  运行 circos 来产生 PNG 和 SVG 格式文件  按发布文章的要求去适当编辑图片文件(像添加图例、文字等) 配置语法 配置文件是用 Config::General 模块来解析的。所有相关的特征像下面这样描述,但是对于那 些倾向于参考 module's man page 来学习语法的细节和解析那些文件。 在配置文件中用这种格式来定义设置: variable = value (变量名=变量值) 注意及时 Config::General 支持用空白符作为一个分隔符,但是 Circos 需要你用=来定义变量。 有些设置是在一个块里面的,来创建一个分级结构。 thickness = 30p fill = yes 7 ... 有些块能够拥有多个实例,例如数据区。典型的,它们被附在另一个块上,这里比 如 file = data/set1.txt color = black ... file = data/set2.txt color = red ... 请确保你的配置文件是被正确的用一个适当的块关闭标签终止 ... # <-- if this is missing, an error will result 4 种方法去指定配置参数:全局,轨迹,数据和规则 在一个配置文件的参数中,4 个位置能被指定。 按照重要性递增的顺序:  在所有绘图块中数据点的全局设置(在或者)  在一个给定的 plot 轨迹中所有数据点的局部设置(在或者)  指定单个数据点(在数据文件中)  使用一个规则(在) 一个规则的参数集合重写了特定的数据文件。一个数据文件参数重写了或者块, 这在或者块中重写了全局参数。 #全局参数 fill_color = white ... # 其他参数 8 # 局部参数被设置成 grey fill_color = grey # 在数据文件中: # # ... # hs1 10 20 0.50 fill_color=dblue # ... # # 数据点将变成 dblue 重写 fill_color= grey 和 fill_color= white. condition = var(value) < 0.33 # 当条件满足时复写之前的参数 # fill_color value, (global, local, data file) fill_color = orange 如果你正在绘制大量的相似的轨迹(像柱状图、热图等),可能的话使用全局参数是很有效 的。当和用轨迹计数器自动追踪位置是特别高效的。在下面的这个例子中,每个绘制将用同 样的最大值和最小值和颜色映射来绘制热图。在每个中,只有一些特异的参数需要去 设置。 type = heatmap min = 0 max = 1 # this color name is a list - see below about color lists color = spectral-4-div file = data.1.txt r1 = 0.6r r0 = 0.5r ... file = data.2.txt 9 r1 = 0.7r r0 = 0.6r ... file = data.3.txt r1 = 0.8r r0 = 0.7r ... file = data.4.txt r1 = 0.9r r0 = 0.8r ... 外部导入 有些设置从不或者很少改变,例如颜色和字体。为了保持主配置文件模块化,这些文件对于 那些静态的值使用<>来导入。两个文件应该从 Circos 的文件目录中的 etc/被导入 # colors, fonts and fill patterns <> # system and debug parameters <> 这个 etc/colors_fonts_patterns.conf 文件它自己也导入了如干其他文件 # etc/colors_fonts_patterns.conf import(etc/colors.conf) import(etc/fonts.conf) import(etc/patterns.conf) 10 Circos 需要那些块用定义来被展示和填充。 通常,我保存表意(ideograms)的配置在一个额外的文件中(ideogram.conf) ,并且对于 标记格式化用(ticks.conf)。因为这些东西的设置是相当冗余的,但是和数据集不相关。 从 额外的文件来导入 ideogram 和 tick mark。 <> <> 主配置文件是很简洁的。此外,如果你正在使用不同的数据集来创建多个图像,你可能使用 同样的 ideogram 和 tick 设置。单独把这些设置保存起来更加合理。 通常 ideogram.conf 和 ticks.conf 被放置在同样的目录比如 circos.conf 的目录,所以 没有必要去添加路径到<>的文件名前。 如果你的参数很少改变,那么考虑为这些配置创建额外的配置文件。 你可以使用<>在配置文件的任何位置,比如 plot 块: file = data.4.txt r0 = 0.8r r1 = 0.9r <> 被包含的文件也可以去包含其他的文件。 当你用 <> 包含一个文件,Circos 将搜索下 面的路径来寻找文件  CONFIG_FILE 的相对位置  CONFIG_FILE_PATH/etc 的相对位置  CIRCOS_PATH/etc  CIRCOS_PATH/../etc  CIRCOS_PATH/..  CIRCOS_PATH 动态地评估参数 在配置文件中,参数都是用下面的语法来设成常数。 variable = value 比如: color = blue 当你想用值或者另外一个函数去指定一个配置参数时,这将会出现很多次。 使用配置值 任何参数都可以用适当的语法被设置另一个参数的值。 11 parameter2 = conf(parameter1) 或者在某个特定块中的参数值 parameter2 = conf(block1,parameter1) parameter2 = conf(block1,block2,parameter1) ... 例如: track_color = blue color = conf(track_color) ... 当配置文件被解析时,简单的替代是在所有的 conf(parameter)字符串被值所替换时才产 生的。 确保你在使用语法时事包括了完全的参数路径。因为: parameter1 = ... 你可以使用 conf(block1,block2,parameter1). 参数的预处理操作 任何参数都可以像 perl 一样被书写和执行。可以用 eval()这个函数来封装参数来实现这个功 能。 thickness = eval(1+1) color = eval("b"."l"."u"."e") eval()函数在被用于参考和人工操作其他配置参数时是非常有用的。例如: track_color = blue track_width = 100 track_start = 0.5 # color=blue color = conf(track_color) # r0 = 0.5r r0 = eval(conf(track_start) . "r") # r1 = 0.5r+100p r1 = eval(conf(track_start) . "r" + conf(track_width) . "p") 12 你正在用单个 conf(parameter)来定义一个参数,你不需要用 eval 函数,因为只是需要一个替 换。但是,如果你需要去人工操作一下值(像追加字符串,代数运算),那我这些表达式必 须像代码那样去执行。 因为 eval 函数需要你书写正确的 perl 语法,出错的可能就大些因此错误率也大。仔细检查, 很容易忘记在调用函数时才有引用,确保你没有一个空单词。 ## OK x = eval( 1.05 . "r" ) ## 下面的 r 没带引用 x = eval( 1.05 . r ) 在块中调用 eval 的参数对于每个数据点是独立被评估的。 自动计数器 Circos 在运行时自懂对已经绘制的图形就行计数。你可以这些变量去自动追踪位置。 具体请看 Automating Tracks. 颜色 通过在主配置文件中包括 etc/colors_fonts_patterns.conf 来实现对颜色字体等的 配置 # circos.conf <> ... 你正在包括原始的 RGB 和 HSV 两种颜色。 # etc/colors.conf # primary RGB colors ... # Brewer palettes # see etc/colors.brewer.conf <> # UCSC genome browser human chromosome colors # see etc/colors.ucsc.conf <> # HSV pure colors # see etc/colors.hsv.conf <> 使用颜色 颜色在使用时是用的颜色名称或者其 RGB 值 13 # using RGB values color = 107,174,241 # using name color = blue 当把颜色作为一个可选的参数时,RGB 的值是需要用()包括的。例如如果你想去为一个 连接添加一个颜色: # using a color name chr1 100 200 chr2 200 250 color=blue,thickness=2 # using RGB value chr1 100 200 chr2 200 250 color=(107,174,241),thickness=2 颜色名称 Circos 中的颜色是用 RGB、HSV 值或者特定的颜色名,这些都可以去查下常用颜色 RGB 对 应表。 # pure orange porange = 255,127,0 # dark pure orange dporange = 234,110,0 # points to Brewer color... orange = oranges-7-seq-4 # ...which is defined in colors.brewer.conf as oranges-7-seq-4 = 253,141,60 颜色名称语法 对于同一个根颜色或者基本颜色,都有不同的变化范围,有 d(dark),l(light)或者 v(very)。 在 Brewer palette 颜色体系中是依次排列的,从淡到重。例如下面的: vvlorange = oranges-7-seq-1 vlorange = oranges-7-seq-2 lorange = oranges-7-seq-3 orange = oranges-7-seq-4 dorange = oranges-7-seq-5 vdorange = oranges-7-seq-6 vvdorange = oranges-7-seq-7 这是在 colors.brewer.conf 有定义: oranges-7-seq-1 = 254,237,222 oranges-7-seq-2 = 253,208,162 oranges-7-seq-3 = 253,174,107 14 oranges-7-seq-4 = 253,141,60 oranges-7-seq-5 = 241,105,19 oranges-7-seq-6 = 217,72,1 oranges-7-seq-7 = 140,45,4 如果你想用原本颜色的话使用 p(pure),例如纯橘色: vvlporange = 255,182,106 vlporange = 255,164,82 lporange = 255,146,54 porange = 255,127,0 dporange = 234,110,0 vdporange = 213,92,0 vvdporange = 193,75,0 可以去看看 etc/colors 下面的具体文件。 下面还有一些具体讲颜色的,我觉得没必要了,一般觉得常用的颜色不够的话就去查查 RGB 表,选几个自己想要的颜色就行。 颜色透明度 用颜色透明度作为颜色的第四个参数 # 0 < alpha < 1 # 0 不透明 # 1 完全透明 red_faint = 255,255,255,0.8 # or alpha 0-127 # 0 opaque # 127 transparent red_also_faint = 255,255,255,102 用 0-1 或者 0-127 来设置颜色的透明度 完全的透明 如果想去创建一个全局的透明设置(像整张图片有一个透明的背景),那么你将需要去定义 一个颜色名为 transparent。 在 color.conf 里设置如下的: # in color.conf rgb transparent = 1,0,0 在 image 中设置 background 为透明色即可使得背景透明: ... background = transparent # 'clear' 也行 ... transparent 和 clear 是保留的,不要将这两个颜色值用作其他颜色。. 15 COLOR SYNONYMS 你可以对颜色重定义: favourite = green almost_favourite = orange ... green = 51,204,94 orange = 255,136,0 但是注意不要弄成死循环了: # don't do this favourite = green green = favourite 颜色列表 一个颜色列表可以通过已经存在的颜色用“,“间隔来定义: red_list = dred,red,lred,vlred 或者更加方便的是是一个正则表达式。可以排序,如果想反过来那么可以调用 rev 函数,例 如如创建一个 9 种颜色的列表: spectral9 = spectral-9-div-(\d+) 同理如果放过来就是: spectral9r = rev(spectral-9-div-(\d+)) 颜色列表一般被用在热图中: heat maps. 染色体颜色框架 染色体的颜色同样被定义了,同 UCSC Genome Browser 相对应,这是一个标准,每个颜色 都以偶自己特定的颜色(人类染色体): chr1 = 153,102,0 chr2 = 102,102,0 chr3 = 153,153,30 ... chrX = 153,153,153 chrY = 204,204,204 其他的颜色集合是根据染色体带来定义的: gpos100 = 0,0,0 gpos = 0,0,0 gpos75 = 130,130,130 gpos66 = 160,160,160 gpos50 = 200,200,200 gpos33 = 210,210,210 gpos25 = 200,200,200 16 gvar = 220,220,220 gneg = 255,255,255 acen = 217,47,39 stalk = 100,127,164 创建自定义颜色 你可以把自己新建的颜色单独放在一个文件中,这样操作修改起来方便些,例如: # in mycolors.conf niceblue = 17,111,227 # all default color definitions <> # this will append your definitions to the block <> You can quickly add colors directly # all default color definitions <> # this will append your definitions to the block <> niceblue2 = 37,101,179 字体 Circos 使用 CMU Modern 字体。 这都可以在 fonts/中找到并和每个独立的定义相关 联。 light = fonts/modern/cmunbmr.otf # CMUBright-Roman normal = fonts/modern/cmunbmr.otf # CMUBright-Roman default = fonts/modern/cmunbmr.otf # CMUBright-Roman semibold = fonts/modern/cmunbsr.otf # CMUBright-Semibold bold = fonts/modern/cmunbbx.otf # CMUBright-Bold italic = fonts/modern/cmunbmo.otf # CMUBright-Oblique bolditalic = fonts/modern/cmunbxo.otf # CMUBright-BoldOblique italicbold = fonts/modern/cmunbxo.otf # CMUBright-BoldOblique 想用一个特定的字体作为一个元素,那么在配置文件中指定这个标签(像 normal,bold), 默认的字体在这 shown here。 如果想添加自己的字体的话,那么你先把下载的字体文件拷入 fonts/中,并在 fonts.conf 中 添加对应的新标签。 17 常用字体见 minifonts.com:  andale mono  anonymous  aurulent sans mono  vera sans mono  courier  dejavu sans mono  droid sans mono  inconsolata  liberation mono  lucida console  lucida typewriter  monofur  pragmata  profont  proggy  saxmono  the sans mono 这些字体在 image 有展示。 单位 许多定量的东西在配置文件中是需要单位去度量的,以下几种:  b (碱基) –表明象形的长度(一般为染色体的碱基数)  p (像素) – 绝对大小像迹半径,标签大小,字大小等  r (相对) – 去定量一个参数相对于另一个参数,有时这比用绝对的像素大小更加直 观。例如,标签半径边缘填充是相对于标签宽度和标签角度是相对于标签高度。  u (染色体单位) – 特别的相对大小表示象形的大小,对应的变量是 chromosomes_unit  n (无单位) –对于无单位的变量 单位一般是在数字的后缀: # 1 pixel padding 1 个像素 padding = 1p # relative padding 相对于标签宽度 padding = -0.25r # radius of track 相对于象形内圈的半径 r0 = 0.5r # 两者可以组合 r1 = 0.5r+200p Circos 为什么坚持使用单位的原因是为了去减少配置文件参数解释时的负担。大量普通的数 据值可以使得文件更快的去检查。 18 1.4. 数据文件 2D 的迹像绘图(),连接() 和 高亮 () 所有需要的额外文 件都要这部分内容。数据格式是很简单的,在 Circos 中创建数据是很容易的。 根据迹的不同形式,输入数据的格式是有点不同的。 文件格式 线,散点,直方图,热图 Line, scatter, histogram 和 heat map 是基因组位置信息中的 2D 数据 #染色体 起始 结束 值 [可选项] chr start end value [options] 磁贴 磁贴 tile 定义染色体上的一个区间。它用来显示覆盖率像 reads 或者 clones。 #染色体 起始 终止 [可选项] chr start end [options] 文本 文本 text 关联基因组上任意位置的字符串,典型的是文本标签。 #染色体 起始 终止 文本 [可选项] chr start end label [options] 如果你想用多个单词作为文本标签,那个用一个 tab 最为分隔符。 连接器 连接器 connector 在同一个染色体上有两个位置点,用直线连接: #染色体 起始 终止 [可选项] chr start end [options] 一个连接器的起始中终止坐标必须在同一个染色体上。 连接 连接 Links 是将同一个染色体或者不同的染色体的两个区间关联起来,它们可以被绘制成线 型或者彩虹状 ribbons. # start of link 连接开始一端 #同一个连接的唯一 ID 起始染色体 起始位置 终止位置 [可选项] UNIQUEID chr start end [options] # end of link 连接终止一端 #同一个连接的唯一 ID 终止染色体 起始位置 终止位置 [可选项] UNIQUEID chr start end [options] 19 binlinks, bundlelinks 和 filterlinks 工具 (在 tools/) 可以被用来操作和分析连 接。 可选项 对于在 plots,links,或者 highlights 中一个数据点的任何格式的可选项都可以单独的在输入 的数据文件中进行设置。 在文件中可选项是是以变量名=变量值的格式设置的: chr start end var1=value1,var2=value2,... 对于一些可选项(像 RGB 颜色值)是要用括号括起来的。 chr start end color=(R,G,B) 文件分隔符 默认地,分隔符是空白符。如果要去改变它,你可以在配置文件中去设置 file_delim 变 量,在 etc/housekeeping.conf 中设置比较好: # etc/housekeeping.conf ... file_delim = \t 如果你想使用多单词文本标签,设置分隔符为 tab 键,在其他文件中(数据文件,或者核型 中)也是可以使用的。 1.5 文件位置 如果你使用的是绝对路径,那么 Circos 就不会去其他地方再搜索了。例如: file = /path/to/file.txt 所以如果没有 /path/to/file.txt 这个文件,那么将会发生错误。 相反,如果你定义相对路径: file = data/file.txt Circos 会按照下面的顺序对不同路径进行搜索:  所有定义在 data_path 变量中的路径 (see etc/housekeeping.conf)  CWD/  CWD/etc  CWD/data  CWD/../  CWD/../etc  CWD/../data  CWD/../..  CWD/../../etc  CWD/../../data 20 5. PERL 和 模块 这里主要是介绍下 Circos 运行所需的一些 perl 模块,在 bin 下面运行./test.modules,缺什么 补什么,这里就不仔细讲了。 > cd bin > ./test.modules 1.6 运行参数 调整 PERL 二进制文件位置 Circos 将使用你环境变量 PATH 中的 perl,如果你使用的是 UNIX,用 which 命令看下 perl 在哪 > which perl 或者用完整路径运行 perl 也行。 > cd /path/to/circos-x.xx > /usr/local/perl-5.14.0/bin/perl bin/circos -conf ... 或者把你的 perl 安装路径添加到 PATH 变量中: > export PATH=/usr/local/perl-5.14.0/bin:$PATH 调整图像输出位置 下一班,调整图像输出路径。要这样做,你可以去修改稿中的一些参数: dir = /path/to/your/output/directory file = yourimage.png ... 使用现有的数据示例 如果你还没用自己的数据,那么你可以用 Circos 提供的一些例子来运行 Circos > cd example # on UNIX systems (for Windows, see README) > ./run # explicitly > ../bin/circos -conf etc/circos.conf # with more debugging > ../bin/circos -conf etc/circos.conf -debug_group summary,io,timer 21 # silently > ../bin/circos -conf etc/circos.conf -silent 改变文件输出路径 在配置文件中已经修改了文件输出的路径和文件名,也可以在命令行中用参数的形式来设 置: > bin/circos -conf etc/circos.conf -outputdir /path/to/your/output/directory -outputfile yourimage.png 其他参数 Circos 是通过文本配置文件来控制的。很多参数是可以通过命令行的形式来设置的: 文件格式设置: > bin/circos -png -svg ... 设置该显示的染色体 > bin/circos -chromosomes "hs1;hs2" 在使用可选项时你可以使用缩写。比如 (e.g. -conf or -configfile). # 开关选项 image_map_use silent cdump debug help man version #开关选项(e.g. -show_ticks or -noshow_ticks) png svg warnings paranoid show_tick_labels show_ticks # 带参数的可选项 debug_group configfile outputdir outputfile 22 chromosomes chromosomes_order chromosomes_radius chromosomes_scale file_delim image_map_file image_map_name usertext1 usertext2 usertext3 usertext4 7. 调试及错误 主要是介绍下在 circos 出错时如何去调试看哪里出错了,主要涉及到一些运行步骤的回显。 Circos 在运行时会详细显示运行信息,如果错误了,会提示那部分内容出错了。这里不做 详细介绍了。 8. PNG 和 SVG 输出 Circos 可以生产 PNG(24 位)和 SVG 两种格式的图片。 dir = /home/martink/www/htdocs/tmp file = circos-tutorial.png # radius of inscribed circle in image radius = 1500p background = white # by default angle=0 is at 3 o'clock position angle_offset = -90 # you may orient your ideograms counterclockwise # angle_orientation = counterclockwise 以上是配置内容,半径是 1500 像素,那么图片的大小为 3000 x 3000 像素大 小。SVG 类似,不细讲了。 23 二、 快速指南 1.Hello World(很多编程语言都这样!!你懂的) 这是第一部分教程来展示如何去从一个模块来创建一个 Circos 图片。然而其他 教程(像 ideograms, scaling, highlights, highlights, 2D data, links) 细化了 Circos 的一些函数,这里作者采用一个更具启发的方法,和你在 Circos course 发现的很相似。 第一部分展示了能生产一个 Circos 图像的最小的配置文件需求。作者用了实用 的这个词因为有些参数在代码中是内置默认的,这些可以排除在外。这些内置默 认的设置很安全,但是不方便。尽管参数有默认值,也有些是你要仔细认真设置 的。最小的配置图片将显示的是 24 条被染色的人类染色体。在教程的讲解中, 我们将添加一些可选的元素进去想带、标签、刻度和一些数据。 最小配置文件: # circos.conf karyotype = data/karyotype/karyotype.human.txt default = 0.005r radius = 0.9r thickness = 20p fill = yes ################################################################## #这些是基本的,在每个 Circos 配置文件中都是必须的。 # # # Included from Circos distribution. <> 24 # RGB/HSV color definitions, color lists, location of fonts, fill patterns. # Included from Circos distribution. <> # Debugging, I/O an dother system parameters # Included from Circos distribution. <> 核型 核型文件总是需要的。它定义了你想展示的染色体的名称、大小和颜色等。因为 Circos 能够显示你想显示的适当的数据,所以这意味着这些数据文件不一定是 限制在染色体(我觉得这点很赞)。片段可是一 contigs、genesi、插入位点, 时间块或者其他可以量化的基于坐标系统的东西。 Circso 有些自带的核型数据文件,像人的、老鼠的和果蝇等模式生物。这些都 在 Circos 特定的目录下 data/karyotype (karyotype file details). 当一些参数像核型文件定义一个文件的位置,这个文件的路径可是是相对的或者 绝对的。如果这是相对的,并且相对于配置文件没被找到,那么将会在 Circos 分布目录找这个文件。这就是为什么在教程中指明 data/karyotype 来找核心配 置文件,尽管在教程中没有这个目录。 (象形)IDEOGRAMS(暂时这么翻译) 当 Circos 有一系列的染色体要被绘制,只有那些定义在象形中的染色体才会被 绘制。并不是所有的都会绘制出来。 这些是有 中的一些参数像 radius(半径), thickness(厚度) and fill(填充)等来完成的。另外,你需要 来定义图形上象形之间 的间隔。 对于一个图像来说,想变得清晰和容量大信息,适当的象形的位置和格式是很重 要的。我在 tutorial section for ideograms 有讲解,大家可以去看看关于象 形的间隔、标签、大小和半径等。 2. 刻度和标签 在这部分的教程中,我将在象形上添加刻度和标签。 要这样做,这个 需要包括标签参数。刻度参数是在中定义的。 25 象形标签 象形的标签可以被放置在象形的任意半径位置上,并且可以灵活的改变格式。下面是最基本 的标签配置: default = 0.005r # Ideogram position, fill and outline radius = 0.90r thickness = 20p fill = yes stroke_color = dgrey stroke_thickness = 2p # Minimum definition for ideogram labels. show_label = yes # see etc/fonts.conf for list of font names label_font = default label_radius = 1r + 75p label_size = 30 label_parallel = yes 半径的位置是用 label_radius 来设置和调整的。 # 相对于象形的外半径 label_radius = 1.1r label_radius = 0.8r # 绝对位置 label_radius = 500p # 相对位置加上绝对偏移量 label_radius = 1r + 100p # 使用图片大小来设置半径 label_radius = dims(image,radius) - 50p # 使用象形位置信息 label_radius = dims(ideogram,radius_outer) + 50p label_radius = dims(ideogram,radius_inner) - 50p 26 这里设置相对位置是都是参考“父容器”的,例如在设置象形的大小位置时是参考图片大小, 当使用迹的位置时是参考象形半径。所以当一个父元素移动的话,那么其他元素也要跟着移 动。 刻度标记和标签 刻度是分组定义的。你可以使用相对或者绝对的刻度,使得刻度定义在一个特定的位置。详 见 entire tutorial is dedicated to ticks。这里展示个最基本的配置。 show_ticks = yes show_tick_labels = yes radius = 1r color = black thickness = 2p # 刻度标签是通过刻度位置来产生的 # 通过 'multiplier' 和 传给'format': # # sprintf(format,position*multiplier) multiplier = 1e-6 # %d - integer # %f - float # %.1f - float with one decimal # %.2f - float with two decimals # # for other formats, see http://perldoc.perl.org/functions/sprintf.html format = %d spacing = 5u size = 10p spacing = 25u size = 15p show_label = yes label_size = 20p label_offset = 10p format = %d 27 每个中最主要的参数是 spacing。它定义了邻近的同一组中两个刻度之间的距离。 典型的是基于 chromosomes_units 参数来定义的,使用 u 可以使得大数据缩小。这里要 注意如一个刻度属于多个组,那么属于刻度较大的那个组的刻度将会被显示出来,例如 50Mb 的刻度将会显示在 spacing=25u 这组,而不会显示在 spacing=5u 这组。 如下的这个例子: 3. 象形选择、大小、颜色和方向 在这部分教程中,我们将调整染色体的大小、颜色和方向。 Getting the ideogram layout right is important. For example, making all chromosomes appear to be the same size can emphasize the comparison between relative positions in patterns. 象形的选择 默认是显示核型文件中所有的染色体,并且以文件中染色体出现的位置来绘制。 如果想去选择一个染色体的自己来展示,那么需要设置 chromosomes_display_default = no 28 chromosomes_display_default = no 并且用 chromosomes 参数来自定义该显示的染色体 chromosomes = hs1;hs2;hs3;h4 或者正则表达式 chromosomes = /hs[1-4]$/ 可以将不同的染色体组合起来 chromosomes = /hs[1-4]$/;hs10;hs11 可以用-去使某些染色体不显示 chromosomes = /hs[1-4]$/;-hs3 用;作为分隔符,为什么不用,呢,因为,在里面是有用的,比如下面的: chromosomes = hs1:(-100,120-);hs2;hs3;h4 IDEOGRAM SCALE 图像上象形的大小可以用相对或绝对单位来设置 绝对大小: # hs1 0.25x zoom # hs2 2.00x zoom chromosomes_scale = hs1=0.25,hs2=2.0 相对与图像的周长大小来定义象形大小: # hs1 25% of figure # hs2 50% of figure chromosomes_scale = hs1=0.25r,hs2=0.50r 在一行中可以一起多设置几个象形的大小 # hs1.hs2 共同占 50%,每个占 25% chromosomes_scale = /hs[12]/=0.5rn 一个有用的设置来选择所有象形: # 所有象形占据整个图片 chromosomes_scale = /./=1rn 象形方向 象形默认的方向是顺时针的方向。你可以用 中的 angle_orientation 来设置 修改。 # *表示是复写一个参数,在这个里面 # angle_orientation 是从 etc/image 导入的,并被赋予不同的值 angle_orientation* = counterclockwise <> 也可以去反转一些象形的顺序,用 chromosomes-reverse chromosomes_reverse = /hs[234]/ 29 象形颜色 在核型文件中已经设置了颜色,如果想去改变它,可以用 chromosomes_color 来设置 chromosomes_color = hs1=red,hs2=orange,hs3=green,hs4=blue 象形半径位置 默认的,所有的象形都是在同一个半径,是由 中的 radius 参数来设置的, 你可以用 chromosomes_radius 来重新定义。 chromosomes_radius = hs4:0.9r 如图: 4. 连接和规则 第一个要添加的迹数据是连接。连接类型是通过曲线或者直线表示两个基因组位置上的关联 (相似度、不同等)。 连接可以用规则来格式化,这就构成了一个决策树来评估每个连接。用于测试连接的规则是 基于数据值的,可以动态的改变一个连接的位置、大小或者其他参数。 但是在添加连接到图片中之前,我想告诉你另一种方法去改变象形的颜色,如果你想去再次 使用图像中其他元素的颜色的话,这将很有帮助。 自定义颜色 人类基因组的染色体都有一些默认的颜色设置,chrN 都有一个特定的颜色,也可以自定义: chromosomes_color = hs1=red,hs2=orange,hs3=green,hs4=blue 30 如果想去改变一些默认设置,可以在中修改,使用*表示复写之前定义的颜色: chr1* = red chr2* = orange chr3* = green chr4* = blue endblock(colors> 连接 连接是定义在 中的,并每个单独的连接都封装在 中。连接的起始端是 在 radius 所指定的地方,并用 bezier_radius 来设定曲线的曲率(弯曲程度) file = data/5/segdup.txt radius = 0.8r bezier_radius = 0r color = black_a4 thickness = 2 规则 规则可以被定义在任何块中,去改变数据(像连接、直方图组宽、散点图等)该如何被格式 化。 每个规则都是封装在 中的: ... ... ... 每个规则都一个判断条件、处理语句和流程(flow)语句。如果判断条件为真,那么这个规 则将适用在这个数据点上,如果 flow 没有设置成 continue 的话,那么就不会再往下检查 其他规则了。var(X) 调用的是变量 X 的值。这里 intrachr 表示在染色体内部(就是起 始和终止在同一染色体上) 31 condition = var(intrachr) # 在同一染色体上的连接将不被显示出来,其他规则的检测将不会做 show = no condition=1 这样的判断条件是用于对所有的连接,因为它总是真。 下面来的例 子说的是把连接的颜色设置成连接终止染色体的颜色。 condition = 1 color = eval(var(chr2)) # 当规则执行后,还要继续看下面的规则是否也符合要求 flow = continue 下面的例子表示如果连接的起始是从 hs1 上开始的,那么规则则适用。 # If the link's start is on hs1... condition = from(hs1) # ...设置连接起始的半径更加接近象形 通过 radius1 = 0.99r 来设置 radius1 = 0.99r # 连接的终止如果是在 hs1 上 condition = to(hs1) # 同上 radius2 = 0.99r 更多规则 规则的测试是按出现的先后顺序来的。你可以自己调整顺序或者设置 importance 参数来 实现。有参数的要先执行并且是安装递减的顺序执行: # 第二 # 第三 # 第一个被测试 importance = 10 32 如果判断条件是真,那么规则适用并且规则链在当前数据点停止。如果你想去改变这种行为, 可以用 flow 这个参数。可以用 if true or if false 来与判断条件相关联: 强制继续(不管判断条件是真还是假): flow = continue {if true|false} 默认处理(不对就测试下一个): flow = continue if false 强制停止测试(不管判断条件是真还是假): flow = stop {if true|false} 重头开始测试(只进行一次,为了防止无限循环): flow = restart {if true|false} 最后,你可以用标签来知道 goto 的地方(想 c 的 goto 一样): flow = goto special_rule if true ... tag = special_rule ... 33 5. 直方图 Lesson Images Configuration 除了能将基因组两个位置关联起来的连接数据类型外,Circos 还可以支持其它几种数据类 型,可以用一个值来关联一个基因组上的位置。 这些数据类型包括线型、散点、直方图和热图。文本数据类型是一个特别的类型,这是用一 个文本值来关联一个位置。 数据格式 线型、散点、热图和直方图是使用同一种数据格式: #染色体 起始 终止 值 [可选项] ... hs3 196000000 197999999 71.0000 hs3 198000000 199999999 57.0000 hs4 0 1999999 28.0000 hs4 2000000 3999999 40.0000 hs4 4000000 5999999 59.0000 ... 可选项域能够关联一个数据点的一个参数,像颜色、ID 等。格式参数被用作去重写数据点 该如何去展示(取代使用规则)。 hs3 196000000 197999999 71.0000 fill_color=blue 34 用户参数,像 id 能被用作去关联和修改数据点。 # in data file hs3 196000000 197999999 71.0000 id=abc # in rule block condition = var(id) eq "abc" fill_color = blue 绘制块 每个直方图是定义在中的一个块。 type = histogram ... type = histogram ... ... 直方图 这部分教程定义两个直方图:一个常规的直方图和一个堆积式直方图。 除了 type 和 file 参数外,你需要去定义一个内圈和外圈半径 r0 和 r1。通常这些值是相对 的,相对与象形来改变的,数据能够随着象形的改变而自动移动。 type = histogram file = data/5/segdup.hs1234.hist.txt r1 = 0.88r r0 = 0.81r 连接区间 JOINING BINS 一个直方图是由若干区间组成的。如果区间不是邻近的,像下面这种情况:(10-20,30-40) hs1 10 20 0.5 hs1 30 40 0.25 你可以用下面的选项去延伸区间的外围当碰到它们邻近的区间时。 extend_bin = no | yes 35 填充和轮廓颜色 一个直方图可以拥有填充部分和轮廓边缘部分。在这个例子中,区间将会被填充成深灰色 fill_color = vdgrey 所有的数据类型都有其默认配置,定义在 etc/tracks/*.conf 中。对于直方图来说, 默认设置是: # etc/tracks/histogram.conf color = black thickness = 1 r1 = 0.89r r0 = 0.8r orientation = out 直方图方向 一个直方图的方向可以是沿半径方向向外也可以是向内: orientation = in | out 管理默认值 可以设置轮廓的宽度为 0 来关闭默认轮廓: thickness = 0p 或者不定义宽度:(undefined) thickness = undef 当然你也可以编辑 etc/tracks/histogram.conf 文件或者修改 etc/housekeeping.conf 来实现。 6 规则 和连接一样,规则被用于动态地修改数据点的格式(像直方图区间)。这里,我使用一个规 则来隐藏了 hs1 染色体上的直方图区间。 condition = on(hs1) show = no 导入规则 因为规则是多次使用的,我将规则存储在一个文件中 exclude.hs1.rule,可以使用 include 进行导入: <> 36 改变格式参数 规则可以改变一个数据点的可视化、格式和值。例如,通过设置 show=no,来使得一个数 据点被隐藏起来: condition = on(hs1) fill_color = blue color = vdblue thickness = 2p 这个规则将重写来自中的任何参数值 规则判断条件 规则中的判断条件同 perl 脚本一样。这种表达式是自动的被解析和执行不需要用 eval()函 数。例如: # applies to every data point - always true 1 # check whether a data point is on a chromosome var(chr) eq "hs1" on(hs1) # shortcut # check whether a data point is not on a chromosome var(chr) ne "hs1" !on(hs1) # combine tests with or (||) on(hs1) || on(hs2) var(chr) =~ /hs(1|22)$/; # check position var(start) > 10Mb # use the value var(value) < 0.05 # use any parameter var(color) eq "red" var(stroke_color) eq "vdred" If a rule has multiple conditions, all of them must be satisfied for the rule to trigger. # data point must be on hs1 and value < 0.05 condition = on(hs1) 37 condition = var(value) < 0.05 ... 在规则中引用数据点参数 你可以用 var(X)来引用定义在数据点中的参数值。例如定义在数据点中的 id 和 mult 参 数: # in data file hs3 196000000 197999999 71.0000 id=abc,mult=5 and then use them in a rule condition = var(id) eq "abc" fill_color = blue value = eval(var(value)*var(mult)) 上述例子中的 value 参数就是数据点中的值。当然,使用规则去改变数据点中的值是可能 的。这里我们将原来的数据点值乘以 mult 来作为新的数据点值,这里要使用 eval 函数。 堆积式直方图 第二种直方图是堆积式直方图。它展示在同一个给定的位置上的不同值。在值这个域里面可 以设置多个值: #染色体 起始 终止 值 1,值 2,值 3 [可选项] hs3 196000000 197999999 0.0000,7.0000,64.0000,0.0000 hs3 198000000 199999999 21.0000,6.0000,18.0000,12.0000 hs4 0 1999999 5.0000,3.0000,1.0000,19.0000 hs4 2000000 3999999 1.0000,6.0000,16.0000,17.0000 hs4 4000000 5999999 1.0000,13.0000,25.0000,20.0000 ... 当把 type 设置成 histogram 并 value 设置成上面这种格式时,Circos 会自动将直方图设 置成堆积式直方图。 同样 fill_color 也可以用来设置堆积式直方图的填充颜色: hs3 198000000 199999999 21.0000,6.0000,18.0000,12.0000 fill_color = hs1,hs2,hs3,hs4 所以对应关系为:hs1 (21.0000), hs2 (6.0000), hs3 (18.0000), hs4 (12.0000). 38 6. 坐标轴与背景 一个数据类型的背景可以用来上色和用 来设置坐标轴: 背景 在 y0 到 y1 的区间内背景元素被填充环状的颜色。当然多个背景也是可以设置的: 如果 y0 和 y1 没有定义,那么这个数据类型的区间将会被作为边界: # 只显示那些有数据的象形的背景 show = data 39 color = vvlgrey color = vlgrey # r 是表示相对于数据类型的变化范围 y0 = 0.2r y1 = 0.5r color = lgrey y0 = 0.5r y1 = 0.8r color = grey # 如果 y1 没有定义,那么绘制的最大边界将是 1r y0 = 0.8r 坐标轴 与刻度很像,坐标轴也是定义在组里的。每个组能被相对的或者绝对的空间隔开。你可以在 特定位置提供一个坐标轴,对于组来说,有等距间隔、忽略某些位置。 spacing – 绝对或者相对的坐标轴等距空间 position – 坐标轴固定的位置 position_skip – 绘制坐标轴线是忽略某些固定的位置 40 y0 – 绝对的或者相对的坐标轴起始位置 y1 - 绝对的或者相对的坐标轴终止位置 color – 坐标轴颜色 thickness – 坐标轴宽度 # 仅显示象形上有数据的坐标轴 show = data thickness = 1 color = lgrey spacing = 0.1r spacing = 0.2r color = grey position = 0.5r color = red position = 0.85r color = green thickness = 2 41 7. 热图 热图被用作去用值来管理基因组上的一个位置或者一个区域。正因为如此,它的 数据格式和直方图的是一样。 这种数据类型是将[min,max]中的值线性的分布在对应的颜色列表上 c[n], i=0..N. f = (value - min) / ( max - min ) #将 value 中心化,转化为颜色列表中对应的下标 42 n = 0 if f < 0 N if f > 1 N * f otherwise 这种数据类型和直方图有很多相同的地方,所以你需要去定义 type,file,r0 和 r1。 type = heatmap file = data/5/segdup.hs1234.heatmap.txt r1 = 0.89r r0 = 0.88r 线性 VS 幂刻度 如果 scale_log_base 设定了,那么将值锚定到颜色就不是线性的了,而是呈幂 刻度的。 n = N * f**(1/scale_log_base) 当 scale_log_base > 1 时, 那么数据值转化为颜色是趋向于最小值的,相反, 当 scale_log_base < 1 时,数据值转化为颜色是趋向于最大值的。 scale_log_base = 5 颜色 热图的颜色是被定义成 CSV 组合或者颜色列表的。 在这里热图的颜色是有 5 个带透明度的颜色和一个完全不透明的颜色组成的。 color = hs1_a5,hs1_a4,hs1_a3,hs1_a2,hs1_a1,hs1 更多的默认颜色设置可以看 etc/colors.conf。 普通颜色 普通颜色 (red, green, blue, purple, orange, yellow, grey),就是这七种。 也可以适当变化: vvlHUE very very light HUE (e.g. vvlred) vlHUE very light lHUE light HUE dHUE dark vdHUE very dark 43 vvdHUE very very dark 细胞遗传学带型颜色 传统的细胞遗传学带型颜色定义如下: gposNNN # NNN = 25, 33, 50, 66, 75, 100 gpos gvar gneg acen stalk 人类染色体颜色 UCSC browser 用了特定的颜色来代表特定的人类染色体,设置如下: chr1 chr2 ... chr22 chrx chry chrm chrun 同样 hs 和 chr 是一样的意思,hs1=chr1 亮度修正染色体调色板定义了染色体颜色的亮度从 L= 70, 80 到 90: lumLchr* # L=70,80,90 e.g. lum70chr1 lum90chr11 布鲁尔调色板 All Brewer pallete colors are available through the syntax PALETTE-N-TYPE-M for color M (M=1..N) in the N-color brewer palette PALETTE of type TYPE (TYPE=seq|div|qual). For each PALETTE, there are several versions for different values of N=I..J. I J TYPE=seq blues 3 9 bugn 3 9 # blue-green bupu 3 9 # blue-purple 44 gnbu 3 9 # green-blue greens 3 9 greys 3 9 oranges 3 9 orrd 3 9 # orange-red pubu 3 9 # purple-blue pubugn 3 9 # purple-blue-green purd 3 9 # purple-red purples 3 9 rdpu 3 9 # red-purple reds 3 9 ylgn 3 9 # yellow-green ylgnbu 3 9 # yellow-green-blue ylorbr 3 9 # yellow-orange-brown ylorrd 3 9 # yellow-orange-red e.g. blues-9-seq-3 (3rd color in 9 color blues palette) rdpu-3-seq-1 (1st color in 3 color red-purple sequential palette) TYPE=div brbg 3 11 # brown-blue-green piyg 3 11 # pink-yellow-green prgn 3 11 # purple-green puor 3 11 # purple-orange rdbu 3 11 # red-blue rdgy 3 11 # red-green rdylbu 3 11 # red-yellow-blue rdylgn 3 11 # red-yellow-green spectral 3 11 # rainbow: red-orange-yellow-green-blue e.g. piyg-11-div-2 (2rd color in 11 color pink-yellow-green diverging palette) TYPE=qual accent 3 8 dark2 3 8 paired 3 12 pastel1 3 9 pastel2 3 8 set1 3 9 set2 3 8 set3 3 12 e.g. set1-5-qual-1 (1st color in 5 color set1 qualitative palette) 45 纯色调 For each pure hue H in HSV space, the color hueHHH is defined hue000 hue001 hue002 ... hue359 hue360 颜色列表 Color lists are named sets of colors used for parameters which accept a list (e.g. heat map color parameter). Lists exist for all Brewer palettes, of the format PALETTE-N-TYPE. For example, reds-5-seq, spectral-7-div and set3-5-qual are all lists. Pure hue lists are available, hue-sN, for each hue step of N (e.g. hue-s2, hue-s5, ...). For example, hue-s5 list is made up of the colors hue000, hue005, hue010, hue015, and so on. N-color hue lists are available as hue-N (e.g. hue-3, hue-10, ...). For example, hue-10 is made up of the 10 colors hue000, hue036, hue072, ... hue324. It is the same list as hue-s32. 透明度 如下 5 个水平: green fully opaque green_a1 16% transparent green_a2 33% transparent green_a3 50% transparent green_a4 66% transparent green_a5 83% transparent 46 8. 文本 文本数据类型是一个 2D 的数据类型,用一个文本标签关联一个基因组位置。 和其它数据类型一样,文本也要设置 r0 和 r1 。 type = text file = data/6/genes.labels.txt r1 = 0.8r r0 = 0.6r ... 你必须设置数据类型的字体、大小等。你也可以设置 padding 和 rpadding 来填充文本 的边缘: label_font = light label_size = 12p 47 rpadding = 5p 文本规则 文本数据类型中的规则和其他一样。 在下面这个例子中,可以看到,当 value 变量中含有 a 或 A 时,设置其字体为粗体,如果 含有 b 或者 B,则设置文本颜色为 blue。 condition = var(value) =~ /a/i label_font = bold flow = continue condition = var(value) =~ /b/i color = blue 48 一、 绘制象形 1. 象形 剖析 CIRCOS 图像 一个 Circos 图像是基于染色体的圆形排列上的。数据类型在圆形图层的内或外的。数据类 型包括能关联基因组上两个位置的连接数据类型,以及散点图、直方图和热图。 Circos 展示的每个数据点或者关系是关联基因组上的一个或者多个位置或坐标(像染色体 和位置)。因此,象形的定义、位置、大小和格式是 Circos 图像的核心。当你定义了象形 该如何被绘制,那么对应的数据类型也相应的被放置在象形上。 记住象形和染色体的异同之处。出于配置文件的目的,染色体时序列的实体,定义在核型文 件中,而象形是染色体的具体化,或者其中的一部分,它组成了最后的 Circos 图像。一个 染色体可能没有象形(当它没有被绘制时),1 个象形(它整个都被绘制了或者只是其中一 个片段)或者大于 1 个象形(当有坐标轴,多个区间被绘制时)。染色体可能被分割成任 意数目的区间,每个展示的一个独立的象形。 配置文件中一个重要的部分就是去控制象形的格式。这部分的教程将按顺序依次来介绍它 们。 你可以用设置中的 show=no 来关闭象形的显示。这个操作将隐藏刻度、 象形和相关的标签,但是象形的数据将会显示。 show = no ... 核型的定义 这是一个需要去定义染色体的大小、ID 和标签的文件。当然,也可以去在这个文件定义传 统细胞遗传学的带型位置。 象形的过滤 核型文件通常是定义了一个基因组中所有的染色体。使用过滤,你可以去选择特定的染色图 去绘制。 象形的顺序 环绕图像的象形的顺序是可以控制的。在某些特殊的情况下,相对于原始的象形顺序你可能 想去重新排列象形的顺序以强调它们之间的数据关联关系。 象形的刻度 49 每个单独的象形的刻度长度都是可以调整的。 象形之间的间隔 每个象形之间的在圆形位置上的间隔是可以全局或者局部修改的。 坐标轴断层 象形的一个区间可能从图像上被移除,或者象形上的几个区间被描述成一个独立的象形。坐 标轴断层可以被用作去表示象形没有被全部绘制出来。 刻度标记格式化 刻度标记格式化和位置都是可以控制的。刻度标记可以被控制来消除相邻标签之间的重叠。 网格 被选中的刻度标记可以延伸到图像中去形成一个弧形的网格。 非线性刻度 刻度长度(多少像素每碱基)可以在每个独立的象形区间中被调整。局部的刻度调整在绘制 一个区间或者去减少它对象形范围的贡献是很有用的。刻度可以改变象形的光滑度。刻度变 化是一个将象形分割成多个片段的连续的方法,用坐标轴断层去调整每个片段的刻度并绘制 它们。 50 2. 核型 核型文件定义了每条染色体的大小、ID(唯一的 ID)、文本(象形在图像中的文本标签) 和颜色。除了定义染色体,核型文件也可以用来定义细胞遗传学上的带型。对于某些基因组 这些带型是可行的。 定义染色体 染色体的定义的格式如下: chr - ID LABEL START END COLOR 头两列永远是“chr”(代表是染色体)和“-”。第二列定义的是父结构只是对于带型的定 义有用。 ID 是染色体的唯一标识,而 LABEL 是将出现在图像中的文本标签。如果你是在展示多个物 种,那么我建议你用物种的缩写(如:hs = homo sapiens, mm = mus musculus 等)。 即使你是在展示一个物种,缩写也是很好的选择,这就帮助你更好的理解配置文件和数据文 件。 START 和 END 的值定义了染色体的大小。这个核型文件应该包括染色体的整个部分而不 是部分区间。其它的配置参数可以来控制该绘制染色体的哪个部分。 象形的 COLOR 将会被使用到,如果你觉得不去显示细胞遗传学的带型,那么就选择这个填 充可选项。颜色有助于去区分不同的染色体和物种。考虑使用定义在 etc/color.conf 中的 传统的染色体颜色。人类的每条染色体都有其对应的颜色,如: chr1, chr2, ... chrX, chrY, chrUn. 核型文件在配置文件中是这样被指定的: karyotype = data/karyotype.human.txt 51 下面是人类染色体的一个例子: chr - hs1 1 0 247249719 gpos25 chr - hs2 2 0 242951149 gpos25 chr - hs3 3 0 199501827 gpos25 chr - hs4 4 0 191273063 gpos25 chr - hs5 5 0 180857866 gpos25 chr - hs6 6 0 170899992 gpos25 chr - hs7 7 0 158821424 gpos25 chr - hs8 8 0 146274826 gpos25 chr - hs9 9 0 140273252 gpos25 chr - hs10 10 0 135374737 gpos25 chr - hs11 11 0 134452384 gpos25 chr - hs12 12 0 132349534 gpos25 chr - hs13 13 0 114142980 gpos25 chr - hs14 14 0 106368585 gpos25 chr - hs15 15 0 100338915 gpos25 chr - hs16 16 0 88827254 gpos25 chr - hs17 17 0 78774742 gpos25 chr - hs18 18 0 76117153 gpos25 chr - hs19 19 0 63811651 gpos25 chr - hs20 20 0 62435964 gpos25 chr - hs21 21 0 46944323 gpos25 chr - hs22 22 0 49691432 gpos25 chr - hsX X 0 154913754 gpos25 chr - hsY Y 0 57772954 gpos25 细胞遗传学带型 带型和上面的染色体定义差不多,只是头两列是"band" 和父染色体的 ID 标识: band hs1 p36.33 p36.33 0 2300000 gneg band hs1 p36.32 p36.32 2300000 5300000 gpos25 band hs1 p36.31 p36.31 5300000 7100000 gneg band hs1 p36.23 p36.23 7100000 9200000 gpos25 ... band hs1 q42.3 q42.3 232700000 234600000 gneg band hs1 q43 q43 234600000 241700000 gpos75 band hs1 q44 q44 241700000 247249719 gneg band hs2 p25.3 p25.3 0 4300000 gneg band hs2 p25.2 p25.2 4300000 7000000 gpos50 band hs2 p25.1 p25.1 7000000 12800000 gneg ... 你可以从 UCSC Genome Viewer Table Browser 来获得染色体的核型或者带型。不是所 有的基因组都有这样的数据。例如老鼠 mouse (mm9) 和 rat (rn4) 有带型数据,但是 dog (canfam2) 和 cow (bostau3)没有。 52 多物种定义 如果你想去绘制多个物种的象形,那么合并它们的核型文件在一个文件中。例如,去绘制购 和人的象形,核型文件应该是这样的: # first dog chromosome definitions - drawn in orange chr - cf1 1 0 125584217 orange chr - cf2 2 0 88392293 orange chr - cf3 3 0 94709905 orange ... # now human chromosome definitions - drawn in green chr - hs1 1 0 247249719 green chr - hs2 2 0 242951149 green chr - hs3 3 0 199501827 green ... 适当修改核型文件 Circos 是被设计去绘制基因组的数据,但这不是一个限制。如果你有任何的位置数据可以 用来组成圆形,那么你可以定义一个抽象的染色体去实现你的要求。如果你有两个整数范围 0-1000 包含了你想去展示的数据,那么你可以这样定义核型: chr - domain1 1 0 1000 green chr - domain2 2 0 1000 red 你甚至可以去定义抽象的带型: band domain1 band1 band1 0 99 grey band domain1 band2 band2 100 199 white band domain1 band1 band1 200 299 grey band domain1 band2 band2 300 399 white ... 核型文件中的定义不一定要去和无聊结果相关联。在这些事物中,你可以定义 contigs, 或 者序列。 带型透明度 细胞遗传学的带型结构是定义在象形的顶层。象形自己可以关联一个颜色-定义在核型文件 中-当带型的透明度打开时,它的颜色才可以被显示出来。 为了去使用带型透明度,你必须先看看中的三个参数: 24bit = yes auto_alpha_colors = yes # 阶级取决于自己 # 透明度的阶级 auto_alpha_steps = 5 当这些设置了后,带型透明度就可以在中设置 band_transparency 了: 53 show_bands = yes fill_bands = yes band_transparency = 4 band_transparency 值的变化范围是 1 到 auto_alpha_steps。当 band_transparency=1, 带型是最不透明的 (透明度计算公式 是 1/(auto_alpha_steps+1), 例如当 auto_alpha_steps=5 时,band_transparency=1 就是对应的 1/6 )。相反,当 band_transparency=auto_alpha_steps 时,就是最透明的。 54 3. 过滤 从图像上去移除一些象形,"chromosomes" 和"chromosomes_display_default" 两个配 置参数将会用得着。 CHROMOSOMES_DISPLAY_DEFAULT 这个参数很有用,当你想去绘制一部分象形时。 CHROMOSOMES 这个参数是被用作去定义那些象形该绘制或者不该绘制。当和象形关联起来时,都是用核型 文件中象形的 ID 而不是其文本标签。(因为 ID 是唯一的标识)。 例如: chromosomes = hs1;hs2;hs3 绘制上面列出的,下面的这个例子将是绘制除去列出以外其它所有的象形。 chromosomes = -hs1;-hs2;-hs3 chromosomes_display_default = yes "chromosomes" 参数中列出的染色体的顺序将不影响最后在图像绘制时的顺序,因为 chromosomes_order 这个参数是来定义绘制顺序的(如果不使用 chromosomes_order 这个参数,那么顺序为在核型文件中出现的顺序)。 4. 象形顺序 象形的顺序是用 chromosomes_order 来定义的。 默认顺序 默认的顺序是染色体在核型文件中出现的顺序。 55 通用顺序-第 1 部分-绝对顺序 完全以染色体名称组成的列表来定义的: chromosomes = hs1;hs2;hs3;hs4;hs5;hs6;hs7;hs8 chromosomes_order = hs2,hs3,hs1,hs5,hs4,hs8,hs7,hs6 新顺序将是:2 3 1 5 4 8 7 6。 注意在 order 中分隔符是(,),而染色体中是(;)。原因将在后面进行解释。 如果你有少量的象形,或者你的染色体的顺序总是固定的,那么一个完全排序的列表很有用。 如果你想去调整一个象形的位置去相对于另一个象形,那么更加复杂的 chromosomes_order 将会被用到。 通用顺序-第 2 部分-相对顺序 你可以去指定部分象形的顺序通过你一局部的顺序。例如定义 hs4 在 hs5 后面: chromosomes_order = hs5,hs4 在这里,顺序是 1 2 3 6 5 4 7 8,你可能惊讶为什么 6 在 5 的前面。当 Circos 解析一个 相对顺序,像 hs5、hs4,这里 hs5 不动,hs4 会跟在 hs5 后面,所以 hs4 和 hs5 交换位 置了。 为了去调整顺序为 1 2 3 5 4 6 7 8,你应该把 hs3 加在前面: chromosomes_order = hs3,hs5,hs4 第一个染色体的位置是不变的,只是变后面的。这里面的 hs3 就是不动的。 通用顺序-第 3 部分-有间隔的相对顺序 Instead of the chromosome ID, you can enter "-" in an order list to indicate the next available ideogram. Here, the sense of "next" is relative to default order. The purpose of the wildcard "-" entry is to allow for additional flexibility on ordering the ideograms. For example, to specify that hs2 should be the next neighbour after hs3, chromosomes_order = hs3,-,hs2 This order list would produce the order 4 5 3 1 2 6 7 8. Again, the result may be a little surprising. What has happened is that the order request used hs3 as the anchor ideogram. Thus, the position of hs3 in the final order is not altered (it comes 3rd). The next ideogram is "-", which is a wildcard that indicates the next available ideogram, or hs1 since this is the first ideogram that has not been specifically mentioned in the order list. Thus the local order in the vicinity of hs3 is hs3, hs1, hs2. Since hs3 is 3rd, the first two slots are replaced by the first available ideograms, hs4 and hs5. If you want two ideograms to separate hs3 and hs2, then chromosomes_order = hs3,-,-,hs2 would produce the order 5 6 3 1 4 2 7 8, anchoring on hs3. If however you enter chromosomes_order = hs2,-,-,hs3 56 then the anchor is hs2 and the order is 5 2 1 4 3 6 7 8. You can intersperse wildcards with specific ideograms. For example chromosomes_order = hs1,-,hs2,-,hs3 would produce 1 4 2 5 3 6 7 8. The wildcards are filled by the first available ideograms that were not specifically ordered - these are hs4 and hs5. You can place a wildcard as the first entry, to force an ideogram to appear before your anchor. For example, chromosomes_order = -,hs1,-,hs2,-,hs3 yields 4 1 5 2 6 3 7 8. In this case, the rule that the anchor's (here hs1) position is unchanged is overridden by the fact that you've requested an ideogram to appear in front of the anchor. Effectively, you have forced the insertion of the first available ideogram before hs1. CUSTOM ORDER - PART 4 - ANCHORS In addition to the "-" wildcard in the order list, you can use two additional metacharacters: the ^ and $ anchors. ^ indicates the beginning of the circular map and $ indicates the end. Thus, to have hs5 appear as the first ideogram, it is enough to say chromosomes_order = ^,hs5 and the order will be 5 1 2 3 4 6 7 8. If you would like hs5 to appear last, chromosomes_order = hs5,$ and now the order will be 1 2 3 4 6 7 8 5. CUSTOM ORDER - PART 5 - MULTIPLE GROUPS Multiple order groups can be specified by using '|' as a delimiter. Each group affects order local to its anchor (the first specified ideogram within the group). Consider the following order string, chromosomes_order = hs3,hs2,|,hs8,hs1 and note the '|' that separates the two groups hs3,hs2 and hs8,hs1. The anchor for the first group is hs3 and hs2 is ordered relative to it. The anchor for the second group is hs8 and hs1 is ordered relative to it. The final order is 4 5 3 2 6 7 8 1. When using multiple groups, wildcards can add additional flexibility. Consider the following order string chromosomes_order = hs3,-,hs2,|,-,hs8,hs1 Each group is evaluated independently, but in order of appearance. Thus, the first wildcard is filled by hs4, which is the first ideogram that hasn't been explicitly placed. The wildcard in the second group is the next available ideogram, and that is hs5 (since hs4 has already been used by the previous wildcard). The final order is 6 7 3 4 2 5 8 1. 57 The strength of specifying multiple groups is realized when you have a lot of ideograms to draw, and want to specify order for several local sets of ideograms without having to write down the order for all ideograms. CUSTOM ORDER - PART 6 - MULTIPLE GROUPS WITH ANCHORS Finally, you can combine wildcards, multiple groups and anchors in one string. This can quickly yield a complex order string. chromosomes_order = ^,-,hs5,hs2,|,hs4,hs3,|,hs7,$ The final order is 1 5 2 4 3 6 8 7. When constructing a string with multiple groups, wildcards and anchors, each individual rule must be fulfilled, or Circos exists with an error. It is your responsibility to write down rules that describe a consistent global order. For example, if the number of wildcards and ideograms in your order string is larger than the number of ideograms you are drawing, Circos will produce an error. For example, this string requires at least 8 ideograms chromosomes_order = ^,-,hs5,hs2,|,hs4,-,-,hs3,|,hs7,$ and works with our example to produce an order 1 5 2 4 6 8 3 7. However, if one more wildcard is added chromosomes_order = ^,-,hs5,hs2,|,hs4,-,-,-,hs3,|,hs7,$ we run out of ideograms to place and get an error fatal error - chromosomes_order string cannot be processed because group hs7 cannot be placed in the display. This may be due to more tags in the chromosomes_order field than ideograms. 58 5. 裁剪 如果你不想去绘制整个象形,你可以选择去创建一个坐标轴断层去移除 某些部分。有两种办法:指定那些该绘制或者那些不该绘制。 你不可以在核型文件中去裁剪象形,因为在核型文件中,染色体的大小 就是物流大小,不能去裁剪。 指定染色体区间 指定染色体的那部分该被绘制则用下面的语法: chromosomes = ...;ID:START-END;... 例如: chromosomes_units = 1000000 59 chromosomes = hs1:0-100;hs2:50-150;hs3:50-100;hs4;hs5;hs6;hs7;hs8 上面的命令将会绘制 8 条染色体,但是 hs1 只是绘制了 0-100Mb,hs2 绘制了 50-150Mb ,hs3 绘制了 50-100 Mb 。区间范围的单位是 chromosomes_units。 染色体单位 spacing = 5u 因为 chromosomes_units=1000000,所以可定为 5Mb。 当然染色体单位也可以使用相对值,例如人类基因组大小为 3Gb,那么 当设置 chromosome_units=0.001r 时,时间上就相当于 chromosome_units 是 3Mb (0.001 * 3Gb). 设置染色体单位为相对值是有用的,这里举个例子,假设你现在绘制的 基因组为 1Gb,chromosomes_unit =0.001r,那么你将图像分割成 1000 份了,假设你的主刻度设置的是 10u,那么你将拥有 100 个主 刻度,当你改变基因组大小为 100Mb 时,如果你把染色体单位设置成 常量 1Mb,那么 10u 的主刻度将只有 10 个,这让你的基因组显得有 点稀疏。 坐标轴断层 坐标轴断层是定义在中的,将会在其他的教程中讲解。现 在来看下 ideogram.conf 文件看断层是如何定义的。 隐藏部分区间 60 除了去指定该绘制那部分,你也可以去指定不绘制那部分,这里就要使 用到 chromosomes_breaks 参数: chromosomes = hs1;hs2;hs3;hs4;hs5;hs6;hs7;hs8 chromosomes_breaks = -hs1:100-200;-hs2:0-50;-hs2:150-);-hs3:0-50 值里面的-hs1 表示使得 hs1 上的某一部分不被绘制出来,相当于减去的 意思。另外 100-200 指减去的区间,如果是到尾部则是用)表示。 组合区间 当然你也可以用 chromosomes 和 chromosomes_breaks 进行组合: chromosomes = hs1:0-100;hs2:0-100;hs3:0-100;hs4:0-100;hs5;hs6;hs7;hs8 chromosomes_breaks = -hs1:25-75;-hs2:25-75;-hs3:25-75;-hs4:25-75;-hs5:75-);-hs6:75 -);-hs7:75-);-hs8:75-) 61 62 6. 间隔和坐标轴断层 象形间隔 由不同染色体组成的象形之间的间隔是可以被 ideogram::spacing::default 参数进行控 制的。 这个参数可以相对于染色体单位来进行设置(用 u)。例如,如果你设置 chromosomes_units=1000000 并且间隔值设为 10u,那么实际在图像上的间隔将会是 10Mb。 default = 10u 同样你也可以相对于整个象行的大小来设置相对大小(用 r)。这在你想添加或者删除象形 时是很有用的。例如: default = 0.01r 在这个例子中,间隔是所有象形大小和的 1%。事实上这将接近图像圆周的 1%。 当你已经创建了你的象形图层并且想去调整间隔值于相连接的刻度标记相兼容时,使用绝度 的值(像 10u)。例如,如果你有一些主刻度(每个 5Mb),你可能想去用绝度值来设置 间隔大小。 当你想到要去添加、删除或者裁减象形但是你又不想去再调整间隔值,那么你可以使用相对 大小(像 0.001r)。 通常象形间隔 可以在 中设定你想特意去调整间隔的象形对: default = 10u spacing = 0.25r spacing = 15u 63 第一个 pairwise 设置的事 hs1 和 hs2 之间间隔应该为 0.25r (r=relative)。这里的 r 表示 的是相对于默认的间隔大小。 第二个 pairwise 表示的是 hs3 的两端的间隔应该为 15u (u=chromosome unit).。这里的 u 是染色体单位大小。 坐标轴断层 当染色体的一部分需要绘制的时候,你可以使用坐标轴断层去表示实际的染色体大小比绘制 在图像上的部分大。 这里有两个类型的坐标轴断层,在 中进行定义。坐标轴断层的大小是被 break 参数来控制的,你可以使用相对大小或者绝对大小(这里要特意指明下 r 是相对于默 认的间隔,而不是所有象形大小的和)来定义。 default = 10u break = 2u axis_break = yes axis_break_style = 2 axis_break_at_edge = yes stroke_color = black fill_color = blue thickness = 0.25r stroke_thickness = 2 stroke_color = black stroke_thickness = 3 thickness = 1.5r 如果一个象形不是在染色体的头部或者尾部开始的,那么你可以选择在边上添加一个坐标轴 断层,使用 axis_break_at_edge=yes 参数。 厚度参数定义了断层的厚度,它是相对于象形的厚度来定义的也可以是绝对值。所以,1 型 的断层的厚度通常是小于 1r 的,而 2 型的通常是大于 1r 的。 1 型断层用的是一个成弧形的长方形来连接两端的象形。2 型用的是两条发散的直线来表示 是一个断层的。这里要特别注意的是,断层的大小和象形之间的间隔是相互独立的,也就是 64 说象形之间的距离是象形之间的间隔加上断层大小的和。看下图:象形 1 与象形 2 之间的 距离就为 spacing(5u)+breaks(两个 2u)=9u。 65 7. 标签 到现在为止,象形已经被唯一的用染色体的 ID 进行定义的。例如,如果你的核型文件中有 hs1,hs2,hs3 等等,那么 chromosomes, chromosomes_order 和 chromosomes_breaks 中的字符串的值使用的都是同一套 IDs。 象形标签允许你去调整同一个染色体上的不同的象形的顺序,例如下面的顺序: chromosomes = hs1;hs2;hs3 chromosomes_breaks = -hs1:50-150;-hs2:50-150 默认的顺序就是 hs1,hs2,hs3。 如果你想去调整 hs1 和 hs2 片段的顺序,你必须将这些片段定义不同的标签来区分不同的 片段。如下: chromosomes = hs1[a]:0-50;hs1[b]:150-);hs2[c]:0-50;hs2[d]:150-);hs3[e] 每个片段现在是用一个唯一的标签相关联起来了,现在可以设置片段的顺序: chromosomes_order = ^,a,c,e,|,b,$ 这个正则表达式差不多,最终的顺序是 a、c、e、d、b。 默认的,标签是添加在象形的文本标记后面的,当然你可以用如下设置来关闭标签连接在象 形文本后面: label_with_tag = no 66 8. 可变的半径 默认地,每个象形是被放置在同一个半径位置。这是由 ideogram.conf 中的 radius 参数来设置的: ... radius = 0.85r ... 这个半径值是相对于图像半径大小的。 你也可以设置 chromosomes_radius 参数值来设定每个染色体的各种所在半径: chromosomes_radius = hs1:0.5r;hs2:0.55r;hs3:0.6r;hs4:0.65r;hs5:0.7r;hs6:0.75r;hs7:0.8r;hs8:0.85r;hs9:0.9r;hs10:0. 95r 67 这里的 r 是相对于默认的象形半径(而不是图像半径),就是上面定义在 中 的 radius。 例如,如果图像的半径是 1500p,默认的象形半径是 0.9r,那么所有的象形所在半径是在 1350 像素处 (1500 * 0.9)。现在,如果 chromosomes_radius 定义了 hs1 为 0.5r,那 么 hs1 的半径是在从中心开始到图像边缘的 675 像素处 (1500 * 0.9 * 0.5)。 一旦你重新定义了象形所在的半径,那么和半径相关联的特征像 plots, links, text 等将自 动地定位到新的象形位置。 为标签化的象形设置半径 你也可以去设置象形片段的半径: chromosomes = hs1[a]:0-50;hs1[b]:150-);hs2[c]:0-50;hs2[d]:150-);hs3[e] chromosomes_radius = hs1:0.8r;a:0.9r;d:0.8r 9. 文本标签 在核型文件中每个象形都有一个文本标签域: 68 # # A ID # B 染色体的文本标签 # # A B chr - hs12 12 0 132349534 green 文本标签就是最终显示在图像上的每个象形的标记,这个文本标签是可以灵活的修改和格式 化的。 象形 VS 染色体 要时刻记住染色体和象形之间的差异。染色体是你定义数据的结构。象形是一个染色体或者 染色体片段的可视化展示。 大多数情况下,没条染色体是对应一个象形。但是,如果你使用坐标轴断层并且使得染色体 的某些部分不显示,那么一条染色体可能对应多个象形。 当每条染色体被分割成多个象形的时候,每个象形都可以设置一个标签。你可以把这个标签 附在文本后面。 字体 Circos 支持 True Type 和 Open Type 字体。这些字体都是定义在 中的。在所 有的教程中都是通过包含 colors_fonts_patterns.conf 文件来定义 , 的。 # circos.conf <> ... 下面是字体的具体例子: light = fonts/modern/cmunbmr.otf normal = fonts/modern/cmunbmr.otf default = fonts/modern/cmunbmr.otf semibold = fonts/modern/cmunbsr.otf bold = fonts/modern/cmunbbx.otf italic = fonts/modern/cmunbmo.otf bolditalic = fonts/modern/cmunbxo.otf italicbold = fonts/modern/cmunbxo.otf 要去使用字体的话,可以去引用其定义词像 light,而不是具体的字体文件像 fonts/modern/cmunbmbr.otf。如果你指定了一个没有被定义过的字体,那么将会使用 default。所以定义一个 default 是很好的选择。 象形文本标签 象形文本标签是由 中的参数控制的。 show_label = yes #是否显示文本标签 label_with_tag = yes #是否将断层的标签加到文本标签后面 label_font = light #文本标签字体 label_radius = dims(ideogram,outer_radius) + 0.05r # 文本标签所在的半径 69 label_center = yes #文本标签是否正好在半径的中间 label_size = 48p #文本标签大小 label_color = grey #文本标签颜色 label_parallel = yes #文本标签排列是否与半径垂直 label_case = upper #文本标签大小写 label_format = eval(sprintf("chr%s",var(label))) #文本标签格式 ... 文本标签标记 label_with_tag 参数就像前面讲过的那样,它决定是否该把象形片段的标记加 大染色体的文本标签上: # tags "a" and "b" chromosomes = hs1[a]:50-75,hs1[b]:100-125 文本标签字体 label_font 引用 中定义的字体。 文本标签位置 label_radius 决定了象形的文本标签该放置在哪个半径位置上。这里最好把文 本标签放置在相对于象形的外面或者里面。如果你想正好把文本标签放置半径 上,那么可以使用 label_center = yes 来进行设置: # 象形外围半径再向外加 50 像素 label_radius = dims(ideogram,radius_outer) + 50p # 象形外围半径再加象形內围半径的 5% label_radius = dims(ideogram,radius_outer) + 0.05r # 在象形上 label_radius = (dims(ideogram,radius_outer)+dims(ideogram,radius_inner))/2 # 象形內围半径再减 100 像素 label_radius = dims(ideogram,radius_inner) - 100p # 图像的半径再减 50 像素 label_radius = dims(image,radius) - 50p 文本标签方向 label_parallel 参数来进行设置,yes 表示和半径垂直,no 表示沿半径方向。 文本标签大小写 label_case= upper(大写) 或者 lower(小写)来设置大小写。 # ideogram labels will be uppercase label_case = upper 70 文本标签格式 使用 sprintf 函数来进行设置,例如下面的在染色体的标签前面添加 "chr"字符串: label_format = eval(sprintf("chr%s",var(label))) 71 10. 连续性与方向 角度偏移量 角度偏移量决定了第一个象形从哪个位置开始: -90 | 180 --+-- 0 | 90 默认的是 0,就是第一个象形从 3 点钟开始顺时针排列的。但是我喜欢用-90 。 angle_offset = -90 ... 象形连续性 中的 angle_orientation 参数决定了象形的排列方向("clockwise" 默认的,或 者"counterclockwise")。 angle_orientation = counterclockwise ... 不用忘记了,如果你包含了 image 的配置文件,你再想修改 angle_orientation 的话,后面就 要加*号了,表示复写。 <> 72 angle_orientation* = counterclockwise ... 除了定义象形的顺序外(像 chr1, chr2, chr3, ...),angle_orientation 参数也控制象形刻 度的方向.没有其他的设置,象形刻度变化的方向和象形的方向是一致的.因此,如果象形是顺 时针方向,那么每个象形上刻度递增的方向也是顺时针方向 。 象形方向 angle_orientation.可以调整象形整体的排序方向,要想去调整个别象形的方向,需要下 面的设置: chromosomes_reverse = hs1,hs2,... 默认的设置是由 angle_orientation 来确定的,上面的设置使得 hs1 和 hs2 相对于默认的 设置反向了。 这里你可能会问为什么要反向个别象形呢?如果你正在使用彩虹连接去显示比对信息,那么 你可以通过控制象形的方向来控制这个彩虹是否扭在一起。或者,如果你仅仅是显示两个象 形(像一个样本和一个参考),那么如果设置其中一个反向的话,可以使得彼此的位置相互 对应(样本的开始和参考的开始相互对应等),这样可以更加明了的看出比对的效果。 chromosomes = hs1;hs2 chromosomes_reverse = hs2 73 74 75 76 三、 高亮 1. 楔形高亮 高亮这种数据类型正像你猜的那样,它是将 Circos 产生图像的部分进行高亮显示。高亮和 其他的 2D 数据类型不同,在下面将有介绍。  高亮是在其他任何网格和其他数据的下面进行绘制的  高亮可以自动的同象形辐射方向相锁定(在同一条辐射半径上)  辐射高亮位置可以被选择区定制化你的图片 77 在实际情况中,高亮可以让你拥有去绘制一个多彩的片段,通过定义开始和结束的半径位置 以及所在基因组位置。只要充分发挥创造力,高亮可以被用来去凸显基因组的某个片段、指 定某一个区域,甚至绘制同轴的另一个物种的象形。 楔形 VS 象形高亮 楔形高亮拥有灵活的起始和终止半径,即 r0 和 r1。 而象形高亮只是定义在象形内部的,在细胞遗传学带型的上面。 定义高亮 高亮是定义在外部数据文件中的。一个典型的高亮文件是由至少 3 个数据域组成的,低 4 个域是定义其他高级参数。例如下面是一个简单的高亮数据: ... hs1 1298972 1300443 hs1 1311738 1324571 hs1 1397026 1421444 hs1 1437417 1459927 ... 高亮数据的格式化是定义在 中的。在下面的例子中,相同的高亮数据文件 genes.txt 被使用了 3 次,它用基因的转录区域去定义的高亮。 z = 0 #后面有详细介绍 fill_color = green # 填充颜色 file = data/3/genes.txt # 数据文件 r0 = 0.6r #起始半径 r1 = 0.8r #终止半径 file = data/3/genes.txt r0 = 0.7r r1 = 0.75r z = 5 file = data/3/genes.txt r0 = 1.1r r1 = 1.15r fill_color = blue stroke_color = dblue # 边框颜色 78 stroke_thickness = 2 #边框厚度 首先,所以的高亮都定义在 中。一个给定的高亮可以使它的参数在三个不同 的地方进行定义:以递增的顺序进行解析  块中(全局设置)  单个 块中  高亮数据文件中 所以,如果一个高亮在其数据文件中定义其填充色为红色,那么它将复写定义在 中的填充色。 高亮半径位置 你想主要控制的高亮的特征就是它的开始和结束的半径位置,也就是 r0 和 r1 。两个值都 是可以用相对大小和绝对大小来定义的。 如果你要调整图像的大小的话,定义相对大小事更好的。例如: r0 = 0.5r r1 = 0.75r 将设置高亮的半径位置在象形内半径的 0.5-0.75 范围内。高亮的 r0,r1 > 1 表示是在象形的外面。 也可以将相对大小和绝对大小混合使用: r0 = 0.5r r1 = 1r-25p Z-深度 每个高亮都是指定的一个数据文件中的一条,它有在基因组同一条染色体上的开始和结束位 置。高亮是单独进行汇总的,你可以通过设置高亮的 z-深度值来决定哪个高亮第一个绘制。 实际上,最近所有的 Circos 数据结构都可以设置一个 z-深度值来控制绘制的先后顺序。 在这部分教程中, 中 z-depth 的默认值是 0: z = 0 后面的 z=5,它比默认的 0 高,所有它将绘制在默认的高亮的上面。 高亮格式化 每个高亮是被下面的参数控制的:  r0 – 高亮的内半径  r1 – 高亮的外半径  offset – 作用在 r0 和 r1 上的偏移量(对覆盖低优先级的 r0 和 r1 很有用)  fill_color – 高亮片段填充颜色  stroke_color – 如果 stroke_thickness 设置了,它就表示高亮片段边缘的颜色  stroke_thickness – 边框的厚度 79  z – 高亮的 z-深度,控制该绘制的高亮的先后顺序  ideogram – 是否在象形上绘制高亮的开关 2. 高亮参数-第 1 部分-数据文件嵌入 这部分中,我将讲解如何将高亮的部分参数嵌入在高亮数据文件中。这是一个方便的方法去 格式化高亮数据,因为这样参数的参数是可以包含在你的数据分析中并报告出来。 格式化基因列表 使用之前的 genes.txt 文件,我之前为每个片段添加了些随机的填充颜色 (red, green, blue, purple, yellow, orange, grey)。对于红色的实体,我建议它的起始结束为止应该靠 近图像的中心,绿色的实体应该靠近图像的外缘。 下面的是一个例子: hs1 1298972 1300443 fill_color=blue hs1 1311738 1324571 fill_color=red,r0=0.6r,r1=0.6r+50p 80 hs1 1397026 1421444 fill_color=green,r0=1.1r,r1=1.15r hs1 1437417 1459927 fill_color=green,r0=1.1r,r1=1.15r hs1 1540746 1555847 fill_color=yellow hs1 1560962 1645635 fill_color=purple hs1 1624179 1645623 fill_color=grey 大部分是默认的半径参数 r0,r1 = 0.7r,0.7r+200p,数据文件中设置了 r0,r1 的会覆盖配 置文件中的设置,所有大部分的半径是 0.7r,0.7r+200p ,红色和绿色的高亮的半径不一 样。 3. 高亮参数-第 2 部分-使用 Z 深度 z-深度,控制高亮的绘制顺序,是在创建高效图像的评价参数。 正确的去将你的数据分层 将得到更好的图片。默认地,Circos 将按照一致的但未指明顺序的 z-深度顺序,这将意味 着这个顺序不是随机的,但是我在不同版本之间保留了修改它计算方法的权利。 81 避免重叠 如果你有不同大小并且彼此重叠的高亮数据,你将有可能使得较小的高亮被较大的覆盖的可 能。为了去避免这种情况,将 z-深度设置成与高亮大小成反比,那么高亮将按照高亮大小 递增的顺序来绘制。 random.highlights.txt 这个文件有 100 个 chr1 上的随机的高亮数据。其大小服从正态 分布期望和方差都为 5Mb。这些高亮是根据其大小来进行着色的,将高亮大小范围映射到 chr0-chr24 不同的颜色上去。 hs1 1725862 8379128 fill_color=chr7 hs1 4080887 11075336 fill_color=chr8 hs1 5183662 14345280 fill_color=chr10 hs1 10044837 11066617 fill_color=chr1 hs1 10565297 13980978 fill_color=chr4 hs1 11557401 23262460 fill_color=chr13 hs1 12870075 25724192 fill_color=chr15 hs1 13920706 18409477 fill_color=chr5 hs1 25404101 33003848 fill_color=chr8 ... 像你所看到的那样,各个高亮之间有的不仅是重叠,有的还是被包含与其他高亮之中。示例 图片 track 1 中显示的就是没有采用 z-深度来进行绘图的,采用默认的顺序。最大达高亮 大小是 20.4 Mb,现在按照 z = 100-100*size/max(size) 公式来计算 z 值,如下: hs1 1725862 8379128 fill_color=chr7,z=68 hs1 4080887 11075336 fill_color=chr8,z=66 hs1 5183662 14345280 fill_color=chr10,z=55 hs1 10044837 11066617 fill_color=chr1,z=95 hs1 10565297 13980978 fill_color=chr4,z=84 hs1 11557401 23262460 fill_color=chr13,z=43 hs1 12870075 25724192 fill_color=chr15,z=37 hs1 13920706 18409477 fill_color=chr5,z=78 hs1 25404101 33003848 fill_color=chr8,z=63 ... 示例图片中的 Track 2 展示了按照 z-深度值的顺序来绘制高亮数据。使用 z-深度值来将小 的高亮绘制在大的高亮之上是高度推荐的。记住将大量的小高亮数据绘制在前景完全能够覆 盖更大绘制在背景的高亮。同样根据高亮的大小还可以设置高亮的宽度,利用下面的公式设 置 r0 和 r1, r0 = 0.4r - 200*k and r1 = 0.4r + 200*k,k = size/max(size): hs1 1725862 8379128 fill_color=chr7,z=68,r0=0.4r-65.3669p,r1=0.4r+65.3669p hs1 4080887 11075336 fill_color=chr8,z=66,r0=0.4r-68.719p,r1=0.4r+68.719p hs1 5183662 14345280 fill_color=chr10,z=55,r0=0.4r-90.011p,r1=0.4r+90.011p hs1 10044837 11066617 fill_color=chr1,z=95,r0=0.4r-10.0388p,r1=0.4r+10.0388p hs1 10565297 13980978 fill_color=chr4,z=84,r0=0.4r-33.5584p,r1=0.4r+33.5584p hs1 11557401 23262460 fill_color=chr13,z=43,r0=0.4r-115p,r1=0.4r+115p hs1 12870075 25724192 fill_color=chr15,z=37,r0=0.4r-126.289p,r1=0.4r+126.289p 82 hs1 13920706 18409477 fill_color=chr5,z=78,r0=0.4r-44.1012p,r1=0.4r+44.1012p hs1 25404101 33003848 fill_color=chr8,z=63,r0=0.4r-74.6659p,r1=0.4r+74.6659p Track 3 展示了 r0 与 r1 的影响,这样看起来更加有效果。 4. 高亮参数-第 3 部分-半径位置 在上一张教程中,我演示了如何去用 r0 和 r1 来调整高亮的半径,来展示一些高亮数据的 信息(如大型)。在那个例子中,我将高亮的大小和高亮的半径范围联系起来了。 这个章节有三个数据文件。所有的高亮区域都是随机产生的。高亮颜色是用染色体颜色框架 来编码的(chr1,chr2 等)。  random.highlights.r.txt – 半径起始是随机的  random.highlights.rr.txt – 半径起始与大小成反比(最大的高亮在边上)  random.highlights.rrr.txt – 半径起始与大小成反比(最大的高亮在中间) 从这些图片中当半径位置能够产生更加清晰的图片时你可以看出来一点条理性。第一张图片 显然是紊乱的,最后一张图片(它的小的高亮是靠近象形的)很清楚的展示数据。较小特征 83 在较大的半径处来显示是更加好的选择,因为这样有很大的空间来展示一下不易被观察到的 东西。同样大的结构可以在较小的半径处来进行绘制。 格式化半径位置 这里是 random.highlights.rrr.txt 文件的一部分数据: ... hs1 135818329 137808916 fill_color=chr7,z=67,r0=0.709600r,r1=0.759600r hs1 107513875 108981462 fill_color=chr5,z=76,r0=0.772761r,r1=0.822761r hs1 227449772 228946659 fill_color=chr5,z=75,r0=0.769223r,r1=0.819223r hs1 24598766 26578839 fill_color=chr7,z=68,r0=0.710869r,r1=0.760869r hs1 145258423 147866442 fill_color=chr10,z=58,r0=0.635033r,r1=0.685033r hs1 110729772 111813392 fill_color=chr4,z=82,r0=0.819133r,r1=0.869133r hs1 136155686 138376393 fill_color=chr8,z=64,r0=0.681808r,r1=0.731808r ... 所有的半径位置都是用相对大小来定义的。如果这个值小于 1,那么相对值是在象形半径内, 如果这个值大于 1,那么是在外半径。这样高亮是不覆盖象形的。再者,如果你想高亮显示 在象形上,那么你得适应象形高亮,下章有具体介绍。 相对于相对半径来说,你也可以使用绝对位置(p,即像素的意思),或者两者的组合。下 面有些例子: # absolute positioning r0 = 500p # start at 500 pixels from center r1 = 600p # end at 600 pixels from center # relative positioning - helpful when resizing figure r0 = 0.5r # start at 0.5*inner_ideogram_radius r0 = 0.6r # end at 0.6*inner_ideogram_radius # relative radial position start, but absolute size r0 = 0.5r # start at 0.5*inner_ideogram_radius r1 = 0.5r+100p # start at 0.5*inner_ideogram_radius + 100 pixels # like above, but centered at a radial position r0 = 0.5r-50p # start at 0.5*inner_ideogram_radius r1 = 0.5r+50p # start at 0.5*inner_ideogram_radius + 100 pixels 84 85 5. 象形高亮 象形高亮是在图片中将高亮放置在高亮的上面。你不用去指定高亮的半径,因为这些参数都 是由象形大大小和位置来固定的。 在这部分章节,我使用同样的数据来绘制高亮。一个是关于象形高亮的,一个是关于普通高 亮的。 file = data/3/random.highlights.z_by_size.txt ideogram = yes file = data/3/random.highlights.z_by_size.txt r0 = 0.5r r1 = 0.6r 在上面的例子中,高亮完全覆盖了每个象形,隐藏了细胞遗传带型。在这种情况下,最好是 使用楔形高亮。 象形高亮在凸显基因组上特定位置时是很有效的。 当每个独立的象形的半径位置用 chromosome_radius 来设置后,那么象形高亮的位置也 就自动的被设置了。相对高亮半径位置是相对于新的象形位置来进行计算的。绘制在象形的 高亮是在新的象形位置进行绘制的(参数 ideogram=yes)。 向象形高亮添加透明度 想象形高亮添加透明度是可行的,这和楔形高亮的方法是一样的。 注意如果你已经将象形绘色了,细胞遗传带型有透明度,并且象形高亮也透明化了,那么三 个颜色将会混合。 要将象形高亮透明化,只需在 fill_color 的颜色后面添加_aN 即可,下面是一个例子: # transparent wedge highlights at radial position 0.85-0.95 file = highlight.txt fill_color = blue_a5 r0 = 0.85r r1 = 0.95r 86 # transparent ideogram highlights, using the same data file as for wedge highlights file = highlight.txt fill_color = blue_a2 ideogram = yes 87 6. 技巧 1 – 象形高亮 当想特意去关注象形的某一部分而使其它大部分不被覆盖时象形高亮是特别适合的。记住当 你绘制时象形高亮会使得细胞遗传带型模糊。所以当你在增加高亮的覆盖度时,你实际上是 在将其它数据集(带型)模糊化而来凸显你想展示的数据集(高亮本身)。 在这个例子中,我已经创建了来自两个 gene 列表的高亮。一个 gene 列表是 OMIM 数据库 中的 gene,这个列表列举了和这类疾病相关的 gene。另一个列表是和癌症相关的 gene, 它比上面的 gene 列表的 gene 数量少的多。 我已经定义了两个象形高亮,橘色表示的是 OMIM gene,蓝色表示的是癌症相关的 gene。 因为癌症 gene 是 OMIM gene 的子集,所以我通过 z-深度值得设置将癌症 gene 绘制在上 一层。 ideogram = yes z = 5 file = data/3/genes.omim.txt fill_color = orange file = data/3/genes.cancer.txt z = 10 fill_color = blue 88 因为两个高亮数据都是象形高亮类型,所以我已经将 ideogram 参数放置在 的外面,这样做这个参数的值对其他所有的 都起作用。 我设置默认的 z-depth 为 5,并且赋予癌症 gene 更高的 z-depth,10。将你的 z-depths 设置成 5-10 的阶梯式很好的选择,因为这将允许你在相对已经存在的高亮数据的相对位置 插入高亮数据,而不用去改变现存的 z-depths 。z-depths 不从 0 开始也是个好的想法, 因为你可以在任何其他的数据后面插入新的数据,而不是去使用负的 z-depths ,这样虽然 可以但是不赞成这样使用。 这两个 fill_color 中的一个可能已经是全局的设置了。这取决于你如何去以一个对你的应用 程序合理的方法来管理参数值。依赖你的使用,下面的陈述可能更加直观:  所有的 gene 是橘色,但是癌症 gene 是蓝色  所有的 gene 是蓝色,但是疾病 gene 是橘色  疾病 gene 是橘色,癌症 gene 是蓝色 7. 技巧 2 – 关注基因组的一个区间 在这部分教程中的很多例子里,高亮通常是被用来绘制数据集,像 gene 位置。高亮在绘制 数据时非常有用因为你可以格式化每个高亮楔形数据。 在其它情况下,高亮可以有效的帮助你其关注象形的一部分。 89 所有其它的数据类型,像刻度和标记网格都是放置在高亮的上面。 继续染色体颜色框架 在该章节的第一张图片,我已经准备了两个高亮数据。第一个概括了染色体大小并且使用了 染色体颜色架构。 hs1 0 247249719 fill_color=chr1 hs2 0 242951149 fill_color=chr2 hs3 0 199501827 fill_color=chr3 hs4 0 191273063 fill_color=chr4 hs5 0 180857866 fill_color=chr5 hs6 0 170899992 fill_color=chr6 hs7 0 158821424 fill_color=chr7 hs8 0 146274826 fill_color=chr8 hs9 0 140273252 fill_color=chr9 hs10 0 135374737 fill_color=chr10 hs11 0 134452384 fill_color=chr11 hs12 0 132349534 fill_color=chr12 hs13 0 114142980 fill_color=chr13 hs14 0 106368585 fill_color=chr14 hs15 0 100338915 fill_color=chr15 hs16 0 88827254 fill_color=chr16 hs17 0 78774742 fill_color=chr17 hs18 0 76117153 fill_color=chr18 hs19 0 63811651 fill_color=chr19 hs20 0 62435964 fill_color=chr20 hs21 0 46944323 fill_color=chr21 hs22 0 49691432 fill_color=chr22 hsX 0 154913754 fill_color=chrX hsY 0 57772954 fill_color=chrY Using this file, I can recreate the ideogram size in chromosome-specific color anywhere in the image. I've drawn two highlight tracks using this file. The first track is drawn in side the circle from 0.5 to 1.0 times the inner ideogram radius. 90 file = data/3/chr.highlights.txt r0 = 0.5r r1 = 1r The second track is drawn outside the circle, and includes a black stroke. file = data/3/chr.highlights.txt stroke_thickness = 2 stroke_color = black r0 = 1.1r r1 = 1.15r The second file stores the position of cytogenetic bands classified as centromeres and stalks in the karyotype. This is a union of all coordinates whose bands were labeled as acen or stalk. hs1 121100000 128000000 hs10 38800000 42100000 hs11 51400000 56400000 hs12 33200000 36500000 hs13 3800000 8300000 hs13 13500000 18400000 hs14 3100000 6700000 hs14 13600000 19100000 hs15 3500000 7900000 hs15 14100000 18400000 hs16 34400000 40700000 hs17 22100000 23200000 hs18 15400000 17300000 hs19 26700000 30200000 91 hs2 91000000 95700000 hs20 25700000 28400000 hs21 2900000 6300000 hs21 10000000 13200000 hs22 3000000 6600000 hs22 9600000 16300000 hs3 89400000 93200000 hs4 48700000 52400000 hs5 45800000 50500000 hs6 58400000 63400000 hs7 57400000 61100000 hs8 43200000 48100000 hs9 46700000 60300000 hsX 56600000 65000000 hsY 11200000 12500000 This set of highlights is drawn on top of the previous, outer track and filled white, effectively splitting the highlights along centromeres and stalks. file = data/3/chr.hetero.highlights.txt stroke_thickness = 2 stroke_color = black fill_color = white r0 = 1.1r r1 = 1.15r z = 10 FOCUS ON GENOMIC REGIONS If you have a figure in which certain genomic areas are of interest, highlights are the best way to guide your audience's eyes. For this example, I've created a data file with just a few highlights. 92 hs1 15000000 50000000 hs2 100000000 150000000 hs3 50000000 60000000 hs3 80000000 90000000 hs3 100000000 105000000 hs14 0 106368585 Using this data set, I've drawn three sets of highlights that isolate these regions. These are shown in the second image in this section. The first set of highlights is light grey and spans 0.5r-1.0r radial region. These second falls outside of the ideogram circle and is light yellow from 1.0r to 1.1r. The last is light grey again from 1.1r to 1.15r. Note that unless you are using ideogram highlights, Circos does not support highlights that cross the circle of ideograms. I strongly advise against setting r0<1 and r1>1 for a set of highlights :) 93
还剩95页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 15 人已下载

下载pdf

pdf贡献者

寒竹凌石

贡献于2016-12-13

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!