greatR 2.1.0
Changes
- Aligned
num_spline_params used in
compare_H1_and_H2() BIC calculation with the spline model
(5 parameters per curve).
calculate_distance() now imputes query expression on
the registered time grid with impute_query_exp_value()
(linear interpolation via stats::approxfun()); spline-based
imputation remains available as
impute_query_exp_value_from_spline() for comparison
workflows.
get_timepoint_comb_data() gains optional
cross_join_all to support four-quadrant time-point
combinations (reference-reference, query-query, etc.); ref_
/ query_ prefixes are only applied in that mode so the
default path keeps numeric time points.
calculate_distance() and
plot.dist_greatR() now handle numeric and label-formatted
time-point tables more robustly (pre-aggregation relabelling removed
from distance calculation; plot-side label stripping is
conditional).
- Added maintainer script
dev/scripts/rebuild_brapa_registration_rds.R (plus notes
under dev/) to regenerate
inst/extdata/brapa_arabidopsis_registration.rds after
registration changes.
dev/full_pipeline_example.Rmd: runnable full pipeline
(CSV → register() → summaries, curves, distances) for
smoke-testing from a source checkout.
- Added
here under Suggests for the rebuild
script; updated Config/roxygen2/version for current
{roxygen2}.
Tests
- Updated unit test expectations for
BIC_diff and
calculate_distance() to match current outputs.
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 48c943cd).
- 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 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 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 dependency.
- 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().
- Simplified parameters of
summarise_registration(),
plot_registration_results(), plot_heatmap(),
calculate_distance() to simply require results
object from register(), vastly simplifying 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 0.2.0
- Added Alex Calderwood as package co-author.
- Added vignette for optimisation process.
- Refactored
num_shifts and shift_extreme
parameters by simplified shifts parameter.
Improvements
- Improved default parameter values in exported functions.
- Added {optimization}, {purrr} as package dependencies.
- Removed {cowplot}, {ggpubr}, {ggrepel}, {Rtsne}, and {viridis} as
package dependencies.
- Cleaned up {cli} messages.
- Removed legacy AIC references, as it is no longer used.
- Updated
calculate_between_sample_distance() to use
registration_results as primary parameter instead of
mean_df, mean_df_sc, and
imputed_mean_df.
- Added warning if there is no comparable time points found using
users’ pre-defined parameters.
- Refactored
optimise_shift_extreme as
maintain_min_num_overlapping_points, properly defined and
corrected the boundary box if number overlapping points whether needed
to be maintained or not.
Bug fixes
- Check that input accessions exist in the input data in
get_approximate_stretch().
- Manually create time point sorting levels for
x_sample
and y_sample columns according in
plot_heatmap().
- Properly handle
- character in accession names in
plot_heatmap() so that time points are parsed
correctly.
New features
- Added optional parameter optimisation process using Simulated
Annealing through
optimise_registration_params().
New functions
preprocess_data() to simplify
scale_and_register_data() code and reuse logic
elsewhere.
get_best_stretch_and_shift_simplified().
get_BIC_from_registering_data().
get_boundary_box().
optimise_registration_params_single_gene().
optimise_registration_params() as wrapper of
optimise_registration_params_single_gene() for multiple
genes.
get_best_stretch_and_shift_after_optimisation().
greatR 0.1.0
- Initial release.
- Added a
NEWS.md file to track changes to the
package.