Rで解析:Macで導入が面倒かもしれませんがオススメです!「sigclust2」パッケージ


クラスタリング解析に大変便利なパッケージです。Windows環境ではインストールが易かったですが、MACは面倒でした。でも、MAC環境の方にも面倒を乗り越えてぜひ利用してほしいパッケージです。MACでのインストール方法を合わせて紹介します。

パッケージバージョンは0.99.11。実行コマンドはwindows 7およびOS X 10.11.2のR version 3.2.3で確認しています。


Macでの事前準備

下記コマンドを「アプリケーション」、「ユーティリティ」フォルダから「ターミナル」を実行して下記コマンドを実行してください。Xcodeが必要です。もし、XCodeが未インストールの場合はApp Storeよりインストールしてください。

また、macportsのインストールも必要です。下記URLより使用中のmac OSのバージョンに合わせてインストールしてください。

https://www.macports.org/install.php

sudo xcodebuild -license
sudo port install gcc48
g++-mp-4.8 -v
mkdir ~/.R
nano ~/.R/Makevars

CXX=g++-mp-4.8 -arch x86_64
CC=gcc-mp-4.8
SHLIB_OPENMP_CXXFLAGS= -fopenmp

#上記実行後"controlキー + o",そして"return"キー,"controlキー + x"を実行

パッケージのインストール

下記、コマンドを実行してください。本パッケージの利用は依存パッケージがかなりシビアです。もし、「devtools::install_github(“pkimes/sigclust2”)」コマンド実行後にエラーが出る場合は、エラーメッセージで表示されるパッケージをインストールしてください。

#念のため実行
source("https://bioconductor.org/biocLite.R")
biocLite(c("GO.db", "preprocessCore", "preprocessCore"))
#MACは以下を実行
install.packages("Matrix")
install.packages(c("Rcpp", "RcppEigen", "Rclusterpp"), type = "source")

#パッケージのインストール
install.packages("devtools")
devtools::install_github("pkimes/sigclust2")

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("sigclust2")

###データ例の作成#####
n <- 400
TestData <- matrix(rnorm(n), nrow = 100, ncol = 4)
#1列目のデータを入れ替え
TestData[, 1] <- TestData[, 1] + c(rep(1.0, 45), rep(-1.0, 45), rep(0, 10))
#2列目のデータを入れ替え
TestData[, 2] <- TestData[, 2] + c(rep(2.0, 45), rep(-2.0, 45), rep(1, 10))
colnames(TestData) <- paste0("Group", 1:4)
rownames(TestData) <- paste0("Data", 1:100)
########

#クラスタリングの計算:shcコマンド
#データを指定:xオプション
#距離計算方法の指定,distコマンドを利用:metricオプション;
#euclidean,cor,manhattan,maximum,minkowski等の指定が可能
#結合方法の指定:linkageオプション;
#rcpp=TRUEでRclusterpp.hclust,rcpp=FALSEでhclustコマンドを利用
#ward.D2,single,complete,average,median,centroid等の指定が可能
ShcResult <- shc(x = TestData,
                 metric = "cor",
                 linkage = "complete",
                 rcpp = FALSE,
                 ci = "2CI")
#結果の確認
summary(ShcResult)
shc object created using shc(..)
--------------------------------
Clustering Parameters:
 dissimilarity = cor
 linkage = complete
Testing Parameters:
 n_sim = 100
 icovest = 1
 ci = 2CI
 null_alg = hclust
 min_n = 10
 FWER control = FALSE

#構造の確認
names(ShcResult)
[1] "in_mat"     "in_args"    "eigval_dat" "eigval_sim" "backvar"    "nd_type"
[7] "ci_dat"     "ci_sim"     "p_emp"      "p_norm"     "idx_hc"     "hc_dat"

#結果をプロット
plot(ShcResult, hang = 1)

#クラスタ分析結果の特徴をプロット:diagnosticコマンド
#表示するクラスタの指定:kオプション;1で主ノード
#表示する内容を指定:ptyオプション;background,qq,covest,pvalueの指定が可能
SetPty <- c("background", "qq", "covest", "pvalue")
for(i in seq(length(SetPty))){
  diagnostic(ShcResult, K = 1, pty = SetPty[i])
}

出力例

・shcコマンド
ShcResult


・background
diagnostic_background

・qq
diagnostic_qq

・covest
diagnostic_covest

・pvalue
diagnostic_pvalue


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク