5. 创建网络

在 Cytoscape 中创建网络有 4 种不同的方法:

  1. 导入预先存在的、固定格式的网络文件。

  2. 导入预先存在的、无格式的文本文件或 Excel 文件。

  3. 从公共数据库导入数据。

  4. 创建一个空网络并手动添加节点和边。

5.1. 导入固定格式的网络文件

网络文件可以使用 支持的网络格式 一节中描述的任何格式。网络通过 文件 (File) → 导入 (Import) 导入到 Cytoscape 中。网络文件可以直接位于本地计算机上,也可以位于远程计算机上(在这种情况下,将使用 URL 引用)。

从本地计算机加载网络

要从本地文件加载网络,您可以选择 文件 (File) → 导入 (Import) → 来自文件的网络… (Network from File…) 或点击工具栏上的 。在文件选择器对话框中选择正确的文件,然后按 打开 (Open)。Cytoscape 的 sampleData 文件夹中包含了一些不同类型的示例网络文件。

选择网络文件后,会弹出一个对话框。在这里,您可以选择为新网络创建一个新的网络集合,或者将新网络加载到现有的网络集合中。选择后者时,请确保选择正确的映射列,以便将新网络映射到现有的网络集合。

Cytoscape 中的网络集合用于组织相关的网络,例如子网络。集合中的网络通过 shared name(共享名称)节点属性进行链接;导入时会添加 shared name 属性。当您想要更改集合中所有网络中的节点名称时,此属性非常有用。

或者,您可以直接将网络文件从桌面拖放到 控制面板 (Control Panel)网络 (Network) 选项卡中,而不是从菜单选项中选择文件。

SIF、GML 和 XGMML 格式的网络文件也可以使用 -N 选项直接从命令行加载。

从远程计算机加载网络(URL 导入)

要从远程文件加载网络,请选择 文件 (File) → 导入 (Import) → 来自 URL 的网络… (Network from URL…)。在导入网络对话框中,手动或使用 URL 书签插入相应的 URL。点击文本字段右侧的箭头可以访问已添加书签的 URL(有关书签的更多详细信息,请参阅 首选项 (Preferences) 中的书签管理器)。此外,您还可以将网络浏览器中的链接拖放到 URL 文本框中。指定 URL 后,点击“确定”按钮加载网络。

对于存储在云存储中的网络文件,默认 URL 在 Cytoscape 中并不总是有效,需要转换后才能使用。以下是一些常见云存储选项的默认 URL 转换示例:

Dropbox

  • 默认 URL: https://www.dropbox.com/s/077w3i4500dxrsm/galFiltered.sif?dl=0

  • Cytoscape URL: https://dl.dropboxusercontent.com/s/077w3i4500dxrsm/galFiltered.sif

说明:将 www.dropbox.com 替换为 dl.dropboxusercontent.com,并删除 ?dl=0

Google Drive

针对小于 100K 的文件

  • 默认: https://drive.google.com/file/d/1hHO4ErMx7HMo-_sRV_PfeoM3lnn6ZDLw/view?usp=sharing

  • Cytoscape URL: https://drive.google.com/uc?export=download&id=1hHO4ErMx7HMo-_sRV_PfeoM3lnn6ZDLw

说明:将 file/d/ 替换为 uc?export=download&id=,并删除 /view?usp=sharing

您可能会看到一个中间导入窗口(下文有详细描述),您可能需要在其中更改分隔符并定义源、目标和交互。对于此特定示例,请在 高级 (Advanced) 中将 分隔符 (Delimiter) 更改为 空格 (Space),取消选中 使用第一行作为列名 (Use first line as column names),并将第一列设为 源 (Source),第三列设为 目标 (Target),第二列设为 交互类型 (Interaction Type)

GitHub

  • 默认 URL: https://github.com/bdemchak/cytoscape-jupyter/blob/main/sanity-test/data/galFiltered.sif

  • Cytoscape URL: https://raw.githubusercontent.com/bdemchak/cytoscape-jupyter/main/sanity-test/data/galFiltered.sif

