Pysam 是一个python的模块,可用于处理bam文件
安装
conda install pysam
#或者
pip install pysam
使用
Pysam的函数有很多,主要的读取函数有:
-
AlignmentFile:读取BAM/CRAM/SAM文件
-
VariantFile:读取变异数据(VCF或者BCF)
-
TabixFile:读取由tabix索引的文件;
-
FastaFile:读取fasta序列文件;
-
FastqFile:读取fastq测序序列文件
一般常用的是第一个和第二个。
举个🌰
import pysam
bf = pysam.AlignmentFile("in.bam","rb")
# bf 为一个迭代器,可以next()或者for读取
for i in bf:
print i.reference_name,i.pos,i.mapq,i.isize
ctg000331_np121 144935 27 -284
ctg000331_np121 144940 48 291
ctg000331_np121 144941 48 309
ctg000331_np121 144944 48 255
ctg000331_np121 144946 27 -370
ctg000331_np121 144947 27 -346
-
i.reference_name: 参考序列染色体id;
-
i.flag bam的flag值
-
i.pos代表read比对的位置;
-
i.mapq代表read的比对质量值;
-
i.isize代表PE read直接的插入片段长度,有时也称Fragment长度;
我将sam文件中12列的信息列在下面:
- r.qname: reads 名
- r.flag :Flag
- r.reference_name: 比对到的染色体
- r.pos+1: 比对位置,必须得加一
- r.mapq: 比对质量
- r.cigarstring: CIGAR
- r.next_reference_name:另外一条reads比对的参考基因组,若和第一条相同,则输出=
- r.mpos+1: 比对的位置,必须得加1
- r.isize: 插入片段长度
- r.seq:reads seq
- r.qual: reads 质量
:
pysam中的坐标位点是0开始,染色体起始位置为0,不是1
网友评论