You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cytoscape中按氨基酸类型自动设置表格单元格背景色?

自动化设置Cytoscape表格单元格背景色(按氨基酸化学类型)

核心解决方案:Groovy脚本批量配置

由于py4cytoscape暂不支持表格样式配置,手动设置离散映射效率极低,可通过Cytoscape内置的Groovy脚本功能实现一键批量配置。

步骤1:编写Groovy脚本

打开Cytoscape的Tools > Script Editor,新建Groovy脚本,粘贴以下代码(可根据需求修改颜色映射和目标列规则):

// 定义氨基酸类型与背景色的映射(十六进制颜色码可自行调整)
def aaColorMap = [
    // 芳香族(F/Y/W)
    'F': '#FF6B6B', 'Y': '#FF6B6B', 'W': '#FF6B6B',
    // 碱性(H/K/R)
    'H': '#4ECDC4', 'K': '#4ECDC4', 'R': '#4ECDC4',
    // 酸性(D/E)
    'D': '#FFE66D', 'E': '#FFE66D',
    // 脂肪族疏水(A/G/I/L/M/P/V)
    'A': '#C4C4C4', 'G': '#C4C4C4', 'I': '#C4C4C4', 'L': '#C4C4C4', 'M': '#C4C4C4', 'P': '#C4C4C4', 'V': '#C4C4C4',
    // 极性不带电(S/T)
    'S': '#95E1D3', 'T': '#95E1D3',
    // 酰胺类(C/N/Q)
    'C': '#F38181', 'N': '#F38181', 'Q': '#F38181'
]

// 获取当前节点表(若需处理边表,替换为cyTableView.model.edgeTable)
def tableView = cytoscape.tableViewManager.currentTableView
def targetColumns = tableView.model.table.columns.findAll { 
    // 匹配所有以Col开头的列,可根据实际列名规则修改
    it.name.startsWith('Col') 
}

// 为每个目标列设置离散背景色映射
targetColumns.each { column ->
    def discreteMapping = new org.cytoscape.view.vizmap.mappings.DiscreteMapping(String, column)
    aaColorMap.each { aa, hexColor ->
        // 将十六进制颜色转为AWT Color对象
        def color = java.awt.Color.decode(hexColor)
        discreteMapping.putMapValue(aa, color)
    }
    // 应用背景色映射到列
    tableView.setVisualProperty(
        org.cytoscape.view.table.CyTableVisualManager.CELL_BACKGROUND_PAINT,
        discreteMapping,
        column
    )
}

// 刷新表格视图
tableView.updateView()

步骤2:运行脚本

点击脚本编辑器的Run按钮,脚本会自动遍历所有目标列,为每个氨基酸类型设置对应的背景色。

额外提示

  • 脚本可保存为.groovy文件,后续在其他Cytoscape实例中直接导入运行,解决表格样式无法导出/导入的问题。
  • 若目标列名不是以Col开头,修改脚本中it.name.startsWith('Col')的判断规则即可(比如匹配包含Pos的列名)。
  • 颜色码可根据个人喜好调整,确保同类型氨基酸颜色统一即可。

内容的提问来源于stack exchange,提问作者Brandon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 09:31:00