macでインフォマティクス

macでインフォマティクス

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

複雑な構造多型の分析と視覚化を行う Svpluscnv

 

 ほとんどの腫瘍種において体細胞構造変化(SV)が広く普及しているにもかかわらず、その分子的意味合いについての理解が不十分な場合が多い。SVはその大きさと複雑さが非常に不均一であり、その病原性の役割の解釈を妨げている。ガンの体細胞構造を完全に特徴づけるためには、プラットフォームを横断して大規模なSVデータセットを統合するツールが必要である。
 svpluscnv R パッケージは、コピーナンバーバリアント(CNV)セグメンテーションプロファイルやシーケンスベースの構造バリアントコール(SVC)を含む直交データセットの統合と解釈のためのスイスアーミーナイフである。このパッケージには、染色体の不安定性や多型性の評価、再発性SVを持つ遺伝子の同定、chromothripsis(wiki)やchromoplexia(wiki)などの複雑な再配列の検出を行うための解析および可視化ツールが実装されている。また、ホットスポットとなっているゲノム領域を系統的に同定することができ、代替検出法やデータセット間での再現性を示している。

 

インストール

ubuntuのサーバーに導入した(ubuntu18.04とubuntu16.04の2つの計算機に入れたが、ubuntu16.04のサーバーでは導入できなかった)。

Github

devtools::install_github("ccbiolab/svpluscnv")

 

テストラン

Rのコンソールを立ち上げる。ライブラリを読み込む。

library(svpluscnv)

 

 

2つのデータタイプがサポートされている。 

  1. CNV のセグメンテーションデータ - (cnv データタイプ) sample, chrom, start, end, probes, segmean の順に 6 カラムが必要(テストデータ)
  2. 構造変化のコール。(SVC データ型) sample, chrom1, pos1, strand1, chrom2, pos2, strand2 & svclass の順に 8 カラム必要。svclassフィールドで受け付けるタイプは、重複(DUP)、欠失(DEL)、逆位(INV)、挿入(INS)、転座(TRA)、未定義バリアントのブレークエンド(BND)。

また、svpluscnvの機能を調べるために、2つのデータセットがパッケージに含まれている(Github参照)。ここでは、そのデータセットを使う。

#CNV
head(nbl_segdat)

## Sample Chromosome Start End Num_markers Seg_CN
## 1 PAISNS 1 11000 833000 337 -0.0270
## 2 PAISNS 1 835000 2715000 916 -1.0257
## 3 PAISNS 1 2717000 5969000 1552 -0.8316
## 4 PAISNS 1 5971000 12481000 3256 -0.9593
## 5 PAISNS 1 12483000 12777000 148 -0.2305
## 6 PAISNS 1 12779000 15551000 1287 -0.0083

 

#SV
head(nbl_svdat)

## TARGET.USI LeftChr LeftPosition LeftStrand RightChr RightPosition RightStrand Type
## 1 PAISNS chr1 12481576 - chr7 123358964 + TRA
## 2 PAISNS chr1 120543859 - chr2 65103235 - TRA
## 3 PAISNS chr2 231680218 + chr21 40045998 + TRA
## 4 PAISNS chr3 54814482 - chr17 42657036 + TRA
## 5 PAISNS chr4 97761321 - chr4 97765146 + INV
## 6 PAISNS chr4 190936134 + chr9 68411170 + TRA 

 

データのイニシャライズ(reformat)

#CNV
cnv <- validate.cnv(nbl_segdat)

#SV
svc <- validate.svc(nbl_svdat)

 

ゲノム全体のCNVのゲイン/ロス頻度の可視化。閾値fc.pctはパーセンテージで表される(例:0.2→参照と比較して20%の倍数変化)。

cnv_freq <- cnv.freq(cnv, fc.pct = 0.2, ploidy = FALSE) 

f:id:kazumaxneo:20201102231535p:plain

svpluscnvはサンプルごとの中央値を返す関数med.segmeanを実装しており、ハイパープロイディを持つサンプルの場合、各サンプルセグメントのlogRからサンプルごとの中央値を差し引くことができる(GithubのREADME参照)。

 

chr.arm.cnv 関数 は,各サンプルの各染色体アームのセグメント加重平均対数比を取得する。

charm.mat <- chr.arm.cnv(cnv, genome.v = "hg19", verbose = FALSE)
# heatmap plot of chromosome arm level CNV
require(gplots,quietly = TRUE,warn.conflicts = FALSE)
heatmap.2(charm.mat[order(rownames(charm.mat))[1:42],],Rowv=NA,trace='none',cexCol=.5, lhei=c(0.25,1), dendrogram='col', key.title="Copy number",
col=colorRampPalette(c("blue","white","red"))(256))

f:id:kazumaxneo:20201103120243p:plain

 

shattered.regions関数で生成されたオブジェクトを受け取るcirc.chromo.plotというcircclizeパッケージのラッパー関数を使ってcircos.plotを描画できる。

# It is important to make sure the input data.frame has no factors
library(taRifx)
segdat_lung_ccle <- remove.factors(segdat_lung_ccle)
svdat_lung_ccle <- remove.factors(svdat_lung_ccle)
cnv <- validate.cnv(segdat_lung_ccle)
# remove likely artifacts from segmentation data and fill gaps in the segmentation data (optional)
cnv_clean <- clean.cnv.artifact(cnv, verbose=FALSE,n.reps = 4,fill.gaps = TRUE)
svc <- validate.svc(svdat_lung_ccle)

shatt_lung <- shattered.regions(cnv, svc, fc.pct = 0.1, verbose=FALSE)
shatt_lung

shatt_lung_cnv <- shattered.regions.cnv(cnv_clean, fc.pct = 0.1, verbose=FALSE)
shatt_lung_cnv

  

 

circ.wg.plot(cnv,svc,sample.id = "SCLC21H_LUNG")

f:id:kazumaxneo:20201103120306p:plain

 

 

circ.chromo.plot(shatt_lung_cnv,sample.id = "SCLC21H_LUNG")

f:id:kazumaxneo:20201103120312p:plain

 

 

circ.chromo.plot(shatt_lung,sample.id = "SCLC21H_LUNG")

f:id:kazumaxneo:20201103120320p:plain

 

環状プロットは内向きから外向きの順番で、SV、CNV、shattered.region(紫)、そしてイデオグラムを表す。

 

3つまとめて

par(mfrow=c(1,3))
circ.wg.plot(cnv,svc,sample.id = "SCLC21H_LUNG")
circ.chromo.plot(shatt_lung_cnv,sample.id = "SCLC21H_LUNG")
circ.chromo.plot(shatt_lung,sample.id = "SCLC21H_LUNG")

f:id:kazumaxneo:20201102232019p:plain

 

GithubのREADMEでは、染色体不安定性を調べるためのCNVプロファイルの計算、CNVやSVコールに由来するブレイクポイントの総負荷を測定してブレイクポイント総負荷とゲノム変化率の相関を調べる関数、局所的な領域にブレイクポイントが蓄積されているのか、ゲノム全体にランダムな分布を示すのかを調べるためのブレイクポイント負荷の測定法などが説明されています。さらに、遺伝子ごとのCNVやSV数を集計して図にする手順も紹介されています。レポジトリを確認して下さい。

引用

Svpluscnv: analysis and visualization of complex structural variation data
Gonzalo Lopez, Laura E Egolf, Federico M Giorgi, Sharon J Diskin, Adam A Margolin
Bioinformatics, Published: 14 October 2020