25. Cytoscape.js 和 Cytoscape¶
25.1. 什么是 Cytoscape.js?¶

Cytoscape.js 是一个用于交互式网络可视化的 JavaScript 库。它是构建 Web 应用程序的基石,本身不是一个完整的 Web 应用程序。如果您有网络数据集并希望分享使用 Cytoscape 创建的可视化结果,您可以利用 Cytoscape.js 和此项新增的导出至 Cytoscape.js 功能来构建自己的网站。
示例¶
使用 Cytoscape 3.1.0 可视化的网络
导出到 Cytoscape.js 的相同网络(使用 Google Chrome 和 Cytoscape.js 2.0.3 渲染)
25.2. Cytoscape 与 Cytoscape.js 之间的数据交换¶
由于 Cytoscape.js 是一个 JavaScript 库,其基本数据交换格式是 JSON (JavaScript 对象表示法)。所有这些导入/导出功能都是标准 Cytoscape 用户界面的一部分,您可以像处理 SIF 等其他标准文件一样读取/写入 Cytoscape.js JSON 文件。
将网络和表格导出到 Cytoscape.js¶
Cytoscape.js 将网络数据(图)及其数据表存储在同一个对象中。Cytoscape 将这种复杂数据写为 JSON,即网络和数据表都会被导出为一个单一的 JSON 文件。您可以选择一个网络,并通过 文件 (File) → 导出 (Export) → 网络至文件… (Network to File…) 进行导出,并选择 Cytoscape.js JSON (*.cyjs) 作为文件类型。
Cytoscape 仅支持 Cytoscape.js 所支持的其中一种 JSON 格式,即:
{
elements:{
nodes:[],
edges:[]
}
}
SUID 将被用作 JSON 中节点和边的唯一标识符。有关此格式的更多信息,请访问 Cytoscape.js 网站。
关于数据兼容性的重要说明¶
Cytoscape 直接从数据表创建 JSON 文件,并尽可能从原始表中提取数据。然而,由于表列名将直接转换为 JavaScript 变量名,无效字符将被下划线 (_) 替换。
原始数据表列名
Gene Name KEGG.pathway
上述名称将被替换为
Gene_Name KEGG_pathway
当您计划将此功能用于数据往返(从 Cytoscape 到 Cytoscape.js,再回到 Cytoscape)时,需要特别小心。对于此类用例,我们强烈建议仅在表列名中使用 JavaScript 安全字符。仅使用字母数字字符和下划线 (_) 来命名列是最佳实践。(对于实际数据条目,允许所有字符。此限制仅适用于表列名。)
25.3. 将样式导出到 Cytoscape.js¶
Cytoscape 和 Cytoscape.js 共享一个称为样式 (Style) 的概念。这是一组从数据点到网络属性的映射。Cytoscape 可以将其样式导出为基于 CSS 的 Cytoscape.js JSON。
您可以从 文件 (File) → 导出 (Export) → 样式至文件… (Styles to File…) 将所有样式导出为一个 JSON 文件,并选择 Style for cytoscape.js (*.json) 作为格式。
局限性¶
Cytoscape.js 并不支持所有的 Cytoscape 网络属性。当您导出到 JSON 样式文件时,这些属性将被忽略或简化。
目前,以下视觉属性将不会被导出到 Cytoscape.js JSON:
自定义图形及其位置
边弯曲 (Edge Bends)
工具提示 (Tooltips)
节点标签宽度
节点边框线条类型
箭头颜色(它们始终与边的颜色相同)
Cytoscape.js 与 Cytoscape 的兼容性¶
Cytoscape 的网络渲染系统专为桌面使用而设计,而基于浏览器的渲染器则结合了 Web 技术(例如 cytoscape.js 和层叠样式表 CSS)。因此,大多数(但并非所有)网络在浏览器中的渲染效果与在 Cytoscape 中相同。Web 浏览器不支持的 Cytoscape 视觉样式将被忽略。完整的兼容性列表可在此处获取 此处。
将 Cytoscape.js 数据导入 Cytoscape¶
Cytoscape.js 网络 JSON 文件可以通过标准 Cytoscape 文件菜单加载:文件 (File) → 导入 (Import) → 网络… (Network…)。文件和 URL 均受支持。
25.4. 使用 Cytoscape.js 构建您自己的 Web 应用程序¶
虽然 Cytoscape 可以将网络、表格和样式导出为 Cytoscape.js 兼容的 JSON,但用户必须编写一些 JavaScript 代码才能使用 Cytoscape.js 将数据文件可视化。使用 Cytoscape.js 进行 Web 应用程序开发的细节超出了本文档的范围。如果您需要有关使用 Cytoscape.js 进行 Web 应用程序开发的示例和教程,请访问以下网站:
https://github.com/cytoscape/cyjs-sample/wiki
有问题吗?¶
如果您对使用 Cytoscape 和 Cytoscape.js 进行 Web 应用程序开发有任何疑问或意见,请发送至我们的邮件列表。