dispRity v1.9
(2024-11-13) distant update
NEW FEATURES
- Redesigned multi.aceto be more modular and handle both
continuous and/or discrete characters. Changes include a change
in argument name fromcastor.optionsto the
genericoptions.args(the options can be provided the same
way as before though); and a change in default
arguments formodelswhich can now be left missing
(previously was"ER") and applies"ER"and"BM"for respectively discrete and continuous characters by
default.
- New design when using distance matrices: dist.helpernow allows to save distance matrices in the cache, saving a lot of RAM
and speeding up calculations. You can use the helper usingdispRity(..., dist.helper = my_distance_function)ordispRity(..., dist.helper = my_distance_matrix).
- New dispRity,custom.subsetsandchrono.subsetsoption: these three functions can now
usedist.data = TRUEto specify that the input data is a
distance matrix (and handle it accordingly).
- New bootstrap options: you can now use boot.byto specify whether bootstrap the rows (previous behaviour), the columns
or both (for distance matrices).
- New utility function set.root.timeto add a
root time to a tree ("phylo"), list of trees
("multiPhylo") ordispRityobject with
trees.
- New utility function remove.dispRityto
cleanly remove specific parts of a"dispRity"object.
- New metric: count.neighboursto count the
number of neighbours for each elements within a certain radius (thanks
to Rob MacDonald for the suggestion).
MINOR IMPROVEMENTS
- custom.subsetscan now take a logical vector for the- groupargument.
- custom.subsetsnow recycles node names when using a
tree to create clade groups.
- plotfunctions doing scatter plot now centers them
without changing the scale of both axes.
- changed default argument for tree.age:
the number of digits output bytree.ageis now changed from
3 to 4 by default.
- the random starting parameters in reduce.spaceare now
drawn from the input data distribution which speeds up the function
significantly.
- match.tip.edgescan now just work for colouring edges
connecting a vector of tips.
- remove deprecated internal requirements in
boot.matrix.
- improved RAM management for make.metric(now uses the
largest requestable subset rather than the whole data for testing).
BUG FIXES
- scale.dispRitynow correctly ignores- NAs
when scaling.
- multi.acenow correctly handles invariant characters
when looking for NAs.
- dispRityobjects with a- $covarcomponent
are not interpreted as bootstrapped by- boot.matrixanymore.
DEPRECATED
- The dimensionsargument fromboot.matrixis now removed: it has been redundant with thedimensionsargument in thedispRitysince v0.3!
dispRity v1.8
(2023-12-11) dispRity.multi
NEW FEATURES
- Added the dispRity.multi internal architecture now allowing
users to work with different matrices and different
trees as inputs for custom.subsets,chrono.subsets,boot.matrixanddispRity. This change is not affecting the user level
appart from now allowing to bypass some error messages (thanks to Mario
Corio for that obvious suggestion).
- New utility function: name.subsetsfor
directly accessing the subsets names of adispRityobject
(basically doingnames(my_dispRity$subsets)).
- New utility function: MCMCglmm.variancefor
calculating the variance for specific terms in a"MCMCglmm"model.
- New statistical test: pgls.dispRityto run
PGLS test on adispRityobject with a level-2 metric and a
tree (using excellentphylolmalgorithm). The new test comes with its own S3 print, summary and plot
functions if the inputdispRitydata contains multiple
trees or multiple matrices (running and handling the output of multiplephylolm).
- New options to get.treeutility function to
get the trees in each subsets (thanks to Jack Hadfield for this
suggestion and help with implementation).
- New vignette compiling resources for developers to help
people (and future me) to edit the package.
- New metric: roundnessto measure the roundness
of a variance-covariance matrix.
MINOR IMPROVEMENTS
- CHANGE IN DEFAULT ARGUMENTS for the
custom.subsets,chrono.subsets,boot.matrixanddispRityfunctions: thetree,FADLAD,probanddimensionsarguments is nowNULLby default
(instead of missing).
- CHANGE IN DEFAULT ARGUMENTS for the
projectionsfunction. The defaults are nowscale = TRUE,centre = FALSE(previouslyTRUE) andabs = FALSE(previouslyTRUE). The default arguments fordispRity.covar.projectionsremain unchanged though
(scale = TRUE,centre = TRUE,abs = TRUE).
- randtest.dispRityfunction’s- subsetsargument now can take a list of arguments of subsets to compare is- datais a- dispRityobject. The call message
has also been updated to be much more verbose and clear of what has been
tested.
- optimised internal logic for all the projections.*functions for speed.
- test.metricnow also adds the slope coefficient if the
option- modelis used.
- the default legends/row names when using
plot/summaryontest.metricresults are now more easy to interpret.
- reduce.spacehas now 25 times less chances to be stuck
on a local optimum.
- match.tip.edgesnow also works on nodes and on- "multiPhylo"objects and has a added an option- use.parsimony(default is- TRUE) to propagate
the matching down the tree (i.e. if two nodes have the same unique
ancestor and variable value, the ancestor is consider to have that
variable value as well).
- Improved margins handling in covar.plot.
- Updated test coverage here and there.
- clean.datacan now also handle a list of- "phylo"objects as- treeinput (i.e. it does
not need to be specifically classed as- "multiPhylo").
- Changed dependencies to spptesttoGET.
- space.makercan now generate specific row names and be
replicated to generate a bunch of spaces (via the new optional arguments- elements.namesand- replicatesrespectively).
- The add.treeutility function now has an optional
argument to override any existing trees (replace = TRUE) or
not (replace = FALSE; which remains the default previous
behaviour).
- print.dispRitynow recognises and highlights simulated
data from the- treatspackage.
- Improved NAmanagement forS3functions.
- Improved automatic centering and scaling for covar.plotmaking the figures more aesthetic.
- remove.zero.brlennow also removes negative branch
lengths and works on- "multiPhylo"objects (thanks to Thomas
Johnson for this suggestion).
- fill.dispRityhas now an extra argument- checkto toggle the data checking on and off (more for
developers).
- multi.aceis now described in details in the
manual.
- slice.treehas now a- keep.all.ancestorsoption to do exactly that.
BUG FIXES
- The correct types of changes are now plotted in legend when plotting
the results of test.metric.
- get.disparitynow correctly concatenates one
dimensional results into a- "numeric"(rather than a- "matrix").
- make.metricnow internally handles- covarobject correctly (i.e. as distance matrices).
- Calculating disparity for multiple matrices and customised subsets
now works as expected for all metric levels.
DEPRECATED AND DEFUNCT
- ellipse.volumehas been changed to- ellipsoid.volumeto more accurately reflect what it is
measuring.
- rescale.dispRityhas been changed to- scale.dispRityand correctly registered as a S3
method.
- randtest.disthas been changed to- distance.randtestto avoid conflict with- *.distS3 methods.
dispRity v1.7 (2022-08-08)
MacMacGlimm
NEW FEATURES
- New data function: select.axesfor selecting
and analysing the number of axes required to contain an arbitrary amount
of variance.
- New utility function: randtest.distfor
measuring the distance between the observed statistic and a specific
quantile of the simulated statistic (thanks to Frane Babarovic for the
inspiration).
- dispRityobjects can now contain covariance matrices as
a- $covarobject. The- covarpart can be
directly used for some specific metrics (usually- my_metric.covar) and are handled by the- dispRityfunction (and- plot,- summary, etc…) in a specific way.- $covarcontains a list of two elements- VCVthe variance covariance
matrix and- locthe coordinates of the centre of the- VCVin space (can be left empty).- $covarmatrices are effectively treated as bootstraps.
- New function covar.plotfor plotting thecovarcontent ofdispRityobjects (this is
separated fromplot.dispRitybecause of the many different
options).
- New function: MCMCglmm.subsetsis a function
that allows to convert aMCMCglmmobject into adispRityobject.
- New metric: projections.betweena between
group metric for applying theprojectionsmetric between
the major covariance axis of two matrices.
- New metric: disalignment: the (dis)alignment
of a group compared to another one (i.e. the rejection from group B’s
centre on the group A’s major axis). a between group metric for applying
theprojectionsmetric between the major covariance axis of
two matrices.
- New dispRity.fastfunction for the fastest disparity
calculations at the expanses of pretty much everything this package
does. This is a really situational function.
- New utility functions for manipulating
MCMCglmmobjects:MCMCglmm.traitsfor
extracting the number of traits,MCMCglmm.levelsfor
extracting the level names,MCMCglmm.samplefor sampling
posterior IDs andMCMCglmm.covarsfor extracting
variance-covariance matrices
- New utility functions for dispRityobjects
withcovarmatrices:get.covarto extract the
VCV matrices (or a subsample of them);axes.covarto
extract the major axes of the VCV matrices andas.covarto
transformdispRitymetric function to use a covar
object.
- New utility function match.tip.edgefor
matching tip labels as factors/characters/integer to tree edges.
- New wrapper function
dispRity.covar.projectionsfor covariance projections
analyses (with its associated S3 sub-class).
- One new demo datasets: charadriiformes, adata.frameand aphyloobject of 359
Charadriiformes species (gulls, plovers and sandpipers) from Cooney et al
2017 along with aMCMCglmmmodel with each clade as a
random term.
- Additional plot arguments ...in all thedispRityplotting functions can now be targeted to a
specific plotting element. When multiple elements are plot by default
(e.g. lines, legend, points, etc…) it is now possible to pass a specific...argument to the specific plotted element using the
syntax<element>.<argument>(e.g.points.col = "blue"will only apply the argumentcol = "blue"to the points).
MINOR IMPROVEMENTS
- Changed default arguments for
projectionsandprojections.treemetrics: the
default"position"output is now scaled, centred and
absolute (see?projectionsfor details).
- Formalised the grouping logic for custom.subsetsandselect.axes. This can create some minor user level changes
namely: warning messages for empty subsets now correctly mentions
“subsets” (rather than subsamples); groups with incorrect elements are
now always flagged as errors (rather than just ignored). The changes at
the developer level is that the logic is now made smoother and exported
incustom.subsets_fun.R.
- Added a function.index.csvlist (and updater) to help
developers find internal functions locations easily.
- Restricted the type-I error inflation warning message in
test.dispRityto only occur when using a test of class"htest".
- Continuous Integration has been moved from Travis-CI to GitHub
Actions.
- custom.subsetscan now group elements using a- "factor"vector.
- Utility functions manuals are now grouped by topic (e.g. utilities
related to MCMCglmmobjects,dispRityobjects
in general,dispRityobjects with subsets, ect…). It should
now be much easier to find these sometimes overlooked functions.
- Many updates and new entries in the dispRitymanual,
including a section oncovarandbetween.groupsspecific analyses.
- Improving speed for the test.metric(using the new
officialdispRity.fastfunction).
- Most core functions in the package now have a garbage memory
cleaning component. This improves the speed and the memory footprint
when handling very large datasets.
- Disparity results stored in data$disparitynow don’t
have dimension names anymore (significantly reducing the size ofdisparityobjects). However, you can always retrieve the
dimensions names usingget.disparity.
- Updated the calculation options for ellipse.volume, you
can now directly specify one of the following methods:"pca"to calculate the eigen values from the ordinated
matrix;"eigen"to directly do an eigen decomposition of
the matrix (new); or"axes"to directly measure the axes
(new); or directly provide the eigen values.
- The interval function check.subsetsnow handles the
checking of"dispRity"objects much faster making most
functions relying on it slightly faster (this function is typically not
called more than once per function).
- Updated adonis.dispRityto the newestvegan::adonis2code (thanks to Jari Oksanen for the
notification).
- Removed dependency to geigerfordtt.dispRityto avoid package maintenance errors. This
leads to no changes at the user level andgeiger::dttis
still acknowledged in the manual.
- tree.agefunction’s manual now makes it clear it does
not estimate tree ages.
- When using plot.dispRity(..., type = "preview"),
group’s colour attribution and plotting is now made so that the groups
larger groups are plotted in the background and the smaller in the
foreground.
- NAs are now better handled in internal checking
functions.
BUG FIXES
- Removed warning in dispRitywhen selecting a specific
number of dimensions (old warning artefact).
- Fixed bug in plot.dispRitywhen usingtype = "preview"on bootstrapped data and fortype = "box"when the subsets to plot are from different
sizes (now plots all the data correctly).
- Fixed bug when using chrono.subsetswith"continuous"method aFADLADdata containing
only node values (now correctly taken into account; thanks to Peng-Wei
Li for noticing it) and when usingchrono.subsetswith"gradual.*"models on empty subsets.
- standardGenericfunctions are now correctly interpreted
as functions throughout the package.
- Fixed bug when plotting level 1 disparity metric results without
bootstrapped (observed = TRUEis now used as the
default).
- Fixed bug when plotting test.metricplots withsave.stepsoptions with more than two types of shifts.
- Fixed bug with null.testwhich is now correctly
managing the number of dimensions inherited fromdispRityobjects (thanks to Alex Slavenko for spotting this one and the two
above).
- Fixed bug when using level 2 dimension metrics on unidimensional
data (the metric is now detected as a level 2 correctly; thanks to
Catherine Klein and Rachel
Warnock for noticing that one).
- Update internal use of is(data, c("array", "matrix"))tois.array(data)for R 4.1.2.
DEPRECATED AND DEFUNCT
- matrix.dispRityand- extract.dispRityare
now deprecated. You should now use respectively- get.matrixand- get.disparityinstead (the arguments don’t change
though).
dispRity v1.6.0
(2021-04-16) dispRitree
NEW FEATURES
- New metric: projectionsthat allows to measure
elements’ projection on an arbitrary axis (or their distance from this
axis withmeasure = "distance").
- New metric: projections.treethat allows to
measure elements’ projection on axis between elements of a given
tree.
- New metric: edge.length.treethe edge length
from each element given a tree (with the optionto.root = TRUE/FALSEto measure the edge length from the
element to the root of the tree (default = TRUE) or the nearest ancestor
(FALSE).
- You can now save the shifts results in test.metricwithsave.stepsand then visualise them withplot.dispRityalong side the disparity metric test
results.
- New utility function n.subsetsto directly get
the number of subsets in adispRityobject.
- New statistical test: randtest.dispRitythat
is a wrapper forade4::randtestapplied todispRityobjects (not dissimilar fromnull.test).
- Six more demo datasets have been added to the package! These
datasets are the ones used in Guillerme
et al. 2020 and published originally in Beck & Lee 2014
(that one was originally the only demo dataset in the package), Wright
2017, Marcy
et al. 2016, Hopkins
& Pearson 2016), Jones
et al. 2015, Healy et
al. 2019. Thanks to all these authors for their open science
work!
- dispRityobjects now have a reserved- $treecomponent that contain any number of trees attached to the data. This
allows any function to use the reserved argument name- treeto extract directly the relevant tree from the- dispRityobject, for functions like- chrono.subsetsor metrics like- ancestral.dist! To help manipulate the- treecomponent of the- dispRityobject, you can now use the new
utility functions- add.tree,- get.treeand- remove.tree.
MINOR IMPROVEMENT
- Reverted R version requirement from 4.0back to3.6following Joseph Brown’s
issue and fix.
- reduce.space- "random"algorithm now
outputs a named logical vector (like the other algorithms!).
- remove the "only"text when printingdispRityobjects that contains “only” matrices (even though
that can be 10k matrices!).
- added a dedicated behaviour to summary.dispRityfor"dispRity""randtest"objects to output
“ready-to-publish” result tables.
- some error messages have been updated to be slightly more
useful.
- added the estimation.detailsargument tomulti.aceallowing to also return specific arguments from
the ancestral states estimation (thanks to Armin Elsler for the
suggestion).
- Added new option inc.nodestoclean.datawhether to check if the nodes in the tree match the labels in the
matrix.
- make.metricwith the option- silent = TRUEnow outputs a list of info rather than only the level of the metric. You
can reproduce the old behaviour using- make.metric(..., silent = TRUE)$type).
- Fixed bug in plotusingpreviewwhen the
given argumentpchdid not match the number of groups (the
differentpcharguments are now used correctly).
- Completely revamped the ancestral.distmetric. The
function is now much faster and much easier to use (due to the newdispRityobject structure). The optionsnodes.coordshas been removed and the optionfullis now changed byto.root. If you still
really want to use the older version ofancestral.distusingancestral.dist.deprecatedthough.
- The dimensionsoption throughout the package (e.g. in
thedispRityfunction) can now also be a vector of
dimensions to take into consideration (e.g.c(1,2,5)).
BUG FIXES
- chrono.subsetsnow automatically detects the number of
digits to round for the internal time slicing functions (thanks to Mario Corio for finding this
one).
- Fixed bug in test.metricplots that now display
correctly the “top” and “bottom” changes for the “position” shift.
- Fixed bug in test.metricplots that now display the R^2
values correctly.
- Fixed bug in tree.agewhen the tree tips/node labels
vector is longer than the actual number of tips/nodes in the tree.
DEPRECATED AND DEFUNCT
- Removed former version of ancestral.dist(see NEW
FEATURES above).
- Removed node.coordinatesfunction (no replacement; you
must use a package version prior 1.5.10 to use this function).
- Removed get.ancestorsfunction (no replacement; you
must use a package version prior 1.5.10 to use this function).
dispRity v1.5.0
(2020-09-25) between groups
NEW FEATURES
- New function: multi.acefor performing fast
ancestral character estimations on multiple matrices (based oncastor::asr_mk_model).
- New function: reduce.space, a function to
modify trait spaces imported from themomsshiny
app. This function comes with a new reduction algorithm: the
“evenness” algorithm for flattening the curve (thanks to Gavin Thomas for the
suggestion).
- New function: test.metric(and associatedplot,printandsummaryfunctions), to apply thereduce.spacefunction on a
specific space and metric to test whether a metric is picking up
specific changes in trait space.
- the dispRityfunction can now use"between.groups"metrics to calculate disparity between
groups rather than within groups. Themake.metricfunction
is now modified to allow detection of metrics that can be applied
between groups.
- New metric: group.dist, a dimension level 1
metric for between groups that measures the distance between two groups.
By default, this is the minimum distance but the function takes theprobsargument allowing the distance to be between, says,
the 95% CI (probs = c(0.025, 0.975))) or between the
centroids (probs = c(0.5)).
- New metric: point.dist, a dimension level 2
metric for between groups that measures the distance between the rows inmatrixto a point inmatrix2. That point is
the centroid by default but thepointargument can take any
function.
MINOR IMPROVEMENTS
- The dispRitypackage now depends onR (>= 4.0.0).
- Many updates to the dispRitymanual.
- Many minor speed improvements across the package
- Simplified syntax for the internal plot.dispRityS3
methods (for a potentialggpRity?). These changes should
not be apparent at the user level but see the two removed options
below:
- removed option in plot.dispRity: thechrono.subsetsoption
(TRUE/FALSE) has now been removed. The
time-slicing-ness is now automatically detected or can be specified by
the user normally throughxlab.
- removed option in plot.dispRity: theylim,ylab,xlabandcoloptions have now been removed. They are now handled
through...as normal genericplot(...)arguments.
- removed option in plot.dispRity: theelements.pchoption has now been removed. Thepchof the plotted elements can now be passed like other
options directly to elements
(e.g.elements = list(pch = 15)).
- removed option in plot.dispRity: thedimensions,matrix,nclassandcoeffoptions have now been removed. Any options for dual
class plots (randtest,dtt,model.test,type = "preview"etc…) are now
handled through the genericspecific.argsargument.
- New option in dtt.dispRity:scale.timeallowing to scale the time axis (like ingeiger::dtt) or not.
- when plotting chrono.subsetsdispRityobjects, the x label ticks are now rounded if possible (for nicer
looking plots!).
- when using automatic chrono.subsetstime slices, the
name of the time slices (their age) is now rounded for aesthetics.
BUG FIXES
- Updated all calls to the Claddispackage to match
version 0.6 (thanks to Graeme
Lloyd for fixing this
one!)
- Updated Claddis.ordinationfunction to be compatible
with the newapeversion5.4(thanks to Emmanuel Paradis for the
pointing that out).
- Fixed a bug in chrono.subsetswhere ladder trees with
no tip branch lengths anmethod = "continuous"option would
get stuck in an infinite loop.
- Fixed a bug in chrono.subsetswhere the"*.split"methods would bug if the last slice is through a
single edge.
- Fixed a bug in dispRitywhere some 1D matrices could
loose their class for certain metrics.
dispRity v1.4.0
(2020-05-05) getting faster
NEW FEATURES
- New metric: angles, a dimension level 2 metric
that measures the angle of the main axis of each dimension in a matrix
(in slopes, angles or degrees).
- New metric: deviations, a dimension level 2
metric that measures the deviation of each element from a
hyperplane.
- Completely rewritten char.difffunction. It now uses a
way faster bitwise comparison architecture and comes with different
distance methods as well as modular optional arguments on how to treat
various special tokens ("?","-","&", etc.). This also allows many more distance methods
(now including"hamming","manhattan","comparable","euclidean","maximum"and"mord").
- all dispRityfunctions can now intake a single"matrix"or a"list"of matrices with the same
row names and dimensions. The disparity is then calculated directly on
all the matrices and summarised as before throughsummary.dispRity. This option can be used to add
uncertainty to disparity calculations. For example inchrono.subsetsyou can now provide a list of trees and a
list of associated ancestral state estimates; or forcustom.subsetsyou can provide a list of matrices with
different values representing different estimations of the traits.
BUG FIXES
- update reduce.matrixto work withvegan::vegdistversion 2.5-6 (thanks to Jari Oksanen for
the fix).
- updated class evaluations throughout the package for Rversion4.0.0:class(.) == *is nowis(., *).
- updated ...argument bug PR#16223.
- In make.metricthe argument...is now
ignored if anynames(...)is"tree"or"phy".
- fixed bug in neighboursandspan.tree.lengthwhen feeding “distance” like metrics
(thanks to Ashley Reaney for finding that one).
MINOR IMPROVEMENTS
- greatly improved speed of chrono.subsetswithmethod = "continuous(now > 1000 times faster!).
- minor warning message fix for plot.dispRitywith time
slices.
- removed paleotreepackage dependency (though the links
to this excellent package are still there!).
- increased Rversion requirement to3.5.
- ...in- summary.dispRityare now directly
passed to- cent.tend(e.g.- na.rm = TRUE).
- added some time improvements in several phylo functions based on the
castorpackage.
- updated all the package demo data to fit the new
dispRityobject architecture (see above). Note that this
might effect the exact results of calculations using these demo
datasets.
- you can now specify the dimensions of the matrix to make a disparity
metric in make.metricthrough thedata.dimoption.
- metrics passed in dispRityare now tested using the
input data dimensions.
- chrono.subsetswith multiple trees now stretches the
root edges length to match the oldest tree.
dispRity v1.3
(2019-08-15) many metrics
NEW FEATURES
- New metric: displacements, a dimension level 2
metric that measures the position of elements in space (i.e. their
distance from the centre relative to their distance to their
centroid).
- New metric: neighbours, a dimension level 2
metric that measures the distance from an element to its neighbour
(e.g. the nearest neighbour, the furthest, the median, etc.).
- New metric: quantiles, a dimension level 2
metric that measures the nth quantile range per axis (a good
alternative to therangesfunction!).
- New metric: func.eve, a dimension level 1
metric that measures the functional evenness (i.e. the spread along the
minimum spanning tree; from Villéger et al. 2008).
- New metric: func.div, a dimension level 1
metric that measures the functional divergence (i.e. the ratio of
deviation from the centroid; from Villéger et al. 2008).
- Updated metric: span.tree.lengthnow outputs
the length of each edges (c.f. the sum of the length) and becomes a
level 2 metric.
- The chrono.subsetscan now takemultiPhyloobjects for slicing through multiple trees at once!
- New utility function: reduce.matrixfor
optimising data overlap in a matrix with missing data.
- New utility function: slide.nodesfor sliding
specific nodes on a tree.
- New utility function: remove.zero.brlenfor
stochastically removing zero branch lengths on a tree (using theslide.nodesfunction).
- New argument in plot.dispRity: thetypeargument can now be"preview"to have a
glimpse at two of the dimensions of the trait-space.
- The Claddis.ordinationcan now directly take a matrix’s
path as input (leaving the function to read and transform the matrix
intoCladdisformat. The function can thus now also be used
to convert matrices intoCladdisformat.
- Added a “Other functionalities” section to the manual describing
miscellaneous functions.
MINOR IMPROVEMENTS
- centroidsand- ancestral.distfunctions can
now take the- methodoption for- "euclidean"or- "manhattan"distances.
- All functions methods selection have now been sped up using
switch.
- Error messages in dispRityare more verbose when input
the wrong metric(s).
- screeoption in- space.makerdoes not
require to sum up to one anymore.
- cor.matrixoption in- space.makerdoes not
require to have a valid Choleski decomposition (an approximation is used
instead).
- Updated all tests and functions to be compatible with R 3.6.
- Fixed bug in clean.datathat did not output dropped
tips correctly when applied onmultiPhyloobjects.
- Improved error messages in chrono.subsetsfor funky
time slices/bins (e.g. with negative values).
- Speed improvements for the time.slicefunction.
- Better internal handling of distance matrices for the disparity
metrics.
- Most functions handles NAasna.rmorna.omit.
dispRity v1.2.3 (2019-03-12)
NEW FEATURES
- dispRityobjects now contain a metric argument (if a
metric was applied). This argument can now be recycled by the
appropriate functions (e.g. in- null.test).
MINOR IMPROVEMENTS
- plot.dispRityargument- observedcan now
take a list of arguments to be passed- points().
- boot.matrixnow makes a error warning message when
bootstrapping distance matrices (as suggested by Dave Bapst!).
- geomorph.ordinationcan now be used to simply create
coordinates matrices (no ordination!) with- ordinate = FALSEargument.
- better internal handling of error messages.
- fastereigen value estimations in- ellipse.volumewhen the argument is left missing.
- removed internal handling of the Claddis.ordinationfunction. This function now uses the brand new version of theCladdispackage on CRAN (0.3).
BUG FIXES
- plot.dispRitywith option- "box"now
correctly display plot ranges when disparity is an observed
distribution.
- test.dispRityhandles errors messages more efficiently
when disparity is an observed distribution.
- summary.dispRityhandles non-bootstrapped distributions
display properly.
- geomorph.ordinationnow converts- "character"vectors into- "factors".
- adonis.dispRitynow properly handles complex formulas
(with arithmetic signs).
- ...are now properly handled by internal metric testing
functions for more accurate error messages.
- char.diffnames are now properly protected in the- Cimplementation to comply with new- rcheckrequirements.
dispRity v1.2 (2018-09-19)
model tests
NEW FEATURES
- New functions: model.test,model.test.simandmodel.test.wrapperfor
fitting models of disparity evolution through time (with associated
manuals, vignettes andS3methods! Thanks to Mark Puttick).
- New argument in boot.matrix:probfor passing probabilities of sampling for specific
elements.
- S3 printmethod for objects of class"dtt"and"dispRity"(fromdtt.dispRity).
MINOR IMPROVEMENTS
- tydiversed most of the error messages.
- dtt.dispRitynow allows to specify the alternative
hypothesis (if- nsim > 0).
- ellipse.volumecan now take an explicit eigen value
vector (the eigen values are still automatically estimated correctly for
PCO and MDS).
- Improved metric checking messages from make.metricwhen
dealing with optional arguments.
- Removed cascade of warnings triggered by
plot.dispRity.dtt.
BUG FIXES
- Corrected char.diffto properly reflect the probability
of different splits between characters (thanks to Abigail Pastore).
dispRity v1.1 (2018-03-20)
got CRAN
NEW FEATURES
- CRAN release 1 with the additional Claddis.ordinationfunction.
MINOR IMPROVEMENTS
- Added default Cailliez correction to Claddis.ordinationfunction (withadd = TRUE).
- Improved test coverage.
dispRity v1.0.3
(2018-03-20) got CRAN
NEW FEATURES
MINOR IMPROVEMENTS
- Registered Csymbols properly.
- Overall improvement for the S3methods.
- Changed name: scale.dispRityis nowrescale.dispRity.
- Changed name: merge.subsetsis nowcombine.subsets.
- Changed name: time.subsetsis nowchrono.subsets-time.subsetscan still be
called as an alias for the same function.
BUG FIXES
- Minor bug fixes and typos in various error messages and in the
manual.
DEPRECATED AND DEFUNCT
- Removed Claddis.ordinationfunction to comply with the
CRAN requirement (this function is still live in the GitHub version
1.1).
dispRity v0.5
(2017-12-20) covered with tests
NEW FEATURES
- custom.subsetcan now automatically create clade-based
groups if a- phyloobject is passed to- group.
- New utility function: extinction.subsets, to
get the list to be passed totest.dispRityfor testing the
effect of extinction.
- New test function: dtt.dispRity, a wrapper forgeiger::dtt.
This version is slower thatgeiger::dttbut allows any
univariate disparity metric!
- New test function: adonis.dispRity, a wrapper
forvegan::adonis.
- New utility function: crown.stemfor
separating a tree into crown and stem groups.
- New disparity metric: span.tree.lengththe
length of the minimum spanning tree.
- New disparity metric: pairwise.dist: the
element’s pairwise distances.
- New disparity metric: radius: the radius of
each dimensions.
- New disparity metric: n.ball.volume: the
n-dimensional sphere or ellipsoid volume.
- New argument in time.subsets,model = "equal.split"andmodel = "gradual.split"that retain the probability of
being either the descendant or the ancestor. This probability is passed
toboot.matrix.
MINOR IMPROVEMENTS
- Changed calls to stats::disttovegan::vegdistto allow more distances to be passed throughmethodsarguments.
- slice.treecan now slice through a single edge.
- Various minor speed improvements.
BUG FIXES
- Correct behaviour in tree.ageto estimate ages for
trees with fossils only.
DEPRECATED AND DEFUNCT
- Change name throughout the package,
subsampleis now replaced bysubset(e.g.time.subsamplesis now renamedtime.subsets,data$subsamplesis nowdata$subsets, etc…).
- Changed argument in time.subsets,model = "gradual"is now replaced bymodel = "proximity"andmodel = "punctuated"is now replaced bymodel = "random".
dispRity v0.4.1 (2017-11-13)
NEW FEATURES
- New disparity metric: ancestral.distanceto
get the distance from taxa/nodes to their ancestors.
- New function: random.circlefor generating
random circle coordinates (see example inspace.makerfor
creating doughnut spaces!).
- New function: get.bin.agesfor getting the
geological timescale of a tree (based ongeoscale).
MINOR IMPROVEMENTS
- Added a t0argument totime.subsamplesallowing to set the start age of the first subsample.
- Allowing subsamples to contain less than three elements (up to
0!).
BUG FIXES
- Fixed fuzzy match issues in slice.tree.
dispRity v0.4
(2017-08-21) user friendly
NEW FEATURES
- Entirely rewritten manual (in GitBook)!
- New function: Claddis.ordinationandgeomorph.ordinationfor automatically ordinating data fromCladdisandgeomorphpackages!
- New function: char.difffor calculating
character differences and associated plot function
(plot.char.diff)
- New utility function: merge.subsamplesfor…
merging subsamples.
- New utility function: size.subsamplesfor
getting the size of subsamples in a disparity object.
- New wrapping functions: dispRity.through.timeanddispRity.per.groupnow runs easy default disparity
analysis.
MINOR IMPROVEMENTS
- Input ordinated matrices do not need to be of maximum size
n*(n-1). Bigger matrices now only trigger a warning.
- Added dimensionsoptional argument todispRityto overwrite the number of dimensions generated byboot.matrix.
- variances,- rangesand- centroidsare now simplified for speed. The optional
arguments for data cleaning are now passed to- make.metric.
- space.makernow allows to approximate the dimensions
variance distribution with the- screeoption.
DEPRECATED AND DEFUNCT
- Removed hyper.volumemetric for
dependencies reasons,
- Removed paralleloption fromboot.matrix(the new architecture is already super fast:
<2sec for 5k taxa and 10k bootstraps!).
- Changed name: seriesas a part ofdispRityobjects is now changed tosubsamplesthroughout the whole package.
- Changed name: time.seriesis now
renamedtime.subsamples, if dates are provided and method
isdiscrete, this function doesn’t need a phylogeny any
more.
- Changed name: get.subsamples.dispRityis now renamedget.subsamples.
- Modified function: cust.seriesis now
renamedcustom.subsamples(to avoid confusion withcustard.subsamples!). Itsfactorargument as
been changed togroupsand can now take a simple list.
dispRity v0.3
(2017-01-25) dispRity lite
NEW FEATURES
- Complete change of the dispRityobject
architecture.
MINOR IMPROVEMENTS
- sim.morphocan now use- model = "mixed"for
using both- HKY-binaryand- Mkin characters
simulation.
- dispRityobject utilities are now all grouped under the- ?dispRity.utilitiesmanual with appropriate S3
methods.
DEPRECATED AND DEFUNCT
- Removed rm.last.axisargument inboot.matrix. It is now replaced bydimensions.
- Changed argument in plot.dispRity,type = "lines"is now replaced bytype = "line".
dispRity v0.2.1
(2016-11-07) making stuff up
NEW FEATURES
- New utility function: merge.time.seriesfor
cleaning or merging time series,.
- New vignette: dispRity-simulate_dataon how to
simulate morphological characters indispRity.
- New function: sim.morphogenerates
morphological matrices.
- New function: check.morphofor checking how
“realistic” the simulate morphological matrices are.
- New utility functions: get.contrast.matrixandapply.inapplicablefunctions for morphological
matrices.
MINOR IMPROVEMENTS
- Minor updates for the graphical functions.
dispRity v0.2 (2016-06-15)
NEW FEATURES
- New utility functions: pair.plot,scale.dispRityandsort.dispRity.
- New function: space.makerfor creating some
multidimensional spaces!
- New disparity metrics: convhull.surface,convhull.volumeandhyper.volume.
- New disparity test null.test.
- New plot.dispRityarguments:densityfor controlling the polygons density andaddfor adding plots.
MINOR IMPROVEMENTS
- Many updates to the functions manual and vignettes.
- Some algorithm are now greatly improved for speed.
- Disparity can now be calculated as a distribution
(i.e. dispRity,test.dispRity,plot.dispRity, andsummary.dispRitycan now
intake one or more distribution rather than just one or more single
values of disparity; whether the data is bootstrapped or not).
- dispRitycan now intake- dispRityobjects
with level 2 disparity metrics.
- boot.matrixand- dispRitycan now run in
parallel.
- centroidsdisparity metric can now use a- centroidargument for fixing the centroid point value.
- variancesand- rangesdisparity metrics can
now intake a- k.rootargument for scaling the results.
BUG FIXES
- Minor functions corrections for specific optional arguments
combinations.
DEPRECATED AND DEFUNCT
- Removed type_discreteargument inplot.dispRityandtypeargument can now be:
- continuousdisparity curves.
- boxfor real boxplots.
- linesfor the distribution vertical lines.
- polygonfor the distribution boxes.
 
dispRity v0.1.2 (2015-12-01)
NEW FEATURES
- New function: get.dispRityfor subsampling
dispRity objects.
- New function: extract.dispRityfor extracting
disparity results.
- New function: test.dispRityfor applying tests
todispRityobjects.
- New function: make.metricfor helping creating
your very own disparity metric.
- New metric: hyper.volumefor measuring the
morphospace hyper-ellipsoid volume.
MINOR IMPROVEMENTS
- metricargument from- dispRitycan now
intake up two three functions (see- dispRity.metricand- make.metric).
- Many improved functions manuals and examples!
- Improved vignettes:
- dispRity palaeo demo a quick demo aimed more for
palaeobiologist.
- dispRity ecology demo a quick demo aimed more for
ecologists.
- dispRity manual for people that want to know the package in
details.
- dispRity metrics for explaining how the disparity metric
implementation works.
 
dispRity v0.1.1 (2015-10-08)
MINOR IMPROVEMENTS
- plot.dispRityoptions improved (rarefaction +
default).
- cust.seriescan now intake multiple factors
columns.
- Added example for ecological data.
- boot.matrix,- dispRity,- summaryand- plotnow also include observed
values.
- plotnow has an- observedoption to plot
the observed disparity.
BUG FIXES
- Fixed many error/warning messages.
DEPRECATED AND DEFUNCT
- Changed taxatoelements.
- plotoption- diversityhas been renamed- elements.
dispRity v0.1 (2015-10-01)