m0_47470548 2021-03-05 20:37 采纳率: 0%
浏览 376

TCGA合并GETx数据进行免疫lncRNA提取

 

 

问题如下:

下载TCGA肿瘤样本,但改数据中无正常组织,合并GETx数据进行免疫lncRNA提取,代码部分如下:

rm(list = ls())

library(limma)

corFilter=0.4    

pvalueFilter=0.001  

setwd("C:\\Users\\CXH\\Desktop\\120irlncRNA\\09.irRNA") 

#读取lncRNA,并对数据进行处理

rt = read.table("lncRNA.txt", header=T, sep="\t", check.names=F)

rt=as.matrix(rt)

rownames(rt)=rt[,1]

exp=rt[,2:ncol(rt)]

dimnames=list(rownames(exp),colnames(exp))

data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames)

data=avereps(data)

data=data[rowMeans(data)>0.5,]

#删掉正常样品

group=sapply(strsplit(colnames(data),"\\-"),"[",4)

class(group)

list(group)

group=sapply(strsplit(group,""), "[", 1)

group=gsub("2","1",group)

lncRNA=data[,group==0]

#读取免疫基因表达文件,并对数据进行处理

rt = read.table("immGeneExp.txt", header=T, sep="\t", check.names=F)

rt=as.matrix(rt)

rownames(rt)=rt[,1]

exp=rt[,2:ncol(rt)]

dimnames=list(rownames(exp),colnames(exp))

immuneGene=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames)

immuneGene=avereps(immuneGene)

immuneGene=immuneGene[rowMeans(immuneGene)>0.5,]

#删掉正常样品

group=sapply(strsplit(colnames(immuneGene),"\\-"),"[",4)

group=sapply(strsplit(group,""),"[",1)

group=gsub("2","1",group)

immuneGene=immuneGene[,group==0]

#相关性检验

outTab=data.frame()

for(i in row.names(lncRNA)){

 if(sd(lncRNA[i,])>0.5){

  for(j in row.names(immuneGene)){

   x=as.numeric(lncRNA[i,])

   y=as.numeric(immuneGene[j,])

   corT=cor.test(x,y)

   cor=corT$estimate

   pvalue=corT$p.value

   if((cor>corFilter) & (pvalue<pvalueFilter)){

    outTab=rbind(outTab,cbind(immuneGene=j,lncRNA=i,cor,pvalue,Regulation="postive"))

   }

   if((cor< -corFilter) & (pvalue<pvalueFilter)){

    outTab=rbind(outTab,cbind(immuneGene=j,lncRNA=i,cor,pvalue,Regulation="negative"))

   }

  }

 }

}

但是运行相关性检验后,结果:Error in if ((cor > corFilter) & (pvalue < pvalueFilter)) { : 

 需要TRUE/FALSE值的地方不可以用缺少值

此外: Warning message:

In cor(x, y) : 标准差为零

反复排查,初步考虑删掉正常样品部分的代码需要修改,但怎么尝试都不行,请大神指点:

#删掉正常样品

group=sapply(strsplit(colnames(immuneGene),"\\-"),"[",4)

group=sapply(strsplit(group,""),"[",1)

group=gsub("2","1",group)

immuneGene=immuneGene[,group==0]

因为TCGA命名规律:TCGA-20-0987-01A

而GETx命名规律:GTEX-PWCY-1326-SM-48TCU

还请大神指点,谢谢!

  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-16 14:09
    关注

    参考GPT和自己的思路:

    看起来您的代码中有一些问题,可能导致出现缺少值的情况。具体来说:

    1. 在删掉正常样品部分的代码中,您使用了正则表达式“\-”来分割样本名,但是这个正则表达式不适用于GETx数据,因为GETx样本名中没有“-”字符。您需要使用"_"来分割GETx样本名。

    2. 在运行相关性检验的部分,您可能会遇到标准差为零的情况。这通常是由于数据中存在完全相同的样本或基因导致的。您可以检查一下您的数据,看看是否存在这种情况,并根据情况进行处理。

    除此之外,我还建议您检查一下您的数据格式是否正确,特别是在读取文件的过程中。另外,您可以尝试使用一些调试工具(比如RStudio),以便更好地定位问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog