疫学と医療統計学と遺伝学と時々、大学院生活

疫学を専門とする大学院生の研究に関する備忘録的ページ。

R bioconductor"snpStats"を使用した、PLINKフォーマットのデータからRのデータに変換する

今回は、PLINK特有のファイルフォーマットである.bed、.bim、.famからRでの処理に適した形式に変換するbioconductorのsnpStatsというパッケージについて説明する。PLINKでの解析については、過去の記事1, 2をご参考にして頂きたい。

今回使用するデータはこのパッケージ(Haploviewパッケージにも)にサンプルとして用意されているものである。このデータは、20個の2つのアレルを持つ変異箇所と120名の対象者についてのデータである。

まずは、パッケージのインストールと読み込み

source("https://bioconductor.org/biocLite.R")
biocLite("snpStats")
library(snpStats)
fam <- system.file("extdata/sample.fam", package="snpStats")
bim <- system.file("extdata/sample.bim", package="snpStats")
bed <- system.file("extdata/sample.bed", package="snpStats")

これがPLINKフォーマットのデータを読み込むためのコマンド(read.plink())

sample <- read.plink(bed, bim, fam)

追記(2017/03/27)
普通にデータを読み込む時は、pathとfile名を指定すれば良い(*これは、同ディレクトリ内にある、sample.bed, sample.bim, sample.famを読み込むことを想定したコマンド)

sample <- read.plink("sample.bed", "sample.bim", "sample.fam")

sampleは3つの要素からなるリストである

  • sample$genotypeは、SNP matrixと呼ばれるSNPについてのデータ
  • sample$famは、famファイルに一致するもので、行名はSNP matrixのそれに一致する
  • sample$mapは、bimファイルに一致するもので、列名はSNP matrixのそれに一致する

このうち、sample$genotypeを実際に編集できる形式に変換する

data <- data.frame(sample$genotype)

head(data)
##    IGR1118a_1 IGR1119a_1 IGR1143a_1 IGR1144a_1 IGR1169a_2
##430         02         02         02         02         02
##412         02         02         02         02         02
##431         03         03         03         03         03
##438         03         03         03         03         03
##470         03         03         03         03         03

完成したdataにいくつかの共変量をIDでマージすることでゲノム情報と生活習慣の情報との解析を可能にする。(おそらくPLINK用に共変量のファイルも用意していることから、それらをマージすることで問題ないと思われる。)


20170321
RF