teal

Exploratory Web Apps for Analyzing Clinical Trial Data

OTHER License

Downloads
878
Stars
142
Committers
75

Bot releases are visible (Hide)

teal - v0.14.0 Latest Release

Published by insights-engineering-bot about 1 year ago

New features

  • Enabled module specific filter panel. See module_specific in teal::teal_slices documentation.
  • Enabled capturing and resetting application filter state with snapshots. See ?snapshot.
  • Enabled reporter_previewer_module to customize default values through srv_args.
  • Enabled passing own reporter_previewer_module in a list of modules to override default one.

Breaking changes

  • Specifying filter argument in teal::init requires teal_slices object now. Details in documentation of teal::init.
  • Soft deprecated filters argument in module and replaced it with datanames. Details in documentation of teal::module

Miscellaneous

  • Removed scda package dependency from examples.

What's Changed

Full Changelog: https://github.com/insightsengineering/teal/compare/v0.13.0...v0.14.0

teal - v0.13.0

Published by github-actions[bot] over 1 year ago

Breaking changes

  • The use of datasets argument in modules has been deprecated and will be removed in a future release. Please use data argument instead. data is of type tdata; see "Creating custom modules" vignettes and function documentation of teal::new_tdata for further details.
  • Due to deprecation of chunks in teal.code, the teal framework now uses their replacement (qenv) instead. The documentation in teal has been updated to reflect this and custom modules written with chunks should be updated to use qenv.
  • Due to deprecation of chunks in teal.code, get_rcode, get_rcode_srv, and get_rcode_ui have been removed.

New features

  • Added the validate_inputs function that transfers input validation messages to app output.
  • modules argument of init accepts teal_module type of object. There is no need to wrap up a single module in modules() or list().
  • Updated module_nested_tabs so that only active modules are calculated in a teal app.

Miscellaneous

  • Updated examples to use scda.2022.
  • Added R session information into a link in the footer of teal applications.
  • Added data hashing step using rlang instead of digest package to calculate the hash (which has been moved from teal.data and teal.slice). There is now an explicit hashing check in the reproducible code output.
  • Removed deprecated functions: root_modules, default_filter, bookmarkableShinyApp, as well as deprecated logging mechanism, including the functions log_app_usage and .log.
  • Updated the "Teal and Bootstrap Themes" vignette to provide more details customizing a teal app with bslib::run_with_themer.
  • Removed outdated diagram from srv_nested_tabs documentation.
  • Changed default values of header and footer arguments in init to empty text.

What's Changed

New Contributors

Full Changelog: https://github.com/insightsengineering/teal/compare/v0.12.0...v0.13.0

teal - v0.12.0

Published by github-actions[bot] about 2 years ago

New features

  • Added the support for custom bslib bootstrap themes in teal::init apps, please read more in the new teal-bs-themes vignette.

Enhancements

  • Added the option to choose which variables can be filtered in the filter panel by using the filterable attributes for the per-dataset lists in the filter argument of init.
  • Updated teal_module to have data argument which receives a list of reactive filter data with "code" and "join_keys" attributes.
  • Updated teal_module to have filter_panel_api argument which receives a FilterPanelAPI object.
  • Updated the internals of module_teal to reflect changes in teal.slice.
  • Updated vignettes and README content.

Breaking changes

  • Updated teal_module to no longer receive datasets object in the ... argument. In order to use datasets in the teal_module please specify datasets explicitly.
  • Deprecated merge_expression argument in get_rcode_srv function and removed it in get_rcode function.
  • Deprecated session argument in get_rcode function.

Miscellaneous

  • Enhanced the burger button so it is disabled when the filter panel is not used.

What's Changed

Full Changelog: https://github.com/insightsengineering/teal/compare/v0.11.1...v0.12.0

teal - v0.11.1

Published by github-actions[bot] over 2 years ago

Enhancements

  • Added new function reporter_previewer_module to wrap the teal.reporter package previewer functionality as a teal module.
  • Updated teal to support modules which include reporting. If any module which supports reporting is included then a reporter_previewer_module is included.
  • Added default arguments to module() and the server argument is now a function where the second argument can be ... or datasets.

Breaking changes

  • Deprecated bookmarkableShinyApp. In future releases the teal framework will stop supporting shiny bookmarking (which has not officially been supported); it may be officially supported in the future. Note the filter panel in teal.slice retains its ability to save and restore its state if used in a standalone shiny app with bookmarking.

Miscellaneous

  • Added a template to the pkgdown configuration.
  • Removed unneeded shinytest app tests.
  • Updated package authors.
  • Added package vignettes.
