The R markdown is available from the pulldown menu for Code
at the upper-right, choose “Download Rmd”, or download
the Rmd from GitHub.
WikiPathways is a database of biological pathways maintained by and
for the scientific community. Each pathway model in the database is
annotated with database identifiers, which can be used for computation
and data visualization.
The following workflow describes pathway import and data
visualization.
Installation
if(!"RCy3" %in% installed.packages()){
install.packages("BiocManager")
BiocManager::install("RCy3")
}
library(RCy3)
Required software
RCy3 works by connecting with Cytoscape. You will need to install and
launch Cytoscape:
For this vignette, you’ll need the following apps:
#available in Cytoscape 3.7.0 and above
installApp('WikiPathways')
Import Cell Cycle pathway into Cytoscape.
RCy3::commandsRun('wikipathways import-as-pathway id=WP179')
The data we will be using for this workflow (E-GEOD-68086.csv) is
from a study investigating the RNA-seq signatures of platelets from
patients with various types of cancer, in an effort to develop a
platelet-based diagnostic (Best
et el., 2015). The data was downloaded from Expression
Atlas.
df <- read.csv(file="https://cytoscape.github.io/cytoscape-tutorials/protocols/data/E-GEOD-68086.csv", stringsAsFactors = FALSE)
RCy3::loadTableData(df, data.key.column = "Gene.ID", table.key.column = "Ensembl" )
Data Visualization: Node Fill Color
We now have the data in Cytoscape, linked to the pathway, and ready
to map to visual properties of the nodes in the network. For this
workflow, we will choose data from one of the cancer types, “breast
carcinoma”, and visualize the fold change as Node Fill Color.
RCy3::setNodeColorMapping('X.breast.carcinoma..vs..normal...foldChange', colors=paletteColorBrewerRdBu, style.name="WikiPathways")
Data Visualization: Node Border Width
We also have a significance measure for the fold change, which we can
add to our visualization. For this, we will use both Node Border Width
and Node Border Color to visualize the p value. Let’s start with Node
Border Width:
RCy3::setNodeBorderWidthMapping('X.breast.carcinoma..vs..normal..pValue', table.column.values=c(0,0.05), widths=c(5,5,1,1), mapping.type='c', style.name="WikiPathways")
Data Visualization: Node Border Color
Significant genes now have a thicker node border, but we can also add
color to further visualize significant nodes. We will set the default
Node Border Color to dark grey, then update the Node Border Color for
significant nodes to pink:
RCy3::setNodeBorderColorDefault('#5A5A5A',style.name="WikiPathways")
RCy3::setNodeBorderColorMapping('X.breast.carcinoma..vs..normal..pValue', c(0, 0.05,0.05), c('#FC0FC0', '#FC0FC0', '#5A5A5A'), mapping.type='c', style.name="WikiPathways")
We now have our example data visualized on the pathway, with fold
change represented as a gradient node fill color and significance as
node border color/width.
Saving and Exporting Data Visualization
RCy3::saveSession('wikipathway-data-visualization-basic')
RCy3::exportImage('wikipathway-data-visualization-basic', type = "png")
LS0tCnRpdGxlOiAiV2lraVBhdGh3YXlzIERhdGEgVmlzdWFsaXphdGlvbiBCYXNpYyIKYXV0aG9yOiAiWWloYW5nIFhpbiwgS3Jpc3RpbmEgSGFuc3BlcnMgYW5kIEFsZXggUGljbyIKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICBkZl9wcmludDogcGFnZWQKICBodG1sX25vdGVib29rOgogICAgdG9jX2Zsb2F0OiB5ZXMKICAgIGNvZGVfZm9sZGluZzogbm9uZQotLS0KYGBge3IsIGVjaG8gPSBGQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KAogIGV2YWw9RkFMU0UKKQpgYGAKKlRoZSBSIG1hcmtkb3duIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBwdWxsZG93biBtZW51IGZvciogQ29kZSAqYXQgdGhlIHVwcGVyLXJpZ2h0LCBjaG9vc2UgIkRvd25sb2FkIFJtZCIsIG9yIFtkb3dubG9hZCB0aGUgUm1kIGZyb20gR2l0SHViXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3l0b3NjYXBlL2N5dG9zY2FwZS1hdXRvbWF0aW9uL21hc3Rlci9mb3Itc2NyaXB0ZXJzL1Ivbm90ZWJvb2tzL1dpa2lwYXRod2F5cy1kYXRhLXZpc3VhbGl6dGlvbi1iYXNpYy5SbWQpLioKCjxociAvPgoKV2lraVBhdGh3YXlzIGlzIGEgZGF0YWJhc2Ugb2YgYmlvbG9naWNhbCBwYXRod2F5cyBtYWludGFpbmVkIGJ5IGFuZCBmb3IgdGhlIHNjaWVudGlmaWMgY29tbXVuaXR5LiBFYWNoIHBhdGh3YXkgbW9kZWwgaW4gdGhlIGRhdGFiYXNlIGlzIGFubm90YXRlZCB3aXRoIGRhdGFiYXNlIGlkZW50aWZpZXJzLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgY29tcHV0YXRpb24gYW5kIGRhdGEgdmlzdWFsaXphdGlvbi4KClRoZSBmb2xsb3dpbmcgd29ya2Zsb3cgZGVzY3JpYmVzIHBhdGh3YXkgaW1wb3J0IGFuZCBkYXRhIHZpc3VhbGl6YXRpb24uCgojIEluc3RhbGxhdGlvbgpgYGB7cn0KaWYoISJSQ3kzIiAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpKXsKICAgIGluc3RhbGwucGFja2FnZXMoIkJpb2NNYW5hZ2VyIikKICAgIEJpb2NNYW5hZ2VyOjppbnN0YWxsKCJSQ3kzIikKfQpsaWJyYXJ5KFJDeTMpCmBgYAoKIyBSZXF1aXJlZCBzb2Z0d2FyZQpSQ3kzIHdvcmtzIGJ5IGNvbm5lY3Rpbmcgd2l0aCBDeXRvc2NhcGUuIFlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCBhbmQgbGF1bmNoIEN5dG9zY2FwZToKCiogRG93bmxvYWQgdGhlIGxhdGVzdCBDeXRvc2NhcGUgZnJvbSBodHRwOi8vd3d3LmN5dG9zY2FwZS5vcmcvZG93bmxvYWQucGhwCiogQ29tcGxldGUgaW5zdGFsbGF0aW9uIHdpemFyZAoqIExhdW5jaCBDeXRvc2NhcGUKCgpgYGB7cn0KY3l0b3NjYXBlUGluZygpCmBgYAoKRm9yIHRoaXMgdmlnbmV0dGUsIHlvdeKAmWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhcHBzOiAKCiogVGhlIFt3aWtpUGF0aHdheXNdKGh0dHBzOi8vYXBwcy5jeXRvc2NhcGUub3JnL2FwcHMvd2lraXBhdGh3YXlzKSBhcHAsIAoKYGBge3J9CiNhdmFpbGFibGUgaW4gQ3l0b3NjYXBlIDMuNy4wIGFuZCBhYm92ZQppbnN0YWxsQXBwKCdXaWtpUGF0aHdheXMnKQpgYGAKCiMgSW1wb3J0IENlbGwgQ3ljbGUgcGF0aHdheSBpbnRvIEN5dG9zY2FwZS4KCgpgYGB7cn0KUkN5Mzo6Y29tbWFuZHNSdW4oJ3dpa2lwYXRod2F5cyBpbXBvcnQtYXMtcGF0aHdheSBpZD1XUDE3OScpCmBgYAoKVGhlIGRhdGEgd2Ugd2lsbCBiZSB1c2luZyBmb3IgdGhpcyB3b3JrZmxvdyAoRS1HRU9ELTY4MDg2LmNzdikgaXMgZnJvbSBhIHN0dWR5IGludmVzdGlnYXRpbmcgdGhlIFJOQS1zZXEgc2lnbmF0dXJlcyBvZiBwbGF0ZWxldHMgZnJvbSBwYXRpZW50cyB3aXRoIHZhcmlvdXMgdHlwZXMgb2YgY2FuY2VyLCBpbiBhbiBlZmZvcnQgdG8gZGV2ZWxvcCBhIHBsYXRlbGV0LWJhc2VkIGRpYWdub3N0aWMgKFtCZXN0IGV0IGVsLiwgMjAxNV0oaHR0cHM6Ly93d3cuY2VsbC5jb20vY2FuY2VyLWNlbGwvZnVsbHRleHQvUzE1MzUtNjEwOCgxNSkwMDM0OS05KSkuIFRoZSBkYXRhIHdhcyBkb3dubG9hZGVkIGZyb20gW0V4cHJlc3Npb24gQXRsYXNdKGh0dHBzOi8vd3d3LmViaS5hYy51ay9neGEvZXhwZXJpbWVudHMvRS1HRU9ELTY4MDg2L0Rvd25sb2FkcykuCgpgYGB7cn0KZGYgPC0gcmVhZC5jc3YoZmlsZT0iaHR0cHM6Ly9jeXRvc2NhcGUuZ2l0aHViLmlvL2N5dG9zY2FwZS10dXRvcmlhbHMvcHJvdG9jb2xzL2RhdGEvRS1HRU9ELTY4MDg2LmNzdiIsIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRSkKClJDeTM6OmxvYWRUYWJsZURhdGEoZGYsIGRhdGEua2V5LmNvbHVtbiA9ICJHZW5lLklEIiwgdGFibGUua2V5LmNvbHVtbiA9ICJFbnNlbWJsIiApCgpgYGAKCiMgRGF0YSBWaXN1YWxpemF0aW9uOiBOb2RlIEZpbGwgQ29sb3IKCldlIG5vdyBoYXZlIHRoZSBkYXRhIGluIEN5dG9zY2FwZSwgbGlua2VkIHRvIHRoZSBwYXRod2F5LCBhbmQgcmVhZHkgdG8gbWFwIHRvIHZpc3VhbCBwcm9wZXJ0aWVzIG9mIHRoZSBub2RlcyBpbiB0aGUgbmV0d29yay4gRm9yIHRoaXMgd29ya2Zsb3csIHdlIHdpbGwgY2hvb3NlIGRhdGEgZnJvbSBvbmUgb2YgdGhlIGNhbmNlciB0eXBlcywgImJyZWFzdCBjYXJjaW5vbWEiLCBhbmQgdmlzdWFsaXplIHRoZSBmb2xkIGNoYW5nZSBhcyBOb2RlIEZpbGwgQ29sb3IuCgpgYGB7cn0KUkN5Mzo6c2V0Tm9kZUNvbG9yTWFwcGluZygnWC5icmVhc3QuY2FyY2lub21hLi52cy4ubm9ybWFsLi4uZm9sZENoYW5nZScsIGNvbG9ycz1wYWxldHRlQ29sb3JCcmV3ZXJSZEJ1LCBzdHlsZS5uYW1lPSJXaWtpUGF0aHdheXMiKQpgYGAKCiMgRGF0YSBWaXN1YWxpemF0aW9uOiBOb2RlIEJvcmRlciBXaWR0aAoKV2UgYWxzbyBoYXZlIGEgc2lnbmlmaWNhbmNlIG1lYXN1cmUgZm9yIHRoZSBmb2xkIGNoYW5nZSwgd2hpY2ggd2UgY2FuIGFkZCB0byBvdXIgdmlzdWFsaXphdGlvbi4gRm9yIHRoaXMsIHdlIHdpbGwgdXNlIGJvdGggTm9kZSBCb3JkZXIgV2lkdGggYW5kIE5vZGUgQm9yZGVyIENvbG9yIHRvIHZpc3VhbGl6ZSB0aGUgcCB2YWx1ZS4gTGV0J3Mgc3RhcnQgd2l0aCBOb2RlIEJvcmRlciBXaWR0aDoKYGBge3J9ClJDeTM6OnNldE5vZGVCb3JkZXJXaWR0aE1hcHBpbmcoJ1guYnJlYXN0LmNhcmNpbm9tYS4udnMuLm5vcm1hbC4ucFZhbHVlJywgdGFibGUuY29sdW1uLnZhbHVlcz1jKDAsMC4wNSksIHdpZHRocz1jKDUsNSwxLDEpLCBtYXBwaW5nLnR5cGU9J2MnLCBzdHlsZS5uYW1lPSJXaWtpUGF0aHdheXMiKQpgYGAKCiMgRGF0YSBWaXN1YWxpemF0aW9uOiBOb2RlIEJvcmRlciBDb2xvcgoKU2lnbmlmaWNhbnQgZ2VuZXMgbm93IGhhdmUgYSB0aGlja2VyIG5vZGUgYm9yZGVyLCBidXQgd2UgY2FuIGFsc28gYWRkIGNvbG9yIHRvIGZ1cnRoZXIgdmlzdWFsaXplIHNpZ25pZmljYW50IG5vZGVzLiBXZSB3aWxsIHNldCB0aGUgZGVmYXVsdCBOb2RlIEJvcmRlciBDb2xvciB0byBkYXJrIGdyZXksIHRoZW4gdXBkYXRlIHRoZSBOb2RlIEJvcmRlciBDb2xvciBmb3Igc2lnbmlmaWNhbnQgbm9kZXMgdG8gcGluazoKYGBge3IgcmVzdWx0cz1GQUxTRX0KUkN5Mzo6c2V0Tm9kZUJvcmRlckNvbG9yRGVmYXVsdCgnIzVBNUE1QScsc3R5bGUubmFtZT0iV2lraVBhdGh3YXlzIikKClJDeTM6OnNldE5vZGVCb3JkZXJDb2xvck1hcHBpbmcoJ1guYnJlYXN0LmNhcmNpbm9tYS4udnMuLm5vcm1hbC4ucFZhbHVlJywgYygwLCAwLjA1LDAuMDUpLCBjKCcjRkMwRkMwJywgJyNGQzBGQzAnLCAnIzVBNUE1QScpLCBtYXBwaW5nLnR5cGU9J2MnLCBzdHlsZS5uYW1lPSJXaWtpUGF0aHdheXMiKQpgYGAKCldlIG5vdyBoYXZlIG91ciBleGFtcGxlIGRhdGEgdmlzdWFsaXplZCBvbiB0aGUgcGF0aHdheSwgd2l0aCBmb2xkIGNoYW5nZSByZXByZXNlbnRlZCBhcyBhIGdyYWRpZW50IG5vZGUgZmlsbCBjb2xvciBhbmQgc2lnbmlmaWNhbmNlIGFzIG5vZGUgYm9yZGVyIGNvbG9yL3dpZHRoLgoKIyBTYXZpbmcgYW5kIEV4cG9ydGluZyBEYXRhIFZpc3VhbGl6YXRpb24KYGBge3J9ClJDeTM6OnNhdmVTZXNzaW9uKCd3aWtpcGF0aHdheS1kYXRhLXZpc3VhbGl6YXRpb24tYmFzaWMnKQpSQ3kzOjpleHBvcnRJbWFnZSgnd2lraXBhdGh3YXktZGF0YS12aXN1YWxpemF0aW9uLWJhc2ljJywgdHlwZSA9ICJwbmciKQpgYGAKCg==