SuperAPI AI 工具集

polars-bio

智能体与模型

查看项目

更新于 10-15 20:29

技能介绍

用途:polars-bio 是面向基因组区间运算与生物信息文件 I/O 的高性能 Python 库,构建在 Polars、Apache Arrow 和 Apache DataFusion 之上,适合处理基因组区间数据、迁移 bioframe 或对基因组文件运行 SQL 查询。

主要能力:提供 8 类区间操作,包括 overlap/count_overlaps、nearest、merge、cluster、coverage、complement、subtract;支持读写 BED、VCF、BAM、CRAM、GFF、GTF、FASTA、FASTQ、SAM、Hi-C pairs 等格式,支持 S3、GCS、Azure 云存储与 GZIP、BGZF 压缩;可通过 DataFusion SQL 注册文件或 Polars DataFrame 为表并查询;支持从 BAM/CRAM 计算逐碱基深度(pileup)。

使用方式:安装命令为 pip install polars-bio 或 uv pip install polars-bio,pandas 兼容可安装 polars-bio[pandas]。区间操作默认返回 LazyFrame,需 .collect() 或传 output_type="polars.DataFrame"。提供函数式 API(如 pb.overlap(df1, df2))和 LazyFrame 上的 .pb 方法链式 API;DataFrame 的 .pb 仅提供写操作。默认列名为 chrom、start、end,可用 cols1/cols2 自定义。默认 1-based 坐标,可用 pb.set_option("coordinate_system", "0-based") 切换。

适用场景:基因组区间交集、最近邻、合并、覆盖度计算,读取注释与变异文件,大基因组流式/外存处理,云上文件直接读取,以及用 SQL 查询基因组数据。

限制:位置使用 32 位整数,坐标上限约 21 亿;read_bam/scan_bam 需要 .bai 索引;CRAM 需使用 read_cram/scan_cram/register_cram 并提供 reference_path;DataFusion 并行默认 1 个分区,需手动设置 target_partitions;手动构造 DataFrame 时可能缺少坐标元数据警告。性能对比、收费与平台支持等细节资料未完整提供。