| psmelt | R Documentation |
The psmelt function is a specialized melt function for melting phyloseq
objects (instances of the phyloseq class), usually for producing graphics
with ggplot2::ggplot2. The naming conventions used in downstream phyloseq
graphics functions have reserved the following variable names that should
not be used as the names of sample_variables() or taxonomic
rank_names(). These reserved names are c("Sample", "Abundance", "OTU").
Also, you should not have identical names for sample variables and taxonomic
ranks. That is, the intersection of the output of the following two
functions sample_variables(), rank_names() should be an empty vector
(e.g. intersect(sample_variables(physeq), rank_names(physeq))). All of
these potential name collisions are checked-for and renamed automatically
with a warning. However, if you (re)name your variables accordingly ahead of
time, it will reduce confusion and eliminate the warnings.
psmelt(physeq, as = getOption("speedyseq.psmelt_class"))
physeq |
An otu_table or phyloseq; most useful for phyloseq-class. |
as |
Class of the output table; see Details. |
The as argument allows choosing between three classes for tabular data:
data.frame is chosen by "data.frame" or "df"
data.table is chosen by "data.table" or "dt"
tbl_df is chosen by "tbl_df", "tbl", or "tibble"
The default is "data.frame" and can be overridden by setting the "speedyseq.psmelt_class" option.
Note that "melted" phyloseq data is stored much less efficiently, and so RAM
storage issues could arise with a smaller dataset (smaller number of
samples/OTUs/variables) than one might otherwise expect. For common sizes
of graphics-ready datasets, however, this should not be a problem. Because
the number of OTU entries has a large effect on the RAM requirement, methods
to reduce the number of separate OTU entries – for instance by
agglomerating OTUs based on phylogenetic distance using tip_glom() – can
help alleviate RAM usage problems. This function is made user-accessible for
flexibility, but is also used extensively by plot functions in phyloseq.
A table of the specified class
plot_bar()
data("GlobalPatterns")
gp.ch = subset_taxa(GlobalPatterns, Phylum == "Chlamydiae")
mdf = psmelt(gp.ch)
nrow(mdf)
ncol(mdf)
colnames(mdf)
head(rownames(mdf))
# Create a ggplot similar to
library("ggplot2")
p = ggplot(mdf, aes(x=SampleType, y=Abundance, fill=Genus))
p = p + geom_bar(color="black", stat="identity", position="stack")
print(p)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.