Checks that all annotation values are valid. It does not report on values for invalid keys; see check_annotation_keys().

check_annotation_values(x, annotations, ...)

# S3 method for `NULL`
check_annotation_values(x, annotations, ...)

# S3 method for synapseclient.entity.File
check_annotation_values(x, annotations, syn, ...)

# S3 method for data.frame
check_annotation_values(x, annotations, ...)

# S3 method for synapseclient.table.CsvFileTable
check_annotation_values(x, annotations, ...)

Arguments

x

An object to check.

annotations

A data frame of annotation definitions. Must contain at least three columns: key, value, and columnType.

...

Additional options to check_values()

syn

Synapse client object

Value

A condition object indicating whether all annotation values are valid. Invalid annotation values are included as data within the object.

Details

If the allowable annotation values are an enumerated list, check_annotation_values() compares the values in the data to the values in this list. If there is no enumerated list of values and the annotation definition merely specifies a required type, then the values are checked against that type, with values that are coercible to the correct type treated as valid (see can_coerce()).

Methods (by class)

  • NULL: Return NULL

  • synapseclient.entity.File: Check annotation values on a Synapse file

  • data.frame: Check annotation values in a data frame

  • synapseclient.table.CsvFileTable: Check annotation values in a Synapse table

See also

Examples

annots <- data.frame( key = c("assay", "fileFormat", "fileFormat", "fileFormat", "species"), value = c("rnaSeq", "fastq", "txt", "csv", "Human"), columnType = c("STRING", "STRING", "STRING", "STRING", "STRING") ) dat1 <- data.frame(assay = "not a valid assay") dat2 <- data.frame(assay = "rnaSeq") check_annotation_values(dat1, annots)
#> <error/check_fail> #> Some annotation values are invalid
check_annotation_values(dat2, annots)
#> <check_pass: All annotation values are valid>
if (FALSE) { syn <- synapse$Synapse() syn$login() annots <- get_synapse_annotations(syn = syn) my_file <- syn$get("syn11931757", downloadFile = FALSE) check_annotation_values(my_file, annots) dat <- data.frame( non_annotation = 5:7, assay = c("rnaSeq", "foo", "bar"), stringsAsFactors = FALSE ) check_annotation_values(dat, annots) fv <- synTableQuery("SELECT * FROM syn17020234") check_annotation_values(fv, annots) # If you don't specify an annotations data frame, these functions will # download annotations automatically using `get_synapse_annotations()` (must # be logged in to Synapse) my_file <- syn$get("syn11931757", downloadFile = FALSE) check_annotation_values(my_file, syn = syn) # It is possible to allowlist certain certain values, or all values for # certain keys: check_annotation_values(dat, allowlist_keys = "assay", syn = syn) check_annotation_values( dat, allowlist_values = list(assay = c("foo")), syn = syn ) }