Making a pairwise distance matrix in pandas

This is a somewhat specialized problem that forms part of a lot of data science and clustering workflows. It starts with a relatively straightforward question: if we have a bunch of measurements for two different things, how do we come up with a single number that represents the difference between the two things?

An example […]

Pandas and Sklearn

pandas isnull函数检查数据是否有缺失 pandas isnull sum with column headers

 

for col in main_df: print(sum(pd.isnull(data[col])))

I get a list of the null count for each column:

0 1 100

What I’m trying to do is create a new dataframe which has the column header alongside the null count, e.g.

col1 | 0 col2 | 1 col3 […]

微生物多样研究—差异分析

1. 随机森林模型

随机森林是一种基于决策树(Decisiontree)的高效的机器学习算法,可以用于对样本进行分类(Classification),也可以用于回归分析(Regression)。

它属于非线性分类器,因此可以挖掘变量之间复杂的非线性的相互依赖关系。通过随机森林分析,可以找出能够区分两组样本间差异关键OTU。

Feature Importance Scores表格-来源于随机森林结果

记录了各OTU对组间差异的贡献值大小。

注:一般地,选取Mean_decrease_in_accuracy值大于0.05的OTU,作进一步分析;对于组间差异较小的样本,该值可能会降至0.03。

2. 交叉验证分析

交叉验证(Crossvalidation),是一种统计学上将数据样本切割成较小子集的实用方法。先在一个子集上做分析,而其它子集则用来做后续对此分析的确认及验证。一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。

其中最常见的为k-foldercross-validation,它指的是将所有数据分成k个子集,每个子集均做一次测试集,其余的作为训练集。交叉验证重复k次,每次选择一个子集作为测试集,并将k次的平均交叉验证识别正确率作为结果。

所有的样本都被作为了训练集和测试集,每个样本都被验证一次。

对随机森林方法筛选出的关键OTU的组合进行遍历,以期用最少的OTU数目组合构建一个错误率最低高效分类器。

一般地,对随机森林分析筛选出的关键OTU,按照不同组合进行10倍交叉验证分析,找出能够最准确区分组间差异的最少的OTU组合,再做进一步的分析,如ROC分析等。

注:图中横坐标表示不同数量的OTU组合,纵坐标表示该数量OTU组合下分类的错误率。OTU组合数越少,且错误率越低,则该OTU组合被认为是能够区分组间差异的最少的OTU组合。

3. ROC曲线

接收者操作特征曲线(Receiveroperating characteristic curve,ROC 曲线)也是一种有效的有监督学习方法。ROC分析属于二元分类算法,用来处理只有两种分类的问题,可以用于选择最佳的判别模型,选择最佳的诊断界限值。

可依据专业知识,对疾病组和参照组测定结果进行分析,确定测定值的上下限、组距以及截断点(cut-offpoint),按选择的组距间隔列出累积频数分布表,分别计算出所有截断点的敏感性(Sensetivity)、特异性和假阳性率(1-特异性:Specificity)。以敏感性为纵坐标代表真阳性率,(1-特异性)为横坐标代表假阳性率,作图绘成ROC曲线。ROC曲线越靠近左上角,诊断的准确性就越高。亦可通过分别计算各个试验的ROC曲线下的面积(AUC)进行比较,哪一种试验的AUC最大,则哪一种试验的诊断价值最佳。

注:图中横坐标为假阳性率false positive rate(FPR):Specificity,纵坐标为真阳性率true positive rate(TPR):Sensetivity。最靠近左上角的ROC曲线的点是错误最少的最好阈值,其假阳性和假阴性的总数最少。ROC曲线下的面积值在1.0和0.5之间。在AUC>0.5的情况下,AUC越接近于1,说明诊断效果越好。AUC在 0.5~0.7时有较低准确性,AUC在0.7~0.9时有一定准确性,AUC在0.9以上时有较高准确性。AUC=0.5时,说明诊断方法完全不起作用,无诊断价值。AUC<0.5不符合真实情况,在实际中极少出现。

4. Wilcoxon秩和检验分析

Wilcoxonrank-sum test,也叫曼-惠特尼U检验(Mann–WhitneyU test),是两组独立样本非参数检验的一种方法。其原假设为两组独立样本来自的两总体分布无显著差异,通过对两组样本平均秩的研究来实现判断两总体的分布是否存在差异,该分析可以对两组样品的物种进行显著性差异分析,并对p值计算假发现率(FDR)q值。

