Circos入门_circor

Circos入门_circor是那个基于perl的CircosMac/Linux的安装可以参考之前的文章【传送门】Window安装会有点麻烦01官网教程必读内容这不是一个手把手教程,所以如果想解circos的使用,推荐…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

3ab94917161373078a878a059b80cd2b.png

是那个基于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

c76d667d7773137c028ccf4a7eb92d7a.png

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

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

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

4f4c97d8d4c355d3af290ef491af4864.png

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

ecc823eac098e721c7b65c63e7d322fa.png

02

基本概念和文件形式

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

5c608c521fd06f7e7e44438e7eabf521.png

1

ideogram

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

文件格式如下

b91c64afb12e2fd742274b2510551caa.png

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

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

a50a0b5e897bcaf577ba0b53c9b5f08c.png

ac7ecdde284aa615dca077130be40d47.png

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

4059a28dfcf8264e0f66c3c0f47056fc.png

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

2

2D tracks

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

  • 每个track用<plot></plot>封装

  • 所有的track使用<plots></plots>封装

  • 使用相对位置(r)定义它相对于ideogram的起始位置

  • 使用绝对位置(p)定义它相对于整个画布的起始位置

  • 如果你设置起始位置(r0和r1)的距离不够,元素可能不会显示

2D trancks的文件格式如下

512dea153047adf6b55e37d1e8463ccc.png

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

aa14c072b7dcfec2df67c7a38e153fe8.png

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

9c5481df4f6f15e0d850516daf20be59.png

91a89119b8d62566e2879aaf68c34c36.png

3

2D links

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

b9fb693e6bfc4b70b201a992ea5dccec.png

4

进阶

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

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

b914d85d28de97ab9bc6ada0c767a6d1.png

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

933674fc979e0b8f526154b81a2e034d.png

add2c36173bdb014b01abe7187e0d4c9.png

5

Bonus

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

像极了看到结果的我bc3e0aa3e0fd1546468276a168e5a446.png

d86bfe82fd5f2ca5b2af063111b81a30.png

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

e42ffe9be4d216423e95a9bcea9061c9.png

da5e1726f93b55ea0b470c9b2f2fb27a.png

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215491.html原文链接:https://javaforall.net

(0)
上一篇 2025年7月14日 下午8:22
下一篇 2025年7月14日 下午9:01


相关推荐

  • zen cart template zencart模板修改[通俗易懂]

    zen cart template zencart模板修改[通俗易懂]encarttemplatezencart模板修改byZENCART模板 | postacomment下面简单的介绍下zencart网站模板的修改。修改较多的地方:(常用代码)一:头部文件为(例子):D:AppServwwwzencart12698includestemplatestheme3common–tpl_header.php1.

    2022年7月27日
    6
  • .gho文件检查

    .gho文件检查虽然目前windows10的接受程度越来越广泛,但我接触到的一些非IT人士还是钟爱于windows7系统,本文记录一下在使用ghost还原系统遇到的问题。gho还原失败在还原ghost系统过程中,遇到gho文件损坏,还原失败,导致系统重装卡住,且大部分的PE系统都不能上网,这就比较麻烦了。因为gho文件一直保存于U盘中,可能在平时使用U盘过程中操作不当导致数据出现损坏。为了避免这种事情的再次发生,…

    2022年7月14日
    19
  • python排序的函数_Python排序函数用法

    python排序的函数_Python排序函数用法Python 排序函数完美体现了 Python 语言的简洁性 对于 List 对象 我们可以直接调用 sort 函数 这里称为 方法 更合适 来进行排序 而对于其他可迭代对象 如 set dict 我们可以使用更灵活的 sorted 函数 一 List 的 sort 函数 Python 源码 builtins py 文件对 sort 函数的定义如下 defsort self key None reverse Fa

    2026年3月20日
    2
  • 监督学习、无监督学习、自监督学习和强化学习

    监督学习、无监督学习、自监督学习和强化学习监督学习监督学习是目前最常见的机器学习类型。给定一组样本(通常由人工标注),他可以学会将输入数据映射到已知目标。一般来说,近年来过度关注的深度学习应用几乎都属于监督学习,比如光学字符识别、语音识别、图像分类和语言翻译。监督学习主要包括分类和回归,但还有更多的奇特变体,主要包括如下几种:1、序列生成(sequencegeneration)。给定一张图像,预测描述图像的文字。序列生成有时可…

    2025年11月15日
    6
  • 机器学习之有监督学习,无监督学习,半监督学习

    机器学习之有监督学习,无监督学习,半监督学习文章目录前言有监督学习无监督学习半监督学习前言机器学习是数据分析和数据挖掘的一种比较常用,比较好的手段从有无监督的角度,可以分为三类:有监督学习无监督学习半监督学习有监督学习用已知某种或某些特性的样本作为训练集,以建立一个数学模型,再用已建立的模型来预测未知样本,此种方法被称为有监督学习,是最常用的一种机器学习方法。是从标签化训练数据集中推断出模型的机器学习任务问:有监督学习的…

    2022年5月28日
    60
  • 解决VSCode出现“launch: program …… does not exist”的问题

    解决VSCode出现“launch: program …… does not exist”的问题一 问题描述 C 源文件进行调试 按下 F5 出现第一个弹窗 点击 仍要调试 出现第二个弹窗 二 问题解决 1 找到 cpp 配置文件中的 tasks json 和 launch json2 使两者的 label 内容相同 如都为 Compile 3 更改 task json 的 args 中的参数 fileDirname fileBasename 注 task 中的 fileDirname fileBasename 用于指定输出文

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号