circos {OmicCircos} | R Documentation

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

### Author(s)

Ying Hu <yhu@mail.nih.gov> Chunhua Yan <yanch@mail.nih.gov>

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

    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)

[Package OmicCircos version 1.24.0 Index]