The R markdown is available from the pulldown menu for Code
at the upper-right, choose “Download Rmd”, or download the Rmd from GitHub.
Cytoscape includes many automatic layout algorithms, for organizing the network visually. All available layout algorithms are listed in the Layout menu, including any layout aglorithms loaded by apps. This tutorial will describe how to apply a layout to your network, give a few examples of commonly used layout algorithms, and describe how layout algorithm parameters can be adjusted.
Installation
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
if(!"RCy3" %in% installed.packages())
BiocManager::install("RCy3")
library(RCy3)
Getting started
First, launch Cytoscape and keep it running whenever using RCy3. Confirm that you have everything installed and running:
cytoscapePing()
cytoscapeVersionInfo()
Applying a Layout Algorithm
Load the galFiltered.cys session file.
Use “fitContent” to see the whole network:
The network layout used in this session file is the Prefuse Force Directed Layout. This layout is based on the algorithm implemented as part of the prefuse toolkit. The algorithm is very fast and with the right parameters can provide a very visually pleasing layout. The Force Directed Layout can also use a numeric edge attribute as a weight for the length of the spring.
Examples of Layout Algorithms
Similarly to Prefuse Force Directed, the Edge-weighted spring-embedded layout is also based on a “force-directed” paradigm as implemented by Kamada and Kawai (1988). Network nodes are treated like physical objects that repel each other, such as electrons. The connections between nodes are treated like metal springs attached to the pair of nodes. These springs repel or attract their end points according to a force function. The layout algorithm sets the positions of the nodes in a way that minimizes the sum of forces in the network.
layoutNetwork('kamada-kawai')
The circular algorithm produces layouts that emphasize group and tree structures within a network. It partitions the network by analyzing its connectivity structure, and arranges the partitions as separate circles. The circles themselves are arranged in a radial tree layout fashion.
layoutNetwork('circular')
The Compound Spring Embedder (CoSE) layout is based on the traditional force-directed layout algorithm with extensions to handle multi-level nesting (compound nodes), edges between nodes of arbitrary nesting levels and varying node sizes. It is the suggested Cytoscape layout for compound graphs, although it also works very well with noncompound graphs.
Layout Settings
To change the settings for a particular algorithm, first you need to check the relevant set of parameters. The following code chunk will display the parameter names.
getLayoutPropertyNames('cose')
To change the settings for a particular algorithm:
setLayoutProperties('cose', list(incremental='false', idealEdgeLength=50, springStrength=50, repulsionStrength=50, gravityStrength=50, compoundGravityStrength=50, gravityRange=50, compoundGravityRange=50, smartEdgeLengthCalc='true', smartRepulsionRangeCalc='true'))
LS0tCnRpdGxlOiAiTmV0d29yayBMYXlvdXQiCmF1dGhvcjogIktvem8gTmlzaGlkYSwgS3Jpc3RpbmEgSGFuc3BlcnMgYW5kIEFsZXggUGljbyIKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIGRmX3ByaW50OiBwYWdlZAogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2NfZmxvYXQ6IHllcwogICAgY29kZV9mb2xkaW5nOiBub25lCi0tLQpgYGB7ciwgZWNobyA9IEZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoCiAgZXZhbD1GQUxTRQopCmBgYAoKKlRoZSBSIG1hcmtkb3duIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBwdWxsZG93biBtZW51IGZvciogQ29kZSAqYXQgdGhlIHVwcGVyLXJpZ2h0LCBjaG9vc2UgIkRvd25sb2FkIFJtZCIsIG9yIFtkb3dubG9hZCB0aGUgUm1kIGZyb20gR2l0SHViXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3l0b3NjYXBlL2N5dG9zY2FwZS1hdXRvbWF0aW9uL21hc3Rlci9mb3Itc2NyaXB0ZXJzL1Ivbm90ZWJvb2tzL25ldHdvcmstbGF5b3V0LlJtZCkuKgo8aHIgLz4KCkN5dG9zY2FwZSBpbmNsdWRlcyBtYW55IGF1dG9tYXRpYyBsYXlvdXQgYWxnb3JpdGhtcywgZm9yIG9yZ2FuaXppbmcgdGhlIG5ldHdvcmsgdmlzdWFsbHkuIEFsbCBhdmFpbGFibGUgbGF5b3V0IGFsZ29yaXRobXMgYXJlIGxpc3RlZCBpbiB0aGUgKipMYXlvdXQqKiBtZW51LCBpbmNsdWRpbmcgYW55IGxheW91dCBhZ2xvcml0aG1zIGxvYWRlZCBieSBhcHBzLiBUaGlzIHR1dG9yaWFsIHdpbGwgZGVzY3JpYmUgaG93IHRvIGFwcGx5IGEgbGF5b3V0IHRvIHlvdXIgbmV0d29yaywgZ2l2ZSBhIGZldyBleGFtcGxlcyBvZiBjb21tb25seSB1c2VkIGxheW91dCBhbGdvcml0aG1zLCBhbmQgZGVzY3JpYmUgaG93IGxheW91dCBhbGdvcml0aG0gcGFyYW1ldGVycyBjYW4gYmUgYWRqdXN0ZWQuCgo8aHIgLz4KCiMgSW5zdGFsbGF0aW9uCmBgYHtyLCBldmFsID0gRkFMU0V9CmlmICghcmVxdWlyZU5hbWVzcGFjZSgiQmlvY01hbmFnZXIiLCBxdWlldGx5ID0gVFJVRSkpCiAgaW5zdGFsbC5wYWNrYWdlcygiQmlvY01hbmFnZXIiKQoKaWYoISJSQ3kzIiAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpKQogIEJpb2NNYW5hZ2VyOjppbnN0YWxsKCJSQ3kzIikKCmxpYnJhcnkoUkN5MykKYGBgCgojIEdldHRpbmcgc3RhcnRlZApGaXJzdCwgbGF1bmNoIEN5dG9zY2FwZSBhbmQga2VlcCBpdCBydW5uaW5nIHdoZW5ldmVyIHVzaW5nIFJDeTMuIENvbmZpcm0gdGhhdCB5b3UgaGF2ZSBldmVyeXRoaW5nIGluc3RhbGxlZCBhbmQgcnVubmluZzoKYGBge3J9CmN5dG9zY2FwZVBpbmcoKQpjeXRvc2NhcGVWZXJzaW9uSW5mbygpCmBgYAoKIyBBcHBseWluZyBhIExheW91dCBBbGdvcml0aG0KCkxvYWQgdGhlIFtnYWxGaWx0ZXJlZC5jeXNdKGh0dHBzOi8vY3l0b3NjYXBlLmdpdGh1Yi5pby9jeXRvc2NhcGUtdHV0b3JpYWxzL3Byb3RvY29scy9kYXRhL2dhbEZpbHRlcmVkLnN5cykgc2Vzc2lvbiBmaWxlLgoKYGBge3J9Cm9wZW5TZXNzaW9uKCkKYGBgCgpVc2UgImZpdENvbnRlbnQiIHRvIHNlZSB0aGUgd2hvbGUgbmV0d29yazoKCmBgYHtyfQpmaXRDb250ZW50KCkKYGBgCjxjZW50ZXI+CiFbXSguL2RhdGEvaW1nL3ByZWZ1c2UucG5nKTwvY2VudGVyPgoKVGhlIG5ldHdvcmsgbGF5b3V0IHVzZWQgaW4gdGhpcyBzZXNzaW9uIGZpbGUgaXMgdGhlICoqUHJlZnVzZSBGb3JjZSBEaXJlY3RlZCBMYXlvdXQqKi4gVGhpcyBsYXlvdXQgaXMgYmFzZWQgb24gdGhlIGFsZ29yaXRobSBpbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIHRoZSBbcHJlZnVzZSB0b29sa2l0XShodHRwOi8vd3d3LnByZWZ1c2Uub3JnLykuClRoZSBhbGdvcml0aG0gaXMgdmVyeSBmYXN0IGFuZCB3aXRoIHRoZSByaWdodCBwYXJhbWV0ZXJzIGNhbiBwcm92aWRlIGEgdmVyeSB2aXN1YWxseSBwbGVhc2luZyBsYXlvdXQuIFRoZSBGb3JjZSBEaXJlY3RlZCBMYXlvdXQgY2FuIGFsc28gdXNlIGEgbnVtZXJpYyBlZGdlIGF0dHJpYnV0ZSBhcyBhIHdlaWdodCBmb3IgdGhlIGxlbmd0aCBvZiB0aGUgc3ByaW5nLgoKIyBMYXlvdXQgTWVudQoKQXZhaWxhYmxlIGxheW91dHMgY2FuIGJlIGZvdW5kIGZyb206CgpgYGB7cn0KZ2V0TGF5b3V0TmFtZXMoKQpgYGAKCk5vdGUgdGhhdCBzb21lIEN5dG9zY2FwZSBhcHBzIG1heSBhZGQgYWRkaXRpb25hbCBsYXlvdXQgYWxnb3JpdGhtcyB0byB0aGUgTGF5b3V0IG1lbnUgc28gdGhlIGxpc3Rpbmcgb2YgYXZhaWxhYmxlIGxheW91dHMgbWF5IGJlIGluZmx1ZW5jZWQgYnkgd2hpY2ggYXBwcyB5b3UgaGF2ZSBsb2FkZWQuCgpJbiBhZGRpdGlvbiB0byB0aGUgYnVpbHQtaW4gbGF5b3V0IGFsZ29yaXRobXMgYXZhaWxhYmxlIGJ5IGRlZmF1bHQsIGEgc2V0IG9mIHlGaWxlcyBsYXlvdXRzIGFyZSBhdmFpbGFibGUgZm9yIGluc3RhbGxhdGlvbi4KKEJ1dCB5RmlsZXMgZG9lcyBub3Qgc3VwcG9ydCBDeXRvc2NhcGUgQXV0b21hdGlvbiBhbmQgY2Fubm90IGJlIGNvbnRyb2xsZWQgZnJvbSBSQ3kzLikKCmBgYHtyfQppbnN0YWxsQXBwKCd5RmlsZXMgTGF5b3V0IEFsZ29yaXRobXMnKQpgYGAKClRoZXNlIHJlcXVpcmUgYSBsaWNlbnNlIGFncmVlbWVudC4KCiMgRXhhbXBsZXMgb2YgTGF5b3V0IEFsZ29yaXRobXMKClNpbWlsYXJseSB0byBQcmVmdXNlIEZvcmNlIERpcmVjdGVkLCB0aGUgKipFZGdlLXdlaWdodGVkIHNwcmluZy1lbWJlZGRlZCoqIGxheW91dCBpcyBhbHNvIGJhc2VkIG9uIGEg4oCcZm9yY2UtZGlyZWN0ZWTigJ0gcGFyYWRpZ20gYXMgaW1wbGVtZW50ZWQgYnkgS2FtYWRhIGFuZCBLYXdhaSAoMTk4OCkuCk5ldHdvcmsgbm9kZXMgYXJlIHRyZWF0ZWQgbGlrZSBwaHlzaWNhbCBvYmplY3RzIHRoYXQgcmVwZWwgZWFjaCBvdGhlciwgc3VjaCBhcyBlbGVjdHJvbnMuIFRoZSBjb25uZWN0aW9ucyBiZXR3ZWVuIG5vZGVzIGFyZSB0cmVhdGVkIGxpa2UgbWV0YWwgc3ByaW5ncyBhdHRhY2hlZCB0byB0aGUgcGFpciBvZiBub2Rlcy4gVGhlc2Ugc3ByaW5ncyByZXBlbCBvciBhdHRyYWN0IHRoZWlyIGVuZCBwb2ludHMgYWNjb3JkaW5nIHRvIGEgZm9yY2UgZnVuY3Rpb24uIFRoZSBsYXlvdXQgYWxnb3JpdGhtIHNldHMgdGhlIHBvc2l0aW9ucyBvZiB0aGUgbm9kZXMgaW4gYSB3YXkgdGhhdCBtaW5pbWl6ZXMgdGhlIHN1bSBvZiBmb3JjZXMgaW4gdGhlIG5ldHdvcmsuCgpgYGB7cn0KbGF5b3V0TmV0d29yaygna2FtYWRhLWthd2FpJykKYGBgCjxjZW50ZXI+CiFbXSguL2RhdGEvaW1nL2VkZ2V3ZWlnaHRlZC5wbmcpPC9jZW50ZXI+CgpUaGUgKipjaXJjdWxhcioqIGFsZ29yaXRobSBwcm9kdWNlcyBsYXlvdXRzIHRoYXQgZW1waGFzaXplIGdyb3VwIGFuZCB0cmVlIHN0cnVjdHVyZXMgd2l0aGluIGEgbmV0d29yay4KSXQgcGFydGl0aW9ucyB0aGUgbmV0d29yayBieSBhbmFseXppbmcgaXRzIGNvbm5lY3Rpdml0eSBzdHJ1Y3R1cmUsIGFuZCBhcnJhbmdlcyB0aGUgcGFydGl0aW9ucyBhcyBzZXBhcmF0ZSBjaXJjbGVzLgpUaGUgY2lyY2xlcyB0aGVtc2VsdmVzIGFyZSBhcnJhbmdlZCBpbiBhIHJhZGlhbCB0cmVlIGxheW91dCBmYXNoaW9uLgoKYGBge3J9CmxheW91dE5ldHdvcmsoJ2NpcmN1bGFyJykKYGBgCgo8Y2VudGVyPgohW10oLi9kYXRhL2ltZy9jaXJjdWxhci5wbmcpPC9jZW50ZXI+CgpUaGUgKipDb21wb3VuZCBTcHJpbmcgRW1iZWRkZXIgKENvU0UpIGxheW91dCoqIGlzIGJhc2VkIG9uIHRoZSB0cmFkaXRpb25hbCBmb3JjZS1kaXJlY3RlZCBsYXlvdXQgYWxnb3JpdGhtIHdpdGggZXh0ZW5zaW9ucyB0byBoYW5kbGUgbXVsdGktbGV2ZWwgbmVzdGluZyAoY29tcG91bmQgbm9kZXMpLCBlZGdlcyBiZXR3ZWVuIG5vZGVzIG9mIGFyYml0cmFyeSBuZXN0aW5nIGxldmVscyBhbmQgdmFyeWluZyBub2RlIHNpemVzLgpJdCBpcyB0aGUgc3VnZ2VzdGVkIEN5dG9zY2FwZSBsYXlvdXQgZm9yIGNvbXBvdW5kIGdyYXBocywgYWx0aG91Z2ggaXQgYWxzbyB3b3JrcyB2ZXJ5IHdlbGwgd2l0aCBub25jb21wb3VuZCBncmFwaHMuCgpgYGB7cn0KbGF5b3V0TmV0d29yaygnY29zZScpCmBgYAo8Y2VudGVyPgohW10oLi9kYXRhL2ltZy9jb3NlLnBuZyk8L2NlbnRlcj4KCiMgTGF5b3V0IFNldHRpbmdzCgpUbyBjaGFuZ2UgdGhlIHNldHRpbmdzIGZvciBhIHBhcnRpY3VsYXIgYWxnb3JpdGhtLCBmaXJzdCB5b3UgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgc2V0IG9mIHBhcmFtZXRlcnMuIFRoZSBmb2xsb3dpbmcgY29kZSBjaHVuayB3aWxsIGRpc3BsYXkgdGhlIHBhcmFtZXRlciBuYW1lcy4KCmBgYHtyfQpnZXRMYXlvdXRQcm9wZXJ0eU5hbWVzKCdjb3NlJykKYGBgCgpUbyBjaGFuZ2UgdGhlIHNldHRpbmdzIGZvciBhIHBhcnRpY3VsYXIgYWxnb3JpdGhtOgoKYGBge3J9CnNldExheW91dFByb3BlcnRpZXMoJ2Nvc2UnLCBsaXN0KGluY3JlbWVudGFsPSdmYWxzZScsIGlkZWFsRWRnZUxlbmd0aD01MCwgc3ByaW5nU3RyZW5ndGg9NTAsIHJlcHVsc2lvblN0cmVuZ3RoPTUwLCBncmF2aXR5U3RyZW5ndGg9NTAsIGNvbXBvdW5kR3Jhdml0eVN0cmVuZ3RoPTUwLCBncmF2aXR5UmFuZ2U9NTAsIGNvbXBvdW5kR3Jhdml0eVJhbmdlPTUwLCBzbWFydEVkZ2VMZW5ndGhDYWxjPSd0cnVlJywgc21hcnRSZXB1bHNpb25SYW5nZUNhbGM9J3RydWUnKSkKYGBg