R/R_Usage [KOR.]

R을 활용한 미생물 군집 3D plot (mds, pcoa)

Cha-Nyong 2022. 11. 2. 20:31

안녕하세요,

미생물 분석에 자주 이용되는 군집 분석 중 하나는 Beta-diversity 입니다.

Diversity에도 종류가 있는데 Alpha-, Beta-, Gamma- Diversity가 있죠.

차이점은 무엇일까요?

alpha에서 Gamma로 갈 수록 그룹 집단이 소규모에서 대규모로 간다고 이해하시면 됩니다.

 

Alpha diversity는 생태계에서 특정 지역 내에서 다양성 분석이며, 주로 종 개수가 표현됩니다.

Beta diversity 종의 양 변화에 따라 측정 됩니다.

Gamma diversity 지역적 스케일로 다양성이 평가됩니다. 

 

아래 코드는 Beta diversity에 관한 분석과 3D로 시각화 하는 방법입니다.

패키지는 "rgl" "car"라는 패키지를 이용합니다.

아래 총 8단계 Step을 Follow-up 하면, 당신도 진정한 3D plot 전문가!

 

 

1. 패키지 설치

 

############ Packages Install ###########

 

install.packages("rgl")

install.packages("car")

 

######################################

 

 

2. 패키지 실행

 

############ Launch packages ###########

 

library("rgl")

library("car")

 

#######################################

 

3. 분석할 데이터 Input 

 

############## 데이터 입력 ###############

 

data <- read.delim("clipboard", row.names=1) #엑셀상에서 데이터프레임 Copy하고 명령어 실행

 

########################################

 

4. Distance 계산

 

################ Dist 계산 ################

 

data.dist <- dist(data[,3:359]) # [,3:999] 계산할 샘플 행 개수 999까지

 

#########################################

 

5. Metric Multidimensional Scaling (MDS) 계산

 

############### MDS 계산 #################

 

data.mds <- cmdscale(data.dist, k=3)

 

#########################################

 

6. 데이터 바탕으로 x, y, z축 Output 생성

 

############## Create x,y,z ################

 

data.x <- data.mds[,1]

data.y <- data.mds[,2]

data.z <- data.mds[,3]

 

#########################################

 

7. 데이터 시각화

 

################### Plot ##################

 

### i) 단일 색으로 관찰

 

scatter3d(data.x,data.y,data.z,

          col = "blue", 

          grid = TRUE,)

 

 

### ii) 평면도 관찰

 

scatter3d(data.x,data.y,data.z,

          groups = as.factor(data$weight), 

          grid = TRUE,

          

         )

        #data$weight에서 weight열을 group 기준으로 잡는 것

 

### iii) 입체적 범위 표시

scatter3d(x = data.x, y = data.y, z = data.z,

          groups = as.factor(data$species),

          surface=FALSE, ellipsoid = TRUE, grid = FALSE

          )

        #data$species란 species열을 group 기준으로 잡는 것

 

############################################

 

8. 3D 영상 실행

 

############## Launch 3D Video ###############

 

play3d(spin3d(axis=c(0,1,1), rpm=3), duration=30)

 

############################################

 

이상으로 microbiome 분석을 3D로 시각화하는 방법에 관한 포스팅이었습니다.

여기까지 무리 없이 실행하신 여러분께 박수!! 짝짝짝

잘 안되거나 궁금한 사항 있다면 아래 댓글로 달아주세요.