如何使用Snakemake导出Jupyter Notebook的HTML格式日志
Snakemake 执行Notebook时同步导出HTML日志的方法
截止你使用的Snakemake 7.8.2版本,没有开箱即用的原生配置支持自动导出Notebook对应的HTML版本。
你从日志里看到的底层调用逻辑完全正确:Snakemake封装Notebook执行逻辑时,硬编码给jupyter nbconvert传了--to notebook参数,只会输出执行完成的.ipynb文件,既没有暴露参数修改输出格式,也没有内置额外的多格式导出步骤。
稳定实现方案
最省事、不会因为版本升级失效的方案是加一个下游自定义规则,不用重复跑Notebook计算,直接基于Snakemake已经生成好的带输出的ipynb文件转HTML就行:
- 规则输入指定为对应Notebook规则输出的、执行完成的.ipynb文件
- 规则的执行逻辑直接调用
jupyter nbconvert --to html做格式转换
示例规则:
rule notebook_html_log: input: executed_notebook = "output_dir/example_notebook.ipynb" output: html_log = "log_dir/example_notebook.html" shell: "jupyter-nbconvert --log-level ERROR --to html --output {output.html_log} {input.executed_notebook}"
把这个规则加入工作流后,把生成的HTML日志路径加入工作流的目标输出列表,就能在每次跑完Notebook规则后自动生成对应的HTML版本日志。
不要尝试改Snakemake内部的Notebook执行模板或者挂载执行钩子来实现这个需求,这类写法强依赖特定Snakemake版本的内部实现,后续升级版本很容易直接失效,维护成本很高。
内容的提问来源于stack exchange,提问作者enryh
相关产品推荐
相关产品推荐

