进行芯片数据差异分析的时候,替换data里非法字符后运行到
conData=data[,sampleName1]
Error in data[, sampleName1] : subscript out of bounds
这一步报错Error in data[, sampleName1] : subscript out of bounds
请问怎么解决呀
以下是全部代码:
rm(list = ls())
#引用包
library(limma)
library(pheatmap)
library(ggplot2)
inputFile="GSE40611_series_matrix" #表达数据文件
conFile="s1.txt" #对照组的样品信息文件
treatFile="s2.txt" #实验组的样品信息文件
logFCfilter=0.1 #logFC过滤条件(logFC=0.585,差异倍数1.5倍;logFC=1,差异2倍;logFC=2,差异4倍)
P.Val.Filter=0.05 #矫正后p值的过滤条件
geoID="GSE40611" #GEO数据库研究的id
getwd()
#读取输入文件,并对输入文件整理
rt=read.table('GSE40611gene1.txt',sep = "\t",
comment.char = "!", stringsAsFactors = F,header = T, fill=TRUE)
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)
rt=avereps(data)
#如果数据没有取log2, 会对数据自动取log2
qx=as.numeric(quantile(rt, c(0, 0.25, 0.5, 0.75, 0.99, 1.0), na.rm=T))
LogC=( (qx[5]>100) || ( (qx[6]-qx[1])>50 && qx[2]>0) )
if(LogC){
rt[rt<0]=0
rt=log2(rt+1)}
data=normalizeBetweenArrays(rt)
#读取样品信息的文件(对照组和实验组)
sample1=read.table("s1.txt",sep = "\t",
comment.char = "!", stringsAsFactors = F,header = T, fill=TRUE)
sample2=read.table("s2.txt",sep = "\t",
comment.char = "!", stringsAsFactors = F,header = T, fill=TRUE)
sampleName1=gsub("^ | $", "", as.vector(sample1[,1]))
sampleName2=gsub("^ | $", "", as.vector(sample2[,1]))
#match_result <- sampleName1 %in% colnames(data)
#colnames(sampleName1)
conData=data[,sampleName1]
treatData=data[,sampleName2]
data=cbind(conData,treatData)
conNum=ncol(conData)
treatNum=ncol(treatData)