macでインフォマティクス

macでインフォマティクス

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

エラーの多いロングリードのエラー修正とアセンブリを行う NECAT

2020 2/7  パラメータエラー修正

2020 2/8 わかりにくい表現を修正

2020 3/12 わかりにくい説明を修正

 

 ナノポアのロングリードはde novoゲノムアセンブリで有利だが、ゲノム研究への適用は、これらロングリードの複雑なエラーによって依然として妨げられている。 ここでは、ナノポアのリードの複雑なエラーを克服するために設計されたエラー修正およびde novoアセンブリツールであるNECATを開発した。 Nanoporeのリードを高精度にすばやく修正するために、 adaptive read selection and two-step progressive methodを提案した。 Nanoporeリードの全長を利用するために、2段階アセンブラを導入した。 NECATは、エラー修正とNanoporeリードのde novoアセンブリの両方で優れたパフォーマンスを実現する。 NECATは、35Xカバレッジのヒトゲノムをアセンブルするのに7,225 CPU時間しか必要とせず、NG50で2.28倍の改善を達成する。 さらに、ヒトWERI細胞株のアセンブリでは、29 MbpのNG50が示された。 Nanoporeリードの高品質なアセンブリにより、構造変化の検出における偽陽性を大幅に減らすことができる。

 


インストール

ubuntu19.04の計算機を使ってテストした。

Sucessfully tested  on

本体 Github

#linux向けバイナリ
wget https://github.com/xiaochuanle/NECAT/releases/download/SourceCodes20200119/necat_20200119_Linux-amd64.tar.gz
tar xzvf necat_20200119_Linux-amd64.tar.gz
cd NECAT/Linux-amd64/bin

#パスを通す
export PATH=$PATH:$(pwd)

 > necat.pl

Usage: necat.pl correct|assemble|bridge|config cfg_fname

    correct:     correct rawreads

    assemble:    generate contigs

    bridge:      bridge contigs

    config:      generate default config file

 

 

 

実行方法

1、デフォルトパラメータのコンフィグファイル作成

以下のコマンドを打つとデフォルトパラメータのコンフィグファイルが作成される。

necat.pl config config.txt

> cat config.txt

PROJECT=

ONT_READ_LIST=

GENOME_SIZE=

THREADS=4

MIN_READ_LENGTH=3000

PREP_OUTPUT_COVERAGE=40

OVLP_FAST_OPTIONS=-n 500 -z 20 -b 2000 -e 0.5 -j 0 -u 1 -a 1000

OVLP_SENSITIVE_OPTIONS=-n 500 -z 10 -e 0.5 -j 0 -u 1 -a 1000

CNS_FAST_OPTIONS=-a 2000 -x 4 -y 12 -l 1000 -e 0.5 -p 0.8 -u 0

CNS_SENSITIVE_OPTIONS=-a 2000 -x 4 -y 12 -l 1000 -e 0.5 -p 0.8 -u 0

TRIM_OVLP_OPTIONS=-n 100 -z 10 -b 2000 -e 0.5 -j 1 -u 1 -a 400

ASM_OVLP_OPTIONS=-n 100 -z 10 -b 2000 -e 0.5 -j 1 -u 0 -a 400

NUM_ITER=2

CNS_OUTPUT_COVERAGE=30

CLEANUP=1

USE_GRID=false

GRID_NODE=0

GRID_OPTIONS=

SMALL_MEMORY=0

FSA_OL_FILTER_OPTIONS=

FSA_ASSEMBLE_OPTIONS=

FSA_CTG_BRIDGE_OPTIONS=

POLISH_CONTIGS=true

 

ランするために以下のように編集した(赤字部分)。"read_list.txt"はリードのパスを示したテキスト。下の説明参照。

> cat config.txt

PROJECT=Arabidopsis

ONT_READ_LIST=read_list.txt

GENOME_SIZE=130000000

THREADS=40

MIN_READ_LENGTH=3000

PREP_OUTPUT_COVERAGE=40

OVLP_FAST_OPTIONS=-n 500 -z 20 -b 2000 -e 0.5 -j 0 -u 1 -a 1000

OVLP_SENSITIVE_OPTIONS=-n 500 -z 10 -e 0.5 -j 0 -u 1 -a 1000

CNS_FAST_OPTIONS=-a 2000 -x 4 -y 12 -l 1000 -e 0.5 -p 0.8 -u 0

CNS_SENSITIVE_OPTIONS=-a 2000 -x 4 -y 12 -l 1000 -e 0.5 -p 0.8 -u 0

TRIM_OVLP_OPTIONS=-n 100 -z 10 -b 2000 -e 0.5 -j 1 -u 1 -a 400

ASM_OVLP_OPTIONS=-n 100 -z 10 -b 2000 -e 0.5 -j 1 -u 0 -a 400

NUM_ITER=2

CNS_OUTPUT_COVERAGE=30

CLEANUP=1

USE_GRID=false

GRID_NODE=0

GRID_OPTIONS=

SMALL_MEMORY=0

FSA_OL_FILTER_OPTIONS=

FSA_ASSEMBLE_OPTIONS=

FSA_CTG_BRIDGE_OPTIONS=

POLISH_CONTIGS=true

 

もう1つ、リードのパスを示したファイルread_list.txtを準備する。suffixをチェックされるので”.txt"をつける。findで作るなら以下のように

find ./ONT_fastq/nanopore*gz -type f > read_list.txt

相対パスになるが、カレントからランするならこれでO.K(違うならフルパスで)

補足;使えるシーケンスデータは、ロングリードの rawまたはgzipedのfastqとfast。また.fqだとエラーになる。.fastqにした。

 

2、error correction

作成したconfigファイルを指定する。

necat.pl correct config.txt 

指定したproject name、ここではArabidopsis/に結果の1-consensus/cns_final.fasta.gzが出力される。 全てのリードがエラー修正されるわけではない点に注意(Github参照)。

 

3、Assembly

以下のコマンドを打つ。自動で1の出力を認識してアセンブリが開始される。

necat.pl assemble config.txt

4-fsaに中間ファイルやcontigs.fasta、polished_contigs.fastaが出力される。

 

4、Bridging

necat.pl bridge config.txt

6-bridge_contigs/bridged_contigs.fasta が出力される。

 

計算機クラスタでランするためのオプションも用意されています。 Githubで確認して下さい。

 

感想

リファレンスのあるナズナのONTリードを使ってテストしたところ、Flyeと同じくらいの連続性と精度を持った配列が出力されていました。

(データの質や生物種によって傾向は変わる可能性があります)

引用

Fast and accurate assembly of Nanopore reads via progressive error correction and adaptive read selection

Ying Chen, Fan Nie, Shang-Qian Xie, Ying-Feng Zheng, Thomas Bray, Qi Dai, Yao-Xin Wang, Jian-feng Xing, Zhi-Jian Huang, De-Peng Wang, Li-Juan He, Feng Luo, Jian-Xin Wang, Yi-Zhi Liu, Chuan-Le Xiao

bioRxiv preprint first posted online Feb. 2, 2020

 

関連