本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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

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

このコードの続きをAIに聞く

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.