26. Cytoscape 自动化¶
Cytoscape 直观的图形用户界面 (GUI) 非常适用于交互式的网络数据整合、分析和可视化。它为探索性数据分析提供了强大的功能,但如果你有数百个数据文件,或者需要让其他人执行你的数据分析工作流,该怎么办呢?使用 GUI 手动对数百个网络执行相同的操作几乎是不可能的。更重要的是,虽然你可以将结果保存为会话文件,但如果你通过点击式的 GUI 操作来执行数据分析,则无法保存你的工作流。Cytoscape 提供了多种支持自动化工作流的选项,它们统称为“Cytoscape 自动化”。更多教程和示例可在 Cytoscape 自动化网页 (http://automation.cytoscape.org) 获取。
26.1. R 和 Python 程序包¶
如果你已经在使用 R 或 Python,那么你很幸运!这些语言中有现成的程序包,其中包含大量辅助函数,可以使访问和控制 Cytoscape 变得快速且直观。
R 程序包称为 RCy3,可通过 Bioconductor 获取,详见 https://www.bioconductor.org/packages/release/bioc/html/RCy3.html。RCy3 代码仓库提供了一个简洁的界面,用于浏览文档和现有的插图(参见 Articles 菜单):https://cytoscape.cn/RCy3/index.html。此外,在 Cytoscape YouTube 频道上还提供了一系列视频教程。
Python 程序包称为 py4cytoscape。
26.2. 命令¶
命令 (Commands) 功能允许你通过脚本编写一系列 Cytoscape 命令和菜单项,其中命令可以包含通常由用户通过 Cytoscape 对话框提供的参数值。例如:
session open file="C:\\myfile.cys"
该命令从文件加载会话,类似于 文件 (File) → 打开 (Open…) 菜单项。命令可以解析为 Cytoscape 的核心功能或安装在 Cytoscape 中的支持自动化的应用程序。你可以创建一个命令脚本文件,Cytoscape 可以通过 工具 (Tools) → 执行命令文件 (Execute Command File…) 菜单项或在启动时的 Cytoscape 命令行中执行该脚本。 
命令 是 Cytoscape 的内置功能,用于将你的工作流自动化为简单的脚本。你可以在 命令工具 (Command Tool) 一节中了解更多关于命令的信息。
26.3. CyREST 接口层¶
在某些情况下,你可能需要利用功能完备的编程语言(如 R、Python、Ruby 或 JavaScript)中提供的复杂控制和数据结构。这些语言能够实现以 Cytoscape 为中心的复杂工作流,或将 Cytoscape 集成到更大的工作流中。Cytoscape 通过其 CyREST 接口支持以编程方式访问其命令和函数。
默认情况下,CyREST 接口处于启用状态,并在 TCP/IP 端口 1234 上可用。要验证这一点,请在你的 Cytoscape 工作站上启动 Web 浏览器,并导航到 https://:1234/v1/ 或 https://:1234/v1/commands。第一种形式是一个函数,它以 JSON 对象的形式返回基本的 Cytoscape 信息。

第二种形式是一个命令,它返回可用命令命名空间的列表。

请注意,命名空间的列表将根据你安装的应用程序而变化——某些应用程序会提供它们自己的命名空间下的命令。
如果你的工作站端口 1234 已经被占用,你可以通过以下两种方式指定不同的 CyREST 端口:
使用 编辑 (Edit) → 首选项 (Preferences) 菜单修改 rest.port 属性来选择不同的端口(例如 8888)。
通过 -R 参数在 Cytoscape 命令行中指定端口。
cytoscape.bat -R 8888 (for Windows)
./cytoscape.sh -R 8888 (for Mac or Linux)
你可以通过浏览器导航到 https://:8888/v1/ 来测试新端口。
请注意,如果你打算在单个工作站上运行多个 Cytoscape 实例,每个 Cytoscape 实例的 CyREST 端口必须是唯一的。你必须使用属性设置或命令行参数技术,确保每个实例在不同的 CyREST 端口上运行。
探索 CyREST 命令和函数¶
Cytoscape 通过 帮助 (Help) → 自动化 (Automation) 子菜单提供了可用命令和函数的列表。CyREST API 子菜单显示可用函数,CyREST Command API 显示可用命令。自动化示例 (Automation Examples) 会跳转到一个 Web 门户,其中包含了关于 Cytoscape 自动化的大量文档、示例和教程。

值得注意的是,自动化示例中包含一个教程,解释了如何探索 CyREST 命令和函数:https://github.com/cytoscape/cytoscape-automation/wiki/Trying-Automation。
CyREST API 和 CyREST Command API 子菜单在 Swagger Web 应用程序中记录了 CyREST,允许你通过阅读和直接调用(使用 Try it out! 按钮)来探索 CyREST 入口点。一个与 https://:1234/v1/ 函数匹配的示例页面如下:

请注意,该页面包含描述、输入参数、输出值、结果代码以及 Try it out! 按钮。按下该按钮将执行该函数,并显示实际的 CyREST 调用及其结果。充分利用 Swagger 作为原型设计工具,可以极大减少代码编写和调试的时间!

要了解更多关于如何使用 CyREST 的信息,请访问 Cytoscape 自动化 教程页面 (https://github.com/cytoscape/cytoscape-automation/wiki/Trying-Automation)。
请注意,Swagger 页面反映了 Cytoscape 在执行时的功能,包括由已安装应用程序提供的命令和函数。要发现未安装应用程序的 CyREST 功能,你必须先安装它们,然后使用 帮助 (Help) → 自动化 (Automation) 子菜单来生成 Swagger 页面(或者简单地重新加载你的 Swagger 浏览器页面)。