11. 导航与布局¶
11.1. 基本网络导航¶
Cytoscape 使用可缩放用户界面 (ZUI) 来导航和查看网络。ZUI 使用两种导航机制:缩放和平移。缩放根据用户希望查看的细节程度增加或减少视图的放大倍数。平移允许用户将屏幕焦点移动到视图的不同部分。
缩放¶
Cytoscape 提供了四种缩放机制:工具栏按钮、菜单选项、键盘快捷键和鼠标滚轮。
使用工具栏上的缩放按钮可以对当前网络显示中的交互网络进行放大或缩小。缩放图标详情如下:
![]()
从左到右
放大
菜单选项:View → Zoom In
键盘快捷键:
Ctrl-Plus(Mac OS X 上为Command-Plus)
缩小
菜单选项:View → Zoom Out
键盘快捷键:
Ctrl-Minus(Mac OS X 上为Command-Minus)
适应内容 (Fit Content):调整缩放级别以使网络适应窗口
菜单选项:View → Fit Content
键盘快捷键:
Ctrl-0(Mac OS X 上为Command-0)
适应所选 (Fit Selected):调整缩放级别以聚焦于选定的节点
菜单选项:View → Fit Selected
键盘快捷键:
Ctrl-9(Mac OS X 上为Command-9)
使用鼠标滚轮,向上滚动可放大,向下滚动可缩小。在启用了自然滚动(Mac OS X Lion 及更高版本的默认设置)的 Mac 上,这些方向是相反的。
平移¶
有两种平移网络的方法:
左键点击并拖动 - 按住鼠标左键并移动鼠标,即可平移网络视图。
在 网络概览 (Network Overview) 上拖动框 - 你也可以通过左键点击并拖动视图下方概览面板中的蓝色框来平移视图。
11.2. 其他鼠标行为¶
选择¶
在节点、边或注释上点击鼠标左键以选中该元素。
按住
Shift或Ctrl键(Mac 上为Command)并左键点击节点、边或注释,可将其添加到选择集中。在已选中的元素上进行同样操作可取消选中。在画布背景上按住鼠标左键并拖动鼠标,同时按住
Shift或Ctrl键(Mac 上为Command),可使用经典的矩形选择框选中一组节点/边/注释。在画布背景上按住鼠标左键并拖动鼠标,同时按住
Option+Shift键(Mac 上为Command+Shift),可使用套索选择工具选中一组节点/边/注释。请记住,选择操作(鼠标点击或拖动选择)仅在该元素类型(即节点、边、注释)的选择模式 (Selection Mode) 启用时才有效。要启用或禁用某种元素类型的选择,只需切换网络视图底部对应的按钮(见下图),或使用 Select → Mouse Drag Selects 菜单下的选项。

例如,如果你不想选中任何节点,请关闭按钮
。如果你不想选中任何边,请关闭按钮
。同样,如果你不想选中任何注释,请关闭按钮
。
上下文¶
在节点/边上点击鼠标右键(或在 Mac 上按 Ctrl + 左键)可弹出上下文相关菜单,以获取有关该节点/边的更多信息。
节点上下文菜单¶
此菜单会根据当前上下文而变化。对于节点,它通常显示:
添加 (Add)
扩散 (Diffuse)
编辑 (Edit)
选择
分组 (Group)
嵌套网络 (Nested Networks)
应用 (Apps)
外部链接 (External Links)
偏好设置 (Preferences)
边通常有以下菜单:
扩散 (Diffuse)
编辑 (Edit)
选择
应用 (Apps)
外部链接 (External Links)
偏好设置 (Preferences)
应用 (Apps) 可以将自己的条目添加到节点和边上下文菜单中。这些添加项通常会出现在上下文菜单的 Apps 部分。
嵌套网络节点上下文菜单¶
添加嵌套网络 (Add Nested Network):允许用户选择 Cytoscape 中的任何网络作为当前节点的嵌套网络。如果当前节点已拥有嵌套网络,该网络将被替换。
移除嵌套网络 (Remove Nested Network):从节点中移除当前关联的嵌套网络。关联的网络不会被删除,仅删除节点与网络之间的关联。
跳转至嵌套网络 (Go to Nested Network):将当前节点的嵌套网络设为当前网络视图并获得焦点。如果嵌套网络的网络视图不存在,则会创建一个。
关于嵌套网络的更多信息,请参阅 嵌套网络 部分。
11.3. 手动布局¶
手动组织网络的最简单方法是点击一个节点并拖动它。所有选定的节点将一起移动。
除了点击并拖动节点到新位置的功能外,Cytoscape 现在还可以使用键盘上的箭头键移动节点。使用鼠标选择一个或多个节点,并按下其中一个箭头键(←, ↑, →, ↓),选中的节点将向指定方向移动一个像素。如果按住 Shift 键的同时按下箭头键,选中的节点将向指定方向移动 15 个像素。
11.4. 节点布局工具¶
工具面板可通过菜单命令 View → Show Tool Panel 或 Layout → Node Layout Tools 打开。
它包含几个节点布局工具,有助于自动化或微调布局。
缩放 (Scale)¶
调整缩放滑块以改变边的长度。节点的位置将被缩放,而不会改变节点本身的大小。节点大小可以使用 样式 (Styles) 进行调整。下图显示了选定(黄色)的节点被缩放至默认值的 50%。
之前

