微生物常见统计检验方法比较及选择

news2024/11/29 1:49:30

谷禾健康

在这里插入图片描述

微生物组经由二代测序分析得到庞大数据结果,其中包括OTU/ASV表物种丰度表,alpha多样性、beta多样性指数,代谢功能预测丰度表等,这些数据构成了微生物组的变量,大量数据构成了高纬度数据信息

针对不同的微生物数据,和研究目的的不同,数据分析时需要用到不同的统计分析方法,例如降维、聚类、机器学习等。

本文将介绍和比较微生物测序数据统计方法和分析工具,以及微生物组数据分析结果展示原则。旨在帮助谷禾合作方或客户更好地理解和解读微生物组数据分析结果

✦ 假设检验

假设检验是根据一定的假设条件,由样本推断总体的一种方法。

假设检验的基本思想是小概率反证法思想,小概率思想认为小概率事件在一次试验中基本上不可能发生,在这个方法下,我们首先对总体作出一个假设,这个假设大概率会成立,如果在一次试验中,试验结果和原假设相背离,也就是小概率事件竟然发生了,那我们就有理由怀疑原假设的真实性,从而拒绝这一假设。

根据微生物组研究目的的不同,可以将数据检验方法分为:

1)组间差异检验

2)微生物组与临床或实验数据之间的相关性检验

✦ 组间差异分析

组间差异分析或者叫组间差异显著性检验,差异显著性检验是微生物数据分析时用到的最多的统计学方法。

通常我们需要比较两组或多组数据之间是否有显著差异性,同时还要根据显著性检验识别出不同分组之间的差异变量。这需要用到统计学上的假设检验方法,检验分组之间是否有差异性,并且计算其差异程度

注:所有的差异检验都基于一个假设:组间没有差异,及变量之间没有关系(即原假设,H0)。

假设检验方法

在统计学上,假设检验方法可分为两大类,参数检验非参数检验

➦ 参数检验

参数检验(Parameter test)是基于样本的观测数据对总体参数(比如总体均值、方差)及总体参数差异性的检验

•参数检验需要具备一定的条件

参数检验要求总体具备一定条件才能适用,例如总体需呈正态分布、涉及两个总体时两总体必须满足方差同质性(即方差相等)。t检验、F检验(方差分析),都属于参数检验方法。

➦ 非参数检验

在实际分析过程中,数据会经常遇到不满足参数检验前提条件的情况,比如总体不服从正态分布,或者总体分布未知,这时就不能使用参数检验方法,不然得到的检验结果会不准确。在参数检验方法不适用的情况,就需要采用非参数检验方法进行统计检验。

•总体分布情况未知可使用非参数检验

非参数检验(Non-parametric test)是在总体分布未知或者知之甚少的情况下,通过样本数据对总体分布形态等特征进行推断的统计检验方法。

由于此种检验方法在由样本数据推断总体的过程中不涉及总体分布的参数,不要求总体分布满足某些条件,使用条件较为宽松,因此被称为非参数检验。

参数检验与非参数检验的一些区别

在这里插入图片描述

★ 微生物组数据的特点

微生物组数据具有以下特点:

1.多样性高:微生物组数据通常包含大量的微生物种类,且种类之间的相对丰度差异较大。

2.维度高:微生物组数据通常包含大量的特征,例如16S rRNA基因序列或基因组序列,每个特征都可以看作是一个维度。

3.数据稀疏:微生物组数据通常是稀疏的,即大部分微生物种类的相对丰度很低,只有少数微生物种类的相对丰度较高。

4.非正态分布:微生物组数据通常不满足正态分布假设,且方差通常与均值相关。

5.数据复杂性高:微生物组数据中存在许多复杂的相互作用和关系,例如共生、拮抗和协同作用等。

考虑到微生物数据的以上特点,我们更推荐采用非参数假设检验的算法,在报告中我们大部分也采用的是非参数检验方法对组间差异进行检验。

差异显著性检验的方法有很多种,需要根据不同的情况,选择适合自身实验情况的方法进行分析。接下来对几种常见的统计检验方法进行介绍。

参数检验

1

T 检验

Student t检验(Student’s t test),亦称T检验,是用t分布理论来推论差异发生的概率,从而比较小样本量两组间的差异是否显著,主要用于样本含量较小(例如n<30),总体标准差σ未知的正态分布数据

注:Welch T检验(Welch’s t test)在两组数目方差不相等时可选择该检验。

