ナノポアのベースコーリング精度は近年向上しているが、生殖細胞における小さな挿入・欠失(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イメージを使用した。
#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
関連