ノイズの多いロングリードの分類を特定するための高速かつ正確な分類ツールが未だ存在せず、有望なロングリードメタゲノムシーケンス技術の利用におけるボトルネックとなっている。本発表では、de Bruijn graph-based Sparse Approximate Match Block Analyzer (deSAMBA) を提案する。これは、スパース近似マッチブロック (SAMB) に基づく新しい疑似アライメントアルゴリズムを用いたロングリードの分類手法で、カスタマイズされたアプローチである。実データを用いたベンチマークにより、deSAMBAは高い収率と高速性を同時に達成することができ、最先端のメタゲノム研究において多くの可能性を持つツールであることが示された。
Githubより
DeSAMBAは最新のサーバーに対応しており、ピーク時のメモリ使用量は参照ゲノムのサイズと複雑さに依存します。インデックス作成に使用するメモリは、分類の実行に使用するメモリよりも大きいので、大きなメモリを持つサーバでインデックスを作成し、小さなメモリでインデックスを配布することができます。オプション "all "の場合(詳細はインデックス構築オプションの項を参照)、インデックス構築に160ギガバイト、分類実行に69ギガバイトのメモリが必要です(2018年11月、35ギガバイトの参照ゲノム)。Viralオプションの場合、インデックス作成に3ギガバイト、分類実行に1ギガバイトのメモリが必要です。NCBI RefSeqデータベースが急速に成長しているため、現時点ではより多くのメモリが必要な可能性があります。
インストール
ubuntu18でテストした。
sudo apt-get install zlib1g-dev
sudo apt-get install automake
sudo apt-get install libtool
sudo apt-get install make
sudo apt-get install g++
#deSAMBAとJellyfish-1.1のビルド、デモデータの解凍
git clone https://github.com/hitbc/deSAMBA.git --depth=1
cd deSAMBA/
bash ./build
> ./bin/deSAMBA -h
Program: deSAMBA
Version: 1.1.12
Contact: Gaoyang Li <gaoyangli@hit.edu.cn>
Usage : deSAMBA <command>
Command:
index : index the reference sequences
classify: classify meta-genomic reads
analysis: analysis results
kmersort: sort the kmer-result of Jellyfish
Normal end program, MAX MEM:[0.003143]Gbp.
> ./bin/deSAMBA index
Warning: [SortedKmer] / [Reference] or [IndexDir] missed.
Program: deSAMBA
Version: 1.1.12
Contact: Gaoyang Li <gaoyangli@hit.edu.cn>
Usage: deSAMBA index <Options> [SortedKmer] [Reference] [IndexDir]
Basic:
[SortedKmer] FILE sorted kmers file "kmer.srt" genereted by "kmersort"
[Reference] FILE one fasta REF file, multiple files need to be combined
[IndexDir] FOLDER the directory to store deSAMBA index
Options:
-h help
Normal end program, MAX MEM:[0.003143]Gbp.
> ./bin/deSAMBA classify -h
Program: deSAMBA
Version: 1.1.12
Contact: Gaoyang Li <gaoyangli@hit.edu.cn>
Usage: deSAMBA classify [Options] <IndexDir> [ReadFiles.fa][...]>
Basic:
<IndexDir> FOLDER the directory contains deSAMBA index
[ReadFiles.fa] FILES reads files, FASTQ(A) format, separated by space
Options:
-h, help
-t, INT number of threads[4]
-l, INT minimum matching length, ignored for NGS reads [170]
-r, INT max Output number of secondary alignments[5]
-o, FILE output results into file [stdout]
-s, INT MIN score[64]
-f, STR output format, one of:
- SAM: SAM-like results without SEQ and QUAL and header, default
- SAM_FULL: SAM-like results with SEQ and QUAL
- DES: smallest format
- DES_FULL: all results are showed, ignore '-r' opinion
Normal end program, MAX MEM:[0.003143]Gbp.
> ./bin/deSAMBA analysis -h
command [-h] unsupported!
Program: deSAMBA
Version: 1.1.12
Contact: Gaoyang Li <gaoyangli@hit.edu.cn>
Usage: deSAMBA analysis <command> [file]
Command list:
analysis ana_meta [SAM_file.sam] [node.dmp]
analysis ana_meta_base [SAM_file.sam] [node.dmp]
analysis count_base [FASTQ_file.fq]
analysis split_fastq [FASTQ_file.fq] [start_number] [step_length]
analysis fastq_to_fasta [FASTQ_file.fq]
Basic:
[SAM_file.sam] FILE Classify file generated from "classify" command
[XXX taxonomy] INT taxonomy you want to test in the result file
[rank] STR rank you want to test in the result file
[node.dmp] FILE node.dmp file download from:
ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz
> ./bin/deSAMBA kmersort -h
Program: deSAMBA
Version: 1.1.12
Contact: Gaoyang Li <gaoyangli@hit.edu.cn>
Usage: deSAMBA kmersort <options> [JF Kmer file]
Basic:
[JF Kmer file] FILE Unsorted kmer file generated by Jellyfish
Options:
-k INT length of kmer in base pair[31]
-o FILE output sorted kmer file["kmer.srt"]
-h help
Normal end program, MAX MEM:[0.003143]Gbp.
テストラン
1、indexing
リファレンスゲノム、出力ディレクトリを指定する(ディレクトリがない時は作成される)。デモのviral-gs.faは、ウィルスのリファレンス配列463個が含まれている。このツールはNCBI refseqのゲノムを想定しており、viral-gs.faも最新のNCBI RefSeqウイルスデータベースの一部をダウンロードしたもの。
cd deSAMBA/
bash ./build-index ./demo/viral-gs.fa ./demo_indexcd
demo_indexcd/
2、ロングリードを分類する。1のインデックスディレクトリ、ロングリード、出力のsamの順に指定する。デモのロングリード(リンク)はMinIONによるエボラウィルスのサーベイランスシークエンシング。
./bin/deSAMBA classify -t 4 ./demo_indexcd/ ./demo/ERR1050068.fastq -o ./ERR1050068.sam
- -t number of threads[4]
- -o output results into file [stdout]
- -l minimum matching length, ignored for NGS reads [170]
- -r max Output number of secondary alignments[5]
- -o output results into file [stdout]
- -s MIN score[64]
"-l "と"-s "オプションを増やすと、精度は上がるが感度が下がる。リードが複数の参照先にマッピングされている場合、「SECONDARY」または「SUPPLEMENTARY」結果を出力することがある。
ERR1050068.samが出力される。(手持ちのリードだとエラーを起こした。各配列のヘッダにユニークなリード名とリード長が書かれてないと認識しないのかもしれない)
3、分析には2つのモードがある(Githubより)。
- 塩基数による解析。各分類群に含まれる塩基対をすべてカウントし、その結果をマッピングされた塩基数の合計で割ることで解析する。
- リード数による解析。これは、各分類群に含まれるすべてのリードを数え、その結果をリード数(マッピングされていないリードを含む)の合計で割ったもの。
1つのリードが複数の位置にマップされている場合、"PRIMARY "結果(アライメントスコアが最も高い結果)だけが解析に使用される。
1の塩基数による解析。NCBIからダウンロードしたtaxdump.tar.gzを解凍するとnames.dmpやnodes.dmp(NCBI taxonomyのノードファイル)ができるので、これを指定する(wget ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz)。デモでは含まれている。
./bin/deSAMBA analysis ana_meta_base ./ERR1050068.sam ./demo/nodes.dmp
解析結果は taxonomy tree形式で出力される。
2のリード数による解析。
./bin/deSAMBA analysis ana_meta ./ERR1050068.sam ./demo/nodes.dmp
引用
Fast and Accurate Classification of Meta-Genomics Long Reads With deSAMBA
Gaoyang Li, Yongzhuang Liu, Deying Li, Bo Liu, Junyi Li, Yang Hu, Yadong Wang
Front Cell Dev Biol. 2021 Apr 28;9:643645