•T检验的步骤:

第一步:建立虚无假设H0:μ1=μ2,即先假定两个总体平均数之间没有显著差异

第二步:计算统计量T值,对于不同类型的问题选用不同的统计量计算方法。

2

U 检验

U检验又称Z检验,一般用于大样本(即样本容量大于30)平均值差异性检验的方法(总体的方差已知)。

它是用标准正态分布的理论来推断差异发生的概率,从而比较打样板量两组间的差异是否显著

•U检验的步骤:

第一步:建立虚无假设H0:μ1=μ2,即先假定两个平均数之间没有显著差异;

第二步:计算统计量Z值,对于不同类型的问题选用不同的统计量计算方法。

3

方差检验

方差分析(ANOVA)又称“变异数分析”或“F检验”。用于正态分布方差齐性的多组间(两个及两个以上样本均数)差别的显著性检验。

当自变项的因子中包含等于或超过三个类别情况下,检定其各类别间平均数是否相等的统计模式。方差分析首先是比较的多组间整体是否有差异再进行组间两两比较

•方差检验的步骤:

第一步:建立检验假设;

H0:多个样本总体均值相等;

H1:多个样本总体均值不相等或不全等。

注:检验水准为0.05。

第二步:计算检验统计量F值;

第三步:确定P值并作出推断结果。

4

Tukey检验

Tukey检验也称为Tukey HSD(Honestly Significant Difference)检验,用于比较多个样本均值的两组之间的差异性

Tukey检验的假设条件是各组数据的方差相等且服从正态分布。Tukey检验的原理是计算每两组之间的平均差异,然后根据方差和样本量的大小来计算显著性水平。Tukey检验通常用于方差分析的后续多重比较

非参数检验

1

Wilcoxon秩和检验

Wilcoxon秩和检验又叫Mann-Whitney U 检验,Wilcoxon秩和检验,是两组独立样本非参数检验的一种方法。

其原假设为两组独立样本来自的两总体分布无显著差异,通过对两组样本平均秩的研究来实现判断两总体的分布是否存在差异,该分析可以对两组样品的物种进行显著性差异分析,并对p值计算假发现率(FDR)q值。

2

Kruskal-Wallis H检验

K-W检验的全称为,Kruskal-Wallis检验,它是用于正态分布条件不满足情况下,多组独立样本方差分析的替代。我们可以把它理解为“非参数检验的方差分析”。

基于矩阵的检验方法

微生物高纬度数据的多个变量根据不同的距离算法求取距离矩阵,然后根据距离矩阵进行相应的检验。所谓基于距离也就是检验的是群落差异而不是具体的某个物种。

以上这些检验方法,可以得到分组之间是否有显著差异(即简单的理解为差异的有无),如果想进一步知道这些差异的程度(可以理解为多少),就需要用到Anosim检验Adonis检验

这些方法不但可以输出检验显著性结果(p值),还有程度结果(R值),R值可以用来判断分组贡献度大小。Anosim、Adonis这些可用于多元统计检验的模型就非常适合了。

例如肠道微生物受到A、B等多种因素影响,如果一个项目里有3个分组分别是A处理、B处理和对照组,如果A处理和B处理相对于对照组都显著差异(P<0.05),想知道A处理、B处理哪个更为重要,就需要比较R值的大小了。

1

Anosim检验

Anosim(Analysis of similarities)是一种非参数检验方法。它首先通过变量计算样本间关系(或者说相似性),然后计算关系排名,最后通过排名进行置换检验判断组间差异是否显著不同于组内差异

相似性分析ANOSIM检验用来检验组间(两组或多组)的差异是否显著大于组内差异,从而判断分组是否有意义

这个检验有两个重要的数值,一个是p值,可以判断这种组间与组内的比较是否显著;一个是R值,可以得出组间与组内比较的差异程度

R值范围实际范围是(-1,1),但一般介于(0,1)之间,R>0,说明组间存在差异,一般R>0.75:大差异;R>0.5:中等差异,R>0.25:小差异。R等于0或在0附近,说明组间没有差异。R偶尔也会<0,这种情况是组内差异显著大于组间差异,这就说明我们的采样或者分组出现大问题,可以认为是无效数据

2

Adonis检验

Adonis,其实就是PERMANOVA。它与Anosim的用途其实差不多,也能够给出不同分组因素对样品差异的解释度(R值)与分组显著性(P值)。

