NTsys实现聚类分析及树状图的绘制

注意:聚类分析和树状图在R软件中能够十分方便的实现,而在NTsys中实现的过程较为复杂。但由于NTsys软件是图形界面操作的,这里仍然列出相应的操作步骤,以供同仁参考。

以下内容 首次发表在planta论坛

NTsys可以处理质量性状与连续数量性状,并据此计算多种距离矩阵,根据距离矩阵采取适当的聚类方法得到聚类图。
每一个运算步骤,均有相应的模块执行,需要做的只是选择相应的参数。
以UPGMA法为例,对于数量性状,常遵循以下步骤:

1 矩阵的制作

操作:在Excel里,按照NTsys的要求面做好矩阵。

  • 第1行第1个数字一般填1,代表要处理的数据为数字矩阵。
  • 第1行第2个数字填行数,
  • 第3个数字填列数。
  • 第1行第4个数字,如果有缺失值填1,没有缺失值填0.当然最好不要有缺失值。
  • 第2行 按照顺序填写每一列的名称。第2行的定格要空出来。
  • 第3行 开始才是正式的数据矩阵。从第3行开始,第1列作为要操作的单元名称。
    数据准备好后,一般要存为Excel97格式。

再用ntedit打开,查看是否有错误,如果没有错误,建议另存为“.nts”格式的文件,如data.nts.

2 矩阵的标准化,数据标准化的是为了便于数据的横向比较。

操作:采用左侧output&Transf. 栏下的Standardization模块. 一般是将数据减去算术平均值,并除以标准差,转换为N(0,1)分布。

3 计算距离矩阵

操作:采用左侧Similarity 栏下的 Interval data模块(又称simint),默认为平均分类距离(Average taxonomic distance)。
其公式可以参考帮助文件。
当然,有多种距离可供选择:
如:

  • Bray-Curtis distance.
  • DIST Average taxonomic distance.
  • DISTSQ Squared average distances.
  • EUCLID Euclidean distances.
  • EUCLIDSQ Euclidean distances squared.
  • MANHAT Average Manhattan distances (city block).
  • PSHAPE Penrose’s shape coefficient.
  • PSIZE Penrose’s size coefficient.
  • CORR Pearson product-moment correlation.
  • 4 依据第3步计算出的距离矩阵,进行聚类分析,计算聚类树矩阵。

    操作:点击左侧Clustering栏下的 SAHN模块,默认为UPGMA。
    也有多种算法可以选择。这里采用UPGMA.

5 Mantel检验

将第4步计算出的聚类树矩阵,和第三部计算的距离矩阵进行比较,进行Mantel检测,计算协表距离矩阵,及相关性系数。以表示该聚类树对原始距离矩阵的代表程度。
操作: 点击左侧Graphics栏下的 Matrix comparison plot输入聚类树矩阵与距离矩阵,运行即可。

6 绘制聚类树图

操作: 点击左侧Graphics栏下的 Tree plot,选择聚类树距离文件,就可做出聚类结果图。

当然,一步一步操作非常麻烦,所以建议最好用批处理命令进行。
批处理命令脚本的编写:

  • “为注释行
  • *为命令行
  • “*”后紧跟模块名称,
  • “o”为要读取的文件,
  • “r”为运行后的结果存储的文件
    另有多种参数。

对数量性状进行聚类分析,采用UPGMA方法的批处理代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
" Standardize the variables 
*stand o=data.nts r=sdata.nts
" Compute a distance matrix
*simint o=sdata.nts r=dist.nts c=dist
" Do a single-link cluster analysis of the distance matrix
*sahn o=dist.nts r=tree.nts
" Compute cophenetic values
*coph o=tree.nts r=coph.nts
" Compute the cophenetic correlation
*mxcomp x=coph.nts y=dist.nts
" Display phenogram
*tree o=tree.nts
" Display distance matrix
*output o=dist.nts

将以上脚本复制到记事本中,将扩展名改为.ntb文件,就可执行批处理命令了。

下载相应的文档和软件

img

聚类树状图 举例

附录

NTsys进行主成分分析的脚本

主成份分析的散点图
ntsys目前可以绘制三维的散点图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
" Standardize variables (rows) 
*stand o=data.nts r=sdata.nts
" Compute correlations among variables (rows)
*simint o=sdata.nts c=corr r=corr.nts d=row
" Output the correlation matrix
*output o=corr.nts
" Extract first 3 PCA axes from correlation matrix
*eigen o=corr.nts n=3 r=vect.nts val=val.nts
" Output principal component axes
*output o=vect.nts
" Project objects onto PCA axes
*proj o=sdata.nts d=col f=vect.nts r=proj.nts
" Output projections
*output o=proj.nts
" Display 3D plot of projection of objects
*mod3d o=proj.nts
" Display 3D plot of variables defining the PCA axes
*mod3d o=vect.nts d=col