SuperAPI AI 工具集

pysam

智能体与模型

查看项目

更新于 10-16 06:20

技能介绍

用途:Pysam 是读写、操作基因组数据集的 Python 模块,为 htslib 提供 Python 接口,用于测序比对文件、变异文件与序列文件的处理,适合生物信息学分析流程、测序数据质控、变异检测与注释等场景。

主要能力:一是比对文件操作,用 AlignmentFile 读写 SAM/BAM/CRAM,按区域 fetch 读取、按比对质量或 flag 过滤、计算覆盖度、进行 pileup 逐碱基分析;二是变异文件操作,用 VariantFile 读写 VCF/BCF,按区域查询、访问位置与等位基因、提取样本基因型、按质量或频率过滤、注释与子集化;三是序列文件操作,用 FastaFile 按坐标随机访问参考序列,用 FastxFile 读取带质量值的 FASTQ,支持变异参考等位基因校验与格式转换;四是整合工作流,可结合比对、变异与参考序列完成覆盖度统计、变异验证、注释与质控。此外可通过 pysam.samtools 与 pysam.bcftools 调用命令行工具,如 pysam.samtools.sort("-o", "sorted.bam", "input.bam")。

使用方式:安装命令为 uv pip install pysam。随机访问区域需先建索引:BAM 需 .bai(pysam.index()),CRAM 需 .crai,FASTA 需 .fai(pysam.faidx()),VCF.gz 需 .tbi(pysam.tabix_index()),BCF 需 .csi;无索引时可用 fetch(until_eof=True) 顺序读取。打开文件需指定模式,如 "rb" 读 BAM、"r" 读 SAM、"rc" 读 CRAM、"wb" 写 BAM。

限制与注意:坐标系统易混淆,Pysam 用 0 基半开区间,而 fetch() 的区域字符串按 samtools 约定为 1 基;fetch() 返回与区域边界重叠的读段而非完全包含者;pileup 迭代器需保持引用存活;修改 query_sequence 后不能原地改 query_qualities;流式仅支持 stdin/stdout;线程安全尚未完全验证。官方文档见 https://pysam.readthedocs.io/。