次世代シーケンサーデータのin silicoシミュレーションは、ゲノミクス分野で広く用いられている手法である。しかし、DNAまたはRNA分子を時系列電流シグナルデータの形で測定する「第3世代」ナノポアシーケンス装置からのシミュレーションデータを作成するための最適なツールは、現在のところ不足している。ここでは、現実的なナノポアシグナルデータのシミュレーションのための高速でシンプルなツール、Squigulatorを紹介する。Squigulatorは、リファレンスゲノム、トランスクリプトーム、またはリード配列を受け取り、対応する生のナノポアシグナルデータを生成する。これは、Oxford Nanopore Technologies (ONT)のベースコール・ソフトウェアやその他のサードパーティ製ツールと互換性があり、ナノポア解析手法のテスト、デバッグ、検証、最適化に有用な基盤を提供する。ユーザーは、ノイズのない「理想的な」データ、特定のONTプロトコルをエミュレートしたノイズプロファイルを持つ現実的なデータ、あるいはノイズパラメータやその他の変数を決定論的に変更して、データをニーズに合わせて形成することができる。Squigulatorの有用性を強調するために、Squigulatorを用いて、様々なタイプのノイズがONTベースコールとダウンストリームのバリアント検出の精度にどの程度影響を与えるかをモデル化し、ONTデータの特性に関する新たな洞察を明らかにした。Squigulatorは、ナノポアコミュニティのためのオープンソースツールとして提供している。
manual
https://github.com/hasindu2008/squigulator/blob/main/docs/man.md
インストール
リリースからlinux向けバイナリv.0.2.0をダウンロードしてテストした。
wget https://github.com/hasindu2008/squigulator/releases/download/v0.2.0/squigulator-v0.2.0-x86_64-linux-binaries.tar.gz
tar -zxvf squigulator-v0.2.0-x86_64-linux-binaries.tar.gz
cd quigulator-v0.2.0-x86_64-linux-binaries/
> ./squigulator
$ ./squigulator
Usage: squigulator [OPTIONS] ref.fa -o out_signal.blow5
basic options:
-o FILE SLOW5/BLOW5 file to write
-x STR parameter profile (always applied before
other options) [dna-r9-prom]
e.g., dna-r9-min, dna-r9-prom,
rna-r9-min, rna-r9-prom, dna-r10-min, dna-r10-prom
-n INT number of reads to simulate [4000]
-r INT mean read length (estimate only, unused
for direct RNA) [10000]
-f INT fold coverage to simulate (incompatible with -n)
-t INT number of threads [8]
-h help
--ideal generate ideal signals with no noise
--version print version
--verbose INT verbosity level [4]
--full-contigs generate signals for complete contigs
(incompatible with -n, -r and -n)
advanced options:
-K INT batch size (max number of reads created
at once) [1000]
-q FILE FASTA file to write simulated reads with no errors
-c FILE PAF file to write the alignment of simulated reads
-a FILE SAM file to write the alignment of simulated reads
--ideal-amp generate signals with no amplitiude domain noise
--ideal-time generate signals with no time domain noise
--amp-noise FLOAT amplitude domain noise factor [1.0]
--dwell-mean FLOAT mean of number of signal samples per base [9.0]
--dwell-std FLOAT standard deviation of number of signal
samples per base [4.0]
--bps INT translocation speed in bases per second
(incompatible with --dwell-mean) [444]
--kmer-model FILE custom nucleotide k-mer model file
(format similar to
--prefix=yes|no generate prefixes such as adaptor (and
polya for RNA) [no]
--seed INT seed or random generators (if 0, will be
autogenerated) [0]
--paf-ref in paf output, use the reference as the
target instead of read (needs -c)
developer options (not much tested yet):
--digitisation FLOAT ADC digitisation [2048.0]
--sample-rate FLOAT ADC sampling rate [4000.0]
--range FLOAT ADC range [748.6]
--offset-mean FLOAT ADC offset mean [-237.4]
--offset-std FLOAT ADC offset standard deviation [14.2]
実行方法
リファレンス配列と出力、リード数を指定する。デフォルトではDNA PromethIONリード(R9.4.1)がシミュレートされる。変更するには-xで指定する。DNAとRNAそれぞれ、MinIONとPromethIONのR9.4.1フローセルとR10.4.1フローセルが指定できる。リファレンス配列については、DNAの場合はゲノムのfastaファイルを指定する。RNA(トランスクリプトーム)の場合はトランスクリプトームのfastaファイルを指定する。
squigulator ref_genome.fa -o out_signal.blow5 -n 10000 -t 8
- -n number of reads to simulate [4000]
- -o SLOW5/BLOW5 file to write
- -x parameter profile (always applied before other options) [dna-r9-prom] e.g., dna-r9-min, dna-r9-prom, rna-r9-min, rna-r9-prom, dna-r10-min, dna-r10-prom
-
-f fold coverage to simulate (incompatible with -n)
-
-t number of threads [8]
レポジトリより
- Buttery-eelと呼ばれるSLOW5のGuppyラッパーやdorado basecallerの本著者らのフォークを使って、BLOW5フォーマットから直接ベースコールできる。FAST5が良いなら、slow5toolsを使ってBLOW5をFAST5に変換し、オリジナルのGuppy basecallerを使うことができる。
- squigulatorは現在開発中で、インターフェースの変更やデフォルトパラメーターの変更があるかもしれない(2023/06/26時点)。
-
squigulatorを使ってヒトゲノムから100,000リード(~1Gbase)を生成するには、~3GBのRAM(8CPUスレッド)で~5分かかる。ヒトゲノムから~30倍(~9Mリード、~90G塩基)を32CPUスレッドで生成する場合、squigulatorは~1時間かかる。
-
リードは変異/バリアントなしでシミュレートされる。シミュレーションデータにバリアントを入れたい場合は、まずbcftoolsを使ってリファレンスにバリアントセットを適用し、それをsquigulatorの入力として使う(レポジトリに例あり)。
コメント
レポジトリでは様々な使用例が記載されています。--full-contigsオプションを使ってベースコールされたリードからシミュレーションすることもできるようです。リファレンスゲノムを使って1万リードシミュレートすると数分しかかかりませんでした(出力はBLOW5)。
引用
Squigulator: simulation of nanopore sequencing signal data with tunable noise parameters
Hasindu Gamaarachchi, James M. Ferguson, Hiruna Samarakoon, Kisaru Liyanage, Ira W. Deveson
bioRxiv, osted May 10, 2023
関連