之后
旋转 (Rotate)¶
旋转功能将改变整个网络或网络中选定部分的方位。下图显示了一个选定节点旋转了 90 度的网络。
之前

之后

对齐、分布和堆叠¶
工具面板包含用于设置节点相对位置的按钮。
对齐 (Align) 提供了不同的选项,用于将选定节点垂直或水平对齐到一条线上。差异在于对齐节点的哪一部分(例如节点中心、顶部或左侧)。分布 (Distribute) 在沿垂直或水平轴的最远两个节点之间均匀分布选定节点。差异同样取决于使用节点的哪一部分作为分布的参考点。堆叠 (Stack) 使用完整的对齐选项组合垂直或水平堆叠选定节点。下表描述了每个按钮的功能。
| 按钮 | 之前 | 之后 | 对齐选项说明 |
|---|---|---|---|
![]() | ![]() | ![]() | 垂直顶端对齐 - 选定节点的顶端与最顶部的节点对齐。 |
![]() | ![]() | ![]() | 垂直中心对齐 - 选定节点的中心沿最顶部和最底部节点之间的中点定义的线对齐。 |
![]() | | ![]() | 垂直底端对齐 - 选定节点的底端与最底部的节点对齐。 |
![]() | ![]() | ![]() | 水平左侧对齐 - 选定节点的左侧与最左侧的节点对齐。 |
![]() | | ![]() | 水平中心对齐 - 选定节点的中心沿最左侧和最右侧节点之间的中点定义的线对齐。 |
![]() | ![]() | ![]() | 水平右侧对齐 - 选定节点的右侧与最右侧的节点对齐。 |
| 按钮 | 之前 | 之后 | 对齐选项说明 |
|---|---|---|---|
![]() | ![]() | ![]() | 垂直顶端分布 - 选定节点的顶端在最顶部和最底部节点之间均匀分布,这两个节点保持静止。 |
![]() | ![]() | ![]() | 垂直中心分布 - 选定节点的中心在最顶部和最底部节点之间均匀分布,这两个节点保持静止。 |
![]() | | ![]() | 垂直底端分布 - 选定节点的底端在最顶部和最底部节点之间均匀分布,这两个节点保持静止。 |
![]() | ![]() | ![]() | 水平左侧分布 - 选定节点的左侧在最左侧和最右侧节点之间均匀分布,这两个节点保持静止。 |
![]() | | ![]() | 水平中心分布 - 选定节点的中心在最左侧和最右侧节点之间均匀分布,这两个节点保持静止。 |
![]() | ![]() | ![]() | 水平右侧分布 - 选定节点的右侧在最左侧和最右侧节点之间均匀分布,这两个节点保持静止。 |
| 按钮 | 之前 | 之后 | 对齐选项说明 |
|---|---|---|---|
![]() | ![]() | ![]() | 垂直左侧堆叠 - 在最顶部节点下方垂直堆叠,并对齐选定节点的左侧。 |
![]() | ![]() | ![]() | 垂直中心堆叠 - 在最顶部节点下方垂直堆叠,并对齐选定节点的中心。 |
![]() | | ![]() | 垂直右侧堆叠 - 在最顶部节点下方垂直堆叠,并对齐选定节点的右侧。 |
![]() | ![]() | ![]() | 水平顶端堆叠 - 在最左侧节点右侧水平堆叠,并对齐选定节点的顶端。 |
![]() | | ![]() | 水平中心堆叠 - 在最左侧节点右侧水平堆叠,并对齐选定节点的中心。 |
![]() | ![]() | ![]() | 水平底端堆叠 - 在最左侧节点右侧水平堆叠,并对齐选定节点的底端。 |
11.5. 边弯曲与自动边捆绑¶
从 Cytoscape 3.0 开始,边弯曲 (Edge Bend) 成为一种常规边属性,可作为样式 (Style) 的一部分使用。与其他边属性一样,你可以选择默认值、映射或针对特定节点使用旁路 (Bypass)。在“样式”选项卡中,从属性 (Properties) 下拉菜单中选择 Bend 属性,点击“默认值”、“映射”或“旁路”单元格以打开边弯曲编辑器 (Edge Bend Editor)。在编辑器中,你可以通过 Alt-Click(Windows)、Option-Click(Mac)或 Ctrl-Alt-Click(Linux)在边上添加任意数量的控制点。


