ゲノムのde novoアセンブリの一般的な方法は、de Bruijnグラフ(論文より Compeau、Pevzner&Tesler、2011)の構築に基づく。最も単純なケースでは、グラフはシングルエンドリードから構成されるが、シングルエンドのリードだけでは、de Bruijnグラフをもつれさせるリピート領域を解消することは困難である。Illumina Nextera mate pair(Illumina、2012)など、数キロベースの大きな挿入サイズのペアエンドシーケンスはリピート領域のアセンブルに有用である。アセンブリは、通常、2段階プロセスで行われる。まず、コンティグが構築される。次にコンティグがそれ以上伸長できなくなると、スキャフォールディングアルゴリズムは、コンティグの順序および近似ギャップサイズを決定するためにインサートサイズ情報を用いて複数のコンティグを連結させようとする。多くのアセンブラーは、コンティグのアセンブリプロセスとスキャフォールディングのプロセスの両方に、またはスキャフォールディングにメイトペアのインサートサイズ情報を組み込むが、エラーは引き続き発生する。最も重大な間違いは、ゲノムの2つの異なる領域が結合した大規模な伸長エラーである(論文 図1A)。同様に、large indelはde novoアセンブリで構造的な不規則性を作り出し、塩基レベルの誤りはそのポジションのみにエラーを導入する。
de novoアセンブリのエラーは、アセンブルされたゲノムの品質に大きな影響を与える可能性があり、de novoアセンブリのエラー修正および品質評価は、かなりの注目されている問題である。 Assemblathon(Bradnam et al。、2013)やGAGE(Salzberg et al。、2012)などのアセンブラコンペティションでは、様々なアセンブラで作成された配列のクオリティをリファレンスゲノムと比較している。しかしながら、高品質のリファレンスがない場合、この方法は使えない。 Ghodsi et al(2013)は、参照ゲノムを必要とせずに、アセンブリクオリティスコアを計算するベイジアンアセンブリ品質評価方法を開発した。ただし、これは品質のスコアのみを出力し、エラーや低クオリティの領域を識別するために使用することはできない。最近の論文では、エラーの特定と修正方法が開発されており、アセンブリの品質をきめ細かく分析している。最もよく知られているものは、A5アセンブリパイプライン(Coil、Jospin&Darling、2014; Tritt et al。、2012)で、A5にはメイトペア情報を利用するエラー検出と再スケーリングのステップが含まれている。REAPR(Hunt et al。、2013)とALE(Clark et al。、2013)も開発されたが、これらの新しいツールはメイトペア情報を使用するように最適化されていない。
NxRepairは、Nextraのメイトペアのインサートサイズの分布を調べることで、最も重大なアセンブリの誤りであるスキャホールディングの誤りを特定できるアセンブリエラー検出ツール。異常なインサートサイズが多い領域を特定するか、またはリードが非常に少ない領域を特定し、スキャホールドを切断し、任意でトリミングも実行する。
http://nxrepair.readthedocs.io/en/latest/tutorial.html#running-nxrepair
インストール
依存
- scipy
- numpy
- matplotlib
- pysam
pipで導入できる。
pip install numpy
pip install scipy
pip install matplotlib
pip install pysam
本体
git clone https://github.com/rebeccaroisin/nxrepair
cd nxrepair/nxrepair/
python nxrepair.py -h #ヘルプ
$ python nxrepair.py -h
usage: nxrepair.py [-h] [-min_size min_size] [-img_name img_name] [-trim trim]
[-T T] [-step_size step_size] [-window window]
[-minmapq minmapq] [-maxinsert maxinsert]
[-fraction fraction] [-prior prior]
bam fasta outfile newfasta
Routine to identify and correct large-scale misassemblies in de novo
assemblies
positional arguments:
bam bam
outfile Output file name
newfasta Fasta file for new contigs, including filepath
optional arguments:
-h, --help show this help message and exit
-min_size min_size Minimum contig size to analyse
-img_name img_name Name under which to save (optional) graphs of
alignment quality. Default value: None (no graphs
produced)
-trim trim Number of bases to trim from each side of an
identified misassembly. Default value: 5000
-T T Threshold in Z score below which a misassembly is
called. Default value: -4.0
-step_size step_size Step-size in bases to traverse contigs. Default value:
1000
-window window Window size across which bridging mate pairs are
evaluated. Default value: 200
-minmapq minmapq Minimum MapQ value, above which a read pair is
included in calculating population statistics. Default
value: 40
-maxinsert maxinsert Maximum insert size, below which a read pair is
included in calculating population statistics. Default
value: 30000
-fraction fraction Minimum fraction of read pairs with correct
orientation to call support for the assembly. Default
value: 0.75
-prior prior Prior probablility that the insert size is anomalous.
Default value: 0.01
ラン
ランには、メイトペアのfastqをアセンブルしたfastaにアライメントして得たbamファイルが必要となる。bamが準備できたら、アセンブルのfastaと出力のファイル名も指定してコマンドを打つ。
python nxrepair.py smatepairs.bam assembly.fasta error_locations.csv new_fasta.fasta
- -img_name img_name Name under which to save (optional) graphs of alignment quality. Default value: None (no graphs produced)
- -min_size min_size Minimum contig size to analyse (default: 10000)
エラーを記載したCSVと、エラーが修正されたfastaファイルが出力される。
引用
NxRepair: error correction in de novo sequence assembly using Nextera mate pairs
Rebecca R. Murphy, Jared O’Connell, Anthony J. Cox, and Ole Schulz-Trieglaff
PeerJ. 2015; 3: e996.