メタゲノムをシミュレートするには、ゲノムごとのインサートサイズや増幅biasなどを考慮する必要があり、厳密に行うと計算が複雑になる。また計算リソースも高度に要求される。そのためGPUを使ったシミュレーションツールなども登場している。それに加えて、野外の真のメタゲノムでは1000を超える種がシーケンスされるとも言われている。また環境によって違いが大きすぎるので(=例外が多すぎる)、腸内細菌叢のような限定された環境でない限り、シミュレーション自体あまり意味がないとも言える。そのためか、メタゲノムをシミュレーション可能な方法論はまだほとんど報告されていない。
ただしメタゲノムのツールの簡単な検証をするだけならば、菌のバイオマスの差を反映できるシミュレーションツールで十分とも言える。それを叶えるツールとして、BBMapの機能の1つrandomreads.shがある。randomreads.shは配列のシミュレーションを行うスクリプトであるが、snpsやindelをランダムに発生させるオプションを持つ。また、metagenomeフラグをつけて走らせることで菌ごとにカバレッジを対数ランダムにふってリードを発生させることもでき、メタゲノムシミュレーションに最低限必要な機能を満たしている。BBMapを使ってメタゲノムをシミュレートする流れをまとめておく。
インストール
以前紹介した時に書いています。
ラン
catなどでコンカテネートしたfastaを作る。
cat refA.fa refB.fa refC.fa > refABC.fa
150-bpのペアリードを一千万リード発生させる。
randomreads.sh ref=refABC.fa length=150 paired reads=10000000 metagenome
- out Output file. If blank, filename(s) will be autogenerated.
- ref Reference file. Not needed if the reference is already indexed.
- reads Generate this many reads (or pairs).
- paired Set to true for paired reads.(default f).
- length Generate reads of exactly this length.(default 100).
- metagenome Assign scaffolds a random exponential coverage level, to simulate a metagenomic or RNA coverage distribution.
- interleaved Set to true for interleaved output (rather than in two files) (default f).
- coverage If positive, generate enough reads to hit this coverage
対数分布なので、十分なカバレッジを与えたと思っていても、カバレッジがほとんどないような クロモソームもできる。
リアルデータとしては、metabatの擬似メタデータが利用できます。"既知"の25サンプルを混ぜ込んでランされた答え合わせが可能なデータです。metabatのマニュアルからダウンロードできるのはbamとアセンブルされたfasta配列です。2ライブラリ分あります。
=> リンク
リアルデータのメタゲノムが必要なら、例えば
https://www.ncbi.nlm.nih.gov/Traces/study/?acc=SRP013413g
が利用できます。すでに論文になったデータです。
http://madsalbertsen.github.io/multi-metagenome/
引用
Biostars
https://www.biostars.org/p/235160/
How to generate random short reads from a reference genome [Archive] - SEQanswers