Learn R Programming

NeatMap (version 0.1)

profileplot3d: Make a 3D rotatable plot showing data profiles

Description

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.

Usage

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)

Arguments

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 hclust), of the rows, for superimposing the clustering result on the 3d profile plot. If it is NULL, no cluster result will be plotted.
column.cluster
similar to row.cluster except for the clustering of columns.
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 rainbow used in depicting low to high intensities as in a heat-map.
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
size of row labels.
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.metric except for columns.
row.cluster.method
clustering method used for superposed row cluster. Either "complete.linkage" or "average.linkage".
column.cluster.method
like row.metric except for columns.

Value

  • These functions are called for the side-effects they produce

Details

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.

See Also

heatmap1.

Examples

Run this code
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})

Run the code above in your browser using DataLab