要清除所有边弯曲,请选择 Layout → Clear All Edge Bends。
除了手动添加控制点外,你还可以使用捆绑边 (Bundle Edges) 功能自动捆绑全部或选定的边。

选择 Layout → Bundle Edges → All Nodes and Edges。
设置参数。
该算法的详情描述在这篇论文中。
按下 OK 执行。如果边数较多,边捆绑可能需要较长时间。
如果耗时过长,尝试减小最大迭代次数 (Maximum Iterations)。
对于大型、稠密的网络,尝试将最大迭代次数设置在 500 - 1000 之间。
注意:控制点位置将针对当前的节点位置进行优化。如果你移动了节点位置,需要再次运行该功能以获得正确结果。
11.6. 自动布局算法¶
Layout 菜单具有一系列功能,可根据多种算法之一在视觉上组织网络、对齐和旋转节点组,以及调整网络大小。Cytoscape 布局有三个不同的来源,这反映在 Layout 菜单中。
Cytoscape 布局可以选择仅对选定的节点进行操作,并且所有布局都提供一个 Settings… 面板来更改算法参数。大多数 Cytoscape 布局在执行布局之前还会对图进行分区。此外,许多布局包含考虑节点或边列的选项。一些布局算法包括:
网格布局 (Grid Layout)¶

网格布局是一种简单的布局,将所有节点排列在方形网格中。这是默认布局,始终作为 Cytoscape 核心的一部分提供。可以通过选择 Layout → Grid Layout 使用。上图显示了一个屏幕截图示例。
边权重弹簧嵌入布局 (Edge-weighted Spring-Embedded Layout)¶

弹簧嵌入布局基于 Kamada 和 Kawai (1988) 实现的力导向范式。网络节点被视为像电子一样相互排斥的物理对象。节点之间的连接被视为连接在节点对上的金属弹簧。这些弹簧根据力函数对其端点进行排斥或吸引。布局算法设置节点位置,以最小化网络中的总受力。该算法可以通过从 Layout → Edge-weighted Spring Embedded 中选择适当的选项,应用于整个网络或其一部分。
属性圆形布局 (Attribute Circle Layout)¶

属性圆形布局是一种快速、实用的布局,特别适用于小型网络,它会将网络中的所有节点放置在一个圆圈周围。节点顺序由用户选择的节点列决定。结果是,在该列中具有相同值的所有节点被放置在一起。使用 Layout → Attribute Circle Layout → 列名,即可使用 列名 对节点进行定位。上方的示例屏幕截图显示了按节点度数组织的 galFiltered 网络子集。
组合属性布局 (Group Attributes Layout)¶

