Skip to main content

Script of Scripts (SoS):用于可重现数据分析的交互式、跨平台和跨语言工作流系统

项目描述

Anaconda 服务器徽章 PyPI 版本 DOI 在 https://gitter.im/vatlab/SoS 加入聊天 构建状态 构建状态

Script of Scripts (SoS)包括SoS Notebook一个基于 Jupyter 的多语言笔记本,它允许在一个笔记本中使用多个 Jupyter 内核,以及 SoS Workflow一个工作流系统,用于以面向过程和面向结果的风格执行工作流。它专为经常使用不同语言(如 bash、Python、R 和 SAS)脚本的数据科学家和生物信息学家而设计。此存储库包含SoS Workflow工作流引擎。

有关 SoS Notebook 和 SoS Workflow 的更多信息,请参阅相关出版物SoS Notebook:生物信息学中的交互式多语言数据分析环境、 Script of Scripts:用于PLoS 计算生物学中日常计算研究的实用工作流系统和SoS 主页

我们欢迎并重视社区贡献:请发布问题 以向我们提供反馈或获得我们的支持; 如果您帮助修复错误或改进源代码,请发送拉取请求。此外,如果您对扩展 SoS 感兴趣,例如添加新的目标类型或任务引擎,请在此处查看我们关于扩展 SoS 的教程。

安装 SoS Workflow 和 Notebook

  • 如果你使用 conda,你可以使用命令安装 sos

    conda install sos -c conda-forge
    

    您还可以使用以下命令安装大部分 SoS 工具套件

    conda install sos sos-pbs sos-notebook jupyterlab-sos sos-bash sos-python sos-r -c conda-forge
    

    这将安装 SoS Workflow、SoS Notebook 及其 JupyterLab 扩展、用于 BashPython2Python3RR自身(r-baser-irkernel)的语言模块以及所需的库(例如feather)(如果需要)。

  • 如果您不使用 conda,则必须逐个安装所有部分,但您也可以自由使用非 conda 安装RJulia。使用有效的 Python 3.6 安装,您可以使用命令安装 SoS Workflow

    pip install sos
    

    并且

    pip install sos-pbs
    

    如果您想将 SoS 与远程批处理系统(例如 LSF 或 Slurm)一起使用。

    您可以安装 SoS Notebook,并使用以下命令向 Jupyter 注册 sos 内核

    pip install sos-notebook
    python -m sos_notebook.install
    

    要在 SoS Notebook 中的实时内核之间交换数据,您需要安装单独的内核(例如irkernelfor R),确保它们在 Jupyter 下工作,并使用以下命令安装 SoS 语言模块

    pip install sos-r sos-matlab sos-python sos-bash
    

    可能需要不同的模块来协助内核之间的数据交换。详情请参考sos官网的安装页面

SoS Workflow 和 SoS Notebook 的更改日志

0.22.5:

  • sos#1420 : 允许检查远程工作流的状态、终止和清除。

SoS 笔记本 0.22.3

  • sos-notebook#303 : 在 sos notebook 中使任务执行不阻塞,以便检查状态和删除任务的按钮实际可操作。

SoS 笔记本 0.22.2

SoS 0.21.12

  • sos#1392 : 允许使用pem_file对远程主机进行身份验证。

0.20.9

  • sos#1319 : 扩展选项-r host以允许使用模板和在 PBS 上执行工作流
  • sos#1322-b BIN_DIR :由于sos#1319而弃用选项

SoS 0.19.15

  • sos#1273 : 允许在集群系统上执行工作流。
  • sos#1277:允许在具有扩展运行时选项的集群系统上执行主任务trunk_workers
  • sos#1279 : 扩展-j命令选项sos runsos execute使用远程工作者。
  • sos#1288:将选项的默认值-q从更改localhostNone(无任务)。

操作系统 0.19.0

  • sos#1056sos#1218:使用新的共享执行模型来强制执行 optio -j
  • sos#1219 : 确保全局部分只执行一次

SoS 笔记本 0.18.5

  • sos-notebook#192 : 允许语言模块支持模式匹配的内核名称,例如 julia-?.?

