23. 导出数据¶
23.1. 原始数据导出¶

若要在外部应用中使用 Cytoscape 网络中的数据,必须将其导出。由于 Cytoscape 网络包含多种不同类型的数据,Cytoscape 为每种可导出的数据类型提供了相应的选项。这些选项(网络、表格、样式)可以在“文件”→“导出”子菜单中找到(如上所示)。
网络数据交换 (NDEx) 公共数据库¶
导出到 NDEx (Network to NDEx) 选项用于将网络存储在公共 NDEx 服务器上。您可以使用 NDEx 公共服务器将网络存储在云端,以便与合作者共享网络,或为出版归档网络。要存储网络,您必须先创建一个免费的 NDEx 账户,访问 NDEx 公共服务器网站即可轻松创建。
导出到 NDEx 选项仅将当前选定的网络保存到您的 NDEx 账户中。此类网络适用于其他应用和 Web 服务的处理,因为它们仅包含所选网络中的节点和边——其他视图以及它们独有的节点和边不会被写入。如果您稍后重新导入此网络(使用 Cytoscape 的搜索栏),则只会加载您保存的这单个网络。
选择该选项后,将出现 CyNDEx-2 浏览器对话框,允许您提供各种元数据来注释网络,以便在随后的 NDEx 搜索中能够找到它。您可以通过编辑网络名称 (Network Name) 属性来设置网络名称。更新现有网络 (Update Existing Network) 选项允许您覆盖该网络的现有副本(如果您有权限这样做)。我们建议尽可能多地提供元数据,并且至少提供版本 (Version) 和描述 (Description) 属性。
要导出网络,必须首先通过填写个人资料表单(下图中红色椭圆处)将您的 NDEx 账户凭据与 CyNDEx-2 浏览器关联。

创建个人资料后,您就可以将网络导出到 NDEx 了。

导出命令也已添加到 Cytoscape 网络面板的网络和集合上下文菜单中,作为访问网络保存对话框的另一种方法。

最后,工具栏中的 NDEx 按钮提供了一种方便的导入和导出到 NDEx 的额外方式。

导出操作完成后,将显示如下确认对话框。如果您想与外部合作者共享您的网络或了解更多共享选项,请参考 NDEx 的上传和共享网络指南。

有关 NDEx 的更多信息,请访问 NDEx 信息/文档网站。
网络¶

网络选项用于导出网络数据。网络数据包括网络中的节点和边,如果所选格式支持(如 XGMML),还会包括数据属性和视觉信息。网络数据可以通过多种格式导出,包括:
SIF (简单交互格式)
XGMML(带或不带样式数据)
GraphML
PSI-MI Level 1 和 2.5
Cytoscape.js JSON(可与后续章节介绍的 Cytoscape.js 工具一起使用)
CX JSON(用于 Cytoscape 网络基础设施交换)
CX2 JSON
默认格式为 SIF,这是一种简单的制表符分隔网络格式,仅提供节点名称和边交互。您可以使用对话框中的下拉框选择格式。文件名会根据网络名称和所选格式自动建议,文件路径默认为当前工作目录。您可以使用文本框或“浏览”按钮更改建议的文件名/路径。按确定即可使用所选选项导出。
表格¶

导出表格到文件… (Table to File…) 导出选项用于导出当前 Cytoscape 会话中可用的任何数据表。这包括在表格面板中可见的节点、边和网络表,以及任何未分配的表。目前唯一支持的导出文件格式是 CSV(逗号分隔值)。
表格的导出对话框只有两个可选选项:要导出的表和文件名(文件类型始终为 CSV)。文件名会根据所选表的名称建议,路径默认为当前工作目录。与网络导出一样,建议的文件名可以使用“浏览”按钮或文本字段更改。按确定即可用指定的文件名导出所选表。
表格面板中也提供了导出表格到文件…的快捷按钮
。
样式¶

