Pysam[1]是一个 Python 模块,它打包了高通量测序库htslib[2]的 C-API,可用于读写基因组相关文件,如 Fasta/Fastq,SAM/BAM/CRAM,VCF 等。本文以 Fasta/Fastq 文件的读写为例,介绍 Pysam 的用法,详细教程请查看官网。
Install
pip install pysam
或者
conda install pysam
Fasta files
对于 Fasta 文件,可以实现随机访问,前提是要先创建 faidx 索引。
import pysam
# 构建FastaFile对象,随机访问需要先创建faidx,没有的话在这里会自动创建faidx
fa = pysam.FastaFile("ex1.fa")
# Fasta文件中序列的数量,结果是一个整数
print("number of reference sequences: %d" % fa.nreferences)
# Fasta文件中序列的名称,结果是一个列表
print("names of reference sequences: " + ",".join(fa.references))
# Fasta文件中序列的长度,结果是一个列表
print("lengths of reference sequences: " + ",".join([str(i) for i in fa.lengths]))
# 这里是关键,用fetch函数随机读取序列
#