macでインフォマティクス

macでインフォマティクス

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

ロングリードを使って既存の(メタ)ゲノムアセンブリの改良(ハプロイドやphased assembly作成など)を行う HairSplitter

#2024/02/22 インストール手順修正

 

ロングリード・アセンブラは、密接に関連したウイルス株や細菌株を識別する際に問題に直面する。この限界は、多様な菌株が重要な機能的違いを保持している可能性のあるメタゲノム解析の妨げとなっている。本著者らは、菌株を区別しないアセンブリとロングリードから菌株を検索するために設計された新しいソフトウェア、HairSplitterを紹介する。この方法では、誤ったロングリードを処理するためにカスタムバリアントコーリングプロセスを使用し、事前に未知数の菌株を回収するために新しいリードクラスタリングアルゴリズムを導入している。ノイズの多いロングリードにおいて、HairSplitterはウイルスとバクテリアの両方のケースで、最新のツールよりも高速に、より多くの菌株を回収することができる。HairSplitterはGitHubgithub.com/RolandFaure/HairSplitterで自由に利用できる。

 

レポジトリより

Hairsplitterは、アセンブリ(どのような方法で得られたものでもよい)と、このアセンブリを構築するために使われたロングリード(高エラー率のロングリードを含む)を入力として受け取る。各コンティグについて、そのコンティグが異なるハプロタイプ/リージョンからのリードを用いて構築されたかどうかをチェックする。もしそうであれば、Hairsplitterはリードを必要な数だけグループに分け、実際にゲノムに存在するコンティグの異なるバージョン(例えばアレル)を計算する。コンティグの異なるバージョンは1つにまとめられず、別々にアセンブルされた新しいアセンブリが出力される。

インストール

依存

  • minimap2
  • racon and/or medaka
  • raven
  • samtools >= 1.16
  • CMake >= 3.8.12, make, gcc >= 11, g++ >= 11
  • Python3 with numpy and scipy
  • gzip

mamba create -n hairsplitter python=3.11 -y
conda activate hairsplitter
mamba install -c bioconda -c conda-forge -c anaconda scipy numpy minimap2 -y
mamba install -c bioconda -c conda-forge -c anaconda minigraph=0.20 racon raven -y
mamba install -c bioconda -c conda-forge -c anaconda htslib binutils -y
mamba install -c bioconda -c conda-forge samtools=1.19
pip install medaka

#本体
git clone https://github.com/RolandFaure/Hairsplitter.git
cd Hairsplitter/src/
mkdir build && cd build
cmake ..
make -j10

#GenomeTailor
cd ../GenomeTailor/
mkdir build && cd build
cmake ..
make -j20
cd ../../../

python hairsplitter.py -h

usage: hairsplitter.py [-h] -i ASSEMBLY -f FASTQ [-x TECHNOLOGY] [-p POLISHER] [-t THREADS] -o OUTPUT [-s] [-P] [-F] [-l] [--rarest-strain-abundance RAREST_STRAIN_ABUNDANCE] [--skip-minigraph] [--minimap2-params MINIMAP2_PARAMS]

                       [--path_to_minimap2 PATH_TO_MINIMAP2] [--path_to_minigraph PATH_TO_MINIGRAPH] [--path_to_racon PATH_TO_RACON] [--path_to_medaka PATH_TO_MEDAKA] [--path_to_samtools PATH_TO_SAMTOOLS] [--path_to_python PATH_TO_PYTHON] [-d] [-v]

 

optional arguments:

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

  -i ASSEMBLY, --assembly ASSEMBLY

                        Original assembly in GFA or FASTA format (required)

  -f FASTQ, --fastq FASTQ

                        Sequencing reads fastq (required)

  -x TECHNOLOGY, --technology TECHNOLOGY

                        {ont, pacbio, hifi} [ont]

  -p POLISHER, --polisher POLISHER

                        {racon,medaka} medaka is more accurate but much slower [racon]

  -t THREADS, --threads THREADS

                        Number of threads [1]

  -o OUTPUT, --output OUTPUT

                        Output directory

  -s, --dont_simplify   Don't rename the contigs and don't merge them

  -P, --polish-everything

                        Polish every contig with racon, even those where there is only one haplotype

  -F, --force           Force overwrite of output folder if it exists

  -l, --low-memory      Turn on the low-memory mode (at the expense of speed)

  --rarest-strain-abundance RAREST_STRAIN_ABUNDANCE

                        Limit on the relative abundance of the rarest strain to detect (0 might be slow for some datasets) [0.01]

  --skip-minigraph      Skip the assembly correction step. Aligning reads on very complex graphs can be time-consuming

  --minimap2-params MINIMAP2_PARAMS

                        Parameters to pass to minimap2

  --path_to_minimap2 PATH_TO_MINIMAP2

                        Path to the executable minimap2 [minimap2]

  --path_to_minigraph PATH_TO_MINIGRAPH

                        Path to the executable minigraph [minigraph]

  --path_to_racon PATH_TO_RACON

                        Path to the executable racon [racon]

  --path_to_medaka PATH_TO_MEDAKA

                        Path to the executable medaka [medaka]

  --path_to_samtools PATH_TO_SAMTOOLS

                        Path to samtools [samtools]

  --path_to_python PATH_TO_PYTHON

                        Path to python [python]

  -d, --debug           Debug mode

  -v, --version         Print version and exit

 

 

 

