backwardSearch: Backward Search Function

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/ROC_and_search_functions.R


Backward search is useful for reducing the size of the gene set in your filterObject. In general, backward search identifies a small set of genes with maximum ability to distinguish cases from controls.

backwardSearch is a method of optimizing a given set of significant genes to maximize discriminatory power, as measured by area under the ROC curve (AUC). The function works by taking a given set of genes (presumably a set that has been filtered for statistical significance), and iteratively removing one gene at a time, until the stopping threshold is reached. At each round, the gene whose removal contributes the greatest increase in weighted AUC is removed. Weight AUC is defined as the sum of the AUC of each dataset, times the number of samples in that dataset. The stopping threshold is in units of weighted AUC.


backwardSearch(metaObject, filterObject, backThresh = 0)



The metaObject from the main metaIntegrator function.


An object matching the specifications for Filter


Stopping threshold for the backward search. Default=0.


The forwardSearch and backwardSearch functions are designed to assist in selection of gene sets optimized for discriminatory power. The selection of an optimized set is a non-convex problem, and hence both functions will yield gene sets that are only locally optimized (ie, they are not global optima). Both the forwardSearch and backwardSearch functions follow a greedy algorithm, either adding (or removing) genes that contribute the most (or the least) to the overall weighted AUC of the discovery datasets from the metaObject.

Both search functions allow a user to set a stopping threshold; the fundamental tradeoff here will be sparsity of the returned gene set vs. overall discriminatory power. The default threshold is 0, such the functions will return the set of genes at which no gene could be added or removed for the forward or backward functions, respectively, and increase the weighted AUC.

Note that the weighted AUC returned during the function run is dependent on sample size; this was done (instead of a simple mean) so that the gene set discriminates the MOST SAMPLES, rather than being optimized for any particular dataset.


A Filter object which has results from backward search


Timothy E. Sweeney


Sweeney et al., Science Translational Medicine, 2015

See Also



#Run backward search to reduce the size of our filter results
backwardRes <- backwardSearch(tinyMetaObject, tinyMetaObject$filterResults[[1]], backThresh = -3) 
#See the results

Example output

Converting probes:genes for gene list for all discovery GEMs...   done. 
sum weighted AUC: 186.0887 
worst AUC decrease= -4.443771 
removing  Gene54 ; new weighted AUC: 190.5325 
worst AUC decrease= -3.540278 
removing  Gene56 ; new weighted AUC: 194.0728 
worst AUC decrease= -2.252524 
Final gene set AUCs: 
sum weighted AUC: 192.6766 
 [1] "Gene27"  "Gene13"  "Gene7"   "Gene26"  "Gene12"  "Gene42"  "Gene2"  
 [8] "Gene17"  "Gene35"  "Gene23"  "Gene158" "Gene19" 

 [1] "Gene62" "Gene63" "Gene50" "Gene59" "Gene66" "Gene45" "Gene49" "Gene47"
 [9] "Gene48" "Gene53"

 [1] "Gene27"  "Gene13"  "Gene7"   "Gene26"  "Gene12"  "Gene42"  "Gene2"  
 [8] "Gene17"  "Gene35"  "Gene23"  "Gene158" "Gene19" 
 [1] "Gene62" "Gene63" "Gene50" "Gene59" "Gene66" "Gene45" "Gene49" "Gene47"
 [9] "Gene48" "Gene53"

MetaIntegrator documentation built on March 26, 2020, 6:29 p.m.