天天看點

微生物組間差異分析工具LEfSe

作者:百合木瓜

更多生信分析工具請關注上方公衆号

LEfSe(LDA Effect Size)是一種用于組間顯著差異物種檢測的工具,能夠在不同組間尋找統計學差異顯著的Biomarker。通過将統計顯著性檢驗與生物學一緻性、效應相關性檢驗相結合,确定最有可能解釋類别之間的差異特征(基因、功能、進化枝、分類單元、生物體)。

微生物組間差異分析工具LEfSe

原理:

  • 采用非參數因組Kruskal-Wallis秩和檢驗檢測不同分組間豐度差異顯著的物種;
  • 微生物多樣性分析中,樣本物種豐度分布不确定,而Kruskal-Wallis秩和檢驗假設各樣本服從機率分布具有相同的中位數,不考慮樣本總體分布類型,資料是否符合方差齊性、是否符合正态分布。但此檢驗并未識别出這些差異發生在那些樣本之間及差異的大小。
  • 再利用Wilcoxon秩和檢驗對顯著差異物種類中的所有子類成對比較檢驗生物學一緻性;
  • Wilcoxon秩和檢驗應用于不同類的子類的比較,把觀測值和零假設的中心位置之差的絕對值的秩分别按照不同符号相加作為其檢驗統計量,檢驗成對觀測資料之差是否來自均值為0的總體(即産生資料的總體是否具有相同的均值)。如果一個特征出現在兩個類樣本中,每個類有3個子類,那麼不同子類之間的所有9個比較都必須違反原假設,并且中位數之間差異的所有符合必須一緻,才可被認為生物marker。
  • 最後用線性判别分析(LDA)對資料進行降維并評估差異顯著物種的影響力(即LDA score),并進行可視化展示。
  • LDA線性判别分析是一種有監督資料降維方法,在機器學習、資料挖掘領域比較熱門的一個算法。主要思想是将高維空間中的資料投影到低維的空間中,盡量使得投影後同一類樣本聚集在一起,不同類别間的樣本距離越遠越好,即投影後類内方差小而類間方差最大。建立LDA模型,其中類作為因變量,特征值、子類、主題值作為自變量,用于評估它們的影響大小。
微生物組間差異分析工具LEfSe

分析結果:

LEfSe分析結果包括LDA值分布柱狀圖、進化分支圖、差異物種在不同分組間的樣本相對豐度比較圖。

  • LDA值分布柱狀圖:展示LDA Score大于預設值(預設2)的顯著差異物種,即具有統計學差異的Biomarker。柱狀圖顔色代表不同組别,長短代表LDA Score,不同組間顯著差異物種的影響程度。
  • 進化分支圖:由内至外輻射的圓圈代表由門至屬的分類級别。在不同類别上的每一個小圓圈代表該水準下的一個分類,小圓圈直徑大小與相對豐度大小呈正比。着色原則:無顯著差異的物種統一着色為黃色,差異顯著的物種(Biomarker)跟随組進行着色,紅色節點表示在紅色組别中起到重要作用的微生物,綠色節點表示在綠色組别中起到重要作用的微生物。若圖中某一組缺失,說明此組無顯著差異的物種。未在圖中顯示的Biomarker對應的字母編号與物種名稱繪制在右側。
微生物組間差異分析工具LEfSe

安裝

conda
conda install -c bioconda lefse
conda activate base
#lefse預設安裝在base下


docker
docker pull biobakery/lefse
docker run -ti biobakery/lefse bash           

使用

格式化輸入檔案
lefse_format_input.py hmp_aerobiosis_small.txt hmp_aerobiosis_small.in -c 1 -s 2 -u 3 -o 1000000
#參數:-f {c,r}:設定特征值在行或列,預設r(行)
#      -c [1..n_feats]:設定那個特征值作為分類,預設1,第一行/列作為分類;
#      -s [1..n_feats]: 設定那個特征值作為子分類,預設-1,沒有子分類;
#      -o float : 設定歸一化值,預設-1.0,沒有歸一化;
#      -u [1..n_feats]: 設定那個特征值作為主題,預設-1,沒有主題;
#      -m {f,s}: 設定缺失值采用的政策,f移除缺失值的特征,s移除缺失值的樣本,預設f;
#      -n int: 設定每個子類的最小基數(基數低的子類會被歸為一組,如果基數仍然很低,則不與他們進行成對比較)
#      -biom_c BIOM_CLASS:對于輸入檔案是biom格式,設定那個特征值用作分類;
#      -biom_s BIOM_SUBCLASS:對于輸入檔案是biom格式,設定那個特征值作為子類;
生成LEfSe分析結果
lefse_run.py hmp_aerobiosis_small.in hmp_aerobiosis_small.res
#參數:-o str: 設定用于導出結果的檔案(隻有簡明的文字形式)
#     -a float: 設定Anova測試的alpha值,預設0.05;
#     -w float: 設定Wilcoxon的alpha值,預設0.05;
#     -l float: 設定LDA分數絕對值的門檻值,預設2.0;
#     --nlogs int     max log ingluence of LDA coeff
#     --wilc int: 是否執行Wicoxon步驟,預設1;
#     -r str: select LDA or SVM for effect size,預設LDA
#     --svm_norm int: whether to normalize the data in [0,1]  for SVM feature waiting (default  strongly suggested)
#     -b int:設定LDA的疊代次數,預設30;
#     -e int: 設定是否隻在同名子類中進行wilcoxon測試,預設0;
#     -c int:  set whether perform the wilcoxon test ing the Curtis's approach [BETA VERSION] (default 0);
#     -f float:  set the subsampling fraction value for each bootstrap iteration,預設0.66666;
#     -s {0,1,2}:  set the multiple testing correction options. 0 no correction (more strict, default), 1 correction for independent  comparisons, 2 correction for dependent comparison;
#     --min_c int: 執行wilcoxon測試的每個子類的最小樣本數,預設10;
#     -t str: 設定分析的标題,預設不帶擴充名的輸入檔案名;
#      -y {0,1}        (for multiclass tasks) set whether the  test is performed in a one-against-one  ( 1 - more strict!) or in a one- against-all setting ( 0 - less strict) (default 0);


