数据库代码公开:单肿瘤单基因在多个分组中表达差异-kruskal

作者:半步博导 时间:2024年6月30日 03:10 阅读量:207

 
#基因以MKI67为例,肿瘤以LUAD为例
genName = "MKI67"
CancerName = "LUAD"
#读取基因表达
data = read.table(paste0("Expression.",genName,".zscore.txt"),sep="\t",header=T,check.names=F, row.names=1)  
#提取特定肿瘤中的表达
data = data[data$CancerType == CancerName,]
#只保留肿瘤样本
tumorsample = rownames(data)[substr(rownames(data),14,14) == "0"]
data = data[tumorsample,]
#读取Satge分期表达
Stage = read.table("pancancer.stage.txt", header=T, sep="\t", check.names=F, row.names=1)
colnames(Stage)[1] = "Stage"
#获得基因表达与stage分期共同的样本
samesamples=intersect(rownames(data),rownames(Stage))
data = data[samesamples,,drop=F]
Stage = Stage[samesamples,,drop=F]
#合并基因表达与stage分期共同的样本
tmp = cbind(data[,genName,drop=F], Stage)
#第一列是基因表达,保证这一列是数值型
tmp[,1] = as.numeric(unlist(tmp[,1]))
#删除tmp文件中具有空值的行
tmp = na.omit(tmp) 
tmp = as.data.frame(tmp)
#新增expression这一列,使得它等于基因的表达量
tmp$expression = tmp[,1]
p = kruskal.test(expression ~ Stage, 
                  data = tmp)$p.value