Skip to content

Releases: ruthkr/greatR

greatR v2.0.0

20 May 20:56
Compare
Choose a tag to compare

greatR 2.0.0

  • Added {patchwork} as a dependency.
  • Updated {greatR} logo.
  • Updated default optimisation_method in register() to be "lbfgsb" (LBFSG-B) instead of "nm" (Nelder-Mead).
  • Added sample SOC1 arabidopsis_SOC1_data.csv and brapa_SOC1_data.csv extdata.
  • Refactored optimise_registration_parameters argument in register() to use_optimisation.
  • Updated register() to return object of S3 class res_greatR.
  • Updated calculate_distance() to return object of S3 class dist_greatR.
  • Refactored summarise_registration() as summary.res_greatR() S3 method.

Improvements

  • Deprecate use of time_delta variable in registration process.
  • Added fun_args (a list of arguments used when calling the function) in register() results.
  • Updated summary.res_greatR() to return NA instead of [NA, NA] when all genes are non-registered.
  • Added reg_params (table containing distribution of registration parameters) to results list in summary.res_greatR() method.
  • Simplified calc_overlapping_percent() calculation.
  • Take into consideration overlapping_percent when applying manual registration.
  • Updated logic of calc_variance() for data with no replicates to consider expression_value.
  • Updated get_stretch_search_space_limits() and get_shift_search_space_limits() to exclude unexplorable regions in search space.
  • Improved calculate_distance() and aux get_timepoint_comb_*_data() functions to eliminate column selection and renaming inside lapply() calls, reducing execution time by up to 25%.
  • Added type ("registered" or "all") and genes_list arguments to calculate_distance() to filter genes.
  • Added new unit tests.
  • Updated unit tests, and added S3 class checks where apropriate.
  • Updated vignettes and README diagrams and figures.
  • Updated vignettes with additional examples, comments on arguments, and full coverage of all plot() methods.

Bug fixes

  • Fixed get_shift_search_space_limits() to adjust shift space limits accordingly to removal of time_delta variable (see 48c943c).
  • Fixed default overlapping_percent = 0.5 (instead of 50) in register_manually().
  • Fixed get_stretch_search_space_limits() to correctly determine lower and upper limits when single stretch value is provided.
  • Fixed issue in get_shift_search_space_limits() where range variables were not available when calc_mode == "bound".

New functions

  • bind_results() auxiliary function to merge results from register().
  • theme_greatR() function and greatR_palettes list.
  • transform_input() S3 generic to accept different types of input in register().
  • plot.res_greatR() S3 method to replace plot_registration_results().
  • plot.dist_greatR() S3 method to replace plot_heatmap().
  • plot.summary.res_greatR() S3 method inspired by WVPlots::ScatterHistC().

greatR v1.1.0

25 Mar 19:53
Compare
Choose a tag to compare

greatR 1.1.0

  • Added {furrr} and {future} as dependencies.
  • Added num_cores parameter to register() to allow users to run registration in parallel.
  • Added exp_sd parameter to register() to allow users to manually set up experimental gene expression variance.
  • Updated scaling_method parameter in register() and scale_data() to allow no scaling ("none", default), Z-score scaling ("z-score"), and min-max scaling ("min-max"), and updated unit tests accordingly.

