2022-04-21 MB文章Background and Materials

Title: Stochastic processes shape microeukaryotic community assembly in a subtropical river across wet and dry seasons

题目:随机性主导亚热带河流干湿季微型真核生物群落组装过程
别人翻译:随机过程主导亚热带河流微型真核浮游生物群落构建

Background:

  1. 研究微生物群落组装关系着微生物多样性,分布,功能,演化和生物地理特性探究的关键机理但是知之甚少,特别是水生生态系统,流动生境。生态位理论和中性模型理论是研究微生物群落组装的两个重要机理。尽管随机过程被认为是微生物群落组装的重要机理,但是其重要性被远远低估(far less aooreciated).低估的主要原因是随机过程难以定义和计算方法较难。群落多样性和群落分布模式可以为了解群落组装过程提供证据,中性模型在定量中性过程中特别重要。
    2.现有大量的群落组装研究涉及海洋,土壤和湖泊,但是对流动系统中浮游生物的调查较少,特别是亚热带地区。河流生态系统常常伴随有复杂的生物地理环境和多变的微生物群落。indeed,实际上农业,工业,城市化均会影响河流环境,并加大河流生态系统研究的难度,也就无法对淡水系统做出系统的概括。在亚热带季风区河流系统还包括许多细小的分支,呈现出环境条件的高度动态性。further,主干渠及其分支上的水电站也是加速河流系统脆弱性和降低河流生态服务的主要因子,汀江河迄今为止其微型真核生物还未被调研(第一次出现微型真核生物,前面都是microbial)。Additionally, 在水生系统中,季节性变化是环境波动,显著微生物多样性和组成差异的关键因子。However, 依然存在对影响浮游真核生物地理影响因素认知缺乏的问题。因此,了解研究汀江河微型真核群落在不同水分梯度季节的是时空分布模式、过程和机理对河流健康,水质和生态服务非常重要。
    3.在自然环境中,微型真核生物包括高丰度和稀有以及低丰度taxa(分类群)。引出ART(always rare taxa)、CRT(conditionally rare taxa)和domiant taxa重要性。最后研究不同丰度群体的生物地理相应可以为认识微观浮游真菌群落组装提供更深入的理解。
  2. 在这篇文献中,汀江河流域干湿季节的浮游生物及其环境和空间因子均被分析了。我们先假设干湿季节浮游生物的群落展现出显著的距离衰减,并且这种衰减在干季节要强于湿润季节,因为旱季空间结构环境梯度的高水平,从而降低了随机过程的相对重要性。其次,我们预测高丰度和低丰度分类群组装过程中有相同的机理,因为有文献表明他们对环境和空间变化的响应是一致的。最后我们应用了中性模型去定量确定性和随机性过程在生物地理形成过程的作用,并将微型真核生物区分为中性和非中性部分,并期望中性和非中性部分在响应环境变化时呈现不同群落组成。我们还假设迁移率是区分中性和非中性部分的关键因子。这篇文章旨在回答一下问题,○在干湿季节微型浮游真菌的时空patterns是否相同?○不同丰度的分类群在群落组装过程中的机理是否相同?○中性模型在解释微型浮游真菌群落组装过程中的适应性how well?○种属的迁移率和环境因子对群落组中的影响程度是怎么样?

Materials
○30个站点,6月和11月5天内分别于0.5m深度采集30个水样,相当于一个站点取了一个样品,总共60个样本。24个环境变量测定。
○划分不同丰度分类群
(1) always abundant taxa(AAT) were defined as the OTUs with abundance ≥ 1% in all samples;
(2) always rare taxa (ART) were defined as the OTUs with abundance < 0.01% in all samples;
(3) moderate taxa (MT) were defined as OTUs with abundance between 0.01 and 1% in all samples;
(4) conditionally rare taxa (CRT) were defined as with abundance below 1% in all samples and < 0.01% in some samples;
(5) conditionally abundant taxa (CAT) were defined as taxa with abundance ≥ 0.01% in all samples and ≥ 1% in some samples
but never rare (< 0.01%);
and (6) conditionally rare and abundant taxa (CRAT) were defined as OTUs with abundance varying from rare (< 0.01%) to abundant (≥ 1%).
In
this study, we artificially combined abundant taxa (AAT), conditionally abundant taxa (CAT), and conditionally rare and abundant taxa (CRAT) as abundant taxa。dominant taxa
○VPA variation partitioning analysis
https://blog.csdn.net/qq_39859424/article/details/121575684
○To analyze deviations from the NCM predictions, we compared the composition, diversity, and calculated estimated migration rate (m) of neutral and non-neutral (above and below) partitions of microeukaryotes.

Fits the neutral model from Sloan et al. 2006 to an OTU table and returns several fitting statistics. Alternatively, will return predicted occurrence frequencies for each OTU based on their abundance in the metacommunity

Install the following packages if they haven't been availabled in your computer yet

library(Hmisc)
library(minpack.lm)
library(stats4)

using Non-linear least squares (NLS) to calculate R2:

