小白的circos学习笔记(一)

  距离上次画circos图,已经4个月了,至今仍然记得当时在Linux下装Perl模块时的惨烈。最后果断选择用Windows版的,至于如何在Windows下配置circos运行环境,有时间再写一篇吧。

菜鸟的吐槽:Linux系统下不是root用户就是麻烦,不过后来听说了一种无痛安装Perl模块的方法,就是非root用户自己下载安装一个perl,添加到环境变量中,CPAN什么的都依赖这个自己专属的perl。我还没试过。

  circos图其实本质跟其他描述基因组特征的软件包差不多,只需要知道一个区间/位置加上该区间/位置对应的属性就可以了,展现方式有多种多样,比如:线图、柱形图、热图、弦图等等。之前看到一些评论说circos图“装13大于实用”,我不太赞成这种说法,因为很多时候circos图确实可以很好地展现值的大小和交互关系。
  最开始接触这种图的时候也觉得挺复杂的,后来理解了其配置文件之后,发现也没那么难。

1. 需要准备哪些数据

1.1 karyotype.txt

这个文件用来描述染色体,一般放在circos图的外圈

chr -   NC_027757.2 A1  0   35822559    chr1
chr -   NC_027758.2 A2  0   35332830    chr2
chr -   NC_027759.2 A3  0   49139117    chr3
chr -   NC_027760.2 A4  0   23556786    chr4
chr -   NC_027761.2 A5  0   31473442    chr5

第1、2列一般不变,第3列是其它画图数据文件中的染色体名称,第4列表示换个名字,5、6列染色体起止位置,7列描述颜色(目前我可以确定的是chr1-chr22各表示一种颜色)。

1.2 每一圈需要什么样的数据

以snp密度的圈图为例,我需要知道在特定大小的窗口内,有多少个snp。就像这样,

NC_027757.2 1   10000   51
NC_027757.2 10001   20000   90
NC_027757.2 20001   30000   48
NC_027757.2 30001   40000   2
NC_027757.2 40001   50000   21

再比如,gene密度的圈图,需要知道gene的区间,再将区间highlight出来。因为区间不大,一个gene看上去就像一条细线

NC_027757.2 6637    9236
NC_027757.2 15630   16233
NC_027757.2 22106   23935
NC_027757.2 24221   25607
NC_027757.2 31070   40586

......

2. 基本的配置文件

先来看看软件安装成功后有哪些子文件夹,如下:

我的习惯是把所有配置写到一个文件中去。

#以下几列和<ideogram>部分是画染色体的
karyotype = my_data/my_karyotype/karyotype.txt #karyotype.txt的路径
chromosomes_order_by_karyotype = yes #是否按照karyotype.txt文件中的顺序来画染色体
chromosomes_units              = 1000000 #将1000000碱基看作一个染色体单元
chromosomes_display_default    = yes #是否展示全部染色体
                                     #如果是no,则需要重新设置染色体,比如: chromosomes = 染色体1名称;染色体2名称
#设置染色体颜色chromosomes_color = 染色体1名称=red;染色体2名称=vvdred;染色体3名称=vvlred
#其实只要将karyotype.txt最后一列定义为chr1-chrN即可;当然上面这种方法是可以的,不过很麻烦,且一时也想不到那么多颜色
######################################################
<ideogram>
show = yes
radius=0.90r
thickness = 25p #染色体的宽度
fill = yes #是否填充

#设定ideograms轮廓,就是在染色体外边框加线
#stroke_thickness = 1
#stroke_color = black

#染色体外圈的标签,比如chr1A、chr2A......
show_label = yes
label_font = default
label_radius=1r+90p
label_size=40
label_parallel = yes

#染色体之间的间隔
<spacing>
default = 0.005r
#<pairwise "/chr1A/ /chr2A/"> #在特定的两条染色体之间加上自定义的距离
#spacing = 3r
#</pairwise>
</spacing>
</ideogram>
######################################################
#以下部分是画染色体刻度的
show_ticks = yes
show_tick_labels = yes
<ticks>
tick_label_font  = light
radius=1r
color = black
thickness = 2p
multiplier = 1e-6 #物理位置乘以这个数来表示刻度位置,比如物理位置是10000000位碱基,则在刻度上为10
format=%d #刻度位置显示为十进制整数

#设置标尺上的大刻度
<tick>
spacing = 10u #10个染色体单元,即10000000碱基长度
size = 12p
show_label=yes
#设置ticks'label离ticks的距离
label_offset = 10p
#设置ticks'label的字体大小
label_size = 20p
</tick>
#设置标尺上的小刻度
<tick>
spacing = 1u
size = 6p
</tick>
</ticks>
######################################################
#下面就是plot部分了,比如我要画一个snp密度图,和gene密度图
<plots>
<plot>
type = line
thickness = 2
max_gap = 1u
file = my_data/wes_snpden.cir.txt
color = vvlpblue
min    = 0
max    = 1000 #设置y轴的范围,超过的部分显示不了
r0     = 0.75r
r1     = 0.85r
</plot>
<plot>
type = highlight
file = my_data/gene.cir.txt
r1 = 0.95r
r0 = 0.9r
stroke_color = green
stroke_thickness = 0.05
fill_color = green
</plot>
</plots>
######################################################
#以下部分可以不用更改
<image>
<<include etc/image.conf>>
</image>
<<include etc/colors_fonts_patterns.conf>>
<<include etc/housekeeping.conf>>

3. cmd命令行下运行

当然先要cd到指定目录下,再运行程序,比如:

E:\E盘备份\circos\circos-0.69-6\circos-0.69-6\my_circos>..\bin\circos -conf ..\my_conf\circos_test.conf -outputfile test
# E:\E盘备份\circos\circos-0.69-6\circos-0.69-6\my_circos——是我的当前目录
# ..\bin\circos——用相对路径调用circos程序
# -conf ..\my_conf\circos_test.conf——添加配置文件
# -outputfile test——在当前目录下生成名为test的结果文件

之后在当前目录下就能看到两个结果文件了

4. 结果展示

祝各位画图愉快!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • 刘小泽上篇写于18.10.3 ,中篇写于18.10.4,下篇写于18.10.6学习障碍的规律往往是:不是因为它多难...
    刘小泽阅读 2,733评论 3 13
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,726评论 0 10
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,934评论 6 13
  • 文/潇雨 从铁山到黄石,春天的 樟树用绿色,欢迎着我,兄弟,你的 问候来了,是那敞亮辽远悠长的 笛声 兄弟啊,我来...
    潇雨_fca9阅读 148评论 0 1
  • 内向与外向 自己一直认为自己是一个内向的人,性格的倾向,喜欢安静。 但是,我看到了,说有一种办法能够判断是否内向,...
    江醉心阅读 195评论 1 0