SuperAPI AI 工具集

polars-bio

智能体与模型

查看项目

更新于 10-15 23:43

技能介绍

用途:通过 Polars 和 DataFusion 进行基因组区间算术与生物信息文件 I/O。目标版本 polars-bio 0.36.0,测试环境为 Polars 1.44.2、Python 3.13;上游要求 Polars >=1.37.1、PyArrow >=23.0.1,<25、DataFusion >=53,<54、polars-config-meta >=0.3.2,<1,需与不兼容的 Arrow 或 DataFusion 环境隔离。安装:uv pip install "polars-bio==0.36.0" "polars==1.44.2";可选 pandas 互操作:uv pip install "polars-bio[pandas]==0.36.0" "polars==1.44.2"。

主要能力:区间操作包括 overlap(成对相交)、count_overlaps(命中目标数)、coverage(被覆盖碱基数)、nearest(最近邻,支持 k)、merge(合并重叠区域)、cluster(标记重叠组)、complement(找未覆盖区域)、subtract(去除被覆盖片段)。文件 I/O 提供 scan_* 惰性读取与 read_* 立即读取,覆盖 BED、VCF、BCF、BAM、CRAM、FASTA、FASTQ 等,并有对应写入器;支持 SQL 注册与 pb.sql 查询,pb.depth 计算读深。

使用方式:默认坐标为 1-based 闭区间,基因组读取器可用 use_zero_based=True 输出 0-based 半开区间;手工构造 DataFrame 时元数据只标注不转换,需先转换再设置。区间函数默认返回 pl.LazyFrame,用 .collect() 或 output_type="polars.DataFrame" 获取立即结果;LazyFrame 上可用 .pb 访问器。

限制:on_cols 在 0.36.0 未实现,非 None 会抛 AssertionError;merge/cluster 的 min_dist=0 不合并相邻半开区间;默认 COITrees 索引将坐标转为 Int32,受 2,147,483,647 上限约束;complement 不提供 view 时范围无界;depth 输出 Int16,超深数据会溢出;SQL 区间连接优化器存在缺陷,建议使用区间 API;云读取使用各格式的 OpenDAL 选项,未测试认证云服务;polars-bio 不是 bioframe 的即插即用替代。缺失信息暂未提供。