标签: bioconductor

在使用R的CMA Bioconductor包时,解决SVM分类的交叉验证中的"模型空"错误

我正在使用Bioconductor软件包CMA在微阵列数据集中对SVM分类器执行内部蒙特卡罗交叉验证(MCCV).CMA内部使用e1071 R软件包进行SVM工作.

数据集有45个样本(观察)的387个变量(属性),它们属于两个类别之一(标签0或1;比例约为1:1).所有数据都是数字的,没有NA.我正在尝试使用limma统计数据进行差异基因表达分析,为SVM选择15个变量的1000次迭代MCCV .在MCCV期间,45个样本集的一部分用于训练SVM分类器,然后用于测试剩余分数,并且我正在尝试训练集分数的不同值.CMA还执行内循环验证(默认情况下在训练集内进行3次交叉验证),以微调用于针对测试集进行交叉验证的分类器.所有这些都是在CMA包中完成的.

有时,对于低训练集大小,CMA在控制台中显示错误并停止执行分类的其余代码.

[snip]tuning iteration 575
tuning iteration 576
tuning iteration 577
Error in predict.svm(ret, xhold, decision.values = TRUE) :   Model is empty!

即使我使用除limma之外的测试进行变量选择,或者使用两个而不是15个变量进行分类器生成,它也会发生.我使用的R代码应确保训练集始终具有两个类的成员.我很感激任何见解.

下面是我使用的R代码,Mac OS X 10.6.6,R 2.12.1,Biobase 2.10.0,CMA 1.8.1,limma 3.6.9和WilcoxCV 1.0.2.数据文件hy3ExpHsaMir.txt可以从http://rapidshare.com/files/447062901/hy3ExpHsaMir.txt下载.

一切顺利,直到gfor(g在0:10)循环中为9 (用于改变训练/测试集大小).


# exp is the expression table, a matrix; 'classes' is list of known classes
exp <- as.matrix(read.table(file='hy3ExpHsaMir.txt', sep='\t', row.names=1, header=T, check.names=F))
#best is to use 0 and 1 as class labels (instead of …
Run Code Online (Sandbox Code Playgroud)

r classification svm bioconductor

5
推荐指数
1
解决办法
3220
查看次数

降级R版和R封装Bioconductor

大家好,我目前在带有Bioconductor v2.13的debian服务器上运行R 3.0.2.我的问题很简单,虽然通过互联网搜索没有给我一个明确的答案:

我怎样才能从R 3.0.2降级.到R 2-15?

考虑到我保留R 3.0.2如何将Bioconductor降级到v2.12?

先感谢您,

linux debian r downgrade bioconductor

5
推荐指数
1
解决办法
3817
查看次数

使用ComBat时出错

我是R的新手,我正在尝试在R sva库中使用331 x 89基因表达值矩阵的ComBat脚本.我的数据由5个批次组成,它以这种方式排序,因此前106行对应批次1,后者106对应批次2,依此类推.

 batch1 <- rep(1,times=106)
 batch2 <- rep(2,times=106)
 batch3 <- rep(3,times=39)
 batch4 <- rep(4,times=26)
 batch5 <- rep(5,times=54)
 batch.type <- as.factor(c(batch1,batch2,batch3,batch4,batch5)) 
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用此命令使用ComBat:

 ComBat(data,batch=batch.type,mod=NULL)
Run Code Online (Sandbox Code Playgroud)

我收到以下读数和错误消息:

"Found 5 batches
Found 0  categorical covariate(s)
Standardizing Data across genes
Error in solve(t(design) %*% design) %*% t(design) %*% t(as.matrix(dat)) : 
  non-conformable arguments"
Run Code Online (Sandbox Code Playgroud)

r bioconductor

5
推荐指数
1
解决办法
5338
查看次数

R:何时使用setGeneric或在命名空间中导出s4方法

我正在写一个小R包,其想法是将来提交给Bioconductor,这就是我决定试用s4课程的原因.不幸的是我在理解何时应该在我的包中使用setGeneric时遇到了问题,并且该setGeneric方法的文档对我来说或多或少是不可理解的.

