在 Taverna 中执行 Abaqus 模型

Executing Abaqus Model in Taverna

我对 Taverna 和 Abaqus 都很陌生,但我正在尝试 运行 在 HPC 上远程使用 Taverna 中的 "Tool" Abaqus 模型。如果我已经在 HPC 上有了我的模型文件和输入,这就可以正常工作,但我需要一种在 Taverna 中动态上传文件的方法(尝试一般地包装 Abaqus 模型)。

我已经尝试添加一个输入端口来获取文件列表,但我不知道如何将它复制到我为该工具设置的 "location"。 beanshell 服务是否可以作为答案,或者我可以遍历文件列表并在执行 abaqus 模型之前复制它们?

谢谢

工具服务允许您 upload files - 但如果您通过作业提交节点使用 HPC,则必须修改命令行工具,然后使用作业文件暂存命令进一步推送文件作为作业的一部分。这些文件将在指定工具脚本的当前(临时)目录中可用。

我会尝试通过工具服务来完成,而不涉及 beanshell - 这样您就可以简化工作流程。

要记住的一件好事是,您可以在框中写入多个 shell 命令。

同样,您可能想要取回结果,以便您可以在工作流程中进一步处理它们(除非它们很大 - 在这种情况下,您应该只输出它们的远程文件名并将它们再次发送到下一个 HPC工作)

用于暂存文件和检索文件的确切命令取决于 HPC 作业提交系统。你用的是哪一款?

当您说您创建了一个接受文件列表的输入端口时,我猜您指的是对工具服务的输入。

假设输入端口名为my_file_list,当工具服务为运行时,它将在端口my_file_list上获取数据值列表。例如,假设它有 "hello"、"hi" 和 "hola" 是列表中的三个值。

在工具服务所在的位置 运行,它在一个临时目录中执行 - 每次执行服务的目录不同。它通常类似于 /tmp/usecase-2029778474741087696

将在临时目录中创建三个文件;这些文件包含(在此示例中)工具服务在端口 my_file_list 上接收到的三个值。这些文件可以被称为

  • /tmp/usecase-2029778474741087696/tempfile.0.tmp 包含 hello
  • /tmp/usecase-2029778474741087696/tempfile.1.tmp 包含 hi
  • /tmp/usecase-2029778474741087696/tempfile.2.tmp 包含 hola

还会有一个名为 my_input_list 的文件。该文件将包含

/tmp/usecase-2029778474741087696/tempfile.0.tmp
/tmp/usecase-2029778474741087696/tempfile.1.tmp
/tmp/usecase-2029778474741087696/tempfile.2.tmp

您的工具服务的脚本通常会逐行读取 my_input_list 的内容,并对列出的文件的内容执行某些操作。

我还看到一些脚本 'cheat' 并直接遍历 tempfile*.tmp 但那将是 "a bad thing"。这个技巧的问题是,如果你想向工具服务添加第二个文件列表,那么文件 my_input_list 可能包含

/tmp/usecase7932018053449784034/tempfile.4.tmp
/tmp/usecase7932018053449784034/tempfile.5.tmp
/tmp/usecase7932018053449784034/tempfile.6.tmp

因为其他临时文件用于其他文件列表端口。

希望对你有所帮助

感谢您的输入。 这是我对 Taverna 如何使用文件列表的误解。列表中的所有文件都复制到临时 "sandbox",因此可供使用。 另一个不错的简单方法是压缩目录并将压缩文件传递到服务的输入端口。然后只需解压缩命令中的文件。 再次感谢