annotation {genoPlotR} | R Documentation |
An annotation describes a DNA segment. It has labels attached to positions. Each label can be attached to a single position or to a range.
annotation(x1, x2 = NA, text, rot = 0, col = "black") as.annotation(df, x2 = NA, rot = 0, col = "black") is.annotation(annotation)
x1 |
Numeric. A vector giving the first or only position of the label. Mandatory. |
x2 |
Numeric. A vector of the same length as |
text |
Character of the same length as |
rot |
Numeric of the same length as |
col |
Vector of the same length as |
df |
A data frame to convert to an annotation object. Should have at
least columns |
annotation |
An object to test. |
An annotation
object is a data frame with columns x0
,
x1
, text
, col
and rot
. They give,
respectively, the first (or only) position, eventually the second
position, the text, the color and the rotation of the annotation. When
plotted with plot_gene_map
, it will add an annotation row on
top of the first dna_seg
. Labels for which only one position is
given will be centered on that position. Labels for which two
positions are given are linked by an horizontal square bracket and the
label is plotted in the middle of the positions.
annotation
and as.annotation
return an annotation object.
is.annotation
returns a logical.
Lionel Guy
## loading data data(three_genes) ## Calculating middle positions mid_pos <- middle(dna_segs[[1]]) # Create first annotation annot1 <- annotation(x1=mid_pos, text=dna_segs[[1]]$name) plot_gene_map(dna_segs=dna_segs, comparisons=comparisons, annotations=annot1) ## Exploring options annot2 <- annotation(x1=c(mid_pos[1], dna_segs[[1]]$end[2]), x2=c(NA, dna_segs[[1]]$end[3]), text=c(dna_segs[[1]]$name[1], "region1"), rot=c(30, 0), col=c("grey", "black")) plot_gene_map(dna_segs=dna_segs, comparisons=comparisons, annotations=annot2, annotation_height=1.3) ## Annotations on all the segments annots <- lapply(dna_segs, function(x){ mid <- middle(x) annot <- annotation(x1=mid, text=x$name, rot=30) }) plot_gene_map(dna_segs=dna_segs, comparisons=comparisons, annotations=annots, annotation_height=1.8, annotation_cex=1) ## ## Using a bigger dataset from a 4-genome comparison ## data(barto) ## Adding a tree tree <- newick2phylog("(BB:2.5,(BG:1.8,(BH:1,BQ:0.8):1.9):3);") ## Showing several subsegments xlims2 <- list(c(1445000, 1415000, 1380000, 1412000), c( 10000, 45000, 50000, 83000, 90000, 120000), c( 15000, 36000, 90000, 120000, 74000, 98000), c( 5000, 82000)) ## Adding annotations for all genomes, allow segments to be placed out ## of the longest segment annots <- lapply(barto$dna_segs, function(x){ mid <- middle(x) annot <- annotation(x1=mid, text=x$name, rot=30) # removing gene names starting with "B" and keeping 1 in 4 idx <- grep("^[^B]", annot$text, perl=TRUE) annot[idx[idx %% 4 == 0],] }) plot_gene_map(barto$dna_segs, barto$comparisons, tree=tree, annotations=annots, xlims=xlims2, limit_to_longest_dna_seg=FALSE, dna_seg_scale=TRUE)