First create some data and a tree. Pretend that sites are split into two classes, "Enhancer" and "Promoter" and also split by ontology classes "A" and "B".
library(epiAllele) ## Set seed for consistency set.seed(123) ## Simulate random data species=c("A","B","C","D","E") aData=lapply(as.list(species),function(x) matrix(runif(120),ncol=3)) names(aData)=species ## Create test trees, both one that will fail, and one that will pass tree=ape::rtree(n = length(species),tip.label = species) ## Create a data frame with labels siteLabels=data.frame(cre.class=rep(c("Enhancer","Promoter"),each=nrow(aData[[1]])/2), go.class=rep(c("A","B"),times=nrow(aData[[1]])/2))
Now create the allele data object:
ad=alleleData(data=aData,tree=tree,siteInfo = siteLabels)
Now create a rate model specifying that genomic regions should be seperated by both cre.class and go.class.
rateMod=rateModel(ad,siteLabelCriteria = c("cre.class","go.class"))
Note that the model assumes that all different genomic regions have different rate parameters. This can be seen using the plotTree command.
plotTree(obj = rateMod,colorByRate="index")
Now we can fit the model and plot the tree with values
fittedModel=fit(rateMod) plotTree(obj = fittedModel$model,colorByRate="value")
Say we want to allow for lineage specific rates. Then we can extract and edge table from the allele data object and add a column called edgeGroup to
egt=getEdgeTable(ad) egt[edgeID %in% c("8-4","8-3"),edgeGroup:="e1"] egt[!edgeID %in% c("8-4","8-3"),edgeGroup:="e2"] rateMod=rateModel(ad,siteLabelCriteria = c("cre.class","go.class"),lineageTable = egt) plotTree(rateMod,colorByRate="index")
Then say we want to tie rates between two sets of sites for a specific group of edges.
rateModTied=tieRates(obj=rateMod,siteLabelA = "Enhancer_A",edgeGroupA = "e1",siteLabelB = "Enhancer_B",edgeGroupB = "e1") plotTree(obj = rateModTied,colorByRate="index")
Then say we want to tie rates between two sets edge groups within a siteLabel
rateModelTied2=tieRates(rateMod,siteLabelA = "Enhancer_B",edgeGroupA = "e1",siteLabelB = "Enhancer_B",edgeGroupB = "e2") plotTree(obj = rateModelTied2,colorByRate="index")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.