macでインフォマティクス

macでインフォマティクス

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

Copy number variationを検出する CNVnator

 

 コピー数バリエーション(CNV)を含むゲノム構造変化(SV)は、ヒト個体間のバリエーションに大きく寄与し、SNPと同様にヒト表現型に大きな影響を及ぼすと考えられている(論文より Feuk et al、2006; Sharp et al、2006)。当初、CNVはSNPおよびCGHアレイデータの分析から検出されたが(Carter 2007)、これは依然としてCNV発見および遺伝子型決定のための費用対効果の高い方法である(Conrad et al 2009)。クローンベースのシーケンシング(Kidd et al 2008)、ペアエンドマッピング(Korbel et al 2007,2009)、スプリットリード(SR)マッピング(Mills et al 2006)のような新しいシーケンシングベースの手法は(CNVnatorのペーパーは2011年にpublishされた)、 より多くのCNVの発見を可能にする貴重な代替手段である。(一部略)シーケンシングベースのアプローチの大きな利点は、以下に示すように、それらがお互いを補完し、すべてのシーケンスデータ(例えば、イルミナによる全ゲノムペアエンドシーケンシング)に適用できることである。 

 ここでは、次世代シーケンシングプラットフォームからのショートリードのマッピング密度、すなわちread-depth (RD) の統計分析からCNVを検出するための新規方法CNVnatorを提示する。 RDを用いたこれまでのアプローチは、ゲノムの固有の領域のみに限定されていた(Bentley et al 2008; Campbell et al 2008; Chiang et al 2009)(一部略)。 CNVnatorは、ゲノム全体で数百塩基からメガベースまでの広範なサイズのCNVを発見することができる。 1000 Genomes Project(Durbin et al 2010)のデータを使用することにより、CNVnatorのCNV検出および遺伝子型同定能力を実験的に検証し、CNV検出能力の特異性および精度を実証した。

 

CNVnatorのPublishは2011年ですが、他のツールによく組み込まれているので紹介しておきます。(注;レポジトリに使い方のまとめが書かれています)

 

 インストール

非公式のdockerイメージを使ってテストした。ソースからビルドする場合は以下を参照してください。

ROOTはバイナリをダウンロードし、本体ビルド前にbin/で"source thisroot.sh"しておく。本体は、Github リリースからCNVnator_v0.3.3.zipをダウンロードし、解凍して中に入る。

#まず依存のsamtoolsのビルド
cd src/samtools
make
cd ../
make omp=no #Github topページ参照
./cnvnator

#or
sudo apt install root-system libtbb-dev
git clone https://github.com/abyzovlab/CNVnator.git
cd CNVnator
make

#conda
mamba install -c bioconda cnvnator

BioInstallerを使っても導入可能です。

https://cran.r-project.org/web/packages/BioInstaller/vignettes/BioInstaller.html

dockerコンテナを共有してくれている方が何人かいます。

https://hub.docker.com/r/wwliao/cnvnator/

docker pull timothyjamesbecker/cnvnator

> docker run -i -t --rm timothyjamesbecker/cnvnator

 $ docker run -i -t --rm wwliao/cnvnator cnvnator

Not enough parameters.

 

CNVnator v0.3.3

 

Usage:

cnvnator -root out.root  [-genome name] [-chrom 1 2 ...] -tree  file1.bam ...

cnvnator -root out.root  [-genome name] [-chrom 1 2 ...] -merge file1.root ...

cnvnator -root file.root [-genome name] [-chrom 1 2 ...] [-d dir] -his bin_size

cnvnator -root file.root [-chrom 1 2 ...] -stat      bin_size

cnvnator -root file.root                  -eval      bin_size

cnvnator -root file.root [-chrom 1 2 ...] -partition bin_size [-ngc]

cnvnator -root file.root [-chrom 1 2 ...] -call      bin_size [-ngc]

cnvnator -root file.root -genotype bin_size [-ngc]

cnvnator -root file.root -view     bin_size [-ngc]

cnvnator -pe   file1.bam ... -qual val(20) -over val(0.8) [-f file]

 

Valid genomes (-genome option) are: NCBI36, hg18, GRCh37, hg19, mm9

 

 

ラン

CNVnator はすべての解析作業を、ROOTファイル形式という専用のバイナリ形式ファイルを使って進める。.root ファイルは、下流解析のデータベースとしても機能している。下で"-root sample.root"と書いているのは、出力形式を指定している(フローで一貫して同じ .root ファイル名を指定する)。アラインメントのbamファイルはユーザーが用意する必要がある。

 

1、rootファイルを作成。chromosomeの"chr20"、"chr21"、"chr22"を分析する。dockerのメモリ上限は100gとした。

docker run -m "100g" --rm -itv $PWD:/data -w /data --rm timothyjamesbecker/cnvnator \
/software/cnvnator_0.3/cnvnator -root file.root -tree input.bam

#イメージ中で作業するなら
docker run -m "100g" --rm -itv $PWD:/data -w /data --rm timothyjamesbecker/cnvnator bash
/software/cnvnator_0.3/cnvnator -h

file.rootが出力される。ファイルサイズはヒトゲノムだと100MB以上あることが多い。ファイルサイズが4MBとか小さい場合、空のファイルが出来ている可能性があるので注意。

 

2、得られたrootファイルを使い、 binサイズ1000でヒストグラムを計算。

docker run -m "100g" --rm -itv $PWD:/data -w /data --rm timothyjamesbecker/cnvnator \
/software/cnvnator_0.3/cnvnator -root NA12878.root -his 1000

rootファイルに情報が追記される。

 

3、統計量を計算。2の数値と一致している必要がある。

docker run -m "100g" --rm -itv $PWD:/data -w /data --rm timothyjamesbecker/cnvnator \
/software/cnvnator_0.3/cnvnator -root NA12878.root -stat 1000

出力例

 

3、ゲノムのロード

docker run -m "100g" --rm -itv $PWD:/data -w /data --rm timothyjamesbecker/cnvnator \
/software/cnvnator_0.3/cnvnator -root NA12878.root -genome human.fasta

rootファイルに情報が追記される。

 

4、ヒストグラムを作成。

docker run -m "100g" --rm -itv $PWD:/data -w /data --rm timothyjamesbecker/cnvnator \
/software/cnvnator_0.3/cnvnator -root NA12878.root -chrom "chr1" "chr2" -his 1000

 

5、CNV候補領域を分割して評価する際の最小サイズ(partition)を指定。

docker run -i -t --rm -v /Users/uesaka/Documents/input_file:/test wwliao/cnvnator cnvnator -unique -root out.root -partition 1000

rootファイルに情報が追記される。

 

6、CNVのコール。先にpartition指定を行っておく必要がある。

docker run -i -t --rm -v /Users/uesaka/Documents/input_file:/test wwliao/cnvnator cnvnator -unique -root out.root -call 1000

 

コメント

genomeのfastaファイルの配列名はchr1,2,3 などを前提としているようです。

使い方を確認する場合はGithub READMEに書かれているまとめがわかりやすいと思いますが、バージョンによってオプションが違ったりするので注意して下さい。

引用

CNVnator: an approach to discover, genotype, and characterize typical and atypical CNVs from family and population genome sequencing

Abyzov A, Urban AE, Snyder M, Gerstein M

Genome Res. 2011 Jun;21(6):974-84. 

 

Biostars build failed

https://github.com/hall-lab/speedseq/issues/28