Circos可以在线使用,在线使用时是把表格转为圈图,不过只允许最大75行和75列;做一些简单的示意图会比较好,最后时会介绍下在线的tableviewer的使用。

也可以安装在本地,在本地可以绘制基于基因组的更复杂的图。

Circos由Perl写成,安装相对简单,只要Perl的包都装好了就可以了。

Circos安装从http://circos.ca/software/download/circos/下载Circos安装包,并解压,把安装包内的bin目录加载到环境变量。wget http://circos.ca/distribution/circos-0.69-6.tgz

tar xvzf circos-0.69-6.tgz

ln -s `pwd`/circos-0.69-6/bin/* ~/bin #make sure ~/bin is in $PATH

or

# 注意pwd两侧的反引号

export PATH=$PATH:`pwd`/circos-0.69/bin安装依赖的Perl包

配置CPANM (CPANM是一个文件,下载下来,增加可执行属性,放到环境变量中即可使用)# 若无根用户权限,也可放入自己家目录下在环境变量内的目录中就可以

wget https://raw.githubusercontent.com/miyagawa/cpanminus/master/cpanm -O /sbin/cpanm

chmod +x /sbin/cpanm

获得依赖的Perl包,circos -moduleok 1.11 Carp

missing Clone

missing Config::General

ok 3.3 Cwd

ok 2.124 Data::Dumper

ok 2.55 Digest::MD5

ok 2.77 File::Basename

ok 3.3 File::Spec::Functions

ok 0.22 File::Temp

ok 1.50 FindBin

missing Font::TTF::Font

missing GD

missing GD::Polyline

ok 2.38 Getopt::Long

ok 1.14 IO::File

missing List::MoreUtils

ok 1.21 List::Util

missing Math::Bezier

ok 1.60 Math::BigFloat

missing Math::Round

missing Math::VecStat

ok 1.01_03 Memoize

ok 1.17 POSIX

missing Params::Validate

ok 1.36 Pod::Usage

missing Readonly

missing Regexp::Common

missing SVG

missing Set::IntSpan

missing Statistics::Basic

ok 2.20 Storable

ok 1.11 Sys::Hostname

ok 2.0.0 Text::Balanced

missing Text::Format

ok 1.9721 Time::HiRes

获取缺失模块并安装# 第一句话的目的只是查看需要运行的命令,直接运行第二句就好

circos -module | grep 'missing' | awk '{a=a" "$2;}END{print "cpanm"a}'

circos -module | grep 'missing' | awk '{a=a" "$2;}END{system("cpanm"a);}'

再运行circos -module发现GD和GD::Polyline没安装上,查看错误信息是No package 'gdlib' found# 根用户

yum install gd-devel

然后再用cpanm安装GD和GD::Polyline。

最简单出图

把下面的内容存储到任意目录下的任意文件比如ehbio.conf下,然后运行circos -conf ehbio.conf就可以获得circos的图circos.png和circos.svg。karyotype = data/karyotype/karyotype.human.txt

default = 0.005r

radius = 0.9r

thickness = 20p

fill = yes

################################################################

# The remaining content is standard and required. It is imported

# from default files in the Circos distribution.

#

# These should be present in every Circos configuration file and

# overridden as required. To see the content of these files,

# look in etc/ in the Circos distribution.

# Included from Circos distribution.

<>

# 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.

<>

上述命令是怎么运行的呢?# karyotype定义染色体的名字、ID、起始位置信息,是绘制图的根本

karyotype = data/karyotype/karyotype.human.txt

# 必须的部分,控制染色体信息显示

# 定义染色体之间的间距,为图形半径的5% (r代表radius,半径)

default = 0.005r

# 染色体区域的绘制位置,默认所有染色体都处于远离圆心同样距离的位置

# 这里设置的是图形半径的0.9倍的位置

# 也可以设置绝对像素值

radius    = 0.9r

# 染色体区域的宽度,可以是相对图形半径,也可以说绝对像素值

thickness = 20p

# 染色体区域填充颜色

fill      = yes

################################################################

# The remaining content is standard and required. It is imported

# from default files in the Circos distribution.

#

# These should be present in every Circos configuration file and

# overridden as required. To see the content of these files,

# look in etc/ in the Circos distribution.

# 这些都是引用文件,暂时不去管什么意思,后面用到再逐个解释。

# 但是绘图时这些必须引用。下面会解释下最关键的引用位置。

# Included from Circos distribution.

<>

# 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的配置文件时,不理解其是如何查找用到的数据和配置目录时,不过上面配置文件中被注释掉的一句话泄露了天机look in etc/ in the Circos distribution。配置文件和数据文件默认先在当前目录查找,若没有则去CIRCOS的安装目录下查找。

下面列出了CIRCOS搜索配置文件时查找的目录(搜索数据时也类似).

./etc

/MPATHB/soft/circos-0.69-6/bin/etc

/MPATHB/soft/circos-0.69-6/bin/../etc

/MPATHB/soft/circos-0.69-6/bin/..

/MPATHB/soft/circos-0.69-6/bin

不得不敢写CIRCOS的日志输出,很详细,每次都刷屏。当我们运行CIRCOS失败时,看下日志信息,会得到很多提示。

数据和配置文件都在CIRCOS安装目录下,那么先看看它的目录结构吧。

circos安装目录介绍

bin: 目录下是circos可执行程序,加入环境变量即可

data: 目录下有一个文件夹karyotype,里面收录了几个物种染色体信息文件。karyotype.chimp.txt karyotype.arabidopsis.tair10.txt

karyotype.human.hg38.txt karyotype.human.hg19.txt

karyotype.mouse.mm10.txt karyotype.yeast.txt karyotype.zeamays.txt

这个是绘制CIRCOS图所必须的一个文件 (文件的内容虽然通常是染色体的信息,但不局限于染色体信息,其它的区域信息、时间序列信息都可以使用)

文件内容如下 (#后面是注释,会被忽略)

前两列是固定的,chr -。chr表示定义一条染色体;-表示指定这个区域的父区域,染色体没有父区域,用-代替。

ID是当前区域的名字,其子区域的父区域列都使用这个名字。如果同时绘制多个物种,可在ID中包含物种的代号。

LABEL是当前区域显示的名字。

START END是当前区域的范围,必须是整个的区域。如果想显示部分区域,可在后续配置中修改。

COLOR是当前区域的颜色,CIRCOS为每个染色体有定义好的颜色,存储于etc/colors.conf。除了预先定义了染色体的颜色,还定义了一些颜色变量可以直接使用。#chr - ID LABEL START END COLOR

chr - hs1 1 0 248956422 chr1

chr - hs2 2 0 242193529 chr2

chr - hs3 3 0 198295559 chr3

chr - hs4 4 0 190214555 chr4

chr - hs5 5 0 181538259 chr5

chr - hs6 6 0 170805979 chr6

chr - hs7 7 0 159345973 chr7

chr - hs8 8 0 145138636 chr8

chr - hs9 9 0 138394717 chr9

etc目录下是配置文件,前面引用到了3个。

image.conf内容如下<>

<>

image.generic.conf内容如下,定义了输出的图形的名字、格式、大小等,这些都可以在自定义配置文件,即前面提到的ehbio.conf中覆盖。dir   = .

#dir  = conf(configdir)

file  = circos.png

png   = yes

svg   = yes

# radius of inscribed circle in image

radius         = 1500p

# by default angle=0 is at 3 o'clock position

angle_offset      = -90

#angle_orientation = counterclockwise

auto_alpha_colors = yes

auto_alpha_steps  = 5

background.white.conf只定义了背景是白色。

colors_fonts_patterns.conf引用了颜色、字体、预定义的图形文件信息的配置

<>

<>

<>

colors.conf及其引用文件内容摘录如下,利用RGB组合设置了颜色变量、系列颜色和染色体的颜色。(染色体的名字全部使用小写)dpblue   = 0,153,237

vdpblue  = 0,136,220

vvdpblue = 0,120,204

vvlpurple = purples-7-seq-1

vlpurple  = purples-7-seq-2

gpos100 = 0,0,0

gpos    = 0,0,0

gpos75  = 130,130,130

chr1  = 153,102,0

chr2  = 102,102,0

chr3  = 153,153,30

patterns.conf定义特殊小图形的信息# pattern fills for PNG files

vline        = tiles/vlines.png

vline-sparse = tiles/vlines-sparse.png

hline        = tiles/hlines.png

hline-sparse = tiles/hlines-sparse.png

checker        = tiles/checkers.png

checker-sparse = tiles/checkers-sparse.png

dot        = tiles/dots.png

dot-sparse = tiles/dots-sparse.png

solid      = tiles/solid.png

housekeeping.conf必须在最上层自定义配置文件中(也就是ehbio.conf)中引用。这个文件名字起的很生物,持家配置,必须要,而且不建议修改。具体内容就不列出了,感兴趣的自己去看。

python画circos图_CIRCOS圈图绘制 – 最简单绘图和解释相关推荐

  1. python画circos图_Circos图--在线绘制

    相信大家都听说过circos图,但是亲自画过的人可能就很少,这主要因为软件的安装和使用稍微有一点麻烦.其实,circos图也是可以在线绘制的,这样就简单多了!一起来了解一下吧! 在circos官网(h ...

  2. python画circos图_circos作图四(links)

    通常circos的中间部分不是空白区域,会用一条条线进行连接,表示两个染色体部分区域有关系. 对于link,circos要求输入数据至少有6列,分别是chr1 start1 end1 chr2 sta ...

  3. python画circos图_教你在线绘制circos图

    相信大家都听说过circos图,但是亲自画过的人可能就很少,这主要因为软件的安装和使用稍微有一点麻烦.其实,circos图也是可以在线绘制的,这样就简单多了!一起来了解一下吧! 在circos官网(h ...

  4. python画折线图虚线_python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...

  5. python画circos图_​用Python把图做的好看点:用Matplotlib画个Circos和弦图

    一直觉得circos图 很好看,最近尝试了一下 对中间关系曲线的 绘制 主要利用的数学工具是 贝塞尔曲线 但是对贝塞尔曲线中间的控制点取值 还是不太满意 造成部分曲线看着有点奇怪 成品大概是这样 代码 ...

  6. python画circos图_从零开始学CIRCOS绘制圈图(四)

    从零开始学CIRCOS绘制圈图(一) 从零开始学CIRCOS绘制圈图(二) 从零开始学CIRCOS绘制圈图(三) 通常circos的中间部分不是空白区域,会用一条条线进行连接,表示两个染色体部分区域有 ...

  7. python画circos图_从零开始学Circos绘制圈图(一)

    一般基因组文章都会有下面这种酷炫图,用来描述基因组的基因密度分布,转座子的密度分布,和其他物种或者多倍体的多套染色体间的共线性关系,以及其他各种你只要测序就能加上的信息,比如说你要是测了ATAC-se ...

  8. 用python画八卦图-使用turtle绘制太极八卦图

    话不多说,直接看效果 太极八卦图.png 下面是源码 # coding: utf-8 import turtle as t colors = ['white', 'black'] # 设置画笔宽度 t ...

  9. python画风景图,ai怎么绘制秋意正浓的红色风景插画?

    好的风景能够吸引路人的目光,想要绘制秋天插画矢量图,该怎么绘制呢?今天,我们就来画一画红色的风景,学习一下单色调风景图片的画法,还有近中远三个层次不同元素的绘制方法与要点,下面我们就来看看详细的教程. ...

  10. python画circos图_手把手教你画Circos图

    导读 Circos是一个由加拿大科学家Martin Krzywinski利用perl语言开发的用于描述关系型数据和可视化多维度数据的软件.Circos凭借输入简单,不需要太多的数据处理技巧就能调整到要 ...

最新文章

  1. android checkbox状态不刷新,android开发分享更改checkbox的值,而不触发onCheckChanged
  2. Sean Lynch谈Facebook Claspin监控工具的由来
  3. java map 查找_在Java TreeMap中查找元素位置
  4. 【Matlab】判断是否为空?是否为NaN?
  5. Lucene Inverted index(倒排索引)原来快速入门
  6. word List23
  7. 软件框架的理解(转载)
  8. Objective-C Runtime 运行时之六:拾遗
  9. 电子计算机说明文作文,关于电脑说明文作文(精选3篇)
  10. 获取工程的exe文件的所在目录
  11. my first d3d application 哈哈哈。
  12. java 十进制与二进制,八进制,十六进制之间的转换
  13. memcached主从复制
  14. Python 硬核分析我国 14 亿人口,发现三大危机!
  15. NVIDIA JETSON TX2上运行yolo3
  16. HYSPLIT简明教程
  17. ubuntu配置IP并且生效
  18. matlab内置随机数生成器及随机模拟举例
  19. 简单的猜数字小游戏(1 ~ 100)
  20. 王冰玉时代曙光科技 丽江-稻城-理塘-丹巴-康定-成都“中心"穿越小卡片之旅...

热门文章

  1. FME中的栅格数据操作之十二——矢量数据栅格化
  2. React项目实战(一)
  3. php汉字utf8编码转换,PHP UTF8编码内的繁简转换类
  4. python 等值面多边形平滑_三次贝塞尔曲线平滑多边形
  5. 十二进制加计数器-20151112
  6. css span 右端对齐_span右对齐
  7. 咖说 | 隐私何在?区块链是隐私保护的安全阀门
  8. Arduino 电机测速
  9. led的伏安特性曲线 matlab实现_Matlab在伏安特性实验中的应用
  10. excel表格末尾添加一行_Excel2007:给excel表格添加边框线