Adonis又称置换多因素方差分析(permutationalMANOSVA)或非参数多因素方差分析(nonparametricMANOVA)。它利用半度量(如Bray-Curtis)或度量距离矩阵(如Euclidean)对总方差进行分解,分析不同分组因素对样品差异的解释度,并使用置换检验对划分的统计学意义进行显著性分析。

不同点是应用的检验模型不同,ADONIS本质是基于F统计量的方差分析,所以很多细节与上述方差分析类似。

图表解释

在这里插入图片描述

Group:表示分组;

Df:表示自由度;

SumsOfSqs:总方差,又称离差平方和;

MeanSqs:平均方差,即SumsOfSqs/Df;

F.Model:F检验值;

R2:表示不同分组对样品差异的解释度,即分组方差与总方差的比值,即分组所能解释的原始数据中差异的比例,R2越大表示分组对差异的解释度越高

Pr(>F):通过置换检验获得的P值,P值越小,表明组间差异显著性越强

Lefse分析——筛选组间差异标记物

LEfSe(LDA EffectSize)是用于发现生物标识和揭示基因组特征的软件。以上分析我们找出了分组的差异显著性。

而Lefse的作用就是找出各分组的微生物标记物,即biomarker的筛选,以及这些特征对组间差异的影响程度,用于发现不同分组样本中最能解释组间差异的特征

√ 分析步骤

A)软件首先使用Kruskal-Wallis (KW) (非参数因子克鲁斯卡尔—沃利斯秩和验检)检测多分组间具有显著丰度差异特征

B)找出与丰度有显著性差异的物种后进一步使用Wilcoxon 秩和检验进行组间差异分析

C)最后Lefse采用线性判别分析(LDA)估计每个分组的差异特征对差异效果的影响大小(即LDA score值)。

在这里插入图片描述

LEfSe结果包含两张图一张表,即(LDA值分布柱状图、 进化分支图特征表)。

✦ LDA值分布柱状图

LDA值分布柱状图中展示了LDA Score大于设定值(默认设置为2)的差异物种,即组间具有统计学差异的Biomarker。

展示了不同组中丰度差异显著的物种,柱状图的颜色代表各自的组别,柱状图的长度代表差异物种的影响大小(即为 LDA Score),即不同组间显著差异物种的影响程度。

在这里插入图片描述

✦ 进化分支图

进化分支图中,由内至外辐射的圆圈代表了由门至属的分类级别。在不同分类级别上的每一个小圆圈代表该水平下的一个分类,小圆圈直径大小与相对丰度大小呈正比

着色原则:无显著差异的物种统一着色为黄色,差异物种Biomarker跟随组进行着色,红色节点表示在红色组别中起到重要作用的微生物类群,绿色节点表示在绿色组别中起到重要作用的微生物类群。

注:图中英文字母表示的物种名称在右侧图例中进行展示。(为了美观,右侧默认只显示门到科的差异物种)。

在这里插入图片描述

✦ 特征表解读:

第一列:Biomarker名称;

第二列:各组分丰度平均值中最大值的log10,如果平均丰度小于10的按照10来计算;

第三列:差异基因或物种富集的组名;

第四列:LDA值;

第五列:P值,若不是Biomarker用“-”表示。

在这里插入图片描述

机器学习应用于微生物组数据的分类和预测

基于微生物组数据的高维度、稀疏性,传统的统计方法不一定能很好的适用于微生物数据统计分析,机器学习面对复杂的数据结构逐渐成为更优的选择。

机器学习(machine learning,ML)就是计算机能够自主“学习” (拟合训练数据),通过神经网络、决策树等算法,从数据中自动分析寻找规律,从而生成经验模型,用于新数据的预测或分类

➤ 随机森林

随机森林(Random Forest)是一种基于决策树(Decisiontree)的机器学习算法。属于非线性分类器

通过对对象和变量进行抽样构建预测模型,即生成多个决策树,并依次对对象进行分类。最后将各决策树的分类结果汇总,得出随机森林最终预测的分类结果。

•随机森林可以对样本进行分类和预测

随机森林可以对样本进行分类和预测。16S测序数据通过RandomForest随机森林可以找出与分组有关的关键物种/功能

在这里插入图片描述

微生物数据通过RandomForest随机森林可以找出与分组有关的关键物种/功能

