Use this function to discover synergy biomarkers, i.e. nodes whose activity and/or boolean equation parameterization (link operator) affect the manifestation of synergies in the boolean models. Models are classified to groups based on whether they predict or not each of the predicted synergies.

biomarker_synergy_analysis(
  model.predictions,
  models.stable.state,
  models.link.operator = NULL,
  observed.synergies,
  threshold,
  calculate.subsets.stats = FALSE,
  penalty = 0.1
)

Arguments

model.predictions

a data.frame object with rows the models and columns the drug combinations. Possible values for each model-drug combination element are either 0 (no synergy predicted), 1 (synergy was predicted) or NA (couldn't find stable states in either the drug combination inhibited model or in any of the two single-drug inhibited models).

models.stable.state

a data.frame (nxm) with n models and m nodes. The row names specify the models' names whereas the column names specify the network nodes (gene, proteins, etc.). Possible values for each model-node element can be between 0 (inactive node) and 1 (active node) inclusive. Note that the rows (models) have to be in the same order as in the model.predictions parameter.

models.link.operator

a data.frame (nxm) with n models and m nodes. The row names specify the models' names (same order as in the model.predictions parameter) whereas the column names specify the network nodes (gene, proteins, etc.). Possible values for each model-node element are either 0 (AND NOT link operator), 1 (OR NOT link operator) or 0.5 if the node is not targeted by both activating and inhibiting regulators (no link operator). Default value: NULL (no analysis on the models parameterization regarding the mutation of the boolean equation link operator will be done).

observed.synergies

a character vector with elements the names of the drug combinations that were found as synergistic. This should be a subset of the tested drug combinations, that is the column names of the model.predictions parameter.

threshold

numeric. A number in the [0,1] interval, above which (or below its negative value) a biomarker will be registered in the returned result. Values closer to 1 translate to a more strict threshold and thus less biomarkers are found.

calculate.subsets.stats

logical. If TRUE, then the results will include a vector of integers, representing the number of models that predicted every subset of the given observed.synergies (where at least one model predicts every synergy in the subset). The default value is FALSE, since the powerset of the predicted observed.synergies can be very large to compute.

penalty

value between 0 and 1 (inclusive). A value of 0 means no penalty and a value of 1 is the strickest possible penalty. Default value is 0.1. This penalty is used as part of a weighted term to the difference in a value of interest (e.g. activity or link operator difference) between two group of models, to account for the difference in the number of models from each respective model group.

Value

a list with various elements:

  • predicted.synergies: a character vector of the synergies (drug combination names) that were predicted by at least one of the models in the dataset.

  • synergy.subset.stats: an integer vector with elements the number of models the predicted each observed synergy subset if the calculate.subsets.stats option is enabled.

  • synergy.comparison.sets: a data.frame with pairs of (set, subset) for each model-predicted synergy where each respective subset misses just one synergy from the larger set (present only if the calculate.subsets.stats option is enabled). Can be used to refine the synergy biomarkers by comparing any two synergy sets with the functions get_avg_activity_diff_based_on_synergy_set_cmp or get_avg_link_operator_diff_based_on_synergy_set_cmp.

  • diff.state.synergies.mat: a matrix whose rows are vectors of average node activity state differences between two groups of models where the classification for each individual row was based on the prediction or not of a specific synergistic drug combination. The row names are the predicted synergies, one per row, while the columns represent the network's node names. Values are in the [-1,1] interval.

  • activity.biomarkers: a data.frame object with rows the predicted synergies and columns the nodes (column names of the models.stable.states matrix). Possible values for each synergy-node element are either 1 (active state biomarker), -1 (inhibited state biomarker) or 0 (not a biomarker) for the given threshold value.

  • diff.link.synergies.mat: a matrix whose rows are vectors of average node link operator differences between two groups of models where the classification for each individual row was based on the prediction or not of a specific synergistic drug combination. The row names are the predicted synergies, one per row, while the columns represent the network's node names. Values are in the [-1,1] interval.

  • link.operator.biomarkers: a data.frame object with rows the predicted synergies and columns the nodes (column names of the models.link.operator matrix). Possible values for each synergy-node element are either 1 (OR link operator biomarker), -1 (AND link operator biomarker) or 0 (not a biomarker) for the given threshold value.

See also

Other general analysis functions: biomarker_mcc_analysis(), biomarker_tp_analysis()