美文网首页
2021-06-26 相关性及PCA分析

2021-06-26 相关性及PCA分析

作者: 学习生信的小兔子 | 来源:发表于2021-06-26 07:39 被阅读0次



    准备数据

    rm(list=ls())
    options(stringsAsFactors = FALSE)
    setwd('D:\\GEO数据挖掘与meta分析\\练习\\相关性及PCA分析(代码\)\\相关性及PCA分析(代码)')
    expr <- read.csv(file='exprs-19samples.csv',row.names = 1, 
                     header = TRUE, sep=",", stringsAsFactors = FALSE)
    

    pearson相关系数

    p <-cor(expr,method="pearson")#默认
    p <-cor(expr)
    head(p)
    p_1<-round(p, 2)#取前小数点两位
    head(p_1)
    #画图
    heatmap(cor(expr),scale="none")
    
    h<-heatmap(cor(expr),Rowv = NA, Colv = NA, scale="none")
    

    异常值的处理

    # 通过correlation,如果发现某个sample与同一組其他sample之间距离很远,则需要删除。
    # 假设需要删除的是第三个sample
    expr <- expr[,c(-3)] #删除第3列
    
    # Correlation between the samples again
    heatmap(p,scale="none")
    
    3.06.png

    斯皮尔曼相关系数

    s <-cor(expr,method="spearman")
    heatmap(s, scale = "none")
    

    PCA分析

    expr <- read.csv(file='exprs-19samples.csv',row.names = 1, 
                        header = TRUE, sep=",", stringsAsFactors = FALSE)
    
    expr_df <-as.data.frame(t(expr))#转置
    
    datTraits_df <- read.csv(file='datTraits.csv',row.names = 1,
                        header = TRUE, sep=",",stringsAsFactors = FALSE)#分组信息
    #R语言常用PCA分析函数有prcomp与princomp, 二者主要是计算方法的差别,建议采用prcomp(SVD方法)
    pca.results <- prcomp(expr_df, center = TRUE, scale. = FALSE)
    #定义足够多的颜色,用于展示分组
    mycol <- c("#223D6C","#D20A13","#088247","#FFD121","#11AA4D","#58CDD9","#7A142C","#5D90BA","#431A3D","#91612D","#6E568C","#E0367A","#D8D155","#64495D","#7CC767")
    
    #画图
    install.packages("ggimage")
    install.packages("devtools")
    install.packages("qrcode")
    library(devtools) #未发布至CRAN 需要devtools安装
    devtools::install_github('fawda123/ggord')
    devtools::install_github("GuangchuangYu/yyplot")
    #如果下载yyplot不顺利,可以直接调用文件夹里的geom_ord_ellipse.R
    source('./geom_ord_ellipse.R') 
    #library(yyplot)
    
    library(devtools)
    install_github('fawda123/ggord')
    library(ggord)
    
    
    library(ggimage)
    library(ggplot2)
    library(plyr)
    library(ggord)
    
    #用ggord画基本PCA图
    ggord(pca.results, grp_in = datTraits_df$treat_type, repel=TRUE,
          ellipse = FALSE, #不显示置信区间背景色
          size = 2, #样本的点大小
          alpha=0.5, #设置点为半透明,出现叠加的效果
          #如果用自定义的颜色,就运行下面这行
          cols = mycol[1:length(unique(datTraits_df$treat_type))],
          arrow = NULL,txt = NULL) + #不画箭头和箭头上的文字
      theme(panel.grid =element_blank()) + #去除网格线
      
      #用yyplot添加置信区间圆圈
      geom_ord_ellipse(ellipse_pro = .95, #设置置信区间
                       size=1.5, #线的粗细
                       lty=1 ) #实线
    
    #保存到pdf文件
    ggsave("PCA.pdf", width = 6, height = 6)
    
    dev.off()
    网络不好 安装不上ggord,一会再试试
    

    相关文章

      网友评论

          本文标题:2021-06-26 相关性及PCA分析

          本文链接:https://www.haomeiwen.com/subject/wopayltx.html