图中展示了分类器中对分类效果起主要作用的特征,按重要性从大到小排列。Error rate :表示使用下方的特征进行随机森林方法预测分类的错误率,数值越高表示基于特征分类准确度不高,可能分组之间特征不明显。分值越低证明分组效果比较好

➤ ROC曲线

根据随机森林方法筛选出的最佳模型,绘制ROC曲线,ROC是一种常用的统计学分析方法,在医学研究中主要用于评价诊断试验的效能用来评判分类、检测结果的好坏

在这里插入图片描述

根据曲线位置,把整个图划分成了两部分,曲线下方部分的面积被称为AUC,用来表示预测准确性

AUC值越高,也就是曲线下方面积越大,说明预测准确率越高。曲线越接近左上角(X越小,Y越大),预测准确率越高。

ROC曲线下的面积值在1.0和0.5之间。在 AUC>0.5 的情况下,AUC越接近于1,说明诊断效果越好

•AUC值不同时的准确性:

AUC在0.5~0.7时有较低准确性,AUC在0.7~0.9时有一定准确性,AUC 在0.9以上时有较高准确性。AUC=0.5 时,说明诊断方法完全不起作用,无诊断价值。AUC<0.5 不符合真实情况,在实际中极少出现。

组间差异分析的图像化展示

微生物高维度数据信息进过统计检验得到庞大的检验结果。如何将这些结果进行可视化展示,也是微生物数据分析过程中的重要组成部分,常见的可视化方法有箱型图柱状图散点图等。接下来是对这些图的详细介绍。

▷箱型图

箱型图(boxplot)又叫盒图,箱型图由5点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。

•便于多组间形态比较

箱型图可以直观的识别出异常数据,判断数据的侧重方法,方便多组间比较形态比较。其他类似变形的还有柱状图,小提琴图等就不做详细赘述。

在这里插入图片描述

▷散点图

散点图(Scatter plot)是数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。比如PCA、PCoA、NMDS、回归分析、火山图等。

在这里插入图片描述

➤ 相关性分析

相关性是两个变量之间统计学相关关系的度量,可以预测变量间的相关关系。相关性的原始之间存在一定的联系或者相关性。

用相关系数来描述两个变量之间的相关程度。相关性分析常用的分析方法:

(1)pearson相关系数

(2)spearman相关系数

• pearson相关系数

皮尔逊相关系数(r),是衡量两个变量之间线性相关性的统计量。皮尔逊相关性只能评估两个连续变量之间的线性相关(仅当一个变量的变化与另一个变量的比例变化相关时,关系才是线性的)。

当两个变量都是正态连续变量,且两者之间呈线性关系时,则可以用Pearson来计算相关系数。取值范围[-1,1]

• spearman相关系数

Spearman相关系数是排序相关性(ranked values)的非参数度量

使用单调函数描述两个变量之间的关系的程度。Spearman相关性可以评估两个变量之间的单调关系

在这里插入图片描述

问答环节

接下来是对微生物统计检验分析中经常会遇到的一些问题进行汇总和解答

➤ 参数检验和非参数检验有什么区别?

参数检验是对参数做假设检验,非参数检验是对总体分布情况做的假设。

•是否利于总体的信息

参数检验利用总体的信息(总体分布、总体的参数特征如方差等),以总体分布和样本信息对总体参数作出推断;非参数检验不需要利用总体的信息(总体分布、总体的一些参数特征如方差),以样本信息对总体分布作出推断。

➤ T检验和U检验有什么区别?

T检验和U检验都是常用的参数检验方法,都是用于检验两个样本的均值是否存在显著差异。

•样本量的大小不同

它们的区别在于,T检验主要用于小样本量(例如n<30)的正态分布数据,而U检验主要用于大样本量(即样本容量大于30)平均值差异性检验的方法。T检验的检验统计量是t值,U检验的检验统计量是U值。

➤ 什么是T值,什么是F值?为什么在报告中没有找到?

T值和F值都是统计学中常用的指标,用于检验假设是否成立。T值是T检验的统计量,用于检验两个样本均值是否有显著差异的指标

•T值的计算公式

它的计算公式为:T = (x1 - x2) / (s * sqrt(1/n1 + 1/n2)),其中x1和x2分别是两个样本的均值,s是两个样本的标准差的合并估计值,n1和n2分别是两个样本的样本量。

T值越大,说明两个样本的均值差异越显著

•F值的计算公式

F值F检验,即方差分析的检验量。是用于检验多个样本均值是否有显著差异的指标。

