The R markdown is available from the pulldown menu for Code at the upper-right, choose “Download Rmd”, or download the Rmd from GitHub.


In this example, we will browse a public single cell expression atlas, explore a particular dataset, perform differential expression analysis based on provided categories, generate networks from the top genes from each category, and functionally characterize and visualize the networks.

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:

cytoscapePing()

For this vignette, you’ll need the following apps:

#available in Cytoscape 3.7.0 and above
installApp('STRINGapp')
installApp('enhancedGraphics')
installApp('cyBrowser')
installApp('cyPlot')
installApp('scNetViz')

Pull data from the EMBL-EBI Single-Cell Expression Atlas

Use the accession number of single-cell experiment to pull data from the Single-Cell Expression Atlas of EMBL-EBI.

#Load data with Accession number E-GEOD-81383
RCy3::commandsRun('scnetviz load gxa experiment accession=E-GEOD-81383')

This loads the data and opens an experiment table with three tabs, named TPM, Categories, and DiffExp.

Differential expression analysis

Run differential expression analysis for the row with true value of sel.K (default).

RCy3::commandsRun('scnetviz calculate diffexp accession=E-GEOD-81383')

##Query STRING database for interaction networks

Fetch interaction networks from the STRING database.

RCy3::commandsRun('scnetviz create network accession=E-GEOD-81383')

The following command runs both the differential expression analysis and fetches interaction networks simultaneously.

RCy3::commandsRun('scnetviz create all experiment=E-GEOD-81383')

Functional enrichment analysis

Check the networks available in the current Cytoscape session.

RCy3::commandsRun('network list')

Perform functional enrichment analysis for the network selected in the current session, which is the last network that was fetched unless another network is manually selected from Cytoscape. This uses the stringApp. To view the results in the Cytoscape application, you may have to activate the Show enrichment panel option under STRING Enrichment sub-menu from Apps from the menu bar.

RCy3::commandsRun('string retrieve enrichment allNetSpecies=Homo sapiens')

Visit the scNetViz website for more information.