样式选项用于导出当前 Cytoscape 会话中可用的一个或多个样式。支持的格式包括样式 XML(可由 Cytoscape 3.x 版本导入)或 Cytoscape.js JSON(可与后续章节介绍的 Cytoscape.js 一起使用)。
样式导出有三个选项:导出格式(如上所述)、要导出的样式以及文件名(根据当前目录和文件类型提供建议)。与网络→表格一样,建议的文件名可以使用“浏览”按钮或文本字段更改。样式列表是一个多选列表,可以通过 Ctrl/Cmd+点击(选择多个不连续元素)或 Shift+点击(选择连续元素范围)来选择一个或多个样式。按确定即可按给定的文件路径导出所有选定样式。
23.2. 导出以供发布¶
完成数据分析和可视化后,您可以发布数据以共享结果。Cytoscape 为此提供了多种选项,大多数适合普通用户,其他则适合希望创建不寻常或复杂网络查看器的程序员。以下作进一步解释。
NDEx 网络
会话文件
静态图像
交互式 Web 应用
完整 Web 应用
简单网络视图(供 Web 应用开发者参考)
作为 NDEx 网络¶
与他人共享结果最简单的方法是使用导出到 NDEx选项将您的网络保存在 NDEx 公共数据库中。然后,访问您的 NDEx 账户并启用可共享 URL (Sharable URL)(类似于 Google 文档共享链接),这样任何拥有该链接的人都可以访问您的私有网络。
NDEx 还提供了其他选项,使您能够:
申请适用于出版物、资助申请或进度报告的 DOI
在 NDEx 内创建工作组 (groups) 并进行特定共享。
对您的网络运行不同类型的查询 (queries)
对各种数据集执行富集分析 (enrichment analysis),包括已策划的通路、大型相互作用组、药物-靶点关联网络等。
有关 NDEx 发布和共享功能的更多信息,请参阅 在 NDEx 中发布 和 在 NDEx 中共享网络 手册。
作为会话文件¶
与他人共享结果的另一种简单方法是将会话另存为会话文件(一个压缩的会话归档)。您可以点击保存会话 (Save Session) 图标来保存当前会话。您可以将其保存到优盘、共享文件系统甚至 Dropbox 等云盘目录中。如果您保存到共享驱动器,请注意不要让两人同时用 Cytoscape 编辑同一个会话文件,否则可能会出现不可预知的结果。
作为静态图像¶

Cytoscape 可以从网络视图生成出版质量的图像。通过选择文件 → 导出为图像… (File → Export as Image…),您可以将当前网络视图导出为以下格式:
JPG
PNG
PS (Post Script)
SVG
PDF
图像导出对话框有根据所选文件格式而变的选项,文件类型和文件名始终可选。PNG 和 JPEG 有缩放选项,而其他格式只有一个选项,即导出文字为字体 (Export Text as Font)。文件名根据所选表的名称建议,路径默认为当前工作目录。与原始数据导出一样,可以使用浏览按钮或文本字段更改建议的文件名。按确定以给定的文件名和参数导出图像。
我们建议在出版物中使用 PDF,因为它是一种标准的矢量图形格式,并且易于在 Adobe Illustrator 等其他应用程序中编辑。
已知问题¶
对于 PDF 导出,有一个导出文字为字体 (Export text as font) 选项。此选项不适用于双字节字符,如中文或日文。为了避免导出图像中的文字乱码,在发布包含非英文字符的网络时,请取消勾选此选项。
作为交互式 Web 应用¶
Web 是数据共享和协作的绝佳平台,Cytoscape(自 3.2.0 版本起)提供了多种在 Web 上发布网络的方式,每种选择都在易用性、简洁性和自定义选项之间进行了权衡。所有解决方案都利用 cytoscape.js 绘图库,因此不仅可以查看,还可以进行类似 Cytoscape 的交互式浏览网络和属性。
最简单的选择是 CyNetShare,您可以将网络(以及可选的样式)保存在公共文件系统中,然后在浏览器中进行交互式查看。就像 Google 地图一样,您可以生成并发布一个 URL,让合作者也能查看您的网络。
或者,Cytoscape 可以生成一个完整的网站,其中包含一个预加载了您网络的查看器。您可以将其直接加载到您自己的 Web 服务器上,成为您网站的一部分。
最后,Cytoscape 可以生成网站骨架,供 JavaScript 程序员进行进一步定制。
这些功能作为“文件”菜单下的导出 (Export) 菜单项提供,并在以下章节中进行介绍。
例如,这是 Cytoscape 中的一个网络

这是与上述相同的交互式 Web 可视化网络

请注意,Web 浏览器可以快速有效地渲染小型网络(例如 1000 个节点),但渲染大型网络(例如 5000 个节点)将需要很长时间。
关于将样式导出到交互式 Web 应用的说明: 我们的 Web 应用基于 cytoscape.js 显示库,该库仅渲染 Cytoscape 样式的一个子集。有关更多信息,请参阅下面的导出样式到 Cytoscape.js 章节。
生成完整 Web 应用¶
完整页面导出选项专为希望将网络发布为完整单页应用的用户设计。Cytoscape 会创建一个 zip 压缩包,其中包含一个完整的、基于 JavaScript 的 Web 应用,该应用可作为 Cytoscape 生成的网络可视化的基础查看器(类似于 CyNetShare)。您可以将压缩包解压到 Web 服务器(或您的电脑)上,并通过 PC 或平板电脑的 Web 浏览器查看网络。

