Learn R Programming

ecolitk (version 1.44.0)

polygonChrom: Functions to plot circular chromosomes informations

Description

Functions to plot circular chromosomes informations

Usage

cPlotCircle(radius=1, xlim=c(-2, 2), ylim=xlim, edges=300, main=NULL, main.inside, ...)
chromPos2angle(pos, len.chrom, rot=pi/2, clockwise=TRUE)
polygonChrom(begin, end, len.chrom, radius.in, radius.out, total.edges = 300, edges = max(round(abs(end - begin)/len.chrom * total.edges), 2, na.rm = TRUE), rot = pi/2, clockwise = TRUE, ...)
linesChrom(begin, end, len.chrom, radius, total.edges = 300, edges = max(round(abs(end - begin)/len.chrom * total.edges), 2, na.rm = TRUE), rot = pi/2, clockwise = TRUE, ...)
ecoli.len

Arguments

radius
radius
xlim, ylim
range for the plot. Can be used to zoom-in a particular region.
pos
position (nucleic base coordinate)
begin
begining of the segment (nucleic base number).
end
end of the segment (nucleic base number).
len.chrom
length of the chromosome in base pairs
radius.in
inner radius
radius.out
outer radius
total.edges
total number of edges for the chromosome
edges
number of edges for the specific segment(s)
rot
rotation (default is pi / 2, bringing the angle zero at 12 o'clock)
clockwise
rotate clockwise. Default to TRUE.
main, main.inside
main titles for the plot
...
optional graphical parameters

Value

Except chromPos2angle, the function are solely used for their border effects.

Details

The function chromPos2angle is a convenience function. The variable ecoli.len contains the size of the Escheria coli genome considered (K12).

See Also

Examples

Run this code

data(ecoligenomeSYMBOL2AFFY)
data(ecoligenomeCHRLOC)

## find the operon lactose ("lac*" genes)
lac.i <- grep("^lac", ls(ecoligenomeSYMBOL2AFFY))
lac.symbol <- ls(ecoligenomeSYMBOL2AFFY)[lac.i]
lac.affy <- unlist(lapply(lac.symbol, get, envir=ecoligenomeSYMBOL2AFFY))

beg.end <- lapply(lac.affy, get, envir=ecoligenomeCHRLOC)
beg.end <- matrix(unlist(beg.end), nc=2, byrow=TRUE)

lac.o <- order(beg.end[, 1])

lac.i <- lac.i[lac.o]
lac.symbol <- lac.symbol[lac.o]
lac.affy <- lac.affy[lac.o]
beg.end <- beg.end[lac.o, ]

lac.col <- rainbow(length(lac.affy))

par(mfrow=c(2,2))

## plot

cPlotCircle(main="lac genes")
polygonChrom(beg.end[, 1], beg.end[, 2], ecoli.len, 1, 1.2, col=lac.col)
rect(0, 0, 1.1, 1.1, border="red")

cPlotCircle(xlim=c(0, 1.2), ylim=c(0, 1.1))
polygonChrom(beg.end[, 1], beg.end[, 2], ecoli.len, 1, 1.1, col=lac.col)
rect(0.4, 0.8, 0.7, 1.1, border="red")

cPlotCircle(xlim=c(.45, .5), ylim=c(.85, 1.0))
polygonChrom(beg.end[, 1], beg.end[, 2], ecoli.len, 1, 1.03, col=lac.col)

mid.genes <- apply(beg.end, 1, mean)
mid.angles <- chromPos2angle(mid.genes, ecoli.len)
xy <- polar2xy(1.03, mid.angles)
xy.labels <- data.frame(x = seq(0.45, 0.5, length=4), y = seq(0.95, 1.0, length=4))
segments(xy$x, xy$y, xy.labels$x, xy.labels$y, col=lac.col)
text(xy.labels$x, xy.labels$y, lac.symbol, col=lac.col)

Run the code above in your browser using DataLab