macでインフォマティクス

macでインフォマティクス

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

(ナノポア)ホモポリマーやタンデムリピート領域からのパイルアップバリアントコーリングを改善する nPoRe

 

 ナノポアのベースコーリング精度は近年向上しているが、生殖細胞における小さな挿入・欠失(INDEL)のバリアントコーリングは依然として低い。一塩基多型SNPs)の精度と再現性は現在、定期的に99.5%を超えているが、比較的高いカバー率(85×)でのINDEL recallは、標準的なR9.4.1フローセルでは80%以下にとどまっている。現在のナノポアバリアントコーラーは2段階で動作する。効率的なパイルアップベースのメソッドが目的の候補を特定し、次に高価なフルアライメントモデルが最終的なバリアントコールを提供する。特に低複雑度反復領域では、偽陰性INDELのほとんどが第1段階(pileup-based)で失われている。本著者らは、リードの位相調整と再調整により、この段階で失われたINDELの大部分を回復することができることを示す。特に、ホモポリマー(n = 1)やタンデムリピート(2 ≤ n ≤ 6)のような繰り返しnポリマー配列をより正確にアライメントするために、新しいギャップペナルティを導入してNeedleman-Needleman-Wunsch affine gap alignmentを拡張している。60.6×カバレッジのデータセットにおいて、ハプロタイプフェージングにより、すべての評価済み高信頼領域におけるINDEL recall が63.76%から70.66%に向上し、さらにnPoReリアラインメントにより、精度を落とすことなく73.04%に向上した。

 

インストール

dockerhubで公開されているDockerイメージを使用した。

Github

#Source
git clone https://github.com/TimD1/npore && cd npore
make
. ./venv3/bin/activate
python3 ./src/realign.py --help

#Dockerrhub(link)
docker pull timd1/npore:v0.1.0
docker run -it timd1/npore:latest python3 realign.py --help

> realign.py

usage: realign.py [-h] --bam BAM --ref REF --out_prefix OUT_PREFIX [--contig CONTIG] [--contig_beg CONTIG_BEG] [--contig_end CONTIG_END] [--contigs CONTIGS] [--max_reads MAX_READS] [--bed BED] [--max_n MAX_N] [--max_l MAX_L]

                  [--chunk_width CHUNK_WIDTH] [--stats_dir STATS_DIR] [--plot] [--recalc_cms] [--recalc_exit]

 

optional arguments:

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

  --bam BAM             Input BAM to be realigned. (default: None)

  --ref REF             Input reference FASTA. (default: None)

  --out_prefix OUT_PREFIX

                        Output SAM file prefix. (default: None)

  --contig CONTIG       Allows specifying a single contig to realign, can be used in combination with '--contig_beg' and '--contig_end'. Reads outside this region are ignored and not included in the output. (default: None)

  --contig_beg CONTIG_BEG

                        Start of realigned region. (default: None)

  --contig_end CONTIG_END

                        End of realigned region. (default: None)

  --contigs CONTIGS     Allows specifying multiple contigs to realign. (default: None)

  --max_reads MAX_READS

                        Allows limiting the number of realigned reads. If zero, all reads in the selected region are realigned. (default: 0)

  --bed BED             Allows specifying arbitrary realigned regions using a BED file. (default: None)

  --max_n MAX_N         Maximum n-polymer length (period of repeating sequence) considered during read realignment. (default: 6)

  --max_l MAX_L         Maximum length (number of times a repeated sequence occurs) considered during read realignment. (default: 100)

  --chunk_width CHUNK_WIDTH

                        BAM is considered in chunks of size '--chunk_width' at a time when calculating confusion matrices. (default: 100000)

  --stats_dir STATS_DIR

                        Directory containing confusion matrices storing measured probabilities of SUBs, INDELs, and N-polymer CNVs. (default: ./stats)

  --plot                Plot confusion and score matrices, exit without realigning. (default: False)

  --recalc_cms          Recalculate confusion matrices using provided BAM. (default: False)

  --recalc_exit         Exit after recalculating confusion matrices, without realigning. (default: False)

 

 

テストラン

ここではdockerを使う。realign.pyはBAMファイルのリアラインメントを行うモジュールで、リアラインメント結果はsam形式で出力される。bam、リファレンスのfastaファイルなどを指定する。

git clone https://github.com/TimD1/nPoRe.git
cd nPoRe/test/data/
sudo docker run -itv $PWD:/data --rm timd1/npore:latest python3 realign.py --bam /data/reads.bam --ref /data/ref.fasta --out_prefix /data/realigned --stats_dir /opt/bin/npore/guppy5_stats

 

出力例

npore_realigned.samが生じる。

引用

nPoRe: n-Polymer Realigner for improved pileup variant calling
Tim Dunn,  David Blaauw,  Reetuparna Das,  Satish Narayanasamy

bioRxiv, Posted February 18, 2022

 

関連