普氏分析(Procrustes Analysis)

在微生物群落研究的过程中,我们经常需要评估微生物群落结构与环境因子整体之间是否具有显著的相关性,此时,通常使用的方式是Mantel test普氏分析

普鲁克分析(Procrustes Analysis) 又名普氏分析,是一种用来分析形状分布的统计方法。应用在数据分析中,可以理解为比较两组数据一致性的方法,主要用于表示样品不同方面的数据关联度。在宏基因组测序中, Procrustes分析常用于解释细菌组成与耐药基因的相关性,细菌与功能基因的相关性;在转录组测序中, Procrustes分析可用于解释基因与表型的相关性等;在物种分类中,普氏分析可以解释不同基因对物种鉴定的一致性。

在这里,我用Procrustes Analysis分析了地表水和地下水微生物群落的相似性和一致性。

library(vegan)
groundwater<-read.table("clipboard",header = T)
surface<-read.table("clipboard",header=T)
groundwater.dist<-vegdist(groundwater,method = "bray")
surface.dist<-vegdist(surface,method = "bray")mds.ground<-monoMDS(groundwater.dist)
mds.surface<-monoMDS(surface.dist)pro.g.s<-procrustes(mds.ground,mds.surface)
pro.g.s
protest(mds.ground,mds.surface)Y <- cbind(data.frame(pro.g.s$Yrot), data.frame(pro.g.s$X))
X <- data.frame(pro.g.s$rotation)Y$ID <- rownames(Y)p <- ggplot(Y) +geom_segment(aes(x = X1, y = X2, xend = (X1 + MDS1)/2, yend = (X2 + MDS2)/2), arrow = arrow(length = unit(0, 'cm')),color = "#B2182B", size = 1) +geom_segment(aes(x = (X1 + MDS1)/2, y = (X2 + MDS2)/2, xend = MDS1, yend = MDS2), arrow = arrow(length = unit(0, 'cm')),color = "#56B4E9", size = 1) +geom_point(aes(X1, X2), fill = "#B2182B", size = 4, shape = 21) +geom_point(aes(MDS1, MDS2), fill = "#56B4E9", size = 4, shape = 21) +theme(panel.grid = element_blank(), panel.background = element_rect(color = 'black', fill = 'transparent'),legend.key = element_rect(fill = 'transparent'),axis.ticks.length = unit(0.4,"lines"), axis.ticks = element_line(color='black'),axis.line = element_line(colour = "black"), axis.title.x=element_text(colour='black', size=14),axis.title.y=element_text(colour='black', size=14),axis.text=element_text(colour='black',size=12)) +labs(x = 'Dimension 1', y = 'Dimension 2', color = '') +labs(title="Correlation between community and environment") + geom_vline(xintercept = 0, color = 'gray', linetype = 2, size = 0.3) +geom_hline(yintercept = 0, color = 'gray', linetype = 2, size = 0.3) +geom_abline(intercept = 0, slope = X[1,2]/X[1,1], size = 0.3) +geom_abline(intercept = 0, slope = X[2,2]/X[2,1], size = 0.3) +annotate('text', label = 'Procrustes analysis:\n    M2 = ###, p-value = ###',x = -1.5, y = 1.2, size = 4,hjust = 0) +theme(plot.title = element_text(size=16,colour = "black",hjust = 0,face = "bold"))
p

其中groundwater和surface分别是地下水和地表水的物种相对丰度表,行为样本,列为物种。普氏分析需要两张表的行相对应,这里是按照地下水的采样点和地表水采样点的距离最近相对应。

执行完protest(mds.ground,mds.surface)会出现以下信息:

其中Procrustes Sum of Squares就是M²,Significance是P-value。M²越小表示两个群落之间越一致。


其中的M²和p值可以将图片导出pdf用AI手动填入。

