Arboreto 是一个用于从基因表达数据推断基因调控网络(GRN)的计算库,采用可并行化算法,可从单机扩展到多节点集群。其核心能力是:根据观测数据(细胞、样本、条件)中的表达模式,识别哪些转录因子(TF)调控哪些靶基因。
用途与场景 Arboreto 面向转录组数据分析。资料中列出的常见用例包括:单细胞 RNA-seq 分析,用于推断细胞类型特异的调控网络;bulk RNA-seq 并结合 TF 过滤;以及多条件比较分析,例如对 control、treatment_24h、treatment_48h 等不同条件分别推断网络。它也是 SCENIC 流程中用于单细胞调控网络分析的核心组件:先由 arboreto 完成 GRN 推断,再交由 pySCENIC 进行调控子识别与活性打分。
主要能力
- 基础 GRN 推断:支持输入数据准备(Pandas DataFrame 或 NumPy 数组)、使用 GRNBoost2 或 GENIE3 运行推断、按转录因子过滤以及输出格式与结果解读。资料提供了可直接运行的脚本 scripts/basic_grn_inference.py,示例命令为:python scripts/basic_grn_inference.py expression_data.tsv output_network.tsv --tf-file tfs.txt --seed 777
- 算法选择:GRNBoost2 为推荐算法,基于梯度提升,速度快,针对大数据集(1 万以上观测)优化,是多数分析的默认选择;GENIE3 基于随机森林,属于原始的多重回归方法,用于对比或验证。
- 分布式计算:支持三种方式——本地(默认自动使用全部可用核心);自定义本地客户端,通过 LocalCluster 和 Client 控制资源,例如 n_workers=10、memory_limit='8GB';集群计算,连接远程 Dask 调度器,例如 Client('tcp://scheduler:8786'),并通过 client_or_address 参数传入。
使用方式 安装:uv pip install arboreto。依赖包括 scipy、scikit-learn、numpy、pandas、dask、distributed。 基本调用:从 arboreto.algo 导入 grnboost2,加载以基因为列的表达式矩阵,调用 grnboost2(expression_data=expression_matrix) 推断网络,再将结果(TF、target、importance)保存为 tsv。资料特别强调:因为 Dask 会启动新进程,脚本中必须使用 if name == 'main': 保护。 按 TF 过滤时可使用 from arboreto.utils import load_tf_names 加载转录因子名单,并通过 tf_names 参数传入。 分布式使用时,可创建 LocalCluster、Client,并通过 client_or_address=client 传入。
输出解读 Arboreto 返回包含调控关系的 DataFrame,包含三列:TF(作为调控者的转录因子)、target(靶基因)、importance(调控重要性评分,越高表示越强)。资料给出的过滤策略包括:每个靶基因保留前 N 条连接、设定重要性阈值(例如 > 0.5)、以及置换检验等统计显著性检验。
可复现性 资料建议始终设置随机种子以获得可复现结果,例如 grnboost2(expression_data=matrix, seed=777);也可使用多个种子进行稳健性分析,例如 seeds = [42, 123, 777],分别推断后合并网络并筛选一致性连接。
限制与注意事项 资料中列出的排查要点包括:内存错误时可通过过滤低方差基因缩减数据集规模,或改用分布式计算;性能较慢时可改用 GRNBoost2 而非 GENIE3、启用分布式客户端、过滤 TF 名单;出现 Dask 错误时需确认脚本中包含 if name == 'main': 保护;结果为空时需检查数据格式(基因是否作为列)并确认 TF 名称与基因名称匹配。
关于收费方式、价格、支持的平台范围等内容,资料中暂未提供。