如何使用R进行基因表达数据集分析
我们的数据集由超过100个样本收集的50K+基因表达组成。此csv文件的大小仅为70MB。在R local上运行会在下面第6行出现错误:“无法分配大小为22gb的向量”。这是编写的代码:如何使用R进行基因表达数据集分析,r,machine-learning,bigdata,R,Machine Learning,Bigdata,我们的数据集由超过100个样本收集的50K+基因表达组成。此csv文件的大小仅为70MB。在R local上运行会在下面第6行出现错误:“无法分配大小为22gb的向量”。这是编写的代码: data=as.matrix(read.table("geneExp.csv.csv", row.names = 1, header =T, sep = ',')) logdata=log2(data) t_logdata=t(logdata) output=/* the output label vector
data=as.matrix(read.table("geneExp.csv.csv", row.names = 1, header =T, sep = ','))
logdata=log2(data)
t_logdata=t(logdata)
output=/* the output label vectors 0 or 1 */
library(MASS)
lda.fit=lda(output~., data=as.data.frame(t_logdata), CV=TRUE)
summary(lda.fit)
LDA作为一种降维方法进行了尝试,仅用于实验目的。这是数据的快照:-行是基因,列是样本。
我们找不到一篇关于编写R代码(例如使用cloudml_train(file=“train.R”)的综合在线文章,该文章在云上运行。我们已经尝试从rstudio使用cloudml,但退出时出现了错误。也许这段代码不适合在cloudml上运行?是否应将其更改为tensorflow代码?在云上运行LDA模型的示例会有所帮助。谢谢 不是一个完整的答案,而是一个探索的建议(太长/格式不适合评论)。我拼凑了一个函数,在一个简单的合成数据集上运行LDA,只是想知道可以做些什么(我在Linux VM机器上运行这个函数时使用了“无法分配大小的向量”表示机器的RAM不足,无法满足您的需要。您的数据集似乎没有那么大,但我不确定
lda
需要哪些资源。此外,您的代码正在从数据帧转换数据(读取.table
的输出)这是浪费和不必要的。谷歌搜索“线性判别分析R内存”提出。我不知道它是否有用,但对于有关特定编程问题的问题也是如此-而不是对于要求指向教程材料的指针的请求…@BenBolker,当然,很抱歉。我已经相应地编辑了这个问题。@neilfws谢谢。是的,数据集只有几MB。感谢代码审阅评论。这很有帮助,但我担心这个问题仍然很模糊/宽泛。如果你已经尝试过并且遇到了问题,为什么不编辑你的问题并提供具体的细节呢?有一些关于LDA记忆强度的信息。
f <- function(nr=200,nc=1e3,seed=101) {
set.seed(seed)
grouping <- rbinom(nr,size=1,prob=0.2)
x <- matrix(rnorm(nr*nc),nrow=nr)
m <- MASS::lda(x=x,grouping=grouping)
return(m)
}
system.time(m0 <- f()) ## 1 second
system.time(m0 <- f(5e3)) ## 30 seconds
system.time(m0 <- f(8e3)) ## 48 seconds
system.time(m0 <- f(25e3)) ## 163 seconds