a GRanges object, which could contain extra
information about cytoband. If you want an accurate genome mapping, please provide
seqlengths with this GRanges object,otherwise it will
emit a warning and use data space to estimate the chromosome space
which is very rough.
...
Extra parameters such as aes() or arbitrary color and size.
xlab
character vector or expression for x axis label.
ylab
character vector or expression for y axis label.
main
character vector or expression for plot title.
facets
faceting formula to use.
cytoband
logical value indicate to show the cytobands or not.
geom
The geometric object to use display the data.
stat
character vector specifying statistics to use.
ylim
limits for y axis, usually the chromosome spaces y limits are from 0
to rect.height, which 10, so if you wan to stack some data on top of
it, you can set limits to like c(10, 20).
rect.height
numreic value indicate half of the rectangle ploting region, used
for alignment of multiple layers.
Value
A 'Layer'.
Author(s)
Tengfei Yin
Examples
### R code from vignette source 'karyogram.Rnw'
###################################################
### code chunk number 1: loading
###################################################
library(ggbio)
data(hg19IdeogramCyto, package = "biovizBase")
head(hg19IdeogramCyto)
## default pre-set color stored in
getOption("biovizBase")$cytobandColor
###################################################
### code chunk number 2: default
###################################################
autoplot(hg19IdeogramCyto, layout = "karyogram", cytoband = TRUE)
###################################################
### code chunk number 3: change-order
###################################################
library(GenomicRanges)
hg19 <- keepSeqlevels(hg19IdeogramCyto, paste0("chr", c(1:22, "X", "Y")))
head(hg19)
autoplot(hg19, layout = "karyogram", cytoband = TRUE)
###################################################
### code chunk number 4: cyto-normal
###################################################
library(GenomicRanges)
## it's a 'ideogram'
biovizBase::isIdeogram(hg19)
## set to FALSE
autoplot(hg19, layout = "karyogram", cytoband = FALSE, aes(fill = gieStain)) +
scale_fill_giemsa()
###################################################
### code chunk number 5: load-RNAediting
###################################################
data(darned_hg19_subset500, package = "biovizBase")
dn <- darned_hg19_subset500
head(dn)
## add seqlengths
## we have seqlegnths information in another data set
data(hg19Ideogram, package = "biovizBase")
seqlengths(dn) <- seqlengths(hg19Ideogram)[names(seqlengths(dn))]
## now we have seqlengths
head(dn)
## then we change order
dn <- keepSeqlevels(dn, paste0("chr", c(1:22, "X")))
autoplot(dn, layout = "karyogram")
## this equivalent to
## autoplot(seqinfo(dn))
###################################################
### code chunk number 6: load-RNAediting-color
###################################################
## since default is geom rectangle, even though it's looks like segment
## we still use both fill/color to map colors
autoplot(dn, layout = "karyogram", aes(color = exReg, fill = exReg))
###################################################
### code chunk number 7: load-RNAediting-color-NA
###################################################
## since default is geom rectangle, even though it's looks like segment
## we still use both fill/color to map colors
autoplot(dn, layout = "karyogram", aes(color = exReg, fill = exReg)) +
scale_color_discrete(na.value = "brown")
###################################################
### code chunk number 8: load-RNAediting-color-fake
###################################################
dn2 <- dn
seqlengths(dn2) <- rep(max(seqlengths(dn2)), length(seqlengths(dn2)) )
autoplot(dn2, layout = "karyogram", aes(color = exReg, fill = exReg))
###################################################
### code chunk number 9: plotKaryogram (eval = FALSE)
###################################################
## plotKaryogram(dn)
## plotKaryogram(dn, aes(color = exReg, fill = exReg))
###################################################
### code chunk number 10: low-default
###################################################
## plot ideogram
p <- ggplot(hg19) + layout_karyogram(cytoband = TRUE)
p
## eqevelant autoplot(hg19, layout = "karyogram", cytoband = TRUE)
###################################################
### code chunk number 11: low-default-addon
###################################################
p <- p + layout_karyogram(dn, geom = "rect", ylim = c(11, 21), color = "red")
## commented line below won't work
## the cytoband fill color has been used already.
## p <- p + layout_karyogram(dn, aes(fill = exReg, color = exReg), geom = "rect")
p
###################################################
### code chunk number 12: edit-space
###################################################
## plot chromosome space
p <- autoplot(seqinfo(dn))
## make sure you pass rect as geom
## otherwise you just get background
p <- p + layout_karyogram(dn, aes(fill = exReg, color = exReg), geom = "rect")
values(dn)$pvalue <- rnorm(length(dn))
p + layout_karyogram(dn, aes(x = start, y = pvalue), ylim = c(10, 30), geom = "line", color = "red")
p
###################################################
### code chunk number 13: sessionInfo
###################################################
sessionInfo()
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(ggbio)
Loading required package: BiocGenerics
Loading required package: parallel
Attaching package: 'BiocGenerics'
The following objects are masked from 'package:parallel':
clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
clusterExport, clusterMap, parApply, parCapply, parLapply,
parLapplyLB, parRapply, parSapply, parSapplyLB
The following objects are masked from 'package:stats':
IQR, mad, xtabs
The following objects are masked from 'package:base':
Filter, Find, Map, Position, Reduce, anyDuplicated, append,
as.data.frame, cbind, colnames, do.call, duplicated, eval, evalq,
get, grep, grepl, intersect, is.unsorted, lapply, lengths, mapply,
match, mget, order, paste, pmax, pmax.int, pmin, pmin.int, rank,
rbind, rownames, sapply, setdiff, sort, table, tapply, union,
unique, unsplit
Loading required package: ggplot2
Need specific help about ggbio? try mailing
the maintainer or visit http://tengfei.github.com/ggbio/
Attaching package: 'ggbio'
The following objects are masked from 'package:ggplot2':
geom_bar, geom_rect, geom_segment, ggsave, stat_bin, stat_identity,
xlim
Warning message:
replacing previous import 'ggplot2::Position' by 'BiocGenerics::Position' when loading 'ggbio'
> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/ggbio/layout_karyogram-method.Rd_%03d_medium.png", width=480, height=480)
> ### Name: layout_karyogram
> ### Title: Create a karyogram layout
> ### Aliases: layout_karyogram layout_karyogram,GRanges-method
>
> ### ** Examples
>
> ### R code from vignette source 'karyogram.Rnw'
>
> ###################################################
> ### code chunk number 1: loading
> ###################################################
> library(ggbio)
> data(hg19IdeogramCyto, package = "biovizBase")
> head(hg19IdeogramCyto)
GRanges object with 6 ranges and 2 metadata columns:
seqnames ranges strand | name gieStain
<Rle> <IRanges> <Rle> | <factor> <factor>
[1] chr1 [ 0, 2300000] * | p36.33 gneg
[2] chr1 [ 2300000, 5400000] * | p36.32 gpos25
[3] chr1 [ 5400000, 7200000] * | p36.31 gneg
[4] chr1 [ 7200000, 9200000] * | p36.23 gpos25
[5] chr1 [ 9200000, 12700000] * | p36.22 gneg
[6] chr1 [12700000, 16200000] * | p36.21 gpos50
-------
seqinfo: 24 sequences from an unspecified genome; no seqlengths
> ## default pre-set color stored in
> getOption("biovizBase")$cytobandColor
gneg stalk acen gpos gvar gpos1 gpos2 gpos3
"grey100" "brown3" "brown4" "grey0" "grey0" "#FFFFFF" "#FCFCFC" "#F9F9F9"
gpos4 gpos5 gpos6 gpos7 gpos8 gpos9 gpos10 gpos11
"#F7F7F7" "#F4F4F4" "#F2F2F2" "#EFEFEF" "#ECECEC" "#EAEAEA" "#E7E7E7" "#E5E5E5"
gpos12 gpos13 gpos14 gpos15 gpos16 gpos17 gpos18 gpos19
"#E2E2E2" "#E0E0E0" "#DDDDDD" "#DADADA" "#D8D8D8" "#D5D5D5" "#D3D3D3" "#D0D0D0"
gpos20 gpos21 gpos22 gpos23 gpos24 gpos25 gpos26 gpos27
"#CECECE" "#CBCBCB" "#C8C8C8" "#C6C6C6" "#C3C3C3" "#C1C1C1" "#BEBEBE" "#BCBCBC"
gpos28 gpos29 gpos30 gpos31 gpos32 gpos33 gpos34 gpos35
"#B9B9B9" "#B6B6B6" "#B4B4B4" "#B1B1B1" "#AFAFAF" "#ACACAC" "#AAAAAA" "#A7A7A7"
gpos36 gpos37 gpos38 gpos39 gpos40 gpos41 gpos42 gpos43
"#A4A4A4" "#A2A2A2" "#9F9F9F" "#9D9D9D" "#9A9A9A" "#979797" "#959595" "#929292"
gpos44 gpos45 gpos46 gpos47 gpos48 gpos49 gpos50 gpos51
"#909090" "#8D8D8D" "#8B8B8B" "#888888" "#858585" "#838383" "#808080" "#7E7E7E"
gpos52 gpos53 gpos54 gpos55 gpos56 gpos57 gpos58 gpos59
"#7B7B7B" "#797979" "#767676" "#737373" "#717171" "#6E6E6E" "#6C6C6C" "#696969"
gpos60 gpos61 gpos62 gpos63 gpos64 gpos65 gpos66 gpos67
"#676767" "#646464" "#616161" "#5F5F5F" "#5C5C5C" "#5A5A5A" "#575757" "#545454"
gpos68 gpos69 gpos70 gpos71 gpos72 gpos73 gpos74 gpos75
"#525252" "#4F4F4F" "#4D4D4D" "#4A4A4A" "#484848" "#454545" "#424242" "#404040"
gpos76 gpos77 gpos78 gpos79 gpos80 gpos81 gpos82 gpos83
"#3D3D3D" "#3B3B3B" "#383838" "#363636" "#333333" "#303030" "#2E2E2E" "#2B2B2B"
gpos84 gpos85 gpos86 gpos87 gpos88 gpos89 gpos90 gpos91
"#292929" "#262626" "#242424" "#212121" "#1E1E1E" "#1C1C1C" "#191919" "#171717"
gpos92 gpos93 gpos94 gpos95 gpos96 gpos97 gpos98 gpos99
"#141414" "#121212" "#0F0F0F" "#0C0C0C" "#0A0A0A" "#070707" "#050505" "#020202"
gpos100
"#000000"
>
>
> ###################################################
> ### code chunk number 2: default
> ###################################################
> autoplot(hg19IdeogramCyto, layout = "karyogram", cytoband = TRUE)
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
>
>
>
> ###################################################
> ### code chunk number 3: change-order
> ###################################################
> library(GenomicRanges)
Loading required package: S4Vectors
Loading required package: stats4
Attaching package: 'S4Vectors'
The following objects are masked from 'package:base':
colMeans, colSums, expand.grid, rowMeans, rowSums
Loading required package: IRanges
Loading required package: GenomeInfoDb
> hg19 <- keepSeqlevels(hg19IdeogramCyto, paste0("chr", c(1:22, "X", "Y")))
> head(hg19)
GRanges object with 6 ranges and 2 metadata columns:
seqnames ranges strand | name gieStain
<Rle> <IRanges> <Rle> | <factor> <factor>
[1] chr1 [ 0, 2300000] * | p36.33 gneg
[2] chr1 [ 2300000, 5400000] * | p36.32 gpos25
[3] chr1 [ 5400000, 7200000] * | p36.31 gneg
[4] chr1 [ 7200000, 9200000] * | p36.23 gpos25
[5] chr1 [ 9200000, 12700000] * | p36.22 gneg
[6] chr1 [12700000, 16200000] * | p36.21 gpos50
-------
seqinfo: 24 sequences from an unspecified genome; no seqlengths
> autoplot(hg19, layout = "karyogram", cytoband = TRUE)
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
>
>
> ###################################################
> ### code chunk number 4: cyto-normal
> ###################################################
> library(GenomicRanges)
> ## it's a 'ideogram'
> biovizBase::isIdeogram(hg19)
[1] TRUE
> ## set to FALSE
> autoplot(hg19, layout = "karyogram", cytoband = FALSE, aes(fill = gieStain)) +
+ scale_fill_giemsa()
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
Warning messages:
1: In getIdeoGR(data) :
geom(ideogram) need valid seqlengths information for accurate mapping,
now use reduced information as ideogram...
2: In getIdeoGR(data) :
geom(ideogram) need valid seqlengths information for accurate mapping,
now use reduced information as ideogram...
>
>
> ###################################################
> ### code chunk number 5: load-RNAediting
> ###################################################
> data(darned_hg19_subset500, package = "biovizBase")
> dn <- darned_hg19_subset500
> head(dn)
GRanges object with 6 ranges and 10 metadata columns:
seqnames ranges strand | inchr inrna
<Rle> <IRanges> <Rle> | <character> <character>
[1] chr5 [ 86618225, 86618225] - | A I
[2] chr7 [ 99792382, 99792382] - | A I
[3] chr12 [110929076, 110929076] - | A I
[4] chr20 [ 25818128, 25818128] - | A I
[5] chr3 [132397992, 132397992] + | A I
[6] chr19 [ 59078471, 59078471] - | A I
snp gene seqReg exReg source
<character> <character> <character> <character> <character>
[1] <NA> <NA> O <NA> amygdala
[2] <NA> <NA> O <NA> <NA>
[3] <NA> <NA> O <NA> salivary gland
[4] <NA> <NA> O <NA> brain, hippocampus
[5] <NA> <NA> O <NA> small intestine
[6] <NA> MZF1 I <NA> <NA>
ests esta author
<integer> <integer> <character>
[1] 0 0 15342557
[2] 0 0 15342557
[3] 0 0 15342557
[4] 0 0 15342557
[5] 0 0 15342557
[6] 0 0 15258596
-------
seqinfo: 23 sequences from an unspecified genome; no seqlengths
> ## add seqlengths
> ## we have seqlegnths information in another data set
> data(hg19Ideogram, package = "biovizBase")
> seqlengths(dn) <- seqlengths(hg19Ideogram)[names(seqlengths(dn))]
> ## now we have seqlengths
> head(dn)
GRanges object with 6 ranges and 10 metadata columns:
seqnames ranges strand | inchr inrna
<Rle> <IRanges> <Rle> | <character> <character>
[1] chr5 [ 86618225, 86618225] - | A I
[2] chr7 [ 99792382, 99792382] - | A I
[3] chr12 [110929076, 110929076] - | A I
[4] chr20 [ 25818128, 25818128] - | A I
[5] chr3 [132397992, 132397992] + | A I
[6] chr19 [ 59078471, 59078471] - | A I
snp gene seqReg exReg source
<character> <character> <character> <character> <character>
[1] <NA> <NA> O <NA> amygdala
[2] <NA> <NA> O <NA> <NA>
[3] <NA> <NA> O <NA> salivary gland
[4] <NA> <NA> O <NA> brain, hippocampus
[5] <NA> <NA> O <NA> small intestine
[6] <NA> MZF1 I <NA> <NA>
ests esta author
<integer> <integer> <character>
[1] 0 0 15342557
[2] 0 0 15342557
[3] 0 0 15342557
[4] 0 0 15342557
[5] 0 0 15342557
[6] 0 0 15258596
-------
seqinfo: 23 sequences from an unspecified genome
> ## then we change order
> dn <- keepSeqlevels(dn, paste0("chr", c(1:22, "X")))
> autoplot(dn, layout = "karyogram")
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
> ## this equivalent to
> ## autoplot(seqinfo(dn))
>
>
> ###################################################
> ### code chunk number 6: load-RNAediting-color
> ###################################################
> ## since default is geom rectangle, even though it's looks like segment
> ## we still use both fill/color to map colors
> autoplot(dn, layout = "karyogram", aes(color = exReg, fill = exReg))
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
>
>
> ###################################################
> ### code chunk number 7: load-RNAediting-color-NA
> ###################################################
> ## since default is geom rectangle, even though it's looks like segment
> ## we still use both fill/color to map colors
> autoplot(dn, layout = "karyogram", aes(color = exReg, fill = exReg)) +
+ scale_color_discrete(na.value = "brown")
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
>
>
> ###################################################
> ### code chunk number 8: load-RNAediting-color-fake
> ###################################################
> dn2 <- dn
> seqlengths(dn2) <- rep(max(seqlengths(dn2)), length(seqlengths(dn2)) )
> autoplot(dn2, layout = "karyogram", aes(color = exReg, fill = exReg))
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
>
>
> ###################################################
> ### code chunk number 9: plotKaryogram (eval = FALSE)
> ###################################################
> ## plotKaryogram(dn)
> ## plotKaryogram(dn, aes(color = exReg, fill = exReg))
>
>
> ###################################################
> ### code chunk number 10: low-default
> ###################################################
> ## plot ideogram
> p <- ggplot(hg19) + layout_karyogram(cytoband = TRUE)
> p
> ## eqevelant autoplot(hg19, layout = "karyogram", cytoband = TRUE)
>
>
> ###################################################
> ### code chunk number 11: low-default-addon
> ###################################################
> p <- p + layout_karyogram(dn, geom = "rect", ylim = c(11, 21), color = "red")
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
> ## commented line below won't work
> ## the cytoband fill color has been used already.
> ## p <- p + layout_karyogram(dn, aes(fill = exReg, color = exReg), geom = "rect")
> p
>
>
> ###################################################
> ### code chunk number 12: edit-space
> ###################################################
> ## plot chromosome space
> p <- autoplot(seqinfo(dn))
> ## make sure you pass rect as geom
> ## otherwise you just get background
> p <- p + layout_karyogram(dn, aes(fill = exReg, color = exReg), geom = "rect")
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
> values(dn)$pvalue <- rnorm(length(dn))
> p + layout_karyogram(dn, aes(x = start, y = pvalue), ylim = c(10, 30), geom = "line", color = "red")
Scale for 'x' is already present. Adding another scale for 'x', which will
replace the existing scale.
> p
>
>
> ###################################################
> ### code chunk number 13: sessionInfo
> ###################################################
> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04 LTS
locale:
[1] C
attached base packages:
[1] stats4 parallel stats graphics grDevices utils datasets
[8] methods base
other attached packages:
[1] GenomicRanges_1.24.2 GenomeInfoDb_1.8.1 IRanges_2.6.1
[4] S4Vectors_0.10.1 ggbio_1.20.1 ggplot2_2.1.0
[7] BiocGenerics_0.18.0
loaded via a namespace (and not attached):
[1] Rcpp_0.12.5 biovizBase_1.20.0
[3] lattice_0.20-33 Rsamtools_1.24.0
[5] Biostrings_2.40.2 digest_0.6.9
[7] mime_0.4 R6_2.1.2
[9] plyr_1.8.4 chron_2.3-47
[11] acepack_1.3-3.3 RSQLite_1.0.0
[13] httr_1.2.0 BiocInstaller_1.22.3
[15] zlibbioc_1.18.0 GenomicFeatures_1.24.3
[17] data.table_1.9.6 rpart_4.1-10
[19] Matrix_1.2-6 labeling_0.3
[21] splines_3.3.1 BiocParallel_1.6.2
[23] AnnotationHub_2.4.2 stringr_1.0.0
[25] foreign_0.8-66 RCurl_1.95-4.8
[27] biomaRt_2.28.0 munsell_0.4.3
[29] shiny_0.13.2 httpuv_1.3.3
[31] rtracklayer_1.32.1 htmltools_0.3.5
[33] nnet_7.3-12 SummarizedExperiment_1.2.3
[35] gridExtra_2.2.1 interactiveDisplayBase_1.10.3
[37] Hmisc_3.17-4 XML_3.98-1.4
[39] reshape_0.8.5 GenomicAlignments_1.8.3
[41] bitops_1.0-6 RBGL_1.48.1
[43] grid_3.3.1 xtable_1.8-2
[45] GGally_1.1.0 gtable_0.2.0
[47] DBI_0.4-1 magrittr_1.5
[49] scales_0.4.0 graph_1.50.0
[51] stringi_1.1.1 XVector_0.12.0
[53] reshape2_1.4.1 latticeExtra_0.6-28
[55] Formula_1.2-1 RColorBrewer_1.1-2
[57] ensembldb_1.4.6 tools_3.3.1
[59] dichromat_2.0-0 OrganismDbi_1.14.1
[61] BSgenome_1.40.1 Biobase_2.32.0
[63] survival_2.39-5 AnnotationDbi_1.34.3
[65] colorspace_1.2-6 cluster_2.0.4
[67] VariantAnnotation_1.18.1
>
>
>
>
>
> dev.off()
null device
1
>