macでインフォマティクス

macでインフォマティクス

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

細菌ゲノムのロングリードコンセンサスアセンブリを行う Autocycler

2025/09/03論文追記

 

 ロングリードシーケンスにより完全な細菌ゲノムアセンブリが可能になるが、個々のアセンブラは不完全であり、しばしば配列レベルや構造エラーが生じる。Trycyclerを用いたコンセンサスアセンブリは精度を向上させることができるが、自動化されていないため拡張性に限界がある。ロングリードデータから高品質のコンセンサスゲノムアセンブリを自動生成する方法が求められている。

本著者らは、同一ゲノムの複数の代替ロングリードアセンブリを組み合わせることにより、正確な細菌ゲノムアセンブリを生成するコマンドラインツールであるAutocyclerを発表する。Autocyclerは、ユーザー入力を必要とせず、入力アセンブリからコンパクト化されたDe Bruijnグラフを構築し、コンティグをクラスタリングおよびフィルタリングし、重複をトリミングし、各遺伝子座で最も一般的なバリアントを選択することでコンセンサス配列を解決する。また、必要に応じて手動によるキュレーションもサポートしており、困難な場合や重要な場合にアセンブリを改良することができる。5つの細菌単離株から得られたOxford Nanopore Technologiesのリードを用いた評価では、Autocyclerは個々のアセンブラ、自動パイプライン、および他のコンセンサスツールを凌駕し、エラー率が低く、構造精度が向上したアセンブリーを作成した。AutocyclerはRustで実装され、オープンソースで、github.com/rrwick/Autocyclerから自由に入手できる。LinuxmacOSで動作し、広範なドキュメントが提供されている。

 

Autocyclerマニュアルより

ロングリードのシーケンスとアセンブリは、近年大きく進歩した。細菌ゲノムは比較的単純(小さく、ハプロイドで、反復性が高くない)であるため、ロングリードをアセンブルすると完全なアセンブル(レプリコンあたり1コンティグ)が可能になることが多い。しかし、どんなに優れたアセンブラでも完璧ではない!よくある問題には以下のようなものがある:

  • 例えば、コンティグの始点や終点で配列が重複したり省略されたりする。
  • ゲノムの一部を省略してしまう(例:小さなプラスミドを含めない)。
  • 偽のコンティグを作成する。例えば、染色体の反復部分を別のコンティグに組み立てる。
  • 断片化(例:1つの染色体を2つのコンティグに組み立てる)。
  • 中規模InDel error(例:ゲノムから50bpを欠失)。
  • 大規模なミスアセンブル、例えば大きな構造エラー

Autocyclerは、同一ゲノムの複数の代替アセンブリ(例えば、異なるアセンブラや異なるリードサブセットから得られたもの)を高信頼性のコンセンサスアセンブリーに結合することで、これらの問題に対処する。Autocyclerは、入力アセンブリをコンパクト化されたDe Bruijnグラフに圧縮し、類似配列をクラスタリングし、オーバーラップをトリミングし、あいまいさを解決することでこれを実現する。その結果、信頼できるロングリードアセンブリーが得られる。

Autocyclerは、完全自動化と人手によるガイドの両方を行うように設計されている。つまり、前身のTrycyclerとは異なり、Autocyclerは人手を介さずに実行できるため、大量のゲノムに使用することができるが、必要な場合には手動による検査や介入も可能である。

重要な要件
Autocyclerは、ゲノムの各部分が1つの配列にアセンブルされた完全なアセンブリを作成することを目的としている。したがって、少なくとも入力アセンブリの大部分(理想的にはすべて)が完全であることが要求される。ゲノムの完全な入力アセンブリが不可能な場合、Autocyclerは適切ではない。最も一般的な理由は、ゲノムにリード長より長いリピートが含まれている場合である。

 

 

wiki

https://github.com/rrwick/Autocycler/wiki

Pipeline

https://github.com/rrwick/Autocycler/wiki/Illustrated-pipeline-overview

