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

本文介绍了Python中的pysam模块,这是一个强大的工具,用于读写和处理基因组数据,包括bam、vcf、bcf等格式。通过pysam,可以方便地对文件进行随机读取、索引创建、数据处理和写入操作,提供比传统工具更灵活的功能。文章详细讲解了pysam的安装、读取、写入以及随机访问的方法,使开发者能更好地处理基因组数据。
摘要由CSDN通过智能技术生成

在开发基因组相关流程或工具时,经常需要读取、处理和创建bam、vcf、bcf文件。目前已经有一些主流的处理此类格式文件的工具,如samtools、picard、vcftools、bcftools,但此类工具集成的大多是标准功能,在编程时如果直接调用的话往往显得不够灵活。

本文介绍的是一个处理基因组数据的python模块,它打包了htslib-1.3、samtools-1.3 和 bcftools-1.3的核心功能,能在编程时非常灵活的处理bam和bcf文件。

以下主要介绍pysam的安装和使用方法:

1. 安装

如果Linux上安装了pip,可以一键安装,在集群上的话,需要登录安装节点进行安装。

pip3 install pysam

检查是否安装成功

import pysam

2.读取bam文件(pysam.AlignmentFile)

bam是sam的二进制文件,因其占用空间少,所以都会使用bam进行存储和操作。

要读取bam文件,必须先创建一个AlignmentFile对象.

path_in = './test.bam'

samfile = pysam.AlignmentFile(path_in, "rb")

之后就可以逐行读取和处理bam文件了(顺序读取),以下打印出了bam的一行.

for line in samfile:

print(line)

break

63419fed8ff42e0a02f56c25404adb95.png

但顺序读取还不够灵活,我们有时需要随机读取(提示:sam不能随机读取),pysam的fetch方法提供了随机读取功能.

直接使用fetch会报错

ValueError: fetch called on bamfile without index

提示我们需要建立(.bai)索引

samtools index corrected.bam

fetch返回的是一个迭代器(iterator),可以迭代读取内容.

for read in samfile.fetch('chr6', 28478220, 28478222):

.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值