👩💻 Microbiome분석 단계
1) Preprocessing decontam
2) OTU clustering
3) Taxonomy classification 1 2
4) Diversity
- Alpha diversity
- Beta diversity 1
6) Differential abundance analysis
7) Functional analysis
8) Network analysis(Correlation) 1
+) Machine learning
🟦 Pemanova(permutational multivariate analysis of variance)란?
비모수적 검정법으로
귀무가설(null hypothesis, H0)는 "각 공간으로 정의된 그룹안에 centroid(중심점)와 dispersion(분산)은 모든 그룹마다 동일하다"이다.
즉 귀무가설이 기각되면 각 그룹안의 분포와 그룹 내의 분포가 차이가 있다고 볼 수 있다.
> 분석 데이터 : qiime2 tutorial : moving picture (phyloseq 으로 저장)
> 각 데이터는 혀, 양손, 장의 마이크로 바이옴을 비교한다
> 우리가 보고자 하는 것은 이 body.site그룹간의 차이가 있는지 비교하고자 한다
> distance는 bray curtis를 사용한다
🟦 File Import
library(phyloseq)
library(vegan)
setwd({현재 작업 위치 설정})
ps <- readRDS("./ps.rds")
ps
## phyloseq-class experiment-level object
## otu_table() OTU Table: [ 770 taxa and 34 samples ]
## sample_data() Sample Data: [ 34 samples by 8 sample variables ]
## tax_table() Taxonomy Table: [ 770 taxa by 7 taxonomic ranks ]
## phy_tree() Phylogenetic Tree: [ 770 tips and 768 internal nodes]
🟦 Read count table에서 Relative abundance table로 바꾸기
# 각 sample의 read수 합으로 각 count read를 나눠주자
# 각 sample마다 시퀀싱된 read수가 다르기때문에 표준화 해주는 작업니다.
ps.taxa.rel <- transform_sample_counts(ps, function(x) x/sum(x)*100)
saveRDS(ps.taxa.rel, "./ps_taxa_rel.rds") # 현재 분석 위치에 저장
ps.taxa.rel <-readEDS("./ps_taxa_rel.rd") # 다시 불러오기
🟦 PERMANOVA분석 수행하기
set.seed(1782) # 분석의 재현성을 위해 설정한다
# bray curtis distance matrix를 계산한다
bray <- phyloseq::distance(ps.taxa.rel, method = "bray")
# sample data를 💡data.frame💡 형태로 변환해준다
sampledf <- data.frame(sample_data(ps.taxa.rel))
# Adonis test = permanova test를 시행해준다
permanova <- adonis2(bray~body.site, data=sampledf, permutations=9999, method = "bray")
permanova
## Permutation test for adonis under reduced model
## Terms added sequentially (first to last)
## Permutation: free
## Number of permutations: 9999
##
## adonis2(formula = bray2 ~ body.site, data = sampledf, permutations = 9999, method = "bray")
## Df SumOfSqs R2 F Pr(>F)
## body.site 3 5.2330 0.42437 7.3723 1e-04 ***
## Residual 30 7.0982 0.57563
## Total 33 12.3312 1.00000
## ---
## Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
각 bodysite는 다른 그룹과 유의미한 차이가 있다
🟦 해석
[용어]
- SST(SSTotal) : 총 변동
- SSR(SSResiduals) : 설명 가능한 변동
- SSE : 설명 불가능한 변동
=>SST = SSR + SSE
The fraction of permuted results that provide a higher F value than the original data Pr(>F) represents the p-value which is significant when < 0.05.
SumOfSqs (Total Sum of Squares)
- squared distances의 값을 더하고 총 샘플수 -1(=33)으로 나눈 값이다
- Residual의 값은 같은 그룹안의 squared distances를 모두 더하고 각 그룹당 sample의 수로 나눈것이다
- body site의 값은 SSTotal - SSResiduals
R2(Coefficient of Determination;결정계수)
- SSR/SST = 총 변동에서 설명 가능한 변동이 차지하는 값
- 값이 1에 가까우면 선형관계, 0이면 어떠한 선형 상관관계가 존재하지 않음= 비선형관계
- 예측이 중요한 머신러닝 분야에서는 높으면 좋지만, 변수간의 관계를 설명하는 해석적 관점에서는 절대적 기준이 아님
F (F.model value)
- 각 Sum of squares을 자유도(n-1)로 나눈 Mean Squares의 비율에서 얻을 수 있음
- 0에 가까우면 각 독립변수가 종속변수에 영향을 주지 않는다고 봄
- 클수록, p value는 작아짐(유의하다는 뜻)
🟦 출처
https://deneflab.github.io/MicrobeMiseq/demos/mothur_2_phyloseq.html#alpha_diversity
https://scienceparkstudygroup.github.io/microbiome-lesson/06-beta-diversity/index.html
https://grunwaldlab.github.io/analysis_of_microbiome_community_data_in_r/07--diversity_stats.html
https://datalabbit.tistory.com/m/54