iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
AI & Data

我們的基因體時代-AI, Data和生物資訊系列 第 17

我們的基因體時代-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語言有興趣的話,可以來交流交流!


上一篇
我們的基因體時代-AI, Data和生物資訊 Day16- 視覺瀏覽定序檔案格式SAM, BAM的工具
下一篇
我們的基因體時代-AI, Data和生物資訊 Day18-基因變異的檔案格式VCF
系列文
我們的基因體時代-AI, Data和生物資訊30

尚未有邦友留言

立即登入留言