全ゲノムde novoアセンブリはリファレンスゲノムを持たない種の研究には不可欠であり、リファレンスゲノムを持つ種の遺伝的変異の全容を明らかにするためにも重要である。ロングリードシーケンシング技術の進歩により、ロングリードはより正確に、より長く、より安価になってきている。それに伴い、数多くのロングリード全ゲノムde novoアセンブラが開発され、小規模なプロジェクトやコンソーシアムプロジェクトに広く適用されている。
このような進歩にもかかわらず、ロングリードであっても高品質なアセンブルを実現することは困難である。アセンブラのアルゴリズムは大きく異なり、各アセンブラには通常、幅広いパラメータが含まれている。さらに、入力データは、個々のプラットフォームまたは複数のプラットフォームからのものであり、リードの長さも様々である。ロングリードアセンブラでは、ハイブリッドリード、ロングノイジーリード(PacBio raw CLRまたはNanopore)、HiFiリード、トリオサンプルからのリードなどが入力されることがある。シークエンスされたゲノムの倍数性、遺伝的多様性、ヘテロ接合性、反復配列、シークエンシングデプスなどによる複雑さが加わり、デノボアセンブリはさらに困難になる。
そのため、デノボアセンブリの品質評価は、ユーザーが最適なアセンブリ結果を得るためにも、開発者がアセンブリアルゴリズムを改善するためにも必要不可欠である。ショートリード時代には、Assemblathon [ref.24, 25]によって、デノボアセンブリのベストプラクティスが示された。しかし、ロングリードのアセンブリを評価できるツールセットは限られている。QUAST-LGは、QUASTの拡張版で、大規模なゲノムアセンブリを評価することができる。QUAST-LGは、複数のプラットフォームからのシーケンスデータを受け入れ、プロットだけでなく、豊富なアセンブリメトリクスを含むレポートを生成できる。しかし、QUAST-LGは既存のリファレンスゲノムに大きく依存しているため、リファレンスゲノムのない生物種や、リファレンスゲノムと大きく異なるサンプルへの適用には限界がある。また、QUAST-LGのミスアセンブリ評価は、遺伝子変異の存在によって影響を受けやすい。生のリードを入力として受け付けるが、GRIDSSで構造変異(SV)をコールするために使用されるのはIlluminaデータのみで、ロングリードは単純なリード統計の報告にしか使用できない。ショートリードが提供されたとしても、ショートリードからSVを検出することは不十分であるため[ref.3]、アセンブリエラーを評価することは困難である。
Merquryは、KATにヒントを得て開発された、k-merスペクトラムに基づいてアセンブリの品質(QV)、完全性、および位相を評価するためのリファレンスフリーのツールキットである。アセンブリ中のk-merを生のリードと比較することで、Merquryはベースレベルの精度と完全性を推定することができる。しかし、Merquryは入力としてIlluminaデータのような高精度のリードを必要とするため、ロングリードオンリーのアセンブリ結果への適用には限界がある。また,Merquryはベースレベルのエラー推定値を提供するが,構造エラーを明示的に検証することはできない.
BUSCOは、進化的なオルソログ遺伝子に基づいて、ゲノムアセンブリとアノテーションの完全性を迅速かつ正確に評価する。しかし、BUSCOは保存されたゲノム領域を評価するものであり、ゲノム中の最も分岐した配列に関する情報は得られない。
アセンブリ後のアセンブリ・ポリッシングは、下流のゲノム解析のためにアセンブリ品質を向上させるための一般的なアプローチである。現在のポリッシングアルゴリズムのほとんどは、Racon、Pilon、GCpp、CONSENTで使用されているように、Read-to-Assemblyアライメントに基づいてアセンブリエラーを修正する。また,POLCAやntEdit のように,k-merベースのアプローチを用いるアルゴリズムもある。NanopolishおよびMedakaのポリッシング方法は、特にオックスフォード・ナノポアのデータ用に設計されている。ほとんどのポリッシング方法は、小規模なエラーを修正することを目的としているが、効率的な評価方法がないため、大規模なポリッシングのパフォーマンスは不明のままになっている。また、これらのポリッシング手法は、哺乳類ゲノムのような大規模なゲノムに対しては、過剰な計算資源を必要とすることが多いという限界がある。
本著者らは,ハプロイドおよびdiploidゲノムのアセンブリ品質を総合的に評価し,アセンブリエラーを特定するためのInspectorを開発した.Inspectorは、リファレンスゲノムに頼るのではなく、ターゲットゲノムを最も忠実に表現している第3世代のシーケンスリードのみを用いてアセンブリを評価する。Inspectorは、minimap2を用いてシーケンシングリードをコンティグにアラインメントすることで、リードからコンティグへのアラインメントを生成し、下流のアセンブリ評価を行う(論文図1)。コンティグの連続性と完全性を評価するために、まず統計解析が行われる。構造的なアセンブリーエラーと小規模なアセンブリーエラーは,リード・ツー・コンティグ・アラインメントから特定され,エラーを含むリードの比率に基づいて,遺伝子変異と区別される.Inspectorには、特定されたエラーに対処してローカルアセンブリの品質を向上させる、ターゲットエラー修正モジュールが搭載されている。Inspectorの出力には、評価サマリーレポート、構造エラーのリスト、スモールスケールエラーのリスト、リードアラインメント、評価プロットが含まれる。
Our work, “Accurate long-read de novo assembly evaluation with Inspector” is online @GenomeBiology today. https://t.co/CRgqwDVeQo. Thanks my student Maggi’s hard work. And thanks Yixin, @AmyWangMD, and Min’s help to make it happen.
— Zechen Chong (@ZechenChong) November 15, 2021
インストール
依存
- python 2.7
- pysam
- statsmodels
- minimap2 (tested with version 2.10 and 2.15)
- samtools (tested with version 1.9)
Dependencies for Inspector error correction module:
- flye (tested with version 2.8.3)
#python2.7の環境を作って依存関係を導入
mamba create -n inspector python=2.7 -y
conda activate inspector
mamba install -c bioconda minimap2=2.15
mamba install -c bioconda samtools=1.9
mamba install -c bioconda pysam=0.16.0.1
mamba install -c anaconda statsmodels=0.10.1
mamba install -c bioconda flye=2.8.3
git clone https://github.com/Maggi-Chen/Inspector.git
cd Inspector/
./inspector.py -h
> ./inspector.py -h
usage: inspector.py [-h] -c contig.fa -r raw_reads.fastq -o output_dict/
de novo assembly evaluator
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
-c CONTIGFILE, --contig CONTIGFILE
assembly contigs in FASTA format
-r READ [READ ...], --read READ [READ ...]
sequencing reads in FASTA/FASTQ format
-d DATATYPE, --datatype DATATYPE
Input read type. (clr, hifi, nanopore) [clr]
-o OUTPATH, --outpath OUTPATH
output directory
--ref REF OPTIONAL reference genome in FASTA format
-t THREAD, --thread THREAD
number of threads. [8]
--min_depth MIN_DEPTH
minimal read-alignment depth for a contig base to be
considered in QV calculation. [20% of average depth]
--min_contig_length MIN_CONTIG_LENGTH
minimal length for a contig to be evaluated. [10000]
--min_contig_length_assemblyerror MIN_CONTIG_LENGTH_ASSEMBLYERROR
minimal contig length for assembly error detection.
[1000000]
--min_assembly_error_size MIN_ASSEMBLY_ERROR_SIZE
minimal size for assembly errors. [50]
--max_assembly_error_size MAX_ASSEMBLY_ERROR_SIZE
maximal size for assembly errors. [4000000]
--noplot do not make plots
--skip_read_mapping skip the step of mapping reads to contig.
--skip_structural_error
skip the step of identifying large structural errors.
--skip_structural_error_detect
skip the step of detecting large structural errors.
--skip_base_error skip the step of identifying small-scale errors.
--skip_base_error_detect
skip the step of detecting small-scale errors from
pileup.
> ./inspector-correct.py
usage: inspector-correct.py [-h] -i inspector_out/ --datatype pacbio-raw
Assembly error correction based on Inspector assembly evaluation
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-i INSPECTOR, --inspector INSPECTOR
Inspector evaluation directory. Original file names
are required.
--datatype DATATYPE Type of read used for Inspector evaluation. This
option is required for structural error correction
when performing local assembly with Flye. (pacbio-raw,
pacbio-hifi, nano-raw,pacbio-corr, nano-corr)
-o OUTPATH, --outpath OUTPATH
output directory
--skip_structural Do not correct structural errors. Local assembly will
not be performed.
--skip_baseerror Do not correct base errors.
-t THREAD, --thread THREAD
number of threads
テストラン
ヒトゲノムアセンブリのサブセットのデータ。2つのコンティグと、その配列に属する約60XのPacBio HiFiリードが含まれている。このデータセットには、3つの構造的エラーと281の小規模なエラーが含まれている。
1、inspector.pyの実行。コンティグのFASTA形式ファイル、ロングリードとそのタイプ(clr, hifi, nanopore)、出力ディレクトリを指定する。
cd Inspector/
./inspector.py -c testdata/contig_test.fa -r testdata/read_test.fastq.gz -o test_out/ -t 20 --datatype hifi
- -c assembly contigs in FASTA format
- -r sequencing reads in FASTA/FASTQ format
- -o output directory
- -t number of threads. [8]
- -d Input read type. (clr, hifi, nanopore) [clr]
出力例
test_out/summary_statistics
2、エラー修正
アセンブリの精度を向上させるためのエラー修正モジュールが利用できる。inspector.pyの出力ディレクトリとリードタイプを指定する。
./inspector-correct.py -i test_out/ --datatype pacbio-hifi
contig_corrected.faが出力される。テストデータではエラーを起こしたが、上手くランできるデータもあった。再現性は不明。
- エラー修正では高精度のリードの使用が推奨されている。1のinspector.pyでは複数のシークエンシングプラットフォームのリードの混合使用が可能だが、2のエラー修正では、単一プラットフォームからのリードのみがサポートされている。
レポジトリには出力されるファイルの詳細と実際のコマンド例がいくつか挙げられています。アクセスしてみて下さい。
引用
Accurate long-read de novo assembly evaluation with Inspector
Yu Chen, Yixin Zhang, Amy Y. Wang, Min Gao & Zechen Chong
Genome Biology volume 22, Article number: 312 (2021)
関連