結果可視化
lefse_plot_res.py hmp_aerobiosis_small.res hmp_aerobiosis_small.png
#參數:--format {png,svg,pdf}:輸出圖像格式;
#      --dpi DPI
#      --title TITLE
#      --title_font_size TITLE_FONT_SIZE
#      --class_legend_font_size CLASS_LEGEND_FONT_SIZE
#      --width WIDTH
#      --height HEIGHT :僅使用垂直的直方圖;
#      --left_space LS
#      --right_space RS
#      --orientation {h,v}
#      --autoscale {0,1}
#      --background_color {k,w} set the color of the background                        
#      --subclades N_SCL 要顯示的标簽級别數(-1從葉子開始, 1表示所有級别,預設為 1);
#      --max_feature_len MAX_FEATURE_LEN:特征字元串的最大長度,預設60;
#      --otu_only:Plot only species resolved OTUs (as opposed to all levels)
#      --report_features     Report important features to STDOUT
lefse_plot_cladogram.py hmp_aerobiosis_small.res hmp_aerobiosis_small.cladogram.png --format png
#參數:--width WIDTH
#     --height HEIGHT
#     --top TOP    set maximum y limit (-1.0 means automatic limit)
#     --bot BOT    set minimum y limit (default 0.0, -1.0 means automatic limit)
#     --title_font_size TITLE_FONT_SIZE
#     --class_font_size CLASS_FONT_SIZE
#     --class_label_pos {up,down}
#     --subcl_mean {y,n}
#     --subcl_median {y,n}
#     --font_size FONT_SIZE
#     -n flt   unused
#     --format {png,pdf,svg}  the format for the output file
#     -f {all,diff,one}: 是否繪制所有特征(all),根據LEfSe繪制差異豐富的特征(diff),僅繪制一個(使用--feature_name給出的特征);
#     --feature_name FEATURE_NAME:要繪制的特征名(由.分隔級别)
#     --feature_num FEATURE_NUM:要繪制的特征數量;
#     --archive {zip,none}
#     --background_color {k,w}: 設定背景顔色
#     --dpi DPI           

輸入檔案示例

制表符分隔的文本檔案,由數字特征表、類、子類和主題構成。特征值可以是reads數,也可以是相對豐度。菌群分類名稱用“|”或“.”分隔。

bodysite                                mucosal         mucosal        mucosal         mucosal         mucosal         non_mucosal     non_mucosal     non_mucosal     non_mucosal     non_mucosal
subsite                                 oral            gut            oral            oral            gut             skin            nasal           skin            ear             nasal
id                                      1023            1023           1672            1876            1672            159005010       1023            1023            1023            1672
Bacteria                                0.99999         0.99999        0.999993        0.999989        0.999997        0.999927        0.999977        0.999987        0.999997        0.999993
Bacteria|Actinobacteria                 0.311037        0.000864363    0.00446132      0.0312045       0.000773642     0.359354        0.761108        0.603002        0.95913         0.753688
Bacteria|Bacteroidetes                  0.0689602       0.804293       0.00983343      0.0303561       0.859838        0.0195298       0.0212741       0.145729        0.0115617       0.0114511
Bacteria|Firmicutes                     0.494223        0.173411       0.715345        0.813046        0.124552        0.177961        0.189178        0.188964        0.0226835       0.192665
Bacteria|Proteobacteria                 0.0914284       0.0180378      0.265664        0.109549        0.00941215      0.430869        0.0225884       0.0532684       0.00512034      0.0365453
Bacteria|Firmicutes|Clostridia          0.090041        0.170246       0.004831           

喜歡的小夥伴可關注下方公衆号