OmicCircos的一些简单的使用心得

时间:2021-03-18 16:45:36

对于circos图想必大家并不陌生,但是一般自己安装circos软件着实有点儿麻烦。而在R中的OmicCircos包却能让你很好的解决问题,可以去画一些简单的而又不落俗套的circos图

1,首先是下载

## try http:// if https:// URLs are not supported

source(
"https://bioconductor.org/biocLite.R")

biocLite(
"OmicCircos")

2,下载后之后在R中载入包

library(OmicCircos)

3,对OmicCircos的一些函数的了解

3.1函数的认识

OmicCircos主要有三个函数,分别是sim.circos,segAnglePocircos。sim.circos是用来模拟一些数据的,如果我们用自己的数据,这个函数一般我们用不到。segAnglePo是将线性的数据结构转化为环形,circos则主要是画图。大多数情况下,我们只用得着后两种函数。

3.2数据的结构

一般画图我们只需要给予一个table就可以,但是这个table前三列必须是位置。如果你用染色体做外圈,那么应该为

Chr Start End 。。。。

chr1
500 1000

chr2
500 1000

chr3
500 1000

如果你用基因作为外圈,那么结构应该为

Genename Start End。。。

Tp53
5000 10000

EGFR
5000 10000

在OmicCircos的给出的例子,seg.f

chrom chromStart chromEnd name gieStain
chr1
2300000 5300000 p36.32 gpos25
chr1
5300000 7100000 p36.31 gneg
chr1
7100000 9200000 p36.23 gpos25
chr1
9200000 12600000 p36.22 gneg
chr1
12600000 16100000 p36.21 gpos50

给出的seg.v,也就是mapping数据表

chr start end value 。。。

chr1
10000 10090 2.5 。。。

3.3数据的转换

 

seg.name ← paste ( " chr" , 1:seg.num , sep="")###seg.num就是你染色体的数目
db ← segAnglePo ( seg.f , seg
=seg.name )###seg.f为线性的数据,如果是染色体画圈,前三列必须是'chr,start,end';如果是基因,则为'genename,start,end'。而且seg.f必须是5列以上,除了前三列,后面可以随便加至少2列数据。

 

3.4数据画图

使circos这个函数,如

circos (R=400 , type=" chr " , cir=db , col=colors, print.chr.lab=TRUE, W=4, scale=TRUE)####画出最外圈的结构
circos(R
=360,cir=db ,W=40,mapping=seg.v,col.v=8, type="s" ,B=FALSE, col=colors[9] , lwd =2, scale=TRUE) ###cir表示用说y图的线宽;scale就是你mapping数值的标尺,显示或者不显示。
circos(R
=320,cir=db ,W=40,mapping=seg.v,col.v=3, type="sv",B=TRUE, col=colors[7] ,scale=TRUE)####

4.关于OmicCircos的一些信息

自带人hg19,hg18的染色体数据,还有mm10等。OmicCircos不仅可以画一些简单的图,也能画SV的,还需要自己去paper上自己看更多的细节。