- Fix: tax_fix no longer allows min_length of 0, as empty strings are (and were) always replaced
- Fix/Feat: comp_barplot, ord_explore, and tax_sort checks/warnings about unavailable counts can be disabled with counts_warn = FALSE
- Fix: no more cowplot legend extraction warnings in
ord_explore
- Fix: allow hex code colours in
ord_plot
- Fix:
comp_heatmap
helpersampleAnnotation
will now work with R 4.4
- corncob (a suggested dependency) back on CRAN - so no longer installed from GitHub
ibd
phyloseq dataset added to microViz, as no longer included in corncob.
- Breaking change: va-wunifrac distance calculation is no longer available, as it is not available in GUniFrac 1.8
- Note: If needed,
corncob
can now only be installed from GitHub, as is currently not available from CRAN.corncob
is a suggested dependency of microViz from which data is borrowed for use in several examples, and which is needed is bbdml models are requested in tax_model.
taxatree_models
now accepts transformation arguments to allow transformation after aggregation at each rank
- Fix:
taxatree_stats_p_adjust
can accept multiple grouping variables without specifying new_var.
- Fix:
comp_barplot
taxon ordering is now correct when tax_level is set to "Taxon"
- Fix: Small internal fix to avoid renderggiraph deprecation warning in ord_explore.
- Fix: Internal fix to report NAs in OTU table more gracefully. (ps_counts issue #109)
- Fix:
tax_select()
tax_list argument can now actually take a list (Issue #100)
- Fix: small internal fix for compatibility with next R version (relating to loss of stringsAsFactors global option)
- Fix for dplyr version 1.1.0 warnings e.g. about across() wanting explicit .cols use
- Fix shao19 example data: family rank in tax table now correctly shows families
- Bug fix: manual direct labelling of
taxatree_plots
withtaxatree_labels
andtaxatree_plot_labels
works properly also with phyloseq object that lack a rooting rank (e.g. kingdom) - Bug fix:
comp_barplot
bars are now in the correct order again when using tax_level = "unique" - New Getting Started article
- Bug fix: manual direct labelling of
taxatree_plots
withtaxatree_labels
andtaxatree_plot_labels
works properly (without losing stats info for any rank)
taxatree_plotkey
IMPORTANT BUG FIX: layout now matches taxatree_plots again- Fixed broken ReadMe links
ps_get
can return phyloseq with taxon counts when counts = TRUE and counts are available
taxatree_plots
and keys more robust #43 and no deprecation warnings #80tax_transform
add argument accepts "halfmin" again #77tax_top
can use_counts #78- Compatibility with old R versions 3.6.* improved (explicit stringsAsFactors = FALSE)
- Updates for compatibility with ggplot2 3.4.0
- Move DT, ggraph and tidygraph to suggested dependencies
Major internal changes from S3 ps_extra to S4 psExtra objects. See article about this change
This version also introduces changes around tax_model
and taxatree_models
functionality.
- Using the
$
operator to access parts of the old "ps_extra" S3 class will no longer work and must be replaced with accessor functions, e.g.ps_get
- "ps_extra" objects generated with older versions will not be compatible with version 0.10.0 and can be converted to the new "psExtra" S4 objects with
upgrade_ps_extra_to_psExtra
tax_model
andtaxatree_model
parallel processing with future and future.apply is off by default, and needs to be enabled with argument use_future = TRUE.tax_model
attaches results to psExtra object by default, but you can restore old behaviour with return_psx = FALSEcomp_barplot
"other" taxa category renamed to "Other" by default
tax_model
andtaxatree_model
can now run multiple models per taxon, by accepting lists for formula or variables arguments. This allows running e.g. three simple regression models per taxon with predictors a, b, and c with variables = list("a", "b", "c")cor_test
is a new simple wrapper aroundstats::cor.test
with a y~x formula interface, allowing its use intax_model
- No more deprecation warnings in
taxatree_plot_labels
comp_barplot
gains x argument, to change default x aesthetic to something other than SAMPLE, which is useful for (faceted) plotting of repeated samples from the same site/individual over time or in different conditions when some samples are missing (see compositions tutorial article)ps_seriate
can now aggregate taxa before seriation (returns unaggregated still)
- Custom reordering of taxa on
comp_barplot
is now easier, just name the taxa you want to see first in the tax_order argument, and they will be brought to the front tax_reorder
is exported, and now accepts a subset of all available taxa names (powering the improvement in comp_barplot)
- Bump rlang dependency version to 1.0.0 fixing #69
tax_rename
accepts integerish values for pad_digits argument
otu_get
correctly subsets samples or taxa if requested- heatmaps with one row or column can be plotted without explicitly suppressing seriation
Robust clr and robust aitchison distance are now supported following their inclusion in vegan - tax_transform
supports "rclr" (robust centered log ratio) - dist_calc
supports "robust.aitchison" distance (as rclr & euclidean distance)
-
ps_dedupe
now allows keeping a specified number of samples per group, not just one, which could be useful for e.g. keeping the first 2 samples per participant or site. -
shao19 dataset now included in microViz for use in the "Learn microbiome analysis with microViz" tutorial
ps_dedupe
now deduplicates samples correctly when duplicates are specified with multiple variables, and provides a labelling-only mode to check duplicate identification result before removal.
- New function
tax_palette
allows easy creation of a fixed colour palette for taxa, to use with e.g. comp_barplot - New convenience functions
ps_calc_diversity
andps_calc_richness
to calculate a diversity or richness index (using microbiome package functions) and add to phyloseq sample data - New function
tax_rename
allows renaming of taxa using unique combination of classification at any chosen rank and abundance of that taxon (e.g. ASV145 becomes Bifidobacterium-002, which can be interpreted as the second most abundant Bifidobacterium ASV) tax_sort
can now sort taxa "asis" (i.e. do nothing), which now permits upfront custom sorting of taxa for use incomp_barplot
tax_sort
can now transform taxa temporarily for sorting e.g. to sort by mean compositional (%) relative abundance
comp_heatmap
and cor_heatmap
and their helpers are largely rewritten. For guidance, see the new website article on heatmaps.
taxAnnotation
andvarAnnotation
annotation helper functions replace the deprecatedtax_anno
andvar_anno
functionssampleAnnotation
is added for coordinating sample annotations oncomp_heatmap
- various
anno_*
helpers for each of the annotation coordinating functions above
taxatree_plots
can now show symbols indicating multiple levels of statistical significancetaxatree_plots
: it is now easier to use other colour palettes with their default luminance
ord_explore
can perform "binary" transformations, unlocking interactive use of Binary Jaccard etc.tax_transform
gainsadd
argument to simply add a constant value to all otu_table values before transformation (as an alternative tozero_replace
)tax_scale
gainskeep_counts
argument for consistency withtax_transform
tax_model
now only requirescorncob
to be installed when actually usedord_explore
barplot numerical inputs are now debounced to prevent lag from repeated redrawing
The taxatree_* family of functions are largely rewritten. For guidance, see the new website article on statistical modelling of taxa.
taxatree_models
now attaches resulting list to ps_extrataxatree_models2stats
must be run on the output oftaxatree_models
before usingtaxatree_plots
taxatree_plots
has different arguments and can now be directly labelled withtaxatree_plot_labels
whentaxatree_label
is run first to identify which taxa to label.taxatree_plotkey
has different arguments, with more flexible labelling conditions and a smarter label positioning approach.tax_model
andtaxatree_models
now use "lm" type by default, instead of "bbdml", ascorncob
is only a suggested dependency.
ord_plot
default labels now havealpha
= 1 for both taxa and constraints (previously 0.8)ord_plot
"auto"matic loading/constraint vector length scalar adjustment improvement: now uses both axes
comp_barplot
now uses bray-curtis by default for sample ordering (instead of aitchison) as this generally looks bettercomp_barplot
now expects palette argument colours in first-to-last order, which is more intuitive than the previous reverse orderdistinct_palette
now adds "lightgrey" to end by default
tax_filter
'sis_counts
argument replaced byuse_counts
, allowing it to filter ps_extra objects using stored count data (i.e. aftertax_transform
).comp_heatmap
can no longer transform data internally, but accepts data already transformed withtax_transform
and uses stored count data in the ps_extra for any taxa annotationstax_anno
heatmap annotation default style slightly changed.tax_names2rank
replaces deprecatedtax_names2tt
ord_plot
arrow labels can now be rotated with the help oftax_lab_style()
andconstraint_lab_style()
ps_calc_dominant
function added, for conveniently identifying the dominant taxon in each phyloseq sampledistinct_palette
gains "kelly" and "greenArmytage" palettes and helpfully adds "lightgrey" to the end by default for convenient use as the palette argument tocomp_barplot
tax_transform
can now chain multiple transformations together and records these transformations in the ps_extra outputtax_mutate
function added, for modifying the tax_table rank variables withdplyr
mutate
syntaxtax_sort
can now sort ps_extra objects- heatmap annotation helper
tax_anno
no longer requires 'column' or 'row' to be specified in advance prev
, a low level helper function for calculating taxon prevalence now exported- Various phyloseq accessor functions now work with ps_extra objects e.g. taxa_names, sample_names
cor_heatmap
andcomp_heatmap
now respect column seriation arguments when different to row seriationcomp_barplot
now actually orders grouped samples by similarity AFTER splitting into groups, as documented
Updated citation information for JOSS publication. No other changes.
Release accompanying JOSS manuscript acceptance.
- Includes a fix (hopefully temporary) for incorrect barplot legend in ord_explore caused by bug introduced by ggplot2 version 3.3.4 noted at tidyverse/ggplot2#4511
ord_plot
gainsvec_*
helper functions for generating lists for styling taxa and constraint vectors/arrows (vec_constraint
,vec_tax_all
andvec_tax_sel
)
ord_explore
shapes selection bug fixed by limiting to 5 shapes returned by newscale_shape_girafe_filled
function
stat_chulls
added, for drawing convex hulls on ord_plot and ord_explore ordinationsadd_paths
added, for drawing geom_paths connecting a subset of samples (over time) on an ordination plot
phyloseq_validate
no longer checks "unique" tax_table rank column for NAs or nchar<4 (avoiding warnings in ord_explore caused by short taxa_names)
ord_explore
can now draw stat_ellipse or taxa loading vectorstax_agg
error messages now include personalised suggested tax_fix code
ord_explore
Shiny app GUI can now also be used to interactively generate ordination plots, and to generateord_plot
codeord_plot
bug fix - can now plot any dimension- Removed deprecated
tax_fill_unknowns
function
phyloseq_validate
verbose = FALSE is actually silent now.
ord_explore
now compatible with Shiny version >=1.5.0tax_fix
now sends messages about fixing completely anonymous rows, instead of warnings
Allows ps_seriate
, ps_arrange
, ps_reorder
, ps_mutate
, and ps_select
to work directly with ps_extra
objects, as this can be helpful when quickly exploring / printing aggregated data, as in the new "Working with phyloseq objects" tutorial.
tax_fix
replaces the deprecatedtax_fill_unknowns
,tax_fix
has all the same arguments except the 'levels' argument, which was removed
tax_fix_interactive
Shiny app will help you clean up your taxonomy table withtax_fix
ord_plot_iris
andord_explore
no longer take ps argument of untransformed counts, because (by default)tax_transform
now keeps the untransformed counts otu_table in the ps_extra object
ord_explore
now allows much better control over selection of points (usingggiraph
functionality)ord_plot
now has interactive option withggiraph
packageord_plot_iris
gains ord_plot argument, allowing a simple pairing of iris plot and ordination to be made more easilycomp_barplot
(and by extensionord_plot_iris
) can now be made interactive in a simple fashion, using ggiraph for hover/tooltip interaction with taxa
This is the first public release version of microViz. It is still under active development, so pay attention to the following:
- Minor version changes (e.g. 0.5.* to 0.6.0) will signal that breaking changes have been made, i.e. installing the new version may break some previously working code. Breaking changes will be listed in this document.
- Patch versions (e.g. 0.5.1 to 0.5.2) will be used to release new features and bug fixes, which should not break existing code. Please let me know if it does anyway!
tax_agg
argument agg_level renamed to rank.tax_agg
returns taxa in different order than before (and now different order from, but same aggregation as,microbiome::aggregate_taxa()
). tax_agg now checks if taxa cannot be uniquely identified at the specified rank level. (now also about twice as fast)tax_fill_unknowns
x arg renamed to ps. Also now stops when unknown values are detected to the left of known values in the tax_table, as this should always be wrong/need fixing. Also, by default it now searches a larger list of probably unknown/uninformative tax_table values e.g. "k__NA", "p__Unknown" will now be replaced
comp_barplot
gets merge_other argument, which, when FALSE, shows full diversity of samples by outlining individual taxa within the (grey) "other" category!tax_sort
for sorting taxa in tax_table and otu_table by several name or abundance options (deletes phy_tree if present!)tax_transform
can take a rank argument, to perform aggregation (internally using tax_agg) and transformation with one function, and record the results. This is now the recommended usage!tax_transform
new transformation = "binary" can convert to presence/absence data (used bytax_sort
for by = "prev")tax_top
for flexibly returning top n taxa, at chosen rank, with ordering bytax_sort
cor_heatmap
andcomp_heatmap
argument changed: 'taxa_which' replaced with 'taxa_side' for easier control over where taxa annotations are placed (default behaviour stays the same)
- Optionally annotate
cor_heatmap
with variable distributions usingvar_anno
and its helpers:anno_var_box
andanno_var_hist
cor_heatmap
gets 'var_fun' argument for transforming variables before correlatingphyloseq_validate
checks for zero taxa, which can happen after filtering samplestax_filter
gets undetected arg (greater than), as optional alternative to prev_detection_threshold (greater than or equal to)
- heatmaps should handle NAs better (
viz_heatmap
internal function fix) heat_palette
can set range arg manually now without errors
- minor versions from 0.5 will now get a memorable name, probably referring to features added since the last minor version
cor_heatmap
for microbe-metadata correlation heatmapscomp_heatmap
for visualising taxonomic composition across samples (ordered/clustered)ord_calc
can now guess which method the user wants by default (by checking for presence of distance matrix and constraints)ord_plot
auto_caption size can now be set, and it also now exposes thecoord_*
args: expand and clipord_plot_iris
now handles multiple rings of anno_binary annotations, and anno_binary position is now closer when no anno_colour is setord_explore
shiny app menu styling is a little cleaner (but still needs some love)tax_scale
for applyingbase::scale()
to phyloseq otu_tabletax_name
for easily setting informative unique phyloseq taxa_names
dist_permanova
's obsolete return arg removedtax_filter
gets explicit handling of compositional inputtax_fill_unknowns
gets better handling of fully unclassified taxataxatree_nodes
now checks for cross-rank name duplications, which would mess up the taxatree graph structure
ord_explore
now works with ps_extra classestax_fill_unknowns
gives informative error on data with only one taxonomic ranktax_filter
ps argument default removed
ord_calc
now correctly returns subsetted phyloseq in ps_extra obj after constrained ordinationtaxatree_plots
andtaxatree_plotkey
now have reactive automatic minimum node and edge sizes that depend on the set maxes
dist_permanova
replacespermanova
for naming consistency and guiding usercomp_barplot
replacesplot_comp_bar
in anticipation of (a) future heatmap function(s) named comp_heatmap or similar
New "ps_extra" class (S3) conveniently stores phyloseq object alongside any calculated distance matrix, ordination and permanova models, as well as records of tax_agg
and tax_transform
calls. "ps_extra" class objects have a pretty and compact print method, a simple list structure, and convenient accessor functions to return each component: ps_get
, info_get
, dist_get
, ord_get
, perm_get
, bdisp_get
.
- Taxon modelling updates:
tax_model
andtaxatree_models
can handle linear modeling e.g. on compositional (TS-Scaled) datataxatree_plots
has more sensible defaults (automatic symmetrical colour limits and variable selection based on model type)
ord_plot_iris
thedata
arg is replaced withord
and conditionally optionalps
arg for when data inord
have been transformedpermanova
always uses adonis2 now, so that arg is removed, and replaced withby
argument to set sums of squares choice
ord_plot
gets acenter
argument to center expand the plot limits to center around zero (useful when pairing withord_plot_iris
)ord_explore
can now also display ordinations that don't use distances like PCA and RDA (as well as PCoA of course)ord_explore
gains aps
arg (for untransformed version) and other tweaks to facilitate using transformed data inord
ord_plot_iris
annotation args are now NULL by default.microbiome::aggregate_top_taxa
is copied directly intomicroViz
to avoid its coming deprecation and the current warning.
taxatree_models
andtaxatree_plots
bring tree-based visualisations of statistical models
tax_model
replacestax_model_corncob
as a function that will eventually be generalised to use other model typestaxatree_plots
andtaxatree_plotkey
replaces the rudimentarytaxatree_plot
ord_explore
allows interactive exploration of the composition of ordinated samples usingShiny
ord_plot_iris
for pca-ordered circular compositional barplots to pair withord_plot
outputps_select
for easily selecting variables within phyloseq sample dataord_plot
exposes scaling argument
calc_dist
-->dist_calc
beta_disper
-->dist_bdisp
ordin8
-->ord_calc
plot_ordin8
-->ord_plot
model_tax_corncob
-->tax_model_corncob
plot_comp_bar
- groups argument renamed to group_by for consistency with new facet_by argument
- drop_unused_vars replaced with keep_all_vars which defaults to TRUE
ps_seriate
for ordering phyloseq samples by similarity
ps_filter
allows filtering ofphyloseq
samples by values of variables insample_data
(wrapper arounddplyr
'sfilter
function)
ps_mutate
no longer needs.across
argument to usedplyr::across()
ps_dedupe
bug fix method = "readcount" now correctly keeps all samples that "first" or "last" methods do
ps_arrange
allows reordering ofphyloseq
samples by values of variables insample_data
orotu_table
(wrapper arounddplyr
'sarrange
function)ps_otu2samdat
add taxon abundance variables fromphyloseq
otu_table
tosample_data
for use in plotting etc
ps_mutate
allowing easy and piped modification ofphyloseq
sample_data
(wrapper arounddplyr
'smutate
function)ps_join
allows easy and piped addition of a dataframe of data tophyloseq
sample_data
(wrapper arounddplyr
's*_join
functions)
plot_ordin8
arguments changed to allow easier sizing and styling of all vectors and labelsplot_ordin8
default styling of taxon and constraint vectors and labels is changed: background vectors are now semi-transparent and dashed lines are not used any more by default (but can be set)
ordin8
andplot_ordin8
get basic support for CCA and NMDS methods finallyplot_comp_bar
getsorder_samples_with_all_taxa
andtax_transform_for_ordering
- Documentation of manual sample ordering across
plot_comp_bar
groups added to Visualising Compositions article on website. - Documentation of experimental polar coordinates and PCA_angle sorting added in new article called PCA-sorted polar composition plots, on website.
-
phyloseq_validate
now fixes otu_tables stored as integers and messages user about suspicious or NA tax_table entries and this happens as part ofplot_comp_bar
andplot_ordin8
-
plot_comp_bar
andplot_ordin8
gaintaxon_renamer
argument to allow you to customise the taxon names on these plots -
plot_comp_bar
can now handle missing values in the grouping variable by converting NAs to "NA"s -
Some functions renamed for naming consistency:
prepend_ranks
->tax_prepend_ranks
tax_model_corncob
->model_tax_corncob
corncob_models_to_var_stats
->modelsmodels2stats_corncob
tax_tree_
nodes
/edges
/plot
->taxatree_
...
- Added a
NEWS.md
file to track changes to the package.