Go to 1. Monocentrics Vignette
Go to 2. Holocentrics Vignette
Go to 3. Groups Vignette
Go to 4. Alongside Phylogeny Vignette
Go to 5. Human Vignette
1 idiogramFISH: Idiograms with Marks and Karyotype Indices
The goal of idiogramFISH is to plot idiograms of several karyotypes having a set of dataframes for chromosome data and optionally marks’ data (plotIdiograms
) (Roa and Telles, 2019).
Marks can have square or dot form, its legend (label) can be drawn inline or to the right of karyotypes. It is possible to calculate also chromosome and karyotype indexes and classify chromosomes by morphology (Levan et al., 1964; Guerra, 1986; Romero-Zarco, 1986; Watanabe et al., 1999).
IdiogramFISH was written in R(R Core Team, 2019) and also uses crayon package (Csárdi, 2017). Manuals were written with R-packages bookdown, knitr, pkgdown and Rmarkdown (Allaire et al., 2019; Wickham and Hesselberth, 2019; Xie, 2019a, 2019b)
2 Installation
Or the devel version
From gitlab with devtools (Wickham et al., 2019b) :
Attention windows users, please install Rtools and git
# This installs package devtools, necessary for installing the dev version
install.packages("devtools")
url <- "https://gitlab.com/ferroao/idiogramFISH"
4 Need help?
Manual
Documentation
vignettes:
Online:
Monocentrics
Holocentrics
Groups of chromosomes
Alongside Phylogeny
Human karyotype
Launch vignettes from R:
5 Basic examples
How to plot a karyotype:
Define your plotting window size with something like par(pin=c(10,6))
# fig.width=10, fig.height=6
library(idiogramFISH)
data(dfOfChrSize) # chromsome data
data(dfMarkColor) # mark general data
data(dfOfMarks2) # mark position data (inc. cen.)
svg("dfOfChrSize.svg",width=12,height=8 )
# png("dfOfChrSize.png", width=500, height=400)
plotIdiograms(dfChrSize=dfOfChrSize, # data.frame of chr. size
dfMarkColor=dfMarkColor, # d.f of mark style < == Optional for ver. > 1.0.0
dfMarkPos=dfOfMarks2, # df of mark positions (includes cen. marks)
rulerPos=-.9, # position of rulers
ruler.tck=-0.01, # size and orientation of ruler ticks
rulerNumberSize=.8 # font size of rulers
,legendWidth=1 # width of legend items
,distTextChr = .5 # chr. text separation
,xlimLeftMod = 2 # xlim left param.
,ylimBotMod = 0 # modify ylim bottom argument
,ylimTopMod = 0 # modify ylim top argument
,asp=1 # y/x aspect, see ?plot
)
dev.off()
Let’s explore the dataframes for monocentrics:
chrName shortArmSize longArmSize
1 1 3 4
2 2 4 5
3 3 2 3
4 X 1 2
markName markColor style
1 5S red dots
2 45S green square
3 DAPI blue square
4 CMA yellow square
p, q
and w
marks can have empty columns markDistCen
and markSize
since v. 1.9.1 to plot whole arms (p
, q
) and whole chr. w
.
chrName markName chrRegion markSize markDistCen
1 1 5S p 1 0.5
2 1 45S q 1 0.5
3 X 45S p NA NA
4 3 DAPI q 1 1.0
5 1 DAPI cen NA NA
6 X CMA cen NA NA
How to plot a karyotype of holocentrics:
function plotIdiogramsHolo
deprecated after ver. > 1.5.1
library(idiogramFISH)
# load some package data.frames
data(dfChrSizeHolo, dfMarkColor, dfMarkPosHolo)
# plotIdiogramsHolo is deprecated
par(mar = c(0, 0, 0, 0), omi=rep(0,4), oma=rep(0,4) )
# svg("testing.svg",width=14,height=8 )
plotIdiograms(dfChrSize=dfChrSizeHolo, # data.frame of chr. size
dfMarkColor=dfMarkColor, # df of mark style
dfMarkPos=dfMarkPosHolo, # df of mark positions
addOTUName=FALSE, # do not add OTU names
distTextChr = .5, # chr. name distance to chr.
rulerPos=-.9, # position of ruler
rulerNumberPos=.9, # position of numbers of rulers
xlimLeftMod=2, # modify xlim left argument of plot
ylimBotMod=.2 # modify ylim bottom argument of plot
,legendHeight=.5 # height of legend labels
,legendWidth = 1.2 # width of legend labels
,asp=1) # y/x aspect
Let’s explore the dataframes for holocentrics:
chrName chrSize
1 1 3
2 2 4
3 3 2
4 4 5
markName markColor style
1 5S red dots
2 45S green square
3 DAPI blue square
4 CMA yellow square
chrName markName markPos markSize
1 3 5S 1.0 0.5
2 3 DAPI 2.0 0.5
3 1 45S 2.0 0.5
4 2 DAPI 2.0 0.5
5 4 CMA 2.0 0.5
6 4 5S 0.5 0.5
Plotting both mono. and holo.
Available only for ver. > 1.5.1
Merge data.frames with plyr
(Wickham, 2016)
# chromosome data, if only 1 species, column OTU is optional
require(plyr)
dfOfChrSize$OTU <- "Species mono"
dfChrSizeHolo$OTU <- "Species holo"
monoholoCS <- plyr::rbind.fill(dfOfChrSize,dfChrSizeHolo)
dfOfMarks2$OTU <-"Species mono"
dfOfMarks2[which(dfOfMarks2$markName=="5S"),]$markSize<-.7
dfMarkPosHolo$OTU <-"Species holo"
monoholoMarks <- plyr::rbind.fill(dfOfMarks2,dfMarkPosHolo)
library(idiogramFISH)
# load some saved dataframes
# function plotIdiogramsHolo deprecated for ver. > 1.5.1
#svg("testing.svg",width=14,height=10 )
png("monoholoCS.png", width=700, height=500)
par(mar=rep(0,4))
plotIdiograms(dfChrSize = monoholoCS, # data.frame of chr. size
dfMarkColor= dfMarkColor, # df of mark style
dfMarkPos = monoholoMarks,# df of mark positions, includes cen. marks
roundness = 4, # vertices roundness
addOTUName = TRUE, # add OTU names
karHeiSpace = 3, # karyotype height inc. spacing
karIndexPos = .2, # move karyotype index
legendHeight= 1, # height of legend labels
legendWidth = 1, # width of legend labels
rulerPos= -0.5, # position of ruler
ruler.tck=-0.02, # size and orientation of ruler ticks
rulerNumberPos=.9, # position of numbers of rulers
xlimLeftMod=1, # modify xlim left argument of plot
xlimRightMod=3, # modify xlim right argument of plot
ylimBotMod=-.2 # modify ylim bottom argument of plot
,asp=1 # y x aspect ratio
)
dev.off()
Plotting GISH results
Available only for ver. > 1.8.3
library(idiogramFISH)
# load some saved dataframes
par(mar=rep(0,4))
# svg("allo.svg",width=10,height=9 )
plotIdiograms(dfChrSize = parentalAndHybChrSize, # d.f. of chr. sizes
dfMarkPos = dfAlloParentMarks, # d.f. of marks' positions
cenColor = NULL # cen. color when GISH
,karHeiSpace=5, # karyotype height including spacing
karSepar = FALSE, # equally sized karyotypes
rulerPos=-1, # ruler position
ruler.tck= -0.002, # ruler tick orientation and length
rulerNumberSize=.5 # ruler font size
,legend="" # no legend
,asp=1 # y x aspect ratio
,ylimBotMod = 1 # modifiy ylim bottom argument
,xlimRightMod = 0 # modify xlim right argument
)
5.1 Let’s explore the dataframes for GISH:
parentalAndHybChrSize
OTU chrName shortArmSize longArmSize
Parental 1 1 3.2 4
Parental 1 4 1.5 2
Parental 1 5 4.8 6
Parental 1 6 6.1 7
Parental 2 1 3.2 4
Parental 2 2 4.5 5
Parental 2 3 2.0 3
Allopolyploid 1 3.2 4
Allopolyploid 2 4.5 5
Allopolyploid 3 2.0 3
Allopolyploid 4 1.5 2
Allopolyploid 5 4.8 6
Allopolyploid 6 6.1 7
Use p
for short arm, q
for long arm, and w
for whole chromosome mark.
dfAlloParentMarks
OTU chrName markName chrRegion
Allopolyploid 1 Parental 1 p
Allopolyploid 1 Parental 2 q
Allopolyploid 1 Parental 2 cen
Allopolyploid 2 Parental 2 w
Allopolyploid 3 Parental 2 w
Allopolyploid 4 Parental 1 w
Allopolyploid 5 Parental 1 w
Allopolyploid 6 Parental 1 w
Parental 1 6 Parental 1 w
Parental 1 5 Parental 1 w
Parental 1 1 Parental 1 w
Parental 1 4 Parental 1 w
Parental 2 2 Parental 2 w
Parental 2 1 Parental 2 w
Parental 2 3 Parental 2 w
5.2 Citation
To cite idiogramFISH in publications, please use:
Roa F, Telles MPC. 2019. idiogramFISH: Idiograms with Marks and Karyotype Indices, Universidade Federal de Goiás. Brazil. R-package. https://ferroao.gitlab.io/manualidiogramfish/
References
Allaire J, Xie Y, McPherson J, Luraschi J, Ushey K, Atkins A, Wickham H, Cheng J, Chang W, Iannone R. 2019. Rmarkdown: Dynamic documents for r. https://CRAN.R-project.org/package=rmarkdown
Csárdi G. 2017. Crayon: Colored terminal output. https://CRAN.R-project.org/package=crayon
Guerra M. 1986. Reviewing the chromosome nomenclature of Levan et al. Brazilian Journal of Genetics, 9(4): 741–743
Levan A, Fredga K, Sandberg AA. 1964. Nomenclature for centromeric position on chromosomes Hereditas, 52(2): 201–220. https://doi.org/10.1111/j.1601-5223.1964.tb01953.x
R Core Team. 2019. R: A language and environment for statistical computing R Foundation for Statistical Computing: Vienna, Austria. https://www.R-project.org/
Roa F, Telles MP. 2019. idiogramFISH: Idiograms with marks and karyotype indices Universidade Federal de Goiás: UFG, Goiânia. https://ferroao.gitlab.io/manualidiogramfish/
Romero-Zarco C. 1986. A new method for estimating karyotype asymmetry Taxon, 35(3): 526–530. https://onlinelibrary.wiley.com/doi/abs/10.2307/1221906
Watanabe K, Yahara T, Denda T, Kosuge K. 1999. Chromosomal evolution in the genus Brachyscome (Asteraceae, Astereae): statistical tests regarding correlation between changes in karyotype and habit using phylogenetic information Journal of Plant Research, 145–161. http://link.springer.com/article/10.1007/PL00013869
Wickham H. 2016. Plyr: Tools for splitting, applying and combining data. https://CRAN.R-project.org/package=plyr
Wickham H, François R, Henry L, Müller K. 2019a. Dplyr: A grammar of data manipulation. https://CRAN.R-project.org/package=dplyr
Wickham H, Hesselberth J. 2019. Pkgdown: Make static html documentation for a package. https://CRAN.R-project.org/package=pkgdown
Wickham H, Hester J, Chang W. 2019b. Devtools: Tools to make developing r packages easier. https://CRAN.R-project.org/package=devtools
Xie Y. 2019a. Bookdown: Authoring books and technical documents with r markdown. https://github.com/rstudio/bookdown
Xie Y. 2019b. Knitr: A general-purpose package for dynamic report generation in r. https://CRAN.R-project.org/package=knitr