-
Notifications
You must be signed in to change notification settings - Fork 19
/
dvobject_metadata.R
46 lines (39 loc) · 1.3 KB
/
dvobject_metadata.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#' init_dvobject
#' initialize dvobject
#'
#' @keywords internal
#' @return dvobject
init_dvobject <- function() {
dvobject <- list()
class(dvobject) <- "dvobject"
attr(dvobject, "original_db_info") <- list()
dvobject
}
#' add_drugbank_info
#' Add passed DrugBank db metadata to passed dvobject
#'
#' @keywords internal
#' @return dvobject
add_drugbank_info <- function(dvobject) {
db_info <- attr(dvobject, "original_db_info")
db_info[["db_type"]] <- "DrugBank"
db_info[["db_version"]] <- XML::xmlGetAttr(node = pkg_env$root,
name = "version")
db_info[["db_exported_date"]] <- XML::xmlGetAttr(node = pkg_env$root,
name = "exported-on")
attr(dvobject, "original_db_info") <- db_info
dvobject
}
#' init_dvobject
#' Returns data.frame with two columns (key, value) of dvobject attributes
#'
#' @param dvobject - dvobject list to show related metadata
#'
#' @return data.frame
#' @family utility
#' @export
show_dvobject_metadata <- function(dvobject) {
dvobject_attributes <- attr(dvobject, "original_db_info")
dvobject_attributes[["class"]] <- class(dvobject)
data.frame(Atrribute = names(dvobject_attributes), Value = stack(dvobject_attributes)[[1]])
}