2021 2/2 追記
COVID-19 パンデミックを契機に,コロナウイルス研究への関心が高まっている.コロナウイルスデータセットの解析は、リードアラインメントまたはde novo assemblyを用いて完全長ウイルスゲノム配列を得ることから始まる。リードアラインメントに基づくアセンブリパイプラインは、例えばCOVID-19患者のSARS-CoV-2 SNPプロファイリングなど、近縁種の同一株に対して選択されるツールである。遠い種のためのリードアラインメントは信頼性が低いので、de novoアセンブリは、新規種の回収により適している。最近では、MEGAHITアセンブラを用いてSARS-CoV-2ゲノムの全長配列を復元した研究が複数ある。しかし、これまでの研究では、異なるSPAdesのモードでもウイルスの回収に成功していることが示されている[ref.6]。しかし、これらのアセンブラはいずれも、一般的なウイルスアセンブリ、特にコロナウイルス科の種の回収を目的として設計されたものではなかった。MEGAHITとmetaSPAdesはメタゲノムアセンブラであり、SPAdesはシングルセルおよび単離された細菌のデータセットをアセンブルするように設計されている。これらのアセンブラはすべて、シーケンスのアーチファクト、カバレッジのばらつき、宿主の汚染、複数株の存在、コロナウイルスのスプライスイベントのために、断片的なアセンブラを生成する。ウイルスデータセットの迅速かつ正確な特性評価は、将来のアウトブレイクを予測し、予防する上で重要なステップとなる可能性がある。コロナウイルスは保存された遺伝子構造を持っており[ref.10]、完全長ゲノムをより良くアセンブリするのに役立つ可能性がある。本研究では、coronaSPAdesを紹介する。coronaSPAdesは、既存のSPAdes[ref.11]モード(metaSPAdes[ref.7]、rnaSPAdes[ref.12]、metaviralSPAdes[ref.13])からアルゴリズムのアイデアを借用しており、biosyntherticSPAdes[ref.14]から着想を得たHMMガイドアセンブリを含む。本研究では、coronaSPAdesが、他の一般的なアセンブラが断片的なアセンブラを生成するような公開データから、新規な完全長ゲノムを復元できることを示す。
Githubより
コロナウイルス研究への関心の高まりを受けて、SPAdesアセンブラのためのコロナウイルスアセンブルモード(別名coronaSPAdes)を開発した。これにより、トランスクリプトームおよびメタトランスクリプトームデータからコロナウイルス科の完全長ゲノムをアセンブルすることができる。アルゴリズム的には、coronaSPAdesは、Pfam SARS-CoV-2 2.0セットからのHMMのセットと、(Phan et al, 2019)によって概説された追加のHMMのセットを使用するrnaviralSPAdesである。
Our new method for the recovery of RNA viruses (e.g. Coronaviruses) [led by incomparable @meleshko_da and @akorobeynikov] coronaSPAdes: from biosynthetic gene clusters to RNA viral assemblies https://t.co/EY2qmbhLhF
— Iman Hajirasouliha (@hajirasouliha) 2021年2月1日
インストール
#3.15.0 linux binary
wget http://cab.spbu.ru/files/release3.15.0/SPAdes-3.15.0-Linux.tar.gz
tar -xzf SPAdes-3.15.0-Linux.tar.gz
cd SPAdes-3.15.0-Linux/bin/
#darwin(mac) binary
curl http://cab.spbu.ru/files/release3.15.0/SPAdes-3.15.0-Darwin.tar.gz -o SPAdes-3.15.0-Darwin.tar.gz
tar -zxf SPAdes-3.15.0-Darwin.tar.gz
cd SPAdes-3.15.0-Darwin/bin/
> ./coronaspades.py
$ ./coronaspades.py
SPAdes genome assembler v3.15.0 [rnaviralSPAdes mode]
Usage: spades.py [options] -o <output_dir>
Basic options:
-o <output_dir> directory to store all the resulting files (required)
--iontorrent this flag is required for IonTorrent data
--test runs SPAdes on toy dataset
-h, --help prints this usage message
-v, --version prints version
Input data:
--12 <filename> file with interlaced forward and reverse paired-end reads
-1 <filename> file with forward paired-end reads
-2 <filename> file with reverse paired-end reads
-s <filename> file with unpaired reads
--merged <filename> file with merged forward and reverse paired-end reads
--pe-12 <#> <filename> file with interlaced reads for paired-end library number <#>.
Older deprecated syntax is -pe<#>-12 <filename>
--pe-1 <#> <filename> file with forward reads for paired-end library number <#>.
Older deprecated syntax is -pe<#>-1 <filename>
--pe-2 <#> <filename> file with reverse reads for paired-end library number <#>.
Older deprecated syntax is -pe<#>-2 <filename>
--pe-s <#> <filename> file with unpaired reads for paired-end library number <#>.
Older deprecated syntax is -pe<#>-s <filename>
--pe-m <#> <filename> file with merged reads for paired-end library number <#>.
Older deprecated syntax is -pe<#>-m <filename>
--pe-or <#> <or> orientation of reads for paired-end library number <#>
(<or> = fr, rf, ff).
Older deprecated syntax is -pe<#>-<or>
--s <#> <filename> file with unpaired reads for single reads library number <#>.
Older deprecated syntax is --s<#> <filename>
--mp-12 <#> <filename> file with interlaced reads for mate-pair library number <#>.
Older deprecated syntax is -mp<#>-12 <filename>
--mp-1 <#> <filename> file with forward reads for mate-pair library number <#>.
Older deprecated syntax is -mp<#>-1 <filename>
--mp-2 <#> <filename> file with reverse reads for mate-pair library number <#>.
Older deprecated syntax is -mp<#>-2 <filename>
--mp-s <#> <filename> file with unpaired reads for mate-pair library number <#>.
Older deprecated syntax is -mp<#>-s <filename>
--mp-or <#> <or> orientation of reads for mate-pair library number <#>
(<or> = fr, rf, ff).
Older deprecated syntax is -mp<#>-<or>
--hqmp-12 <#> <filename> file with interlaced reads for high-quality mate-pair library number <#>.
Older deprecated syntax is -hqmp<#>-12 <filename>
--hqmp-1 <#> <filename> file with forward reads for high-quality mate-pair library number <#>.
Older deprecated syntax is -hqmp<#>-1 <filename>
--hqmp-2 <#> <filename> file with reverse reads for high-quality mate-pair library number <#>.
Older deprecated syntax is -hqmp<#>-2 <filename>
--hqmp-s <#> <filename> file with unpaired reads for high-quality mate-pair library number <#>.
Older deprecated syntax is -hqmp<#>-s <filename>
--hqmp-or <#> <or> orientation of reads for high-quality mate-pair library number <#>
(<or> = fr, rf, ff).
Older deprecated syntax is -hqmp<#>-<or>
--sanger <filename> file with Sanger reads
--pacbio <filename> file with PacBio reads
--nanopore <filename> file with Nanopore reads
--trusted-contigs <filename>
file with trusted contigs
--untrusted-contigs <filename>
file with untrusted contigs
Pipeline options:
--checkpoints <last or all>
save intermediate check-points ('last', 'all')
--continue continue run from the last available check-point (only -o should be specified)
--restart-from <cp> restart run with updated options and from the specified check-point
('as', 'k<int>', 'last')
--disable-gzip-output forces error correction not to compress the corrected reads
--disable-rr disables repeat resolution stage of assembling
Advanced options:
--dataset <filename> file with dataset description in YAML format
-t <int>, --threads <int> number of threads. [default: 16]
-m <int>, --memory <int> RAM limit for SPAdes in Gb (terminates if exceeded). [default: 250]
--tmp-dir <dirname> directory for temporary files. [default: <output_dir>/tmp]
-k <int> [<int> ...] list of k-mer sizes (must be odd and less than 128)
[default: 'auto']
--phred-offset <33 or 64> PHRED quality offset in the input reads (33 or 64),
[default: auto-detect]
--custom-hmms <dirname> directory with custom hmms that replace default ones,
[default: None]
実行方法
シークエンシングリードを指定する。
coronaspades.py -1 pair_R1.fq.gz -2 pair_R1.fq.gz -o assembly -t 8
- -1 file with forward paired-end reads
- -2 file with reverse paired-end reads
- -s file with unpaired reads
- -o directory to store all the resulting files
- -t number of threads. [default: 16]
テスト
SRAに公開されているSARS-CoV-2のWGSシークエンシングデータを1つダウンロードしてテストしてみた。SPAdesデフォルトのアセンブリとCoronaSPAdesのアセンブリをランして、出力されたcontigの統計を調べる。
> seqkit stats *result/contigs.fasta
coronaSPAdes アセンブリの最大長は29,891だった。NCBIに登録されているリファレンスは29,903-bpなので、全長再構成に成功していると推定される。アセンブリされた配列に接続ミスまたはlarge indelが見られないか、リファレンスにアラインしてIGVで見てみた。
上半分はアセンブリに使ったリードのリファレンスNC_045512.2へのマッピング結果(BWA mem使用)。赤はフォワードマッピングのリード、青はリバースマッピングのリードを表す。設定からリード表示量を減らしているが、カバレッジは1000−3000程度あり、ゼロカバレッジの領域は存在しない。その下はcoronaSPAdesで得られたcontig.fastaのリファレンスへのマッピング結果。一番下がオリジナルのSPAdesのcontig.fastaのリファレンスへのマッピング結果。coronaSPAdesではオリジナルのSPAdesと比べて連続性が大幅に改善されている(アセンブリ時のパラメータはデフォルト設定)。
引用
coronaSPAdes: from biosynthetic gene clusters to RNA viral assemblies
Dmitrii Meleshko, Iman Hajirasouliha, Anton Korobeynikov
bioRxiv preprint ; this version posted July 28, 2020
bioRxiv preprint ; Posted February 01, 2021
関連
2021/04