macでインフォマティクス

macでインフォマティクス

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

Oxford nanoporeやpacbioのロングリードのアセンブリツール canu

2018 10/23 追記 

2019 1/16 追記5

2019 3/16 bioconda追記6、canu -hヘルプ追記

2019 3/18 追記7

2019 4/12 追記8 dcokerリンク追加

2019 5/14 追記8リンク追加

2019 8/4 説明追加

2019 8/14 リンク追加

2019 11/5 canu v1.9 updateのお知らせtwitter追加

2019 11/11 biocondaインストールリンク追加、dockerを使ったrrun例を修正

2020 9/5 2.1 ツイート追記

 

 1分子ロングリードシークエンシングはデノボゲノムアセンブリに革命をもたらし、参照品質ゲノムの自動再構成を可能にした。しかしながら、そのような技術の比較的高いエラー率を考慮すると、大きなリピート配列および密接に関連するハプロタイプの効率的かつ正確なアセンブルは依然として困難である。これらの問題は、ノイズの多い単一分子シーケンス用に特別に設計されたCelera Assemblerの後継製品であるCanuで解決する。 Canuはナノポアシークエンシングをサポートし、カバレッジ深度の要件を半分にし、アセンブリのcontiguityを向上させると同時に、Celera Assembler 8.2と比較して大きなゲノムでランタイムを一桁も短縮する。これらの進歩は tf-idf weighted MinHash と sparse assembly graph constructionによってリピートやハプロタイプによる崩壊を防ぐアセンブリアルゴリズムの結果である。著者らはCanuがPacific Biosciences(PacBio)またはOxford Nanoporeのいずれかを用いて完全なバクテリアゲノムおよびほぼ完全な真核生物染色体を確実にアセンブルし、ヒトおよびショウジョウバエのPacBioデータセットで> 21MbpのコンティグNG50を達成することを示す。

 

CanuはPacbioやnanoporeなどの1分子シーケンス用のアセンブラとして開発された。下記にはCanuを使ってヒトゲノムのアセンブリを行った例が紹介されている。

canuはPBcRの後継にもなっており、PBcRのダウンロードページでは、特別な理由がない限りPBcRの代わりにcanuをロングリードのアセンブリに使うことを推奨している。

http://wgs-assembler.sourceforge.net/wiki/index.php/PBcR

  

 

インストール

github


macはbinaryのみ提供されている。version1.5のページのcanu-1.5.Darwin-amd64.tar.xzをダウンロードした(mac OSXはDarwin系列のunix)。ダウンロードが終わったら解凍する。

gunzip -dc canu-1.5.Darwin-amd64.tar.xz | tar -xf -

できたディレクトリを適切な場所に移動させる。

ディレクトリ中Darwin-amd64/binに本体が入っているので、そこにパスを通せばランの準備は整う。

 追記6

#bioconda(link)2019年11月現在1.9が最新
conda install -y -c bioconda canu

 

dockerhubにdockerイメージもたくさん上げられている。

https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=canu&starCount=0

ここではbiocontainerのイメージを使う(tagリンク)。

docker pull biocontainers/canu:v1.8dfsg-2-deb_cv1

#カレントにデータがあるなら以下のような感じでランできる。ONTのデータ
docker run --rm -itv $PWD:/data/ -w /data biocontainers/canu:v1.8dfsg-2-deb_cv1 \
canu -p test -d assembly-directory genomeSize=4.8m -nanopore-raw oxford.fasta

canu

$ canu

 

