GEO RNAseq与chip seq数据整合

GEO数据有芯片数据,也有RNAseq数据,芯片数据一般是经过背景校正、标准化过的。如果表达量较小,说明是经过log2转化。

qx <- as.numeric(quantile(exprset, 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) ||
          (qx[2] > 0 && qx[2] < 1 && qx[4] > 1 && qx[4] < 2)
if (LogC) { 
  exprset[which(exprset<= 0)] <- NaN
  exprset <- log2(exprset) 
}

RNAseq数据有counts矩阵,也有FPKM。FPKM可以看做为基因的相对表达量,不能转为counts,根据公式可以看出。那么当有counts,有FPKM时,我们需要将count转为FPKM,或者将他们都转为TPM。

txdb <- makeTxDbFromGFF("Homo_sapiens.GRCh38.94.gtf",format="gtf")
exons_gene <- exonsBy(txdb,by = "gene") 
exons_gene_lens <- lapply(exons_gene,function(x){sum(width(reduce(x)))})

colsumfpkm <- colSums(countDataRaw)
for (x in rownames(countDataRaw)) {
    countDataRaw[x, ] = countDataRaw[x,]/(exons_gene_lens[[x]]/1000)
}
countDataRawtpm <- countDataRaw
for (x in 1:ncol(countDataRaw)) {
    countDataRawtpm[, x] = countDataRaw[, x]*1000000/colSums(countDataRaw)[x]
}

接下来我们将TPM 也log2转化然后合并数据集,校正批次效应。

你可能感兴趣的:(GEO RNAseq与chip seq数据整合)