注:mean分别为两组样品物种的平均相对丰度,sd分别是两组样本物种相对丰度的标准差。P值为对两组检验原假设为真的概率值,p<0.05表示存在差异,p<0.01表示差异显著,q值为假发现率。

5. 差异菌群Heatmap分析

以10倍交叉验证(10-foldcross-validation)估计泛化误差(Generalizationerror)的大小,其余参数使用默认设置。建模结果同时包含“基线”误差(Baselineerror)的期望值,即数据集中属于最优势分类的样本全部被错误分类的概率。每个OTU根据其被移除后模型预报错误率增加的大小确定其重要度数值,重要度越高,该OTU对模型预报准确率的贡献越大。

根据挑选出来的差异OTU,根据其在每个样品中的丰度信息,对物种进行聚类,绘制成热图,便于观察哪些物种在哪些样品中聚集较多或含量较低。

注:图中越接近蓝色表示物种丰度越低,越接近橙红色表示丰度越高。左边的聚类树是根据各物种间的spearman相关性距离进行聚类;上边的聚类树是采用样本间距离算法中最常用的Bray-Curtis算法进行聚类。

6. 两组样本Welch’s t-test分析

两组不同方差的样本可使用Welch’st-test进行差异比较分析,通过此分析可获得在两组中有显著性差异的物种[或差异基因丰度—适用于元(宏)基因组]。

注:上图所示为不同基因丰度(或物种)在两组样品中的丰度比例,中间所示为95%置信度区间内,物种丰度的差异比例,最右边的值为p值,p值<0.05,表示差异显著。

7. Shannon多样性指数比较盒状图

将不同分类或环境的多组样本的Shannon多样性指数进行四分位计算,比较不同样本组的组间Shannon指数差异。同时进行非参数Mann-Whitney判断样本组间的显著性差异

[…]

ANOSIM,PERMANOVA/Adonis,MRPP (转贴)

1. ANOSIM 组间相似性分析 相似性分析(ANOSIM)是一种非参数检验,用来检验组间(两组或多组)的差异是否显著大于组内差异,从而判断分组是否有意义。首先利用 Bray-Curtis 算法计算两两样品间的距离,然后将所有距离从小到大进行排序, 按以下公式计算 R 值,之后将样品进行置换,重新计算 R值,R大于 R 的概率即为 P 值。

注:图上总共有 N+1 个盒子,N 为分组数量。“Between”的盒子指代的是分组之间的差异,其他分别代表各自组 内差异。R 值范围为-1 到+1,实际中 R 值一般从 0 到 1。R 值接近 1 表示组间差异越大于组内差异,R 值接近 0 则表示组间和组内没有明显差异;此次统计分析的可信度用 P-value 表示,P< 0.05 表示统计具有显著性。 2. PERMANOVA/Adonis 置换多元方差分析 PERMANOVA (Permutational multivariate analysis of variance,置换多元方差分析),又称 Adonis 分析,可利用半度量(如 Bray-Curtis)或度量距离矩阵(如 Euclidean)对总方差进行分解,通过线性模型分析不同分组因素 或环境因子(如临床表型数据、土壤理化指标等)对样品差异的解释度,并使用置换检验进行显著性分析。

3. MRPP […]

Adonis与ANOSIM检验究竟是什么?(转贴)

做微生物16S测序的时候,公司的报告里经常会给到两种检验Adonis和ANOSIM,听过t.test、wilicox、anova各种检验,那么Adonis和ANOSIM检验是什么呢

Adonis 多元方差分析

Adonis,多元方差分析,亦可称为非参数多元方差分析。其原理是利用距离矩阵(比如基于Bray-Curtis距离、Euclidean距离)对总方差进行分解,分析不同分组因素对样品差异的解释度,并使用置换检验对其统计学意义进行显著性分析。

Adonis分析结果通常如下:

Index Df SumsOfSqs MeanSqs F.Model R2 Pr(>F) GroupFactor 4 1.0899 0.27248 1.4862 0.14883 0.011 Residuals 34 6.2335 0.18334 0.85117 Total 38 7.3234 1.00000

其中,GroupFactor表示实验中的分组方法 Df表示自由度 SumsOfSqs表示总方差即离差平方和 MeanSqs表示均方差(SumsOfSeqs/Df) F.Model表示检验值F R2表示该分组方式对样品间差异的解释度,R2越大说明该分组方案对差异的解释度越高 Pr表示P值,小于0.05时显著说明本次检验的可信度高。

