我在高性能计算网格环境中工作,其中大规模数据传输是通过Globus完成的。我想使用 Snakemake 从 Globus 路径中提取数据,处理数据,然后将处理后的数据推送到不同的 Globus 路径。Globus 有一个命令行界面。
提取数据没有问题,因为我只需要创建一个规则来运行globus transfer
以创建必要的本地文件。但是为了将数据推回 Globus,我想我需要一个规则来“看到”远程位置的文件丢失,然后向后工作以确定创建文件需要发生什么。
我可以创建代表远程文件的本地“代理”文件。例如,我可以制定在目录中创建“processed_data_1234.tar.gz”输出文件的规则。这些文件将只使用创建touch
(因此为空),并且将运行相同的规则globus transfer
以远程推送文件。但是,确保代理文件不会与真正的 Globus 托管文件不同步会产生开销。
有没有更优雅的方式来做到这一点,类似于远程文件功能?为 Snakemake 添加 Globus CLI 支持很难吗?提前感谢您的任何建议!