Given a list of filters, this function builds a logical
condition to query database.
The output is used in get_dataset()
.
build_condition(regulondb, dataset, filters, operator, interval, partialmatch)
A regulondb()
object.
dataset of interest
List of filters to be used. The names should correspond to the attribute and the values correspond to the condition for selection.
A string indicating if all the filters (AND) or some of them (OR) should be met
the filters with values considered as interval
name of the condition(s) with a string pattern for full or partial match in the query
A character(1)
with the sql logical condition to query the dataset
.
## Connect to the RegulonDB database if necessary
if (!exists("regulondb_conn")) regulondb_conn <- connect_database()
## Build the regulon db object
e_coli_regulondb <-
regulondb(
database_conn = regulondb_conn,
organism = "E.coli",
database_version = "1",
genome_version = "1"
)
## Build the condition for ara
build_condition(
e_coli_regulondb,
dataset = "GENE",
filters = list(
name = c("ara"),
strand = c("forward"),
posright = c("2000", "40000")
),
operator = "AND",
interval = "posright",
partialmatch = "name"
)
#> [1] "(name like '%ara%')AND(posright >= 2000 AND posright <= 40000) AND (name like '%ara%')AND(strand = 'forward')"