SuperAPI AI 工具集

pysam

数据与分析

查看项目

更新于 10-15 21:39

技能介绍

用途:Pysam 是读写基因组数据集的 Python 模块,为 htslib 提供 Pythonic 接口,适用于 NGS 数据处理、比对结果分析、变异分析、序列提取与质控等生物信息学场景。

主要能力:使用 AlignmentFile 读写 SAM/BAM/CRAM 比对文件,按区域 fetch 读取、按质量或标记过滤、计算覆盖度与 pileup 分析;使用 VariantFile 读写 VCF/BCF,查询区域变异、访问 INFO/FORMAT 字段与基因型;使用 FastaFile 随机访问参考序列,FastxFile 读取 FASTQ;还可查询 tabix 索引文件并调用 samtools/bcftools 命令。

使用方式:安装命令为 uv pip install pysam。基本用法如 pysam.AlignmentFile("example.bam", "rb") 后 fetch("chr1", 1000, 2000) 遍历读段;pysam.VariantFile("variants.vcf") 遍历变异;pysam.FastaFile("reference.fasta").fetch("chr1", 1000, 2000) 提取序列。命令行工具示例:pysam.samtools.sort("-o", "sorted.bam", "input.bam")、pysam.samtools.index("sorted.bam")、pysam.bcftools.view("-O", "z", "-o", "output.vcf.gz", "input.vcf")。

限制与注意:坐标系统为 0 基半开区间,但 fetch() 区域字符串遵循 samtools 的 1 基约定;随机访问需索引文件(BAM 需 .bai、CRAM 需 .crai、FASTA 需 .fai、VCF.gz 需 .tbi、BCF 需 .csi),无索引时用 fetch(until_eof=True) 顺序读取;fetch() 返回与区域边界重叠的读段;pileup 迭代器需保持引用;修改 query_sequence 后不能原地修改 query_qualities;流式仅支持 stdin/stdout;线程安全尚未完全验证。官方文档:https://pysam.readthedocs.io/