# circos.link: Draw links between points or/and intervals In jokergoo/circlize: Circular Visualization

## Description

Draw links between points or/and intervals

## Usage

 ```1 2 3 4 5 6 7``` ```circos.link(sector.index1, point1, sector.index2, point2, rou = get_most_inside_radius(), rou1 = rou, rou2 = rou, h = NULL, h.ratio = 0.5, w = 1, h2 = h, w2 = w, col = "black", lwd = par("lwd"), lty = par("lty"), border = col, directional = 0, arr.length = ifelse(arr.type == "big.arrow", 0.02, 0.4), arr.width = arr.length/2, arr.type = "triangle", arr.lty = lty, arr.lwd = lwd, arr.col = col) ```

## Arguments

 `sector.index1` Index for the first sector where one link end locates `point1` A single value or a numeric vector of length 2. If it is a 2-elements vector, then the link would be a belt/ribbon. `sector.index2` Index for the other sector where the other link end locates `point2` A single value or a numeric vector of length 2. If it is a 2-elements vector, then the link would be a belt/ribbon. `rou` The position of the the link ends (if `rou1` and `rou2` are not set). It is the percentage of the radius of the unit circle. By default its value is the position of bottom margin of the most inner track. `rou1` The position of end 1 of the link. `rou2` The position of end 2 of the link. `h` Height of the link, measured as percent to the radius to the unit circle. By default it is automatically infered. `h.ratio` systematically change the link height. The value is between 0 and 1. `w` Since the link is a Bezier curve, it controls the shape of Bezier curve. `h2` Height of the bottom edge of the link if it is a ribbon. `w2` Shape of the bottom edge of the link if it is a ribbon. `col` Color of the link. If the link is a ribbon, then it is the filled color for the ribbon. `lwd` Line (or border) width `lty` Line (or border) style `border` If the link is a ribbon, then it is the color for the ribbon border. `directional` 0 for no direction, 1 for direction from `point1` to `point2`, -1 for direction from `point2` to `point1`. 2 for two directional. The direction is important when arrow heads are added. `arr.width` Width of the arrows, pass to `Arrowhead`. `arr.type` Type of the arrows, pass to `Arrowhead`. Default value is `triangle`. There is an additional option `big.arrow`. `arr.length` Length of the arrows, measured in 'cm', pass to `Arrowhead`. If `arr.type` is set to `big.arrow`, the value is percent to the radius of the unit circle. `arr.col` Color of the arrows, pass to `Arrowhead`. `arr.lwd` Line width of arrows, pass to `Arrowhead`. `arr.lty` Line type of arrows, pass to `Arrowhead`.

## Details

Links are implemented as quadratic Bezier curves (https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Rational_B.C3.A9zier_curves ).

Drawing links does not create any track. So you can think it is independent of the tracks.

By default you only need to set `sector.index1`, `point1`, `sector.index2` and `point2`. The links would look nice.

Please refer to the vignette for detailed explanation.

## References

Gu, Z. (2014) circlize implements and enhances circular visualization in R. Bioinformatics.

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21``` ```factors = letters[1:8] circos.par(points.overflow.warning = FALSE) circos.initialize(factors = factors, xlim = c(0, 10)) circos.track(factors = factors, ylim = c(0, 1), bg.col = "grey", bg.border = NA, track.height = 0.05) circos.link("a", 5, "c", 5, border = 1) circos.link("b", 5, "d", c(4, 6), border = 1) circos.link("a", c(2, 3), "f", c(4, 6), border = 1) circos.link("e", c(2, 3), "g", 5, border = 1) circos.clear() circos.par(points.overflow.warning = FALSE) circos.initialize(factors = factors, xlim = c(0, 10)) circos.track(factors = factors, ylim = c(0, 1), bg.col = "grey", bg.border = NA, track.height = 0.05) circos.link("a", 5, "b", 5, directional = 1, arr.length = 0.2) circos.link("c", c(3, 7), "d", c(3, 7), directional = 1, arr.col = "white", arr.length = 0.2) circos.link("e", c(4, 6), "f", c(4, 6), directional = 1, arr.type = "big.arrow", arr.length = 0.04) circos.clear() ```

jokergoo/circlize documentation built on Aug. 11, 2019, 11:01 a.m.