teal - v0.10.1

Published by cicdguy over 2 years ago

Breaking changes

  • Changed the HTML identifiers of teal modules - now each nested module receives its own shiny namespace.
  • Deprecated all functions related to connectors that have been moved to their own separate packages.
  • Removed raw_dataset, raw_dataset_connector, named_dataset, named_dataset_file, named_dataset_connector, relational_dataset, relational_dataset_file, relational_dataset_connector, key, as_cdisc, as_cdisc_relational.
  • Removed rcd_connection and rcd_data; scda_dataset_connectors can be passed into cdisc_data and teal_data directly.
  • Replaced rcd_dataset_connector and rcd_cdisc_dataset_connector with scda_dataset_connector and scda_cdisc_dataset_connector respectively.
  • Renamed teal_show_js_log option into teal.show_js_log to match options naming convention.
  • Removed %is_in% and stop_shiny internal utility functions.

New features

Logging

  • Added support for logging using the logger package.
  • Added a new function register_logger, which registers a logger in a given namespace.
  • Added trace and info levels log messages to the teal framework.
  • Added pid and shiny session token into footnote so app developers can identify logs for apps.

Other

  • Added print methods to the DatasetConnector, RelationalData, RelationalDataconnector and JoinKeys classes and added input validation to the implementation of the print method that was already in the Dataset object.

  • Added public facing constructor functions for CDISCDataConnector, RelationalDataConnector, and DataConnection classes.

  • Modified data_extract_spec to allow both the filter and select parameters to be NULL, which results in the data_extract_ui acting as if a filter_spec with all variables as possible choices had been supplied as the filter argument and a select_spec with the multiple parameter set to TRUE had been supplied as the select argument.

  • Added support of the full screen for a module when the filters argument is equal NULL.

  • Added support for shiny::moduleServer passed to the server parameter of teal::module.

  • Added teal.threshold_slider_vs_checkboxgroup as an R option: if a categorical variable has more than this number of unique values, the filter panel uses a drop-down select input instead of a checkbox group.

  • Extended the FilteredData API to allow managing filter states programmatically and not only from the UI of a teal application.

  • Hid the buttons to remove filters from all datasets and each dataset when there are no active filters.

  • Updated init to accept RelationalData, data.frame, MultiAssayExperiment, Dataset, DatasetConnector, list or a function returning a named list as data input.

Bug fixes

  • choices_selected now correctly removes duplicates from the array passed to its choices parameter.
  • Fixed call returned by FilterState in case of using MultiAssayExperiment::subsetByColData. Now single condition for variable containing NA values is !is.na(var) & var == <condition>.
  • Fixed data loading of DatasetConnector being dependent on other Dataset or DatasetConnector objects.
  • Fixed restoring a bookmarked filter state of teal application.
  • Refactored module_nested_tabs to fix the issue with the filter panel not reacting to an input change in a nested module.
  • updateOptionalSelectInput no longer sets input to NULL when logical value is passed to selected.
  • Fixed setting JoinKeys when key name between two Dataset object differs.
  • Fixed printing of the JavaScript console logs to the R console when teal.show_js_log = TRUE.

Miscellaneous

  • Soft-deprecate mae_dataset() in favor of more general dataset() constructor.
  • Added a vignette describing the modifications to teal applications users can apply using R options.
  • Added default values to the label argument of select_spec and filter_spec.
  • Added validation to FilteredDataset::get_data to accept logical input only.
  • Changed references to outdated functions of teal.devel in the documentation.
  • Introduced a Teal prefix to all public R6 classes to avoid name collisions with other packages.
  • Removed dependency on utils.nest and replaced its functionality in teal with equivalents from the checkmate package and base R.
  • Replaced the old shiny server functions of DataConnection, RelationalDataConnector, DatasetConnector, and RelationalData with the shiny::moduleServer equivalents.
  • Running a teal application via ui_teal_with_splash and srv_teal_with_splash is now no longer recommended because it doesn't support new features (e.g. logging, bookmarking). Use init instead.
  • Updated the R version requirement to >= 4.0.
  • Updated the "filter panel collapse" icon to remove warnings when using shiny version >= 1.7.
  • Removed some of the non-exported, debugging modules.
  • Updated the footer tag style to be less visible.
teal - v0.10.0

Published by insights-engineering-bot about 3 years ago

