上一篇我們的基因體時代-AI, Data和生物資訊 Day16- 視覺瀏覽定序檔案格式SAM, BAM的工具上一篇介紹三個工具可以用來瀏覽基因定序比對後的檔案,其中由美國國家衛生院的生物資訊團隊開發的Integrative Genomics Viewer (IGV)是最多人使用的工具,再來是英國Wellcome Sanger Institute的Artemis,兩者的設計想法稍由不同,IGV相對比較偏一般非生物資訊背景的科學家也能使用,而Artemis則是偏向針對生物資訊人員的,有點像是編譯器的設計概念。為何要用視覺化來看這些資料長什麼樣子呢?上一篇也介紹一些實際的案例,在分析時候認為的變異,其實在實際用瀏覽器觀看的時候,會發現可能是比對的錯誤或偏差造成的,當然也是因為特定變異的複雜性和技術局限性所造成的。
這邊往下繼續分享可以用什麼工具來分析和處理SAM和BAM檔案,也是分成三種環境下來分享,分別在:Linux環境、R語言、Python語言。
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目前有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
)可以使用,要是能完全理解每個參數的使用,也大概學會了完整在這一階段序列比較時可以做的生物資訊分析,裡面有的功能可以簡化分成幾群:
主要有GenomicAlignment, Rsamtools, bamsignals, Rsubread這幾個在Bioconductor下面能輸入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語言有興趣的話,可以來交流交流!