20. Linkout¶
Linkout 提供了一种在 Cytoscape 中将节点和边链接到外部网络资源的机制。在 Cytoscape 中右键单击节点或边,会弹出一个包含网页链接列表的菜单。
默认情况下,Cytoscape 包含许多链接,如 Entrez (NCBI)、SGD 和 Google,以及一些特定物种的链接。除了默认链接外,用户还可以通过 Cytoscape 首选项编辑器(位于 编辑 (Edit) → 首选项 (Preferences) → 属性 (Properties…) 中的 linkout 组)自定义 外部链接 (External Links) 菜单,并添加(或删除)链接。
外部链接在编辑器中以 键-值 (key-value) 对的形式列出,其中 属性名称 (Property Name) 指定链接名称,值 (Value) 是搜索 URL。Linkout 菜单采用分层结构组织,该结构在键中指定。节点特定的 Linkout 键项以关键字 nodelinkouturl 开头;对于边,则为 edgelinkouturl。
例如,以下条目
nodelinkouturl.Model Organism DB.SGD (yeast)=http://www.yeastgenome.org/cgi-bin/locus.fpl?locus=%ID%
将 SGD 链接放置在 模式生物数据库 (Model Organism DB) 子菜单下。此链接在 Cytoscape 中将显示为

以类似的方式,可以添加新的子菜单。
URL 中的 %ID% 字符串是节点标签的占位符。当生成弹出菜单时,此标记将被替换为节点标签。在上述示例中,为 YNL050C 蛋白生成的 SGD 链接为
http://www.yeastgenome.org/cgi-bin/locus.fpl?locus=YNL050C
如果您想基于不同的列进行查询,则需要使用 样式 (Styles) 指定不同的节点标签。
对于边,其机制基本相同;但这里的占位符 %ID1% 和 %ID2% 分别反映源节点和目标节点的标签。
目前还没有机制来检查所构建的 URL 查询是否正确,以及节点标签是否有意义。同样,不同标识符之间也没有 ID 映射。例如,如果从一个使用 Ensembl 基因标识符作为节点标签的网络链接到 NCBI Entrez,将产生一个使用 Ensembl ID 的 Entrez 链接,这会导致链接错误。用户有责任确保用作 URL 链接中搜索项的节点标签能产生有意义的链接。
20.1. 添加和删除链接¶
默认链接定义在 CytoscapeConfiguration 目录 中的 linkout.props 文件中。这些链接是普通的 Java 属性,可以通过文本编辑器直接编辑,或者通过使用 Cytoscape 配置编辑器(编辑 (Edit) → 首选项 (Preferences) → 属性 (Properties…))并选择 linkout(如下所示)进行编辑。

此外,在从命令行启动 Cytoscape 时,可以通过指定单个属性来定义新的链接。命令格式为 cytoscape.sh -P [context_menu_definition]=[link]。context_menu_definition 指定显示 Linkout 菜单项的上下文菜单。此定义的结构是 nodelinkouturl 或 edgelinkouturl,后跟 “.”,再后跟以 “.” 分隔的菜单层级。
例如,此命令
cytoscape.sh -P nodelinkouturl.yeast.SGD=http://db.yeastgenome.org/cgi-bin/locus.pl?locus\=%ID%
将添加此菜单项

要从菜单中删除链接,只需使用 编辑 (Edit) → 首选项 (Preferences) → 属性 (Properties…) 并选择 commandline 来删除该属性即可。在命令行中添加的 Linkout 将在当前运行的 Cytoscape 实例中可用。