2019 2/26 インストール追記
2019 12/8 追記
2020 3/25 conda追記
2020 10/13 1.11追記2021 2/17 新しい論文を引用、ツイート追加
2021 dockerについて追記
2022/05/12 追記 v1.15
あけましておめでとうございます。今年もよろしくお願い致します。
samtoolsがどんどんアップデートしているので、久しぶりに更新します。ここではパッケージマネージャに頼らず、ソースからビルドします。自分の環境に合わせてビルドした方がチューニングが効きますし、ビルドのオプション次第で速くなる可能性もあります。
追記 1.10更新アナウンス
The long awaited release of 1.10 of Samtools, BCFtools and HTSlib is now available from the GitHub. See https://t.co/oBT6uOcTtz for links to tarballs and release notes.
— Samtools Team (@htslib) 2019年12月6日
2021 2/17
Pleased to announce a new samtools and bcftools paper to cover how samtools has evolved since version 0.1.19. Some great work by all the team to get this out and years of dev work to improve and harden these tools against the vagaries of real world compute environments. https://t.co/bAYyHbNSbf
— Martin Pollard (@TechnicalVault) 2021年2月16日
新しいバージョンを入れる場合は他のツールとの互換性に注意してください。特にいきなり本環境に入れるのは良くないです。
インストール
OSは素のubuntuを想定(失念していたものを追記)
#必要なコマンド、ライブラリを導入
sudo apt update #追記
sudo apt install -y wget
sudo apt install -y libncurses5-dev
sudo apt install -y zlib1g-dev
sudo apt install -y libbz2-dev
sudo apt install -y liblzma-dev
sudo apt install -y gcc #追記
sudo apt install -y make #追記
sudo apt install libcurl4-openssl-dev #追記
sudo apt install bgzip2 #追記
samtoolsのダウンロードとインストール
#v1.9
#wget
wget https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2
#curl (macos)
curl -L https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2 > samtools-1.9.tar.bz2
tar -jxvf samtools-1.9.tar.bz2
cd samtools-1.9/
./configure --prefix=/usr/local/
make -j 8
make install
#2020 10/13追記 v1.11
wget https://github.com/samtools/samtools/releases/download/1.11/samtools-1.11.tar.bz2
#curl (macos)
curl -L
https://github.com/samtools/samtools/releases/download/1.10/samtools-1.10.tar.bz2
tar -xvf samtools-1.11.tar.bz2
cd samtools-1.11/
./configure --prefix=/usr/local/
make -j 8
make install
#2024/03/31 v1.19.2
wget https://github.com/samtools/samtools/releases/download/1.19.2/samtools-1.19.2.tar.bz2
tar -xvf samtools-1.19.2.tar.bz2
cd samtools-1.19.2/
./configure --prefix=/usr/local/
make -j12
make install
追記; apple silicon macでもhomebrew(M1 native版の方) でgccなど導入しておけば、オプションの指定なく、make出来ることを確認(gcc --version;Apple clang version 14.0.0 (clang-1400.0.29.102))。
追記
もちろんconda|mambaを使って導入することもできます。
#bioconda (link)
mamba install -c bioconda -y samtools==1.12
#updateする
conda update samtools
追記
bgzipとtabixも使えるようにしておく。
cd samtools-1.10/htslib-1.10/
make -j
make install
ヘルプ (v1.11)
> samtools
Program: samtools (Tools for alignments in the SAM format)
Version: 1.11 (using htslib 1.11)
Usage: samtools <command> [options]
Commands:
-- Indexing
dict create a sequence dictionary file
faidx index/extract FASTA
fqidx index/extract FASTQ
index index alignment
-- Editing
calmd recalculate MD/NM tags and '=' bases
fixmate fix mate information
reheader replace BAM header
targetcut cut fosmid regions (for fosmid pool only)
addreplacerg adds or replaces RG tags
markdup mark duplicates
ampliconclip clip oligos from the end of reads
-- File operations
collate shuffle and group alignments by name
cat concatenate BAMs
merge merge sorted alignments
mpileup multi-way pileup
sort sort alignment file
split splits a file by read group
quickcheck quickly check if SAM/BAM/CRAM file appears intact
fastq converts a BAM to a FASTQ
fasta converts a BAM to a FASTA
-- Statistics
bedcov read depth per BED region
coverage alignment depth and percent coverage
depth compute the depth
flagstat simple stats
idxstats BAM index stats
phase phase heterozygotes
stats generate stats (former bamcheck)
ampliconstats generate amplicon specific stats
-- Viewing
flags explain BAM flags
tview text alignment viewer
view SAM<->BAM<->CRAM conversion
depad convert padded BAM to unpadded BAM
1.4を消して1.9を入れ直したのですが、samtools sortコマンドは5%ほど速くなっていました。メモリ使用量もかなり減っているようです。
まとめ
引用
The Sequence Alignment/Map format and SAMtools.
Li H, Handsaker B, Wysoker A, Fennell T, Ruan J, Homer N, Marth G, Abecasis G, Durbin R; 1000 Genome Project Data Processing Subgroup.
Bioinformatics. 2009 Aug 15;25(16):2078-9
2020 12/21
HTSlib - C library for reading/writing high-throughput sequencing data
James K. Bonfield, John Marshall, Petr Danecek, Heng Li, Valeriu Ohan, Andrew Whitwham, Thomas Keane
bioRxiv, Posted December 16, 2020
2021 2/17
Twelve years of SAMtools and BCFtools
Petr Danecek, James K Bonfield, Jennifer Liddle, John Marshall, Valeriu Ohan, Martin O Pollard, Andrew Whitwham, Thomas Keane, Shane A McCarthy, Robert M Davies, Heng Li
GigaScience, Volume 10, Issue 2, February 2021
2021 4/21
dockerでsamtoolsを動かすなら、biocontainersのイメージが利用できます。具体的には、
biocontainers/satoolsのdockerfileは、biocontainersのubuntuのベースイメージ(Dockerfile)をpullし、condaコマンドだけランすることでsamtoolsをインストールしています(Dockerfile)。
docker pull biocontainers/samtools:v1.9-4-deb_cv1
ただ、biocontainersのubuntuのベースイメージは色々なツールを導入するために肥大しています。samtoolsを動かすだけなら、自分でビルドするか、軽量なイメージをpullした方が良いと思います。