生信分析- Pysam应用

Pysam是一个Python模块,用于处理基因组数据,整合了htslib、samtools和bcftools的功能。它可以方便地读取和操作BAM/CRAM/SAM、VCF/BCF、tabix索引文件、fasta和fastq文档。主要函数包括AlignmentFile、VariantFile、TabixFile等,提供如读取ID、质量分数、CIGAR记录解析等操作,适用于生物信息学中的序列比对和变异分析。
摘要由CSDN通过智能技术生成

https://mp.weixin.qq.com/s/ezsg8ho7dsDXWMF-jzFYYA

Pysam应用

Pysam包是一个处理基因组数据的python模块,它打包了htslib-1.3、samtools-1.3 和 bcftools-1.3的核心功能,能在编程时非常灵活的处理bam和bcf文档,实现python处理基因组数据的无缝衔接,而不用在python进程内部调用samtools、bcftools等软件。

函数

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

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

FastaFile:读取fasta序列文件

import pysam

## 1 构建FastaFile对象,调用后返回对象,dir(对象)查看其内置方法
refGenome="Homo_sapiens_assembly19.fasta"
refseq = pysam.FastaFile(refGenome)
>>> dir(refseq)
['__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__pyx_vtable__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '_open', 'close', 'closed', 'fetch', 'filename', 'get_reference_length', 'is_open', 'lengths', 'nreferences', 'references']


## 2 用fetch函数随机读取序列, 查看其使用方法help(object.fetch())
### 提取整条序列
refseq.fetch("chr1")
>>> 'AGCTACTGCTAGCATACGATCTAACGTAGCTCTCTCAGCCGATATTCGCGAT'

### 提取具体位点的碱基,比如上述从左数起第5,6个碱基'AC'
####  Python风格半开区间:半开区间碱基位置编号从0开始。
refseq.fetch("chr1", 4, 6)
>>>'AC'

#### Samtools风格闭区间:碱基位置编号从1开始
refseq.fetch(region="chr1:5-6")
>>>'AC'

AlignmentFile:读取BAM/CRAM/SAM文件

## 1 构建AlignmentFile对象,调用后返回对象,dir(对象)查看其内置方法
samfile = pysam.AlignmentFile("example.bam", "rb") 
>>> dir(samfile)
['__class__', '__delattr__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', 
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值