Skip to content

Releases: insightsengineering/teal

v0.10.0

13 Oct 00:01
0b4de1f
Compare
Choose a tag to compare

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.

v0.9.5

19 Aug 22:16
Compare
Choose a tag to compare
  • 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.

v0.9.4

19 Aug 22:16
Compare
Choose a tag to compare
  • 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.

v0.9.3

19 Aug 22:16
Compare
Choose a tag to compare
  • 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.

v0.9.2

19 Aug 22:16
Compare
Choose a tag to compare
  • 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.

v0.9.1

19 Aug 22:16
Compare
Choose a tag to compare
  • 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.

v0.8.3

19 Aug 22:16
Compare
Choose a tag to compare
  • 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.