macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

ノイズパラメータを調整可能なナノポアシーケンスシグナルデータのシミュレーター squigulator

 

 次世代シーケンサーデータの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をダウンロードしてテストした。

Github

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

https://github.com/hasindu2008/f5c/blob/master/test/r9-models/r9.4_450bps.nucleotide.6mer.template.model)

   --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

 

関連