The release tarball includes version 1.6.7 of the web app
Bug fix: Do not allow empty sub-lists when adding elements that
require a nested list (e.g. addEnrichments()
). This can
cause problems for
exportStudy()
/installStudy()
, and make it
appear that data is available when there is none (reported by Liang Jin
and Brett
Engelmann)
The release tarball includes version 1.6.4 of the web app
New function combineStudies()
to combine two or more
studies
The release tarball includes version 1.6.3 of the web app
Update importStudy()
to support study packages that
don’t have a Maintainer listed. This was only possible prior to version
1.2.0.5. After that, any study that hasn’t explicitly provided a
maintainer (and maintainer email) is assigned the maintainer
Unknown <unknown@unknown>
during export. It is highly
recommended to set the maintainer name and email for any study package
that will be shared. Furthermore, exportStudy()
will send a
message when no maintainer email has been provided for a study
package
Fix infamous drop = FALSE
bug
in getUpsetCols()
. Previously, if the results tables for a
given modelID only had two total columns (the featureID column and one
data column), getUpsetCols()
returned no common columns,
and thus disabled the set interaction features in the app (reported by
Brett Engelmann)
The release tarball includes version 1.6.0 of the web app
Detect custom plotting functions with
plotType == "plotly"
that don’t properly return an object
with class "plotly"
plotType
"plotly"
to add custom
functions that return interactive plotly graphs (implemented by Joe LoGrasso in PR
#9) Front-end support will be added in a future release of the web
appplotStudy()
, any
required packages are attached temporarily and then detached. When one
package “Depends” on another package (e.g. plotly Depends on ggplot2),
the first package must be detached before its dependency can be
detached. Now this dependency order is taken into account when detaching
the packages (reported by Joe
LoGrasso)The release tarball includes version 1.4.1 of the web app
Breaking change: The function
plotStudy()
now invisibly returns the result from the
custom plotting function. Previously it invisibly returned the study
object. It’s unlikely you relied on this behavior. For a ggplot2 plot,
the return value will be the plotting object with class
"ggplot"
.
plotStudy()
in the R console. Support for multiModel plots
in the app will be implemented in a future release. For now, the app
will send a harmless error if it encounters a multiModel plot
(implemented by Marco Curado
in PR
#8)New study element mapping
for mapping featureIDs
across models of a study (see ?addMapping
and
getMapping
). This will make it possible to create plots
that combine data across models, which will be enabled in future
versions (implemented by Marco
Curado in PR
#7)
Bug fix: The validation of the enrichments table linkouts was too
strict. It required that the annotationID be present in the annotations
created by addAnnotations()
. This extra information about
the annotationID is only required for the network view. The validation
now only throws an error if the annotationID was not included for at
least one modelID in the enrichments data added with
addEnrichments()
(reported by Anastasia Galperina)
Bug fix: Now that custom plots can include data from the results table, it is no longer an error to include custom plots in a study without assays or samples data (reported by Joe LoGrasso). Also relaxed the validation requirement for custom plots so that the study can contain assays data but not corresponding samples data
Bug fix: Custom plotting functions cannot have the same name as
any of the functions defined in the base package. This error is now
caught early with addPlots()
(reported by Anastasia Galperina)
The release tarball includes version 1.3.2 of the web app
New plotType
of "multiTest"
. Include
this when adding a custom plot with addPlots()
to have the
app pass the results tables for all testIDs for a given modelID
(implemented by Marco Curado
in PR
#6)
Bug fix: The documentation states that the assays table must only
contain numeric columns. However, if a user added a data frame with
non-numeric columns, no warning or error occurred. Now
addAssays()
will throw an error if it detects any
non-numeric columns (reported by Anastasia Galperina in WebApp
Issue #57)
The release tarball includes version 1.2.1 of the web app
Both plotStudy()
and getPlottingData()
gained a new argument testID
. If supplied, the R object
passed to your custom plotting function will include the element
results
that contains the rows of the results table for
that testID for the provided featureID(s). The app always passes the
testID when calling plotStudy()
. If your plotting function
doesn’t need the information in the results table, it will continue to
work as before (implemented by Marco Curado in PR
#4)
Bug fix: Prevent a single missing value in an ID column that is required to be unique (reported by Marco Rocha Curado)
Report the error message from R CMD build
as a
warning if exportStudy()
fails to create a tarball for a
study package
Add the argument reset
to
addOverlaps()
. You would only potentially need this if you
are pre-calculating the annotation term overlaps prior to exporting the
study
Skip tests that fail only on CRAN Linux and macOS machines. The tests will continue to run on GitHub Actions
The release tarball includes version 1.1.9 of the web app
Optional support for model metadata via addModels()
and getModels()
. Previously you could only add a single
string to describe each modelID, which would be displayed in the app as
a tooltip. Now you also have the option to provide a list with arbitrary
metadata. The tooltip is derived from the list element
description
(if it exists)
New function importStudy()
to import an installed
study package into R as an onStudy
object. This is intended
to be used to edit a study when you don’t have access to the original
data and code that created it
Optional support for test metadata via addTests()
and getTests()
. Previously you could only add a single
string to describe each testID, which would be displayed in the app as a
tooltip. Now you also have the option to provide a list with arbitrary
metadata. The tooltip is derived from the list element
description
(if it exists)
The release tarball includes version 1.1.8 of the web app
New function removeStudy()
to remove an installed
study package
New argument studyMeta
for
createStudy()
. You can add metadata to describe your study.
See ?createStudy
and the User’s Guide for more
details.
New arguments maintainer
and
maintainerEmail
for createStudy()
to make it
easier for others to know who to contact for questions about your
study
listStudies()
now returns all the fields in
DESCRIPTION
for each study package
Fixed minor bug in listStudies()
. It couldn’t find
study packages in directories not included in .libPaths()
.
This likely only affected the unit tests.
The release tarball includes version 1.1.7 of the web app
Added support for linkouts in metaFeatures table. See
?addMetaFeaturesLinkouts
for details. These linkouts will
be displayed as favicons in the metaFeatures table in a future release
of the app.
The “add” functions have a new argument, reset
. If
reset = TRUE
, then the existing data is removed prior to
adding the new data. The default continues to be to add to or modify any
existing data.
The release tarball includes version 1.1.5 of the web app
Fix bug in getResultsIntersection()
where adding
additional filters resulted in more results when notTests
were specified, instead of fewer (reported by Terry Ernst, Brett
Engelmann, and Wendy Waegell)
The release tarball includes version 1.1.2 of the web app
Bug fix: exportStudy()
can now export a study as a
package tarball to a path that contains spaces or quotes (reported by
Naim Mahi and Brett Engelmann)
Bug fix: Study packages will now use custom description if
supplied to createStudy()
. Hover over the study name in the
app to see the custom package description (reported by Paul Nordlund and
Brett Engelmann)
The release tarball includes version 1.1.1 of the web app
Bug fix: installApp()
now properly searches for the
installed OmicNavigator package. It usually worked before, but now it
should always work.
New function installApp()
to download the web app
after installing the R package
Support for tibble and data.table input. For consistency, they will be be automatically converted to pure data frame objects internally.
Bug fix: exportStudy()
now properly overwrites an
existing tarball when the argument path
is used (reported
by Brett Engelmann)
Bug fix: getResultsIntersection()
now properly
returns the filtered table in the original order from
getResultsTable()
(reported by Paul Nordlund)
Breaking change: plotStudy()
and
getPlottingData()
now accept multiple featureIDs as input
in order to visualize multiple feature in a single plot. The object
returned by getPlottingData()
is now a list of three data
frames: assays
, samples
, and
features
. Thus you can annotate your plots with any feature
metadata. You will need to update your custom plotting functions to
accept one argument (you can name it whatever you like). Also, when
adding plots with addPlots()
, specify the
plotType
as "singleFeature"
or
"multipleFeature"
to accept a single or multiple
featureIDs, respectively. The app currently only supports singleFeature
custom plots, but will soon support multiFeature plots as well.
Study packages must be rebuilt with OmicNavigator
0.24.0.
Fix bug in getResultsUpset()
that failed when using
the absolute value filters (|<|
,
|>|
)
getResultsUpset()
now throws an error when there are
no features remaining for plotting after the filters are
applied
The release tarball includes version 0.3.6 of the web app
Use faviconPlease to find URLs to favicons for table linkouts
Optimize getResultsUpset()
for speed. Input remains
unchanged. The plotting data is now returned invisibly. The default font
size for the UpSet plot was increased.
Apply MIT license
Fix bug in getResultsIntersection()
when a modelID
has no features table. The “Set_Membership” column was returned in the
first column instead of after the featureID column (reported by Joe
Dalen and Paul Nordlund)
Fix bug in getResultsUpset()
when the results tables
have differing number of features
getFavicons()
to obtain URLs to favicons
to display table linkouts. Currently just a wrapper around Google’s
favicon service, but in the future will be more sophisticated.The release tarball includes version 0.3.3 of the web app
Improved support for numeric-looking featureIDs,
e.g. 1234
or 0001
The release tarball includes version 0.3.1 of the web app
User’s Guide:
Moved UpSetR to a suggested dependency. This allows for a light-weight installation when you only need to create a study and not run the app. As an example, a continuous integration job that builds a study package tarball.
Relax some of the validation requirements. Not all the featureIDs in the results tables must be in the features or metaFeatures tables.
If a study has no features table for a modelID, a study can still have linkouts to external resources in the results table, as long as the linkouts only refer to the featureID column.
validateStudy()
now throws an error if the results
and features table for a given modelID share any column names in
addition to the featureID column. In other words, it validates that the
only column name in common between the two tables is the first
column.
The release tarball includes version 0.2.8 of the web app
validateStudy()
now throws an error if there are any
featureIDs in the metaFeatures table that are not included in the
features table (reported by Paul Nordlund)
Support for linkouts to external resources in results and enrichments tables
New function getPackageVersion()
for the app to
conveniently query the current installed version of the R
package
The release tarball includes version 0.2.5 of the web app
validateStudy()
now throws a warning if the results
tables for the tests of a model have no common columns. The lack of
common columns will disable the UpSet filtering in the app for that
model.
exportStudy()
- The argument type
has
changed. Studies can no longer be exported as RDS
(type = "rds")
or text files (type = "text"
).
This is because these were no longer able to capture all of the
information that can potentially be included in a study package
(e.g. custom plotting functions, report files). Instead, the default is
now the new option "tarball"
. This will export the study
package as a source package tarball, which is ready to be installed
directly with install.packages()
. The option
"package"
remains; it exports the study as a package
directory.quiet
. Setting
quiet = TRUE
will suppress any messages, such as reporting
unavailable data or the use of the “default” data.Improved the messages from installStudy()
and
exportStudy()
validateStudy()
now performs more in-depth check to
validate that the featureIDs are consistent between the results,
features, and assays tables
Most package functions now consistently return empty data
structures (e.g. list()
) when a query requests data that is
unavailable. Previously the functions would throw an error if the
requested data was unavailable. There is a new section in the API
vignette documenting this behavior for the functions called by the
app.
It is now possible to export a study that only contains a single results table.
addTests()
is now a named list, similar to
addModels()
. You will need to update your code and
re-install any existing OmicNavigator study packages.OmicNavigator.prefix
to control the
prefix used to label OmicNavigator study packages. The default is still
“OAstudy”. Run ?OmicNavigator
for more information on
OmicNavigator package options.New User’s Guide and API vignettes created with Sweave
Add summary()
method for OmicNavigator study objects
(class onStudy
)
Bugfix: listStudies()
now works if its argument
libraries
is pointed to a specific directory
The release tarball includes version 0.1.9.1 of the web app
Remove the argument overwrite
for the add functions,
e.g. addSamples()
. Instead subsequent calls to the same add
function will update the existing data using the rules of
utils::modifyList()
.
addMetaFeatures()
now automatically converts all
columns to character. It throws a warning if it detects any
non-character columns.
getMetaFeatures()
and
getMetaFeaturesTable()
always return the columns of the
features table as character strings, even if they appear
numeric.
Support the option to manually calculate pairwise overlaps with
addOverlaps()
prior to installing or exporting the study
package.
Support for linking to external analysis report files
(addReports()
, getReports()
,
getReportLink()
). Accepts a URL or a path to file.
New function validateStudy()
to validate a study. It
is automatically run prior to exporting with exportStudy()
(controlled by the new argument requireValid
). It can also
be run directly.
createStudy()
now checks that the arguments
name
, description
, and version
are valid.
exportStudy()
no longer exports empty directories
for unused elements of the OmicNavigator study object.
Bug fix: getMetaFeaturesTable()
now properly returns
a data frame even if it only contains one column.
getResultsTable()
was changing the
original row order. Bug identified by Brett Engelmann.addFeatures()
now automatically converts all columns
to character. It throws a warning if it detects any non-character
columns.
getFeatures()
and getResultsTable()
always return the columns of the features table as character strings,
even if they appear numeric.
This release includes substantial internal changes. The study data is
now exported as plaintext files instead of as an SQLite file. There are
no changes to the API, so no changes need to be made to R scripts or the
JavaScript frontend. However, since the storage mechanism has changed,
all existing OmicNavigator studies need to be reinstalled in order to be
compatible with this version. Furthermore, the dependencies have
changed, so you may have to re-run
remotes::install_deps()
.
The release tarball includes version 0.1.5 of the web app
getEnrichmentsUpset()
has a new argument
tests
, which restricts the UpSet plot to only include the
desired tests (#1, Justin Moore)
The release tarball includes version 0.1.4 of the web app
If startApp()
is unable to run because the package
was installed without the bundled web app, provide the URL for the
releases page to download the tarball. Also offer to open the page in
the browser.
getMetaFeatures()
getMetaFeaturesTable()
Fix bug in getResultsIntersection()
introduced in
commit ff1ac89 and released in version 0.7.0
The release tarball includes version 0.1.2 of the web app
The release tarball includes version 0.1.0 of the web app. Run
startApp()
to run it locally.
New function getUpsetCols()
to get the columns
common across all tests of a model, and thus are available for filtering
with UpSet.
getBarcodeData()
now returns data
in
decreasing order of the statistic
column (requested by Paul
Nordlund)
addBarcodes()
now has an additional optional field
featureDisplay
. This can be set to any column of the
features table, and that feature metadata variable will be used to label
the barcode plot (requested by Paul Nordlund). If
featureDisplay
is not set, it will be automatically set to
the feature metadata variable used in the enrichment analysis.
getBarcodeData()
now returns three feature-related
columns:
featureID
- The unique feature variable used in the
inference results tablefeatureEnrichment
- The feature variable used to
perform the enrichment analysis with the given annotation databasefeatureDisplay
- The feature variable to use to label
the barcode plot on hoverNote that these will all be identical in the simple case where the
study featureID
is used for the enrichment
analysis.
getBarcodeData()
now returns both the study
featureID (in the column featureID
) and the featureID used
by the annotation database (in the column featureDisplay
).
The former is needed to pass to plotStudy()
to generate any
custom plots. The latter is needed to display when hovering over the
barcode plot (reported by Paul Nordlund).
Fix bug in plotStudy()
related to detaching package
namespaces. When a custom plot specified more than one package
dependency, the last package listed would always be detached from the
search path (even if it shouldn’t have been since it was already
attached). Furthermore, the other packages would never be detached (even
if they should have been since they were not attached beforehand). The
bug was caused by calling detach()
with
on.exit()
, which used the latest value of the
variable.
New function getPlottingData()
to return the data
required by the first argument of the custom plotting
functions.
getResultsIntersection()
positions the column
Set_Membership
between the feature metadata variable
columns and the results columns
Study packages that includes plots using base graphics now import the graphics package
Fix bug when querying model-specific barcode metadata. Affected
both getBarcodes()
and getBarcodeData()
(reported by Paul Nordlund)
Remove warning from graphics::par()
by only having
plotStudy()
reset the graphing parameters if they are
changed by the custom plotting function
New function startApp()
to start the app running on
local machine
Fix bug in getResultsIntersection()
so that it
returns the feature metadata columns that are included in
getResultsTable()
Fix bug in getResults()
that returned columns of
NA
for columns specific to other tests (only affected study
packages, not onStudy objects)
getPlots()
so that it returns model-specific
custom plots from the database of installed study packageChanged <=
and >=
to
<
and >
, respectively, to match app UI.
Affects the functions getResultsIntersection()
,
getEnrichmentsIntersection()
,
getResultsUpset()
, and
getEnrichmentsUpset()
.
Support customization of barcode plots:
addBarcodes()
getBarcodes()
getBarcodeData()
getAnnotations()
Changed the input argument of plotStudy()
from
feature
to featureID
Changed the argument name of custom plotting functions from
feature
to featureID
getResultsIntersection()
getEnrichmentsIntersection()
getResultsUpset()
getEnrichmentsUpset()