Nothing
### R code from vignette source 'MineICA.Rnw'
###################################################
### code chunk number 1: morelib
###################################################
library(Biobase)
library(plyr)
library(ggplot2)
library(foreach)
library(xtable)
library(biomaRt)
library(GOstats)
library(cluster)
library(marray)
library(mclust)
library(RColorBrewer)
library(igraph)
library(Rgraphviz)
library(graph)
library(colorspace)
library(annotate)
library(scales)
library(gtools)
###################################################
### code chunk number 2: lib
###################################################
library(MineICA)
###################################################
### code chunk number 3: helpIcaSet (eval = FALSE)
###################################################
## help(IcaSet)
###################################################
### code chunk number 4: loadMainz
###################################################
## load Mainz expression data and sample annotations.
library(breastCancerMAINZ)
data(mainz)
show(mainz)
## we restrict the data to the 10,000 probe sets with the highest IQR
mainz <- selectFeatures_IQR(mainz,10000)
###################################################
### code chunk number 5: runJade
###################################################
library(JADE)
## Features are mean-centered before ICA computation
exprs(mainz) <- t(apply(exprs(mainz),1,scale,scale=FALSE))
colnames(exprs(mainz)) <- sampleNames(mainz)
## run ICA-JADE
resJade <- runICA(X=exprs(mainz), nbComp=5, method = "JADE", maxit=10000)
###################################################
### code chunk number 6: fastica (eval = FALSE)
###################################################
## library(fastICA)
## ## Random initializations are used for each iteration of FastICA
## ## Estimates are clustered using hierarchical clustering with average linkage
## res <- clusterFastICARuns(X=exprs(mainz), nbComp=5, alg.type="deflation", nbIt=10,
## funClus="hclust", method="average")
###################################################
### code chunk number 7: buildParams
###################################################
## build params
params <- buildMineICAParams(resPath="mainz/", selCutoff=3, pvalCutoff=0.05)
###################################################
### code chunk number 8: libannot
###################################################
## load annotation package
library(hgu133a.db)
###################################################
### code chunk number 9: lspackage
###################################################
ls("package:hgu133a.db")
###################################################
### code chunk number 10: mart
###################################################
mart <- useMart(biomart="ensembl", dataset="hsapiens_gene_ensembl")
###################################################
### code chunk number 11: martfilters
###################################################
listFilters(mart)[120:125,]
###################################################
### code chunk number 12: martattr
###################################################
listAttributes(mart)[grep(x=listAttributes(mart)[,1],pattern="affy")[1:5],]
###################################################
### code chunk number 13: buildIcaSet
###################################################
## Define typeID, Mainz data originate from affymetrix HG-U133a microarray
## and are indexed by probe sets.
## The probe sets are annotated into Gene Symbols
typeIDmainz <- c(geneID_annotation="SYMBOL", geneID_biomart="hgnc_symbol",
featureID_biomart="affy_hg_u133a")
## define the reference samples if any, here no normal sample is available
refSamplesMainz <- character(0)
resBuild <- buildIcaSet(params=params, A=data.frame(resJade$A), S=data.frame(resJade$S),
dat=exprs(mainz), pData=pData(mainz), refSamples=refSamplesMainz,
annotation="hgu133a.db", typeID= typeIDmainz,
chipManu = "affymetrix", mart=mart)
icaSetMainz <- resBuild$icaSet
params <- resBuild$params
###################################################
### code chunk number 14: showIcaSet
###################################################
icaSetMainz
###################################################
### code chunk number 15: defannot
###################################################
annot <- pData(icaSetMainz)
###################################################
### code chunk number 16: lookvar
###################################################
varLabels(icaSetMainz)[1:5]
icaSetMainz$grade[1:5]
###################################################
### code chunk number 17: lookfeatures
###################################################
featureNames(icaSetMainz)[1:5] # probe set ids
geneNames(icaSetMainz)[1:5] #gene symbols
sampleNames(icaSetMainz)[1:5]
###################################################
### code chunk number 18: lookdat (eval = FALSE)
###################################################
## head(dat(icaSetMainz)) #probe set level
## head(datByGene(icaSetMainz)) #gene level
###################################################
### code chunk number 19: lookAS (eval = FALSE)
###################################################
## A(icaSetMainz)
## S(icaSetMainz)
## SByGene(icaSetMainz)
###################################################
### code chunk number 20: lookcomp (eval = FALSE)
###################################################
## nbComp(icaSetMainz)
## compNames(icaSetMainz)
## indComp(icaSetMainz)
###################################################
### code chunk number 21: witG
###################################################
witGenes(icaSetMainz)[1:5]
## We can for example modify the second contributing gene
witGenes(icaSetMainz)[2] <- "KRT16"
###################################################
### code chunk number 22: MineICA.Rnw:362-363 (eval = FALSE)
###################################################
## compNames(icaSetMainz) <- paste("IC",1:nbComp(icaSetMainz),sep="")
###################################################
### code chunk number 23: MineICA.Rnw:371-379 (eval = FALSE)
###################################################
## ## select tumor samples of grade 3
## keepSamples <- sampleNames(icaSetMainz)[icaSetMainz$grade=="3"]
## ## Subset icaSetMainz to the grade-3 samples
## icaSetMainz[,keepSamples]
## ## Subset icaSetMainz to the grade-3 samples and the first five components
## icaSetMainz[,keepSamples,1:5]
## ## Subset icaSetMainz to the first 10 features
## icaSetMainz[featureNames(icaSetMainz)[1:10],keepSamples]
###################################################
### code chunk number 24: histProj6
###################################################
hist(S(icaSetMainz)[,1], breaks=50, main="Distribution of feature projection on the first component",
xlab="projection values")
abline(v=c(3,-3), col="red", lty=2)
###################################################
### code chunk number 25: selectContribGenes
###################################################
## Extract the contributing genes
contrib <- selectContrib(icaSetMainz, cutoff=3, level="genes")
## Show the first contributing genes of the first and third components
sort(abs(contrib[[1]]),decreasing=TRUE)[1:10]
sort(abs(contrib[[3]]),decreasing=TRUE)[1:10]
###################################################
### code chunk number 26: selectContribGenes (eval = FALSE)
###################################################
## ## One can also want to apply different cutoffs depending on the components
## ## for example using the first 4 components:
## contrib <- selectContrib(icaSetMainz[,,1:4], cutoff=c(4,4,4,3), level="genes")
###################################################
### code chunk number 27: extractComp
###################################################
## extract sample contributions and gene projections of the second component
comp2 <- getComp(icaSetMainz, level="genes", ind=2)
## access the sample contributions
comp2$contrib[1:5]
## access the gene projections
comp2$proj[1:5]
###################################################
### code chunk number 28: runAn
###################################################
## select the annotations of interest
varLabels(icaSetMainz)
# restrict the phenotype data to the variables of interest
keepVar <- c("age","er","grade")
# specify the variables that should be treated as character
icaSetMainz$er <- c("0"="ER-","1"="ER+")[as.character(icaSetMainz$er)]
icaSetMainz$grade <- as.character(icaSetMainz$grade)
###################################################
### code chunk number 29: runAn (eval = FALSE)
###################################################
## ## Run the analysis of the ICA decomposition
## # only enrichment in KEGG gene sets are tested
## runAn(params=params, icaSet=icaSetMainz, writeGenesByComp = TRUE,
## keepVar=keepVar, dbGOstats = "KEGG")
###################################################
### code chunk number 30: runAn
###################################################
resPath(params)
###################################################
### code chunk number 31: writeProj
###################################################
resW <- writeProjByComp(icaSet=icaSetMainz, params=params, mart=mart,
level='genes', selCutoffWrite=2.5)
## the description of the contributing genes of each component is contained
## in res$listAnnotComp which contains the gene id, its projection value, the number and
## the indices of the components on which it exceeds the threshold, and its description.
head(resW$listAnnotComp[[1]])
## The number of components a gene contributes to is available
## in res$nbOccInComp
head(resW$nbOccInComp)
## The output HTML files are located in the path:
genesPath(params)
###################################################
### code chunk number 32: plotHeatmaps (eval = FALSE)
###################################################
## ## selection of the variables we want to display on the heatmap
## keepVar <- c("er","grade")
## ## For the second component, select contributing genes using a threshold of 3
## ## on the absolute projection values,
## ## heatmap with dendrogram
## resH <- plot_heatmapsOnSel(icaSet = icaSetMainz, selCutoff = 3, level = "genes",
## keepVar = keepVar,
## doSamplesDendro = TRUE, doGenesDendro = TRUE, keepComp = 2,
## heatmapCol = maPalette(low = "blue", high = "red", mid = "yellow", k=44),
## file = "heatmapWithDendro", annot2col=annot2col(params))
##
##
## ## heatmap where genes and samples are ordered by contribution values
## resH <- plot_heatmapsOnSel(icaSet = icaSetMainz, selCutoff = 3, level = "genes",
## keepVar = keepVar,
## doSamplesDendro = FALSE, doGenesDendro = FALSE, keepComp = 2,
## heatmapCol = maPalette(low = "blue", high = "red", mid = "yellow", k=44),
## file = "heatmapWithoutDendro", annot2col=annot2col(params))
##
###################################################
### code chunk number 33: runEnrich (eval = FALSE)
###################################################
## ## run enrichment analysis on the first three components of icaSetMainz,
## ## using gene sets from the ontology 'Biological Process' (BP) of Gene Ontology (GO)
## resEnrich <- runEnrich(params=params,icaSet=icaSetMainz[,,1:3],
## dbs=c("GO"), ontos="BP")
###################################################
### code chunk number 34: runEnrich3 (eval = FALSE)
###################################################
## ## Access results obtained for GO/BP for the first three components
## # First component, when gene selection was based on the negative projection values
## head(resEnrich$GO$BP[[1]]$left)
###################################################
### code chunk number 35: runEnrich3bis
###################################################
structure(list(GOBPID = c("GO:0006955", "GO:0002694", "GO:0050867",
"GO:0002429", "GO:0050863", "GO:0051251"), Pvalue = c(4.13398630676443e-16,
3.53565704068228e-14, 1.0598364083037e-11, 2.10474926262594e-11,
2.96408182272612e-11, 3.41481775787203e-11), OddsRatio = c(16.1139281129653,
10.2399932157395, 10.34765625, 13.1975308641975, 14.5422535211268,
14.3646536754775), ExpCount = c(2.18081918081918, 3.24691805656273,
2.3821609862219, 1.56635242929659, 1.33711359063472, 1.35043827611395
), Count = c(21L, 23L, 18L, 15L, 14L, 14L), Size = c(185L, 199L,
146L, 96L, 85L, 85L), Term = c("immune response", "regulation of leukocyte activation",
"positive regulation of cell activation", "immune response-activating cell surface receptor signaling pathway",
"regulation of T cell activation", "positive regulation of lymphocyte activation"
), In_geneSymbols = c("CD7,MS4A1,CD27,CTSW,GZMA,HLA-DOB,IGHD,IGHM,IGJ,IL2RG,CXCL10,LTB,LY9,CXCL9,CCL18,CXCL11,CST7,FCGR2C,IL32,ADAMDEC1,ICOS",
"AIF1,CD2,CD3D,CD3G,CD247,CD27,CD37,CD38,HLA-DQB1,LCK,PTPRC,CCL5,CCL19,XCL1,EBI3,LILRB1,PTPN22,SIT1,TRBC1,TRAC,ICOS,MZB1,SLAMF7",
"AIF1,CD2,CD3D,CD3G,CD247,CD27,CD38,HLA-DQB1,LCK,PTPRC,CCL5,CCL19,XCL1,EBI3,LILRB1,TRBC1,TRAC,ICOS",
"CD3D,CD3G,CD247,CD38,HLA-DQB1,IGHG1,IGKC,IGLC1,LCK,PRKCB,PTPRC,PTPN22,TRBC1,TRAC,TRAT1",
"AIF1,CD3D,CD3G,CD247,HLA-DQB1,PTPRC,CCL5,XCL1,EBI3,PTPN22,SIT1,TRBC1,TRAC,ICOS",
"AIF1,CD3D,CD3G,CD247,CD38,HLA-DQB1,PTPRC,CCL5,XCL1,EBI3,LILRB1,TRBC1,TRAC,ICOS"
)), .Names = c("GOBPID", "Pvalue", "OddsRatio", "ExpCount", "Count",
"Size", "Term", "In_geneSymbols"), row.names = c(NA, 6L), class = "data.frame")
###################################################
### code chunk number 36: runEnrich4 (eval = FALSE)
###################################################
## # Second component
## head(resEnrich$GO$BP[[2]]$both, n=5)
###################################################
### code chunk number 37: runEnrich4bis
###################################################
structure(list(GOBPID = c("GO:0045104", "GO:0031581", "GO:0030318",
"GO:0070488", "GO:0072602", "GO:0034329"), Pvalue = c(2.16044773513962e-05,
6.04616151867683e-05, 0.000394387232705895, 0.000461592979000511,
0.000461592979000511, 0.00107959102524193), OddsRatio = c(19.6820175438597,
26.7826086956522, 14.4053511705686, Inf, Inf, 4.29841077032088
), ExpCount = c(0.366751269035533, 0.237309644670051, 0.366751269035533,
0.0431472081218274, 0.0431472081218274, 2.09263959390863), Count = c(5L,
4L, 4L, 2L, 2L, 8L), Size = c(17L, 11L, 17L, 2L, 2L, 97L), Term = c("intermediate filament cytoskeleton organization",
"hemidesmosome assembly", "melanocyte differentiation", "neutrophil aggregation",
"interleukin-4 secretion", "cell junction assembly"), In_geneSymbols = c("DST,KRT14,KRT16,PKP1,SYNM",
"DST,COL17A1,KRT5,KRT14", "EDN3,KIT,SOX10,MLPH", "S100A8,S100A9",
"GATA3,VTCN1", "DST,CDH3,COL17A1,GPM6B,KRT5,KRT14,SFRP1,UGT8"
)), .Names = c("GOBPID", "Pvalue", "OddsRatio", "ExpCount", "Count",
"Size", "Term", "In_geneSymbols"), row.names = c(NA, 6L), class = "data.frame")
###################################################
### code chunk number 38: runEnrich2 (eval = FALSE)
###################################################
## # Third component, when gene selection was based on the absolute projection values
## head(resEnrich$GO$BP[[3]]$both)
###################################################
### code chunk number 39: runEnrich2bis
###################################################
structure(list(GOBPID = c("GO:0048285", "GO:0051301", "GO:0007067",
"GO:0007076", "GO:0000086", "GO:0006271"), Pvalue = c(2.1806594780167e-24,
7.64765765268202e-16, 4.85530963990747e-12, 9.30475956146815e-06,
1.95701394548966e-05, 5.65649365383205e-05), OddsRatio = c(16.8486540378863,
14.5290697674419, 17.0874279123414, Inf, 8.18195718654434, 27.2667509481669
), ExpCount = c(3.1816533720087, 2.14748665070889, 1.18268700606506,
0.063633067440174, 1.18781725888325, 0.233321247280638), Count = c(32L,
21L, 14L, 3L, 8L, 4L), Size = c(150L, 107L, 65L, 3L, 56L, 11L
), Term = c("organelle fission", "cell division", "mitosis",
"mitotic chromosome condensation", "G2/M transition of mitotic cell cycle",
"DNA strand elongation involved in DNA replication"), In_geneSymbols = c("BIRC5,BUB1,CCNA2,CDK1,CDC20,CDC25A,CENPE,IGF1,KIFC1,MYBL2,NEK2,AURKA,CCNB2,KIF23,DLGAP5,NDC80,UBE2C,TPX2,NCAPH,UBE2S,NUSAP1,ERCC6L,CDCA8,CEP55,CENPN,PBK,NCAPG,DSCC1,CDCA3,KIF18B,SKA1,ASPM",
"BUB1,CCNA2,CDK1,CDC20,CDC25A,CENPE,KIFC1,NEK2,AURKA,TOP2A,CCNB2,NDC80,UBE2C,TPX2,NCAPH,UBE2S,ERCC6L,CDCA8,NCAPG,CDCA3,SKA1",
"CCNA2,CDK1,CDC25A,CCNB2,TPX2,ERCC6L,CDCA8,CEP55,CENPN,PBK,CDCA3,KIF18B,SKA1,ASPM",
"NCAPH,NUSAP1,NCAPG", "BIRC5,CCNA2,CDK1,CDC25A,FOXM1,NEK2,CCNB2,MELK",
"MCM5,CDC45,GINS1,GINS2")), .Names = c("GOBPID", "Pvalue", "OddsRatio",
"ExpCount", "Count", "Size", "Term", "In_geneSymbols"), row.names = c(NA,
6L), class = "data.frame")
###################################################
### code chunk number 40: stagebis
###################################################
icaSetMainz$grade <- factor(as.character(icaSetMainz$grade), levels=c("1","2","3"))
###################################################
### code chunk number 41: varAn
###################################################
### Qualitative variables
## Compute Wilcoxon and Kruskall-Wallis tests to compare the distribution
## of the samples according to their grade and ER status on all components.
resQual <- qualVarAnalysis(params=params, icaSet=icaSetMainz,
keepVar=c("er","grade"),
adjustBy="none", typePlot="boxplot",
path="qualVarAnalysis/", filename="qualVar")
###################################################
### code chunk number 42: quantVarAn
###################################################
### Quantitative variables
## Compute pearson correlations between variable 'age' and the sample contributions
## on all components.
## We are interested in correlations exceeding 0.3 in absolute value, and plots will only be drawn
## for correlations exceeding this threshold.
resQuant <- quantVarAnalysis(params=params, icaSet=icaSetMainz, keepVar="age",
typeCor="pearson", cutoffOn="cor",
cutoff=0.3, adjustBy="none",
path="quantVarAnalysis/", filename="quantVar")
###################################################
### code chunk number 43: quantVarAncor
###################################################
resQuant$cor[2]
###################################################
### code chunk number 44: plotMix
###################################################
resmix <- plotAllMix(A=A(icaSetMainz), nbMix=2, nbBreaks=50)
###################################################
### code chunk number 45: stageOnHist (eval = FALSE)
###################################################
## ## plot the positions of the samples on the second component according to their ER status
## ## (in a file "er.pdf")
## plotPosAnnotInComp(icaSet=icaSetMainz, params=params, keepVar=c("er"), keepComp=2,
## funClus="Mclust")
###################################################
### code chunk number 46: cluster1
###################################################
## clustering of the samples in 1-dim using the vector
## of sample contributions of the two first components
## and Gaussian mixture modeling (Mclust)
clus1 <- clusterSamplesByComp(params=params, icaSet=icaSetMainz[,,,1:2],
funClus="Mclust", clusterOn="A", nbClus=2, filename="comp1Mclust")
## The obtained clusters are written in the file "comp1Mclus.txt" of the result path.
clus1$clus[[2]][1:5]
###################################################
### code chunk number 47: cluster2
###################################################
clus2 <- clusterSamplesByComp_multiple(params=params, icaSet=icaSetMainz[,,1:2],
funClus="kmeans", clusterOn=c("A","S"), level="features",
nbClus=2, filename="comparKmeans")
## The obtained clusters and their comparison with adjusted Rand indices are written
## in file "comparKmeans.txt" of the result path.
## Both clustering results are stored in a common data.frame
head(clus2$clus)
## Access Rand index
clus2$comparClus
###################################################
### code chunk number 48: clus2var (eval = FALSE)
###################################################
## ## Test the association between the clustering obtained by Mclust for the first
## ## component and the variables:
## clus2var <- clusVarAnalysis(icaSet=icaSetMainz[,,1:2], params=params,
## keepVar=c("er","grade"),
## resClus=clus1$clus, funClus="Mclust", adjustBy="none",
## doPlot=TRUE, path="clus2var/", filename="resChitests-Mcluscomp1")
## ## Look at the filename which contains p-values and links to the barplots
## ## p-values are also contained in the ouput of the function:
## clus2var
##
##
###################################################
### code chunk number 49: clus2var (eval = FALSE)
###################################################
## structure(list(`1` = c(1.657e-06, 2.315e-08), `2` = c(6.775e-07,
## 0.0001899)), .Names = c("1", "2"), row.names = c("er", "grade"
## ), class = "data.frame")
###################################################
### code chunk number 50: tuut (eval = FALSE)
###################################################
## ## load three other breast cancer datasets also based on Affymetrix HG-U133a microarray
## library(breastCancerUPP)
## library(breastCancerTRANSBIG)
## library(breastCancerVDX)
## data(upp)
## data(transbig)
## data(vdx)
## ## function to build IcaSet instances from these three datasets
## treat <- function(es, annot="hgu133a.db") {
## es <- selectFeatures_IQR(es,10000)
## exprs(es) <- t(apply(exprs(es),1,scale,scale=FALSE))
## colnames(exprs(es)) <- sampleNames(es)
## resJade <- runICA(X=exprs(es), nbComp=5, method = "JADE", maxit=10000)
## resBuild <- buildIcaSet(params=buildMineICAParams(), A=data.frame(resJade$A), S=data.frame(resJade$S),
## dat=exprs(es), pData=pData(es), refSamples=character(0),
## annotation=annot, typeID= typeIDmainz,
## chipManu = "affymetrix", mart=mart)
## icaSet <- resBuild$icaSet
## }
## icaSetUpp <- treat(upp, annot="hgu133plus2.db")
## icaSetVdx <- treat(vdx)
## icaSetTransbig <- treat(transbig)
###################################################
### code chunk number 51: compareAn (eval = FALSE)
###################################################
## resGraph <- runCompareIcaSets(icaSets=list(icaSetMainz, icaSetUpp,
## icaSetTransbig, icaSetVdx),
## labAn=c("Mainz", "Upp","Transbig","Vdx"),
## type.corr="pearson", level="genes",
## cutoff_zval=0, fileNodeDescr="nodeDescr.txt",
## fileDataGraph="dataGraph.txt", tkplot=TRUE)
###################################################
### code chunk number 52: compareAnColors (eval = FALSE)
###################################################
## barplot(names.arg=unique(resGraph[[2]]$labAn),height=rep(1,4),
## col=unique(resGraph[[2]]$col))
###################################################
### code chunk number 53: inter1 (eval = FALSE)
###################################################
## ## comparison of four components included in the clique of the correlation-based graph
## # that includes the second component of Mainz.
## inter <- compareGenes(keepCompByIcaSet = c(2,2,2,2),
## icaSets = list(icaSetMainz, icaSetTransbig, icaSetUpp, icaSetVdx),
## lab=c("Mainz", "Transbig", "Upp", "Vdx"), cutoff=3,
## type="intersection", annotate=F)
## head(inter)
###################################################
### code chunk number 54: inter1bis
###################################################
structure(list(min_rank = structure(c(1L, 12L, 22L, 12L, 31L,
31L), .Label = c("1", "10", "101", "11", "12", "13", "14", "16",
"17", "18", "19", "2", "20", "21", "22", "23", "24", "25", "26",
"27", "29", "3", "30", "31", "33", "34", "35", "36", "37", "38",
"4", "40", "41", "43", "46", "47", "5", "51", "52", "53", "54",
"58", "6", "63", "69", "7", "70", "74", "8", "9"), class = "factor"),
median_rank = c(1, 2, 3, 5, 5.5, 6), ranks = c("1,1,1,1",
"2,2,3,2", "3,3,4,3", "5,8,2,5", "4,7,9,4", "6,4,6,6"), scaled_proj = c("-8.9,-9.2,9.2,-9.3",
"-8.4,-8.7,7.9,-8.9", "-7,-8.3,7.7,-8.8", "-6.4,-6.1,8.4,-7.6",
"-6.6,-6.5,6.7,-7.7", "-6.3,-7.8,7.1,-7.6")), .Names = c("min_rank",
"median_rank", "ranks", "scaled_proj"), row.names = c("IGL@",
"IGKV4-1", "IGLV2-23", "NKG7", "IGHM", "TNFRSF17"), class = "data.frame")
###################################################
### code chunk number 55: inter2 (eval = FALSE)
###################################################
## ## comparison of four components included in the clique of the correlation-based graph
## # that includes the third component of Mainz.
## inter <- compareGenes(keepCompByIcaSet = c(3,3,3,1),
## icaSets = list(icaSetMainz, icaSetTransbig, icaSetUpp, icaSetVdx),
## lab=c("Mainz", "Transbig", "Upp", "Vdx"), cutoff=3,
## type="intersection", annotate=F)
## head(inter)
###################################################
### code chunk number 56: inter2bis
###################################################
structure(list(min_rank = structure(c(1L, 7L, 21L, 7L, 7L, 16L
), .Label = c("1", "10", "11", "16", "17", "18", "2", "23", "24",
"25", "26", "3", "32", "38", "39", "4", "40", "42", "43", "49",
"5", "51", "58", "6", "7", "8", "9"), class = "factor"), median_rank = c(1,
4, 6.5, 8.5, 9.5, 9.5), ranks = c("1,1,1,3", "5,5,3,2", "7,7,6,5",
"13,2,4,21", "2,15,15,4", "4,31,12,7"), scaled_proj = c("7.7,8.7,8.1,7.2",
"6.3,7.2,7.3,7.3", "6.2,7.1,5.9,6.5", "5.7,7.3,7,5.1", "7.3,5.8,5.4,7",
"6.3,4.6,5.6,6.2")), .Names = c("min_rank", "median_rank", "ranks",
"scaled_proj"), row.names = c("GABRP", "MIA", "SERPINB5", "KRT14",
"KRT16", "KRT81"), class = "data.frame")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.