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