GenomeTailorのテストラン

#GenomeTailor(test/は同梱版にはないので注意)#アセンブリ上で全リードがエンドツーエンドで整列するようにする(link)
cd test
../build/GenomeTailor -i assembly.gfa -r mock_reads.fasta -o test.gfa

 

実行方法

アセンブルするのに使ったロングリード、現在のアセンブリを指定する。

python hairsplitter.py -f reads.fastq -i assembly.gfa -x ont -o hairsplitter_out/ -t 20
  • -i      Original assembly in GFA or FASTA format (required)
  • -f      Sequencing reads fastq (required)
  • -x     TECHNOLOGY  {ont, pacbio, hifi} [ont]
  • -p     POLISHER  {racon,medaka} medaka is more accurate but much slower [racon]
  • -t      Number of threads [1]
  • -o     Output directory 

小さめのメタゲノムアセンブリ(30Mb、リード1Gb)を使用したところ、10分以内にジョブは終了した(3990X、20スレッド)。

 

hairsplitter_out/


元のアセンブリ(上)とHairSplitter出力のアセンブリ(下)

 

論文とレポジトリより

  • 細菌株の文脈では、Vicedominiらは、metaFlyeやCanuのような主流のアセンブラでは、近い細菌ハプロタイプを区別できないことを示し、菌株を再構築するStrainberryと呼ばれる新しいツールを提案した。ウイルス株の文脈では、Strainline (X Luo et al., 2022)とHaploDMF (Cai et al., 2022)が、特にウイルスハプロタイプ再構築問題に取り組むために発表されているが、機能するためには非常にディープシークエンシングを必要とする。iGDA (Z Feng et al., 2021)は、高いエラー率を処理しながらマイナーバリアントを相補する一般的なアプローチとして提案され、理論的には細菌とウイルスの両方のハプロタイプを組み立てることができる。これらの方法は、存在量の少ないハプロタイプを回収するのに苦しんでいる。また非常に計算集約的である。

  • Hairsplitterは、アセンブリ補正プログラムとリード分離手順という2つの新機能が含まれている。HiFiリードのアセンブルには、hifiasmのような専門的なソフトウェアの方が適しているように思われるが、HairSplitterはノイズの多いデータ(エラー率1%以上)を扱う場合に有用であることがわかった。
  • Hair-Splitterは細菌とウイルスの両方において、複数の類似株を効果的に分離できることを示している。HairSplitterは、低い計算コストで、多数の菌株と低い相対存在量の配列を扱うことができる。
  • Hairsplitterはメタゲノムアセンブリの改良に使用できる。アセンブラは通常、密接に関連する株を単一ゲノムとしてcollapseさせる。HairSplitterは失われた株を復元することができ、この時、アセンブリのcollapseしていない部分はそのまま残される。
  • HairSplitterは単の一生物アセンブリ、特にphased assemblyを得ようとしている場合にも有用である。
  • 他の手法と比べたHairsplitterの主な利点は、完全にパラメータフリーであることである。ゲノムの倍数性を事前に知る必要がなく、コンティグの倍数性を推測できる。したがって、ハプロイドのアセンブリ(重複アセンブリを改善するため)にも、複雑なアロテトラプロイド(ハプロタイプを別々にアセンブリするため)にも同様に使用できる。

 

コメント

issueで聞いてみましたが、2024年2月現在、数週間の予定でアクティブに開発中とのことです。コメントがあればこの期間にしておくと採用されやすいかもしれません。

引用

HairSplitter: haplotype assembly from long, noisy reads
Roland Faure, Dominique Lavenier, Jean-François Flot

bioRxiv, Posted February 14, 2024.

 

関連

https://kazumaxneo.hatenablog.com/entry/2021/02/08/005407