macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

ノイズの多いロングリードを分類する deSAMBA

 

 ノイズの多いロングリードの分類を特定するための高速かつ正確な分類ツールが未だ存在せず、有望なロングリードメタゲノムシーケンス技術の利用におけるボトルネックとなっている。本発表では、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でテストした。

Github

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. 塩基数による解析。各分類群に含まれる塩基対をすべてカウントし、その結果をマッピングされた塩基数の合計で割ることで解析する。
  2. リード数による解析。これは、各分類群に含まれるすべてのリードを数え、その結果をリード数(マッピングされていないリードを含む)の合計で割ったもの。

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