SuperAPI AI 工具集

pysam

数据与分析

查看项目

更新于 10-15 23:59

技能介绍

用途:pysam 是 Python 基因组数据工具包,用于读取、操作和写入高通量测序(NGS)相关文件,适合比对结果分析、变异分析、序列提取、覆盖度计算、质控及生信分析流程开发。

主要能力:

  1. 比对文件(SAM/BAM/CRAM):使用 AlignmentFile 读取、按区域 fetch、按质量或标记过滤、写入过滤结果、计算覆盖度、进行 pileup 逐碱基分析,访问读段序列与质量值。
  2. 变异文件(VCF/BCF):使用 VariantFile 读写、按区域查询、访问位置/等位基因/质量、提取样本基因型、按质量或频率过滤、注释、子集化样本或区域。
  3. 序列文件(FASTA/FASTQ):FastaFile 按坐标随机访问参考序列、提取基因或区域序列、验证变异参考等位基因;FastxFile 顺序读取带质量的原始读段、按质量或长度过滤、格式转换;也可访问 tabix 索引的 BED/GTF/GFF。
  4. 整合工作流:结合比对、变异和参考序列,做覆盖度统计、变异验证、变异注释、提取变异周边序列、生成覆盖度轨迹等。

使用方式:安装命令为 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) 提取序列。文件模式包括 rb/r/rc 读取和 wb/w/wc 写入。可通过 pysam.samtools 与 pysam.bcftools 调用命令行工具,如 pysam.samtools.sort("-o", "sorted.bam", "input.bam")、pysam.samtools.index("sorted.bam")。

限制与注意:坐标采用 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。虽然 I/O 期间释放 GIL,但完整线程安全性尚未充分验证。

上述内容依据公开资料整理,未提供的信息暂未说明。