Version - 0.7.0 - 2024-09-01 - Changed all stepmatrix terms to costmatrix as this is the true general term. - Added calculate_tree_length function to get parsimony tree lengths and also generate data for use in ancestral state reconstructions. - Added permute_all_polymorphisms to generate all possible polymorphisms for a set of states. - Added permute_all_uncertainties to generate all possible uncertainties for a set of states. - Added make_costmatrix to automate building common costmatrix types (ordered, unordered, irreversible, Dollo, stratigraphy). - Fixed broken links in convert_adjacency_matrix_to_costmatrix. - Changed character types from abbreviated versions (cont, ord and unord) to full names (continuous, ordered and unordered) across package. - Added new class of "costMatrix" to package. - Added check_costMatrix, is.costMatrix, and print.costMatrix functions to support new class. - Added find_shortest_costmatrix_path function to find shortest state-to-state path from a costmatrix. - Added reconstruct_ancestral_states to generate parsimony-based ancestral state estimates. - Added find_costmatrix_minimum_span function to find minimum cost a character could have on a tree. - Added find_unique_trees function as a faster alternative to ape::unique.multiPhylo for isolating just unique topologies from a larger set. - Added calculate_kardashian_index to calculate the Kardashian Index. - Fixed some typos and manual issues in find_unique_trees. - Fixed bug in plot_rates_time where partitions appeared in wrong place. - Added is_graph_connected to check whether a graph is connected. - Added split_out_subgraphs to generate separate adjacency matrices for every connected component of a graph. - Added permute_graph_splits to permute all possible ways to remove edges from a connected graph. - Added convert_costmatrix_to_stategraph to find the minimal directed graph representation of a costmatrix. - Added convert_stategraph_to_costmatrix function as reverse of convert_costmatrix_to_stategraph. - Added option to add body size landscape to plot_morphospace. - Added count_cherries function to count number of cherries on a given phylogenetic tree or set of trees. - Added fix_costmatrix function to ensure all state-to-state transtion costs are self-consistent. - Added permute_treeshapes function to permute all unique treeshapes (i.e., all rooted unlabelled multifurcating trees). - Added make_labels function to generate N unique text labels. - Added permute_tipstates to permute all possible tip states given a specific tree. - Added permute_restricted_compositions (initallly a subfunction of permute_tipstates) to permute all restricted compositions (e.g., for permuting tip states on the star tree). - Added permute_all_treeshape_labellings function to generate (permute) all labelled trees from a treeshape and label set. - Added permute_costmatrices function to generate all valid costmatrices from a restricted set of states and cost values. - Added permute_connected_graphs function to generate all connected graphs for a particular vertex count. - Added add_polymorphisms_to_costmatrix function to add polymorphisms to costmatrices and offering multiple approaches to do so. - Added add_uncertainties_to_costmatrix function to add uncertainties to costmatrices using the minimum cost rule. - Fixed bug with write_nexus_matrix where costmatrices were not writing character symbols correctly. - Added Claddis logo to manual and README. - Fixed bug in how read_nexus_matrix imports costmatrices from NEXUS format. - Added new stateGraph class and supporting functions print.stateGraph and XXXXX. - Added classify_costmatrix function to classify costmatrix character into one of twelve distinct types. - Added find_stategraph_minimum_span function to find a minimum spanning tree of a stategraph. - Renamed compactify_matrix as compactify_cladistic_matrix to distiguish between other matrix types (e.g., costmatrices). - Added calculate_g function to calculate the maximum possible steps for a cladistic character. - Fixed bug with read_nexus_matrix which previously errored where more than 26 costmatrices were specified. - Added Jen Hoyal Cuthill to package authors. - Added calculate_gmax function to calculate the maximum possible steps for a cladistic character under any state frequency. - Fixed bug in how estimate_ancestral_states was estimating ancestral states for continuous characters. - Fixed bug in safe_taxonomic_reduction where only one character scored for a taxon. - Added check_stateGraph and is.stateGraph to support stateGraph class. - Fixed bug with calculate_MPD and calculate_WMPD where NAs were confounding calculation. - Added estimate_squared_change_ancestors function to implement squared change parsimony. Version - 0.6.6 - 2021-02-21 - Added check_cladisticMatrix and is.cladisticMatrix functions to support cladisticMatrix class. - Changed class of assign_taxa_to_bins output to taxonGroups. - Fixed bug in prune_cladistic_matrix where blocks were not being renamed correctly. - Upped limit for number of step matrices allowed (from 26 to 702). - Fixed minor bug when reading stepmatrices with read_nexus_matrix. - Added locate_bracket_positions function, to locate positions of any kind of brackets in a text string. - Added convert_state_tree_to_adjacency_matrix function, to open up means for dealing with character state trees in future. - Added convert_adjacency_matrix_to_stepmatrix function, to allow conversion of character state trees to step matrices. Version - 0.6.5 - 2020-08-11 - Pushing new timeBins class through Claddis. - Adding print.timeBins to further support timeBins class. - Renamed check_time_bins to check_timeBins. - Added weights output to calculate_morphological_distances to enable weighted mean pairwise distances. - Added calculate_WMPD function to calculate weighted mean pairwise distances. - Added calculate_MPD function to calculate mean pairwise distances. - Added check_taxonGroups, is.taxonGroups, and print.taxonGroups to support a taxonGroups class. - Pushing new taxonGroups class through Claddis. Version - 0.6.4 - 2020-08-10 - Removed redundant Claddis:: calls from estimate_ancestral_states (no noticeable change to user). Thanks to Phil Novack-Gottshall for the heads up. - Added new drop_time_tip function to safely prune tips from a time-scaled tree. - Replaced all drop.tip calls with drop_time_tip across package (no noticeable change to users). - Added new timeBins class for time bins objects. - Added is.timeBins function to check timeBins class objects are formatted in a valid way. - Added find_time_bin_midpoints function to get midpoints of time bins from a timeBins object. Version - 0.6.3 - 2020-14-09 - Starting to add "cladisticMatrix" class to functions (no change to users yet). - Added checks that cladistic_matrix inputs are of right class (no noticeable change to users). - Removed some weird dash characters from references in help files (no noticeable change to users). - Added print.cladisticMatrix that will cause objects of class "cladisticMatrix" to display a more useful summary of the object than the full list given previously. - Made output of read_nexus_matrix and build_cladistic_matrix no longer invisible (now the output will appear more compact if printed to screen). - Added new trim_marginal_whitespace function to replace defunct gdata::trim function (no noticeable change for users). - Removed gdata from imports (no noticeable chage to users). - Fixed bug in compactify_matrix that was stripping out taxon names. - Updated read_nexus_matrix to use new trim_marginal_whitespace function. - Fixed bug with reading symbols for continuous characters in read_nexus_matrix. Version - 0.6.2 - 2020-30-08 - Fixed bug in assign_taxa_to_bins where no taxa were being returned because a names field was blank. - Tweaked plotting of points in plot_morphospace_stack to include a black outline to make them more visible. Version - 0.6.1 - 2020-25-08 - Major upgrades to basic morphospace plotting function, including more options, cleaner plotting, better manual and examples. - Added rgb to imports list (no change to user). - Major upgrades to multiple morphospace function, including applying a universal scale so aspect ratio is preserved across all plots, allowing plotting of a group legend and betetr example and manual sections. - Addition of new function to assign taxa to a series of time bins. This allows automated assignment to temporal groups for use with the disparity plotting functions. - Added see also sections to the various disparity plotting functions to better communicate plotting options. - Completely rewritten morphospace stacked plot function, including renaming many input values to standardise this with other disparity plotting functions. New options include plotting of crosshairs, tickmarks, gridcells, pillars, and a group legend, as well as options to overlap or space out each platform and to choose the point size. Improvements include better convex hull plotting, a better functioning "cushion" option around points, better platform naming options, and points are now plotted "sheared" along with everything else, to make overall plotting style consistent. - Made some tweaks to chronophylomorphospace plotting function to bring it more in line with other disparity plotting functions, including renaming variables and adding option to assign tips to different groups and colour them accordingly as well as add a legend depicting this. - Successfully submitted version to CRAN. Version - 0.6.0 - 2020-12-08 - Fixed bug in write to TNT function that would have thrown an error previously. - Finished renaming subvariables and subfunctions to meet tidyverse style guide formatting. - Ran styler on code. - Fixed example in edge length binning function so it makes more sense (no change to users). - Fixed bug in Dollo mapping function that would have thrown an error previously. - Fixed stochastic character mapping function manual which incorrectly listed root states output which is now encoded in changes matrix instead (as edge zero, subtending the whole tree). - Some minor tweaks to improve the character change plotting function. - Completed basic manual for ancestral state estimation function. - Made better examples for rate visualisation functions. - Fixed minor bug in write to NEXUS function that was adding weird spaces. - Fixed minor bug in matrix pruning function to ensure blocks are consistently numbered. - Added example and proper help file for safe taxonomic reinsertion function. - Fixed bug in rates test function that had partitions in wrong order. - Moved slower running examples out of R CMD check with \donttest{} (no change to users). Version - 0.5.6 - 2020-05-08 - Added testthat to Claddis (no change to users). - Built testthat file for bin_changes function. - Built testthat file for find_mrca function. - Built testthat file for find_linked_edges function. - Multiple further tweaks to variable names and code styling (again, users are advised to wait until version 0.6.x for this to stabilise). Version - 0.5.5 - 2020-03-08 - Renamed weights variable to character_weights for matrix objects to avoid clashes with the weights() function in R. Some users may theoretically be affected by this, but given the time window this existed for was so short this is incredibly unlikely. - Added ape:: to rtree calls in examples (no change to users). - Added proper examples to rate visualisation functions. - Ran code through styler (no change to users). - Readded .Rbuildignore file (no change to users). - Continued updating of variable names to get codebase to fit tidyverse style (users are advised to wait until version 0.6.x for this to stabilise). - Moving rgl from suggests back to imports (no change to users). Version - 0.5.4 - 2020-02-08 - Applied styler across package (no change to user). - Added CHANGELOG (this file; no change to user). - Added badges to GitHub README (no change to user). Version - 0.5.3 - 2020-31-07 - Added R version dependency (>= 3.5.0) to Claddis. - Renaming of some Claddis variables to meet tidyverse style guide (may require users to update scripts that call Claddis). Version - 0.5.2 - 2020-31-07 - Renaming of some Claddis functions and variables to meet tidyverse style guide (may require users to update scripts that call Claddis). Version - 0.5.1 - 2020-31-07 - Renaming of some Claddis functions and variables to meet tidyverse style guide (may require users to update scripts that call Claddis). Version - 0.5.0 - 2020-29-07 - Complete renaming of Claddis functions to meet tidyverse style guide (will break any old scripts that call Claddis). Version - 0.4.10 - 2020-28-07 - Starting renaming of Claddis functions to apply tidyverse style guide (will break any old scripts that call Claddis). - Fixing error that was stopping the Claddis manual from building correctly. - Fixing travis CI build issue with rgl (no change to user). Version - 0.4.9 - 2020-25-07 - Added new function for visualising character-partition rate tests. - Added grDevices::hcl.colors and graphics::legend to imports (no chaneg to user). Version - 0.4.8 - 2020-25-07 - Added new function for visualising tree-partition (edges or clades) rate tests. - Added tree to rate function output to allow visualisation (no change to user). Version - 0.4.7 - 2020-22-07 - Fixed bug where uncorrected PCoA values were being used by disparity plotting functions (bug reported by Phil Jardine). Users should double check plots made prior to this if they were using a correction for negative eigenvalues. - Removed unnecessary names() calls inside functions (no change to user except potentially an extremely minor speeed increase). Version - 0.4.6 - 2020-20-07 - Added new function for visualising time bin-partition rate tests. - Added geoscale to dependencies (no change to user). Version - 0.4.5 - 2020-19-07 - Added time bins to rate output in advance of adding new rate visualisation functions (no change to user). - Added partitions tested to rate output in advance of adding new rate visualisation functions (no change to user). Version - 0.4.4 - 2020-18-07 - Added full partitions to rate output in advance of adding new rate visualisation functions (no change to user). Version - 0.4.3 - 2020-16-07 - Added option to allow all missing states for individual characters to ancestral state estimation function. This may mean some users can run files that previously would have thrown an error (requested by Phil Novack-Gottshall and Min Wang). - Added explicit error message to ancestral states function if all missing value character(s) are found but not explicitly allowed by the user. Version - 0.4.2 - 2020-08-07 - Fixed bug in AIC option in rates function. It is extremely unlikely this will affect any users as this option has yet to be publicised but would technically render any AIC analyses made prior to version 0.4.2 invalid. - Added AICc to rates function output. Version - 0.4.1 - 2020-01-07 - Added new function to permute all contiguous partitions of a series of time bins to be used by rates function. - Added gitignore file (no change to users). - Allowed invariant characters to be used in ancestral state estimation function (requested by Min Wang). May mean some users can run data sets that previously would have thrown an error. - Complete rewriting of rates function manual. The new options in this function (especially the partitioning and AIC) should now be properly explained. Version - 0.4.0 - 2019-29-12 - Added AIC option to rates function to allow more hypothesis-focused testing, instead of the more exploratory approaches that users were restricted to previously. - Various minor corrections and additions to the package manual, including formatting of references. - Added additional input checks to ancestral state function. Users may notice more informative error messages. - Keywords removed from package per latest CRAN guidance (no change to users). - Minor invisible checks made to pass R CMD check (no change to users). Thanks to Dave Bapst for his help on this. Version - 0.3.4 - 2019-02-12 - Successfully submitted version to CRAN. - Added new function to align character-taxon blocks when building NEXUS files. - Removed mult option from TNT analysis block when writing TNT matrices. This may have minor effects on any users who were actually employing this, but in my experience the extra mult searches were not turning up shorter trees but were consuming time. - Fixed bug in assigning weights to continuous characters being read in from NEXUS files where previously invariant characters were assigned a weight of infinity. These are now set at one. Users may have noticed this fixes errors that would have been triggered previously if using such data sets for rates or disparity analysis. - Fixed a bug when writing multi-block matrices to file where weights are assigned. This is unlikely to have affected many users as a combination of multiple blocks (e.g., discrete and continuous) and differential weighting schemes are rare. - Fixed a bug when writing step matrices to NEXUS format. Again, step matrices are rarely employed and so it is unlikely many users were affected by this, but those that did parse datasets with step matrices through Claddis should double-check these. - Fixed bug wit writing zero weight characters to file in TNT. Because TNT does not allow weights below 0.5 these are turned "off" instead ( [ -> ] ). Such datasets would previously have thrown an error in TNT. - Fixed bugs in the build morphological matrix function. These are mostly minor and will not have been noticed by most users. - Renamed weights variable to Weights in matrix formatting to avoid potential clashes with weights() function. Some users may notice an issue if they were explicitly subsetting matrices by their weights. - Added option to allow duplicate taxon names when building a new character-taxon matrix in R. There are edge cases where this might be desired but generally this should be avoided and will still throw an error by default. - Fixed bug where ancestral state estimation options were not being used by the PCoA function. This will have affected any users that used the PCoA wrapper function but not those that called the ancestral state estimation function directly. Users should double-check their data make sense. - Fixed bug where root time was not being corrected when using the distacne matrix trimming function. This will only have affected users that were trimming distance matrices with trees such that the root age should have been adjusted by removing all taxa from one half of the basal split and those taxa were the oldest representatives of the clade. - Fixed bug where edge cases of the morphological distances function were converting lists into matrices. Previously this would have thrown an error for users. - Improved speed of compactify matrix function. Version - 0.3.3 - 2019-14-05 - Added collapsing of duplicate taxa to compactify matrix function. - Added optional message informing user if compactification is not possible to compactify matrix function. Version - 0.3.2 - 2019-08-04 - Fixed bug in HSJ option of morphological distances function (thanks to Selina Cole and Melanie Hopkins for reporting). - Very minor speed up to morphological distances function. Version - 0.3.1 - 2019-07-04 - Fixed bug in morphological distances function where inapplicable and polymorphism options may have clashed. Unlikely to affect many users as polymorphism options are not widely implemented or publicised yet. Version - 0.3.0 - 2019-20-02 - Added third decimal to version number to better record incremental changes (compare below to above). - Successfully submitted version to CRAN. - Added much more informative package description including dois to publications where implemented methods were introduced (part of CRAN requested updates). - Added full list of package authors to description. - Various tweaks to dependencies to make package ready for CRAN submission (many thanks to Dave Bapst for his help). - Added Travis CI to Claddis (no change for users). - Fixed bug when pruning characters with matrix pruning function. - Major refactoring of stochastic character mapping function. This is still not considered "usable" and so users should not be affected. - Updated character changes plotting function to use new rates function output format. - Standardised roxygen manual formatting (no visible change to users). - Updated PCoA function to use new internal options. - Added HSJ option to morphological distances function to better deal with inapplicable characters. - Added new options for polymorphic characters in morpholoigcal distances function. - Added option for continuous characters to be used by rates function by internally converting them into discrete gap-weighted characters instead. - Added Bonferroni to rates function. - Added inferred character changes to rates function output. - Refactored rates function to be hypothesis-focused (inputs defined as data partitions) as opposed to exploratoy-focused (no partition options). This is a complete overhaul of the way rates are tested in Claddis and enables new types of test (e.g., characters) as well as use of AIC instead of likelihood ratio tests. Previous types of test are still possible, but this dramatically expands the questions users can ask of their data. - Added gitignore to GitHub repository (no changes to user). - Added new GED options to morphological distances function. This implements the correct Wills' version of GED as well as a new hybrid form. The issues with the legacy verion were discussed in Lehmann et al. (2019; https://doi.org/10.1111/pala.12430). - Fixed bug with morphological dustances function when polymorphisms have more than two states. This may affect some users and they should check older data sets for any issues. - Added check for explicit ordering to read NEXUS function. Note that other NEXUS implementations allow ordering to be undefined, but this is considered unsafe here as ordering will affect both disparity and rates analysis and there is no safe default assumption. - Fixed bug where morphological distances function was not properly recognising inapplicable states. - Adding proper :: to dependent function calls to update Claddis to current CRAN standards. Users should not notice anything here, but this is an important advance to avoid potential issues with duplicate function names across packages. Version - 0.3 - 2018-16-10 - Complete overhaul of cladistic matrix format, allowing multiple blocks, continuous characters, DNA and other data types as well as explicit coding of polymorphisms and uncertainties as well as inapplicables. This new format is intended to open up the possible tests and options that can be performed with Claddis but also simply better implement what is already available in the NEXUS format. - Complete overhaul of morphological distances function to incorporate the faster version first produced by Thomas Guillerme. Users should mostly notice a huge speed increase. - Removed fast version of morphological distances function now this is redundant with the updated version. - Added new function to calculate phylogenetic character completeness (requested by Dan Cashmore). - Added Day (2016) example file to showcase continuous character options in package functions. - Internal speed up to compactify matrix function. - Fixed bug when reading header text in read NEXUS function. - Added new matrix writing functions (NEXUS and TNT) to incorporate new matrix format, e.g., allowing writing of DNA or continuous characters to file. - Internal restyling of code (no chaneg to users). - Added safe taxonomic reinsertion function. - Refactored safe taxonomic reduction function to make it run much faster. - Updated roxygen to 6.0.1 (no change to users). - Fixed a series of minor bugs with formatting of matrices. - Added threshold option to ancestral state estimation function (requested by Thomas Guillerme). - Added step matrices to matrix format in advance of implementing options for using these in disparity and rates analyses. - Added function to make morphological matrices inside R, e.g., to allow for use of simulated as opposed to empirical data. - Fixed bug in morphological distances function where GED values were not taking into account differentially weighted data (reported by Thomas Guillerme). - Fixed minor bugs in read NEXUS function, for example, where a taxon name includes the string "matrix". This would have thrown errors previously. - Fixed bug in output from safe taxonomic reduction function that stops matrices being converted to vectors (reported by Dave Bapst). - Removed random seed file that could corrupt stochastic functions (reported by Dave Bapst). This should not have caused problems as no core functions were stochastic. - Updated imports from list to meet CRAN guidelines (no change to users). Version - 0.2 - 2015-02-08 - Added Dollo stochastic character map function used in Tarver et al. (2018; https://doi.org/10.1093/gbe/evy096). - Added function to prune matrices. - Fixed bug in reading wieghts in read NEXUS function. - Added compactify and matrix pruning functions. - Added various disparity plotting functions (co-authored with Emma Sherratt). - Added functions to write matrices to NEXUS and TNT formats. - Added check for rogue symbols in read NEXUS function. - Added PCoA wrapper function. - Updated description with first package publication. - Added citation file to package. - Fixed bug in ancestral state estimation function which unnecessarily duplicated a line (reported by Thomas Guillerme). Users should only notice a speed improvement. - Converted entire package to roxygen format (no change to users). - Updated internal code to deal with phytools stochastic character map output that initially broke CRAN release version. - Added Thomas Guillerme's fast morphological distances function. - Adding import from calls to package to meet CRAN requirements. Version - 0.1 - 2015-27-04 - Successfully uploaded to CRAN to coincide with package publication (Lloyd 2016; https://doi.org/10.1111/bij.12746). - Added stochastic character map function in advance of allowing more than simply the parsimonious option for counting changes in rates function. - Updated description file to meet CRAN requirements. - Added stochastic character mapping function. - Added Michaux 1989 data set as small example data set that will run fast. - Added minimum spanning tree function. - Added fix root time function. - Added function to find linked edges. - Added function to bin changes by time. - Added function to count edge lengths in a time bin. - Added function to match edges between trees. - Added package readme file to GitHub. - Built initial package including distance and rates functions.