PLINK-その1

すごい低いインフォマレベルからPLINKを使ってみたいと思う

PLINK: https://www.cog-genomics.org/plink2/

plink_win64_20200121 をダウンロード

PLINK は 1.90 beta から vcf をインプットに使えるようになった。

テスト データ: とある集団600人分の60遺伝子のターゲットシーケンスデータから作られたmarge vcf 

→ 人種は限られるが小さいので最初に使うには良いのかなと選択

→  一部遺伝的に違う集団が入っているのでそれを検出できるか(取り除いた前か後か要確認)

bed ファイル作成

plink_win64_20200121\plink.exe --vcf C:\Users\-省略-\population.600.vcf --make-bed --out population600

population600.bed, population600.bim, population600.fam ができた

岡田先生の資料よりいろいろできるそうなので勉強させていただく

http://www.sg.med.osaka-u.ac.jp/files/StatGenSummerSchool2019_GenomeDataAnalysis1.pdf

サンプル間の遺伝的な近さ(近縁関係)の推定

plink_win64_20200121\plink.exe --bfile population600 --genome --out population600

サンプルの遺伝的背景の推定

plink_win64_20200121\plink.exe --bfile population600 --cluster --mds-plot 4 --out population600

plink_win64_20200121\plink.exe --bfile population600 --pca --out population600

ここから作ったファイルをRでプロットしてみる

x <- read.table("C:/Users/-省略-/chinese.mds", header=T)

tate <- x$C1
yoko <- x$C2

plot(tate,yoko) (<= 正しくはplot(yoko,tate))

すごい微妙なものが出てきた(笑

-> 詳しい方に相談したところ分かれ方がおかしいので、フィルタリングをきちんとせよとのこと(フィルタリングはクラスタリングにおいてとても大事)

PCA もやってみたけどフィルタリングをしていないので同じく…

z <- read.table("C:/Users/-省略-/population600.eigenvec")

tate <- z$V3
yoko <- z$V4

MAF でフィルタリングしてみる

MAF = 0.2を適用

plink_win64_20200121\plink.exe --vcf C:\Users\-省略-\population.600.vcf 
--maf 0.2 --make-bed --out population600_maf2

104 variants removed due to minor allele threshold(s)
3658 variants and 600 people pass filters and QC.

結構厳しい条件下と思いましたが減らないものでした。

z <- read.table("C:/Users/-省略-/population600_maf2.eigenvec")

tate <- z$V3
yoko <- z$V4

遠方にいた集団が消滅。タイピングエラーによる影響であったよう?

MAF = 0.4 を適用(だいぶ閾値としては厳しいけどやってみる)

plink_win64_20200121\plink.exe --vcf C:\Users\-省略-\population600.vcf 
--maf 0.4 --make-bed --out population600_maf4

291 variants removed due to minor allele threshold(s)
3471 variants and 592 people pass filters and QC.

Rでプロット

z <- read.table("C:/Users/-省略-/population600_maf4.eigenvec")

> yoko <- z$V4
> tate <- z$V3

> plot(yoko, tate)
> yoko <- z$V7
> tate <- z$V3

> plot(yoko, tate)

っという感じ。

他のフィルターも検討していく!

コメント

タイトルとURLをコピーしました