Description Usage Arguments Details Value Author(s) See Also Examples
Make a 3d rotatable plot depicting the intensity levels of a matrix, while showing the relations between rows in two dimensions and that of the columns in the third. Cluster analysis results for rows and columns may be superposed.
1 2 3 4 5 6 7 8 9 10 11 | profileplot3d(pos, profiles, normalize.rows = T, column.order = NULL,
row.cluster = NULL, column.cluster = NULL, labels = NULL, col = NULL,
color_scaling_function=NULL, point.size = 3, label.colors = NULL,
label.size = 0.5)
make.profileplot3d(profiles, row.method = "nMDS", normalize.rows=T,
column.method = "average.linkage", row.metric = "pearson",
column.metric = "pearson", row.cluster.method = "average",
column.cluster.method = "average", point.size = 3, col=NULL,
color_scaling_function=NULL, labels = NULL, label.colors = NULL,
label.size = 0.5, row.random.seed=NULL,column.random.seed=NULL)
|
pos |
matrix: the 2d positions for the rows in profiles as produced by any dimensional reduction scheme. |
profiles |
matrix: containing the data to be plotted. |
normalize.rows |
logical: If TRUE, then the rows shall be normalized before plotting. |
column.order |
The ordering of the columns, as would be the case in a typical heatmap, produced using some dimensional reduction scheme. If it is NULL, then the ordering in profiles is used. |
row.cluster |
hierarchical clustering result (of type |
column.cluster |
similar to |
labels |
labels for the rows. If it is set to NULL, no labels will be plotted. |
col |
A list of colors such as that generated by |
color_scaling_function |
A function mapping [0:1] onto [0:1] used for scaling the color levels. If Null, linear scaling is performed |
point.size |
The size of intensity points. |
label.colors |
A list of colors used for the row labels |
label.size |
Initial size of row labels. The sizes can be changed dynamically after plotting using the 3rd mouse button |
row.method |
dimensional reduction method for embedding rows, currently only "PCA" and "nMDS" are supported. |
column.method |
dimensional reduction method for ordering columns. Can be any one of "nMDS", "PCA", "average.linkage" and "complete.linkage". |
row.metric |
the distance function used for row embedding. Can be either "pearson" or "euclidean". |
column.metric |
like |
row.cluster.method |
clustering method used for superposed row cluster. Either "complete.linkage" or "average.linkage". |
column.cluster.method |
like |
row.random.seed |
Random seed to be used if nMDS is used to construct row structure |
column.random.seed |
Random seed to be used in nMDS is used to generate column ordering |
These functions display data in a 3d rotatable format. The xy positions are the result of a 2D embedding of the rows, the profiles for which are shown along the z-axis. profileplot3d
is the primary function to do this, accepting the results of any dimensional reduction scheme, while make.profileplot3d
is a convenience function performing both the dimensional reduction (using nMDS or PCA) and then calling profileplot3d
.
The ordering of columns is similar to that for heatmap1
. Thus if PCA or nMDS are used it is assumed that the embedding of columns is annular, and the order used is that of angular positions. The user should confirm that this is indeed the case.
These functions are called for the side-effects they produce
Satwik Rajaram and Yoshi Oono
1 2 3 4 5 6 7 8 9 10 11 12 13 | make.profileplot3d(mtcars,row.method="PCA",column.method="average.linkage")
#is equivalent to
mtcars.PCA<-prcomp(mtcars)
mtcars.col.cluster<-hclust(dist(t(mtcars)),method="average")
mtcars.row.cluster<-hclust(as.dist(1-cor(t(mtcars))),method="average")
profileplot3d(mtcars.PCA$x,mtcars,column.order=mtcars.col.cluster$order,
row.cluster=mtcars.row.cluster,column.cluster=mtcars.col.cluster)
#use of alternate colors and color scaling
make.profileplot3d(mtcars,row.method="PCA",column.method="average.linkage",
col=c("yellow","black","blue"),
color_scaling_function=function(x){0.5+tanh(10*(x-0.5))/2})
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.