说明:将 github.com 替换为 raw.githubusercontent.com,并删除 /blob

网络导入的另一个问题是防火墙的存在,这可能会影响计算机可以访问哪些文件。为了解决这个问题,Cytoscape 支持使用代理服务器。要配置代理服务器,请转到 编辑 (Edit) → 首选项 (Preferences) → 代理设置… (Proxy Settings…)。这将在 首选项 (Preferences) 一节中进一步描述。

5.2. 从无格式表格文件导入网络

Cytoscape 支持使用 文件 (File) → 导入 (Import) → 来自文件的网络… (Network from File…) 从带分隔符的文本文件和 Excel 工作簿导入网络。交互式 GUI 允许用户为指定文件指定解析选项。该屏幕提供了一个预览,显示了在当前配置下文件将如何被解析。随着配置的更改,预览会自动更新。除了指定文件的解析方式外,用户还必须选择代表源节点和目标节点的列,以及一个可选的边交互类型。有关详细说明,请参阅下方的“基本操作”。

支持的文件类型

导入功能支持带分隔符的文本文件和 Microsoft Excel 工作簿。对于具有多个工作表的工作簿,每次可以选择一个工作表进行导入。以下是示例表格文件:

表格中的示例网络
源 (source) 目标 (target) 交互 (interaction) 布尔数据 (boolean data) 字符串数据 (string data) 浮点数据 (floating point data)
YJR022W YNR053C pp TRUE abcd12371 1.2344543
YER116C YDL013W pp TRUE abcd12372 1.2344543
YNL307C YAL038W pp FALSE abcd12373 1.2344543
YNL216W YCR012W pd TRUE abcd12374 1.2344543
YNL216W YGR254W pd TRUE abcd12375 1.2344543

用于创建带边的网络时,网络表格文件应至少包含两列。如果文件只有一列,则创建的网络将不包含任何边。交互类型在此格式中是可选的。因此,最简网络表格如下所示:

最简网络表格
源 (source) 目标 (target)
YJR022W YNR053C
YER116C YDL013W
YNL307C YAL038W
YNL216W YCR012W
YNL216W YGR254W

网络表格文件中的一行代表一条边及其边数据列。这意味着网络文件被视为网络数据和边列数据的组合。表格可能包含不打算用作边数据的列。在这种情况下,您可以点击预览窗口中的列标题来选择不导入这些列。当导入如下数据表 (1) 时,此功能非常有用。

此数据文件是一个制表符分隔的文本文件,包含网络数据(交互)、边数据和节点数据。要从此表中导入网络和边数据,请选择 Unique ID A 作为源,Unique ID B 作为目标,Interactor types 作为交互类型。接下来,关闭用于节点数据的列(Alt ID Aspecies B 等)。其他列可以作为边数据导入。

网络导入功能无法导入节点表格列 - 仅能导入边表格列。要从此表中导入节点表格列,请参阅本手册的 节点和边列数据 一节。

注意 (1):此数据改编自 Andrew Garrow、Yeyejide Adeleye 和 Guy Warner 的 A merged human interactome 数据集(Unilever, Safety and Environmental Assurance Center, 2006 年 10 月 12 日)。

基本操作

要从文本/Excel 表格导入网络,请遵循以下步骤:

  1. 选择 文件 (File) → 导入 (Import) → 来自文件的网络… (Network from File…) 或点击工具栏上的

  2. 在文件选择器对话框中选择一个表格文件。

  3. 通过指定哪些数据列包含 源交互 (Source Interaction)目标交互 (Target Interaction)交互类型 (Interaction Type) 来定义交互参数。点击任何列标题右侧的箭头将调出用于选择源、交互和目标的界面。

  4. (可选) 如果适用,定义边表格列。网络表格文件除了网络数据外,还可以包含边表格列。

    • 启用/禁用表格列:您可以通过在列编辑器中选择 符号来启用/禁用列数据。

    • 更改列名和数据类型:您还可以在列编辑器中修改列名和数据类型。有关更多详细信息,请参阅下方的 修改列名/类型 (Modify Column Name/Type)

  5. 点击 确定 (OK) 按钮。

