查看原文
其他

XAM 包处理 sam 和 bam 文件

JunJunLab 老俊俊的生信笔记 2022-08-17

没关注?伸出手指点这里---

1引言

前面有提起过这个包,今天就介绍一下这个 XAM package, python 有 pysam, R 语言有 Rsamtools, Julia 则有 XAM

2安装

打开 Julia 终端,输入 ] 符号进入安装包模式,输入 add XAM 进行安装。

3使用

读取 bam/sam 文件

using XAM

# Open a BAM file.
reader = open(BAM.Reader, "data.bam")

# Open a SAM file.
reader = open(SAM.Reader, "data.sam")

迭代操作:

# Iterate over BAM records.
for record in reader
    # `record` is a BAM.Record object.
    # 过滤比对上的
    if BAM.ismapped(record)
        # 打印比对的参考染色体名称及比对的位置.
        println(BAM.refname(record), ':', BAM.position(record))
    end
end

# Close the BAM file.
close(reader)

BAM/SAM 文件一般很大,提供一个预先分配的对象来加速数据分析:

reader = open(BAM.Reader, "data.bam")
record = BAM.Record()
while !eof(reader)
    empty!(record)
    read!(reader, record)
    # do something
end

bam/sam 相关的类型

# sam
XAM.SAM.flag
XAM.SAM.ismapped
XAM.SAM.isprimary
XAM.SAM.refname
XAM.SAM.position
XAM.SAM.rightposition
XAM.SAM.isnextmapped
XAM.SAM.nextrefname
XAM.SAM.nextposition
XAM.SAM.mappingquality
XAM.SAM.cigar
XAM.SAM.alignment
XAM.SAM.alignlength
XAM.SAM.tempname
XAM.SAM.templength
XAM.SAM.sequence
XAM.SAM.seqlength
XAM.SAM.quality
XAM.SAM.auxdata

# bam
XAM.BAM.flag
XAM.BAM.ismapped
XAM.BAM.isprimary
XAM.BAM.refid
XAM.BAM.refname
XAM.BAM.reflen
XAM.BAM.position
XAM.BAM.rightposition
XAM.BAM.isnextmapped
XAM.BAM.nextrefid
XAM.BAM.nextrefname
XAM.BAM.nextposition
XAM.BAM.mappingquality
XAM.BAM.cigar
XAM.BAM.alignment
XAM.BAM.alignlength
XAM.BAM.tempname
XAM.BAM.templength
XAM.BAM.sequence
XAM.BAM.seqlength
XAM.BAM.quality
XAM.BAM.auxdata

4结尾

更多使用文档见链接:

https://github.com/BioJulia/XAM.jl/blob/develop/docs/src/man/hts-files.md




  老俊俊生信交流群 ,QQ,


老俊俊微信:


知识星球:



今天的分享就到这里了,敬请期待下一篇!

最后欢迎大家分享转发,您的点赞是对我的鼓励肯定

如果觉得对您帮助很大,赏杯快乐水喝喝吧!



  





Nature 文章主图结果复现

windows 也能快速处理 BAM/SAM 大型文件

Julia 笔记之变量-整数-浮点数

cell 代码优化测试复现二 (终)

cell 代码优化测试复现一

R 语言绘制二维密度相关性散点图

Julia 的下载安装及配置

使用 python 进行 Ribo-seq 质控分析 二

deeptools 结果重新绘图

使用 python 进行 Ribo-seq 质控分析 一

◀...

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存