Sasaki Peter

pharmaceutical programmer

Sniffles

2019-02-08 sasaki peterbio-infomatics

Snifflesとは

SnifflesはDNAの構造変異(Structure Variant: SV)の検出に用いるOSS。 SV検出の前に、シーケンサーから出力されたDNA配列の断片をアラインメント(マッピングともいう)と言って、重複の無いようにつなぎ合わせる作業が必要になる。

ロングリードシーケンサーの場合、このアラインメントにはngmlrminimap2といったOSSが使用できる。その出力結果はSAMというファイル形式で得られるが、そのファイルの前処理から行う。

samtools

SnifflesはSAM形式のファイルを入力として受け付けていないので、バイナリ形式のBAMに変換するためにsamtoolsを用いる。

インストール

コンパイルする場合

$ git clone git://github.com/samtools/samtools.git
$ make

バイナリファイルを直接ダウンロードする場合

$ wget https://sourceforge.net/projects/samtools/files/samtools/1.0/samtools-bcftools-htslib-1.0_x64-linux.tar.bz2/download -O samtools

Biocondaを使う場合

conda-forgeチャンネルが優先されていない環境でインストールするとlibcrypto.so.1.0.0がないとエラーが出る。

dyld: Library not loaded: @rpath/libcrypto.1.0.0.dylib
  Referenced from: /Users/sasakipeter/miniconda3/bin/samtools
  Reason: image not found
$ conda config --get channels
--add channels 'r'   # lowest priority
--add channels 'defaults'
--add channels 'bioconda'
--add channels 'conda-forge'   # highest priority
$ conda install samtools

使うかもしれなかったコマンド

$ conda update -n base -c defaults conda
$ ldd $(which samtools)
$ otool -L $(which samtools)
$ cd ~/miniconda3/envs/genome/lib
$ ln -s libcrypto.so.1.1 libcrypto.so.1.0.0
$ brew install openssl
$ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
$ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

他のライブラリを入れて、samtoolsが動かなくなったら、以下のコマンドでだいたいうまくいく

$ conda update --all

参考

実行

$ samtools view -Sb test.sam > test.bam

sortしてからSVをコールしたほうがいいのかもしれない。

参考

samtoolsの使い方について要調査。

Sniffles

実行

$ sniffles -s 10 -m test.bam -v output.vcf

データが少なすぎると警告が出る模様。