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. 如果有b, 必须有r或者w。

#如果bai文件存在,会自动打开。没有的话 fetch() 和 pileup() 不能用。

文件打开以后, 可以用fetch对指定的region进行循环。

for alignedread in samfile.fetch(‘Chr1‘, 100, 200):         #不指定的话就是全部

print alignedread

读完以后关闭文件

samfile.close()

pysam.Samfile.fetch() returns all reads overlapping a region sorted by the first aligned base in the reference sequence.

Note that it will also return reads that are only partially overlapping with the region. Thus the reads returned might span a region that is larger than the one queried.

统计参考序列某个区域内,call beases in each site

The pileup engine of csamtools iterates over all reads that are aligned to a region. In contrast to fetching, the pileup engine returns for each base in the reference sequence the reads that map to that particular position.

eg:

iter = samfile.pileup( ‘seq1‘, 10, 20 )
for x in iter: print str(x)
Aligned reads are returned as a pysam.PileupColumn.

eg:

import pysam

samfile = pysam.Samfile(‘ex1.bam‘, ‘rb‘)

for pileupcolum in samfile.pileup(‘Chr1‘, 100, 200):

print ‘coverage at base %s = %s‘ % (pileupcolum.pos, pileupcolumn.n)    #pos返回的是位置,n返回有多少个碱基比对到这个位置

for pileupread in pileupcolumn.pileups:

print ‘\tbase in read %s = %s‘ %(pileupread.alignment.qname, pileupread.alignment.seq[pileupread.qpos])

samfile.close()

#pileupColumn.tid  指 chromesome ID as is defined in the header

pileupColumn.pos  指 the target base coordinate(0-based)

pileupCloumn.n   指number of reads mapping to this column

pileupCloumn.pileups  指 list of reads aligned to this column

# pileupread.alignment.qname 返回列中read的名字,

pileupread.alignment.seq[pileupread.qpos] 返回read在某个位点的碱基

NOTE:

Coordinates in pysam are always 0-based(following the python convention). SAM text fils use 1-based coordinates.

pysam.Samfile, pysam.Fastafile, pysam.Fastqfile各个类的详细使用说明见:http://pysam.readthedocs.org/en/latest/api.html

freemao

FAFU

[email protected]

pysam 模块

时间: 2024-10-16 22:09:59

pysam 模块的相关文章

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

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

pysam读取bam files[转载]

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

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

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

Day5 - 常用模块学习

本节大纲: 模块介绍(模块导入方法) time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,用一堆代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又

c# 无法加载xxx.dll 找不到指定的模块(如何指定文件夹)

如果直接放在项目运行目录,例如bin/debug可以直接加载,但是这样比较乱. 如果在放debug里面的一个文件夹里面,有可能会报错“无法加载xxx.dll 找不到指定的模块”. 如果路径写成这样就会报错 framework/linphone 解决方法:将/ 改成"\" framework\linphone

LEDAPS1.3.0版本移植到windows平台----HuCsm云掩膜模块

这个是2012年左右放在百度空间的,谁知百度空间关闭...转移到博客园. 最近项目用到3.1.2版本的LEDAPS,新版本的使用情况会在后续文章中慢慢丰富. HuCsm是将LEDAPS项目中的TM/ETM+大气校正流程系列算法中的云掩膜模块由linux系统移植到windows下的产物,代码本身改动不大,使用接口不变. 包含文件: HuCsm.exe hd423m.dll hm423m.dll 编译程序需要包含的静态库有: gctp.lib hdfeos.lib hd423m.lib hm423m

Python学习系列----第五章 模块

5.1 如何引入模块 在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入.在调用math模块中的函数时,必须这样引用: 模块名.函数名 有时候我们只需要用到模块中的某个函数,只需要引入该函数即可,此时可以通过语句 from 模块名 import 函数名1,函数名2.... 5.2 如何定义自己的模块 在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字. 比如有这样一个文件test.py

Python:hashlib加密模块,flask模块写登录接口

hashlib模块 主要用于加密相关的操作,(比如说加密字符串)在python3的版本里,代替了md5和sha模块,主要提供 sha1, sha224, sha256, sha384, sha512 ,md5 这些加密方式 import  hashlib m = hashlib.md5()   #用md5加密的方式(md5加密后无法解密),创建一个md5的对象 m.update(b"Hello")  #b代表二进制字节bytes,把字符串hello转成字节,然后加密:用b给一个变量转换

python如何使用pymysql模块

Python 3.x 操作MySQL的pymysql模块详解 前言pymysql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而MySQLdb不支持3.x版本. 一.安装 pip3 install pymysql 二.pymysql方法 pymysql.connect()参数说明 参数 类型 说明 host str mysql服务器地址 port int mysql服务器端口号 user str 用户名 passwd str