Description Usage Arguments Value Examples
View source: R/StructureGGplot.R
Make the traditional Structure plot of GoM model with ggplot2
1 2 3 4 5 6 7 8 | StructureGGplot(omega, annotation = NULL,
palette = RColorBrewer::brewer.pal(8, "Accent"), figure_title = "",
yaxis_label = "Tissue type", order_sample = TRUE,
sample_order_decreasing = TRUE, split_line = list(split_lwd = 1,
split_col = "white"), plot_labels = TRUE,
axis_tick = list(axis_ticks_length = 0.1, axis_ticks_lwd_y = 0.1,
axis_ticks_lwd_x = 0.1, axis_label_size = 3, axis_label_face = "bold"),
legend_title_size = 8, legend_key_size = 0.4, legend_text_size = 5)
|
omega |
Cluster membership probabilities of each sample. Usually a sample by cluster matrix in the Topic model output. The cluster weights sum to 1 for each sample. |
annotation |
data.frame of two columns: sample_id and tissue_label. sample_id is a vetor consisting of character type of variable, which indicates the unique identifying number of each sample. tissue_label is a vector consisting of factor type of variable, which indicates the sample phenotype that is to be used in sorting and grouping the samples in the Structre plot; for example, tissue of origin in making Structure plot of the GTEx samples. Default is set to "none for when no phenotype information is used to order the sample vectors. |
palette |
Colors assigned to label the clusters. The first color in the palette is assigned to the cluster that is labeled 1 (usually arbitrarily assigned during the clustering process). Note: The number of colors must be the same or greater than the number of clusters. When the number of clusters is greater than the number of colors, the clusters that are not assigned a color are filled with white in the figure. The recommended choice of color palette is RColorBrewer, for instance RColorBrewer::brewer.pal(8, "Accent") or RColorBrewwer::brewer.pal(9, "Set1"). |
figure_title |
Title of the plot. |
yaxis_label |
Axis label for the phenotype used to order the samples, for example, tissue type or cell type. |
order_sample |
Whether to order the samples that are of the same tissue label or phenotype lable, that is, having the same label in the tissue_label variable. If TRUE, we order samples that are of the same phenotype label and sort the samples by membership of most representative cluster. If FALSE, we keep the order in the data. |
sample_order_decreasing |
If order_sample=TRUE, then order the sample in descending (TRUE) or ascending order. |
sample_order_opts |
Orders by different choices of clusters in a batch. Can take the values 1, 2, 3 or 4 corresponding to 4 ordering options. Default equal to 1. |
split_line |
Control parameters for the line that separates phenotype subgroups in the plot. |
plot_labels |
If TRUE, the plot the axis labels. |
axis_tick |
Control parameters for x-axis and y-axis tick sizes. |
legend_title_size |
The size of the title of the Structure Plot representation. |
legend_key_size |
The size of the legend key in Structure plot. |
legend_text_size |
the size specification of the legend text. |
Plots the Structure plot visualization of the GoM model
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | data("MouseDeng2014.FitGoM")
# extract the omega matrix: membership weights of each cell
names(MouseDeng2014.FitGoM$clust_6)
omega <- MouseDeng2014.FitGoM$clust_6$omega
tissue_label <- rownames(omega)
# make annotation matrix
annotation <- data.frame(
sample_id = paste0("X", c(1:NROW(omega))),
tissue_label = factor(rownames(omega),
levels = rev( c("zy", "early2cell",
"mid2cell", "late2cell",
"4cell", "8cell", "16cell",
"earlyblast","midblast",
"lateblast") ) ) )
head(annotation)
# setw rownames of omega to be sample ID
rownames(omega) <- annotation$sample_id
StructureGGplot(omega = omega,
annotation = annotation,
palette = RColorBrewer::brewer.pal(8, "Accent"),
yaxis_label = "development phase",
order_sample = TRUE,
axis_tick = list(axis_ticks_length = .1,
axis_ticks_lwd_y = .1,
axis_ticks_lwd_x = .1,
axis_label_size = 7,
axis_label_face = "bold"))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.