LS0tCnRpdGxlOiAic2NOZXRWaXo6IEVNQkwtRUJJIFNpbmdsZSBDZWxsIEV4cHJlc3Npb24gQXRsYXMiCmF1dGhvcjogIktyaXNobmEgQ2hvdWRoYXJ5LCBBbGV4IFBpY28iCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCmBgYHtyLCBlY2hvID0gRkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldCgKICBldmFsPUZBTFNFCikKYGBgCipUaGUgUiBtYXJrZG93biBpcyBhdmFpbGFibGUgZnJvbSB0aGUgcHVsbGRvd24gbWVudSBmb3IqIENvZGUgKmF0IHRoZSB1cHBlci1yaWdodCwgY2hvb3NlICJEb3dubG9hZCBSbWQiLCBvciBbZG93bmxvYWQgdGhlIFJtZCBmcm9tIEdpdEh1Yl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2N5dG9zY2FwZS9jeXRvc2NhcGUtYXV0b21hdGlvbi9tYXN0ZXIvZm9yLXNjcmlwdGVycy9SL25vdGVib29rcy91c2UtY2FzZS0xLlJtZCkuKgoKPGhyIC8+CgpJbiB0aGlzIGV4YW1wbGUsIHdlIHdpbGwgYnJvd3NlIGEgcHVibGljIHNpbmdsZSBjZWxsIGV4cHJlc3Npb24gYXRsYXMsIGV4cGxvcmUgYSBwYXJ0aWN1bGFyIGRhdGFzZXQsIHBlcmZvcm0gZGlmZmVyZW50aWFsIGV4cHJlc3Npb24gYW5hbHlzaXMgYmFzZWQgb24gcHJvdmlkZWQgY2F0ZWdvcmllcywgZ2VuZXJhdGUgbmV0d29ya3MgZnJvbSB0aGUgdG9wIGdlbmVzIGZyb20gZWFjaCBjYXRlZ29yeSwgYW5kIGZ1bmN0aW9uYWxseSBjaGFyYWN0ZXJpemUgYW5kIHZpc3VhbGl6ZSB0aGUgbmV0d29ya3MuCgojIEluc3RhbGxhdGlvbgpgYGB7cn0KaWYoISJSQ3kzIiAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpKXsKICAgIGluc3RhbGwucGFja2FnZXMoIkJpb2NNYW5hZ2VyIikKICAgIEJpb2NNYW5hZ2VyOjppbnN0YWxsKCJSQ3kzIikKfQpsaWJyYXJ5KFJDeTMpCmBgYAoKIyBSZXF1aXJlZCBzb2Z0d2FyZQpSQ3kzIHdvcmtzIGJ5IGNvbm5lY3Rpbmcgd2l0aCBDeXRvc2NhcGUuIFlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCBhbmQgbGF1bmNoIEN5dG9zY2FwZToKCiogRG93bmxvYWQgdGhlIGxhdGVzdCBDeXRvc2NhcGUgZnJvbSBodHRwOi8vd3d3LmN5dG9zY2FwZS5vcmcvZG93bmxvYWQucGhwCiogQ29tcGxldGUgaW5zdGFsbGF0aW9uIHdpemFyZAoqIExhdW5jaCBDeXRvc2NhcGUKCgpgYGB7cn0KY3l0b3NjYXBlUGluZygpCmBgYAoKRm9yIHRoaXMgdmlnbmV0dGUsIHlvdeKAmWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhcHBzOiAKCiogdGhlIFtTVFJJTkddKGh0dHBzOi8vc3RyaW5nLWRiLm9yZy8pIGFwcCwgCiogdGhlIFtlbmhhbmNlZEdyYXBoaWNzXShodHRwczovL3d3dy5jZ2wudWNzZi5lZHUvY3l0b3NjYXBlL3V0aWxpdGllczMvZW5oYW5jZWRjZy5zaHRtbCkgYXBwLCAKKiB0aGUgW2N5QnJvd3Nlcl0oaHR0cHM6Ly93d3cuY2dsLnVjc2YuZWR1L2N5dG9zY2FwZS91dGlsaXRpZXMzL2N5YnJvd3Nlci5zaHRtbCkgYXBwLCBhbmQKKiB0aGUgW2N5UGxvdF0oaHR0cDovL2FwcHMuY3l0b3NjYXBlLm9yZy9hcHBzL2N5cGxvdCkgYXBwLgoKYGBge3J9CiNhdmFpbGFibGUgaW4gQ3l0b3NjYXBlIDMuNy4wIGFuZCBhYm92ZQppbnN0YWxsQXBwKCdTVFJJTkdhcHAnKQppbnN0YWxsQXBwKCdlbmhhbmNlZEdyYXBoaWNzJykKaW5zdGFsbEFwcCgnY3lCcm93c2VyJykKaW5zdGFsbEFwcCgnY3lQbG90JykKaW5zdGFsbEFwcCgnc2NOZXRWaXonKQpgYGAKCiMgUHVsbCBkYXRhIGZyb20gdGhlIEVNQkwtRUJJIFNpbmdsZS1DZWxsIEV4cHJlc3Npb24gQXRsYXMKVXNlIHRoZSBhY2Nlc3Npb24gbnVtYmVyIG9mIHNpbmdsZS1jZWxsIGV4cGVyaW1lbnQgdG8gcHVsbCBkYXRhIGZyb20gdGhlICBbU2luZ2xlLUNlbGwgRXhwcmVzc2lvbiBBdGxhc10oaHR0cHM6Ly93d3cuZWJpLmFjLnVrL2d4YS9zYy9leHBlcmltZW50cykgb2YgRU1CTC1FQkkuCgoKYGBge3J9CiNMb2FkIGRhdGEgd2l0aCBBY2Nlc3Npb24gbnVtYmVyIEUtR0VPRC04MTM4MwpSQ3kzOjpjb21tYW5kc1J1bignc2NuZXR2aXogbG9hZCBneGEgZXhwZXJpbWVudCBhY2Nlc3Npb249RS1HRU9ELTgxMzgzJykKYGBgCgpUaGlzIGxvYWRzIHRoZSBkYXRhIGFuZCBvcGVucyBhbiBleHBlcmltZW50IHRhYmxlIHdpdGggdGhyZWUgdGFicywgbmFtZWQgX1RQTV8sIF9DYXRlZ29yaWVzXywgYW5kIF9EaWZmRXhwXy4gCgojIERpZmZlcmVudGlhbCBleHByZXNzaW9uIGFuYWx5c2lzCgpSdW4gZGlmZmVyZW50aWFsIGV4cHJlc3Npb24gYW5hbHlzaXMgZm9yIHRoZSByb3cgd2l0aCBgdHJ1ZWAgdmFsdWUgb2YgYHNlbC5LYCAoZGVmYXVsdCkuIApgYGB7cn0KUkN5Mzo6Y29tbWFuZHNSdW4oJ3NjbmV0dml6IGNhbGN1bGF0ZSBkaWZmZXhwIGFjY2Vzc2lvbj1FLUdFT0QtODEzODMnKQpgYGAKCiMjUXVlcnkgU1RSSU5HIGRhdGFiYXNlIGZvciBpbnRlcmFjdGlvbiBuZXR3b3JrcwoKRmV0Y2ggaW50ZXJhY3Rpb24gbmV0d29ya3MgZnJvbSB0aGUgW1NUUklOR10oaHR0cHM6Ly9zdHJpbmctZGIub3JnLykgZGF0YWJhc2UuCgpgYGB7cn0KUkN5Mzo6Y29tbWFuZHNSdW4oJ3NjbmV0dml6IGNyZWF0ZSBuZXR3b3JrIGFjY2Vzc2lvbj1FLUdFT0QtODEzODMnKQpgYGAKClRoZSBmb2xsb3dpbmcgY29tbWFuZCBydW5zIGJvdGggdGhlIGRpZmZlcmVudGlhbCBleHByZXNzaW9uIGFuYWx5c2lzIGFuZCBmZXRjaGVzIGludGVyYWN0aW9uIG5ldHdvcmtzIHNpbXVsdGFuZW91c2x5LgpgYGB7cn0KUkN5Mzo6Y29tbWFuZHNSdW4oJ3NjbmV0dml6IGNyZWF0ZSBhbGwgZXhwZXJpbWVudD1FLUdFT0QtODEzODMnKQpgYGAKCiMgRnVuY3Rpb25hbCBlbnJpY2htZW50IGFuYWx5c2lzCgpDaGVjayB0aGUgbmV0d29ya3MgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IEN5dG9zY2FwZSBzZXNzaW9uLgpgYGB7ciByZXN1bHRzPUZBTFNFfQpSQ3kzOjpjb21tYW5kc1J1bignbmV0d29yayBsaXN0JykKYGBgCgpQZXJmb3JtIGZ1bmN0aW9uYWwgZW5yaWNobWVudCBhbmFseXNpcyBmb3IgdGhlIG5ldHdvcmsgc2VsZWN0ZWQgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiwgd2hpY2ggaXMgdGhlIGxhc3QgbmV0d29yayB0aGF0IHdhcyBmZXRjaGVkIHVubGVzcyBhbm90aGVyIG5ldHdvcmsgaXMgbWFudWFsbHkgc2VsZWN0ZWQgZnJvbSBDeXRvc2NhcGUuIFRoaXMgdXNlcyB0aGUgW19zdHJpbmdBcHBfXShodHRwczovL3d3dy5jZ2wudWNzZi5lZHUvY3l0b3NjYXBlL3N0cmluZ0FwcC9pbmRleC5zaHRtbCkuIFRvIHZpZXcgdGhlIHJlc3VsdHMgaW4gdGhlIEN5dG9zY2FwZSBhcHBsaWNhdGlvbiwgeW91IG1heSBoYXZlIHRvIGFjdGl2YXRlIHRoZSBfU2hvdyBlbnJpY2htZW50IHBhbmVsXyBvcHRpb24gdW5kZXIgX19TVFJJTkcgRW5yaWNobWVudF9fIHN1Yi1tZW51IGZyb20gX19BcHBzX18gZnJvbSB0aGUgbWVudSBiYXIuCgpgYGB7cn0KUkN5Mzo6Y29tbWFuZHNSdW4oJ3N0cmluZyByZXRyaWV2ZSBlbnJpY2htZW50IGFsbE5ldFNwZWNpZXM9SG9tbyBzYXBpZW5zJykKYGBgCgpWaXNpdCB0aGUgW3NjTmV0Vml6IHdlYnNpdGVdKGh0dHBzOi8vd3d3LmNnbC51Y3NmLmVkdS9jeXRvc2NhcGUvc2NOZXRWaXovI25ldHdvcmtzKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4K