导入无边节点列表

表格导入功能支持无边节点列表。如果您仅选择源列,它将创建一个没有交互的网络。此功能在使用某些 Web 服务客户端提供的节点扩展功能时非常有用。请阅读 从外部数据库导入网络 一节以了解更多详细信息。

高级选项

您可以通过点击主导入界面中的 高级选项 (Advanced Options) 按钮来选择几个选项。

  • 分隔符 (Delimiter):您可以为文本表格选择多个分隔符。默认情况下,选择 TabSpace 作为分隔符。

  • 默认交互 (Default Interaction)

  • 将第一行作为列名 (Transfer first line as column names):选择此选项将使所有边列根据该列中的第一个数据条目命名。

  • 开始导入行 (Start Import Row):设置从表格的哪一行开始导入数据。例如,如果您想跳过文件中的前 3 行,请将此选项设置为 4。

  • 忽略以...开头的行 (Ignore lines starting with):以该字符开头的行将不会被导入。此选项可用于跳过文本文件中的注释行。

修改列名/类型

从表格导入网络 (Import Network from Table) 界面中,您可以通过点击任何列标题来更改列的名称和数据类型。

可以在此处修改列名和数据类型。

  • 修改列名 (Modify Column Name) - 输入新的列名。

  • 修改列数据类型 (Modify Column Data Type) - 支持以下列数据类型:

    • 字符串 (String)

    • 布尔值 (Boolean) (True/False)

    • 整数 (Integer)

    • 浮点数 (Floating Point)

    • 列表 (List of) (String/Boolean/Integer/Floating Point)

Cytoscape 具有基本的检测功能,可根据条目自动建议列数据类型。这可以通过从提供的单选按钮中选择适当的数据类型来覆盖。对于列表,必须指定一个全局分隔符(即,表格中的所有单元格必须使用相同的分隔符)。

5.3. 从公共数据库导入网络

Cytoscape 允许您从公共数据库导入网络。用户可以通过 文件 (File) → 导入 (Import) → 来自公共数据库的网络… (Network from Public Databases…) 使用此功能访问各种数据库。搜索栏 (Search bar) 也位于 控制面板 (Control Panel)网络 (Network) 面板的顶部。通过搜索栏,您可以直接访问多个公共数据库。

什么是 Web 服务?

Web 服务是一种标准化的、平台无关的机制,供计算机通过互联网进行交互。如今,许多主要的生物数据库都通过 Web 服务 API 发布其数据。

Cytoscape 核心开发团队使用此框架开发了几个 Web 服务客户端。Cytoscape 支持许多 Web 服务,包括:

  • PSICQUIC:生物交互数据集的标准 Web 服务。与 PSICQUIC 兼容的数据库完整列表可在此查看。PSICQUIC 可通过 搜索栏 使用。

  • Pathway Commons:来自通路和网络资源的集成数据。支持资源的完整列表可在此查看。Pathway Commons 可通过 文件 (File) → 导入 (Import) → 网络 (Network) → 公共数据库… (Public Databases…) 使用。

  • STITCHSTRING:STITCH 是已知和预测的化学物质与蛋白质之间相互作用的数据库。STRING 是已知和预测的蛋白质-蛋白质相互作用的数据库。STITCH 和 STRING 可通过 搜索栏 以及 文件 (File) → 导入 (Import) → 网络 (Network) → 公共数据库… (Public Databases…) 使用。

  • NDEx:网络数据交换 (NDEx) 项目提供了一个开源框架,科学家和组织可以在此共享、存储、操作和发布生物网络知识。NDEx 可通过 搜索栏文件 (File) → 导入 (Import) → 来自 NDEx 的网络… (Network from NDEx…) 以及工具栏中的 NDEx 按钮 使用。

