php лучше, чем mysql “order by”?

Хм. Это загадочная проблема. функция oligo::rma() может быть ошибочной для класса GeneFeatureSet с отдельными выборками. Я заставил его работать с одним образцом, используя функции более низкого уровня, но это означает, что мне также пришлось создавать набор выражений с нуля, указав слоты:

# source("https://bioconductor.org/biocLite.R")
# biocLite("GEOquery")
# biocLite("pd.hg.u133.plus.2")
# biocLite("pd.hugene.1.0.st.v1")
library(GEOquery)
library(oligo)

# # Instead of using .gz files, I extracted the actual CELs.
# # This is just to illustrate how I read in the files; your usage will differ.
# projectDir <- ""  # Path to .tar files here
# setwd(projectDir)
# untar("GSE36809_RAW.tar", exdir = "GSE36809")
# untar("GSE59867_RAW.tar", exdir = "GSE59867")
# setwd("GSE36809"); gse3_cels <- dir()
# sapply(paste(gse3_cels, sep = "/"), gunzip); setwd(projectDir)
# setwd("GSE59867"); gse5_cels <- dir()
# sapply(paste(gse5_cels, sep = "/"), gunzip); setwd(projectDir)
#
# Read in CEL
#
# setwd("GSE36809"); gse3_cels <- dir()
# gse3_efs <- read.celfiles(gse3_cels[1])

# # Assuming you've read in the CEL files as a GeneFeatureSet or 
# # ExpressionFeatureSet object (i.e. gse3_efs in this example),
# # you can now fit the RMA and create an ExpressionSet object with it:

exprsData <- basicRMA(exprs(gse3_efs), pnVec = featureNames(gse3_efs))
gse3_expset <- new("ExpressionSet")
slot(gse3_expset, "assayData") <- assayDataNew(exprs = exprsData)
slot(gse3_expset, "phenoData") <- phenoData(gse3_efs)
slot(gse3_expset, "featureData") <- annotatedDataFrameFrom(attr(gse3_expset, 
  'assayData'), byrow = TRUE)
slot(gse3_expset, "protocolData") <- protocolData(gse3_efs)
slot(gse3_expset, "annotation") <- slot(gse3_efs, "annotation")

Надеюсь, что приведенный выше подход будет работать в твой код.

26
задан alesdario 1 September 2010 в 15:29
поделиться

2 ответа

Вы сравниваете систему с методами, реализованными в оптимизированном C, предназначенном для выполнения именно этой задачи, с другой, которую вы собираетесь реализовать на интерпретируемом языке сценариев.

По сути, все, что написано на C, будет работать намного быстрее, чем эквивалентная функция, написанная на PHP, в 10-100 раз.

Как уже отмечалось, нет никаких сомнений в том, что гораздо эффективнее правильно настроить вашу БД и позволить ей выполнять свою работу.

18
ответ дан 28 November 2019 в 06:32
поделиться

mySQL, без проблем. Он оптимизирован для этого и может использовать индексы. Это было бы ужасно сделать в PHP (и вы бы быстро достигли memory_limit).

22
ответ дан 28 November 2019 в 06:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: