一般而言,在样本量较少的情况下,随着样本数量的增加,将有较大可能性发现大量新的物种,此时曲线呈急剧上升状态;当样本数量已经较大时,此时群落中的ASV/OTU总数将不再随着样本数量增加而显著增加,曲线将趋于平缓。
因此,通过物种累积曲线可以判断样本量是否充分:若曲线始终保持上升趋势,则表明样本量不足,反之,则表明样本量已足以反应群落的物种组成。在样本量充分的前提下,运用物种累积曲线还可以对物种丰富度进行预测。
下面我使用R脚本,vegan包对ASV/OTU丰度矩阵中每个样本所对应的SAV/OTU总数绘制specaccum物种累计曲线。
1.调用vegan包,读取物种数据;
2.使用 specaccum 函数用来计算物种的累计曲线;
3.作图展示。
如图,随着取样样本数量逐渐增加,所观测到的物种种类也不断增加。当曲线趋近平缓时,代表群落中的物种接近全部被观测到;反之不饱和,还需继续观测更多的样本数量。
r语言中bpinom函数的基本用法为:pbinom(x,size,,prob),该函数为事件的累积概率,它用于表示概率的单个值。例如:抛掷硬币100次,正面向上不超过50次的概率,即pbinom(50,100,0.5)。
r语言有四个内置函数来生成二项分布。它们的描述分别如下:
dbinom(x,size,prob)函数,该函数表示每个点的概率密度分布。
pbinom(x,size,prob)函数,该函数为事件的累积概率,它表示概率的单个值。
qbinom(p,size,prob)函数,该函数采用概率值,并给出累积值与概率值匹配的数字。
rbinom(n,size,prob)函数,该函数从给定样本产生给定概率的所需数量的随机值。
其中,x是数字的向量,p是概率向量,n是观察的数量,size是试验的数量,prob是每个试验成功的概率。
R语言常用数学函数sum()、max()、min()、mean()、median()
prod(x) 对x中的元素都连乘
which.max(x) 返回x中最大元素的下标
which.min(x) 返回x中最小元素的下标
range(x) 值域
rev(x) 对x中的元素取逆序
sort(x) 将x中的元素将升序排列
pmin(x,y) 返回一个向量,它的第i个元素是x[i],y[i] 中最小值
pmax(x,y) 返回一个向量,它的第i个元素是x[i],y[i] 中最大值
cumsum(x) 求累积和,返回一个向量,第i个元素等于x[1]到x[i]的和
cumprod(x) 求累积(从左到右)乘积
cummin(x) 求累积最小值(从左到右)
cummax(x) 求累积最大值(从左到右)
match(x,y) 返回一个和x的长度相同的向量,第i个元素表示y中与x[i]相同的元素的位置(没有则返回NA)
na.omit(x) 函数忽略有缺失值(NA)的观察数据(如果x是矩阵或数据框则忽略相应的行)
na.fail(x) 如果x包含至少一个NA则返回一个错误消息
which() 返回符合条件的元素的下标
choose 组合数,二项式,例choose(4,2) 返回6
rep(x,y) 将x重复y次
unique(x) 去掉重复的元素,只取一个
table(x) 返回一个列表,给出y中重复元素的个数列表
subset(x,条件) 返回x中满足特定条件的子集