我们的基因体时代-AI, Data和生物资讯 Day17-分析定序档案格式SAM, BAM的工具

上一篇我们的基因体时代-AI, Data和生物资讯 Day16- 视觉浏览定序档案格式SAM, BAM的工具上一篇介绍三个工具可以用来浏览基因定序比对後的档案,其中由美国国家卫生院的生物资讯团队开发的Integrative Genomics Viewer (IGV)是最多人使用的工具,再来是英国Wellcome Sanger Institute的Artemis,两者的设计想法稍由不同,IGV相对比较偏一般非生物资讯背景的科学家也能使用,而Artemis则是偏向针对生物资讯人员的,有点像是编译器的设计概念。为何要用视觉化来看这些资料长什麽样子呢?上一篇也介绍一些实际的案例,在分析时候认为的变异,其实在实际用浏览器观看的时候,会发现可能是比对的错误或偏差造成的,当然也是因为特定变异的复杂性和技术局限性所造成的。

这边往下继续分享可以用什麽工具来分析和处理SAM和BAM档案,也是分成三种环境下来分享,分别在:Linux环境、R语言、Python语言。

Linux环境下可用来处理SAM/BAM档案之工具:Samtools

Samtools是处理SAM档或BAM档最重要的工具之一,它也是Heng Li撰写的软件,他在2009年发表的文章,现在已经超过30000次引用,可见对整个领域的影响力相当大,也是很多软件底层所依赖的工具。

如何安装

可以直接到此软件的页面下载档案,并且在命令行环境下来编译安装:

cd samtools-1.x    # and similarly for bcftools and htslib
./configure --prefix=/where/to/install
make
make install

安装完後,在设定一下命令行环境下的变数即可

export PATH=/where/to/install/bin:$PATH    # for sh or bash users

另一方面,可以直接用Anaconda下的Bioconda来安装,整个过程也是非常简单快速。流程上,先安装Conda,在建立相关的隔离环境来安装samtools即可,相对来说会比较乾净。

## on Mac
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
sh Miniconda3-latest-MacOSX-x86_64.sh
## on linux
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh
## set up channel for install
conda config --add channels defaults
conda config --add channels bioconda
conda config --add channels conda-forge
## install in certain environment
conda create -n new_environment samtools

samtools下面的功能参数

samtools目前有33个功能参数(view, tview,quickcheck,index,sort,collate,idxstats,flagstat,flags,stats,bedcov,depth,ampliconstats,mpileup,coverage,merge,split,cat,import,fastq,fasta,faidx,fqidx,dict,calmd,fixmate,markdup,addreplacerg
)可以使用,要是能完全理解每个参数的使用,也大概学会了完整在这一阶段序列比较时可以做的生物资讯分析,里面有的功能可以简化分成几群:

  • 显示BAM档内容:view, tview, flags
  • 统计描述分析比对结果:flagstat, stats, aompliconstats
  • 分析档案内的细节:bedcov, depth, calmd
  • 变异分析:mpileup, markdup, phase
  • 档案处理:sort, collate, merge, split, cat, import, addreplacerg, reheader, targetcut, depad
  • 建立索引:index, faidx, fqidx, dict
  • 产出其他档案:fastq, fasta

在R环境中,Bioconductor项目跟BAM档案相关

主要有GenomicAlignment, Rsamtools, bamsignals, Rsubread这几个在Bioconductor下面能输入BAM档案做相关分析。

在Python环境下,跟BAM档案相关的封包

想用python来处理bam档案的话,除了使用Biopython中的Bio.Sequencing.Applications.Samtools,也可以用pysam,两个本质上差不多,都是调用samtools来做处理。

Li H, Handsaker B, Wysoker A, et al. The Sequence Alignment/Map format and SAMtools. Bioinformatics. 2009;25(16):2078-2079. doi:10.1093/bioinformatics/btp352

Danecek P, Bonfield JK, Liddle J, et al. Twelve years of SAMtools and BCFtools. Gigascience. 2021;10(2):giab008. doi:10.1093/gigascience/giab008

https://www.bioconductor.org/help/course-materials/2015/useR/bioc-for-sequence-analysis.html


这个月的规划贴在这篇文章中我们的基因体时代-AI, Data和生物资讯 Overview,也会持续调整!我们的基因体时代是我经营的部落格,如有对於生物资讯、检验医学、资料视觉化、R语言有兴趣的话,可以来交流交流!


<<:  [30天 Vue学好学满 DAY17] Event Bus

>>:  Day16 奶盖绿茶拿铁半糖少冰加珍珠

开源的WebPC让你使用浏览器远程控制 linux or windows

WebPC 是我刚在 github 上开源(MIT)的一个远控工具,可以作爲 TeamViewer ...

Day 23: Recurrent Neural Network — 循环精神网路初探(下)

Recurrent Neural Network 循环精神网路 前面讲述了许多关於RNN循环精神网路...

[Day 10] Checkbox 核取方块

在许多的输入中 很重要的核取方块 用於登入的勾选 ,资料的选取等等 利用 checked 判定核取状...

[Day 27]用Django架构建置专属的LINEBOT吧 - 用LINE进行影片画面边缘侦测处理

介绍了图片讯息、音讯讯息、位置讯息处理的相关应用, 想说也趁这个机会来介绍一点关於影片处理的相关应用...

Leetcode: 226. Invert Binary Tree

这里空置了两个礼拜多,总之我要延毕了,怎麽说呢,大家都说延毕不是世界末日,我现在也接受这个说法了,不...