杰瑞科技汇

Cytoscape教程,从零开始如何使用?

Cytoscape 完整入门教程

第一部分:什么是 Cytoscape?为什么需要它?

定义 Cytoscape 是一个开源的、基于 Java 的网络可视化和分析软件平台,它最初是为生物网络(如蛋白质-蛋白质相互作用网络)设计的,但现在已被广泛应用于各种领域,包括社交网络、交通网络、文本网络等。

核心功能

  • 可视化: 将复杂的关系数据(节点和边)绘制成直观、美观的网络图。
  • 分析: 内置大量网络分析算法,用于识别网络中的重要节点(枢纽节点)、网络模块(社群)、路径等。
  • 整合: 能够轻松地将网络数据与其他类型的数据(如基因表达数据、临床数据)进行整合和可视化。
  • 可扩展性: 通过插件系统,Cytoscape 的功能可以无限扩展,满足各种特殊需求。

适用人群

  • 生物学家: 分析 PPI 网络、基因调控网络、代谢网络等。
  • 生物信息学家/数据科学家: 处理和可视化各种图结构数据。
  • 系统医学研究者: 整合多组学数据,构建疾病网络。
  • 任何需要分析关系数据的人。

第二部分:安装与界面初探

安装

  • 官网: https://cytoscape.org/
  • 下载: 根据你的操作系统选择对应的版本(Windows, macOS, Linux)。
  • 运行: 下载后直接安装即可,首次运行时,建议选择“Default Style”,使用默认样式。

界面概览 启动 Cytoscape 后,你会看到几个关键窗口:

  • Control Panel (控制面板):
    • Networks (网络): 管理当前打开的网络,你可以在这里切换、重命名或关闭网络。
    • Styles (样式): 定义网络的外观,这是自定义节点和边颜色、大小、形状等的核心工具。
    • Select (选择): 根据特定条件(如节点名称、属性值)选择节点或边。
    • Maps (映射): 将数据映射到视觉属性上,将基因表达值映射到节点的大小或颜色。
  • Network View (网络视图): 网络图的主要显示区域,你可以在这里拖动节点、缩放视图。
  • Node Table (节点表): 一个类似 Excel 的表格,显示所有节点的属性信息。
  • Edge Table (边表): 显示所有边的属性信息。

第三部分:核心操作:从数据到网络

这是 Cytoscape 最核心的部分,我们将学习如何将原始数据转换成可视化的网络。

数据格式 Cytoscape 主要使用两种表格文件:

  • Nodes List (节点列表): 定义了网络中的所有实体,通常包含两列:id (节点唯一标识符) 和 label (节点显示名称)。
  • Edges List (边列表): 定义了节点之间的关系,通常包含三列:source (源节点ID), target (目标节点ID), interaction (关系类型,可选)。

示例数据:

nodes.csv

id,label
GeneA,TP53
GeneB,MYC
GeneB,MDM2
GeneC,CDKN1A
GeneD,AKT1

edges.csv

source,target,interaction
GeneA,GeneB,activates
GeneB,GeneC,inhibits
GeneA,GeneD,unknown

导入数据

  1. 导入节点:
    • 点击顶部菜单 File -> Import -> Table from File...
    • 选择你的 nodes.csv 文件。
    • 在弹出的对话框中,确保第一行被识别为标题行,然后点击 OK
  2. 导入边:
    • 同样,点击 File -> Import -> Table from File...
    • 选择你的 edges.csv 文件。
    • 在弹出的对话框中,Cytoscape 会尝试自动匹配列,你需要指定:
      • Source Column: 选择 source 列。
      • Target Column: 选择 target 列。
      • Interaction Column: 选择 interaction 列(这一步很重要,可以用来给边着色)。
    • 点击 OK

创建网络 导入边列表后,Cytoscape 会自动根据边的信息创建一个网络,你可以在 Networks 面板中看到新创建的网络,并点击它来激活。

基础可视化:使用 Styles 和 Maps 现在你的网络可能看起来很单调,让我们用数据来美化它。

假设我们还有一个 expression_data.csv 文件,包含了每个基因的表达量变化。

expression_data.csv

