<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" "http://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="other" dtd-version="1.2" xml:lang="en">
    <front>
        <journal-meta>
            <journal-id journal-id-type="pmc">F1000Research</journal-id>
            <journal-title-group>
                <journal-title>F1000Research</journal-title>
            </journal-title-group>
            <issn pub-type="epub">2046-1402</issn>
            <publisher>
                <publisher-name>F1000 Research Limited</publisher-name>
                <publisher-loc>London, UK</publisher-loc>
            </publisher>
        </journal-meta>
        <article-meta>
            <article-id pub-id-type="doi">10.12688/f1000research.20887.3</article-id>
            <article-categories>
                <subj-group subj-group-type="heading">
                    <subject>Software Tool Article</subject>
                </subj-group>
                <subj-group>
                    <subject>Articles</subject>
                </subj-group>
            </article-categories>
            <title-group>
                <article-title>RCy3: Network biology using Cytoscape from within R</article-title>
                <fn-group content-type="pub-status">
                    <fn>
                        <p>[version 3; peer review: 3 approved]</p>
                    </fn>
                </fn-group>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Gustavsen</surname>
                        <given-names>Julia A.</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-4764-4802</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Pai</surname>
                        <given-names>Shraddha</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-1048-581X</uri>
                    <xref ref-type="aff" rid="a2">2</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Isserlin</surname>
                        <given-names>Ruth</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Visualization</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-6805-2080</uri>
                    <xref ref-type="aff" rid="a2">2</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Demchak</surname>
                        <given-names>Barry</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Funding Acquisition</role>
                    <role content-type="http://credit.niso.org/">Project Administration</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <xref ref-type="aff" rid="a3">3</xref>
                </contrib>
                <contrib contrib-type="author" corresp="yes">
                    <name>
                        <surname>Pico</surname>
                        <given-names>Alexander R.</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Funding Acquisition</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Project Administration</role>
                    <role content-type="http://credit.niso.org/">Resources</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Supervision</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Visualization</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0001-5706-2163</uri>
                    <xref ref-type="corresp" rid="c1">a</xref>
                    <xref ref-type="aff" rid="a4">4</xref>
                </contrib>
                <aff id="a1">
                    <label>1</label>University of British Columbia, Vancouver, B.C., Canada</aff>
                <aff id="a2">
                    <label>2</label>The Donnelly Centre, University of Toronto, Toronto, ON, Canada</aff>
                <aff id="a3">
                    <label>3</label>Department of Medicine, University of California at San Diego, La Jolla, CA, USA</aff>
                <aff id="a4">
                    <label>4</label>Institute of Data Science and Biotechnology, Gladstone Institutes, San Francisco, CA, USA</aff>
            </contrib-group>
            <author-notes>
                <corresp id="c1">
                    <label>a</label>
                    <email xlink:href="mailto:alex.pico@gladstone.ucsf.edu">alex.pico@gladstone.ucsf.edu</email>
                </corresp>
                <fn fn-type="conflict">
                    <p>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>4</day>
                <month>12</month>
                <year>2019</year>
            </pub-date>
            <pub-date pub-type="collection">
                <year>2019</year>
            </pub-date>
            <volume>8</volume>
            <elocation-id>1774</elocation-id>
            <history>
                <date date-type="accepted">
                    <day>2</day>
                    <month>12</month>
                    <year>2019</year>
                </date>
            </history>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2019 Gustavsen JA et al.</copyright-statement>
                <copyright-year>2019</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access article distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <self-uri content-type="pdf" xlink:href="https://f1000research.com/articles/8-1774/pdf"/>
            <abstract>
                <p>RCy3 is an R package in Bioconductor that communicates with Cytoscape via its REST API, providing access to the full feature set of Cytoscape from within the R programming environment. RCy3 has been redesigned to streamline its usage and future development as part of a broader Cytoscape Automation effort. Over 100 new functions have been added, including dozens of helper functions specifically for intuitive data overlay operations. Over 40 Cytoscape apps have implemented automation support so far, making hundreds of additional operations accessible via RCy3. Two-way conversion with networks from 
                    <italic toggle="yes">igraph</italic> and 
                    <italic toggle="yes">graph</italic> ensures interoperability with existing network biology workflows and dozens of other Bioconductor packages. These capabilities are demonstrated in a series of use cases involving public databases, enrichment analysis pipelines, shortest path algorithms and more. With RCy3, bioinformaticians will be able to quickly deliver reproducible network biology workflows as integrations of Cytoscape functions, complex custom analyses and other R packages.</p>
            </abstract>
            <kwd-group kwd-group-type="author">
                <kwd>Bioconductor</kwd>
                <kwd>Cytoscape</kwd>
                <kwd>Automation</kwd>
                <kwd>Scripting</kwd>
                <kwd>Network biology</kwd>
            </kwd-group>
            <funding-group>
                <award-group id="fund-1" xlink:href="http://dx.doi.org/10.13039/100006785">
                    <funding-source>Google</funding-source>
                </award-group>
                <award-group id="fund-2" xlink:href="http://dx.doi.org/10.13039/100000057">
                    <funding-source>National Institute of General Medical Sciences</funding-source>
                    <award-id>P41GM103504</award-id>
                </award-group>
                <funding-statement>AP, BD, RI and SP were supported by NIGMS P41GM103504 for the National Resource for Network Biology.JAG was supported by Google Summer of Code.</funding-statement>
                <funding-statement>
                    <italic>The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.</italic>
                </funding-statement>
            </funding-group>
        </article-meta>
        <notes>
            <sec sec-type="version-changes">
                <label>Revised</label>
                <title>Amendments from Version 2</title>
                <p>In response to reviewer suggestions, we added another network-related package to Table 2 and swapped in "TRUE" for "T" in a code snippet.</p>
            </sec>
        </notes>
    </front>
    <body>
        <sec>
            <title>Introduction</title>
            <p>In the domain of biology, network models serve as useful representations of interactions, whether social, neural or molecular. Since 2003, Cytoscape has provided a free, open-source software platform for network analysis and visualization that has been widely adopted in biological and biomedical research fields
                <sup>
                    <xref ref-type="bibr" rid="ref-1">1</xref>
                </sup>. The Cytoscape platform supports community-developed extensions, called apps, that can access third-party databases, offer new layouts, add analytical algorithms, support additional data types, and much more
                <sup>
                    <xref ref-type="bibr" rid="ref-2">2</xref>,
                    <xref ref-type="bibr" rid="ref-3">3</xref>
                </sup>.</p>
            <p>In 2011, the CytoscapeRPC app was created to enable R-based workflows to exercise Cytoscape v2 functionality via functions in the corresponding RCytoscape R package over XML-RPC communications protocols
                <sup>
                    <xref ref-type="bibr" rid="ref-4">4</xref>
                </sup>. In 2015, the CyREST app was created to enable R-based workflows to exercise Cytoscape v3 functionality. This was achieved by the first version of the RCy3 R package, which re-implemented much of RCytoscape&#x2019;s organization, data structures and syntax over REST communications protocols
                <sup>
                    <xref ref-type="bibr" rid="ref-3">3</xref>,
                    <xref ref-type="bibr" rid="ref-5">5</xref>
                </sup>.</p>
            <p>Here, we describe version 2.0 of the 
                <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/html/RCy3.html">RCy3</ext-link> package, which is better aligned with Cytoscape&#x2019;s CyREST API. We have rewritten every function, deprecated 43 functions and added over 100 new functions. This work provides a more intuitive and productive experience for Cytoscape users learning about the RCy3 package, and it positions RCy3 to take advantage of future Cytoscape Automation
                <sup>
                    <xref ref-type="bibr" rid="ref-6">6</xref>
                </sup> development and evolution. The goal of this paper is to describe the implementation and operation of the updated RCy3 package and to provide detailed use cases relevant to network biology applications in common and advanced bioinformatics workflows.</p>
        </sec>
        <sec>
            <title>Methods</title>
            <sec>
                <title>Design and Implementation</title>
                <p>
                    <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/html/RCy3.html">RCy3</ext-link> is a component of Cytoscape Automation. At the core of Cytoscape Automation is CyREST, which implements an interface to the Cytoscape Java application via the REST protocol
                    <sup>
                        <xref ref-type="bibr" rid="ref-6">6</xref>
                    </sup>. A collection of GET, POST, PUT and DELETE operations practically cover the complete feature set of the Cytoscape desktop software. Additional features, including those provided by user-installed Cytoscape apps, are covered by a separate command-line interface called Commands (
                    <xref ref-type="fig" rid="f1">Figure 1</xref>). For version 2.0, we redesigned the RCy3 package to parallel CyREST and Commands APIs to standardize the syntax and organization of its functions and streamline its future development. RCy3 functions are grouped into categories to aid the parallel development with Cytoscape Automation APIs and to facilitate navigation and comprehension of the overall package (
                    <xref ref-type="table" rid="T1">Table 1</xref>).</p>
                <fig fig-type="figure" id="f1" orientation="portrait" position="float">
                    <label>Figure 1. </label>
                    <caption>
                        <title>The Cytoscape Automation stack.</title>
                        <p>The Java desktop version of Cytoscape (bottom) supports Commands (red) and CyREST (green) interfaces for scripting and automation either directly (blue) or via R and Python harmonization libraries (purple).</p>
                    </caption>
                    <graphic orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/23766/c8e09404-3c69-4ff1-b49e-23c0da177dd4_figure1.gif"/>
                </fig>
                <table-wrap id="T1" orientation="portrait" position="anchor">
                    <label>Table 1. </label>
                    <caption>
                        <title>Organization of RCy3 functions.</title>
                        <p>The categories correspond to separate R files in the package. Brief descriptions and example functions are listed for each category.</p>
                    </caption>
                    <table content-type="article-table" frame="hsides">
                        <thead>
                            <tr>
                                <th align="left" colspan="1" rowspan="1" valign="top">Category</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Description</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Examples</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Apps</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Inspecting and managing apps for Cytoscape</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">installApp
                                    <break/>disableApp
                                    <break/>getInstalledApps</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Collections</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Getting information about network collections</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">getCollectionList
                                    <break/>getCollectionNetworks</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Commands</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Constructing any arbitrary CyREST API or Commands API method via standard GET, PUT,
                                    <break/>POST and DELETE protocols</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">cyrestGET
                                    <break/>commandsPOST
                                    <break/>cyrestAPI</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">CyNDEx</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Communicating with NDEx from within Cytoscape</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">importNetworkFromNDEx
                                    <break/>exportNetworkToNDEx</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Cytoscape System</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Checking Cytoscape System information, including versions and memory usage</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">cytoscapePing
                                    <break/>cytoscapeVersionInfo</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Filters</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Selecting nodes and edges based on filter criteria</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">createDegreeFilter
                                    <break/>createColumnFilter</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Groups</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Working with groups in Cytoscape</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">createGroup
                                    <break/>collapseGroup</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Layouts</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Performing layouts in addition to getting and setting layout properties</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">layoutNetwork
                                    <break/>getLayoutNames</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Networks</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Creating and managing networks and retrieving information on networks, nodes and edges</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">createNetworkFrom*
                                    <break/>create*FromNetwork
                                    <break/>getNetworkSuid
                                    <break/>exportNetwork
                                    <break/>getAllNodes
                                    <break/>getEdgeCount
                                    <break/>getFirstNeighbors</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Network Selection</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Manipulating selection of nodes and edges in networks</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">selectNodes
                                    <break/>invertNodeSelection
                                    <break/>selectFirstNeighbors</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Network Views</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Performing view operations in addition to getting and setting view properties</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">getCurrentView
                                    <break/>fitContent
                                    <break/>exportImage
                                    <break/>toggleGraphicsDetails</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Session</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Managing Cytoscape sessions, including save, open and close</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">openSession
                                    <break/>saveSession
                                    <break/>closeSession</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Style Bypasses</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Setting and clearing bypass values for visual properties</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">setNodeColorBypass
                                    <break/>setEdgeLineStyleBypass
                                    <break/>hideNodes</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Style Defaults</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Getting and setting default values for visual properties</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">setNodeShapeDefault
                                    <break/>setEdgeLineWidthDefault</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Style Dependencies</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Getting and setting style dependencies</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">lockNodeDimensions</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Style Mappings</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Defining mappings between table column values and visual properties</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">mapVisualProperty
                                    <break/>updateStyleMapping
                                    <break/>setNodeSizeMapping
                                    <break/>setEdgeColorMapping</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Style Values</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Retrieving current values for visual properties</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">getNodeWidth
                                    <break/>getEdgeColor
                                    <break/>getNetworkZoom</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Styles</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Managing styles and retrieving general lists of properties relevant to multiple style modes</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">createVisualStyle
                                    <break/>exportVisualStyles
                                    <break/>getArrowShapes</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Tables</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Managing table columns and table column functions, like map and rename, as well as
                                    <break/>loading and extracting table data in Cytoscape</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">getTableColumns
                                    <break/>renameTableColumn
                                    <break/>loadTableData
                                    <break/>mapTableColumn</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Tools</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Performing actions found in the Tools Menu in Cytoscape</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">cybrowserDialog
                                    <break/>diffusionBasic</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">User Interface</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">Controling the panels in the Cytoscape user interface</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">hidePanel
                                    <break/>floatPanel</td>
                            </tr>
                        </tbody>
                    </table>
                </table-wrap>
            </sec>
            <sec>
                <title>The basics</title>
                <p>All RCy3 functions are ultimately implemented as calls to a small set of utility functions that execute the CyREST or Commands REST protocol (e.g., 
                    <monospace>
                        <styled-content style="#000000" style-type="color">cyrestGET</styled-content>
                    </monospace> and 
                    <monospace>
                        <styled-content style="#000000" style-type="color">commandsPOST</styled-content>
                    </monospace>). The internals of these functions handle the composition of operations and parameters to be sent via 
                    <italic toggle="yes">
                        <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/web/packages/httr/index.html">httr</ext-link>
                    </italic> functions to CyREST, as well as the processing of results from JSON to appropriate R objects using 
                    <italic toggle="yes">
                        <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/web/packages/RJSONIO/index.html">RJSONIO</ext-link>
                    </italic>.</p>
                <p>In most RCy3 functions there is an optional argument for 
                    <monospace>
                        <styled-content style="#000000" style-type="color">base.url.</styled-content>
                    </monospace> This is the URL used by RCy3 to connect to the Cytoscape desktop application via CyREST, and it defaults to 
                    <monospace>
                        <styled-content style="#4F9905" style-type="color">"http://localhost:1234/v1"</styled-content>
                    </monospace>. The default CyREST port is 
                    <monospace>
                        <styled-content style="#0000CF" style-type="color">1234</styled-content>
                    </monospace>, and it can be changed in Cytoscape through Edit/Preferences/Properties or by command-line (see 
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/cytoscape/cyREST/wiki/Setup-Guide">CyREST setup guide</ext-link>). If you change the CyREST port, you should reflect the change in the 
                    <monospace>
                        <styled-content style="#000000" style-type="color">base.url</styled-content>
                    </monospace> argument per function call or change each function&#x2019;s default value using the 
                    <italic toggle="yes">
                        <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/web/packages/default/index.html">default</ext-link>
                    </italic> package.</p>
                <p>The second most common argument in RCy3 functions is 
                    <monospace>
                        <styled-content style="#000000" style-type="color">network</styled-content>
                    </monospace>. If left as 
                    <monospace>
                        <styled-content style="#214A87" style-type="color">NULL</styled-content>
                    </monospace> (default), the currently selected network in the Cytoscape application is referenced. Network name or SUID (session unique identifier) can thus be explicitly specified or inferred from the current state of the application. The current network can also be controlled and retrieved by 
                    <monospace>
                        <styled-content style="#000000" style-type="color">setCurrentNetwork</styled-content>
                    </monospace> and 
                    <monospace>
                        <styled-content style="#000000" style-type="color">getCurrentNetwork</styled-content>
                    </monospace>. Given a 
                    <monospace>
                        <styled-content style="#000000" style-type="color">base.url</styled-content>
                    </monospace> and 
                    <monospace>
                        <styled-content style="#000000" style-type="color">network</styled-content>
                    </monospace> (when needed), the majority of RCy3 functions simply validate parameters and construct arguments in order to call one of the 
                    <monospace>
                        <styled-content style="#000000" style-type="color">cyrest</styled-content>
                        <styled-content style="#CF5C00" style-type="color">*</styled-content>
                    </monospace> or 
                    <monospace>
                        <styled-content style="#000000" style-type="color">commands</styled-content>
                        <styled-content style="#CF5C00" style-type="color">*</styled-content>
                    </monospace> functions.</p>
                <p>The 
                    <monospace>
                        <styled-content style="#000000" style-type="color">commandsRun</styled-content>
                    </monospace> function is a special RCy3 function that allows users to directly issue commands via Cytoscape&#x2019;s command-line syntax (e.g., 
                    <monospace>
                        <styled-content style="#4F9905" style-type="color">"node list network=current"</styled-content>
                    </monospace>), including commands implemented by Cytoscape app developers (see 
                    <italic toggle="yes">Use cases</italic>). This single function can perform hundreds of operations made available by both Cytoscape and automation-enabled apps
                    <sup>
                        <xref ref-type="bibr" rid="ref-6">6</xref>
                    </sup>. Over 40 of these RCy3-supported apps are currently registered in the 
                    <ext-link ext-link-type="uri" xlink:href="http://apps.cytoscape.org/apps/with_tag/automation">Cytoscape App Store</ext-link>
                    <sup>
                        <xref ref-type="bibr" rid="ref-2">2</xref>
                    </sup>. The 
                    <monospace>
                        <styled-content style="#000000" style-type="color">cyrestAPI</styled-content>
                    </monospace> and 
                    <monospace>
                        <styled-content style="#000000" style-type="color">commandsAPI</styled-content>
                    </monospace> open interactive Swagger documentation for the CyREST and Commands programmatic interfaces. Cytoscape Automation can be performed via these Swagger web pages. The same operations and parameters are supported by the 
                    <monospace>
                        <styled-content style="#000000" style-type="color">cyrest</styled-content>
                        <styled-content style="#CF5C00" style-type="color">*</styled-content>
                    </monospace> and 
                    <monospace>
                        <styled-content style="#000000" style-type="color">commands</styled-content>
                        <styled-content style="#CF5C00" style-type="color">*</styled-content>
                    </monospace> functions in RCy3. Command-line syntax can also be run from the Automation panel in Cytoscape, at 
                    <ext-link ext-link-type="uri" xlink:href="http://manual.cytoscape.org/en/stable/Command_Tool.html">manual.cytoscape.org/en/stable/Command_Tool.html</ext-link>.</p>
            </sec>
            <sec>
                <title>Generic and specific</title>
                <p>The primary goal of RCy3 is to provide wrappers for every feature made available by CyREST and Commands. However, we also have a secondary goal of providing useful and intuitive functions for common workflows in R. So, in addition to the generic functions implemented to parallel the CyREST and Commands APIs, we have also implemented sets of specific helper functions.</p>
                <p>As an example, consider the common Cytoscape operation of mapping network data values to visual style properties. CyREST has a POST endpoint for 
                    <monospace>
                        <styled-content style="#CF5C00" style-type="color">/</styled-content>
                        <styled-content style="#000000" style-type="color">styles</styled-content>
                        <styled-content style="#CF5C00" style-type="color">/</styled-content>
                        <styled-content style="#000000" style-type="color">{style name}</styled-content>
                        <styled-content style="#CF5C00" style-type="color">/</styled-content>
                        <styled-content style="#000000" style-type="color">mappings</styled-content>
                    </monospace> that takes a JSON data structure defining the mapping. We implemented 
                    <monospace>
                        <styled-content style="#000000" style-type="color">updateStyleMapping</styled-content>
                    </monospace> which takes a 
                    <monospace>
                        <styled-content style="#000000" style-type="color">style.name</styled-content>
                    </monospace> and mapping arguments and sends them out via 
                    <monospace>
                        <styled-content style="#000000" style-type="color">cyrestPOST</styled-content>
                    </monospace>.  We also implemented 
                    <monospace>
                        <styled-content style="#000000" style-type="color">mapVisualProperty</styled-content>
                    </monospace> to help construct the 
                    <monospace>
                        <styled-content style="#000000" style-type="color">mapping</styled-content>
                    </monospace> argument.  With these generic functions one can perform any of the hundreds of visual style mappings supported by Cytoscape, including new ones added in the future. However, these functions are not simple to use, requiring knowledge of specific property names, like 
                    <monospace>
                        <styled-content style="#4F9905" style-type="color">"NODE_FILL_COLOR"</styled-content>
                    </monospace>, and mapping data structures. To simplify usage for common situations, we therefore also implemented specific functions for over a dozen of the most commonly used mappings (e.g., 
                    <monospace>
                        <styled-content style="#000000" style-type="color">setNodeColorMapping</styled-content>
                    </monospace>). With autocomplete in tools like RStudio, after just typing 
                    <monospace>
                        <styled-content style="#000000" style-type="color">setNode...</styled-content>
                    </monospace> a script author is presented with a series of intuitively named functions with obvious arguments.</p>
            </sec>
            <sec>
                <title>Networks in R</title>
                <p>Networks are a popular visualization option in R often implemented as graph models by 
                    <italic toggle="yes">
                        <ext-link ext-link-type="uri" xlink:href="https://igraph.org/r/">igraph</ext-link>
                    </italic> and Biocondutor&#x2019;s 
                    <italic toggle="yes">
                        <ext-link ext-link-type="uri" xlink:href="https://www.bioconductor.org/packages/release/bioc/html/graph.html">graph</ext-link>
                    </italic> (i.e., 
                    <ext-link ext-link-type="uri" xlink:href="https://www.rdocumentation.org/packages/graph/versions/1.50.0/topics/graphNEL-class">graphNEL</ext-link>). RCy3 can create networks in Cytoscape from either igraph, graphNEL or dataframe objects (
                    <monospace>
                        <styled-content style="#000000" style-type="color">createNetworkFrom</styled-content>
                        <styled-content style="#CF5C00" style-type="color">*</styled-content>
                    </monospace>). Likewise, igraph and graphNEL objects can be created from networks (
                    <monospace>
                        <styled-content style="#000000" style-type="color">create</styled-content>
                        <styled-content style="#CF5C00" style-type="color">*</styled-content>
                        <styled-content style="#000000" style-type="color">FromNetwork</styled-content>
                    </monospace>), and dataframes from node and edge tables in Cytoscape (
                    <monospace>getTableColumns</monospace>).</p>
                <p>In the case of 
                    <monospace>
                        <styled-content style="#000000" style-type="color">createNetworkFromDataFrames</styled-content>
                    </monospace>, two dataframes are accepted as arguments, one for nodes and one for edges. The 
                    <monospace>
                        <styled-content style="#000000" style-type="color">nodes</styled-content>
                    </monospace> dataframe must include a column named 
                    <monospace>
                        <styled-content style="#4F9905" style-type="color">"id"</styled-content>
                    </monospace>, and the 
                    <monospace>
                        <styled-content style="#000000" style-type="color">edges</styled-content>
                    </monospace> dataframe must include 
                    <monospace>
                        <styled-content style="#4F9905" style-type="color">"source"</styled-content>
                    </monospace> and 
                    <monospace>
                        <styled-content style="#4F9905" style-type="color">"target"</styled-content>
                    </monospace> columns. Additional columns are imported as node and edge attributes into Cytoscape. The function can also work with just one dataframe. If a dataframe of only edges is passed to 
                    <monospace>
                        <styled-content style="#000000" style-type="color">createNetworkFromDataFrames</styled-content>
                    </monospace>, then a connected network will be created with all of the nodes. If a dataframe of only nodes is passed, then a network with no connections, only nodes, will be created.</p>
                <p>RCy3 can also import network file formats supported by Cytoscape natively (e.g., SIF, xGMML and CX
                    <sup>
                        <xref ref-type="bibr" rid="ref-7">7</xref>
                    </sup>) and via user-installed apps (e.g., GPML
                    <sup>
                        <xref ref-type="bibr" rid="ref-8">8</xref>
                    </sup> and adjacency matrices). With these functions RCy3 can interoperate with any other Bioconductor packages that deal with networks in a standardized manner, providing advanced network visualization options and advanced network analytics from the Cytoscape ecosystem (see 
                    <xref ref-type="table" rid="T2">Table 2</xref>).</p>
                <table-wrap id="T2" orientation="portrait" position="anchor">
                    <label>Table 2. </label>
                    <caption>
                        <title>Top 31 network-related Bioconductor packages ordered by rank (as of Sept 2019) and their network models relevant to RCy3.</title>
                        <p id="TFN1">RCy3 can provide and consume network models to and from these packages (checkmarks). Asterisks indicate where a Cytoscape app is required (* aMatReader, ** WikiPathways).</p>
                    </caption>
                    <table content-type="article-table" frame="hsides">
                        <thead>
                            <tr>
                                <th align="left" colspan="1" rowspan="1" valign="middle">Package</th>
                                <th align="left" colspan="1" rowspan="1" valign="middle">Description</th>
                                <th align="left" colspan="1" rowspan="1" valign="middle">Network model</th>
                                <th align="left" colspan="1" rowspan="1" valign="middle">RCy3</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Essential graph data structures</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">RBGL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Graph algorithms contained in the BOOST library</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Rgraphviz</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Plotting with graphviz library</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">pathview</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Data integration and visualization on pathways</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">KEGGgraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Interface between KEGG pathways and graphs</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Gostats</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Tools for interacting with Gene Ontology</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">TCGAbiolinks</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Integrative analysis with GDC data</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphite</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Graph objects from pathway databases</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">minet</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Infers mutual information networks</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">SPIA</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Signaling pathway impact analysis</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">RDAVIDWebService</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Retrieves data from DAVID</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">STRINGdb</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Retrieves interaction networks from STRING</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">GENIE3</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Gene regulatory network inference</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">adjacency matrix</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714; 
                                    <xref ref-type="other" rid="TFN1">*</xref>
                                </td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">EnrichmentBrowser</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Set and network-based enrichment analysis</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">BioNet</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Integrated network analysis and module detection</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph, graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">GDCRNATools</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Integrative analysis of lncRNA, mRNA and miRNA</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">dataframes</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">CEMiTool</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Analysis of coexpression gene modules</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">adjacency matrix</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714; 
                                    <xref ref-type="other" rid="TFN1">*</xref>
                                </td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Linnorm</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Linear model and normality based transformation</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">RedeR</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Interactive visualization of nested networks</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">qpgraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Estimate gene and eQTL networks</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">RTN</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Reconstruction of transcriptional networks</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">rWikiPathways</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Access WikiPathways web services</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">GPML</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714; 
                                    <xref ref-type="other" rid="TFN1">**</xref>
                                </td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">hypergraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Representing and manipulating hypergraphs</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">apComplex</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Bipartite graphs of complexes from AP-MS data</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">cellTree</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">scRNA-seq data as a hierarchical tree structure</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">FGNet</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Functional gene networks from enrichment analyses</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">SpidermiR</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Integrative network analysis with miRNA data</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">paxtoolsr</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Access to BioPAX models in Pathway Commons</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph, SIF</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">netbiov</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Visualization of large biological networks</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">rsbml</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Link to libsbml for SBML parsing</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">graphNEL</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="middle">ndexr</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">Interface to NDEx servers</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">igraph, CX</td>
                                <td align="left" colspan="1" rowspan="1" valign="middle">&#x2714;</td>
                            </tr>
                        </tbody>
                    </table>
                </table-wrap>
            </sec>
            <sec>
                <title>Operation</title>
                <p>In order to work with 
                    <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/html/RCy3.html">RCy3</ext-link> you must have Cytoscape v3.7 or later installed and running. Cytoscape can be installed from 
                    <ext-link ext-link-type="uri" xlink:href="https://cytoscape.org/">cytoscape.org</ext-link>. The RCy3 package can be installed from 
                    <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/html/RCy3.html">Bioconductor</ext-link>:</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#214A87;">if</styled-content> 
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">!</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">requireNamespace</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"BiocManager"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, quietly</styled-content> 
                        <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">TRUE</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">))</styled-content>
    
                        <styled-content style="font-size:15px;color:#000000;">install.packages(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"BiocManager"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">BiocManager</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">::</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">install(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"RCy3"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">library</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(RCy3)</styled-content>
                    </preformat>
                </p>
                <p>Launch Cytoscape and keep it running whenever using RCy3. Confirm that you have everything installed and that RCy3 is communicating with Cytoscape via CyREST:</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">cytoscapePing()</styled-content>

                        <styled-content style="font-size:15px;color:#8F5903;">#[1] "You are connected to Cytoscape!"</styled-content>
                    </preformat>
                </p>
                <p>As with any R package, one can access the documentation and browse over a dozen vignettes included in the RCy3 package:</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">help(package</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">RCy3)</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">browseVignettes(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"RCy3"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>
                    </preformat>
                </p>
            </sec>
        </sec>
        <sec>
            <title>Use cases</title>
            <p>The following sections demonstrate a variety of common and advanced network biology use cases as runnable R code snippets. The code for these use cases is also available as an online Rmd notebook and Rmd file in the Cytoscape Automation repository (see 
                <italic toggle="yes">Data availability</italic>). The first set focuses on fundamental Cytoscape operations that are common to most use cases:</p>
            <list list-type="bullet">
                <list-item>
                    <p>Loading networks (from R objects, Cytoscape files and public databases)</p>
                </list-item>
                <list-item>
                    <p>Visualizing network data</p>
                </list-item>
                <list-item>
                    <p>Filtering by node degree or data</p>
                </list-item>
                <list-item>
                    <p>Saving and exporting networks</p>
                </list-item>
            </list>
            <p>Additionally, there are examples that demonstrate analytical workflows, relying not only on Cytoscape, but also on Cytoscape apps and other R packages:</p>
            <list list-type="bullet">
                <list-item>
                    <p>Building maps of enrichment analysis results using EnrichmentMap and AutoAnnotate</p>
                </list-item>
                <list-item>
                    <p>Visualizing integrated network analysis using BioNet</p>
                </list-item>
                <list-item>
                    <p>Performing advanced graph analytics using RBGL</p>
                </list-item>
            </list>
            <p>
                <bold>Loading Networks.</bold> Networks come in all shapes and sizes, in multiple formats from multiple sources. The following code snippets demonstrate just a few of the myriad ways to load networks into Cytoscape using 
                <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/html/RCy3.html">RCy3</ext-link>.</p>
            <list list-type="bullet">
                <list-item>
                    <label/>
                    <p>From R objects. . .</p>
                </list-item>
            </list>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;color:#8F5903;"># From graph objects (graphNEL)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">g</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">makeSimpleGraph()</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createNetworkFromGraph(g)</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## And round-trip back from Cytoscape to graph</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">g2</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">createGraphFromNetwork()</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># From igraph objects</styled-content>

                    <styled-content style="font-size:15px;color:#214A87;">library</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(igraph)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">ig</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">igraph</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">::</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">make_graph(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"Zachary"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createNetworkFromIgraph(ig)</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## And round-trip back from Cytoscape to igraph</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">ig2</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">createIgraphFromNetwork()</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Note that the Cytoscape model infers directionality</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># From dataframes</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">nodes</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">data.frame</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(id</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>(
                    <styled-content style="font-size:15px;color:#4F9905;">"node 0"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"node 1"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"node 2"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"node 3"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    </styled-content>
                      
                    <styled-content style="font-size:15px;color:#000000;">group</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>(
                    <styled-content style="font-size:15px;color:#4F9905;">"A"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"A"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"B"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"B"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">),</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;">#categorical strings</styled-content>
                      
                    <styled-content style="font-size:15px;color:#000000;">score</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">as.integer</styled-content>(
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>(
                    <styled-content style="font-size:15px;color:#0000CF;">20</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">10</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">15</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">5</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)),</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;">#integers</styled-content>
                      
                    <styled-content style="font-size:15px;color:#000000;">stringsAsFactors</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">FALSE</styled-content>)
edges 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">data.frame</styled-content>(
                    <styled-content style="font-size:15px;color:#214A87;">source</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>(
                    <styled-content style="font-size:15px;color:#4F9905;">"node 0"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"node 0"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"node 0"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"node 2"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">),</styled-content>
                     
                    <styled-content style="font-size:15px;color:#000000;">target</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"node 1"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"node 2"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"node 3"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"node 3"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">
                        <styled-content style="font-size:15px;color:#000000;">),</styled-content>
                   </styled-content>
                    <styled-content style="font-size:15px;color:#000000;">interaction</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"inhibits"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"interacts"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                                     
                    <styled-content style="font-size:15px;color:#4F9905;">"activates"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"interacts"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">),</styled-content>  
                    <styled-content style="font-size:15px;color:#8F5903;">#optional</styled-content>
                     
                    <styled-content style="font-size:15px;color:#000000;">weight</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">5.1</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">3.0</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">5.2</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">9.9</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">),</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;">#numerics</styled-content>
                     
                    <styled-content style="font-size:15px;color:#000000;">stringsAsFactors</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">FALSE</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createNetworkFromDataFrames(nodes, edges)</styled-content>
                </preformat>
            </p>
            <list list-type="bullet">
                <list-item>
                    <label/>
                    <p>From Cytoscape-supported file formats. . .</p>
                </list-item>
            </list>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">

                    <styled-content style="font-size:15px;color:#8F5903;"># From Cytoscape session files</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Will erase and replace all data from current session!</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">openSession()</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># default file = galFiltered.cys</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># From local network files</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">importNetworkFromFile()</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># default file = galFiltered.sif</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Supported file formats: SIF, GML, xGMML, graphML, CX, plus</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># From NDEx (https://ndexbio.org), the network database</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">importNetworkFromNDEx(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"5be85817-1e5f-11e8-b939-0ac135e8bacf"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Account information or accessKey are required arguments only</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## when accessing private content</styled-content>
                </preformat>
            </p>
            <list list-type="bullet">
                <list-item>
                    <label/>
                    <p>From public databases via Cytoscape apps. . .</p>
                </list-item>
            </list>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;color:#8F5903;"># From STRING (https://string-db.org), starting with a list of genes/proteins</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">installApp(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"stringApp"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># http://apps.cytoscape.org/apps/stringapp</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">gene.list</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"T53"
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>"AKT1"
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>"CDKN1A"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">gene.str</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">paste</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(gene.list, collapse</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">","</styled-content>)

                    <styled-content style="font-size:15px;color:#000000;">string.cmd</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">paste</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"string protein query cutoff=0.99 limit=40 query"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                       
                    <styled-content style="font-size:15px;color:#000000;">gene.str, sep</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"="</styled-content>)

                    <styled-content style="font-size:15px;color:#000000;">commandsRun(string.cmd)</styled-content>



                    <styled-content style="font-size:15px;color:#8F5903;"># From WikiPathways (https://wikipathways.org), starting with a keyword</styled-content>

                    <styled-content style="font-size:15px;color:#214A87;">library</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(rWikiPathways)</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># install from Bioconductor</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">installApp(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"WikiPathways"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># http://apps.cytoscape.org/apps/wikipathways</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">keyword</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"glioblastoma"</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">gbm.pathways</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">findPathwaysByText(keyword)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">gbm.wpid</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">gbm.pathways[[</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">1</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">]]</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">id</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># let&#x2019;s just take the first one</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">wikipathways.cmd</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">paste</styled-content>(
                    <styled-content style="font-size:15px;color:#4F9905;">"wikipathways import-as-pathway id"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                              
                    <styled-content style="font-size:15px;color:#000000;">gbm.wpid, sep</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"="</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">commandsRun(wikipathways.cmd)</styled-content>
                </preformat>
            </p>
            <p>
                <bold>Visualizing data on networks.</bold> Cytoscape excels at generating publication-quality network visualization with data overlays. This vignette demonstrates just one of the hundreds of visual style mapping options using RCy3.</p>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;color:#8F5903;"># Load sample network</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">closeSession(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">FALSE</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># clears all session data wihtout saving</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">importNetworkFromFile()</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># default file = galFiltered.sif</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Load sample data</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">csv</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">system.file</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"extdata"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"galExpData.csv"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">, package</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"RCy3"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">data</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">read.csv(csv, stringsAsFactors</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">FALSE</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">loadTableData(data,data.key.column</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"name"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Prepare data-mapping points</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">gal80Rexp.min</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">min</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(data</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">gal80Rexp, na.rm</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">TRUE</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">gal80Rexp.max</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">max</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(data</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">gal80Rexp, na.rm</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">TRUE</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## For a balanced color gradient, pick the largest absolute value</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">gal80Rexp.max.abs</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">max</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">abs</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(gal80Rexp.min),</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">abs</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(gal80Rexp.max))</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Set node color gradient from blue to white to red</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">setNodeColorMapping(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">'gal80Rexp'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">-</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">gal80Rexp.max.abs,</styled-content> 
                    <styled-content style="font-size:15px;color:#0000CF;">0</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">, gal80Rexp.max.abs),</styled-content>
                       
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">'#5577FF'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">'#FFFFFF'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">'#FF7755'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">), default.color</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">'#999999'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>
                </preformat>
            </p>
            <p>
                <bold>Filtering networks by degree and by data.</bold> Network topology and associated node or edge data can be used to make selections in Cytoscape that enable filtering and subnetworking. The filters are added to the Select tab in the Control Panel of Cytoscape&#x2019;s GUI and saved in session files.</p>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;color:#8F5903;"># Load demo Cytoscape session file</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">openSession()</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># default file = galFiltered.cys</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">net.suid</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">getNetworkSuid()</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># get SUID for future reference</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Filter for neighbors of high degree nodes</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createDegreeFilter(filter.name</styled-content> = 
                    <styled-content style="font-size:15px;color:#4F9905;">"degree filter"</styled-content>,
                      
                    <styled-content style="font-size:15px;color:#000000;">criterion</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">0</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">9</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">),</styled-content>
                      
                    <styled-content style="font-size:15px;color:#000000;">predicate</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"IS_NOT_BETWEEN"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">selectFirstNeighbors()</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># expand selection to first neighbors</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createSubnetwork(subnetwork.name</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"first neighbors of high degree nodes"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Filter for high edge betweenness</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createColumnFilter(filter.name</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"edge betweenness"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#000000;">type</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"edges"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#000000;">column</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"EdgeBetweenness"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#0000CF;">4000</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#4F9905;">"GREATER_THAN"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#000000;">network</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">net.suid)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createSubnetwork(subnetwork.name</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"high edge betweenness"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>
                </preformat>
            </p>
            <p>
                <bold>Saving and exporting networks.</bold> There are local and cloud-hosted options for saving and sharing network models and images. The Cytoscape session file (CYS) includes all networks, collections, tables and styles. It retains every aspect of your session, including the size of the application window. Network and image exports include only the currently active network. Export to NDEx requires account information you can obtain from 
                <ext-link ext-link-type="uri" xlink:href="https://ndexbio.org/">ndexbio.org</ext-link>. Files are saved to the current working directory by default, unless a full path is provided.</p>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;color:#8F5903;"># Saving sessions</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">saveSession(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"MySession"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;">#.cys</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Leave filename blank to update previously saved session file</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Exporting images and networks</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">exportNetwork()</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;">#.sif</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Optionally specify filename, default is network name</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Optionally specify type: SIF(default), CX, cyjs, graphML, NNF, SIF, xGMML</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">exportImage()</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;">#.png</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Optionally specify filename, default is network name</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Optionally specify type: PNG (default), JPEG, PDF, PostScript, SVG</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Exporting to NDEx, a.k.a. &#x201c;Dropbox&#x201d; for networks</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">exportNetworkToNDEx(username, password,</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">TRUE</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Account information (username and password) is required to upload</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Use updateNetworkInNDEx if the network has previously been uploaded</styled-content>
                </preformat>
            </p>
            <p>
                <bold>Building maps of enrichment analysis results.</bold> This workflow illustrates how to plot an annotated map of enrichment results using the 
                <ext-link ext-link-type="uri" xlink:href="http://apps.cytoscape.org/apps/enrichmentmappipelinecollection">EnrichmentMap Pipeline Collection</ext-link> of apps in Cytoscape
                <sup>
                    <xref ref-type="bibr" rid="ref-9">9</xref>
                </sup>. An enrichment map is a network visualization of related genesets in which nodes are gene sets (or pathways) and edge weight indicates the overlap in member genes
                <sup>
                    <xref ref-type="bibr" rid="ref-10">10</xref>
                </sup>. Following the construction of the enrichment map, AutoAnnotate clusters redundant gene sets and uses WordCloud
                <sup>
                    <xref ref-type="bibr" rid="ref-11">11</xref>
                </sup> to label the resulting cluster (
                <xref ref-type="fig" rid="f2">Figure 2</xref>). The code uses the Commands interface to invoke EnrichmentMap and AutoAnnotate apps. After installing apps, run commandsAPI() to open the live Swagger documentation to browse and execute command-line syntax.</p>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;color:#000000;">installApp(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"EnrichmentMap Pipeline Collection"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># installs 4 apps</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Download sample gmt file of human pathways</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">gmt.file</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"rcy3_enrichmentmap.gmt"</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">download.file(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">file.path</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"http://download.baderlab.org/EM_Genesets"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                           
                    <styled-content style="font-size:15px;color:#4F9905;">"September_01_2019/Human/symbol/Pathways"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                           
                    <styled-content style="font-size:15px;color:#4F9905;">"Human_WikiPathways_September_01_2019_symbol.gmt"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">),</styled-content>
                
                    <styled-content style="font-size:15px;color:#000000;">gmt.file)</styled-content>
                

                    <styled-content style="font-size:15px;color:#8F5903;"># Run EnrichmentMap build command</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">em_command</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">paste</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">'enrichmentmap build analysisType="generic"'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#4F9905;">"gmtFile="</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">paste</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">getwd</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(), gmt.file, sep</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"/"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">),</styled-content>
                      
                    <styled-content style="font-size:15px;color:#4F9905;">"pvalue="</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                    <styled-content style="font-size:15px;color:#0000CF;">1</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#4F9905;">"qvalue="</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                    <styled-content style="font-size:15px;color:#0000CF;">1</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#4F9905;">"similaritycutoff="</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">0.25</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#4F9905;">"coefficients="</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"JACCARD"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#214A87;">print</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(em_command)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">commandsGET(em_command)</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Run the AutoAnnotate command</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">aa_command</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">paste</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"autoannotate annotate-clusterBoosted"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#4F9905;">"clusterAlgorithm=MCL"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#4F9905;">"labelColumn=EnrichmentMap::GS_DESCR"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                      
                    <styled-content style="font-size:15px;color:#4F9905;">"maxWords=3"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#214A87;">print</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(aa_command)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">commandsGET(aa_command)</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Annotate a subnetwork</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createSubnetwork(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">1</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">:</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">4</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">),</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"__mclCluster"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">commandsGET(aa_command)</styled-content>
                </preformat>
            </p>
            <fig fig-type="figure" id="f2" orientation="portrait" position="float">
                <label>Figure 2. </label>
                <caption>
                    <title>Annotated enrichment map of pathways.</title>
                    <p>A few of the largest clusters of pathways from WikiPathways are displayed as a network with WordCloud-based labels annotating groups (yellow areas). The size of the labels correspond to the size of the groups.</p>
                </caption>
                <graphic orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/23766/c8e09404-3c69-4ff1-b49e-23c0da177dd4_figure2.gif"/>
            </fig>
            <p>
                <bold>Visualizing integrated network analysis using BioNet.</bold> The 
                <italic toggle="yes">
                    <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/html/BioNet.html">BioNet</ext-link>
                </italic> package implements analytical methods to perform integrated network analysis, for example, of gene expression data and clinical survival data in the context of protein-protein interaction networks. Partnered with RCy3, the analytical results from 
                <italic toggle="yes">BioNet</italic> can be visualized in Cytoscape with vastly more options for customization. Starting with the 
                <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/vignettes/BioNet/inst/doc/Tutorial.pdf">"Quick Start" tutorial</ext-link> from 
                <italic toggle="yes">BioNet</italic>, we pass the results directly to Cytoscape for visualization:</p>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;color:#214A87;">library</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(BioNet)</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># install from Bioconductor</styled-content>

                    <styled-content style="font-size:15px;color:#214A87;">library</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(DLBCL)</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># install from Bioconductor</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">data(dataLym)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">data(interactome)</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;">## The following steps are from BioNet's Quick Start tutorial:</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">pvals</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">cbind</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(t</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">dataLym</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">t.pval, s</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">dataLym</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">s.pval</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#214A87;">rownames</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(pvals)</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">dataLym</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">label</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">pval</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">aggrPvals(pvals, order</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#0000CF;">2</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">, plot</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">FALSE</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">subnet</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">subNetwork(dataLym</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">label, interactome)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">subnet</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">rmSelfLoops(subnet)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">fb</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">fitBumModel(pval, plot</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">FALSE</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">scores</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">scoreNodes(subnet, fb, fdr</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#0000CF;">0.001</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">module</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">runFastHeinz(subnet, scores)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">logFC</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">dataLym</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">diff</styled-content>

                    <styled-content style="font-size:15px;color:#214A87;">names</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(logFC)</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">dataLym</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">label</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">plotModule(module, scores</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">scores, diff.expr</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">logFC)</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Using RCy3 we can generate a custom visualization of the same output</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">## Create network from graphNEL object and load data calculated above</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createNetworkFromGraph(module,</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"module"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"BioNet"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">loadTableData</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">as.data.frame</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(scores))</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">loadTableData(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">as.data.frame</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(logFC))</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;">## Set styles</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">setNodeLabelMapping(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"geneSymbol"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">setNodeFontSizeDefault(</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">18</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">setNodeBorderWidthDefault(</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">3.0</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">logFC.max.abs</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">max</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">abs</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">min</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(logFC)),</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">abs</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">max</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(logFC)))</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">setNodeColorMapping(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">'logFC'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">-</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">logFC.max.abs,</styled-content> 
                    <styled-content style="font-size:15px;color:#0000CF;">0</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">, logFC.max.abs),</styled-content>
                       
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">'#5577FF'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">'#FFFFFF'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">'#FF7755'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">, default.color</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">=</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">'#999999'</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createColumnFilter(</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"Positive scores"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"scores"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                    <styled-content style="font-size:15px;color:#0000CF;">0</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">max</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(scores)),</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"BETWEEN"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">setNodeShapeBypass(getSelectedNodes(),</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"ELLIPSE"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>
                </preformat>
            </p>
            <p>
                <bold>Performing advanced graph analytics using 
                    <italic toggle="yes">RBGL</italic>.</bold> As an interface to the BOOST library, the 
                <italic toggle="yes">
                    <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/html/RBGL.html">RBGL</ext-link>
                </italic> Bioconductor package offers an impressive array of analytical functions for graphs. Here we will start with a network in Cytoscape, load it into R as a 
                <italic toggle="yes">graph</italic> object, perform shortest path calculation using 
                <italic toggle="yes">RBGL</italic> and then visualize the results back in Cytoscape (
                <xref ref-type="fig" rid="f3">Figure 3</xref>).</p>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;color:#214A87;">library</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(RBGL)</styled-content> 
                    <styled-content style="font-size:15px;color:#8F5903;"># install from Bioconductor</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;"># Convert a sample Cytoscape network to a graph object</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">openSession()</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">g</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">createGraphFromNetwork()</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Identify start and finish nodes (styling is optional)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">start</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"YNL216W"</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">finish</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"YER040W"</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">setNodeBorderWidthBypass(</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">(start,finish),</styled-content> 
                    <styled-content style="font-size:15px;color:#0000CF;">20</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">setNodeBorderColorBypass(start,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"#00CC33"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">setNodeBorderColorBypass(finish,</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">"#CC00CC"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Use RBGL to perform shortest path calculation</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">shortest</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">sp.between(g, start, finish)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">shortest</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">`YNL216W:YER040W`</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#214A87;">length</styled-content>

                    <styled-content style="font-size:15px;color:#8F5903;">#[1] 6</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">shortest.path</styled-content> 
                    <styled-content style="font-size:15px;color:#CF5C00;">&lt;-</styled-content> 
                    <styled-content style="font-size:15px;color:#000000;">shortest</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#4F9905;">`YNL216W:YER040W`</styled-content>
                    <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">path_detail</styled-content>


                    <styled-content style="font-size:15px;color:#8F5903;"># Visualize results in Cytoscape</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">selectNodes(shortest.path,</styled-content> 
                    <styled-content style="font-size:15px;color:#4F9905;">"name"</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">setNodeBorderWidthBypass(shortest.path,</styled-content> 
                    <styled-content style="font-size:15px;color:#0000CF;">20</styled-content>
                    <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                    <styled-content style="font-size:15px;color:#000000;">createSubnetwork()</styled-content>
                </preformat>
            </p>
            <fig fig-type="figure" id="f3" orientation="portrait" position="float">
                <label>Figure 3. </label>
                <caption>
                    <title>Visualizing shortest path results.</title>
                    <p>In Cytoscape, the start and finish nodes were colored green and magenta, respectively (left panel). The shortest path calculated by 
                        <italic toggle="yes">RBGL</italic> was then selected and nodes along the path were highlighted with thick borders (middle panel). Finally, a subnetwork was created from the selected path (right panel).  Note that while common gene names are displayed as node labels, official yeast identifiers are the actual node names that are referenced in the script.</p>
                </caption>
                <graphic orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/23766/c8e09404-3c69-4ff1-b49e-23c0da177dd4_figure3.gif"/>
            </fig>
        </sec>
        <sec>
            <title>Discussion</title>
            <p>Every operation exposed by Cytoscape&#x2019;s REST API has now been implemented as a function in 
                <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/html/RCy3.html">RCy3</ext-link> 2.0. Furthermore, RCy3 provides dozens of higher-level helper functions in support of common usage, such as 
                <monospace>
                    <styled-content style="#000000" style-type="color">setNodeColorMapping</styled-content>
                </monospace>, to make script writing more intuitive and efficient. The issue trackers for CyREST and RCy3 are linked for functions pending implementation, such as 
                <monospace>
                    <styled-content style="#000000" style-type="color">mergeNetworks</styled-content>
                </monospace>, as well as for bug fixes. Thus, RCy3 is expected to keep pace with future development of Cytoscape Automation. More broadly, RCy3 is an integral part of the Cytoscape ecosystem, which includes the network repository NDEx
                <sup>
                    <xref ref-type="bibr" rid="ref-7">7</xref>
                </sup>, Cytoscape apps and services, and web components like cytoscape.js
                <sup>
                    <xref ref-type="bibr" rid="ref-12">12</xref>
                </sup>. The ecosystem has also defined interfaces and standard formats to interoperate with interaction databases and annotation services. Adopting RCy3 for network analysis will establish a connection to the Cytoscape ecosystem and enable Cytoscape Automation workflows
                <sup>
                    <xref ref-type="bibr" rid="ref-6">6</xref>
                </sup>. Furthermore, RCy3 enables reproducible scripting of integrated network biology workflows that otherwise rely on transient interactions with Cytoscape&#x2019;s GUI. As the sharing and publishing of analysis scripts and workflows become more routine (if not mandated), software tools designed to work in an open and accessible ecosystem are becoming essential.</p>
        </sec>
        <sec>
            <title>Data availability</title>
            <sec>
                <title>Underlying data</title>
                <p>All data underlying the results are available as part of the article and no additional source data are required.</p>
            </sec>
            <sec>
                <title>Extended data</title>
                <list list-type="bullet">
                    <list-item>
                        <p>RCy3  vignettes:   
                            <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/html/RCy3.html">https://bioconductor.org/packages/release/bioc/html/RCy3.html</ext-link>
                        </p>
                    </list-item>
                    <list-item>
                        <p>RCy3 Rmd notebooks:  
                            <ext-link ext-link-type="uri" xlink:href="https://cytoscape.org/cytoscape-automation/for-scripters/R/notebooks/">https://cytoscape.org/cytoscape-automation/for-scripters/R/notebooks/</ext-link>
                        </p>
                    </list-item>
                    <list-item>
                        <p>RCy3 workshop presentations:  
                            <ext-link ext-link-type="uri" xlink:href="http://tutorials.cytoscape.org/#automation">http://tutorials.cytoscape.org/#automation</ext-link>
                        </p>
                    </list-item>
                    <list-item>
                        <p>Video demonstrations of RCy3: 
                            <ext-link ext-link-type="uri" xlink:href="https://www.youtube.com/playlist">https://www.youtube.com/playlist</ext-link>
                        </p>
                    </list-item>
                    <list-item>
                        <p>Cytoscape Automation training: 
                            <ext-link ext-link-type="uri" xlink:href="http://automation.cytoscape.org/">http://automation.cytoscape.org/</ext-link>
                        </p>
                    </list-item>
                    <list-item>
                        <p>Cytoscape Automation code repository: 
                            <ext-link ext-link-type="uri" xlink:href="https://github.com/cytoscape/cytoscape-automation">https://github.com/cytoscape/cytoscape-automation</ext-link>
                        </p>
                    </list-item>
                </list>
            </sec>
        </sec>
        <sec>
            <title>Software availability</title>
            <p>
                <bold>RCy3 is available from Bioconductor:</bold> 
                <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/html/RCy3.html">https://bioconductor.org/packages/release/bioc/html/RCy3.html</ext-link>
            </p>
            <p>
                <bold>Source code available from:</bold> 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/cytoscape/RCy3">https://github.com/cytoscape/RCy3</ext-link>
            </p>
            <p>
                <bold>Archived source code at time of publication:</bold> 
                <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.3473421">https://doi.org/10.5281/zenodo.3473421</ext-link>
            </p>
            <p>
                <bold>Issue tracker:</bold> 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/cytoscape/RCy3/issues">https://github.com/cytoscape/RCy3/issues</ext-link>
            </p>
            <p>
                <bold>License:</bold> 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/cytoscape/RCy3/blob/master/LICENSE">MIT License</ext-link>.</p>
        </sec>
    </body>
    <back>
        <ack>
            <title>Acknowledgments</title>
            <p>We would like to acknowledge contributions by other developers on the original implementation of RCy3 by Paul Shannon, Tanja Muetze and Georgi Kolishkovski. We also greatly appreciate the input from Mark Grimes (testing), Martin Morgan (Bioconductor), and the excellent work on CyREST and Cytoscape Commands by David Otasek and John &#x201c;Scooter&#x201d; Morris.</p>
        </ack>
        <ref-list>
            <ref id="ref-1">
                <label>1</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Shannon</surname>
                            <given-names>P</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Markiel</surname>
                            <given-names>A</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Ozier</surname>
                            <given-names>O</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Cytoscape: a software environment for integrated models of biomolecular interaction networks.</article-title>
                    <source>
						
                        <italic toggle="yes">Genome Res.</italic>
					</source>
                    <year>2003</year>;<volume>13</volume>(<issue>11</issue>):<fpage>2498</fpage>&#x2013;<lpage>2504</lpage>.
                    <pub-id pub-id-type="pmid">14597658</pub-id>
                    <pub-id pub-id-type="doi">10.1101/gr.1239303</pub-id>
                    <pub-id pub-id-type="pmcid">403769</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-2">
                <label>2</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Lotia</surname>
                            <given-names>S</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Montojo</surname>
                            <given-names>J</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Dong</surname>
                            <given-names>Y</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Cytoscape app store.</article-title>
                    <source>
						
                        <italic toggle="yes">Bioinformatics.</italic>
					</source>
                    <year>2013</year>;<volume>29</volume>(<issue>10</issue>):<fpage>1350</fpage>&#x2013;<lpage>1351</lpage>.
                    <pub-id pub-id-type="pmid">23595664</pub-id>
                    <pub-id pub-id-type="doi">10.1093/bioinformatics/btt138</pub-id>
                    <pub-id pub-id-type="pmcid">3654709</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-3">
                <label>3</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Demchak</surname>
                            <given-names>B</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Otasek</surname>
                            <given-names>D</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Pico</surname>
                            <given-names>AR</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>The Cytoscape Automation app article collection [version 1; peer review: not peer reviewed].</article-title>
                    <source>
						
                        <italic toggle="yes">F1000Res.</italic>
					</source>
                    <year>2018</year>;<volume>7</volume>:<fpage>800</fpage>.
                    <pub-id pub-id-type="pmid">29983926</pub-id>
                    <pub-id pub-id-type="doi">10.12688/f1000research.15355.1</pub-id>
                    <pub-id pub-id-type="pmcid">6013757</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-4">
                <label>4</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Shannon</surname>
                            <given-names>PT</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Grimes</surname>
                            <given-names>M</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Kutlu</surname>
                            <given-names>B</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>RCytoscape: tools for exploratory network analysis.</article-title>
                    <source>
						
                        <italic toggle="yes">BMC Bioinformatics.</italic>
					</source>
                    <year>2013</year>;<volume>14</volume>:<fpage>217</fpage>.
                    <pub-id pub-id-type="pmid">23837656</pub-id>
                    <pub-id pub-id-type="doi">10.1186/1471-2105-14-217</pub-id>
                    <pub-id pub-id-type="pmcid">3751905</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-5">
                <label>5</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Ono</surname>
                            <given-names>K</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Muetze</surname>
                            <given-names>T</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Kolishovski</surname>
                            <given-names>G</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>CyREST: Turbocharging Cytoscape Access for External Tools via a RESTful API [version 1; peer review: 2 approved].</article-title>
                    <source>
						
                        <italic toggle="yes">F1000Res.</italic>
					</source>
                    <year>2015</year>;<volume>4</volume>:<fpage>478</fpage>.
                    <pub-id pub-id-type="pmid">26672762</pub-id>
                    <pub-id pub-id-type="doi">10.12688/f1000research.6767.1</pub-id>
                    <pub-id pub-id-type="pmcid">4670004</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-6">
                <label>6</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Otasek</surname>
                            <given-names>D</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Morris</surname>
                            <given-names>JH</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Bou&#x00e7;as</surname>
                            <given-names>J</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Cytoscape Automation: empowering workflow-based network analysis.</article-title>
                    <source>
						
                        <italic toggle="yes">Genome Biol.</italic>
					</source>
                    <year>2019</year>;<volume>20</volume>(<issue>1</issue>):<fpage>185</fpage>.
                    <pub-id pub-id-type="pmid">31477170</pub-id>
                    <pub-id pub-id-type="doi">10.1186/s13059-019-1758-4</pub-id>
                    <pub-id pub-id-type="pmcid">6717989</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-7">
                <label>7</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Pratt</surname>
                            <given-names>D</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Chen</surname>
                            <given-names>J</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Pillich</surname>
                            <given-names>R</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>NDEx 2.0: A Clearinghouse for Research on Cancer Pathways.</article-title>
                    <source>
						
                        <italic toggle="yes">Cancer Res.</italic>
					</source>
                    <year>2017</year>;<volume>77</volume>(<issue>21</issue>):<fpage>e58</fpage>&#x2013;<lpage>e61</lpage>.
                    <pub-id pub-id-type="pmid">29092941</pub-id>
                    <pub-id pub-id-type="doi">10.1158/0008-5472.CAN-17-0606</pub-id>
                    <pub-id pub-id-type="pmcid">5679399</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-8">
                <label>8</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>van Iersel</surname>
                            <given-names>MP</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Kelder</surname>
                            <given-names>T</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Pico</surname>
                            <given-names>AR</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Presenting and exploring biological pathways with PathVisio.</article-title>
                    <source>
						
                        <italic toggle="yes">BMC Bioinformatics.</italic>
					</source>
                    <year>2008</year>;<volume>9</volume>:<fpage>399</fpage>.
                    <pub-id pub-id-type="pmid">18817533</pub-id>
                    <pub-id pub-id-type="doi">10.1186/1471-2105-9-399</pub-id>
                    <pub-id pub-id-type="pmcid">2569944</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-9">
                <label>9</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Reimand</surname>
                            <given-names>J</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Isserlin</surname>
                            <given-names>R</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Voisin</surname>
                            <given-names>V</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Pathway enrichment analysis and visualization of omics data using g:Profiler, GSEA, Cytoscape and EnrichmentMap.</article-title>
                    <source>
						
                        <italic toggle="yes">Nat Protoc.</italic>
					</source>
                    <year>2019</year>;<volume>14</volume>(<issue>2</issue>):<fpage>482</fpage>&#x2013;<lpage>517</lpage>.
                    <pub-id pub-id-type="pmid">30664679</pub-id>
                    <pub-id pub-id-type="doi">10.1038/s41596-018-0103-9</pub-id>
                    <pub-id pub-id-type="pmcid">6607905</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-10">
                <label>10</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Merico</surname>
                            <given-names>D</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Isserlin</surname>
                            <given-names>R</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Stueker</surname>
                            <given-names>O</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Enrichment map: a network-based method for gene-set enrichment visualization and interpretation.</article-title>
                    <source>
						
                        <italic toggle="yes">PLoS One.</italic>
					</source>
                    <year>2010</year>;<volume>5</volume>(<issue>11</issue>):<fpage>e13984</fpage>.
                    <pub-id pub-id-type="pmid">21085593</pub-id>
                    <pub-id pub-id-type="doi">10.1371/journal.pone.0013984</pub-id>
                    <pub-id pub-id-type="pmcid">2981572</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-11">
                <label>11</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Oesper</surname>
                            <given-names>L</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Merico</surname>
                            <given-names>D</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Isserlin</surname>
                            <given-names>R</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>WordCloud: a Cytoscape plugin to create a visual semantic summary of networks.</article-title>
                    <source>
						
                        <italic toggle="yes">Source Code Biol Med.</italic>
					</source>
                    <year>2011</year>;<volume>6</volume>:<fpage>7</fpage>.
                    <pub-id pub-id-type="pmid">21473782</pub-id>
                    <pub-id pub-id-type="doi">10.1186/1751-0473-6-7</pub-id>
                    <pub-id pub-id-type="pmcid">3083346</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-12">
                <label>12</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Franz</surname>
                            <given-names>M</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Lopes</surname>
                            <given-names>CT</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Huck</surname>
                            <given-names>G</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Cytoscape.js: a graph theory library for visualisation and analysis.</article-title>
                    <source>
						
                        <italic toggle="yes">Bioinformatics.</italic>
					</source>
                    <year>2016</year>;<volume>32</volume>(<issue>2</issue>):<fpage>309</fpage>&#x2013;<lpage>311</lpage>.
                    <pub-id pub-id-type="pmid">26415722</pub-id>
                    <pub-id pub-id-type="doi">10.1093/bioinformatics/btv557</pub-id>
                    <pub-id pub-id-type="pmcid">4708103</pub-id>
                </mixed-citation>
            </ref>
        </ref-list>
    </back>
    <sub-article article-type="reviewer-report" id="report56320">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.23645.r56320</article-id>
            <title-group>
                <article-title>Reviewer response for version 2</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Geistlinger</surname>
                        <given-names>Ludwig</given-names>
                    </name>
                    <xref ref-type="aff" rid="r56320a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-2495-5464</uri>
                </contrib>
                <aff id="r56320a1">
                    <label>1</label>Department of Epidemiology and Biostatistics, City University of New York (CUNY), Graduate School of Public Health and Health Policy, New York, NY, USA</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>28</day>
                <month>11</month>
                <year>2019</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2019 Geistlinger L</copyright-statement>
                <copyright-year>2019</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport56320" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.20887.2"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>Gustavsen and colleagues present a well-written software article that describes usage of RCy3, a R/Bioconductor package for using Cytoscape from within R.</p>
            <p> </p>
            <p> The package is very well documented in both analysis vignettes on the Bioconductor landing page of the package and in the article itself.</p>
            <p> </p>
            <p> The implemented functionality covers a range of useful features including network import/export, network layout, and integration with network and enrichment analysis packages.</p>
            <p> </p>
            <p> I have 3 minor comments: 
                <list list-type="bullet">
                    <list-item>
                        <p>Table 2 is supposed to show the "Top 30 network-related Bioconductor packages ordered by rank" but misses the EnrichmentBrowser package (http://bioconductor.org/packages/EnrichmentBrowser) which is (and was in Sep 2019) highly ranked in the various corresponding BiocViews:</p>
                    </list-item>
                </list> Rank 2: https://bioconductor.org/packages/release/BiocViews.html#___NetworkEnrichment</p>
            <p> Rank 10: https://bioconductor.org/packages/release/BiocViews.html#___Network</p>
            <p> Rank 13: https://bioconductor.org/packages/release/BiocViews.html#___GraphAndNetwork</p>
            <p> </p>
            <p> The relevant functions EnrichmentBrowser::compileGRN (compiles a gene regulatory network in a simple 3 column format regulator-target-effectType), EnrichmentBrowser::nbea (network-based enrichment analysis working on such GRNs), and EnrichmentBrowser::ggeaGraph (constructs a graphNEL object that annotates differential expression and edge consistency) produce network-representations that are compatible with the formats supported by RCy3. I tested that. 
                <list list-type="bullet">
                    <list-item>
                        <p>The lines</p>
                    </list-item>
                </list> gal80Rexp.min &lt;- min(data$gal80Rexp, na.rm = T)</p>
            <p> gal80Rexp.max &lt;- max(data$gal80Rexp, na.rm = T)</p>
            <p> </p>
            <p> should be replaced with</p>
            <p> </p>
            <p> gal80Rexp.min &lt;- min(data$gal80Rexp, na.rm = TRUE)</p>
            <p> gal80Rexp.max &lt;- max(data$gal80Rexp, na.rm = TRUE)</p>
            <p> </p>
            <p> consistent with the remainder of the article and good R style. 
                <list list-type="bullet">
                    <list-item>
                        <p>The lines</p>
                    </list-item>
                </list> # Run EnrichmentMap build command</p>
            <p> em_command &lt;- paste('enrichmentmap build analysisType="generic"',</p>
            <p> "gmtFile=", paste(getwd(), gmt.file, sep="/"),</p>
            <p> "pvalue=", 1,</p>
            <p> "qvalue=", 1,</p>
            <p> "similaritycutoff=",0.25,</p>
            <p> "coefficients=","JACCARD")</p>
            <p> </p>
            <p> can be simplified to</p>
            <p> </p>
            <p> # Run EnrichmentMap build command</p>
            <p> em_command &lt;- paste('enrichmentmap build analysisType="generic"',</p>
            <p> paste0("gmtFile=", file.path(getwd(), gmt.file)),</p>
            <p> "pvalue=1",</p>
            <p> "qvalue=1",</p>
            <p> "similaritycutoff=0.25",</p>
            <p> "coefficients=JACCARD")</p>
            <p>Are the conclusions about the tool and its performance adequately supported by the findings presented in the article?</p>
            <p>Yes</p>
            <p>Is the rationale for developing the new software tool clearly explained?</p>
            <p>Yes</p>
            <p>Is the description of the software tool technically sound?</p>
            <p>Yes</p>
            <p>Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others?</p>
            <p>Yes</p>
            <p>Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Bioinformatics, Cancer genomics, Gene expression data analysis</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <sub-article article-type="response" id="comment5068-56320">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>Pico</surname>
                            <given-names>Alexander</given-names>
                        </name>
                        <aff>Institute of Data Science and Biotechnology, Gladstone Institutes, San Francisco, CA, USA</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>1</day>
                    <month>12</month>
                    <year>2019</year>
                </pub-date>
            </front-stub>
            <body>
                <p>Thanks for the review and code style suggestions. Sorry we missed your package! I'll look into adding it to the table.</p>
            </body>
        </sub-article>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report57133">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.23645.r57133</article-id>
            <title-group>
                <article-title>Reviewer response for version 2</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Denvir</surname>
                        <given-names>James</given-names>
                    </name>
                    <xref ref-type="aff" rid="r57133a1">1</xref>
                    <role>Referee</role>
                </contrib>
                <aff id="r57133a1">
                    <label>1</label>Department of Biomedical Sciences, Joan C. Edwards School of Medicine, Marshall University, Huntington, WV, USA</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>27</day>
                <month>11</month>
                <year>2019</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2019 Denvir J</copyright-statement>
                <copyright-year>2019</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport57133" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.20887.2"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>I have no further comments.</p>
            <p>Are the conclusions about the tool and its performance adequately supported by the findings presented in the article?</p>
            <p>Yes</p>
            <p>Is the rationale for developing the new software tool clearly explained?</p>
            <p>Yes</p>
            <p>Is the description of the software tool technically sound?</p>
            <p>Yes</p>
            <p>Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others?</p>
            <p>Yes</p>
            <p>Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Bioinformatics.</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report55401">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.22981.r55401</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Bhuvaneshwar</surname>
                        <given-names>Krithika</given-names>
                    </name>
                    <xref ref-type="aff" rid="r55401a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0003-4015-7056</uri>
                </contrib>
                <aff id="r55401a1">
                    <label>1</label>Innovation Center for Biomedical Informatics, Georgetown University Medical Center, Washington, DC, USA</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>21</day>
                <month>11</month>
                <year>2019</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2019 Bhuvaneshwar K</copyright-statement>
                <copyright-year>2019</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport55401" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.20887.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>This is a review of the manuscript titled "RCy3: Network biology using Cytoscape from within R". RCy3 is a Bioconductor package that communicates with Cytoscape via its REST API to build and visualize networks. This manuscript is about a re-designed/updated RCy3 package and its function and implementation.</p>
            <p> </p>
            <p> My comments are below: 
                <list list-type="bullet">
                    <list-item>
                        <p>The authors say "We have re-written every function".&#x00a0;Is it backward compatible? Should existing users of the older version of the package have to make changes in their code?</p>
                    </list-item>
                    <list-item>
                        <p>The authors say "Over 100 new functions have been added, including dozens of helper functions specifically for intuitive data overlay operations". This is a great achievement. In addition to this statement, perhaps it would be helpful for users to summarize/compare what the main improvements are in this newer version?</p>
                    </list-item>
                    <list-item>
                        <p>Does this newer version include more or better (or the same) interoperability with other major packages that use RCy3? For example, exporting and importing to/from Ndex. From the example code listed in the paper, it seems there is no change in the way the interoperability works?</p>
                    </list-item>
                </list> Minor comment:</p>
            <p> It is helpful to call the package RCy3 2.0 or something to note the version change? Would keeping the same name be confusing for users?</p>
            <p> </p>
            <p> Overall great work! RCy3 is one of the major packages that work with Cytoscape&#x00a0;so very important for the R/BioC Community. Not all authors of Bioconductor and R packages take effort to update their packages, so I commend this effort. I have used RCy3 in the past and am excited to try out this newest version of the package.</p>
            <p>Are the conclusions about the tool and its performance adequately supported by the findings presented in the article?</p>
            <p>Yes</p>
            <p>Is the rationale for developing the new software tool clearly explained?</p>
            <p>Yes</p>
            <p>Is the description of the software tool technically sound?</p>
            <p>Yes</p>
            <p>Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others?</p>
            <p>Yes</p>
            <p>Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Bioinformatics, Genomic Data Science, Translational and Precision Health Informatics</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <sub-article article-type="response" id="comment5041-55401">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>Pico</surname>
                            <given-names>Alexander</given-names>
                        </name>
                        <aff>Institute of Data Science and Biotechnology, Gladstone Institutes, San Francisco, CA, USA</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>21</day>
                    <month>11</month>
                    <year>2019</year>
                </pub-date>
            </front-stub>
            <body>
                <p>Thank you for your careful review and questions. The package is 
                    <italic>not</italic> backward compatible. We in fact initially submitted it as a completely new package, but were encouraged by Bioconductor reviewers to coordinate with the original RCy3 authors and submit it as a new version of the same package, which we did. The version number is kept separate from the package name per Bioconductor and semantic versioning conventions, so we maintained the original package name. There is a vignette dedicated to upgrading scripts from the original to version 2: (
                    <ext-link ext-link-type="uri" xlink:href="https://bioconductor.org/packages/release/bioc/vignettes/RCy3/inst/doc/Upgrading-existing-scripts.html">https://bioconductor.org/packages/release/bioc/vignettes/RCy3/inst/doc/Upgrading-existing-scripts.html</ext-link>), which highlights the major differences and improvements.</p>
                <p> The original version focused on graphNEL objects, so interoperability with other graphNEL-based packages perhaps hasn&#x2019;t changed. But I just now double checked the old code base and I can&#x2019;t find any NDEx, igraph, data frame or adjacency matrix related functions for network interoperability in the original version.</p>
            </body>
        </sub-article>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report55403">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.22981.r55403</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Denvir</surname>
                        <given-names>James</given-names>
                    </name>
                    <xref ref-type="aff" rid="r55403a1">1</xref>
                    <role>Referee</role>
                </contrib>
                <aff id="r55403a1">
                    <label>1</label>Department of Biomedical Sciences, Joan C. Edwards School of Medicine, Marshall University, Huntington, WV, USA</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>31</day>
                <month>10</month>
                <year>2019</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2019 Denvir J</copyright-statement>
                <copyright-year>2019</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport55403" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.20887.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>This article presents an R package, RCy3, designed to control and automate the network visualization software application Cytoscape. The article describes both a low-level ("generic") and a high-level ("specific") API and presents use-cases with some code samples.</p>
            <p> </p>
            <p> Overall this appears to be an API with great potential&#x00a0;utility for&#x00a0;the bioinformatics community, and the article presents the package clearly and with several useful and informative examples.&#x00a0;</p>
            <p> </p>
            <p> I have a couple of minor comments and suggestions, which I hope will serve to improve the article.</p>
            <p> </p>
            <p> The abstract mentions the potential for RCy3 to deliver reproducible workflows. In my opinion, reproducibility is among the most important benefits of code/script-based workflows over workflows performed using&#x00a0;"point and click" GUI-based applications. However, the&#x00a0;article does not elaborate on this outside of the abstract. A couple of sentences in the discussion describing the potential for RCy3 to enhance&#x00a0;reproducibility would be worthwhile.</p>
            <p> </p>
            <p> The article mentions that the Cytoscape App store currently lists over 40 "RCy3-supported apps". A quick note on what is needed for a third party app to be "RCy3-supported" might be pertinent here. This may be already sufficiently covered in existing publications (e.g. reference 6), in which case a simple note to that effect would suffice.</p>
            <p> </p>
            <p> The code block for the section "Building maps of enrichment analysis results" is not quite as clear as the other code blocks in the article. A comment indicating that commandsAPI() opens a web browser page (externally; at least in my environment) and comments after the print() statements showing the expected output, as in the other blocks of code, would be helpful. The uses of file.path and paste(... sep='/') are a little confusing here (to be honest, I was surprised to find these actually worked on Windows systems); brief comments added to the code might aid readability here.</p>
            <p>Are the conclusions about the tool and its performance adequately supported by the findings presented in the article?</p>
            <p>Yes</p>
            <p>Is the rationale for developing the new software tool clearly explained?</p>
            <p>Yes</p>
            <p>Is the description of the software tool technically sound?</p>
            <p>Yes</p>
            <p>Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others?</p>
            <p>Yes</p>
            <p>Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Bioinformatics.</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <sub-article article-type="response" id="comment5040-55403">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>Pico</surname>
                            <given-names>Alexander</given-names>
                        </name>
                        <aff>Institute of Data Science and Biotechnology, Gladstone Institutes, San Francisco, CA, USA</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>21</day>
                    <month>11</month>
                    <year>2019</year>
                </pub-date>
            </front-stub>
            <body>
                <p>Thank you for your careful review and suggestions. We share your opinion regarding the importance of reproducibility and will add a sentence accordingly to the Discussion section. The support of automation by Cytoscape apps is indeed a major topic of reference 6; we will note that in the text as well. Regarding the code block, we will likely remove the commandsAPI() call to not surprise/distract users with a browser window opening. The use of file.path is simply to avoid a really long string, i.e., longer than the column width of this publication. The use of forward slash is in paths is a generic solution to avoid platform-specific conventions and avoid having to escape backslashes. Neither of these last two &#x201c;tricks&#x201d; are at all specific to RCy3, so we might just leave those as-is.</p>
            </body>
        </sub-article>
    </sub-article>
</article>
