我正在开发使用位于FTP服务器上的文件作为第一条规则的输入的snakemake工作流程,通过FTP.remote()调用。工作流程执行得很好,但FTP下载始终以串行方式执行 - 即使DAG和命令行选项允许规则的多个实例并行运行。我认为这是因为我只在规则之外打开了一个FTP连接,因此所有对FTP.remote的调用都会共享该连接。是否有可能让snakemake为每个规则实例打开一个FTP连接,以便我可以并行从FTP服务器下载多个文件?规则的片段如下:
from snakemake.remote.FTP import RemoteProvider as FTPRemoteProvider
FTP = FTPRemoteProvider()
rule cram2bam:
input:
cram = lambda wildcards: FTP.remote(expand("ftp://ftp.sra.ebi.ac.uk/vol1/{cram}", cram = config['Samples'][wildcards.sample]['WES'])),