id,expression
GeneA,5.2
GeneB,2.1
GeneC,-1.5
GeneD,3.8
  • 步骤 1: 导入表达数据

    • 再次使用 File -> Import -> Table from File... 导入 expression_data.csv
    • 这次,你会看到一个 "Merge" 选项,选择 Merge,然后选择你的网络,并指定 id 列作为匹配键,这样,表达数据就会合并到节点表中。
  • 步骤 2: 使用 Styles (样式)

    • 打开 Styles 面板。
    • 改变节点形状:Node Fill ColorNode Shape 上右键,可以创建新的规则,设置一个规则:interaction 列是 activates,则将边颜色设为绿色。
    • 改变边样式:Edge Line Type 上右键,可以设置虚线等样式。
  • 步骤 3: 使用 Maps (映射) - 这是关键!

    • Styles 面板中,选择一个视觉属性,Node Fill Color
    • 在下方的映射区域,点击 <?> (Continuous Mapping) 或 <?> (Discrete Mapping)。
    • Column 下拉菜单中,选择你刚刚导入的 expression 列。
    • 设置颜色梯度: Cytoscape 会自动创建一个从蓝色(低表达)到红色(高表达)的渐变,你可以手动调整这个颜色条。
    • 映射节点大小: 同样地,选择 Node Size 属性,然后映射到 expression 列,设置一个最小和最大尺寸,高表达的节点就会变大。

你的网络图就变得信息丰富且直观了!


第四部分:常用分析工具

网络分析

  • Layout (布局): 网络图的排列方式,在 Network View 空白处右键,或通过顶部菜单 Layouts 选择。
    • Prefuse Force-Directed (首选力导向布局): 最常用的布局,能很好地展示网络的整体结构。
    • Cytoscape Layouts (如 Attribute Circle): 根据节点属性(如表达量)将节点排列成圆形。
  • NetworkAnalyzer (内置分析工具):
    • 点击顶部菜单 Tools -> NetworkAnalyzer -> Network Analysis -> Analyze Network...
    • 它会计算一系列网络拓扑参数,如:
      • 节点度: 一个节点连接了多少条边,度越高的节点越重要。
      • 紧密度中心性: 衡量一个节点到所有其他节点的平均距离。
      • 介数中心性: 衡量一个节点出现在其他节点最短路径上的频率。
    • 分析结果会自动添加到 Node TableEdge Table 中,你可以用这些结果来进一步调整样式(将高中心性的节点标记为更大的尺寸)。

插件 Cytoscape 的强大之处在于其插件生态,通过顶部菜单 Apps -> App Manager 可以管理和安装插件。

  • 安装插件: 在 App Manager 中搜索你需要的插件,点击 install
  • 常用插件推荐:
    • CytoScape.js Viewer: 将你的网络导出为交互式网页。
    • MCODE: 用于在网络中寻找高度连接的模块(社群)。
    • ClueGO: 进行功能富集分析,将找到的基因模块与生物学通路联系起来。
    • STRINGapp: 直接从 STRING 数据库导入 PPI 网络和功能注释。

第五部分:实战案例:分析一个癌症相关的 PPI 网络

目标: 找出在癌症中可能起关键作用的基因模块。

步骤:

  1. 获取数据:

    • 从 STRING 数据库 (https://string-db.org/) 下载 "TP53" 基因的 PPI 网络。
    • 在 STRING 中,搜索 "TP53",设置一个适当的置信度分数(如 > 0.7),然后点击 "Download" -> "Network in SIF format"。
    • 下载人类基因表达数据集 (例如来自 TCGA 的某个癌症类型)。
  2. 导入与初步可视化:

    • 导入 STRING 下载的 .sif 文件(它本身就是边列表)。
    • 导入 TCGA 表达数据,并将其合并到节点表中。
    • 使用 Maps 将表达数据映射到 Node Fill ColorNode Size 上。
  3. 网络布局与分析:

    • 使用 Prefuse Force-Directed 布局整理网络。
    • 运行 NetworkAnalyzer,计算每个节点的 DegreeBetweenness Centrality
    • 将高 Degree 的节点用 Node Border Width 突出显示。
  4. 寻找功能模块:

    • 安装并运行 MCODE 插件。
    • 设置合适的参数(如 Degree Cutoff = 2, Node Score Cutoff = 0.2, K-core = 2, Max. Depth = 100)。
    • MCODE 会识别出几个高连接性的子网络(模块)。
  5. 功能注释:

    • 对 MCODE 找到的模块基因列表,使用 ClueGO 插件进行 GO 和 KEGG 通路富集分析。
    • ClueGO 会生成一个功能图,展示这些基因主要参与了哪些生物学过程,让你从生物学角度理解这个模块的意义。
  6. 结果导出:

    • 使用 File -> Export -> Network as Image... 导出高质量图片。
    • 使用 File -> Export -> Network to Table... 导出包含所有分析结果的节点和边表。

第六部分:学习资源与进阶

进阶方向:

  • 使用 Cytoscape.js: 如果你想在网页中嵌入交互式网络,可以学习 Cytoscape.js 这个 JavaScript 库。
  • 编程接口: 学习使用 Cytoscape 的 Python (py4cytoscape) 或 R (RCy3) 接口,实现自动化分析流程。

希望这份教程能帮助你顺利开启 Cytoscape 之旅!多动手实践,你会发现它是一个无比强大的工具。

分享:
扫描分享到社交APP
上一篇
下一篇