Pysam 处理bam文件

Pysam可用来处理bam文件

安装:

用 pip 或者 conda即可

使用:

Pysam的函数有很多,主要的读取函数有:

  • AlignmentFile:读取BAM/CRAM/SAM文件
  • VariantFile:读取变异数据(VCF或者BCF)
  • TabixFile:读取由tabix索引的文件;
  • FastaFile:读取fasta序列文件;
  • FastqFile:读取fastq测序序列文件

一般常用的是第一个和第二个。

例子:

import pysam

bf = pysam.AlignmentFile("in.bam","rb");  其中r = read, b:binary.  二进制文件。   bam文件index

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代表read比对到的参考序列染色体id;
  • i.pos代表read比对的位置;
  • i.mapq代表read的比对质量值;
  • i.isize代表PE read直接的插入片段长度,有时也称Fragment长度;

一些功能:

  • check_index()

检测index文件是否存在存在即为true

  • close()

用完记得关闭

  • count(self,contig=None, start=None, stop=None, region=None, until_eof=False, read_callback=‘nofilter‘, reference=None,end=None)

计算目标区域内比对上的reads数目

bf.count(contig="ctg000331_np121", start=1, stop=6000)
           24

  • count_coverage(self, contig=None, start=None, stop=None, region=None, quality_threshold=15, read_callback=‘all‘, reference=None, end=None)

计算目标区域内的覆盖度。返回1个4维的array,代表ACGT的覆盖度,而每个维度的array长度为100,里面的数字代表该碱基在各个位置上的覆盖度。

bf.count_coverage(contig="ctg000331_np121",start=1,stop=100)

  • fetch(self, contig=None, start=None, stop=None, region=None, tid=None, until_eof=False, multiple_iterators=False, reference=None, end=None)

提取出比对到目标区域内的全部reads。返回的是一个迭代器,可以通过for循环或者next函数从中取出reads,我们使用next()函数取出第一条reads,reads是用         AlignedSegment对象表示,可以通过该对象的内置方法再对这条reads进行一些查询操作。

allreads=bf.fetch(contig="ctg000331_np121",start=1,stop=10000)

   是一个迭代器,可以用for循环获得

  • get_index_statistics(self)
    通过index统计该BAM文件中在各个染色体上mapped/unmapped的reads个数。

bf.get_index_statistics()

原文地址:https://www.cnblogs.com/zhanmaomao/p/11990448.html

时间: 2024-08-27 07:59:05

Pysam 处理bam文件的相关文章

pysam读取bam files[转载]

pysam - 多种格式基因组数据(sam/bam/vcf/bcf/cram/-)读写与处理模块(python) 在开发基因组相关流程或工具时,经常需要读取.处理和创建bam.vcf.bcf 文件.目前已经有一些主流的处理此类格式文件的工具,如samtools.picard.vcftools.bcftools,但此类工具集成的大多是标 准功能,在编程时如果直接调用的话往往显得不够灵活. 本文介绍的是一个处理基因组数据的python模块,它打包了htslib-1.3.samtools-1.3 和

SAM/BAM文件处理

当测序得到的fastq文件map到基因组之后,我们通常会得到一个sam或者bam为扩展名的文件.SAM的全称是sequence alignment/map format.而BAM就是SAM的二进制文件(B取自binary). 那么SAM文件的格式是什么样子的呢?如果你想真实地了解SAM文件,可以查看它的说明文档.SAM由头文件和map结果组成.头文件由一行行以@起始的注释构成.而map结果是类似下面的东西: HWI-ST1001:137:C12FPACXX:7:1115:14131:66670

为什么 BAM 文件 sort 之后体积会变小

bam文件是Sam 文件的二进制压缩格式,保留了与sam 完成相同的内容信息. BAM 文件是压缩的二进制文件,对文件内容排序之后相似的内容排在一起,使得文件压缩比提高了,因此排序之后的 BAM 文件变小了, 相对应的 SAM 文件就是纯文本文件,对 SAM 文件进行排序就不会改变文件大小. 参考来源: https://www.jianshu.com/p/0a6111f9a183 原文地址:https://www.cnblogs.com/bio-mary/p/11636998.html

多线程拆分bam文件

#!perl use warnings; #use strict; use threads; use Thread::Semaphore; use File::Basename qw(basename); die "perl $0 <bam> <threads>\n" if @ARGV != 2; my $semaphore = Thread::Semaphore->new($ARGV[1]); my $id = basename($ARGV[0], &q

pysam - 多种格式基因组数据(sam/bam/vcf/bcf/cram/&hellip;)读写与处理模块(python)

在开发基因组相关流程或工具时,经常需要读取.处理和创建bam.vcf.bcf文件.目前已经有一些主流的处理此类格式文件的工具,如samtools.picard.vcftools.bcftools,但此类工具集成的大多是标准功能,在编程时如果直接调用的话往往显得不够灵活. 本文介绍的是一个处理基因组数据的python模块,它打包了htslib-1.3.samtools-1.3 和 bcftools-1.3的核心功能,能在编程时非常灵活的处理bam和bcf文件. 以下主要介绍pysam的安装和使用方

Edit Distance编辑距离(NM tag)- sam/bam格式解读进阶

sam格式很精炼,几乎包含了比对的所有信息,我们平常用到的信息很少,但特殊情况下,我们会用到一些较为生僻的信息,关于这些信息sam官方文档的介绍比较精简,直接看估计很难看懂. 今天要介绍的是如何通过bam文件统计比对的indel和mismatch信息 首先要介绍一个非常重要的概念--编辑距离 定义:从字符串a变到字符串b,所需要的最少的操作步骤(插入,删除,更改)为两个字符串之间的编辑距离. 这也是sam文档中对NM这个tag的定义. 编辑距离是对两个字符串相似度的度量(参见文章:Edit Di

pysam 模块

pysam is a python module that makes it easy to read and manipulate mapped short read sequence data stored in SAM/BAM files. 要读bam文件, 首先实例化一个Samfile对象 import pysam samfile = pysam.Samfile('ex1.bam', 'rb') #r 是reading. w是writing.b是指bam文件, 不加的话默认是sam. 如

sam/bam格式

一)Sam (Sequence Alignment/Map) ------------------------------------------------- 1) SAM 文件产生背景 随着Illumina/Solexa, AB/SOLiD and Roche/454测序技术不断的进步,各种比对工具产生,被用来高效的将reads比对到参考基因组.因为这些比对工具产生不同格式的文件,导致下游分析比较困难,因此一个通用的格式可以提供一个很好的接口用于链接比对与下游分析(组装,变异等,基因分型等)

bam文件格式说明

bam文件说明 bam文件和sam文件内容其实是一样的,只是bam是二进制的压缩文件,需要通过特定的软件来进行查看,bam文件通常可以理解为12个字段组成 BAM格式分为header section(头部分,注释信息,以@开头,可有可无)和alignment section(比对结果)两个部分. alignment section由11个字段组成 1 序列的名字,也就是reads的名称 2 是一个标记的数字,是有需要转换成二进制才能知道代表的意思,各个数字分别代表 `1. 序列是一对序列中的一个