macでインフォマティクス

macでインフォマティクス

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

プライマリーゲノムアセンブリにおけるハプロタイプ重複の特定と除去を行う purge_dups

 

 ロングリードシーケンシングとスキャフォールディング技術の急速な発展により、大規模な真核生物ゲノムのリファレンスクオリティのアセンブリの作成が加速している。しかし、ヘテロ接合性の高い領域におけるハプロタイプの分岐は、アセンブラが1つの領域のコピーではなく2つのコピーを作成することになり、コンティグネス(連続性)が途切れ、遺伝子アノテーションなどの後工程に支障をきたすことが多い。この問題を解決するために、いくつかのツールが開発された。しかし、これらのツールは、含まれる重複領域(ハプロティグとも呼ばれる)の除去のみに焦点を当てているか、関連するすべての情報を使用していないため、エラーが発生する。
 本研究では、配列の類似性と読みの深さを利用して、ハプロティグとヘテロ接合性オーバーラップの両方を自動的に特定して除去する新しいツールpurge_dupsを紹介する。現在のツールと比較して、purge_dupsはヘテロ接合の重複を減らし、プライマリアセンブリの完全性を維持しながらアセンブリの連続性を高めることができることを実証した。さらに、purge_dupsは完全に自動化されており、アセンブリパイプラインに容易に統合することができる。ソースコードはCで書かれており、https://github.com/dfguan/purge_dups で入手できる。

 

Pacific Biosciences社(Pacbio)やOxford Nanopore Technologies社(ONT)などのロングリードシーケンス技術の優れたスループットの向上は、新種のゲノムのシーケンスに革命をもたらしている(Phillippy, 2017)。Falcon(Chin et al., 2016)やCanu(Koren et al., 2017)などのロングリードアセンブラは、典型的には二倍体ゲノムのハプロタイプ融合パスを生成し、Falcon-unzip(Chin et al., 2016)はさらに最初のアセンブリをプライマリコンティグとハプロティグに分離することができる。しかし、多くの外来種、例えばほとんどの昆虫や海洋動物のようにヘテロ接合性が高い場合、ハプロタイプ領域間の対立遺伝子の関係を特定するのが難しく、ハプロティグがプライマリコンティグと誤認されるだけでなく、プライマリコンティグ間でオーバーラップが保持されることがある。これらの保持されたオーバーラップの大部分は相同染色体間のものであり、その結果として生じる重複は、スキャフォールドや遺伝子アノテーションなどの下流のプロセスに悪影響を及ぼし、誤った結果をもたらす。

purge_haplotigs (Roach et al., 2018)やHaploMerger2 (Huang et al., 2017)などのツールは、この問題を解決するために設計された。purge_haplotigsは、リードデプスと配列の類似性の両方を利用してハプロティグを識別する。しかし、ヘテロ接合性のオーバーラップを識別することはできず、ユーザーがリードデプスのカットオフを手動で指定する必要がある。HaploMerger2はハプロティグとオーバーラップの両方を識別しようとしているが、リードデプスを無視し、コンティグ同士のアラインメントにのみ依存している。

ここでは、配列の類似性とリードの深さの両方を用いて、プライマリアセンブリのハプロティグとオーバーラップを解決する新しいパージツール、purge_dupsについて説明する。Purge_dupsは現在、Vertebrate Genomes Project assembly pipelineで日常的に使用されている。

 

 

インストール

Github

#conda (link)
mamba create -n purge_dups -y
conda activate purge_dups
mamba conda install -c bioconda purge_dups -y

> purge_dups

$ purge_dups

[E::parse_args] paf file can't be omitted!

 

Program: purge_dups

Version: 1.2.5

Contact: dfguan9@gmail.com

 

Usage: purge_dups [options] <PAF>

Options:

-c STR base-level coverage file [NULL]

-T STR cutoffs file [NULL]

-f INT minimum fraction of haploid/diploid/bad/repetitive bases in a sequence [.8]

-a INT minimum alignment score [70]

-b INT minimum max match score [200]

-2 BOOL 2 rounds chaining [FALSE]

-m INT minimum matching bases for chaining [500]

-M INT maximum gap size for chaining [20K]

-G INT maximum gap size for 2nd round chaining [50K]

-l INT minimum chaining score for a match [10K]

-E INT maximum extension for contig ends [15K]

-h help

>  ./purge_dups/scripts/pd_config.py -h

 

$ ./purge_dups/scripts/pd_config.py -h

usage: pd_config.py [-h] [-s SRF] [-l LOCD] [-B] [-n FN] [--version] ref pbfofn

 

generate a configuration file in json format

 

positional arguments:

ref reference file

pbfofn list of pacbio file (one absolute file path per line)

 

optional arguments:

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

-s SRF, --srfofn SRF list of short reads files (one record per line, the record is a tab splitted line of abosulte file path plus trimmed bases,

refer to https://github.com/dfguan/KMC) [NONE]

-l LOCD, --localdir LOCD

local directory to keep the reference and lists of the pacbio, short reads files [.]

-B, --skipB skip running busco [False]

-n FN, --name FN output config file name [config.json]

--version show program's version number and exit

(

 

 

実行方法

1、configファイルの作成。pacbio.listはpacbioのリードのフルパスを1行に1つずつ記載したリストとなる。10x.fofnもショートリードのリスト(fastq.gz)をフルパスで記載したリスト。

git clone https://github.com/dfguan/purge_dups.git
./purge_dups/scripts/pd_config.py -l iHelSar1.pri -s 10x.fofn -n config.json ref.fasta.gz pacbio.list
  • -l   local directory to keep the reference and lists of the pacbio, short reads files [.]
  • -s   list of short reads files (one record per line, the record is a tab splitted line of abosulte file path plus trimmed bases, refer to https://github.com/dfguan/KMC) [NONE]
  • -n   output config file name [config.json]

jsonファイルを生成したら、開いてconfigのパラメータを指定する(Gtibhu参照)。

 

2、purge_dupsの実行。

run_purge_dups.py config.json bin_dir spid
  • spid    species identifier 

 

パイプラインが終了すると、作業ディレクトリ(設定ファイルで設定)に4つの新しいディレクトリができる。

  • coverage: カバレッジカットオフ、カバレッジヒストグラム、ベースレベルカバレッジファイル
  • split_aln:セグメント化されたアセンブリファイルとセルフアライメントの paf ファイル。
  • purge_dups: 重複配列リスト
  • seqs: .purge.faで終わるパージされた一次コンティグと.red.faで終わるハプロティグ、またK-mer比較プロットとbuscoの結果もこのディレクトリにある。

 

GithubにはFAQも用意されています。

引用

Identifying and removing haplotypic duplication in primary genome assemblies
Dengfeng Guan, Shane A McCarthy, Jonathan Wood, Kerstin Howe, Yadong Wang, Richard Durbin
Bioinformatics, Volume 36, Issue 9, 1 May 2020, Pages 2896–2898

 

関連


こちらのプレプリントで使用されています。

https://www.biorxiv.org/content/10.1101/2021.06.01.446499v1.full.pdf