New features

  • Allow passing MultiAssayExperiment to the teal::init using mae_dataset function or through
    the connectors.
  • Refactored filter panel to use MultiAssayExperiment objects. Filters can be set on a subject level
    (colData of MAE object) and on a experiment level (colData and rowData of an assay).
  • Added cdse_dataset_connector to create delayed data objects from CDSE.
  • Added datasetdb_dataset_connector to create delayed data objects from DataSetDB.
  • Added ricepass_connection to create delayed data objects from entimICE via ricepass.
  • Refactor of the filter panel:
    • Simplified setting of initial filter state without need to specify "choices" or "range" named list element depending on the variable class.
    • Dataset type determines an appearance and a functionality of related filters and filters summary.
    • Datasets are passed (by reference) from DDL to FilteredData skipping extracting data and
      their attributes.
    • Redesigned variable filter labels in "Active Filter Variables" panel.
    • Fully testable server functions.

Bug fixes

  • Fixed the bug caused by calling mutate_dataset multiple times on the same DatasetConnector or Dataset object.
  • Fixed a bug that caused the output of get_code function to not reproduce its raw data set.
  • Changed filter_spec to allow no variable selection upon app initialization, where the first possible value was previously selected.

Enhancements

  • modules parameter of teal::init function can also receive a list except root_modules
    function call.
  • Added split and merge methods to the JoinKeys object.
  • Added all_choices() as a possible argument to the selected parameter of filter_spec, select_spec and choices_selected indicating that all choices are selected.
  • The append method of a CodeClass object has been modified to print a warning message when the argument does not result in any code being added because it is duplicated.
  • Implemented delayed functionality to the mutate method of the Dataset and DatasetConnector objects.
  • Modified teal_data to return a CDISCData object whenever any of its arguments is a type of CDISCData object.
  • Updated filters to show both levels of a logical variable TRUE/FALSE even if one is missing from the original array.

Miscellaneous

  • Updated LICENCE and README with new package references.
  • Added a method get_hash to the Dataset class returning the MD5 hash of the object stored inside the Dataset object.
  • Replaced random.cdisc.data with scda in examples and tests.
  • Implemented functionality to store JoinKeys in Dataset and DatasetConnector classes.
  • Added error_on_lintr: TRUE to .lintr
  • The pipe operator %>% is now exported such that downstream code and packages can use it.
  • Removed hyperlinks to the rice package from the documentation.
teal - v0.9.5

Published by insights-engineering-bot about 3 years ago

  • Added informational stop message when using mutate_data with RelationalDataConnector.
  • Modified as_cdisc to behave similarly to cdisc_dataset when called on a Dataset object.
  • Changed the displayed format of the data name and the column name in data_extract_spec UI elements. Both are now compressed to <data name>.<column name> if they don't change during runtime of the app.
  • Added ADSAFTTE to the list of recognized ADaM dataset names.
  • Added another example to data_extract_spec's doc string showcasing app users can choose a variable used for filtering in the encoding panel.
  • Added CSS styling to tool tips in teal modules.
  • Fixed an edge case error when creating a filter on variable with all missing values crashed the app.
  • Fixed a bug that crashes app whenever a Date or datetime column is selected from a filter_spec.
teal - v0.8.3

Published by insights-engineering-bot about 3 years ago

  • Enable teal app to initialize without data. The data are then loaded from within the teal app.
  • New classes (DatasetConnector, DataConnector) to connect to various data sources, including:
    * connector to rice API - rice_cdisc_data and rice_dataset
    * connector to RDS files - rds_data and rds_dataset
  • Message appears at bottom right of Shiny app when Shiny is busy to update the views.
  • Remove labels argument of cdisc_data function. Labels should now already be present in the data passed to the cdisc_data function. This can be achieved using the var_relabel function.
teal - v0.9.1

Published by insights-engineering-bot about 3 years ago

  • Adds method to resolve nested lists containing delayed data objects, which can be used for arm_ref_comp objects.
  • Nested tabs module now has better alignment with the filter panel on the page.
  • Allow width argument in optionalSelectInput.
  • Added lifecycle badges to all exported functions.
  • Added new code_dataset_connector and code_cdisc_dataset_connector functions which enable the creation of new delayed data objects given a string of code.
  • Added new functions csv_dataset_connector and csv_cdisc_dataset_connector.
  • Updated set_ui_input method of RawDatasetConnector and NamedDatasetConnector to handle user defined shiny inputs.
  • Include Keep Inf checkbox for numerical filter items. Keep NA and Keep Inf checkbox doesn't appear if there are no missing or infinite values.
  • Replace existing RelationalData class with abstract class RelationalDataCollection and rename RelationalDataList class as RelationalData. The data argument to teal::init is now always a RelationalData object.
  • Added fun_cdisc_dataset_connector to enable providing a custom function which returning a dataset.
  • Removed code and script arguments from as_relational wrapper. This is intended to be done with mutate_dataset functionality.
  • filer argument in init has added a validation step to ensure compatibility with the rest of the app. Variables inherited from ADSL have to be specified only for ADSL dataset.
  • Fixes the issue with connection close code not being present in get_code results.
  • Fixes the issue of occasional incorrect ordering of bar charts on the filter panel.
  • More informative error displayed when pull_fun of DataConnection produces an error.
