技能pysam
P

pysam

基因组文件工具包。读取/写入 SAM/BAM/CRAM 比对数据,VCF/BCF 变异,FASTA/FASTQ 序列,提取区域,计算覆盖度,用于 NGS 数据处理流水线。

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

技能概述

Pysam 是一个用于读取、操作和写入基因组数据集的 Python 模块,提供 SAM/BAM/CRAM 比对文件、VCF/BCF 变异文件和 FASTA/FASTQ 序列文件的读写接口,支持基因组区域查询、覆盖度堆叠分析和 samtools/bcftools 命令执行。

适用场景

1. NGS 测序数据分析

适用于处理高通量测序数据,包括读取比对结果文件(BAM/CRAM)、分析测序覆盖度、提取特定基因区域的 reads、进行数据质量控制等。支持批量处理大规模测序数据,能够快速定位和分析基因组特定区域。

2. 基因组变异检测与注释

适用于分析遗传变异数据(VCF/BCF),支持变异位点查询、基因型提取、质量过滤和功能注释。可用于单样本或多样本的变异数据分析,结合覆盖度信息进行变异验证和筛选。

3. 序列提取与基因组数据处理

适用于从参考基因组中提取基因序列、验证变异位点、处理 FASTQ 原始测序数据。支持随机访问索引文件的基因组区域,可用于构建生物信息学分析流程、序列验证和覆盖度统计。

核心功能

1. 比对文件操作(SAM/BAM/CRAM)

提供 AlignmentFile 类处理测序比对数据,支持打开和读取 BAM/SAM/CRAM 文件、按基因组区域获取 reads、基于映射质量和标签过滤 reads、计算覆盖度统计、执行堆叠分析、访问 reads 序列和质量分数。支持写入修改后的比对文件,适用于比对结果分析、覆盖度计算和数据质量控制。

2. 变异文件操作(VCF/BCF)

提供 VariantFile 类处理遗传变异数据,支持读写 VCF/BCF 文件、查询特定区域的变异、访问变异信息(位置、等位基因、质量)、提取样本基因型数据、按质量或等位基因频率过滤变异、添加注释信息、筛选样本或区域。适用于变异分析、过滤、注释和群体遗传学研究。

3. 序列文件操作(FASTA/FASTQ)

提供 FastaFile 用于随机访问参考序列,FastxFile 用于读取原始测序数据,支持按基因组坐标查询参考序列、提取基因或感兴趣区域的序列、读取带质量分数的 FASTQ 文件、验证变异参考等位基因、计算序列统计、按质量或长度过滤 reads、在 FASTA 和 FASTQ 格式之间转换。适用于提取基因序列、验证变异或处理原始 reads。

常见问题

Pysam 如何读取 BAM 文件中的特定区域?

使用 AlignmentFile 打开 BAM 文件后,通过 fetch() 方法指定染色体和坐标范围。需要注意的是,Pysam 使用 0-based half-open 坐标系统,但 fetch() 的字符串参数遵循 samtools 的 1-based 约定。随机访问需要预先创建 .bai 索引文件,可以使用 pysam.index() 生成索引。

如何用 Pysam 计算 NGS 数据的覆盖度?

Pysam 提供两种主要方法:使用 pileup() 进行逐位点的堆叠分析,或使用 count() 统计特定区域的 reads 数量。pileup() 适用于需要详细覆盖度信息的场景,可以获取每个位点的覆盖深度、碱基分布和质量信息。对于大规模数据,建议使用索引文件并按区域并行处理以提高性能。

Pysam 处理 VCF 变异数据的基本方法是什么?

使用 VariantFile 类打开 VCF 或 BCF 文件,可以迭代遍历所有变异或使用 fetch() 查询特定区域的变异。通过 VariantRecord 对象访问变异的染色体、位置、参考和替代等位基因、质量分数等信息。对于多样本 VCF,可以提取各样本的基因型数据。Pysam 还支持按质量、深度、等位基因频率等条件过滤变异,并可以添加自定义注释信息或创建新的 VCF 文件。