spp: A community table with taxa as rows and samples as columns

spp<-read.csv('spp.txt',head=T,stringsAsFactors=F,row.names=1,sep = "\t")
spp<-t(spp)
N <- mean(apply(spp, 1, sum))
p.m <- apply(spp, 2, mean)
p.m <- p.m[p.m != 0]
p <- p.m/N
spp.bi <- 1*(spp>0)
freq <- apply(spp.bi, 2, mean)
freq <- freq[freq != 0]
C <- merge(p, freq, by=0)
C <- C[order(C[,2]),]
C <- as.data.frame(C)
C.0 <- C[!(apply(C, 1, function(y) any(y == 0))),]
p <- C.0[,2]
freq <- C.0[,3]
names(p) <- C.0[,1]
names(freq) <- C.0[,1]
d = 1/N

Fit model parameter m (or Nm) using Non-linear least squares (NLS)

m.fit <- nlsLM(freq ~ pbeta(d, Nmp, Nm(1 -p), lower.tail=FALSE),start=list(m=0.1))
m.fit #get the m value
m.ci <- confint(m.fit, 'm', level=0.95)
freq.pred <- pbeta(d, Ncoef(m.fit)p, Ncoef(m.fit)(1 -p), lower.tail=FALSE)
pred.ci <- binconf(freq.pred*nrow(spp), nrow(spp), alpha=0.05, method="wilson", return.df=TRUE)
Rsqr <- 1 - (sum((freq - freq.pred)^2))/(sum((freq - mean(freq))^2))
Rsqr# get the R2 value

Optional: write 3 files: p.csv, freq.csv and freq.pred.csv

write.csv(p, file = "j:/iue/aehg11/neutr_model/p.csv")

write.csv(freq, file = "j:/iue/aehg11/neutr_model/freq.csv")

write.csv(freq.pred, file = "j:/iue/aehg11/neutr_model/freq.pred.csv")

Drawing the figure using grid package:

p is the mean relative abundance

freq is occurrence frequency

freq.pred is predicted occurrence frequency

bacnlsALL <-data.frame(p,freq,freq.pred,pred.ci[,2:3])
inter.col<-rep('black',nrow(bacnlsALL))
inter.col[bacnlsALLfreq <= bacnlsALLLower]<-'#A52A2A'#define the color of below points
inter.col[bacnlsALLfreq >= bacnlsALLUpper]<-'#29A6A6'#define the color of up points
library(grid)
grid.newpage()
pushViewport(viewport(h=0.6,w=0.6))
pushViewport(dataViewport(xData=range(log10(bacnlsALLp)), yData=c(0,1.02),extension=c(0.02,0))) grid.rect() grid.points(log10(bacnlsALLp), bacnlsALLfreq,pch=20,gp=gpar(col=inter.col,cex=0.7)) grid.yaxis() grid.xaxis() grid.lines(log10(bacnlsALLp),bacnlsALL$freq.pred,gp=gpar(col='blue',lwd=2),default='native')

grid.lines(log10(bacnlsALLp),bacnlsALLLower ,gp=gpar(col='blue',lwd=2,lty=2),default='native')
grid.lines(log10(bacnlsALLp),bacnlsALLUpper,gp=gpar(col='blue',lwd=2,lty=2),default='native')
grid.text(y=unit(0,'npc')-unit(2.5,'lines'),label='Mean Relative Abundance (log10)', gp=gpar(fontface=2))
grid.text(x=unit(0,'npc')-unit(3,'lines'),label='Frequency of Occurance',gp=gpar(fontface=2),rot=90)

grid.text(x=unit(0,'npc')-unit(-1,'lines'), y=unit(0,'npc')-unit(-15,'lines'),label='Mean Relative Abundance (log)', gp=gpar(fontface=2))

grid.text(round(coef(m.fit)*N),x=unit(0,'npc')-unit(-5,'lines'), y=unit(0,'npc')-unit(-15,'lines'),gp=gpar(fontface=2))

grid.text(label = "Nm=",x=unit(0,'npc')-unit(-3,'lines'), y=unit(0,'npc')-unit(-15,'lines'),gp=gpar(fontface=2))

grid.text(round(Rsqr,2),x=unit(0,'npc')-unit(-5,'lines'), y=unit(0,'npc')-unit(-16,'lines'),gp=gpar(fontface=2))

grid.text(label = "Rsqr=",x=unit(0,'npc')-unit(-3,'lines'), y=unit(0,'npc')-unit(-16,'lines'),gp=gpar(fontface=2))

draw.text <- function(just, i, j) {
grid.text(paste("Rsqr=",round(Rsqr,3),"\n","Nm=",round(coef(m.fit)*N)), x=x[j], y=y[i], just=just)

grid.text(deparse(substitute(just)), x=x[j], y=y[i] + unit(2, "lines"),

gp=gpar(col="grey", fontsize=8))

}
x <- unit(1:4/5, "npc")
y <- unit(1:4/5, "npc")
draw.text(c("centre", "bottom"), 4, 1)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容