组合属性布局与上述的属性圆形布局类似,不同之处在于,每一组共享相同列值的节点被分别布置在单独的圆圈中,而不是所有节点在一个圆圈中。上图显示了相同的网络(由 PSICQUIC 客户端生成),使用的是 Layout → Group Attributes Layout → taxonomy。
Prefuse 力导向布局 (Prefuse Force Directed Layout)¶

力导向布局是基于力导向范式的布局。该布局基于 Jeff Heer 提供的 prefuse 工具包中实现的算法。该算法非常快速,通过适当的参数设置,可以获得视觉上非常令人愉悦的布局。力导向布局还接受一个数字边列作为弹簧长度的权重,尽管这通常需要更多地使用 Settings… 对话框来达到最佳布局效果。该算法可通过选择 Layout → Prefuse Force-Directed Layout → (unweighted) 或你想要用作权重的边列来使用。上图提供了显示示例数据中 galFiltered 网络一部分的屏幕截图。
复合弹簧嵌入布局 (Compound Spring Embedder Layout)¶

复合弹簧嵌入 (CoSE) 布局基于传统的力导向布局算法,并进行了扩展,以处理多级嵌套(复合节点)、任意嵌套级别的节点之间的边以及不同的节点大小。它是推荐用于复合图的 Cytoscape 布局,尽管它在非复合图中也表现得非常好。可以通过选择 Layout → Compound Spring Embedder (CoSE) 使用。
圆形布局 (Circular Layout)¶

该算法产生的布局强调网络内的组结构和树结构。它通过分析网络的连通结构对网络进行分区,并将分区排列为独立的圆圈。圆圈本身以径向树状布局的方式排列。可以通过选择 Layout → Circular Layout 使用。
层级布局 (Hierarchical Layout)¶

层级布局算法非常适合表示网络内的主要方向或流程。节点被放置在分层排列的层中,并且每一层内节点的排序方式旨在最小化边的交叉数量。可以通过选择 Layout → Hierarchical Layout 使用。
仿制布局 (Copycat Layout)¶
仿制布局使用一个网络中的节点位置来布置另一个网络中的节点。选择 Layout → Copycat Layout 会显示一个对话框,允许你选择源网络(已经布置好)和目标网络(需要布局)。默认情况下,仿制布局按节点名称匹配源网络和目标网络中的节点,但你可以选择任何节点属性进行此匹配。

作为选项,你可以使用 Select unmapped nodes 来让 Copycat 选中目标网络中未被源网络节点匹配的节点。这允许你移动它们,并可能使用其他布局算法对它们进行布局。你可以使用 Layout unmapped nodes in a grid 选项将未匹配的目标节点提前移动,使其远离已布局的目标网络。
11.7. yFiles 布局¶
Cytoscape 提供了一套基于 yFiles 库的布局算法。自 Cytoscape 3.6 起,yFiles 算法可通过 Cytoscape 应用商店 直接获取。要安装它们,请前往 Layout → Install yFiles,这将引导你进入应用商店。点击 Install 按钮继续。你将被重定向到许可协议页面,安装完成后,yFiles 布局将出现在 Layout 菜单中。
yFiles 中包含的布局算法包括:
圆形布局
层级布局 (Hierarchic Layout)
选定节点层级布局 (Hierarchic Layout Selected Nodes)
有机布局 (Organic Layout)
正交布局 (Orthogonal Layout)
径向布局 (Radial Layout)
树状布局 (Tree Layout)
正交边路由 (Orthogonal Edge Router)
有机边路由 (Organic Edge Router)
以下是 Cytoscape 中 yFiles 布局的一些示例,更多信息可从 yFiles 获取。
yFiles 有机布局¶

yFiles 层级布局¶

yFiles 树状布局¶

11.8. 布局参数¶
许多布局具有可通过 Layouts → Settings… 菜单选项进行调整的参数。布局设置 (Layout Settings) 对话框允许你选择要调整的布局算法设置,如下图所示。显示的设置因算法而异,只有允许访问其参数的算法才会出现在对话框顶部的下拉菜单中。修改参数后,点击 Execute Layout 按钮即可应用该布局。









