teal - v0.9.2

Published by insights-engineering-bot about 3 years ago

  • Added python_dataset_connector to create delayed data objects from python scripts or directly from python code.
  • NOTE: python_dataset_connector is not yet ready to be deployed on RSConnect because it does not contain numpy and pandas, which are Python libraries used in python_dataset_connector.
  • Added support for filtering on Date and Datetime variables in the Filter Panel.
  • Added buttons for date and datetime filter widgets to reset the value to the original.
  • Added new function check_key_duplicates, which creates a short summary about rows with duplicated primary key (row numbers and the number of duplicates)
  • Fixed lack of labels for character and factor variables in the Filter Panel.
  • All variables are now displayed in module_filter_panel, not only those of types numeric, logical, factor, character and Date
  • Fixed mutate_data to accept the whole scope of objects for vars.
  • Clarified teal::init function documentation to state that custom css loading code with htmltools::htmlDependency should be included in the header argument rather than inside ui arguments of modules.
  • Enabled empty select field inside data_extract_spec.
  • Added new argument drop_keys to filter_spec to decide whether to drop or keep keys columns on single filter on those columns.
  • Added a new optional argument keys to variable_choices. keys specifies the names of the variables, which should have the new key icon shown next to them in the variable drop down menus in the left-hand side encoding panels instead of the icon appropriate for their original R variable type. variable_choices now also works with RelationalDataset and RelationalDatasetConnector objects.
  • Removed include_factors option in get_class_colnames in RawDataset.
teal - v0.9.3

Published by insights-engineering-bot about 3 years ago

  • Support for data-standard independent input and filtering. That includes refactor of the all data and dataset structures together with refactor of FilteredData class.
  • New JoinKeys class (with join_keys() constructors and join_key() constructor for its elements) to store joining key columns between datasets.
  • Refactored the most basic dataset() constructor, added cdisc_dataset() constructor and as_cdisc() conversion function.
  • Soft-deprecate removed class constructors and obsolete functions (e.g. keys()).
  • Added get_keys() and set_keys() functions to extract and manipulate datasets primary keys respectively.
  • Unexported filtered_data_new, filtered_data_set and filtered_data_set_filters.
  • Duplicated lines of code passed to teal::cdisc_dataset and other teal::RelationalDataset constructors should now be shown when getting the code from teal::cdisc_data objects and other teal::RelationalData objects.
  • Added ability to press "Enter" key without having to set focus to the Submit button for delayed data loading.
  • Allow variable_choices to use datasets with missing labels.
  • Fixed bug that ignores input of NULL to selected argument of select_spec function.
  • Added button to remove all active filters from the Filter Panel.
teal - v0.9.4

Published by insights-engineering-bot about 3 years ago

  • Released snowflake connection and connectors.
  • Changed ordering of datasets to be more intuitive (topologically first for CDISC datasets only and then according to input datasets order).
  • When closing a teal app (ending a user shiny session), all DataConnections will now try to close their connections.
  • Added ADHY keys to configuration file.
  • Extended the filter_spec function: the parameter choices is no longer mandatory (the function will take all possible choices by default) and the vars parameter additionally accepts the choices_selected and allows to change the variables for filtering using the UI elements in the encoding panel.
  • Cleaned up imports in the package.
  • Modified value_choices function to handle edge case when "NA" and NA values exist in the character column that choices are derived from.\
  • Fixed issue with cloning Callable class.
Package Rankings
Top 49.61% on Cran.r-project.org
Badges
Extracted from project README
CRAN Version Total Downloads Last Month Downloads Last Week Downloads Check 🛠 Docs 📚 Code Coverage 📔 Project Status: Active – The project has reached a stable, usable state and is being actively developed. Current Version Open Issues A Complete Guide to Getting Started with teal Stargazers over time Stargazers repo roster for @insightsengineering/teal Forkers repo roster for @insightsengineering/teal