它的计算公式为:F = (SSB / (k - 1)) / (SSE / (n - k)),其中SSB是组间平方和,SSE是组内平方和,k是组数,n是总样本量。F值越大,说明组间差异越显著,即均值之间的差异不是由于随机误差造成的。在方差分析中,F值用于检验多组间平均数是否相等。

这两个指标均来自参数检验的统计量,由于微生物数据具有高纬度,多样性高,数据稀释复杂等特点,而参数检验对数据分布要求比较严格,微生物数据一般都呈现非正态分布,报告中大部分都采用非参数的检验方法进行检验计算。所以报告中没有直接给出T值和F值。

➤ Pearson相关系数和Spearman 相关系数有什么区别?

Pearson适用于两个变量之间呈线性关系,而Spearman适用于单调关系

Pearson分析要求数据符合正态分布;线性相关;并且数据为连续值。如果不满足,则使用Spearman相关系数。

Pearson 处理变量的数据原始值,而Spearman处理数据排序值(需要先做变换,transform)。

➤ 报告中给出了几种检验方法得出的差异结果,该如何选择?

报告中分别使用了非参数检验、Tukey检验、Lefse分析、metagenomeSeq 差异分析。

•不同统计方法的结果略有不同

不同的统计方法对数据的处理方式和假设条件不同,所以不同的统计方法可能给出的差异结果略有不同

•统计方法可能存在一定的偏差和误差

此外,不同的统计方法还可能存在偏差和误差,例如样本量不足、数据分布不符合假设条件、测量误差等因素都可能影响统计结果的准确性。

因此,在进行统计分析时,需要根据实际情况选择合适的统计方法,并结合实际情况进行综合分析和判断。这里建议选择其他一种方法的检验结果就可以。或者用到不同的检验方法的时候,在文章中加以说明。

➤ 报告中给出的多组间差异的P值只有一个吗?是哪两组之间的P值呢?

非参数检验多组间差异分析时就用到的是Kruskal-Wallis H检验,检验多组间是否有差异,所以只有1个P值

例如该图是属水平多组间非参数检验的差异结果:

在这里插入图片描述

路径:

Groups\diff_analysis\UnivarTestGenus\figure\barplot

对应P值:

Groups\diff_analysis\UnivarTestGenus\ UnivarTest_sign.txt

如果想看在多个分组的统计检验过程中,具体哪两组间之间有差异,可以看:

Groups\diff_analysis\UnivarTestGenus\figure\single_plot

图上方的P值0.006是多组间非参数检验的P值,图中展示的是任意两组间差异显著的结果,例如P=0.017是M组和CA组之间的结果。P=0.017是CA组和N组之间的P值。如果任意两组间有差异,则在图中显示对应P值

在这里插入图片描述

PCoa基于Bray距离的Adonis检验得到的P值=0.001右下角,也是多组间统计检验的结果

在这里插入图片描述

想看任意两组间Adonis检验是否差异显著,可以看下表:

Groups\betadiv\pcoa_bray_analysis\ PERMANOVA_paired_result.csv

表中展示了任意两组间Adonis检验的P值和R值

在这里插入图片描述

编辑​

附 录

1

热 图

热图是一种常用的展示方法,可以将微生物组数据转化为颜色矩阵,从而直观地显示不同样本或物种之间的相似性和差异性。可以使用热图来展示微生物组数据的OTU/ASV表、物种丰度表等。

2

柱 状 图

柱状图是一种常用的展示方法,可以将微生物组数据转化为柱状图,从而直观地显示不同样本或物种的相对丰度。可以使用柱状图来展示微生物组数据的物种丰度表等。

3

散 点 图

散点图是一种常用的展示方法,可以将微生物组数据转化为散点图,从而直观地显示不同样本或OTU/ASV之间的关系。可以使用散点图来展示微生物组数据的beta多样性、代谢功能预测丰度表等。

4

网 络 图

网络图是一种常用的展示方法,可以将微生物组数据转化为网络图,从而直观地显示不同微生物组物种之间的相互作用关系。可以使用网络图来展示微生物组数据的共生关系、代谢通路等。

5

生 态 图

生态图是一种常用的展示方法,可以将微生物组数据转化为生态图,从而直观地显示不同微生物组物种之间的生态关系和生态功能。可以使用生态图来展示微生物组数据的生态功能、物种丰度表等。

6

积 柱 状 图

