我正在尝试运行R脚本(特别是,我正在使用Bioconductor包中的"getLineages"函数,Slingshot.
我想知道为什么当我使用这个函数时出现错误"向量内存耗尽(限制达到了?)",因为与这个包中的其他函数相比,它似乎不是最耗费内存的函数(带有我正在分析的数据).
我确实理解在Stackoverflow上还有其他类似的问题,但他们都建议切换到64位版本的R.但是,我已经在使用这个版本.到目前为止,这个问题似乎没有其他答案,我想知道是否有人知道?
数据大小只有120mb,远远低于我电脑的8GB内存.
我比较R中树状图,一个与创建热图的两个方面made4
的heatplot
,一个用gplots
的heatmap.2
.适当的结果取决于分析,但我试图理解为什么默认值是如此不同,以及如何让两个函数给出相同的结果(或高度相似的结果),以便我理解所有'blackbox'参数进入这个.
这是示例数据和包:
require(gplots)
# made4 from bioconductor
require(made4)
data(khan)
data <- as.matrix(khan$train[1:30,])
Run Code Online (Sandbox Code Playgroud)
使用heatmap.2对数据进行聚类得出:
heatmap.2(data, trace="none")
Run Code Online (Sandbox Code Playgroud)
使用heatplot
给出:
heatplot(data)
Run Code Online (Sandbox Code Playgroud)
最初的结果和缩放非常不同.heatplot
在这种情况下,结果看起来更合理,所以我想了解要用heatmap.2
它来做同样的参数,因为heatmap.2
我有其他优点/功能我想使用,因为我想了解缺少的成分.
heatplot
使用具有相关距离的平均链接,以便我们可以将其输入heatmap.2
以确保使用类似的聚类(基于:https://stat.ethz.ch/pipermail/bioconductor/2010-August/034757.html)
dist.pear <- function(x) as.dist(1-cor(t(x)))
hclust.ave <- function(x) hclust(x, method="average")
heatmap.2(data, trace="none", distfun=dist.pear, hclustfun=hclust.ave)
Run Code Online (Sandbox Code Playgroud)
导致:
这使得行侧树状图看起来更相似但是列仍然不同,因此比例也是如此.看来,heatplot
默认情况下,以某种方式缩放列,默认情况下heatmap.2
不会这样做.如果我向heatmap.2添加行缩放,我得到:
heatmap.2(data, trace="none", distfun=dist.pear, hclustfun=hclust.ave,scale="row")
Run Code Online (Sandbox Code Playgroud)
它仍然不相同但更接近.我怎样才能重现heatplot
结果heatmap.2
?有什么区别?
edit2:看起来关键的区别在于使用以下方法重新heatplot
调整行和列的数据:
if (dualScale) {
print(paste("Data (original) range: …
Run Code Online (Sandbox Code Playgroud) r cluster-analysis hierarchical-clustering heatmap bioconductor
我正在尝试使用他们网站上的代码将Bioconductor安装到R中.当我输入代码时(见下文),我收到一条错误消息,说某些软件包无法更新,安装路径是不可写的.
> ## try http:// if https:// URLs are not supported
> source("https://bioconductor.org/biocLite.R")
Bioconductor version 3.4 (BiocInstaller 1.24.0), ?biocLite for help
> biocLite()
BioC_mirror: https://bioconductor.org
Using Bioconductor 3.4 (BiocInstaller 1.24.0), R 3.3.2 (2016-10-31).
installation path not writeable, unable to update packages: Matrix, mgcv,
Run Code Online (Sandbox Code Playgroud)
生存
我可以通过转包/安装包来安装这些包.
> utils:::menuInstallPkgs()
trying URL 'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/Matrix_1.2-8.zip'
Content type 'application/zip' length 2775038 bytes (2.6 MB)
downloaded 2.6 MB
trying URL 'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/mgcv_1.8- 16.zip'
Content type 'application/zip' length 2346257 bytes (2.2 MB)
downloaded 2.2 MB
trying URL 'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/survival_2.40-1.zip'
Content …
Run Code Online (Sandbox Code Playgroud) 我想使用Gviz
包将置信区间映射到具有NA的数据.我修改了手动示例来揭露我的问题.首先作为手册曝光:
library(Gviz)
## Loading GRanges object
data(twoGroups)
## Plot data without NAs
dTrack <- DataTrack(twoGroups, name = "uniform")
tiff("Gviz_original.tiff", units="in", width=11, height=8.5, res=200, compress="lzw")
plotTracks(dTrack, groups = rep(c("control", "treated"),
each = 3), type = c("a", "p", "confint"))
graphics.off()
Run Code Online (Sandbox Code Playgroud)
## Transforming in data frame
df <- as.data.frame(twoGroups)
## Input NAs to look like my real data
df[ df <= 0 ] = NA
df <- df[,-4]
df <- df[,-4]
names(df) <- c("chr", "start", "end", …
Run Code Online (Sandbox Code Playgroud) 我正在尝试一些关于bioconductor的教程; 但我收到错误消息,我想搜索/提交; 不幸的是,由于R安装在用法语配置的系统上,R用法语返回消息; 我怎么能用英语这些消息.
我的系统:Ubuntu 10.04运行gnome 3; R版本是最后一个(2.15.1)Bioconductor已更新为2.10,
我尝试下载/使用数据集GSE20986(但我在使用另一个数据集GSE2034时遇到了类似的错误,同时遵循"R简而言之"中给出的程序); 对于那些说法语的人,我得到的错误信息是:
> getGEOSuppFiles("GSE20986")
[1] "ftp://ftp.ncbi.nlm.nih.gov/pub/geo/DATA/supplementary/series/GSE20986/"
Erreur dans scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
la ligne 1 n'avait pas 6 éléments
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我管理了Depends,建议和导入描述文件.最后我提交了我的包裹CRAN
.但是在安装包装时,它只安装存放在包装下CRAN
的bioconductor
包装.此外,它还具有Mac OS的程序包依赖性错误:
检查Mac OS的日志
可能是什么问题呢?我怎么能修好它?
亲切的问候,
我有一个包含Ensembl ID的data.frame在一列中; 我想为该列的值找到相应的基因符号,并将它们添加到我的数据框中的新列.我使用bioMaRt但它找不到任何Ensembl ID!
这是我的示例数据(df[1:2,]
):
row.names organism gene
41 Homo-Sapiens ENSP00000335357
115 Homo-Sapiens ENSP00000227378
Run Code Online (Sandbox Code Playgroud)
我希望得到这样的东西
row.names organism gene id
41 Homo-Sapiens ENSP00000335357 CDKN3
115 Homo-Sapiens ENSP00000227378 HSPA8
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
library('biomaRt')
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- df$genes
df$id <- NA
G_list <- getBM(filters= "ensembl_gene_id", attributes= c("ensembl_gene_id",
"entrezgene", "description"),values=genes,mart= mart)
Run Code Online (Sandbox Code Playgroud)
然后,当我检查G_list时,我得到了这个
[1] ensembl_gene_id entrezgene description <0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)
所以我无法将G_list添加到我的df中!因为没有什么可补充的!
提前致谢,
首先,这可能是这个问题的错误论坛,因为R + Bioconductor具体相当.这就是我所拥有的:
library('GEOquery')
GDS = getGEO('GDS785')
cd4T = GDS2eSet(GDS)
cd4T <- cd4T[!fData(cd4T)$symbol == "",]
Run Code Online (Sandbox Code Playgroud)
现在cd4T是一个ExpressionSet对象,它包含一个包含19794行(probesets)和15列(样本)的大矩阵.最后一行消除了所有没有相应基因符号的探针组.现在麻烦的是,该组中的大多数基因被分配到多个探针组.你可以这样看
gene_symbols = factor(fData(cd4T)$Gene.symbol)
length(gene_symbols)-length(levels(gene_symbols))
[1] 6897
Run Code Online (Sandbox Code Playgroud)
因此,我的19794探针组中只有6897个具有独特的探针组 - >基因映射.我想以某种方式结合与每个基因相关的每个探针组的表达水平.我不太关心每个探针的实际探测ID.我非常希望最终得到一个包含合并信息的ExpressionSet,因为我的所有下游分析都是为了使用这个类而设计的.
我想我可以编写一些手工编写的代码,并从头开始创建一个新的表达式.但是,我假设这不是一个新问题,并且存在使用统计学上合理的方法来组合基因表达水平的代码.我猜这里也有一个合适的名字,但我的谷歌没有显示出太大的用处.有人可以帮忙吗?
我有一个包含100个样本的ExpressionSet对象:
> length(sampleNames(eset1))
100
Run Code Online (Sandbox Code Playgroud)
我还有一个75个样本名称的向量(不是数据本身):
> length(vecOf75)
75
Run Code Online (Sandbox Code Playgroud)
如何eset1
根据75个样本名称进行子集化(并保存)?也就是说,我想忽略那些eset1
名字未列出的样本vecOf75
.请记住,对应于75个样本名称的一些样本可能不在eset1
.从而,
> length(sampleNames(eset1))
Run Code Online (Sandbox Code Playgroud)
现在应该给出<75.