要将当前会话中的所有网络生成为一个 zip 压缩包形式的完整网页,请选择文件 → 导出 → 网络到网页… (File → Export → Network to Web Page…)。将出现以下对话框:

此简单对话框只有两个选项:文件名和 Web 导出类型(完整、简单网络视图或 JSON)。对于完整 Web 应用,我们使用默认设置。文件名根据所选表的名称建议,路径默认为当前工作目录。与原始数据导出一样,建议的文件名可以使用浏览按钮或文本字段更改。按确定以给定的文件名导出 Web 归档。
要查看网页,请将归档解压到 PC 或 Web 服务器的文件夹中。该文件夹将包含一个 index.html 文件、网络数据和其他文件。您可以在浏览器中打开 index.html 文件(通常从浏览器的文件 → 打开菜单项)。
这是来自 Cytoscape 的导出文件示例

请注意,由于 Cytoscape 使用最新的基于 HTML5 的 Web 技术,因此它不支持较旧或不符合标准的 Web 浏览器,例如 Internet Explorer。我们强烈建议使用现代 Web 浏览器(如 Google Chrome、Mozilla Firefox 或 Apple Safari)的最新版本。
生成简单网络视图(供 Web 应用开发者参考)¶
简单网络视图导出选项专为希望将数据发布为完整单页应用,且有兴趣自行定制 Web 查看器应用的用户设计。Cytoscape 创建一个 zip 压缩包,其中包含基于 cytoscape.js 库的、部分基于 JavaScript 的 Web 应用,该应用包含简单的样板代码和当前网络视图。用户可以通过自定义此代码来创建自定义查看器。

要将单个网络视图生成为一个 zip 归档网页,请像以前一样选择文件 → 导出为网页… (File → Export as Web Page …),但这次选择仅当前网络的简单查看器 (Simple viewer for current network only) 格式,如下所示:

其他所有内容与之前一样,只是这次查看器将仅包含当前网络。按确定继续导出。
有关测试自定义 Web 应用的说明,请参阅上方的生成完整 Web 应用。
使用 Cytoscape.JS 功能扩展网页¶
自 Cytoscape 中 JSON 支持核心应用 3.6.2 版本起,用户可以向导出的网页添加自定义 Cytoscape.JS 事件。在 web_session/scripts 目录中,添加了一个 custom.js 文件,其中包含放置自定义 JS 代码的指定位置。
例如,要为网页中的节点添加外部链接(即当用户点击节点时,打开由 href 节点属性指定的 URL),custom.js 文件应如下所示:
// Notice that the `cy` object may only be referenced
// after the document has finished loading.
$( document ).ready(function(){
cy.on('tap', 'node', function(){
try { // your browser may block popups
window.open( this.data('href') );
} catch(e){ // fall back on url change
window.location.href = this.data('href');
}
});
});
每次导出网页时都必须进行此项更改。如果您想更改默认的导出模板,请参考下一节。
自定义导出模板(供 Web 应用开发者参考)¶
Cytoscape 为完整 Web 应用和简单网络视图 Web 应用生成的代码非常精简。虽然您可以直接修改此代码以创建自己的页面设计或添加新功能,但修改只会应用于单个导出的网络。如果您是 Web 应用开发者,可以通过编辑 ~/CytoscapeConfiguration/web 目录中的 HTML5 模板代码资源文件来更改为所有导出生成的应用代码。

在此文件夹中,您可以找到对应于上述完整 Web 应用和简单网络视图的 full 和 simple 子目录。
要求¶
要构建这些项目,需要安装以下工具:
Node.js
gulp
grunt
完整导出模板¶
这是一个基于 AngularJS 的 Web 应用,使用 grunt 构建(至少目前如此——我们计划迁移到 gulp)。源代码和更多文档可在此处获取:
要将项目构建到 dist 目录,请键入:
grunt
简单导出模板¶
此模板由一个简单的 gulp 项目生成。源代码可在此处获取:
要将项目构建到 dist 目录,请键入:
gulp
使用您的自定义模板进行导出¶
一旦有了自己的构建版本,就可以通过将 full 和 simple 的内容替换为您自己的构建版本来部署模板。