积柱状图是一种常用的展示方法,可以将微生物组数据转化为堆积柱状图,从而直观地显示不同样本或物种的相对丰度,并且可以分别显示不同分类水平的物种。可以使用堆积柱状图来展示微生物组数据的物种丰度表等。

7

饼 图

饼图是一种常用的展示方法,可以将微生物组数据转化为饼图,从而直观地显示不同物种的相对丰度。可以使用饼图来展示微生物组数据的物种丰度表等。

8

箱 线 图

箱线图是一种常用的展示方法,可以将微生物组数据转化为箱线图,从而直观地显示不同样本或物种的分布情况。可以使用箱线图来展示微生物组数据的alpha多样性、代谢物浓度等。

9

简 单 线 图

简单线图是一种常用的展示方法,可以将微生物组数据转化为简单线图,从而直观地显示不同样本或物种的变化趋势。可以使用简单线图来展示微生物组数据的时间序列数据、代谢物浓度等。

总的来说,展示微生物组数据分析结果需要选择合适的展示方法,并且需要根据研究目的和数据类型进行选择。以上展示方法是常见的方法,并不是唯一的方法,实际应用中需要根据具体情况选择合适的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/528415.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[JS与链表]双向链表

前言 阅读本文前请先阅读 [JS与链表]普通链表_AI3D_WebEngineer的博客-CSDN博客 ES6的Class继承 类的继承可以使用extends&#xff0c;让子类继承父类的属性和方法。 而在子类内部&#xff08;构造函数constructor&#xff09;必须调用super()实现继承&#xff08;super()代表父…

基于MPSOC+C6678+高精度AD/DA的软件无线电处理平台

板卡概述 VPX_XM630 是一款基于6U VPX 总线架构的高速信号处理平台&#xff0c;该平台采用一片Xilinx 的Kintex UltraScale 系列FPGA&#xff08;XCKU115&#xff09;作为主处理器&#xff0c;完成复杂的数据采集、回放以及实时信号处理算法。采用一片带有ARM 内核的高性能嵌入…

k8s简单记录

进入pod中的某个容器并执行命令 # 进入pod中的busybox容器&#xff0c;查看文件内容 # 补充一个命令: kubectl exec pod名称 -n 命名空间 -it -c 容器名称 /bin/sh 在容器内部执行命令 # 使用这个命令就可以进入某个容器的内部&#xff0c;然后进行相关操作了 # 比如&#x…

【论文简述】Multi-View Stereo Representation Revisit: Region-Aware MVSNet(CVPR 2023)

一、论文简述 1. 第一作者&#xff1a;Yisu Zhang 2. 发表年份&#xff1a;2023 3. 发表期刊&#xff1a;CVPR 4. 关键词&#xff1a;MVS、3D重建、符号距离场 5. 探索动机&#xff1a;像素深度估计仍存在两个棘手的缺陷。一是无纹理区域的估计置信度较低。二是物体边界附…

一文读懂DNS解析原理和流程(中科三方)

什么是DNS域名解析 我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址&#xff0c;通过IP地址实现不同计算机之间的相互通信&#xff0c;每台联网计算机都需要通过IP地址来互相联系和分别。 但由于IP地址是由一串容易混淆的数字串构成&#xff0c;人们很…

awk指令的详细指南

目录 工作原理 命令格式 awk常见的内建变量&#xff08;可直接用&#xff09;如下所示 按行输出文本 按字段输出文本 通过管道、双引号调用 Shell 命令 示例 CPU使用率 数组 ​编辑统计文件的内容出现的次数 使用awk 统计secure 访问日志中每个客户端IP的出现次数? …

云上的二维设计原来是这样的!

今天与大家探索云上的二维设计&#xff0c;3DEXPERIENCE DraftSight基于云平台实现与云端进行连接&#xff0c;实现一定的云上协作&#xff0c;提升绘图工作效率&#xff0c;我们从以下三方面来进行说明&#xff1a; 01&#xff1a;DraftSight设计 02&#xff1a;Revision变更…

ECharts 快速入门

文章目录 1.1 ECharts介绍1.2 vue使用ECharts1&#xff09;vscode打开测试工程2) 工程安装echarts依赖3) 配置echarts4) vue组件使用echarts5) 页面效果&#xff1a; 1.3 项目中 ECharts 的使用1) 配置和使用流程说明2) 前端显示效果 1.1 ECharts介绍 ECharts是百度开发的一个…

JavaScript 循环方法

