怎么用r语言进行dna菌群多样性分析

Python028

怎么用r语言进行dna菌群多样性分析,第1张

基因测序分析微生物菌群结构 NA是什么意思

微生物群落测序是指对微生物群体进行高通量测序,通过分析测序序列的构成分析特定环境中微生物群体的构成情况或基因的组成以及功能。借助不同环境下微生物群落的构成差异分析我们可以分析微生物与环境因素或宿主之间的关系,寻找标志性菌群或特定功能的基因。对微生物群落进行测序包括两类,一类是通过16s rDNA,18s rDNA,ITS区域进行扩增测序分析微生物的群体构成和多样性;还有一类是宏基因组测序,是不经过分离培养微生物,而对所有微生物DNA进行测序,从而分析微生物群落构成,基因构成,挖掘有应用价值的基因资源。以16s rDNA扩增进行测序分析主要用于微生物群落多样性和构成的分析,目前的生物信息学分析也可以基于16s rDNA的测序对微生物群落的基因构成和代谢途径进行预测分析,大大拓展了我们对于环境微生物的微生态认知。目前我们根据16s的测序数据可以将微生物群落分类到种(species)(一般只能对部分菌进行种的鉴定),甚至对亚种级别进行分析,几个概念:16S rDNA(或16S rRNA):16S rRNA 基因是编码原核生物核糖体小亚基的基因,长度约为1542bp,其分子大小适中,突变率小,是细菌系统分类学研究中最常用和最有用的标志。16S rRNA基因序列包括9个可变区和10个保守区,保守区序列反映了物种间的亲缘关系,而可变区序列则能体现物种间的差异。16S rRNA基因测序以细菌16S rRNA基因测序为主,核心是研究样品中的物种分类、物种丰度以及系统进化。OTU:operational taxonomic units (OTUs)在微生物的免培养分析中经常用到,通过提取样品的总基因组DNA,利用16S rRNA或ITS的通用引物进行PCR扩增,通过测序以后就可以分析样品中的微生物多样性,那怎么区分这些不同的序列呢,这个时候就需要引入operational taxonomic units,一般情况下,如果序列之间,比如不同的 16S rRNA序列的相似性高于97%就可以把它定义为一个OTU,每个OTU对应于一个不同的16S rRNA序列,也就是每个OTU对应于一个不同的细菌(微生物)种。通过OTU分析,就可以知道样品中的微生物多样性和不同微生物的丰度。测序区段:由于16s rDNA较长(1.5kb),我们只能对其中经常变化的区域也就是可变区进行测序。16s rDNA包含有9个可变区,分别是v1-v9。一般我们对v3-v4双可变区域进行扩增和测序,也有对v1-v3区进行扩增测序。

非度量多维标度(NMDS)分析

非度量多维标度(Non-metric Multidimensional Scaling,NMDS)是一种将多维空间的研究对象(样本或变量)简化到低维空间进行定位、分析和归类,同时又保留对象间原始关系的数据分析方法。

与PCoA相似,NMDS都使用样本相似性距离矩阵进行降维排序分析,但NMDS侧重反映距离矩阵中数值的排序关系,NMDS图形常用作微生物群落研究的β分析。

来看看R的vegan包和ggplot2包是如何绘制NMDS图的。

使用数据文件如下:

①otu_table.txt

②group.txt

方法如下:

1.调用vegan包metaMDS()函数执行NMDS,读取数据;

2.根据物种组成计算样方距离,如 Bray-curtis 距离;

3.NMDS 排序,定义 2 个维度;

4.提取应力函数值、样方得分,查看主要结果;

5.物种变量可通过丰度加权平方被动添加至排序图中;

6.使用ggplot2包作图。

目录

vcfR 可以直接读取vcf格式的数据。如果同时读取参照序列fasta格式的序列文件和gff格式文件的注释文件还可以获取更完整的信息(此步骤并非必须,可以只读取vcf数据)。在此处便于重复用到了 pinfsc50 包。这个包里是植物致病微生物的基因序列测序结果。包含了一个vcf文件,一个fasta文件和一个gff文件。

这里用到参照序列的数据。

当这些数据被读取到内存的时候就可以开始对染色体名字或者其它一些东西进行修改了。由于 vcfR 更擅长对的单独染色体进行分析,所以当你的基因过大或者有很多样本的时候,建议对数据进行拆分。

读取完数据以后就可以建立 chromR ,来对数据进行详细的分析。

首先对数据进行初步的可视化,

我们在上面的图里得到很多信息,比方说测序深度(DP)的峰在500,但是拖着尾巴,这个尾巴表示数据里包含着CNV信息。然后比对质量(MQ)的峰值在60,于是我们可以以60为中心对数据进行过滤。

使用 masker 可以对数据进行过滤标记。然后可视化过滤以后的数据。

是不是顺眼多了。当然我们也可以看一下SNP的分布情况。注意右下角的图。

用 chromoqc() 可以对数据进行更完整的可视化。包括外显子内含子的分布,GC含量的分布等等。

最后可以用函数 write.vcf() 把数据输出成新的vcf文件。