R 将ImageJ宏转换为插件

R 将ImageJ宏转换为插件,r,plugins,macros,imagej,imagej-macro,R,Plugins,Macros,Imagej,Imagej Macro,我有一个概念性的问题,很抱歉没有具体说明 我是一名生物学家,从事图像分析工作。我正在编写一份方法出版物,其中包括使用我开发的ImageJ脚本进行图像分析,以及使用我们的R软件包进行数据分析。理想情况下,我们希望发布数据、分发宏并通过web应用程序提供R分析。我们的目标是使这种方法适用于几乎不懂计算机的人 所以我想知道我是否需要将宏开发成插件。据我所知,开发插件可能会加快对大型数据集的分析,确保编译安全并实现自动更新 我的ImageJ宏非常简单。它利用了几个已经可用的插件中的一组ImageJ命令

我有一个概念性的问题,很抱歉没有具体说明

我是一名生物学家,从事图像分析工作。我正在编写一份方法出版物,其中包括使用我开发的
ImageJ
脚本进行图像分析,以及使用我们的
R
软件包进行数据分析。理想情况下,我们希望发布数据、分发宏并通过web应用程序提供
R
分析。我们的目标是使这种方法适用于几乎不懂计算机的人

所以我想知道我是否需要将宏开发成插件。据我所知,开发插件可能会加快对大型数据集的分析,确保编译安全并实现自动更新

我的
ImageJ
宏非常简单。它利用了几个已经可用的插件中的一组
ImageJ
命令

该界面的设计使用户无需具备
ImageJ
-读写能力,可通过对话框指定输入文件夹并设置一些参数。最终的结果是一组图像和.csv文件,可以在
R
中进一步用于分析。它还记录了所做的分析并保存了一些中间文件

它一直工作得很好,我在Mac OS、Windows和Linux平台上试用过。但是,对于大数据集,宏可能会变得非常慢

我的
Java
技能很差,因此开发插件需要花费大量时间和学习

因此,我正在考虑是否可以按原样发布脚本,或者如果发布一个可能导致bug、运行缓慢且不会自动更新的代码是不负责任的。或者有没有其他方法或者更简单的方法将脚本转换成插件


如果您有任何意见或建议,我将不胜感激

我建议您尝试用jython编写,因为它比java简单一点。如果你发布代码或电子邮件,它可以提供一些建议/如果不太复杂,我可以自己更改语言。很难说它将运行多快,但应该更快(取决于您正在尝试做什么)

因此,我正在考虑是否可以按原样发布脚本,或者 发布可能导致bug的代码有点不负责任, 运行缓慢,不会自动更新。或者有什么 将脚本转换为 插件

这个问题可能与StackOverflow无关。如果您还没有这样做,我建议将其发布在网站上,这正是为此类讨论而准备的

当有疑问时,我总是建议按原样发布代码,而不是坐在上面。如果您感到尴尬,您可以包含一个明确的免责声明,甚至可以使用类似的许可证来传达代码开发的上下文。考虑发布坏代码或错误代码的后果是好的,但它应该足以记录代码不足的方式

我同意您的评估,即开发ImageJ宏比使用其中一种语言更容易,即使其他语言最终更强大

请注意,您可以从脚本调用宏,反之亦然。所以你可以写一个脚本,然后从中调用你的宏,如果这能让事情变得更简单的话

另外请注意,ImageJ确实如此,尽管还没有关于使用它的文档。这可能会让你的生活相对于基于R的功能更加轻松,这取决于你使用的R软件包(并非人人都有)

或者有没有其他方法或者更简单的方法将脚本转换成插件

您可以使用以JavaScript等语言进行记录。这大大有助于生成在任何成熟的脚本语言中使用的正确代码行,通常只需根据所针对的脚本语言对语法进行少量更改或不进行任何更改


最后,为了将您的功能分发给最终用户,我强烈建议您仔细阅读,其中包含了这样做的最佳实践。

谢谢Patrick!我来试试Jython。宏并不难,但它相当长。我会翻译其中的一部分,看看它是否会影响性能。谢谢ctrueden提供的如此详细的答案。因此,最终我使用宏记录器翻译了脚本中最关键的部分,正如您所建议的,但没有看到影响性能。所以我决定不浪费任何时间从宏语言翻译整个东西。还感谢分发页面链接,非常有用。至于R-我决定使用Shining应用程序,它只允许下载ImageJ脚本并在用户的计算机上运行,然后上传测量值并使用web应用程序进行分析。