lncrna pairs怎么通过r语言实现?
根据迭代循环,比较每个lncRNA pairs中两个lncRNA的表达,以构造一个0或1矩阵。以lncRNA对为例,当lncRNA A的表达水平大于lncRNA B时,lncRNA A/lncRNA B的表达水平定义为“1”,否则定义为“0”。当lncRNA对的表达水平分别占所有样本的20%-80%时,lncRNA对被保留
你把你得数据发给我,我测试一下
假设读入的数据框名为"lncRNA_exp",其中包含n个样本和m个lncRNA基因。
#用两层循环遍历lncRNA基因,生成所有可能的lncRNA对
pairs <- NULL
for (i in 1:(m-1)) {
for (j in (i+1):m) {
pairs <- rbind(pairs, c(i,j))
}
}
#计算表达差异,构建01矩阵
lncRNA_pairs_exp <- matrix(0, nrow=nrow(pairs), ncol=n)
for (i in 1:nrow(pairs)) {
exp1 <- lncRNA_exp[pairs[i,1],]
exp2 <- lncRNA_exp[pairs[i,2],]
diff <- exp1 - exp2
cutoff <- quantile(diff, c(0.2,0.8)) #占比为20%-80%
lncRNA_pairs_exp[i,] <- as.numeric(diff >= cutoff[1] & diff <= cutoff[2])
}