canvasXpress包画pca

13 篇文章 0 订阅

canvasXpress 画pca

library(ggplot2)
library(ggrepel)
library(RColorBrewer)
library(ggpubr)
library(plyr)
library(canvasXpress)

a <- read.table('infile.txt',
                header = TRUE,#是否将第一行作为列名
                row.names = 1)#将第一列作为行名
data <- t(a)#转置数据

group <- read.table('groupfile.txt',
                    header = TRUE)#是否将第一行作为列名
colnames(group)[1] <- "samplenames"                
#主成分计算
pca_data <- prcomp(data, scale = TRUE)
#查看合适主成分个数
screeplot(pca_data, type = "lines")
summary(pca_data)
#查看行名,确认是否为样品的名称
rownames(pca_data$x)
#提取PC1的百分比
x_per <- round(summary(pca_data)$importance[2, 1]*100, 1)
#提取PC2的百分比
y_per <- round(summary(pca_data)$importance[2, 2]*100, 1)
#按照样品名称添加组并且合并
df_sample <- data.frame(samplenames=rownames(pca_data$x), pca_data$x) 
colnames(group)[1] <- 'samplenames'
df_sample <- join(df_sample,group, by = "samplenames")
#数据尾部添加变量Group,只截取部分数据展示
df_sample2 <- smalltools::col_to_rowname(df_sample,1)

canvasXpress(data      = df_sample2,
             varAnnot  = df_sample2,
             colorBy   = "Group",
             fillBy   = "Group",
             ellipseBy = "Group",
             graphType = "Scatter2D",
             title     = "",
             xAxis     = list("PC1"),
             yAxis     = list("PC2"),
             setMaxX = 60,
             setMinX = -60,
             setMaxY = 50,
             setMinY = -50,
             colorScheme = "GGPlot")


在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值