那么Adonis具体要如何使用呢? 在微生物的分析中我们通常把Adonis和PCA分析结合在一起。进行完PCA分析后,我们想要检验不同的分组之间究竟是否有差异,差异是否显著,这时候我们就可以用Adonis检验。如下图,虽然我们可以看到三组被分开了,但是这种分开真的显著吗?这种分组又能对样本的差异解释多少呢?那么右侧的Adonis检验就告诉了我们明确的答案,这种分组时显著的,R2=0.11。

Sylvain I A, Adams R I, Taylor J W. A different suite: The assemblage of distinct fungal […]

alpha多样性

扩增子数据分析之多样性指数: alpha多样性

多样性指数(Diversity index)和计算公式可以见: wikipedia

Alpha多样性(Alpha Diversity)是对某个样品中物种多样性的分析,包含样品中的物种类别的多样性——丰富度(Richness)和物种组成多少的整体分布——均匀度(Evenness)两个因素,通常用Richness,Chao1,Shannon,Simpson,Dominance和Equitability等指数来评估样本的物种多样性。

丰富度指数

Richness, Chao1,Shannon三个指数是常用的评估丰富度的指标,数值越高表明样品包含的物种丰富度就越高。

Richness指数: 指样本中被检测到的OTU量; Chao1指数 : 通过低丰度OTUs来进一步预测样品中的OTUs数量; Shannon指数 : 计算考虑到样品中的OTUs及其相对丰度信息, 通过对数(如以2为底的shannon_2,以自然对数为底的shannon_e 以10为底的shannon_10)转换来预测样品中的分类多样性。

均匀度指数

Simpson,Dominance和Equitability三个指数是常用的评估均匀度的指标。

Simpson指数 : 表示随机选取两条序列属于同一个分类(如OTUs)的概率(故数值在0~1之间), 数值越接近1表示表明OTUs的丰度分部越不均匀; Dominancez指数 : 取值为1-Simpson,表示随机选取两条序列属于不同分类(如OTUs)的概率; Equitability指数: 根据Shannon指数值计算,当其值为1时表明样品中的物种丰度分布绝对均匀, 而其值越小这表明物种丰度分布呈现出越高的偏向。

汇总表:

指数 单位 计算方式 richness OTUs 样本中至少包含一条序列的OTU数目 chao1 OTUs N + S^2 / (2D^2),其中N为OTU个数, S为丰度为1的OTUs个数,D为丰度为2的OTUs数目; shannon_2 bits sum(f), 对所有OTU频率计算p*log(p,2)和, p为OTU的频率; shannon_e nats […]

Multivariate analyses in R (PERMANOVA )

https://rpubs.com/collnell/manova

Multivariate analyses in R

By C Nell

Types of questions

Do groups differ in composition? Does community structure vary among regions or over time? Do environmental variables explain community patterns? Which species are responsible for differences among groups?

Multivariate analysis of ecological communities with vegan

install.packages(‘vegan’) library(vegan) ##Community ecology: ordination, disversity & dissimilarities Dataset […]

Correlation tests, correlation matrix, and corresponding visualization methods in R (forward)

https://rstudio-pubs-static.s3.amazonaws.com/240657_5157ff98e8204c358b2118fa69162e18.html

Correlation tests, correlation matrix, and corresponding visualization methods in R Igor Hut 12 January, 2017 Install and load required R packages Methods for correlation analyses Compute correlation in R R functions Preliminary considerations Preleminary test to check the test assumptions Pearson correlation test Kendall rank correlation test Spearman rank correlation coefficient How to interpret […]

Correlation analysis (zhuantie)

Defination Types of correlation coefficient Correlation formula Pearson correlation formula Spearman correlation formula Kendall correlation formula Calculate correlation coefficient Preleminary test to check the test assumptions data are normally distributed data are not normally distributed Interprete correlation coefficient Generate correlation matrix Compute correlation matrix Method one: use ggcorrplot() Method two: use rcorr() Method three: […]

How to Compare Regression Slopes

How to Compare Regression Slopes Jim Frost 13 January, 2016 9 75 83 27

If you perform linear regression analysis, you might need to compare different regression lines to see if their constants and slope coefficients are different. Imagine there is an established relationship between X and Y. Now, suppose you want to determine […]