アメリエフの技術ブログ

Amelieff Staff Blog

vcfファイルの読み出し

hr-kです。今回はRでvcfファイルを扱う時の話題で書きたいと思います。
Rでvcfファイルを扱うソースを書いており、気付いたことが一点。
Rでvcfを開くとき、vcfR(説明書のリンク)というライブラリにあるread.vcfRを使うのがすごく便利です。
具体的な使用方法はvcfRのパッケージをR > install.packages("vcfR")でインストールした後に

#ライブラリ読み込み
R > library(vcfR)
#データ読み込み
R > vcf <- read.vcfR(vcfファイル)

でvcfファイルを読み込めます。classを確認してみると

#クラスの確認
R > class(vcf)
[1] "vcfR"
attr(,"package")
[1] "vcfR"

"read.vcfR"で読み込んだ最初の産物"vcf"はclass-vcfRとなっているので、
普通のdata.frameを扱うときと同様には扱えないです。
ここで、INFOの列をdata.frameとして取り出してくれるINFO2dfを使います。

#info列をdata.frameに入れる
R > info <- INFO2df(vcf)
#念のためclassの確認
R > class(info)
[1] "data.frame"

のように使用でき、info列にある値(TYPE=SNP; DP=300; ...)をdata.frameとして読み込んでくれて、

     TYPE      DP       ...       
[1] SNP        300    ...
[2] SNP        288    ...

という形で吐き出してくれるのでデータの読み出しや切り分けが捗ります。