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 应用

  • CyNetShare

  • 完整 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 章节。

通过 CyNetShare 共享

CyNetShare 是一个基于浏览器的 Web 应用,用于渲染保存在公共目录中的 JSON 格式网络和属性。您可以选择指定 Web 应用将用来绘制您网络的样式,使其看起来与 Cytoscape 中的一样。CyNetShare 类似于 Google 地图,一旦加载了网络并调整了外观以满足您的需求,您就可以让 CyNetShare 生成一个新的 URL,您可以将其通过电子邮件发送或作为链接发布在您自己的网站上。该 URL 将启动预加载了您网络的 CyNetShare,供任何人查看。

要使用 CyNetShare

  1. 选择文件 → 导出 → 网络到文件… (File → Export → Network to File…) 将您的网络导出到公共目录。选择 Cytoscape.js JSON (*.cyjs) 导出文件格式。

  2. 可选:选择文件 → 导出 → 样式… (File → Export → Style…) 以导出您的样式设置。选择 Style for cytoscape.js (*.json) 导出文件格式。

  3. 使用您的公共目录系统确定您导出文件的直接 URL。

  4. 启动 CyNetShare

  5. 输入网络的 URL 作为图形 URL (Graph URL)

  6. 可选:输入样式的 URL。

  7. 点击可视化 (Visualize) 按钮。

CyNetShare 网页上提供了 CyNetShare 用户指南。

请注意,如果您指定了样式 URL,该样式将添加到 CyNetShare 可视化样式下拉菜单中,您可以通过从列表中选择它来应用该样式。CyNetShare 的初始显示使用名为 default 的视觉样式——请使用视觉样式下拉菜单选择 Cytoscape 生成 .cyjs 和 .json 文件时生效的样式。

请注意,在公共目录系统中生成文件的 URL 的机制是一个快速发展的话题。直到最近,Dropbox(以及其他)等系统还允许用户创建直接指向文件的 URL——直接 URL 适用于 CyNetShare。在撰写本文时,一些公共目录系统(例如 Dropbox)转而生成可共享的 URL,这些 URL 指向允许文件下载的网页——可共享 URL 不适用于 CyNetShare。提供可共享 URL 的系统可能会在其高级(或 Pro)套餐中提供直接 URL。要判断您的公共目录系统是否生成直接 URL,请生成一个文件的 URL,然后将其粘贴到浏览器的地址栏中,观察浏览器是直接显示文件(好!),还是显示文件的下载页面(坏!)。

提示: 如果 Dropbox 生成的共享链接看起来像 https://www.dropbox.com/s/w5e7towcchuvdeu/cynetworm.cyjs?dl=0,您或许可以通过将 dl=0 改为 dl=1 来创建一个直接链接:https://www.dropbox.com/s/w5e7towcchuvdeu/cynetworm.cyjs?dl=1

如果可以访问 Web 服务器,将文件存储在由 Web 服务器提供的公共目录中是一个总是能获得直接 URL 的简单策略——由 Web 服务器提供的 URL 可能显示为:http://myserver.com/~mypublicdir/netstyle.json

或者,您可以使用 Gist 创建一个具有“直接”URL 的可共享文档。尝试此操作:

  1. 使用 Cytoscape 将您的网络生成为本地磁盘上的 .cyjs 文件

  2. 使用编辑器打开文件并将内容复制到剪贴板

  3. 使用 Web 浏览器访问 Gist

  4. 将内容粘贴到 Gist 文档中

  5. 选择创建公开 Gist (Create public Gist)

  6. 选择原始 (Raw) 以将直接 URL 放入浏览器的地址栏

  7. CyNetShare 中使用该 URL

生成完整 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 应用和简单网络视图的 fullsimple 子目录。

要求

要构建这些项目,需要安装以下工具:

  • Node.js

  • gulp

  • grunt

完整导出模板

这是一个基于 AngularJS 的 Web 应用,使用 grunt 构建(至少目前如此——我们计划迁移到 gulp)。源代码和更多文档可在此处获取:

要将项目构建到 dist 目录,请键入:

grunt
简单导出模板

此模板由一个简单的 gulp 项目生成。源代码可在此处获取:

要将项目构建到 dist 目录,请键入:

gulp
使用您的自定义模板进行导出

一旦有了自己的构建版本,就可以通过将 fullsimple 的内容替换为您自己的构建版本来部署模板。