cytoscape一半红一半蓝
cytoscape一半红一半蓝通常不是软件坏了,而是节点或边的颜色映射把正值渲染成了红色区间、负值渲染成了蓝色区间,于是整张网络看起来被分成了红蓝两半。最直接的处理办法是先选中一个红色节点和一个蓝色节点,打开右侧的「Style」面板,查看「Fill Color」这一行的映射方式,确认它绑定的是哪一列数据、红蓝两端分别对应什么数值范围,再决定是改数据、改映射还是手动改颜色。
- 先确认颜色是映射产生的还是手动涂的
在 Cytoscape 里,颜色一半红一半蓝有两种可能:一种是节点或边用了连续映射,比如把一个叫 log2FoldChange 或 score 的数值列映射到红蓝渐变;另一种是之前有人手动选了一半节点改成红、另一半改成蓝。判断方法很简单,点一下任意一个红节点,看右侧「Style」面板的「Fill Color」行。如果显示的是一个小三角或酒杯图标,说明它来自映射,不是手动设置;如果显示的是一个个色块,说明是手动颜色。只有先分清是哪种,后面的处理才不会白费力气。 - 检查 Fill Color 的映射列和颜色梯度
如果是映射产生的,就在「Style」面板里点击「Fill Color」右侧的映射按钮,展开「Column」下拉,看看当前绑的是哪一列。常见情况是这列数据本身就只有两个值,比如 0 和 1,或者只有正负两类,映射自然只出现两种颜色。再点开「Mapping Type」,如果选的是「Continuous Mapping」,界面上会出现颜色梯度和断点。红蓝两半就是默认的红蓝渐变把最小值拉到蓝端、最大值拉到红端。把鼠标悬停在节点上,状态栏会显示它的该列数值,对照断点就能验证。 - 按你的真实意图调整红蓝分界
如果你希望红蓝代表正负而不是最大最小,就把「Mapping Type」改成「Continuous Mapping」后手动编辑断点,把中间值设为 0,负值一侧给蓝色,正值一侧给红色,这样 0 附近才是分界。如果你只是想让所有节点同一个颜色,就把「Mapping Type」换成「Discrete Mapping」或直接关掉映射,在「Fill Color」里统一选一个颜色。如果你想让类别分组显示两种颜色,就把映射列换成分类列,再在「Discrete Mapping」里分别给每一类指定红或蓝。改完记得在视图里点一下空白处刷新,颜色才会重新计算。 - 检查是不是只选中了一部分节点被批量改色
有时红蓝两半来自误操作:你可能只框选了一半节点,然后按了某个配色菜单或快捷键,把选中部分统一涂成红色,剩下没选中的仍是蓝色。这时可以按 Ctrl+Z 撤销,或者点选所有节点后重新设置统一颜色。也可以在「Select」菜单里用「Select All Nodes and Edges」全选,再打开「Style」确认 Fill Color 不处于分叉状态。排除人为批量改色之后,再回头处理映射问题。 - 确认数据列是否被误改或含有异常值
如果映射列本身的数据分布异常,也会让颜色看起来一边红一边蓝。可以在「Table」面板里点开那一列,按数值排序,看看是不是大部分值集中在正数、少部分在负数,或者中间有缺失值被单独归到一端。缺失值通常会被映射到默认色,容易和红蓝混在一起。你可以在映射设置里给缺失值单独指定灰色,让它不参与红蓝。需要的话把该列导出到表格软件里检查分布,确认后再决定是改数据还是改断点。 - 保存一份样式避免下次再乱配色
调好红蓝规则后,在「Style」面板右上角点开菜单,选择「Copy Style」或导出样式文件,把当前这套映射保存下来。下次导入同类网络时直接套用这个样式,就不会再出现默认红蓝各占一半的情况。如果这只是临时查看,不想动原始数据,可以新建一个样式副本,在副本上改颜色,原样式保持不动,这样随时能切回来对比。
软件页面:Cytoscape。