이상치 셀의 ID를 대화식으로 찾습니다.
10952 단어 Rbioinformatics
여기에서는, 100세포 중, 91~100번째의 세포가 이상치 세포라고 상정.
# PCAの結果だとする
# 91〜100番目に外れ値細胞が入っているけど、本番ではそれがわからないと仮定する
test.data <- data.frame(
PC1 = c(rnorm(90), rnorm(10, 4)),
PC2 = c(rnorm(90), rnorm(10, 4)),
PC3 = c(rnorm(90), rnorm(10, 4))
)
rownames(test.data) <- paste0("Cell", 1:100)
index.test.data <- c(rep(rgb(0,0,1,0.5), 90), rep(rgb(1,0,0,0.5), 10))
names(index.test.data) <- c(rep("Normal", 90), rep("Outlier", 10))
pairs(test.data, col=index.test.data, pch=16)
R의 표준 함수(plot, pairs 등)에서는 점과 라벨을 동시에 보기 쉽게 보여주는 것이 번거로울 것 같다.
그래서 몇 가지 확장 패키지를 시도했습니다.
방법 1 : rgl 패키지
library("rgl")
plot3d(test.data, col=index.test.data)
text3d(test.data, text=rownames(test.data))
이 방법이라면, 미리 세포의 ID를 데이터 점 위에 겹쳐 놓는다.
간단하지만 데이터 점이 많을수록 ID가 길어질수록 보기 어려워진다는 약점도 있다.
방법 2 : plotly 패키지
library("plotly")
plot_ly(test.data, x = PC1, y = PC2, z = PC3,
type = "scatter3d", mode = "markers",
text = rownames(test.data),
group = names(index.test.data)
)
plotly는 한 번 plotly 서버에서 계정 작성, API 키 취득 등의 절차를 거치고, 서버 측에서 그리기 때문에, 사용하기 어려웠지만, 최근 로컬에서도 실행할 수 있게 된 것 같고, 최근 몹시 사용하기 쉽다.
그림과 같이 커서를 맞추면 그 데이터 점의 세포 ID나 좌표, 그 외 메타 정보가 나온다.
또, 2차원의 산포도라면, 커서로 선택한 에리어만 줌 하는 것도 할 수 있다(3차원에서는 할 수 없다?).
plot_ly(test.data[,1:2], x = PC1, y = PC2,
type = "scatter", mode = "markers",
text = rownames(test.data),
group = names(index.test.data)
)
방법 3 : pairsD3 패키지
library("pairsD3")
pairsD3(test.data, group=names(index.test.data))
# Shinyでサーバーが立ち上がるが、止め方がわからない => Rを一回閉じることになる?
# shinypairs(test.data, group=names(index.test.data))
이 방법은, pairs 함수를 그대로 인터랙티브하게 한 느낌으로, 사용하기 쉽다.
shinypairs 함수로 Shiny 서버를 시작하면, 선택한 데이터의 리스트를 취득할 수 있어 편리하고, 그 자리에서 파라미터를 조작하는 것도 가능하게 되지만, 이 함수는 한 번 기동하면 멈출 수 없는 것 같다.
Reference
이 문제에 관하여(이상치 셀의 ID를 대화식으로 찾습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/antiplastics/items/326794c618acc1ee3a62
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
library("rgl")
plot3d(test.data, col=index.test.data)
text3d(test.data, text=rownames(test.data))
library("plotly")
plot_ly(test.data, x = PC1, y = PC2, z = PC3,
type = "scatter3d", mode = "markers",
text = rownames(test.data),
group = names(index.test.data)
)
plotly는 한 번 plotly 서버에서 계정 작성, API 키 취득 등의 절차를 거치고, 서버 측에서 그리기 때문에, 사용하기 어려웠지만, 최근 로컬에서도 실행할 수 있게 된 것 같고, 최근 몹시 사용하기 쉽다.
그림과 같이 커서를 맞추면 그 데이터 점의 세포 ID나 좌표, 그 외 메타 정보가 나온다.
또, 2차원의 산포도라면, 커서로 선택한 에리어만 줌 하는 것도 할 수 있다(3차원에서는 할 수 없다?).
plot_ly(test.data[,1:2], x = PC1, y = PC2,
type = "scatter", mode = "markers",
text = rownames(test.data),
group = names(index.test.data)
)
방법 3 : pairsD3 패키지
library("pairsD3")
pairsD3(test.data, group=names(index.test.data))
# Shinyでサーバーが立ち上がるが、止め方がわからない => Rを一回閉じることになる?
# shinypairs(test.data, group=names(index.test.data))
이 방법은, pairs 함수를 그대로 인터랙티브하게 한 느낌으로, 사용하기 쉽다.
shinypairs 함수로 Shiny 서버를 시작하면, 선택한 데이터의 리스트를 취득할 수 있어 편리하고, 그 자리에서 파라미터를 조작하는 것도 가능하게 되지만, 이 함수는 한 번 기동하면 멈출 수 없는 것 같다.
Reference
이 문제에 관하여(이상치 셀의 ID를 대화식으로 찾습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/antiplastics/items/326794c618acc1ee3a62
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
library("pairsD3")
pairsD3(test.data, group=names(index.test.data))
# Shinyでサーバーが立ち上がるが、止め方がわからない => Rを一回閉じることになる?
# shinypairs(test.data, group=names(index.test.data))
Reference
이 문제에 관하여(이상치 셀의 ID를 대화식으로 찾습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/antiplastics/items/326794c618acc1ee3a62텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)