Improvements

  • Updated register() to perform 3 sequential registrations when using Nelder-Mead, this improves the results of optimal stretch and shift parameters.
  • Updated calc_loglik() to use sigma_squared in every time point in the sum.
  • Updated scaled_data() and preprocess_data() to return all_data object only, instead of a list() containing all_data.
  • Updated compare_H1_and_H2() to return BIC_diff column (BIC_combined - BIC_separate), instead of BIC_combined and BIC_separate on their own.
  • Updated explore_manual_search_space() to use BIC_diff instead of BIC_combined to calculate best_params from model_comparison table.
  • Updated register() to perform 3 sequential registrations when using Nelder-Mead, this improves the results of optimal stretch and shift parameters. This may be reverted by tweaking neldermead() parameters to ensure correct convergence.
  • Added optional stretch_init and shift_init to get_search_space_limits(), and updated optimise() to allow for different space_lims calculation settings: automatic, given boundary box, and given initial coords (new).
  • Removed unused mean_data calculation from preprocess_data() and argument from scale_data().
  • Moved "Will process N genes" message from register() to preprocess_data() after running filter_*() functions.
  • Ensure results_list$data is arranged/ordered correctly in register().
  • Updated get_H*_model_curves() functions to ensure model curves are smooth.
  • Updated parse_gene_facets() to display BIC_diff in facet strips.
  • Added plot_mean_data parameter to plot_registration_results().
  • Updated overlapping_percent parameter in register() so it goes from 0 to 100 (it's later normalised in the function to avoid breakages down the line).
  • Added scaling_method as an attribute in data results from register(), this is used in plot_registration_results() to build the y-axis label according the the scaling method used.
  • Updated brapa_arabidopsis_registration.rds file with new pipeline results.
  • Split get_search_space_limits() into separate aux functions for stretch and shift, which allows more stretch and shift input combinations.
  • Updated validate_params(..., registration_type = "optimisation") to allow more stretch and shift input combinations.

Bug fixes

  • Improved get_timepoint_comb_original_data() and get_timepoint_comb_registered_data() to perform cross_join() on a single gene_id at a time using lapply(), this fixes "Error: vector memory exhausted (limit reached?)" error.
  • Updated match_names() to do double setdiff() to ensure name matching is done two ways, and updated corresponding unit test.

New functions

  • filter_incomplete_accession_pairs() to filter out genes that are missing one accession.
  • calc_variance() to preprocess data variance inside preprocess_data() instead of calc_loglik().
  • Aux register_single_gene_*() functions inside register() to simplify and generalise the pipeline for parallel registration.

greatR v1.0.0

19 Jul 21:24
Compare
Choose a tag to compare

greatR 1.0.0

  • Rewrote registration pipeline from scratch, deprecating unnecessary, and redundant auxiliary functions.
  • Added L-BFGS-B and Nelder-Mead (now default) optimisation methods to {greatR}.
  • Switched to manual calculation of log likelihood via calc_loglik() instead of stats::logLik().
  • Reduced computation time up to 1000 times, (x30 speed-up from package rewrite, and x35 speed-up from switching default optimisation method).
  • Removed {dplyr}, {magrittr}, {purrr}, {rlang}, and {stringr} as package dependencies.
  • Added {neldermead} as a package depedency.
  • Updated list of exported functions:
    • register()
    • summarise_registration()
    • get_approximate_stretch()
    • plot_registration_results()
    • plot_heatmap()
    • calculate_distance()

Improvements

  • Simplified parameters of main register() function, and added scaling_method.
  • Simplified structure of output object of register().
  • Simplfied parameters of summarise_registration(), plot_registration_results(), plot_heatmap(), calculate_distance() to simply require results object from register(), vastly simplifing usage.
  • Improved messages, errors, and progress indicators with {cli}.
  • Added correct pluralisation in {cli} messages.
  • Rewrote unit tests to use {data.table} exclusively for data manipulation.
  • Added unit tests for calc_loglik_H1(), calc_loglik_H2(), calc_overlapping_percent(), calculate_distance(), cross_join(), get_search_space_limits_from_params(), get_search_space_limits(), objective_fun(), optimise(), plot_heatmap(), plot_registration_results(), preprocess_data(), register_manually(), register(), summary_registration(), validate_params().

Bug fixes

  • Fixed match_names() call when validating accession names in register()
  • Fixed use of deprecated aes_string() by parsing timepoint_var using !!ggplot2::sym() call.
  • Fixed preds left join in plot_registration_results().
  • Fixed issue in plot_registration_results() not working when all genes are unregistered with type = "registered".
  • Fixed calculation of time_delta in preprocess_data() to ensure it's grouped by gene_id and accession (not just accession).

greatR v0.2.0

26 Jun 15:51
Compare
Choose a tag to compare

Full Changelog: v0.1.0...v0.2.0

First stable release

12 Jan 23:12
Compare
Choose a tag to compare