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

使用dc.plot_network无法显示TF与靶标交互箭头的问题

解决decoupler plot_network仅显示节点无交互箭头的问题

可能原因

  • 指定的转录因子(TF)在Collectri数据集中无对应靶标记录
  • 数据集存在权重为NaN的无效边,导致绘图函数忽略连接
  • plot_network未正确识别权重列,或靶标数量设置过高无匹配项

解决方案步骤

1. 验证指定TF的靶标存在性

先确认选中的TF在Collectri数据集中是否有收录的靶标:

# 检查PAX5、EBF1、RFXAP的靶标数量
target_counts = net[net['source'].isin(['PAX5', 'EBF1', 'RFXAP'])].groupby('source').count()['target']
print(target_counts)

若输出中某TF的靶标数量为0,说明该TF在Collectri中无对应靶标,需更换TF或调整数据集。

2. 过滤无效边(去除权重为NaN的记录)

Collectri数据集部分条目可能存在NaN权重,过滤后再绘图:

# 过滤有效边
net_filtered = net.dropna(subset=['weight'])

dc.plot_network(
    net=net_filtered,
    n_sources=['PAX5', 'EBF1', 'RFXAP'],
    n_targets=15,
    node_size=100,
    s_cmap='white',
    t_cmap='white',
    c_pos_w='darkgreen',
    c_neg_w='darkred',
    figsize=(5, 5)
)

3. 显式指定权重列

虽然plot_network默认使用weight列作为边权重,但显式指定可避免识别错误:

dc.plot_network(
    net=net,
    n_sources=['PAX5', 'EBF1', 'RFXAP'],
    n_targets=15,
    node_size=100,
    s_cmap='white',
    t_cmap='white',
    c_pos_w='darkgreen',
    c_neg_w='darkred',
    figsize=(5, 5),
    weight_col='weight'  # 明确指定权重列
)

4. 调整靶标数量

若指定TF的靶标总数不足15,降低n_targets参数确保有匹配项:

dc.plot_network(
    net=net_filtered,
    n_sources=['PAX5', 'EBF1', 'RFXAP'],
    n_targets=5,  # 减少靶标数量
    node_size=100,
    s_cmap='white',
    t_cmap='white',
    c_pos_w='darkgreen',
    c_neg_w='darkred',
    figsize=(5, 5)
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:52:52