具体例子:

  1. 我创建了一个名为Foo的s4类
  2. 我为[<-运营商定义了一种方法setMethod("[","Foo", ...)
  3. 我定义了一个as.list使用函数的方法setMethod("as.list", "Foo",...)
  4. 我避免setGenerics在命名空间中使用和导出我的方法,因为我在某处读到了已经定义的泛型函数不需要它

现在的问题是[访问器方法就像魅力一样,但是as.list不起作用.更令人困惑的是,当我通过在R终端输入来导入库BiocGenericslibrary(BiocGenerics)时,as.list开始工作.

问题1:我如何确定[始终有效?这不仅仅是巧合,因为我导入了一些库?

问题2:我该怎么做才能as.list上班?在命名空间中导出方法?用setGeneric

问题3:我认为它as.list开始起作用,因为setGeneric("as.list"...)在BiocGenerics软件包中使用,但似乎并非如此,请阅读此处:http://www.bioconductor.org/packages/release/bioc/manuals/BiocGenerics /man/BiocGenerics.pdf
那么为什么as.list开始工作?它在哪里定义?

oop r bioconductor s4

5
推荐指数
1
解决办法
1163
查看次数

找到重叠区域并提取相应的值

如何找到重叠坐标并提取重叠区域的各个seg.mean值?

data1
      Rl       pValue     chr  start    end     CNA
      2        2.594433   6 129740000 129780000 gain
      2        3.941399   6 130080000 130380000 gain
      1        1.992114  10  80900000  81100000 gain
      1        7.175750  16  44780000  44920000 gain
Run Code Online (Sandbox Code Playgroud)

DATA2

ID     chrom   loc.start   loc.end   num.mark  seg.mean
8410     6     129750000  129760000      8430   0.0039
8410     10    80907000   81000000        5   -1.7738
8410     16    44790000   44910000       12    0.0110
Run Code Online (Sandbox Code Playgroud)

DataOutput中

  Rl       pValue     chr  start    end        CNA    seg.mean
  2        2.594433   6 129750000   129760000  gain   0.0039
  1        1.992114  10  80907000   81000000   gain   -1.7738  
  1 …
Run Code Online (Sandbox Code Playgroud)

r bioinformatics bioconductor

5
推荐指数
2
解决办法
795
查看次数

重新调整因子以便于在R中的DESeq2模型中用作嵌套因子

我使用DESeq2包装适合GLM,并且具有个体(RatID)嵌套在治疗(饮食)中的情况.该软件包的作者建议,每个饮食中的个体从1:N重新调整(其中N是特定饮食中的RatID数),而不是其原始ID /因子水平(DESeq2小插图,第35页).

数据看起来像这样(实际上有更多的列和行,但为简单起见省略):

     Diet Extraction RatID
199 HAMSP          8    65
74   HAMS          9   108
308  HAMS         18   100
41  HAMSA          3    83
88  HAMSP         12    11
221 HAMSP         14    66
200 HAMSA          8    57
155 HAMSB          1   105
245 HAMSB         19    50
254  HAMS         21    90
182 HAMSB          4     4
283 HAMSA         23    59
180 HAMSP          4    22
71  HAMSP          9   112
212  HAMS         12    63
220 HAMSP         14    54
56   HAMS          7    81
274 HAMSP          1    11 …
Run Code Online (Sandbox Code Playgroud)

r bioconductor data.table

5
推荐指数
1
解决办法
376
查看次数

安装R Bioconductor软件包时,'lib ="/ usr/lib/R/library"'不可写"

大家!我正在尝试安装Bioconductor软件包"cummeRbund"并且经常失败.我已经尝试 biocLite("cummeRbund")启用BiocInstaller的命令,install.packages("cummeRbund")以及它们与指定库地址的变体.结果总是如此

"Warning in install.packages(update[instlib == l, "Package"], l, contriburl = contriburl,  :
  'lib = "/usr/lib/R/library"' is not writable"
Run Code Online (Sandbox Code Playgroud)

并且r一直让我使用个人目录.我该怎么做才能摆脱这个讨厌的问题("cummeRbund"不是唯一一个无法安装的软件包)?

我的规格:Ubuntu 14.04 LTS 64位,R版本3.2.2(2015-08-14) - "Fire Safety",Bioconductor 3.2版(BiocInstaller 1.20.0)

r bioconductor

5
推荐指数
1
解决办法
5222
查看次数

在csv文件中编写和加载表达式集

在R中,可以使用编写生物传感器ExpressionSet到csv文件中csv.write.例如,使用可用作bioconductor包的标准膀胱填充数据,以下代码将csv文件写入当前工作的drectory:

library("bladderbatch")
data("bladderdata")
write.csv(bladderEset, "bladderEset.csv")
Run Code Online (Sandbox Code Playgroud)

是否有一个工具可以将生成的csv文件读回到R中ExpressionSet

如果没有,是否有一个ExpressionSet ? csvserialiser/deserialiser,它既可以将ExpressionSets输出为csv文件,也可以将csv文件作为ExpressionSets读取?

我问的原因是因为我需要用Python和Java代码ExpressionsSets互动,我可以很容易地用"CSV"文件,但不能与".rda",".CEL"或其他二进制文件.

csv r bioconductor

5
推荐指数
1
解决办法
528
查看次数

如何在 Travis 中指定生物导体包的包版本?

我正在尝试将 travis 用于我的 R 包。

该检查适用于 R 3.4,结果在这里

对于 R 3.3,Travis 是 KO,因为 Travis 安装了软件包 rhdf5 但它不是正确的版本。结果在这里

我的描述文件中有以下几行

Imports:
data.table,
methods,
stats
Suggests:
rhdf5 (>= 2.20.0),
parallel,
testthat,
knitr,
rmarkdown,
covr
Run Code Online (Sandbox Code Playgroud)

对于 R 3.4,travis 这样做

Installing R packages: rhdf5, zlibbioc
108.31s$ Rscript -e 'install.packages(c("rhdf5", "zlibbioc"));if   (!all(c("rhdf5", "zlibbioc") %in% installed.packages())) { q(status = 1, save = "no")}'
Installing packages into ‘/home/travis/R/Library’
(as ‘lib’ is unspecified)
trying URL 'https://bioconductor.org/packages/3.6/bioc/src/contrib  /rhdf5_2.22.0.tar.gz'
Content type 'application/x-gzip' length 5475293 bytes (5.2 MB)
Run Code Online (Sandbox Code Playgroud)

对于 R …

r bioconductor travis-ci rhdf5

5
推荐指数
0
解决办法
127
查看次数

在编写 R 包时,使用 flowCore::transform 函数,我可以使用变量名作为文本并获取实际值吗?

我试图将一个参数传递给一个函数,它是一个字符串,但必须同时评估它的名称(符号?)和它的值(参见下面的示例)。到目前为止,我能够用来base::get获取实际值,但分配flowCore::'transform,flowSet-method'失败。我知道关于 SO 的许多问题都是关于将字符串评估为变量名,正如您将在下面看到的,我尝试了很多。我认为必须有一个rlang基于答案的答案,但我找不到任何解决方案,任何指针将不胜感激。

一个可重现的例子:

# load required packages -------------------------------------------------------
library(flowAI)   # Bioconductor
library(flowCore) # Bioconductor
library(rlang)
# load example data ------------------------------------------------------------
data(Bcells) # from flowAI
# reprex -----------------------------------------------------------------------
timeCh <- "Time" # this could be variable

x <- flowCore::transform(Bcells,`Time`=(`Time`-min(`Time`)))           # this works
y <- flowCore::transform(Bcells,`Time`=(get(timeCh)-min(get(timeCh)))) # still good
z <- flowCore::transform(Bcells,timeCh=(get(timeCh)-min(get(timeCh)))) # not good
Run Code Online (Sandbox Code Playgroud)

虽然在上面的代码中,转换 forz将运行得很好,但实际上一个新列被添加到名为“timeCh”的 flowSet 中。这不是想要的效果,因为我想使用转换来专门更改现有的 column Time。因此,我一直在尝试一些策略来评估存储在 timeCh 中的字符串作为对象名称 (?) into transform,但无济于事:

timeSym <- sym("Time")
timequo <- …
Run Code Online (Sandbox Code Playgroud)

r scoping bioconductor rlang quosure

5
推荐指数
2
解决办法
141
查看次数