Creating integrated reproducible pathway multilayer models
## Introduction Biological pathway data integration has become a topic
of interest in the past years. This interest originates essentially from
the continuously increasing size of existing prior knowledge as well as
from the many challenges scientists face when studying biological
pathways. Multipath is a framework that aims at helping re-trace the use
of specific pathway knowledge in specific publications, and easing the
data integration of multiple pathway types and further influencing
knowledge sources. Using Multipath, BioPax-encoded pathways can be
parsed and embedded into multilayered graphs. Modifications can be
applied to these graphs to generate different views. The package is
implemented as a part of the Multipath
Project
directed by Dr. Frank
Kramer
. ## Publication More information and references can be found in the
Multipath paper:
https://www.mdpi.com/2079-7737/9/12/483
Multipath depends on multiple packages. The packages are the following: queryup, dbparser, rBiopaxParser, mully, KEGGREST, KEGGgraph, romim, stringr, svMisc, uuid, dplyr, crayon Please make sure to install the packages UniProt.ws, rBiopaxParser and mully before using the package.
To install the mully package:
require(devtools)
install_github("frankkramer-lab/mully")
library(mully)
To install the rBiopaxParser package:
require(devtools)
install_github("frankkramer-lab/rBiopaxParser")
library(rBiopaxParser)
To simplify the pre-installation, all dependencies can be downloaded using the following script.
#Install CRAN Dependencies
install.packages(c("queryup","remotes","mully", "svMisc", "uuid", "dplyr", "crayon", "igraph", "RCurl", "XML", "xml2", "XML2R", "devtools"))
#Install BioConductor and remotes Dependencies
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("KEGGREST",force = TRUE)
BiocManager::install("KEGGgraph")
BiocManager::install("graph")
remotes::install_github('davetang/romim')
require(devtools)
install_github("frankkramer-lab/Multipath")
library(Multipath)
In this section, we provide a demo to test the package by calling some of the function. To run the script, you need to download the Signaling by Wnt from the Reactiome database in the BioPax format. ### Create a mully graph from a BioPax-encoded pathway
wntBiopax=readBiopax("wntpathway_reactome.owl")
pathwayID=listPathways(wntBiopax)$id[1]
wntmully=pathway2Mully(wntBiopax,pathwayID)
plot3d(wntmully,layers=T,vertex.label=NA,edge.width=5,edge.arrow.size=5)
view1=pathwayView(wntmully,"View1")
view1=addStep(view1,action = "remove",element="layer",name="Rna",trans = T)
suppressWarnings(plot3d(view1$modified))
view2=pathwayView(wntmully,"View2")
view2=addStep(view2,action = "remove",element="layer",name="PhysicalEntity",trans=T)
suppressWarnings(plot3d(view2$modified))
view3=pathwayView(wntmully,"View3")
view3=addStep(view3,action = "remove",element="layer",name="Complex",trans=T)
suppressWarnings(plot3d(view3$modified))
Multipath functions are divided into different files depending on their functionnality range: Reactome , Views' Functions , DrugBank Functions , UniProt Functions , Intraedges between nodes Functions , Demo Functions , Integrated Model Function
Function | Description |
---|---|
downloadPathway(pathwayID,biopaxLevel,destDirectory,overwrite) |
Download a BioPax encoded Reactome pathway function |
pathway2Mully(biopax,pathwayID) |
Build a mully graph from a BioPax encoded pathway function |
pathwayView(g,name) |
Constructor Function, Create an empty view |
print(v) |
Print function |
addStep(v,action,element,name,layerName,V1,V2,attributesnames,attributes,multi,trans) |
Document the modification of a graph function |
undo(v,stps) |
Undo stps number of steps from the view v |
loadDBXML(file) |
Parse DrugBank XML file function |
getDBDrug(data,drug) |
Get a DrugBank entry from DrugBank function |
getDBDrugInteractions(data,drug) |
Get Drugs interactions from DrugBank function |
getDBDrugEnzymes(data,drugList) |
Get Drug-Enzymes relations from DrugBank function |
getDBDrugTransporters(data,drugList) |
Get Drug-Transporters relations from DrugBank function |
getDBDrugCarriers(data,drugList) |
Get Drug-Carriers relations from DrugBank function |
getDBDrugTargets(data,drugList) |
Get Drug-Targets relations from DrugBank function |
addDBLayer(g,data,drugList) |
Add a DrugBank Layer to a graph function |
getDBtoUPKB(data,drugLiy,proteinList) |
Get Drug-Proteins relations from DrugBank function |
getAllUPKB(up) |
Get all UniProt protein entries function |
getUPKBInfo(proteins,col) |
Get UniProt protein entry infos function |
getUPKBInteractions(proteins) |
Get Proteins interactions from UniProt function |
getUPKBtoDB(proteinList,drugList) |
Get Proteins-Drug relations from UniProt function |
addUPKBLayer(g,proteinList) |
Add a UniProt Layer to a graph function |
getUPKBDBRelations(data,proteinList,drugList) |
Get Proteins-Drug relations from UniProt and DrugBank function |
multipath(name,proteinList,data,drugList) |
Build integrated model function |
wntpathway(file) |
Track and undo demo function |