操作系统 0.18.6

  • sos#1206 : 允许output_from(step)从工作流中获取输出。

操作系统 0.18.5

  • sos#1186 : 添加命令行选项-T以进行依赖跟踪。
  • sos#1197 : 引入函数traced以使依赖项始终被跟踪
  • sos#1201 : 引入复合工作流之间的依赖关系

操作系统 0.18.4

  • sos#1185 : 禁止在任务中使用参数。
  • sos#1186:(已恢复)强制执行depends语句中的目标始终尝试建立依赖关系的概念。

SoS 笔记本 0.18.1

  • sos-notebook#178 : 允许添加&到 magics %run, %sosrun, 和%runfile在后台执行工作流的末尾。
  • sos-notebook#179 : 移除魔法%rerun并添加魔法%runfile
  • sos-notebook#180 : 添加选项-r%save在保存后执行单元格。

操作系统 0.18.0

  • sos#1115:功能output_fromnamed_output支持命名输入和输出,以及此票证中总结的其他新功能。
  • sos#1120group_by :允许参数paired_with等用于功能output_fromnamed_output.
  • sos#1125:设置concurrent=True为子步骤执行的默认值。
  • sos#1132 : 弃用 actionstop_if并将其替换为done_ifandskip_if
  • sos#1175 : 在一个步骤中强制使用sos_variable导入共享变量

SoS 笔记本 0.18.0

  • sos-notebook#150:一个新的侧面板,其工作方式与 JupyterLab 的控制台窗口相同。
  • sos-notebook#154:新的任务状态表,允许报告状态、杀死和清除具有相同标签的多个任务。

SoS 0.9.16.10

SoS 0.9.16.0,SoS 笔记本 0.9.16.0

  • sos#991 : 使用新的任务文件格式为每个任务替换多个文件。此更改不向后兼容,因此请仅在完成并删除所有现有任务后升级。

操作系统 0.9.15.1

  • sos-notebook#89:添加了模板以使用 codemirror 突出显示源代码,并带有可选的自动生成的目录。

操作系统 0.9.14.10

  • sos#983 : 允许根据整个面向流程的工作流使用sos_step()匹配多个步骤的目标。

0.9.14.3:

  • sos#975 : 添加选项-p以在工作流完成后生成摘要报告。
  • sos#976 : 大大改进的工作流帮助消息 ( sos run script -h)。

SoS 笔记本 0.9.14.4:

SoS 笔记本 0.9.14.1

  • sos-notebook#74 : 添加一个%revisions魔法来显示当前文档的修订历史。

操作系统 0.9.14.1

  • sos#925 : 工作流执行后执行和忽略的步骤、子步骤和任务的输出摘要。

SoS 笔记本 0.9.13.4

SoS 笔记本 0.9.12.12

操作系统 0.9.12.11

  • sos#922 : 使用用户 ID 执行 docker (-u)
  • sos#926 : 添加函数zap()到 SoS 路径类path, paths, file_target, andsos_targets

SoS 笔记本 0.9.12.11

操作系统 0.9.12.9

  • sos#914 : 允许active动作和任务的选项接受条件。
  • sos#915~ :为 SoS 路径类型自动扩展用户 ( path)pathsfile_targets.
  • sos#916 : 在 windows 下使用 hashlib 而不是更快的 xxhash

SoS 笔记本 0.9.12.9

操作系统 0.9.12.3

  • sos#859 : 引入自动辅助步骤以简化 makefile 步骤的使用。

操作系统 0.9.11.3

  • sos#879 : 添加操作选项stdoutstderr减少脚本执行操作的输出。
  • sos-notebook#42 : 添加选项--append到 magic %capture

操作系统 0.9.11.2

  • sos-notebook#39:分离安装和部署并使用命令python -m sos_notebook.installsos内核安装到 Jupyter。

SoS 0.9.10.19

  • sos#874 : 添加输入选项concurrent=True以允许并行执行输入组。
  • sos#874 : 优化任务引擎的任务提交以减少状态检查

SoS 笔记本 0.9.10.17