pysam

基因组文件工具包。支持读写SAM/BAM/CRAM比对文件、VCF/BCF变异文件、FASTA/FASTQ序列文件,具备区域提取与覆盖度计算功能,专为二代测序数据处理流程设计。

安装

热度:13

下载并解压到你的 skills 目录

复制命令,发送给 OpenClaw 自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=k-dense-ai-scientific-skills-pysam&locale=zh&source=copy

Pysam - Python 基因组数据处理工具

技能概述


Pysam 是一个用于读取、操作和写入基因组数据集的 Python 模块,提供对 SAM/BAM/CRAM 比对文件、VCF/BCF 变异文件以及 FASTA/FASTQ 序列文件的高效处理能力。

适用场景

1. 测序比对文件分析


当您需要处理大规模 NGS 测序数据时,Pysam 可以高效读取 BAM/SAM/CRAM 格式的比对文件。支持按基因组区域提取测序片段、计算覆盖度统计、执行 pileup 分析,以及按质量值、比对标志等条件过滤 reads。适用于全基因组测序、外显子组测序、RNA-seq 等各类测序数据的下游分析。

2. 遗传变异检测与分析


Pysam 提供完整的 VCF/BCF 文件读写功能,可用于变异检测流程中的变异过滤、注释和统计。支持按区域查询变异、提取样本基因型数据、按质量或等位基因频率过滤变异,适用于全基因组关联分析、群体遗传学研究和临床变异解读等场景。

3. 参考序列与基因区域提取


使用 Pysam 的 FastaFile 类可以随机访问参考基因组,快速提取特定基因或区域的序列。结合比对文件和变异文件,可以完成变异上下文序列提取、参考等位基因验证、基因序列获取等任务,是构建变异注释流程和可视化工具的基础组件。

核心功能

1. 多格式基因组文件读写


支持 SAM/BAM/CRAM 比对文件、VCF/BCF 变异文件、FASTA/FASTQ 序列文件的读取和写入。提供 Pythonic 接口调用 htslib 库,支持 tabix 索引文件的高效区域查询,可直接调用 samtools 和 bcftools 命令行工具。

2. 高效区域查询与分析


基于索引文件实现基因组坐标的快速随机访问,支持按染色体区域提取 reads、变异或序列。提供 pileup 分析进行逐位点覆盖度计算,支持并行处理独立基因组区域以提升分析效率。

3. 综合生物信息学工作流


支持整合多种文件类型的复杂分析流程,包括变异验证、覆盖度注释、序列提取、质量控制等。适用于构建完整的 NGS 数据处理管线,从原始数据质控到变异检测再到结果注释的全流程自动化。

常见问题

Pysam 和 samtools 有什么区别?


Pysam 是 htslib C 库的 Python 封装,而 samtools 是基于同一库的命令行工具。Pysam 的优势在于可以与 Python 代码无缝集成,适合构建自定义分析流程和复杂的数据处理逻辑;samtools 则更适合简单的单步操作和 shell 脚本。Pysam 内置了对 samtools 和 bcftools 命令的调用接口,两者可以结合使用。

使用 Pysam 需要创建索引文件吗?


大多数区域查询操作都需要索引文件。BAM 文件需要 .bai 索引,CRAM 文件需要 .crai 索引,FASTA 文件需要 .fai 索引,压缩的 VCF 文件需要 .tbi tabix 索引。如果没有索引,可以使用 fetch(until_eof=True) 进行顺序读取。索引文件可以使用 pysam.index()pysam.faidx()pysam.tabix_index() 等函数创建。

Pysam 的坐标系统是 0-based 还是 1-based?


Pysam 遵循 Python 惯例,使用 0-based、半开区间 坐标系统,即起始位置从 0 开始,结束位置不包含在内。但需要注意,fetch() 方法的字符串参数(如 "chr1:1000-2000")遵循 samtools 约定使用 1-based 坐标。VCF 文件格式本身是 1-based,但 VariantRecord.start 属性返回的是 0-based 坐标,使用时需注意区分。