Script of Scripts (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 扩展、用于
Bash
、Python2
、Python3
、R
、R
自身(r-base
等r-irkernel
)的语言模块以及所需的库(例如feather
)(如果需要)。 -
如果您不使用 conda,则必须逐个安装所有部分,但您也可以自由使用非 conda 安装
R
等Julia
。使用有效的 Python 3.6 安装,您可以使用命令安装 SoS Workflowpip install sos
并且
pip install sos-pbs
如果您想将 SoS 与远程批处理系统(例如 LSF 或 Slurm)一起使用。
您可以安装 SoS Notebook,并使用以下命令向 Jupyter 注册 sos 内核
pip install sos-notebook python -m sos_notebook.install
要在 SoS Notebook 中的实时内核之间交换数据,您需要安装单独的内核(例如
irkernel
forR
),确保它们在 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-notebook#307:对 nbconvert > 0.6.0 使用新的模板组织方法。
SoS 0.21.12
- sos#1392 : 允许使用
pem_file
对远程主机进行身份验证。
0.20.9
SoS 0.19.15
- sos#1273 : 允许在集群系统上执行工作流。
- sos#1277:允许在具有扩展运行时选项的集群系统上执行主任务
trunk_workers
。 - sos#1279 : 扩展
-j
命令选项sos run
并sos execute
使用远程工作者。 - sos#1288:将选项的默认值
-q
从更改localhost
为None
(无任务)。
操作系统 0.19.0
SoS 笔记本 0.18.5
- sos-notebook#192 : 允许语言模块支持模式匹配的内核名称,例如 julia-?.?
操作系统 0.18.6
- sos#1206 : 允许
output_from(step)
从工作流中获取输出。
操作系统 0.18.5
操作系统 0.18.4
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_from
并named_output
支持命名输入和输出,以及此票证中总结的其他新功能。 - sos#1120
group_by
:允许参数paired_with
等用于功能output_from
和named_output
. - sos#1125:设置
concurrent=True
为子步骤执行的默认值。 - sos#1132 : 弃用 action
stop_if
并将其替换为done_if
andskip_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 笔记本 0.9.14.4:
- sos-notebook#79:允许在子内核单元中自动完成和检查。
SoS 笔记本 0.9.14.1
- sos-notebook#74 : 添加一个
%revisions
魔法来显示当前文档的修订历史。
操作系统 0.9.14.1
- sos#925 : 工作流执行后执行和忽略的步骤、子步骤和任务的输出摘要。
SoS 笔记本 0.9.13.4
- jupyterlab-sos#11 : Magic
%cd
现在更改所有子内核的目录
SoS 笔记本 0.9.12.12
- sos-notebook#52 : 突出显示扩展表达式的所有新语法荧光笔
- sos-notebook#58:停止从单元格中删除主要评论。
操作系统 0.9.12.11
- sos#922 : 使用用户 ID 执行 docker (-u)
- sos#926 : 添加函数
zap()
到 SoS 路径类path
,paths
,file_target
, andsos_targets
SoS 笔记本 0.9.12.11
- sos-notebook#44:允许将 markdown 单元格中的文本发送到侧面板以执行。
- sos-notebook#47 : 允许使用魔法清除任何 HTML 元素
%clear --class
- sos-notebook#50:为 SoS Notebook 重新设计徽标。
操作系统 0.9.12.9
- sos#914 : 允许
active
动作和任务的选项接受条件。 - sos#915
~
:为 SoS 路径类型自动扩展用户 (path
)paths
和file_targets
. - sos#916 : 在 windows 下使用 hashlib 而不是更快的 xxhash
SoS 笔记本 0.9.12.9
- sos-notebook#41:停止在 sos 笔记本中保存未使用的内核。
操作系统 0.9.12.3
- sos#859 : 引入自动辅助步骤以简化 makefile 步骤的使用。
操作系统 0.9.11.3
- sos#879 : 添加操作选项
stdout
并stderr
减少脚本执行操作的输出。 - sos-notebook#42 : 添加选项
--append
到 magic%capture
。
操作系统 0.9.11.2
- sos-notebook#39:分离安装和部署并使用命令
python -m sos_notebook.install
将sos
内核安装到 Jupyter。
SoS 0.9.10.19
SoS 笔记本 0.9.10.17
- sos-notebook#32 : 添加魔法
%capture
来捕获单元格的输出