Demo

https://github.com/rrwick/Autocycler/wiki/Demo-dataset

 

インストール

windows11のWSLでテストした。

Github

git clone https://github.com/rrwick/Autocycler.git
cd Autocycler/
cargo build --release
#cargoが古い場合は事前にアップグレード(”rustup update stable”)
export PATH=${PWD}/target/release/:$PATH

#依存アセンブラの全導入(注;Autocyclerは特定のアセンブラを必要とせず、条件によって異なるアセンブラを使う)
mamba env create --file scripts/environment.yml --name autocycler
conda activate autocycler

#helper scripts
cd scripts/
cp *.py *.sh "$CONDA_PREFIX"/bin

> ./autocycler 

                _                        _           

     /\        | |                      | |          

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

   / /\ \| | | | __/ _ \ / __| | | |/ __| |/ _ \ '__|

  / ____ \ |_| | || (_) | (__| |_| | (__| |  __/ |   

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

                               __/ |                 

                              |___/

 

a tool for generating consensus bacterial genome assemblies

Documenation: https://github.com/rrwick/Autocycler/wiki

 

Usage: autocycler <COMMAND>

 

Commands:

  clean       manual manipulation of the final consensus assebly graph

  cluster     cluster contigs in the unitig graph based on similarity

  combine     combine Autocycler GFAs into one assembly

  compress    compress input contigs into a unitig graph

  decompress  decompress contigs from a unitig graph

  dotplot     generate an all-vs-all dotplot from a unitig graph

  resolve     resolve repeats in the the unitig graph

  subsample   subsample a long-read set

  table       create TSV line from YAML files

  trim        trim contigs in a cluster

 

Options:

  -h, --help     Print help

  -V, --version  Print version

 

テストラン

レポジトリでは人の介入無しの自動アセンブリ手順が紹介されている。

Fully automated assembly · rrwick/Autocycler Wiki · GitHub

 

reads=2kb.fq
threads=20
genome_size=$(genome_size_raven.sh "$reads" "$threads") 

 

1、ロングリードセットを複数のファイルにサブサンプルする

autocycler subsample --reads "$reads" --out_dir subsampled_reads --genome_size "$genome_size"

ls -al  subsampled_reads/

 

2、それぞれのサブサンプルされたリードをアセンブルする。

mkdir assemblies
for assembler in canu flye miniasm necat nextdenovo raven; do
    for i in 01 02 03 04; do
        "$assembler".sh subsampled_reads/sample_"$i".fastq assemblies/"$assembler"_"$i" "$threads" "$genome_size"
    done
done

出力例

 assemblies/

サブサンプリングされたそれぞれのリードについて複数のアセンブラアセンブリが行われる。テスト時は50分ほどかかった(9900X, 20スレッド)。

 

3、(任意)サブサンプルしたリードを捨てる

rm subsampled_reads/*.fastq

 

手動のキュレーションを加える場合、4の前にここで各入力アセンブリを検査し、削除するか修正するかを決めることができる。また、FASTAヘッダーにヒントを追加することで、クラスタリングおよびコンセンサスステップにおけるコンティグの相対的な重みを調整することもできる。

Manually curated assembly · rrwick/Autocycler Wiki · GitHub

 

4,入力アセンブリをユニティググラフに圧縮する(0 byteのデータは捨てて置かないとエラーが起きる)

autocycler compress -i assemblies -a autocycler_out

 

5、入力コンティグを推定ゲノム配列にクラスタリングする(wiki

autocycler cluster -a autocycler_out

autocycler clusterコマンドは、どのクラスタを最終的なアセンブリに含めるか(QC-pass)、含めないか(QC-fail)を決定し、入力されたコンティグをクラスタにグループ化する(クラスタは同じゲノム配列を表すコンティグのグループ)。

 

6、ステップ5と6:各QCパス・クラスタをトリミングして解決(resolve)する。Autocycler trimもresolveも各QCパスの各クラスターで実行するため、Bashループで実行する。

for c in autocycler_out/clustering/qc_pass/cluster_*; do
    autocycler trim -c "$c"
    autocycler resolve -c "$c"
done

ロングリードのコンティグには余分な配列が含まれていることがあり、クラスタごとに2種類の過剰配列が探され、トリミングされる(trim)。それからクラスタ内のリピートやあいまいさを解決する(resolve)。

 

7、解決されたクラスタを統合して最終的なアセンブリグラフを出力

autocycler combine -a autocycler_out -i autocycler_out/clustering/qc_pass/cluster_*/5_final.gfa

autocycler_out/

最終的なコンセンサス・アセンブリはautocycler_out/consensus_assembly.fasta

 

GFA=> FASTA

Autocycler GFAファイルをFASTA形式に変換するシンプルなユーティリティコマンドが用意されている。通常、Autocycler cleanまたはDnaaplerで生成されたGFAファイルに対して実行する。

autocycler clean -i autocycler.gfa -o autocycler.fasta

ポリッシング、アノテーション、提出などの下流の作業用に標準的なFASTAファイルが必要な場合に便利(wiki)。

 

レポジトリより

  • Autocyclerは環状配列の再配向を行わないので、必要に応じてDnaapler(紹介)を使用する。

  • Autocyclerで多くの自動アセンブリを行う場合は、終了後にAutocycler tableを使ってTSVを作成し、問題のあるゲノムをチェックすることを推奨する(wiki)。

  • クラスタリングを調べていると、特定のアセンブラがあるゲノムで一貫して苦戦していることに気づくかもしれない(例えばminiasmやRavenは断片的なアセンブリ配列を生成しやすい)。このような場合は、入力アセンブリ配列を生成する前に戻って、使用するアセンブラを変更するなどの工夫が考えられる(例えば、miniasmとRavenを別のアセンブラに置き換える)。
  • ブリッジには、ユニークなものと競合するものがある。ユニークブリッジとは、アンカー順序がすべての入力コンティグで一貫しているもので、コンフリクトブリッジとは、異なる入力コンティグでアンカー順序が異なるものである。3_bridged.gfaと4_merged.gfaファイルにはユニークブリッジが含まれているが、コンフリクトブリッジは含まれていない。5_final.gfaファイルには、最もサポートされている競合ブリッジが適用されている。クラスターに競合ブリッジがない場合、4_merged.gfaと5_final.gfaは同じになる(wiki)。
  • 4_merged.gfaファイルを調べることで、ゲノムの構造的な不均一性のある場所、つまり入力アセンブリでアンカーユニットの順序が一致しなかった場所を明らかにすることができる。
  • Autocyclerによる組み立てがうまくいったかどうかを知るため、Autocycler combineコマンドを実行して、すべてのクラスターを結合して最終的なアセンブリが1つのコンセンサスに解決されるか、、1つ以上のクラスターが1つの配列に解決されなかったか調べることもできる(wiki)。
  • Autocycler decompressは、Autocycler compressの逆を行う。つまり、入力としてunitig graphを受け取り、出力としてFASTAファイルのディレクトリを生成する(wiki)。
  • Autocycler dotplotは、入力配列のペアワイズドットプロットを生成する。これは、配列間の差異や潜在的な構造エラーを明らかにするのに役立つ(wiki)。

出力例

拡大

 

コメント

論文のFig.1には代表的なロングリードアセンブラのエラー率が示されています。Autocyclerに加えてアセンブリパイプラインであるHybracterでもアセンブリエラー率が低くなってますね。

引用

Autocycler: long-read consensus assembly for bacterial genomes

Ryan R Wick,  Benjamin P Howden,  Timothy P Stinear

bioRxiv, Posted May 15, 2025.

 

追記

Autocycler: long-read consensus assembly for bacterial genomes Open Access

Ryan R Wick , Benjamin P Howden , Timothy P Stinear

Bioinformatics, Published: 28 August 2025 Article history

 

関連