论文部分内容阅读
摘要:生物多样性是群落生态学中的重要概念,α多样性指数普遍应用于生态学科学研究中。α多样性指数的计算与相关图像绘制,在数据处理与分析阶段是非常必要的。为获取α多样性指数相关数据信息,从规范的“物种-样地”二维矩阵初始数据格式出发,运用Python编程语言开发程序并通过测试,实现较高整合程度与较快计算速度,协助后续研究过程。
关键词:植物群落;α多样性;多样性指数;Python语言;程序设计
Abstract: Biodiversity is an important concept in community ecology, and α diversity index is widely used in the scientific research of ecology. It is necessary to calculate α diversity index and render its related image in the stage of data processing and analysis. In order to obtain the data information related to α diversity index, a program is developed in Python code and passes the tests on the basis of the standard initial data format of “species-sample” which is a two-dimensional matrix. It increases the integration and computing speed, and assist in the follow-up research process.
Key words: plant community; α diversity; diversity index; Python; program design
1 背景
生物多样性能够揭示生物种的多样化程度、变异状况以及物种生境的生态复杂性[1]。作为人类生存与发展的必要条件,生物多样性的研究在植物学、生态学、农业科学等领域得到广泛应用与发掘,并面向共同维系全球生态平衡的森林、草地、湿地、海洋各类型生态系統,不断产生出新的研究热点与重点。在2015-2021六年间,关于生物多样性的论文在爱斯唯尔Scopus数据库中数量达到67469篇[2]。生物多样性指数计算的结果可用于表征物种的丰富度和均匀度,反映生境中物种的数量和分配状况,实现生物多样性测度的定量化[3]。其中,α生物多样性指数的计算应用最为普遍,可应用于优势植物判别、群落特征描述与群落分类确定等具体研究方面[4]。在以往的研究中,从研究样地获得初始数据后,包括生物多样性指数计算的数据处理与分析步骤,依赖于Microsoft Excel、SPSS Statistics、Canoco等软件,需要人工手动输入和接续操作,精度较高,但时间花费较长。近年来,随着计算机技术的发展,出现了R语言中的外在软件包“Vegan”用于生物多样性指数计算和分析,运行效率高,精度也进一步提高。相比于更专精于统计学数据处理的R语言,面向对象的开源编程语言Python,运行速度更快,具有强大的“胶水语言”功能。因此,以α多样性指数计算的数学公式为基础,借助Python语言及Numpy、Matplotlib等第三方库,以命令行方式编写了α多样性指数计算处理程序,实现了α多样性相关指数的计算与绘图,其运行结果与传统软件及R语言相比无明显区别,集成化等级高,输入固定格式的二维数据矩阵即可得到计算结果与图像,操作简单、上手容易,适合于在生物多样性科学研究的数据处理与分析过程中使用。
2 α多样性计算原理
α多样性是关注局域生境(如栖息地或群落)物种多样性的测度指标,其测度包括物种丰富度指数、物种相对多度模型、物种多样性指数、物种均匀度指数四个方面,可以应用于微生物测序分析与植物群落研究中[5]。选取了具有代表性的数量丰度、物种密度、Chao1指数、ACE指数、Simpson多样性指数、Shannon多样性指数六个数量指数与物种稀释曲线、秩-多度曲线两个曲线图像,通过Python语言编程实现指数计算与图像绘制。
α多样性的计算依赖于野外实验或模型推演中获得的数据。野外实验中,在设定的样方内逐物种识别并记录,综合统计得到初始数据;模型推演中,依靠固定的数学模型自动或手动推算产生初始数据。初始数据通常储存为“物种-样方”的二维矩阵形式,将物种名(即属性)放在行名中,样地名(即样方名、地点)放在列名中,某个样地某个物种的个体数量以自然数(大于等于0的整数)的格式存储在某行某列的单个元素中。
得到数据完整的二维矩阵后,对每列(即每个样地)进行数据处理与分析。假设样地编号为i1,i2,i3, ……,ir,所有样地内物种编号依次为j1,j2,j3,……,js(允许被编号的物种仅在某个或某几个样地中出现),某个样地某个物种的个体数量编号为k11,k12, ……,k21, ……,krs,则初始数据的数据结构如表1所示。
Simpson多样性指数与Shannon多样性指数是反映群落个体属于何种物种的不确定性的两种物种多样性指数,这两个指数都可以由物种度和均匀度两个侧面来反映α多样性。
Simpson多样性指数以随机取样的概率学问题出发,可表述为在群落或样地中随机选择两个个体,其属于同一个物种的概率。其中,pi为某个编号为i的物种在整个样地中出现的概率,S为数量丰度。
3 α多样性程序设计方法
获取初始数据后,确定数据结构,即得到完整的数据信息。基于Windows10系统下Python语言3.7.6版本的支持,通过Python语言程序设计方法,进行数据处理与分析。程序设计中主要借助于拥有多种针对数组进行数据综合处理模块的NumPy库与math库,进行α多样性相关指数的计算与汇总;使用Matplotlib库实现α多样性相关科学计算图像绘制;使用Pandas库实现基于二维矩阵Dataframe格式的“物种-样地”数据结构进行数据处理,将数据从Excel软件的.csv格式读取和输出;同时使用SciPy、Random等库,进行随机数生成和数据最优化选择等功能。程序依托于Python3.7.6与Jupyter Notebook软件运行,运行前需先安装这两个软件,并将扩展名为.ipynb的程序文件在Jupyter Notebook软件中上传后运行。 3.1 数据读入
使用者启动程序文件后,直接按照Jupyter Notebook软件的操作要求即可运行程序,工作目录在程序运行中手动输入设置。用户的初始数据文件必须符合如表1所示的数据结构,且保存为扩展名为.csv,字符编码为utf-8的文件。程序首先调用panda.read_csv函数,读取工作目录下的“物种-样地”表格(即初始数据文件),在内存中创建Dataframe格式的二维矩阵数据表,这样数据全部读入到程序中,调用Numpy库与math库中的函数,即可进行下一步的数据统计与计算。
3.2 α多样性指数计算
α多样性相关指数的计算原理如前公式(1)~(9)所示。对于每个样地的各项指数计算,均采取按样地分解、循环计算,也即对每列使用for循环遍历,以数组的数据结构计算的代码形式,并用if判断语句去除记录物种名称的首列[9]。所有指数的计算方法与公式(1)~(9)相同,数学运算符号更改为适合于Python语言的格式,并在计算前设置空数组存储每列的计算结果。对于需要加和的各项指数,设定初始值为0,然后累加;对于需要判断个体数(如Chao1指数下的S1指数需要判断个体数为1的物种)的情况,则额外添加一个或多个嵌套的for循环,使用if-else判断语句进行判别。
3.3 α多样性图像绘制
α多样性的图像绘制包括物种稀释曲线与秩-多度曲线。物种稀释曲线是反映物种观测量合理性与间接反映样品中物种丰富程度的曲线。构建物种稀释曲线首先利用Random库与NumPy库通过随机抽样确定数个物种数与个体数的关系数对,然后利用这些数对用幂函数
关键词:植物群落;α多样性;多样性指数;Python语言;程序设计
Abstract: Biodiversity is an important concept in community ecology, and α diversity index is widely used in the scientific research of ecology. It is necessary to calculate α diversity index and render its related image in the stage of data processing and analysis. In order to obtain the data information related to α diversity index, a program is developed in Python code and passes the tests on the basis of the standard initial data format of “species-sample” which is a two-dimensional matrix. It increases the integration and computing speed, and assist in the follow-up research process.
Key words: plant community; α diversity; diversity index; Python; program design
1 背景
生物多样性能够揭示生物种的多样化程度、变异状况以及物种生境的生态复杂性[1]。作为人类生存与发展的必要条件,生物多样性的研究在植物学、生态学、农业科学等领域得到广泛应用与发掘,并面向共同维系全球生态平衡的森林、草地、湿地、海洋各类型生态系統,不断产生出新的研究热点与重点。在2015-2021六年间,关于生物多样性的论文在爱斯唯尔Scopus数据库中数量达到67469篇[2]。生物多样性指数计算的结果可用于表征物种的丰富度和均匀度,反映生境中物种的数量和分配状况,实现生物多样性测度的定量化[3]。其中,α生物多样性指数的计算应用最为普遍,可应用于优势植物判别、群落特征描述与群落分类确定等具体研究方面[4]。在以往的研究中,从研究样地获得初始数据后,包括生物多样性指数计算的数据处理与分析步骤,依赖于Microsoft Excel、SPSS Statistics、Canoco等软件,需要人工手动输入和接续操作,精度较高,但时间花费较长。近年来,随着计算机技术的发展,出现了R语言中的外在软件包“Vegan”用于生物多样性指数计算和分析,运行效率高,精度也进一步提高。相比于更专精于统计学数据处理的R语言,面向对象的开源编程语言Python,运行速度更快,具有强大的“胶水语言”功能。因此,以α多样性指数计算的数学公式为基础,借助Python语言及Numpy、Matplotlib等第三方库,以命令行方式编写了α多样性指数计算处理程序,实现了α多样性相关指数的计算与绘图,其运行结果与传统软件及R语言相比无明显区别,集成化等级高,输入固定格式的二维数据矩阵即可得到计算结果与图像,操作简单、上手容易,适合于在生物多样性科学研究的数据处理与分析过程中使用。
2 α多样性计算原理
α多样性是关注局域生境(如栖息地或群落)物种多样性的测度指标,其测度包括物种丰富度指数、物种相对多度模型、物种多样性指数、物种均匀度指数四个方面,可以应用于微生物测序分析与植物群落研究中[5]。选取了具有代表性的数量丰度、物种密度、Chao1指数、ACE指数、Simpson多样性指数、Shannon多样性指数六个数量指数与物种稀释曲线、秩-多度曲线两个曲线图像,通过Python语言编程实现指数计算与图像绘制。
α多样性的计算依赖于野外实验或模型推演中获得的数据。野外实验中,在设定的样方内逐物种识别并记录,综合统计得到初始数据;模型推演中,依靠固定的数学模型自动或手动推算产生初始数据。初始数据通常储存为“物种-样方”的二维矩阵形式,将物种名(即属性)放在行名中,样地名(即样方名、地点)放在列名中,某个样地某个物种的个体数量以自然数(大于等于0的整数)的格式存储在某行某列的单个元素中。
得到数据完整的二维矩阵后,对每列(即每个样地)进行数据处理与分析。假设样地编号为i1,i2,i3, ……,ir,所有样地内物种编号依次为j1,j2,j3,……,js(允许被编号的物种仅在某个或某几个样地中出现),某个样地某个物种的个体数量编号为k11,k12, ……,k21, ……,krs,则初始数据的数据结构如表1所示。
Simpson多样性指数与Shannon多样性指数是反映群落个体属于何种物种的不确定性的两种物种多样性指数,这两个指数都可以由物种度和均匀度两个侧面来反映α多样性。
Simpson多样性指数以随机取样的概率学问题出发,可表述为在群落或样地中随机选择两个个体,其属于同一个物种的概率。其中,pi为某个编号为i的物种在整个样地中出现的概率,S为数量丰度。
3 α多样性程序设计方法
获取初始数据后,确定数据结构,即得到完整的数据信息。基于Windows10系统下Python语言3.7.6版本的支持,通过Python语言程序设计方法,进行数据处理与分析。程序设计中主要借助于拥有多种针对数组进行数据综合处理模块的NumPy库与math库,进行α多样性相关指数的计算与汇总;使用Matplotlib库实现α多样性相关科学计算图像绘制;使用Pandas库实现基于二维矩阵Dataframe格式的“物种-样地”数据结构进行数据处理,将数据从Excel软件的.csv格式读取和输出;同时使用SciPy、Random等库,进行随机数生成和数据最优化选择等功能。程序依托于Python3.7.6与Jupyter Notebook软件运行,运行前需先安装这两个软件,并将扩展名为.ipynb的程序文件在Jupyter Notebook软件中上传后运行。 3.1 数据读入
使用者启动程序文件后,直接按照Jupyter Notebook软件的操作要求即可运行程序,工作目录在程序运行中手动输入设置。用户的初始数据文件必须符合如表1所示的数据结构,且保存为扩展名为.csv,字符编码为utf-8的文件。程序首先调用panda.read_csv函数,读取工作目录下的“物种-样地”表格(即初始数据文件),在内存中创建Dataframe格式的二维矩阵数据表,这样数据全部读入到程序中,调用Numpy库与math库中的函数,即可进行下一步的数据统计与计算。
3.2 α多样性指数计算
α多样性相关指数的计算原理如前公式(1)~(9)所示。对于每个样地的各项指数计算,均采取按样地分解、循环计算,也即对每列使用for循环遍历,以数组的数据结构计算的代码形式,并用if判断语句去除记录物种名称的首列[9]。所有指数的计算方法与公式(1)~(9)相同,数学运算符号更改为适合于Python语言的格式,并在计算前设置空数组存储每列的计算结果。对于需要加和的各项指数,设定初始值为0,然后累加;对于需要判断个体数(如Chao1指数下的S1指数需要判断个体数为1的物种)的情况,则额外添加一个或多个嵌套的for循环,使用if-else判断语句进行判别。
3.3 α多样性图像绘制
α多样性的图像绘制包括物种稀释曲线与秩-多度曲线。物种稀释曲线是反映物种观测量合理性与间接反映样品中物种丰富程度的曲线。构建物种稀释曲线首先利用Random库与NumPy库通过随机抽样确定数个物种数与个体数的关系数对,然后利用这些数对用幂函数