By Gengxin, 30 November, 2025
Forums

  1. 使用转录本tpm,展示转录组样本之间的相似性与差异
fpkm00 <- read.table("6.fpkm.txt",header = T)
#合并具有相同基因名的行
#导入文件时,不要将geneID那一列作为列名
table(duplicated(fpkm00$gene_id)) #统计重复基因名的基因
gene <- fpkm00$gene_id #将基因ID导入到文件夹中
fpkm00 <- fpkm00[,-1]  #去除含有基因ID的那一列
fpkm0 <- aggregate(fpkm00, by=list(gene), FUN=sum)
fpkm <- column_to_rownames(fpkm0,"Group.1") #将第一列作为列名
data <- log2(fpkm+1) 
datTraits <- data.frame(row.names = colnames(data),group=colnames(data))### 创建datTraits,包含分组、表型等信息
#fix(datTraits)
grouptype <- data.frame(group=sort(unique(datTraits$group)),
                        groupNo=1:length(unique(datTraits$group)))### 给分组加上编号  
datTraits$groupNo = "NA"# fix(grouptype)        
for(i in 1:nrow(grouptype)){
  datTraits[which(datTraits$group == grouptype$group[i]),'groupNo'] <- grouptype$groupNo[i]}
fix(datTraits)
datTraits
datExpr0 <- as.data.frame(t(data))  ### 转置  


group_list <- datTraits$groupNo
dat.pca <- PCA(datExpr0, graph = F) 
pca <- fviz_pca_ind(dat.pca,
                    title = "Principal Component Analysis",
                    legend.title = "Groups",
                    geom.ind = c("point","text"), #"point","text"
                    pointsize = 2,
                    labelsize = 4,
                    repel = TRUE, #标签不重叠
                    col.ind = group_list, # 分组上色
                    axes.linetype=NA,  # remove axeslines
                    mean.point=F#去除分组中心点
) +
  theme(legend.position = "none")+  # "none" REMOVE legend
  coord_fixed(ratio = 1) #坐标轴的纵横比
pca