usage: canu [-correct | -trim | -assemble | -trim-assemble] \

            [-s <assembly-specifications-file>] \

             -p <assembly-prefix> \

             -d <assembly-directory> \

             genomeSize=<number>[g|m|k] \

             errorRate=0.X \

            [other-options] \

            [-pacbio-raw | -pacbio-corrected | -nanopore-raw | -nanopore-corrected] *fastq

 

  By default, all three stages (correct, trim, assemble) are computed.

  To compute only a single stage, use:

    -correct       - generate corrected reads

    -trim          - generate trimmed reads

    -assemble      - generate an assembly

    -trim-assemble - generate trimmed reads and then assemble them

 

  The assembly is computed in the (created) -d <assembly-directory>, with most

  files named using the -p <assembly-prefix>.

 

  The genome size is your best guess of the genome size of what is being assembled.

  It is used mostly to compute coverage in reads.  Fractional values are allowed: '4.7m'

  is the same as '4700k' and '4700000'

 

  The errorRate is not used correctly (we're working on it).  Don't set it

  If you want to change the defaults, use the various utg*ErrorRate options.

 

  A full list of options can be printed with '-options'.  All options

  can be supplied in an optional sepc file.

 

  Reads can be either FASTA or FASTQ format, uncompressed, or compressed

  with gz, bz2 or xz.  Reads are specified by the technology they were

  generated with:

    -pacbio-raw         <files>

    -pacbio-corrected   <files>

    -nanopore-raw       <files>

    -nanopore-corrected <files>

 

Complete documentation at http://canu.readthedocs.org/en/latest/

 

ERROR:  Assembly name prefix not supplied with -p.

ERROR:  Directory not supplied with -d.

ERROR:  Invalid 'corErrorRate' specified; must be set

ERROR:  Required parameter 'genomeSize' is not set

追記

canu-racon dockerイメージ

https://hub.docker.com/r/staphb/canu-racon/

 

 

テストラン

公式ページで提供されているnanoporeのシーケンスデータ(fastaに変換されている)を使って、テストランを行う。

curl -L -o oxford.fasta http://nanopore.s3.climb.ac.uk/MAP006-PCR-1_2D_pass.fasta

oxford.fasta (145MB) がカレントディレクトリにダウンロードされる。

アセンブル

canu -p ecoli -d assembly-directory genomeSize=4.8m -nanopore-raw oxford.fasta

プリフィックスとしてecoliという名前をつけている。-dでランディレクトリを指定する。今回だとassembly-directoryディレクトリの中で、アセンブル前のエラーコレクション、エラーのトリミング、unitig作成が行われる。

ランが進むと、作業ディレクトリにレポートが出力される。

correction.htmlを開く。

f:id:kazumaxneo:20170616135136j:plain

correction.html.files/中にはRで描かれたと思われるオリジナルのjpgが保存されている。インサートサイズのjpgを開く。

f:id:kazumaxneo:20170616135633p:plain

ポアソン分布に近い裾野が長い分布になっている。

 

ランが進むと、trimming.htmlができる。開くとトリミングに関するレポートをみることができる。

 

 Pacbioのデータでも試してみる(Pacbioのテストラン)。

ダウンロード

curl -L -o p6.25x.fastq http://gembox.cbcb.umd.edu/mhap/raw/ecoli_p6_25x.filtered.fastq

p6.25x.fastq (233MB) がカレントディレクトリにダウンロードされる(fastqになっている)。

アセンブル

canu -p ecoli -d ecoli-auto genomeSize=4.8m -pacbio-raw p6.25x.fastq

 

エラーコクレションされたリード 

f:id:kazumaxneo:20190805015908p:plain

 

 

エラーの多い1Dのデータをアセンブルすると、Miniasmだとできないなりに最後までプロセスは進みますが、canuはerrorで止まルようです。あまりにノイジーアセンブルできないなら、ナノポアのロングリード自体でロングリードをpolishするか、illuminaのショートリードでポリッシュするようなフローが必要になります。ご注意ください。

以下の論文では5つのエラー修復方法を検討しています。

https://www.nature.com/articles/srep28625

 

 

追記1  2018/03時点ですでに100回以上引用されている(リンク)。中にはONTリードをcanuでアセンンブルして、ドラフトゲノムとしてgenome anouncementに出した論文も出てきている。。

 canuは特にパラメータ設定次第でアセンブル結果がかなり変化するので、最適化するには複数回繰り返すのが望ましいでしょう。

 

 

追記4

Flyeというロングリードのアセンブラも出てきています。試した限り、canuより短時間かつ少ないリソースでアセンブリできました。アセンブリ精度についても、canuと同等か、それ以上になりました。ぜひcanuとFlye両方試してみてください。


追記5

canu 1.8に関するツイート

 

 

追記7

canuの最適化 


追記9

他のツールとの比較。

 

日本語だとこちらが参考になります。


 

 

引用

Canu: scalable and accurate long-read assembly via adaptive k-mer weighting and repeat separation.

Koren S, Walenz BP, Berlin K, Miller JR, Bergman NH, Phillippy AM

Genome Res. 2017 May;27(5):722-736.