Learn R Programming

OmicCircos (version 1.10.0)

circos: draw circular

Description

This is the main function of OmicCircos to draw circular plots.

Usage

circos(mapping=mapping, xc=400, yc=400, R=400, W=W, cir="", type="n", col.v=3, B=FALSE, print.chr.lab=TRUE, col.bar=FALSE, col.bar.po = "topleft", cluster=FALSE, order=NULL, scale=FALSE, cutoff = "n", zoom="", cex=1, lwd=1, col=rainbow(10, alpha=0.8)[7], side="")

Arguments

mapping
data frame or matrix containing mapping information and values. Column 1: the segment or chromosome ID; column 2: the position; column 3: the position label (optional) or the value and additional columns are the values. such as gene expression and copy number. Missing values are allowed and will be ignored.
xc
integer, the circle center x coordinate
yc
integer, the circle center y coordinate
R
integer, the circle radius
W
integer, the circle width
cir
genome reference name (hg19, mm10 ...) or data frame from segAnglePo function or data frame from user's mapping data
type
the type is one of
  • "arc": arcs with variable radii
  • "arc2": arcs with the fixed radius
  • "b": bar charts
  • "b2": bar charts (opposite side of cutoff value)
  • "b3": bar charts with the same height
  • "box": box plots
  • "chr": plots of chromosomes or segments
  • "chr2": plots of chromosomes or segments of partial genome
  • "ci95": 95% confidence interval lines
  • "h": histograms
  • "heatmap": heatmaps
  • "heatmap2": heatmaps with genomic coordinates
  • "hightlight.link": link lines for zoom
  • "hist": polygons for multiple samples
  • "hl": highlight
  • "l": lines
  • "label": gene labels or text annotations
  • "label2": gene labels or text annotations with the same circumference coordinate
  • "lh": horizontal lines
  • "link.pg": link polygons based on Bezier curve
  • "link": link lines based on Bezier curve
  • "link2": link lines with smaller intra-chromosome arcs
  • "ls": lines in stair steps
  • "ml": multiple lines (for more than 1 samples)
  • "ml2": multiple horizontal lines
  • "ml3": multiple lines in stair steps
  • "ms": multiple points
  • "quant75": 75% quantile lines
  • "quant90": 90% quantile lines
  • "s": dots
  • "s2": dots with the fixed radius
  • "s.sd": dots proportional to standard deviation
  • "ss": dot sizes proportional to the values
  • "sv": dot sizes proportional to the variances
col.v
column number. The column value will be displayed. If type=heatmap, the number is as the first column.
B
logical: draw background?
print.chr.lab
logical: draw chromosomes or segment labels?
col.bar
logical: draw col.bar? It is for type=heatmap.
col.bar.po
draw col.bar position, e.g. topleft, bottomright.
cluster
logical: cluster and draw Dendrogram at left coner? It is for type=heatmap only.
order
vector: chromosome or segment order
scale
logical: draw scale?
cutoff
numeric: for multiple samples
zoom
vector containing six values: start chromosome, end chromosome, start position, end position, start angle and end angle
lwd
numeric: line width
cex
numeric: fond or point sizes
col
character or vector: color names
side
character (in or out): for type=label(2) only
...
...

References

OmicCircos: an R package for simple and circular visualization of omics data. Cancer Inform. 2014 Jan 16;13:13-20. doi: 10.4137/CIN.S13495. eCollection 2014. PMID: 24526832 [PubMed] PMCID: PMC3921174

Examples

Run this code

library(OmicCircos);
options(stringsAsFactors = FALSE);

set.seed(1234);

## initial values for simulation data 
seg.num     <- 10;
ind.num     <- 20;
seg.po      <- c(20:50);
link.num    <- 10;
link.pg.num <- 4;
## output simulation data
sim.out <- sim.circos(seg=seg.num, po=seg.po, ind=ind.num, link=link.num, 
  link.pg=link.pg.num);

seg.f     <- sim.out$seg.frame;
seg.v     <- sim.out$seg.mapping;
link.v    <- sim.out$seg.link
link.pg.v <- sim.out$seg.link.pg
seg.num   <- length(unique(seg.f[,1]));

## select segments
seg.name <- paste("chr", 1:seg.num, sep="");
db       <- segAnglePo(seg.f, seg=seg.name);

colors   <- rainbow(seg.num, alpha=0.5);

pdffile  <- "OmicCircos4vignette1.pdf";
pdf(pdffile, 8, 8);
par(mar=c(2, 2, 2, 2));
plot(c(1,800), c(1,800), type="n", axes=FALSE, xlab="", ylab="", main="");

circos(R=400, cir=db, type="chr",  col=colors, print.chr.lab=TRUE, W=4, scale=TRUE);
circos(R=360, cir=db, W=40, mapping=seg.v, col.v=3, type="l",   B=TRUE, col=colors[1], lwd=2, scale=TRUE);
circos(R=320, cir=db, W=40, mapping=seg.v, col.v=3, type="ls",  B=FALSE, col=colors[9], lwd=2, scale=TRUE);
circos(R=280, cir=db, W=40, mapping=seg.v, col.v=3, type="lh",  B=TRUE, col=colors[7], lwd=2, scale=TRUE);
circos(R=240, cir=db, W=40, mapping=seg.v, col.v=19, type="ml",  B=FALSE, col=colors, lwd=2, scale=TRUE);
circos(R=200, cir=db, W=40, mapping=seg.v, col.v=19, type="ml2", B=TRUE, col=colors, lwd=2);
circos(R=160, cir=db, W=40, mapping=seg.v, col.v=19, type="ml3", B=FALSE, cutoff=5, lwd=2);
circos(R=150, cir=db, W=40, mapping=link.v, type="link", lwd=2, col=colors[c(1,7)]);
circos(R=150, cir=db, W=40, mapping=link.pg.v, type="link.pg", lwd=2, col=sample(colors,link.pg.num));

dev.off()

## Not run: 
# demo(OmicCircos4vignette1)
# demo(OmicCircos4vignette2)
# demo(OmicCircos4vignette3)
# demo(OmicCircos4vignette4)
# demo(OmicCircos4vignette5)
# demo(OmicCircos4vignette6)
# demo(OmicCircos4vignette7)
# demo(OmicCircos4vignette8)
# demo(OmicCircos4vignette9)
# demo(OmicCircos4vignette10)
# ## End(Not run)

Run the code above in your browser using DataLab