EBImage功能名称

时间:2014-09-21 14:19:02

标签: r image-processing bioconductor

任何人都可以解释在computeFeatures中用于计算不同功能的内容吗?

我得到了? computeFeatures中拼写的命名约定。我不了解.0..a..Ba.标签。

例如:

> library(EBImage)
> y = readImage(system.file("images", "nuclei.tif", package="EBImage"))[,,1]
> x = thresh(y, 10, 10, 0.05)
> x = opening(x, makeBrush(5, shape='disc'))
> x = bwlabel(x)
> ft = computeFeatures(x, y, xname="nucleus")
> colnames(ft)
 [1] "nucleus.0.m.cx"            "nucleus.0.m.cy"           
 [3] "nucleus.0.m.majoraxis"     "nucleus.0.m.eccentricity" 
<snip>
[11] "nucleus.0.s.radius.max"    "nucleus.a.b.mean"         
[13] "nucleus.a.b.sd"            "nucleus.a.b.mad"          
<snip>
[51] "nucleus.Ba.b.mean"         "nucleus.Ba.b.sd"          
[53] "nucleus.Ba.b.mad"          "nucleus.Ba.b.q001"        
[55] "nucleus.Ba.b.q005"         "nucleus.Ba.b.q05"  
<snip>       

我的猜测是nucleus.0.*功能仅使用x中包含的二进制掩码中的数据。所以nucleus.0.m.cy是使用二进制数据计算的y轴质心。还有nucleus.a.m.cynucleus.Ba.m.cy,但不清楚这些计算是如何不同的(它们是极其相关但不相同)。

我还假设.a..Ba.使用y中的强度值,但细节含糊不清。像nucleus.a.b.meannucleus.Ba.b.mean这样的功能类似(〜。80 corr)但不一样。我假设他们估计y中标签定义的对象的平均x强度,但差异不明确。

有没有关于此的文件?

谢谢,

最高

> sessionInfo()
R Under development (unstable) (2014-08-23 r66461)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] EBImage_4.7.16

loaded via a namespace (and not attached):
 [1] abind_1.4-0         BiocGenerics_0.11.4 grid_3.2.0         
 [4] jpeg_0.1-8          lattice_0.20-29     locfit_1.5-9.1     
 [7] parallel_3.2.0      png_0.1-7           tiff_0.1-5         
[10] tools_3.2.0  

2 个答案:

答案 0 :(得分:1)

您是否在此处看到了文档:AnalysisWithEBImage

这似乎是讨论该软件包的最深入的文档。您是否尝试过直接联系作者GrégoirePau?我相信如果你谷歌他就可以找到他。

答案 1 :(得分:1)

作为免责声明,我对你的领域一无所知,但通过查看这个功能,我可以很好地猜测发生了什么。我建议您使用debugonce(computeFeatures),然后运行ft = computeFeatures(x, y, xname="nucleus")。您可以单步执行代码的每一行(键入Q)以退出,并查看发生了什么。

如您所述,文档说明:

  

特征命名为x.y.f,其中x是对象层,y        参考图像层和特征名称。

在您的示例中,computeFeatures三个参考图层aaB0生成了值。该文档提到,如果您没有为参考图层命名,则只会给出字母表中的字母,因此在您的情况下,您有一个参考图层,称为a。我相信0表示它使用 no 参考图层。

从查看源代码看,对于每个 i 层,都会创建一个B_ i 层。它似乎在每个层上传递了一个硬编码过滤器,正如您在expandRef函数中找到的此代码中所见(注释是我的):

# Hard code a filter
blob = gblob(x0 = 15, n = 49, alpha = 0.8, beta = 1.2)
# Filter using the fast 2D FFT convolution product.
bref = lapply(ref, function(r) filter2(r, blob)/2)
# Name it "B" and then the layer name
names(bref) = paste("B", names(ref), sep = "")

我不确切地知道你在这里要做什么,但你可以直观地看到这个过滤器在做什么。这是您的x(您只需运行display(x)即可查看):

enter image description here

以下是您的参考(y):

enter image description here

这是硬编码过滤器的样子:

enter image description here

这就是硬编码过滤器对y的作用:

enter image description here

因此,总结一下:0的所有内容都与无引用进行比较,a的所有内容都直接与y作为参考进行比较,而所有内容都与aB进行比较正在与y的过滤版本进行比较。