JavaScript 循环方法 不涉及到具体绑定到 prototype 上的循环方式&#xff0c;即 XXXXX.prototype 中包含的循环方式&#xff08;如 forEach, map&#xff09;。 for for 总共有三种循环方式&#xff0c;一个是传统的 for 循环体&#xff0c;一个是 for in&#xff0c;还有一…

微信最新版本解除【文件只读】

问题 某一天开始&#xff0c;微信自动升级到3.9版本&#xff0c;最大的改变就是接收到的文件是只读属性&#xff0c;网上目前有两个办法&#xff0c;1.降到3.8甚至更早版&#xff1b;2.将version.dll补丁文件复制到微信安装目录&#xff0c;但3.9.2版本就不能用了。 解决办法…

软件测试之测试用例的设计

1. 测试用例的概念 软件测试人员向被测试系统提供的一组数据的集合&#xff0c;包括 测试环境、测试步骤、测试数据、预期结果 2. 为什么在测试前要设计测试用例 测试用例是执行测试的依据 在回归测试的时候可以进行复用 是自动化测试编写测试脚本的依据 衡量需求的覆盖率…

完全了解FPC柔性电路板,生产到市场全讲解

1.什么是FPC 随着社会的不断进步&#xff0c;电子行业的不断更新换代&#xff0c;传统的PCB已经不能满足所有电子产品的需求&#xff0c;FPC的市场需求也越来越大&#xff0c;有很多朋友还不是很清楚FPC是什么&#xff0c;下面来简单的介绍一下: FPC全称&#xff1a;柔性印制电…

利用Springboot来驱动开发桌面程序

众所周知&#xff0c;SpringBoot是一款强大的Javaweb开发程序&#xff0c;这得益于其构造了一个Spring容器&#xff0c;然后通过依赖注入和控制反转&#xff0c;维护起一套Java对象和实例的管理机制&#xff0c;方便开发者去使用。在web应用开发的应用中&#xff0c;Springboot…

python 的垃圾回收机制

一、 引入 python解释器在执行到定义变量的语法时&#xff0c;会申请内存空间来存放变量的值&#xff0c;而内存的容量是有限的&#xff0c;这就涉及到变量值所占用内存空间的回收问题&#xff0c;当一个变量值没有用了&#xff08;简称垃圾&#xff09;就应该将其占用的内存给…

【Linux】IO多路转接-poll

文章目录 I/O多路转接-pollpoll初识poll函数poll的小测试-监控标准输入poll服务器poll_server.cc poll的优点poll的缺点 I/O多路转接-poll poll初识 poll也是系统提供的一个多路转接接口, poll系统调用也可以让我们的程序同时监视多个文件描述符上的事件是否就绪,和select的定…

DDos攻击概述

1.def&#xff1a; 通过大规模互联网流量淹没目标服务器或其周边基础设施&#xff0c;以破坏目标服务器、服务或网络正常流量的恶意行为 目标服务器类比作商店&#xff1b; 网络的正常流量类比作顾客&#xff1b; 此恶意行为便相当于让一堆小混混装成正常顾客涌入商店&…

软件自动化测试有什么优势?自动化测试框架有哪些?

一、 软件自动化测试的优势 在软件测试过程中&#xff0c;自动化测试不断被提高到更高的级别&#xff0c;以提高测试效率以及降低测试成本。 1.节省时间和成本 手动测试需要耗费大量的时间和精力&#xff0c;而自动化测试可以在较短时间内执行多次测试&#xff0c;并且可以在…

Alibaba Sentinel整合SpringBoot,为微服务保驾护航!

前言 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来…

08-05 应用层设计

伸缩性的架构设计——服务器集群的伸缩性 DNS负载均衡 DNS服务器将访问的域名转发到对应的网关&#xff0c;网关层做反向代理。 利用消息组件对业务场景进行解耦 适合用消息组件解耦的场景 长任务&#xff08;时间长&#xff0c;逻辑复杂&#xff0c;可异步&#xff09…

React Antv G2Plot 「指标拆解图」 前端可视化实战 实现渲染、重置、筛选功能

背景 实现对指定数据的「指标拆解图」 渲染&#xff0c;并且可以根据筛选项进行变化。 任务分解 antv 的图表&#xff0c;以及请求后端的载荷对传入的数据结构有严格要求 一个工具函数将后端接口返回的数据格式化成 antv 图表要求的格式一个工具函数将前端提交的请求数据格…