macでインフォマティクス

macでインフォマティクス

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

PacBioロングリード用の類似ゲノムアシスト再構築パイプライン AlignGraph2

 

 第3世代シーケンサーのロングリードからアセンブルされたコンティグは、通常、第2世代のショートリードよりも完全である。しかし、現在のアルゴリズムでは、ロングリードを理想的な完全かつ正確なゲノムにアセンブルすること、つまり理論的に最良の結果を得ることはまだ困難である[ref.1]。ロングリードのコンティグを改善するために、また、より多くの完全な配列決定済みのゲノムが利用できるようになった今では、類似ゲノムアシストの再構築法[ref.2]を使用することができる可能性がある。この方法は、当初、配列決定済みのゲノム(ターゲットゲノム)と近縁のゲノム(類似ゲノム)を使用するショートリード用に提案された。この手法は、コンティグとリードを類似ゲノムにアラインし、アラインされたコンティグとリードを拡張・改良するものである。ここでは、PacBioのロングリードを対象とした類似ゲノム支援型再構築パイプラインであるAlignGraph2を紹介する。AlignGraph2パイプラインは、著者らが提案したAlignGraphアルゴリズムの第2版であるが、完全に再設計されており、エラーが発生しやすいロングリードとHiFiロングリードのいずれも入力可能である。また、4つの新規アルゴリズムを搭載している。すなわち、ロングリードと事前にアセンブルされたコンティグを類似のゲノムにアラインメントするための類似性考慮アラインメントアルゴリズムとアラインメントフィルタリングアルゴリズム、および事前にアセンブルされたコンティグを拡張・改良するための再構築アルゴリズムと重み調整コンセンサスアルゴリズムである。エラーが起こりやすいロングリードとHiFiロングリードの両方を対象とした性能テストでは、AlignGraph2は、現在のいくつかのアラインメントアルゴリズムと比較して、5.7~27.2%多くのロングリードと7.3~56.0%多くの塩基をアラインメントすることができ、他のアルゴリズムと比較しても、より効率的または同等である。様々なde novoアルゴリズムアセンブルされ、類似したゲノムにアラインされたコンティグ(aligned contigs)に対して、AlignGraph2はそのうちの8.7~94.7%を延長することができ(extendable contigs)、N50値が7.0~249.6%大きく、100kbpあたりのindel数が5.2~87.7%少ないコンティグ(extended contigs)を得ることができる。類似度の低いゲノムでも、AlignGraph2は比較的安定した性能を発揮する。AlignGraph2ソフトウェアは、こちらのサイトから無料でダウンロードできる: https://github.com/huangs001/AlignGraph2

 

 

インストール

WSL2のubuntu20.04でdockerfileからイメージをビルドしてテストした(python3.8)*1。

依存

  • Linux OS 64-bit
  • GCC >= 4.8.5
  • CMake >= 3.1.0
  • Python >= 3.6 with Biopython

Github

 

git clone --recursive https://github.com/huangs001/AlignGraph2.git
cd AlignGraph2 && python ./install.py

python ./AlignGraph2.py

usage: AlignGraph2.py [-h] [--version] -r [fastq] -c [fasta] -g [fasta] -o [dir] [-m] [-b [int]] [--alpha [real]] [--beta [real]] [--delta [real]]

[-v [int]] [-k [int]] [--epsilon [int]] [-l [int]] [-a [int]] [-t [int]]

 

Similar genome assisted reassembly pipeline for PacBio long reads

 

optional arguments:

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

--version show program's version number and exit

-r [fastq], --read [fastq]

read path

-c [fasta], --contig [fasta]

contig path

-g [fasta], --genome [fasta]

reference path

-o [dir], --output [dir]

output directory

-m customized alignment algorithm mecat2ref+ (default: False)

-b [int] size of similar genome blocks for mecat2ref+ [50-1000] (default: 200)

--alpha [real] lower bound of k-mer scoring function for mecat2ref+ [0-1] (default: 0.5)

--beta [real] upper bound of k-mer scoring function for mecat2ref+ [1-infinity] (default: 2.0)

--delta [real] threshold for alignment scoring [0-1] (default: 0.9)

-v [int] coverage to filter alignments [1-infinity] (default: 2)

-k [int] size of k-mer [4-15] (default: 14)

--epsilon [int] distance to join two vertices in A-Bruijn graph [5-100] (default: 10)

-l [int] minimum path length for graph traversal [0-infinity] (default: 50)

-a [int] size of long read blocks for consensus [100-100000] (default: 10000)

-t [int] thread number (default: 16)

 

 

実行方法

 

python ./AlignGraph2.py -r read -c contig -g genome -o output
  • -r [fastq]    read path
  • -c [fasta]    contig path
  • -g [fasta]   reference path
  • -o [dir]   output directory

 

 

引用

AlignGraph2: similar genome-assisted reassembly pipeline for PacBio long reads
Shien Huang, Xinyu He, Guohua Wang, Ergude Bao
Briefings in Bioinformatics, Published: 23 February 2021

 

関連

 

*1

Dockerfileを書いてビルドした。

#################################################
FROM ubuntu:18.04

LABEL \ description="Base image for aligngraph2"
#################################################

WORKDIR /home

#locationを聞かれないようにする
ENV DEBIAN_FRONTEND=noninteractive

RUN apt update -y && apt install -y git gcc cmake build-essential python3 libfontconfig1 fontconfig libfontconfig1-dev fontconfig-config libxi-dev libaudio-dev libxrender-dev

WORKDIR /home/
RUN git clone --recursive https://github.com/huangs001/AlignGraph2.git

WORKDIR /home/AlignGraph2/
RUN python3 ./install.py

#################################################

 

ビルド

docker build -t kazumax/aligngraph2 .

ラン

> docker run -it --rm kazumax/aligngraph2 python3 AlignGraph2.py