CNORfeeder is an R package to integrate literature-constrained and data-driven methods to infer signalling networks from perturbation experiments
DescriptionCNORfeeder permits to extend a network derived from literature with links derived strictly from the data via various inference methods using information on physical interactions of proteins to guide and validate the integration of links. The package is designed to be integrated with CellNOptR as illustrated in the following pipeline where steps performed by CNORfeeder are represented in cyan boxes and the ones performed by CellNOptR are in magenta boxes.
- Data are used to infer a strictly data-driven network (DDN) using reverse-engineering methods (as for now FEED, ARACNe, CLR and Bayesian networks are implemented);
- the prior knowledge network (PKN) is compressed according to the data (green, red and blue nodes are respectively stimulated, inhibited and measured), removing non-identifiable nodes (dashed ones);
- the compressed network is integrated with the DDN (blue links are obtained from the DDN and black ones from the PKN);
- information derived from protein-protein interaction network (PIN) is used to support and prioritize integrated links;
- the integrated network is used as input for the training: in trained model, thick black lines denote interactions (and gates) in final model, and light-grey links present in integrated network but not in trained model.
CNORfeeder is a R package that depends on other R packages that are available on Bioconductor or CRAN websites.
The following code installs the CNORfeeder dependencies that are on Bioconductor website. Open a R session and type
source("http://bioconductor.org/biocLite.R") biocLite("RBGL") biocLite("graph") biocLite("minet") biocLite("CellNOptR")
The following code installs the CNORfeeder dependencies that are available on CRAN website. Open a R session and type:
Download and installationDownload CNORfeeder package and documentation:
Enter a R session and type:
install.packages("CNORfeeder_0.1.0.tar.gz", repos=NULL, type="source")
ExampleThis is an example of the main steps of the integrated CellNOptR - CNORfeeder pipeline:
library(CNORfeeder) # load the data already formatted as CNOlist data(CNOlistDREAM,package="CellNOptR") # load the model (PKN) already in the CNO format data(DreamModel,package="CellNOptR") # see CellNOptR documentation to import other data/PKNs) # load the UniprotID of proteins in the PKN data(UniprotIDdream,package="CNORfeeder") # load the curated PIN as igraph data(PPINigraph,package="CNORfeeder") # A. INFERENCE - CNORfeeder # FEED inference: codified in Boolean Tables BTable <- makeBTables(CNOlist=CNOlistDREAM, k=2, measErr=c(0.1, 0)) # B. COMPRESSION - CellNOptR # preprocessing step res<-preprocessing(Data=CNOlistDREAM, Model=DreamModel) Model<-res$model #this is the compressed model # C. INTEGRATION - CNORfeeder # integration with the compressed model modelIntegr <- MapBTables2Model(BTable=BTable,Model=Model,allInter=TRUE) # see example in ?MapDDN2Model to use other reverse-engineering methods # D. WEGHTING - CNORfeeder # proritization of links based on the PIN # the followig step may take a while: # if not run, all integrated links will have the same weight in the training step # resPPIweight <- PPIweight(modelIntegr=modelIntegr,PKNmodel=DreamModel,CNOlist=CNOlistDREAM,UniprotID=UniprotIDdream,PPINigraph=PPINigraph) # modelIntegr<-resPPIweight$modelIntegr # E. TRAINING - CellNOptR DreamFields4Sim<-prep4Sim(modelIntegr) initBstring<-rep(1,length(modelIntegr$reacID)) # training to data using genetic algorithm (run longer to obtain better results) DreamT1opt<-gaBinaryT1int( CNOlist=CNOlistDREAM, Model=modelIntegr, SimList=DreamFields4Sim, indexList=res$indices, initBstring=initBstring, maxGens=2, PopSize=5, verbose=FALSE) # plot the model with selected links in green (if derived form the PKN) and in purple (if integrated) plotModel(model=modelIntegr, cnolist=CNOlistDREAM, bString=DreamT1opt$bString, indexIntegr=modelIntegr$indexIntegr)