macでインフォマティクス

macでインフォマティクス

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

SPAdesのアセンブリを改善する Shovill

 

 SPAdesゲノムアセンブラは、バクテリアや他の真核微生物(主に1倍体)のIlluminaホールゲノムシーケンシング(WGS)データのデファクトスタンダードアセンブラとなっている。 SPAdesはVelvetのような以前のアセンブラーよりも大幅に改善されているが、計算集約的なde novo assemblyのステップを繰り返し行うため、実行速度が非常に遅く、またオーバーラップしたペアエンドリード(interlaceのfastq)をうまく扱えない。

 Shovillは、コアでSPAdesを使用するパイプラインだが、プライマリアセンブリステップの前後のステップを変更して、短時間で同様の結果を得ることができる。Shovillは、SKESAやMegahit(紹介)のような他のアセンブラもサポートしているので、Shovillが提供する前処理と後処理を利用することもできる。

 

以下の手順でアセンブリが実行される。

 

  • Estimate genome size and read length from reads (unless --gsize provided)
  • Reduce FASTQ files to a sensible depth (default --depth 100)
  • Trim adapters from reads (with --trim only)
  • Conservatively correct sequencing errors in reads
  • Pre-overlap ("stitch") paired-end reads
  • Assemble with SPAdes/SKESA/Megahit with modified kmer range and PE + long SE reads
  • Correct minor assembly errors by mapping reads back to contigs
  • Remove contigs that are too short, too low coverage, or pure homopolymers
  • Produce final FASTA with nicer names and parseable annotations

シングルエンドのfastqはサポートしていない。データはilluminaのシーケンスデータのみ利用できる。

 

 

インストール

centos7のAnaconda 2.1.0でテストした(pyenvで管理)。

依存

  • SPAdes >= 3.11
  • SKESA
  • MEGAHIT
  • Velvet >= 1.2
  • Lighter
  • FLASH
  • SAMtools >= 1.3
  • BWA MEM
  • MASH >= 2.0
  • seqtk
  • pigz
  • Pilon (Java)
  • Trimmomatic (Java)

brewかcondaで本ツールをインストールすれば、依存は全て導入されます。

本体 Github

#brew
brew install brewsci/bio/shovill

#またはAnaconda等の環境なら
conda -c bioconda install shovill

#他にdockerコンテナも用意されています。
#
shovill --check

$ shovill --check

Using seqtk - /usr/local/bin/seqtk

Using pigz - /usr/local/bin/pigz

Using kmc - /usr/local/bin/kmc

Using trimmomatic - /usr/local/bin/trimmomatic

Using lighter - /usr/local/bin/lighter

Using flash - /usr/local/bin/flash

Using spades.py - /usr/local/bin/spades.py

Using bwa - /usr/local/bin/bwa

Using samtools - /usr/local/bin/samtools

Using java - /usr/bin/java

Using pilon - /usr/local/bin/pilon

Using tee - /usr/bin/tee

Using sysctl - /usr/sbin/sysctl

パスが全て通っているか確認する。

shovill

$ shovill

Synopsis:

  Faster de novo assembly pipeline based around Spades

Usage:

  shovill [options] --outdir DIR --R1 R1.fq.gz --R2 R2.fq.gz

Author:

  Torsten Seemann <torsten.seemann@gmail.com>

Options:

  --help          This help

  --version       Print version and exit

  --check         Check dependencies are installed

  --debug         Debug info (default: OFF)

  --cpus N        Number of CPUs to use (default: 8)

  --outdir XXX    Output folder (default: '')

  --namefmt XXX   Format of contig FASTA IDs in 'printf' style (default: 'contig%05d')

  --force         Force overwite of existing output folder (default: OFF)

  --R1 XXX        Read 1 FASTQ (default: '')

  --R2 XXX        Read 2 FASTQ (default: '')

  --depth N       Sub-sample --R1/--R2 to this depth. Disable with --depth 0 (default: 100)

  --gsize XXX     Estimated genome size <blank=AUTODETECT> (default: '')

  --kmers XXX     K-mers to use <blank=AUTO> (default: '')

  --opts XXX      Extra SPAdes options eg. --plasmid --sc ... (default: '')

  --nocorr        Disable post-assembly correction (default: OFF)

  --trim          Use Trimmomatic to remove common adaptors first (default: OFF)

  --trimopt XXX   Trimmomatic options (default: 'ILLUMINACLIP:/usr/local/Cellar/shovill/0.9.0/bin/../db/trimmomatic.fa:1:30:11 LEADING:3 TRAILING:3 MINLEN:30 TOPHRED33')

  --minlen N      Minimum contig length <0=AUTO> (default: 1)

  --mincov n.nn   Minimum contig coverage <0=AUTO> (default: 2)

  --asm XXX       Spades result to correct: before_rr contigs scaffolds (default: 'contigs')

  --tmpdir XXX    Fast temporary directory (default: '/var/folders/g_/0s_kyx156471b0hb4n_b_g2r0000gn/T/')

  --ram n.nn      Try to keep RAM usage below this many GB (default: 8)

  --keepfiles     Keep intermediate files (default: OFF)

Documentation:

  https://github.com/tseemann/shovill

 

 

ラン

テストデータのラン。

git clone https://github.com/tseemann/shovill.git
cd shovill/

#実行
shovill --outdir shovill_output --R1 test/R1.fq.gz --R2 test/R2.fq.gz --ram 8 --cpus 8
  • --cpus       Number of CPUs to use (default: 8)
  • --ram         Try to keep RAM usage below this many GB (default: 8)
  • --outdir      Output folder (default: '')
  • --R1           Read 1 FASTQ (default: '')

  • --R2           Read 2 FASTQ (default: '')

 

out/に結果は出力される。

> ls -alh

f:id:kazumaxneo:20180624111908j:plain

デフォルトではk-merサイズはautoになる。test logを見ると31から111まで20きざみになっている。k-merのサブディレクトリは残らない。logを貼っておく。

f:id:kazumaxneo:20180624112710j:plain

最後にbwa memでmappingしてbamを作り、pilonでpolishしている。

 

bacteraのアセンブリデータをSPAdesのアセンブリデータと比較した。下はQUESTのアセンブリ評価metrics。オリジナルのSPAdes 3.11よりcontiguityがわずかに改善されている。これに伴い、contig数は144から125まで減少した。

f:id:kazumaxneo:20180624113735j:plain

 

引用

GitHub - tseemann/shovill: Faster SPAdes assembly of Illumina reads