macでインフォマティクス

macでインフォマティクス

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

ハイブリッドアセンブルを行うUnicycler

 

 Unicyclerはショートリードのde novo asssembly、ロングリードのde novo asssembly、ショートリードとロングリードを両方使ったハイブリッドのde novo asssemblyに対応したアセンブルパイプライン。単離されたバクテリア向けに設計されており、真核生物のゲノムやメタゲノムには対応していない。

 ショートリードからアセンブルのグラフを構築するために、内部でspadesを使用している。この時、Unicyclerはspadesのオプチマイザーとして機能する。具体的には、幅広いk-merを試し、dead-endとcontig数が両方とも最も少なくなる条件でアセンブルを行う。そのため、ショートリードだけのアセンブルでも、spadesよりパフォーマンスが上がる可能性がある。ロングリードだけを使ったアセンブルでは、内部でminiasmとraconが動く。miniasmでアセンブルすると、contigのエラー率は元のロングリードと同じくらいになるが、raconでくりかしpolishすることでエラーを取り除いている。

  Unicylcerの出力は、fastaとgfaファイルの両方で出力される。gfaはアセンブル情報を全て記載できるフォーマットであり、そのため、gfaの情報だけでbandageに読み込んでグラフパスを可視化することができる。また、Unicyclerはcontig末端の配列を刈り込むため、spadesのように末端にk-merサイズの重複ができることがない。そのためより正確にアセンブルの状態を把握することができる。

 

インストール

追記

11/16 brewで導入できるようになりました。

brew install unicycler

 

依存

  • Linux or macOS
  • Python 3.4 or later
  • C++ compiler with C++14 support:
    • GCC 4.9.1 or later
    • Clang 3.5 or later
    • ICC also works (though I don't know the minimum required version number)
  • setuptools (only required for installation of Unicycler)
  • For short-read or hybrid assembly:
    • SPAdes v3.6.2 or later (spades.py)
  • For long-read or hybrid assembly:
  • For polishing
  • For rotating circular contigs:
    • BLAST+ (makeblastdb and tblastn)

依存するものが多いが、spades、racon、pilon、samtools、bowtie2、blast+あたりはbrewで導入できる。raconはbrewで導入できるバージョンが古いので、gitから 直接インストールする。

git clone https://github.com/isovic/racon.git && cd racon && make modules && make tools && make -j 

 

python3.4環境を想定しているので、python2環境しかない人は、pyenvなどでpythonのバージョンを切り替えできるようにしておくと楽である。GCC4.9.1以降を使うため。、mac OSX標準のLLVMだとビルドできなない。一時的にGCCに切り替えてビルドした(参考にしたページ)。GCCのバージョンは

gcc --version

でチェックできる。

 

本体 Github

https://github.com/rrwick/Unicycler#spades-assembly

git clone https://github.com/rrwick/Unicycler.git
cd Unicycler
python3 setup.py install #GCCに切り替えてビルド

macOS10.11、10.12に加え、ubuntu14.04でもビルドできることを確認した(python3.4.0)。

 

テストランして、依存が全て揃っているか確認する。

f:id:kazumaxneo:20171026133944j:plain

ubuntuではjavaが古いと言われた。ここを参考にjava8にアップデートするとgoodになった。

unicycler -h

usage: unicycler [-h] [--help_all] [--version] [-1 SHORT1] [-2 SHORT2] [-s UNPAIRED] [-l LONG] -o OUT [--verbosity VERBOSITY] [--min_fasta_length MIN_FASTA_LENGTH] [--keep KEEP] [-t THREADS] [--mode {conservative,normal,bold}] [--linear_seqs LINEAR_SEQS] [--vcf]

 

       __

       \ \___

        \ ___\

        //

   ____//      _    _         _                     _

 //_  //\\    | |  | |       |_|                   | |

//  \//  \\   | |  | | _ __   _   ___  _   _   ___ | |  ___  _ __

||  (O)  ||   | |  | || '_ \ | | / __|| | | | / __|| | / _ \| '__|

\\    \_ //   | |__| || | | || || (__ | |_| || (__ | ||  __/| |

 \\_____//     \____/ |_| |_||_| \___| \__, | \___||_| \___||_|

                                        __/ |

                                       |___/

 

Unicycler: an assembly pipeline for bacterial genomes

 

Help:

  -h, --help                           Show this help message and exit

  --help_all                           Show a help message with all program options

  --version                            Show Unicycler's version number

 

Input:

  -1 SHORT1, --short1 SHORT1           FASTQ file of first short reads in each pair (required)

  -2 SHORT2, --short2 SHORT2           FASTQ file of second short reads in each pair (required)

  -s UNPAIRED, --unpaired UNPAIRED     FASTQ file of unpaired short reads (optional)

  -l LONG, --long LONG                 FASTQ or FASTA file of long reads (optional)

 

Output:

  -o OUT, --out OUT                    Output directory (required)

  --verbosity VERBOSITY                Level of stdout and log file information (default: 1)

                                         0 = no stdout, 1 = basic progress indicators, 2 = extra info, 3 = debugging info

  --min_fasta_length MIN_FASTA_LENGTH  Exclude contigs from the FASTA file which are shorter than this length (default: 100)

  --keep KEEP                          Level of file retention (default: 1)

                                         0 = only keep final files: assembly (FASTA, GFA and log), 1 = also save graphs at main checkpoints, 2 = also keep SAM (enables fast rerun in different mode), 3 = keep all temp files and save all graphs (for debugging)

  --vcf                                Produce a VCF by mapping the short reads to the final assembly (experimental, default: do not produce a vcf file)

 

Other:

  -t THREADS, --threads THREADS        Number of threads used (default: 8)

  --mode {conservative,normal,bold}    Bridging mode (default: normal)

                                         conservative = smaller contigs, lowest misassembly rate

                                         normal = moderate contig size and misassembly rate

                                         bold = longest contigs, higher misassembly rate

  --linear_seqs LINEAR_SEQS            The expected number of linear (i.e. non-circular) sequences in the underlying sequence (default: 0)

——

 

 

ラン

ショートリードのアセンブリ

unicycler -1 R1.fastq.gz -2 R2.fastq.gz -o output_dir -t 12

 もちろん非圧縮のfastqも使用できる。

 

 ハイブリッドアセンブリ

unicycler -1 short_reads_1.fastq.gz -2 short_reads_2.fastq.gz -l long_reads.fastq.gz -o output_dir

 

 アセンブルの精度とcontiguityは‑‑modeオプションで設定できる。defaultではブリッジのクオリティの閾値 (cutoffを決める値)は10だが、--mode conservativeでは25になる。同時にショートリードをブリッジ情報として使われなくなる。--mode boldでは反対にcutoffの値が最低の1まで下がり、ショートリードもブリッジ情報として利用される。エラーのリスクも出てくるが、アセンブルをできる限り進めるならこのモードも検討すると良いかもしれない。

 

アセンブルFASTAとgfaファイルは必ず出力されるが、他の関連ファイルの数はkeepフラグの数値の大小で調整できる。--keep 0で関連ファイルはほぼ残らなくなる。数値をあげると関連ファイルも残るようになり、--keep 3で中間ファイルも含め全てのファイルが出力されるようになる。詳細はGitで確認してください。

 

 

 

 

 

 

引用

Unicycler: Resolving bacterial genome assemblies from short and long sequencing reads

Ryan R. Wick , Louise M. Judd, Claire L. Gorrie, Kathryn E. Holt

June 8, 2017https://doi.org/10.1371/journal.pcbi.1005595