Circos入门_circor

大家好,又见面了,我是你们的朋友全栈君。

是那个基于perl的Circos

Mac/Linux的安装可以参考之前的文章【传送门

Window安装会有点麻烦

01

官网教程必读内容

这不是一个手把手教程,所以如果想解circos的使用,推荐以下官网内容。

第0章 Installation and Configuration

3. Configuration Files – Syntax, Colors, Fonts and Units 4. Colors 5. Data Files

这一章能让你对circos的语法,所需文件,配置文件有所了解。

第1章Quick Start

1. Hello World 2. Ticks & Labels 3. Ideogram Selection, Scale, Color & Orientation 4. Links & Rules 5. Histograms 6. Axes & Backgrounds 7. Heat Maps & Colors 8. Text 9. Automation & Macros

这一个章会带你将基本流程过一遍,循序渐进,每一个小节都是基于之前生成的图,增加新的元素,学起来很轻松。第9节是一个高级的用法,有一点类似于做for循环,可以暂时略过。过完这一章之后,基本就理解circos的原理了。每个元素的设置可以等用到的时候再看前往相应的教程。

第8章Recipes

19. Cortical Maps—Connectograms

因为大部分的例子都是chromosome的,这里介绍了如何画Cortical map的方法,需要在这里了解所需的文件格式

注意:他们提供了一个perl的脚本,帮你把结果转化成circos所需的文件。挣扎几下之后运行成功了,不过发现此代码只适用于左右一 .一对应的模板(比如AAL)。所以需要自己写code,可以用任何熟悉的语言,python/R/Matlab,将要呈现的结果转成circos所需的格式。

最好的学习方式是自己下载教程,边运行代码边学习。推荐VS code,设置三个窗口,左上的窗口调试代码,修改你想测试的参数,右边的窗口显示图片,下面是terminal,执行circos的命令。这样你可以几乎实时看到修改参数的效果。

理解力超强的童鞋,也可以直接看网页版的Configuration。这里的内容更像是给用户的速查手册。

02

基本概念和文件形式

看完必看教程后,会发现Circos比想象中的容易,软件作者已经把轮子都造好了,需要做的就是把数据做成软件所需要的格式,调整参数即可。由于旁支末节太多,如果面面俱到的写跟翻译没什么区别了,所以这里只记录一些关键的信息。官网提供的教程是最好的参考。

1

ideogram

一般是最外面的那一圈默认使用chromosome,如需使用network/nodes时需要自定义ideogram的文件。它起到的是reference的作用,比如一个ROI呈现在9点钟方向,那么之后这个ROI相应的数据(内圈)也会呈现在9点钟方向。

文件格式如下

chromosome就是network,band就是network中的ROI/node,最后一列是自定义颜色的名称,也可以用circos内置的颜色名称。如果使用了自定义的颜色,需要将颜色的配置写进circos.conf中。中间的数字是chromosome(network)和band(node)的长度,使用统一的unit即可。

这文件做好保存为segment.txt放在data文件夹中。

在之后的主配置文件中定义karyotype为我们制作的ideogram即可,注意这里用的unit是100,需要和chromosome/band的unit对应的。

ideogram的配置文件定义的是ideogram的呈现方式。

2

2D tracks

每一圈添加的元素,可以是heatmap/text/histogram/scatter/line,数据格式和用法都大同小异。注意以下几点即可

  • 每个track用<plot></plot>封装
  • 所有的track使用<plots></plots>封装
  • 使用相对位置(r)定义它相对于ideogram的起始位置
  • 使用绝对位置(p)定义它相对于整个画布的起始位置
  • 如果你设置起始位置(r0和r1)的距离不够,元素可能不会显示

2D trancks的文件格式如下

数据做好后同样保存在data中

创建配置文件,即可选择以什么样的方式呈现该数据。

3

2D links

由于我的数据并没有links,所以这里用chromosome的例子。同样的原理,保存Links的数据,写配置文件即可实现添加ROI之间的连接。

4

进阶

使用circos稍微有些tricky的部分便是添加条件判断循环,作者的例子讲的也很清楚。以下只是简单的笔记

条件判断使用的<rule>模块的逻辑判断是element-wise的,相当于帮你内置了一个for循环,每个符合条件的元素就会进行赋值和绘图。这里要用到一点点perl基本语法。以下代码实现不同数据(0,1,2)用不同颜色/形状呈现。

如果要在每一圈都用相同形式的2d track,但是载入不同的数据,此时就需要使用循环,实现每次载入一个不同的文件,同时改变该圈数据的位置。circos给你了一个counter函数,每次画一个圈就会得到一个指针,用这个指针做循环就行了,需要了解基本的语法。

5

Bonus

通过加载自定义font,可以画一些好玩的内容

像极了看到结果的我

Dafont.com 是不错的font来源,有很多有意思的内容

原文地址:https://cloud.tencent.com/developer/article/2164833

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340