我自己编写了多个 perl 程序,它们计算基因组参数、更改标题、从基因组数据或 fasta 序列中提取特定序列。有什么方法可以构建一个包/软件,它可以通过单击菜单中的按钮并使用我的 perl 程序来计算上述内容。
2 回答
PAR::Packer是一个实用程序,它将整个 Perl 项目捆绑到一个可分发的可执行文件中,而没有外部依赖项。它这样做将 Perl 解释器本身和使用的模块(带有 XS 二进制文件)打包到一个文件中。当用户执行这样的文件时,所有内容都被解压到一个临时位置,执行并在完成时清理。
我不会触及其中的 GUI 部分,因为我认为您不会就此提出问题。感觉就像你在问一个关于分布的问题。请澄清我是否错了。
在我看来,您应该将您的程序分发为一个充满脚本的压缩目录,如下所示:
geneprogram/
geneprogram.pl
resources/
script1.pl
script2.pl
script3.pl
output/
script1.pl/
script2.pl/
script3.pl/
等等。让geneprogram.pl 成为您的主要GUI 应用程序。它可以根据需要在单独的进程中调用您的脚本并检查它们的输出,这些输出应该在某个可以理解的位置,例如我展示的 output/ 目录。
如果您的脚本具有 CPAN 依赖项,我会尝试使用App::FatPacker将它们“胖包”到脚本中。大多数生物学家要么根本不使用 Perl(所以不知道如何解决他们自己的依赖关系),或者更糟糕的是,使用 Perl,并且不想修改他们的安装以使用您的代码。如果您的依赖项使用 C - aka Perl XS,这将不起作用。对于这些库,您必须为各种架构独立构建 XS 文件,并发布软件的不同架构相关版本。
最后,您需要考虑您的受众是否已经在他们的系统上安装了合适的 Perl 版本。如果没有,您应该提供一个“独立”版本的发行版,其中包含完全可执行的 perl。