3 Minimal examples
Jupyter interactive version:3.1 Monocentrics
Define your plotting window size with something like par(pin=c(10,6))
, or with svg()
, png()
, etc.
Add chromosome morphology according to Guerra (1986) or (Levan et al., 1964)
library(idiogramFISH)
data(dfOfChrSize) # chromosome data
data(dfMarkColor) # mark general data
data(dfOfMarks2) # mark position data (inc. cen.)
# column Mbp not for plotting purposes
dfOfChrSize$Mbp<-(dfOfChrSize$shortArmSize+dfOfChrSize$longArmSize)*100
svg("dfOfChrSize.svg", width=10, height=6 )
# png("dfOfChrSize.png", width=500, height=400)
plotIdiograms(dfChrSize =dfOfChrSize, # data.frame of chr. size
dfMarkColor=dfMarkColor, # d.f of mark style <- Optional
dfMarkPos =dfOfMarks2, # d.f of mark positions (includes cen. marks)
karHeight=5, # kar. height
chrWidth = 1.2, # chr. width
chrSpacing = 1, # space among chr.
morpho="Guerra", # chr. morpho. classif. (Guerra, Levan, both, "" ) ver. >= 1.12 only
chrIndex="CI", # cen. pos. (CI, AR, both, "" ) ver. >= 1.12 only
chrSize = TRUE, # add chr. sizes under chr.
chrSizeMbp = TRUE, # add Mbp sizes under chr. (see above)
rulerPos= 0, # position of ruler
ruler.tck=-0.01, # size and orientation of ruler ticks
rulerNumberSize=.8 # font size of rulers
,xPosRulerTitle = 3 # pos of ruler title
,legendWidth=1 # width of legend items
,fixCenBorder = TRUE # use chrColor as border color of cen. or cen. marks
,distTextChr = 1.2 # chr. text separation
,xlimLeftMod = 2 # xlim left param.
,ylimBotMod = 0 # modify ylim bottom argument
,ylimTopMod = 0 # modify ylim top argument
)
dev.off() # close svg()
Let’s explore the data.frames for monocentrics:
If only one species, column OTU is optional
dfOfChrSize
chrName | shortArmSize | longArmSize | Mbp |
---|---|---|---|
1 | 3 | 4 | 700 |
2 | 4 | 5 | 900 |
3 | 2 | 3 | 500 |
X | 1 | 2 | 300 |
dfMarkColor
markName | markColor | style |
---|---|---|
5S | red | dots |
45S | chartreuse3 | square |
DAPI | blue | square |
CMA | darkgoldenrod1 | 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
.
# mark position data (inc. cen.)
dfOfMarks2
chrName | markName | chrRegion | markSize | markDistCen |
---|---|---|---|---|
1 | 5S | p | 1 | 0.5 |
1 | 45S | q | 1 | 0.5 |
X | 45S | p | NA | NA |
3 | DAPI | q | 1 | 1.0 |
1 | DAPI | cen | NA | NA |
X | CMA | cen | NA | NA |
3.2 Holocentrics
library(idiogramFISH)
# load some package data.frames - optional
data(dfChrSizeHolo, dfMarkColor, dfMarkPosHolo)
# column Mbp not for plotting purposes
dfChrSizeHolo$Mbp<-dfChrSizeHolo$chrSize*100
# svg("testing.svg",width=14,height=8 )
par(mar = c(0, 0, 0, 0), omi=rep(0,4) )
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 = 1, # chr. name distance to chr.
chrSize = TRUE, # show chr. size under chr.
chrSizeMbp = TRUE, # show chr. size in Mbp under chr. requires Mbp column
rulerPos=-0.1, # position of ruler
rulerNumberPos=.9 # position of numbers of rulers
,xPosRulerTitle = 3 # pos. of ruler title (units)
,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
,xModifier = 20 # separ. among chromatids
); #dev.off() # close svg()

Let’s explore the data.frames for holocentrics:
- chromosome data, if only 1 species, column OTU is optional
dfChrSizeHolo
chrName | chrSize | Mbp |
---|---|---|
1 | 3 | 300 |
2 | 4 | 400 |
3 | 2 | 200 |
4 | 5 | 500 |
- mark general data
dfMarkColor
markName | markColor | style |
---|---|---|
5S | red | dots |
45S | chartreuse3 | square |
DAPI | blue | square |
CMA | darkgoldenrod1 | square |
- mark position data, if only 1 species, column OTU is optional (mandatory if in d.f of Chr. Size)
dfMarkPosHolo
chrName | markName | markPos | markSize |
---|---|---|---|
3 | 5S | 1.0 | 0.5 |
3 | DAPI | 1.5 | 0.5 |
1 | 45S | 2.0 | 0.5 |
2 | DAPI | 2.0 | 0.5 |
4 | CMA | 2.0 | 0.5 |
4 | 5S | 0.5 | 0.5 |
3.3 Plotting both mono. and holo.
Merge data.frames with plyr
(Wickham, 2011)
# 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)
Plot
library(idiogramFISH)
#svg("testing.svg",width=14,height=10 )
png("monoholoCS.png", width=700, height=600)
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
chrSize = TRUE, # show chr. size under chr.
squareness = 4, # vertices squareness
addOTUName = TRUE, # add OTU names
OTUTextSize = .7, # font size of OTU
distTextChr = .5, # separ. among chr. and text and among chr. name and indices
karHeiSpace = 4, # karyotype height inc. spacing
karIndexPos = .2, # move karyotype index
legendHeight= 1, # height of legend labels
legendWidth = 1, # width of legend labels
fixCenBorder= TRUE, # use chrColor as border color of cen. or cen. marks
rulerPos = 0, # position of ruler
ruler.tck =-0.02, # size and orientation of ruler ticks
rulerNumberPos =.9, # position of numbers of rulers
xPosRulerTitle = 3.5, # ruler title (units) position
xlimLeftMod =1, # modify xlim left argument of plot
xlimRightMod=3, # modify xlim right argument of plot
ylimBotMod = .2 # modify ylim bottom argument of plot
,chromatids = FALSE # do not show separ. chromatids
# ,useOneDot=TRUE
# ,circularPlot = TRUE # circularPlot
# ,shrinkFactor = .9 # percentage 1 = 100% of circle with chr.
# ,circleCenter = 3 # X coordinate of circleCenter (affects legend pos.)
# ,chrLabelSpacing = .9 # chr. names spacing
# ,OTUsrt = 0 # angle for OTU name (or number)
# ,OTUplacing = "number" # Use number and legend instead of name
# ,OTULabelSpacerx = -0.6 # modify position of OTU label, when OTUplacing="number" or "simple"
# ,OTUlegendHeight = 1.5 # space among OTU names when in legend - OTUplacing
# ,separFactor = 0.75 # alter separ. of kar.
)
dev.off() # close png