示例:从 NDEx 检索网络

  • 搜索栏 中,从下拉菜单中选择 NDEx 并输入一个或多个搜索词,例如 BRCA1。

  • 点击 回车 (Enter) 开始搜索。

  • CyNDEx-2 查找网络 (Find Networks) 对话框窗口将打开并显示搜索结果。

  • 默认情况下,结果按您提供的搜索词的相关性顺序返回;您可以通过点击列标题更改排序条件。

  • 勾选结果表格顶部的 我的网络 (My Networks) 复选框以仅显示您拥有的结果(您必须拥有一个 NDEx 帐户和一个与 CyNDEx 浏览器关联的个人资料… 有关更多详细信息,请参阅 导出选项 一节)。

  • 点击网络左侧的 黑色箭头图标 将其导入 Cytoscape 并可视化。加载完网络后,通过点击 关闭对话框 (Close Dialog) 按钮关闭窗口。

您也可以在搜索中使用 uuid: 选择器按 UUID 查找网络(例如,uuid:50e3dff7-133e-11e6-a039-06603eb7f303)。

与 NDEx 一样,CyNDEx-2 使用标准的 Lucene 语法 作为其网络搜索语言。有关其他信息,请参阅 在 NDEx 中搜索网络。有关 CyNDEx-2 的更多信息,请访问 CyNDEx-2 App Store 页面。

最后,也可以通过主 Cytoscape 工具栏 中的 NDEx 按钮访问 NDEx 导入和导出对话框,点击后将显示这两个选项。

5.4. 创建新网络或手动编辑网络

也可以创建一个新的空网络并手动添加节点和边。要创建一个空网络,请转到 文件 (File) → 新建网络 (New Network) → 空白 (Empty),然后通过右键点击网络画布或节点手动添加网络组件。您可以使用相同的过程编辑现有网络。

添加节点

要添加新节点,请右键点击网络视图面板上的空白处。从弹出菜单中选择 添加 (Add) → 节点 (Node) 项。

添加边

要添加边以连接节点,请右键点击源节点。从弹出菜单中选择 编辑 (Edit) → 添加边 (Add Edge)。接下来,点击目标节点。下图显示了在两个节点之间绘制边的两个步骤。您可以按 Esc 键中止绘图。您还可以选择两个或多个节点进行连接,并在右键菜单中选择 添加 (Add) → 添加连接选定节点的边 (Edges Connecting Selected Nodes),以创建连接所有选中节点的边。

您可以通过选择多个节点和边,然后选择 编辑 (Edit) → 剪切 (Cut) 来删除它们。您也可以在 编辑 (Edit) 菜单下的 编辑 (Edit) → 删除选定节点和边… (Delete Selected Nodes and Edges…) 中删除选定的节点和边。您可以通过 编辑 (Edit) → 撤销 (Undo) 恢复从网络中删除的任何节点和边。

节点分组

可以将任意数量的节点组合在一起,并显示为一个组节点或单独的节点。要创建组,请选中两个或多个节点,右键点击并选择 组 (Group) → 组选定节点 (Group Selected Nodes)。系统将提示您为组节点选择一个名称。一旦创建了组,您就可以使用右键菜单折叠或展开该组。您还可以通过双击组节点或其任何子节点来快速折叠/展开组以进行切换。

折叠的组

展开的组

组合节点的外观和行为取决于创建组时生效的 组设置 (group settings)。可以管理整个 Cytoscape 会话的设置(通过 编辑 (Edit) → 首选项 (Preferences) → 组首选项… (Group Preferences…))或特定组的设置(右键点击 首选项 (Preferences) → 组首选项… (Group Preferences…))。

添加网络注释

注释 (Annotations)(文本、图像或形状形式)可以通过右键点击画布上的任意位置并在 添加 (Add) 菜单中选择 注释 (Annotation) 选项之一来添加到网络画布中。您可以添加自己的图像、从形状库中选择或添加纯文本或带边框的文本。形状和文本是可自定义的,任何添加的注释都可以从右键上下文菜单中进行编辑。