普氏分析在生信中的应用相关推荐

  1. Procrustes Analysis(普氏分析)

    Procrustes Analysis普氏分析法 选取N幅同类目标物体的二维图像,并用上一篇博文的方法标注轮廓点,这样就得到训练样本集: 由于图像中目标物体的形状和位置存在较大偏差,因此所得到的数据并 ...

  2. java常规普氏分析法_人脸对齐:Procrustes analysis 普氏分析

    概述 在人脸相关应用中,获得的人脸图像常常形状各异,这时就需要对人脸形状进行归一化处理.人脸对齐就是将两个不同的形状进行归一化的过程,将一个形状尽可能地贴近另一个形状. 值得注意的是,在英语文献中,F ...

  3. Procrustes Analysis普氏分析法

    选取N幅同类目标物体的二维图像,并用上一篇博文的方法标注轮廓点,这样就得到训练样本集: 由于图像中目标物体的形状和位置存在较大偏差,因此所得到的数据并不具有仿射不变性,需要对其进行归一化处理.这里采用 ...

  4. 多维标度法(MDS,Multidimensional Scaling)及普氏分析(Procrustes Analysis)在人体姿态关节点上的简单示例(python)

    多维标度法(MDS,Multidimensional Scaling) 多维标度法一个简单的应用示例就是,已知一组城市之间的相对距离关系(相似矩阵),如何求解出各个城市在地图上的位置,使其尽可能满足前 ...

  5. 普氏分析法-MATLAB工具箱函数

    Hello,everyone! 我是鲁班·,一个热衷于科研和软开的胖子! 1 理论 Procrustes Analysis普氏分析法,此博客对普氏分析法理论介绍的还不错,有兴趣的同学可以读一读. 2 ...

  6. opencv+face_recognition+python实现换脸(face swap)操作(3)——基于普氏分析法(Procrustes Analysis)的代码实现

    #获得特征点 def ladmask(img):faces_loaction=face_recognition.face_locations(img,number_of_times_to_upsamp ...

  7. 普氏分析 matlab,一种考虑土拱效应的砂土地层深埋盾构隧道开挖面极限支护力计算方法与流程...

    本发明涉及一种分析深埋砂土地层中盾构隧道开挖面稳定性的方法,尤其 涉及一种考虑深埋砂土地层中的盾构隧道的开挖面极限支护力计算方法,属于 盾构施工技术领域. 背景技术: 盾构施工技术因其机械化程度高.安 ...

  8. java常规普氏分析法,python AI换脸 用普氏分析法(Procrustes Analysis)实现人脸对齐...

    1.图片效果 2.原代码 # !/usr/bin/python # -*- coding: utf-8 -*- # Copyright (c) 2015 Matthew Earl # # Permis ...

  9. 普氏分析法的输入和输出实例,matlab图像处理

    X=[1,2;3,3] Y=[1,2;3,4] [a,b,c]=procrustes(X,Y) Z = c.b * Y * c.T + c.c a = -4.4409e-16 b = 1 23 3 c ...

最新文章

  1. ASP.NET 打开新窗口几种方法
  2. Linux文件索引节点相关概念
  3. Linux Hbase1.2.6 安装及使用(1)
  4. 史上最萌最认真的机器学习/深度学习/模式识别入门指导手册(三)
  5. SQL Server 2005大小写敏感设置
  6. 外星人电脑为什么那么贵_为什么百丽的鞋那么贵
  7. CentOS6安装netcat 瑞士军刀【附带下载资源链接】
  8. 【第二周】四人小组:车辆管理系统
  9. 【Ubuntu】在Ubuntu 12.04 LTS上安装JDK6
  10. redis tutorail
  11. 大华管理平台用户名_助力制造苏州紫光云引擎携手大华精密,共建精密机加数字化样板工厂...
  12. QT编写的数据转曲线工具
  13. 《论文阅读》D3DLO: DEEP 3D LIDAR ODOMETRY
  14. 从键盘上键入1~7的数字,输出对应星期以及英文缩写
  15. 网络地址快速计算方法:IP地址24位-30位掩码绕过二进制计算迅速得到网络地址
  16. PLC控制系统如何抵抗干扰
  17. 用树莓派搭建全功能NAS服务器(02):Docker用法下载机配置
  18. 在c语言中整数除以0,整数除零在哪些平台上触发浮点异常?
  19. Volatile重排序规则的一些理解
  20. kubernetes搭建rook-ceph

热门文章

  1. [golang]time.After 在select中使用的正确姿势(解决超时逻辑未生效bug)
  2. 如果你只知道开心网,那你就OUT了。。。。。
  3. Pytorch+Google BERT模型(RoBERTa+LSTM+GRU)实战
  4. 公众号点击图片变成另一张_公众号互动内容:小众潮流or下一个风口?
  5. qbxt国庆水题记day3
  6. 5G时代带动陶瓷PCB成长——GPS陶瓷天线调试方法 (一)
  7. 五、资产证券化的加速
  8. RADIUS协议 [收藏]
  9. coreldraw橙子怎么画_智慧职教云课堂APPcoreldraw服装款式图绘画(安徽职业技术学院)章节测验答案...
  10. 宇宙的电网模型之太阳实验起源谭