wfcommons 1.2__tar.gz → 1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wfcommons-1.2/wfcommons.egg-info → wfcommons-1.4}/PKG-INFO +47 -37
- {wfcommons-1.2 → wfcommons-1.4}/README.md +42 -31
- {wfcommons-1.2 → wfcommons-1.4}/bin/cpu-benchmark +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/bin/wfbench +6 -2
- {wfcommons-1.2 → wfcommons-1.4}/pyproject.toml +10 -6
- {wfcommons-1.2 → wfcommons-1.4}/setup.cfg +1 -1
- wfcommons-1.4/setup.py +74 -0
- wfcommons-1.4/tests/test_helpers.py +168 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/__init__.py +1 -1
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/common/__init__.py +1 -1
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/common/file.py +2 -12
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/common/workflow.py +15 -8
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/utils.py +1 -1
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/version.py +2 -2
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/__init__.py +1 -1
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/bench.py +59 -221
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/__init__.py +1 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/abstract_translator.py +5 -2
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/airflow.py +65 -15
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/bash.py +1 -1
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/dask.py +11 -0
- wfcommons-1.4/wfcommons/wfbench/translator/makeflow.py +118 -0
- wfcommons-1.4/wfcommons/wfbench/translator/nextflow.py +561 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/parsl.py +11 -6
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/pegasus.py +4 -4
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/pycompss.py +2 -2
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/taskvine.py +42 -21
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/dask_template.py +2 -0
- wfcommons-1.4/wfcommons/wfbench/translator/templates/nextflow/nextflow_hyperqueue_job.sh +40 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/nextflow/workflow.nf +2 -2
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/swift_t/workflow.swift +19 -19
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/taskvine_template.py +5 -4
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/chef.py +276 -67
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/find_microstructures.py +12 -12
- wfcommons-1.4/wfcommons/wfchef/recipes/blast/__pycache__/__init__.cpython-314.pyc +0 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/blast/__pycache__/recipe.cpython-314.pyc +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/recipe.py +3 -1
- wfcommons-1.4/wfcommons/wfchef/recipes/blast/task_type_stats.json +1 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/bwa/__pycache__/__init__.cpython-314.pyc +0 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/bwa/__pycache__/recipe.cpython-314.pyc +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/recipe.py +3 -1
- wfcommons-1.4/wfcommons/wfchef/recipes/bwa/task_type_stats.json +1 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/cycles/__pycache__/__init__.cpython-314.pyc +0 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/cycles/__pycache__/recipe.cpython-314.pyc +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/recipe.py +3 -1
- wfcommons-1.4/wfcommons/wfchef/recipes/cycles/task_type_stats.json +1 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/epigenomics/__pycache__/__init__.cpython-314.pyc +0 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/epigenomics/__pycache__/recipe.cpython-314.pyc +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/recipe.py +3 -1
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/task_type_stats.json +6 -6
- wfcommons-1.4/wfcommons/wfchef/recipes/genome/__pycache__/__init__.cpython-314.pyc +0 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/genome/__pycache__/recipe.cpython-314.pyc +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/recipe.py +3 -1
- wfcommons-1.4/wfcommons/wfchef/recipes/genome/task_type_stats.json +1 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/montage/__pycache__/__init__.cpython-314.pyc +0 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/montage/__pycache__/recipe.cpython-314.pyc +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/recipe.py +3 -1
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/task_type_stats.json +8 -8
- wfcommons-1.4/wfcommons/wfchef/recipes/rnaseq/__pycache__/__init__.cpython-314.pyc +0 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/rnaseq/__pycache__/recipe.cpython-314.pyc +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/recipe.py +3 -1
- wfcommons-1.4/wfcommons/wfchef/recipes/seismology/__pycache__/__init__.cpython-314.pyc +0 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/seismology/__pycache__/recipe.cpython-314.pyc +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/recipe.py +3 -1
- wfcommons-1.4/wfcommons/wfchef/recipes/seismology/task_type_stats.json +1 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/soykb/__pycache__/__init__.cpython-314.pyc +0 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/soykb/__pycache__/recipe.cpython-314.pyc +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/recipe.py +3 -1
- wfcommons-1.4/wfcommons/wfchef/recipes/soykb/task_type_stats.json +1 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/srasearch/__pycache__/__init__.cpython-314.pyc +0 -0
- wfcommons-1.4/wfcommons/wfchef/recipes/srasearch/__pycache__/recipe.cpython-314.pyc +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/recipe.py +3 -1
- wfcommons-1.4/wfcommons/wfchef/recipes/srasearch/task_type_stats.json +1 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/skeletons/recipe.py +3 -1
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/utils.py +3 -3
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/wfchef_abstract_recipe.py +4 -2
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfgen/abstract_recipe.py +61 -55
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfinstances/instance.py +2 -4
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfinstances/instance_analyzer.py +1 -6
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfinstances/logs/__init__.py +1 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfinstances/logs/makeflow.py +76 -64
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfinstances/logs/nextflow.py +2 -2
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfinstances/logs/pegasus.py +249 -240
- wfcommons-1.4/wfcommons/wfinstances/logs/pegasusrec.py +721 -0
- wfcommons-1.4/wfcommons/wfinstances/logs/taskvine.py +305 -0
- {wfcommons-1.2 → wfcommons-1.4/wfcommons.egg-info}/PKG-INFO +47 -37
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons.egg-info/SOURCES.txt +25 -77
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons.egg-info/requires.txt +2 -1
- wfcommons-1.2/setup.py +0 -55
- wfcommons-1.2/wfcommons/wfbench/translator/nextflow.py +0 -320
- wfcommons-1.2/wfcommons/wfchef/recipes/blast/__pycache__/__init__.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/blast/__pycache__/__init__.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/blast/__pycache__/__init__.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/blast/__pycache__/__init__.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/blast/__pycache__/recipe.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/blast/__pycache__/recipe.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/blast/__pycache__/recipe.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/blast/__pycache__/recipe.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/blast/task_type_stats.json +0 -1
- wfcommons-1.2/wfcommons/wfchef/recipes/bwa/__pycache__/__init__.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/bwa/__pycache__/__init__.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/bwa/__pycache__/__init__.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/bwa/__pycache__/__init__.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/bwa/__pycache__/recipe.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/bwa/__pycache__/recipe.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/bwa/__pycache__/recipe.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/bwa/__pycache__/recipe.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/bwa/task_type_stats.json +0 -1
- wfcommons-1.2/wfcommons/wfchef/recipes/cycles/__pycache__/__init__.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/cycles/__pycache__/__init__.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/cycles/__pycache__/__init__.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/cycles/__pycache__/__init__.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/cycles/__pycache__/recipe.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/cycles/__pycache__/recipe.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/cycles/__pycache__/recipe.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/cycles/__pycache__/recipe.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/cycles/task_type_stats.json +0 -1
- wfcommons-1.2/wfcommons/wfchef/recipes/epigenomics/__pycache__/__init__.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/epigenomics/__pycache__/__init__.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/epigenomics/__pycache__/__init__.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/epigenomics/__pycache__/__init__.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/epigenomics/__pycache__/recipe.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/epigenomics/__pycache__/recipe.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/epigenomics/__pycache__/recipe.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/epigenomics/__pycache__/recipe.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/genome/__pycache__/__init__.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/genome/__pycache__/__init__.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/genome/__pycache__/__init__.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/genome/__pycache__/__init__.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/genome/__pycache__/recipe.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/genome/__pycache__/recipe.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/genome/__pycache__/recipe.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/genome/__pycache__/recipe.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/genome/task_type_stats.json +0 -1
- wfcommons-1.2/wfcommons/wfchef/recipes/montage/__pycache__/__init__.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/montage/__pycache__/__init__.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/montage/__pycache__/__init__.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/montage/__pycache__/__init__.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/montage/__pycache__/recipe.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/montage/__pycache__/recipe.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/montage/__pycache__/recipe.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/montage/__pycache__/recipe.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/rnaseq/__pycache__/__init__.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/rnaseq/__pycache__/__init__.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/rnaseq/__pycache__/recipe.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/rnaseq/__pycache__/recipe.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/seismology/__pycache__/__init__.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/seismology/__pycache__/__init__.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/seismology/__pycache__/__init__.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/seismology/__pycache__/__init__.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/seismology/__pycache__/recipe.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/seismology/__pycache__/recipe.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/seismology/__pycache__/recipe.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/seismology/__pycache__/recipe.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/seismology/task_type_stats.json +0 -1
- wfcommons-1.2/wfcommons/wfchef/recipes/soykb/__pycache__/__init__.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/soykb/__pycache__/__init__.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/soykb/__pycache__/__init__.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/soykb/__pycache__/__init__.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/soykb/__pycache__/recipe.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/soykb/__pycache__/recipe.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/soykb/__pycache__/recipe.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/soykb/__pycache__/recipe.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/soykb/task_type_stats.json +0 -1
- wfcommons-1.2/wfcommons/wfchef/recipes/srasearch/__pycache__/__init__.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/srasearch/__pycache__/__init__.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/srasearch/__pycache__/__init__.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/srasearch/__pycache__/__init__.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/srasearch/__pycache__/recipe.cpython-311.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/srasearch/__pycache__/recipe.cpython-312.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/srasearch/__pycache__/recipe.cpython-313.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/srasearch/__pycache__/recipe.cpython-39.pyc +0 -0
- wfcommons-1.2/wfcommons/wfchef/recipes/srasearch/task_type_stats.json +0 -1
- wfcommons-1.2/wfcommons/wfinstances/logs/pegasusrec.py +0 -697
- {wfcommons-1.2 → wfcommons-1.4}/LICENSE +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/MANIFEST.in +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/Makefile +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/bin/cpu-benchmark.cpp +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/common/machine.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/common/task.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/cwl.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/swift_t.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/cwl/folder.cwl +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/cwl/shell.cwl +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/cwl/wfbench.cwl +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/flowcept_agent.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/parsl_template.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/pegasus_template.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/pycompss_template.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfbench/translator/templates/taskvine_poncho.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/duplicate.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-large-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-large-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-large-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-large-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-large-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-large-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-large-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-large-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-large-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-large-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-medium-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-medium-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-medium-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-medium-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-medium-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-medium-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-medium-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-medium-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-medium-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-medium-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-small-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-small-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-small-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-small-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-small-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-small-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-small-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-small-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-small-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/blast-chameleon-small-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/metric/err.csv +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/blast/microstructures/summary.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-large-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-large-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-large-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-large-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-large-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-large-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-large-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-large-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-large-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-large-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-medium-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-medium-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-medium-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-medium-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-medium-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-medium-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-medium-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-medium-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-medium-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-medium-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-small-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-small-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-small-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-small-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-small-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-small-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-small-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-small-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-small-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/bwa-chameleon-small-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/metric/err.csv +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/bwa/microstructures/summary.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-10l-1c-12p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-10l-1c-12p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-10l-1c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-10l-1c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-10l-2c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-10l-2c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-10l-3c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-10l-3c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-1c-12p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-1c-12p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-1c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-1c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-2c-12p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-2c-12p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-2c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-2c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-3c-12p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-3c-12p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-3c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-1l-3c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-1c-12p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-1c-12p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-1c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-1c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-2c-12p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-2c-12p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-2c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-2c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-3c-12p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-3c-12p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-3c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-2l-3c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-1c-12p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-1c-12p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-1c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-1c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-2c-12p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-2c-12p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-2c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-2c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-3c-12p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-3c-12p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-3c-9p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/cycles-chameleon-5l-3c-9p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/metric/err.csv +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-100p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-100p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-1100p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-1100p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-200p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-200p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-300p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-300p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-400p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-400p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-500p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-500p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-600p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-600p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-700p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-700p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-800p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-800p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-900p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/seismology-chameleon-900p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/cycles/microstructures/summary.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-1seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-1seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-1seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-1seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-2seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-2seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-2seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-2seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-3seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-3seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-3seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-3seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-4seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-4seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-4seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-4seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-5seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-5seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-5seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-5seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-6seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-6seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-6seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-6seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-7seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-7seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-7seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-hep-7seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-1seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-1seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-1seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-1seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-2seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-2seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-2seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-2seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-3seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-3seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-3seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-3seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-4seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-4seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-4seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-4seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-5seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-5seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-5seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-5seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-6seq-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-6seq-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-6seq-50k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/epigenomics-chameleon-ilmn-6seq-50k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/metric/err.csv +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/epigenomics/microstructures/summary.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-10ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-10ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-10ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-10ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-12ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-12ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-12ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-12ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-14ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-14ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-14ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-14ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-16ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-16ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-16ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-16ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-18ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-18ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-18ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-18ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-20ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-20ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-20ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-20ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-22ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-22ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-22ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-22ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-2ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-2ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-2ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-2ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-4ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-4ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-4ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-4ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-6ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-6ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-6ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-6ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-8ch-100k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-8ch-100k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-8ch-250k-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/1000genome-chameleon-8ch-250k-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/metric/err.csv +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/genome/microstructures/summary.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/metric/err.csv +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-005d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-005d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-015d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-015d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-01d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-01d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-025d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-025d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-02d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-02d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-03d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-03d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-04d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-04d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-05d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-2mass-05d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-dss-05d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-dss-05d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-dss-075d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-dss-075d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-dss-10d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-dss-10d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-dss-125d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-dss-125d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-dss-15d-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/montage-chameleon-dss-15d-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/montage/microstructures/summary.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/microstructures/metric/err.csv +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/microstructures/rnaseq-3l/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/microstructures/rnaseq-3l/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/microstructures/rnaseq-6l/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/microstructures/rnaseq-6l/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/microstructures/rnaseq-t1l/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/microstructures/rnaseq-t1l/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/microstructures/summary.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/rnaseq/task_type_stats.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/metric/err.csv +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-100p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-100p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-1100p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-1100p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-200p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-200p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-300p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-300p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-400p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-400p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-500p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-500p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-600p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-600p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-700p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-700p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-800p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-800p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-900p-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/seismology-chameleon-900p-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/seismology/microstructures/summary.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/metric/err.csv +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-10fastq-10ch-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-10fastq-10ch-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-10fastq-20ch-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-10fastq-20ch-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-20fastq-10ch-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-20fastq-10ch-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-20fastq-20ch-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-20fastq-20ch-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-30fastq-10ch-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-30fastq-10ch-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-30fastq-20ch-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-30fastq-20ch-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-40fastq-10ch-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-40fastq-10ch-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-40fastq-20ch-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-40fastq-20ch-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-50fastq-10ch-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-50fastq-10ch-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-50fastq-20ch-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/soykb-chameleon-50fastq-20ch-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/soykb/microstructures/summary.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/metric/err.csv +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-10a-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-10a-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-10a-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-10a-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-10a-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-10a-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-10a-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-10a-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-10a-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-10a-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-20a-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-20a-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-20a-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-20a-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-20a-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-20a-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-20a-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-20a-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-20a-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-20a-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-30a-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-30a-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-30a-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-30a-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-30a-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-30a-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-30a-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-30a-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-30a-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-30a-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-40a-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-40a-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-40a-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-40a-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-40a-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-40a-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-40a-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-40a-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-40a-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-40a-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-50a-001/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-50a-001/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-50a-002/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-50a-002/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-50a-003/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-50a-003/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-50a-004/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-50a-004/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-50a-005/base_graph.pickle +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/srasearch-chameleon-50a-005/microstructures.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/recipes/srasearch/microstructures/summary.json +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/skeletons/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfchef/skeletons/setup.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfgen/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfgen/generator.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfinstances/__init__.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfinstances/logs/abstract_logs_parser.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons/wfinstances/schema.py +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons.egg-info/dependency_links.txt +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons.egg-info/entry_points.txt +0 -0
- {wfcommons-1.2 → wfcommons-1.4}/wfcommons.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wfcommons
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4
|
|
4
4
|
Summary: A Framework for Enabling Scientific Workflow Research and Education
|
|
5
5
|
Author-email: WfCommons team <support@wfcommons.org>
|
|
6
6
|
License: GNU General Public License v3 (GPLv3)
|
|
@@ -10,19 +10,17 @@ Project-URL: Documentation, https://docs.wfcommons.org
|
|
|
10
10
|
Project-URL: Tracker, https://github.com/wfcommons/WfCommons/issues
|
|
11
11
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
|
-
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
16
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
17
|
Classifier: Intended Audience :: Developers
|
|
20
18
|
Classifier: Intended Audience :: Education
|
|
21
19
|
Classifier: Intended Audience :: Science/Research
|
|
22
20
|
Classifier: Natural Language :: English
|
|
23
21
|
Classifier: Topic :: Documentation :: Sphinx
|
|
24
22
|
Classifier: Topic :: System :: Distributed Computing
|
|
25
|
-
Requires-Python: >=3.
|
|
23
|
+
Requires-Python: >=3.11
|
|
26
24
|
Description-Content-Type: text/markdown
|
|
27
25
|
License-File: LICENSE
|
|
28
26
|
Requires-Dist: jsonschema
|
|
@@ -32,13 +30,14 @@ Requires-Dist: numpy
|
|
|
32
30
|
Requires-Dist: pandas
|
|
33
31
|
Requires-Dist: python-dateutil
|
|
34
32
|
Requires-Dist: requests
|
|
35
|
-
Requires-Dist: scipy
|
|
33
|
+
Requires-Dist: scipy>=1.16.1
|
|
36
34
|
Requires-Dist: pyyaml
|
|
37
35
|
Requires-Dist: pandas
|
|
38
36
|
Requires-Dist: shortuuid
|
|
39
37
|
Requires-Dist: stringcase
|
|
40
38
|
Requires-Dist: filelock
|
|
41
39
|
Requires-Dist: pathos
|
|
40
|
+
Requires-Dist: tomli-w
|
|
42
41
|
Provides-Extra: test
|
|
43
42
|
Requires-Dist: pytest; extra == "test"
|
|
44
43
|
Requires-Dist: pytest-cov; extra == "test"
|
|
@@ -54,52 +53,64 @@ Dynamic: license-file
|
|
|
54
53
|
[![Codecov][cov-badge]][cov-link]
|
|
55
54
|
[](https://pepy.tech/project/wfcommons)
|
|
56
55
|
|
|
57
|
-
<a href="https://wfcommons.org" target="_blank"><img src="https://wfcommons.org/images/wfcommons-
|
|
58
|
-
<br/>
|
|
56
|
+
<a href="https://wfcommons.org" target="_blank"><img src="https://wfcommons.org/images/wfcommons-logo-white.png" width="350" /></a>
|
|
57
|
+
<br/>An open-source ecosystem of workflow execution instances, synthetic workflow generators, and benchmark specifications. It helps the community study scheduling, performance, resilience, and emerging AI-driven workflow automation on modern distributed and HPC platforms.
|
|
59
58
|
|
|
60
|
-
|
|
59
|
+
- **Real instances:** Workflow executions curated in a common JSON format (WfFormat).
|
|
60
|
+
- **Synthetic realism:** Generate realistic workflows from real traces.
|
|
61
|
+
- **Benchmarks:** Produce executable specs for repeatable experiments and fair comparisons.
|
|
61
62
|
|
|
62
|
-
|
|
63
|
-
- Producing recipes structures for creating workflow recipes for workflow generation;
|
|
64
|
-
- Generating synthetic realistic workflow instances; and
|
|
65
|
-
- Generating realistic workflow benchmark specifications.
|
|
63
|
+
Quick links: [Documentation](https://wfcommons.readthedocs.io/en/latest/) · [Website](https://wfcommons.org) · [GitHub Issues](https://github.com/wfcommons/wfcommons/issues)
|
|
66
64
|
|
|
67
|
-
|
|
65
|
+
## Quickstart
|
|
68
66
|
|
|
69
|
-
|
|
67
|
+
WfCommons requires Python 3.11+ and has been tested on Linux and macOS.
|
|
70
68
|
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
```
|
|
70
|
+
python3 -m venv .venv
|
|
71
|
+
source .venv/bin/activate
|
|
72
|
+
python3 -m pip install wfcommons
|
|
73
|
+
```
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
Generate a synthetic workflow in a few lines:
|
|
75
76
|
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
```python
|
|
78
|
+
import pathlib
|
|
79
|
+
from wfcommons.wfchef.recipes import SeismologyRecipe
|
|
80
|
+
from wfcommons import WorkflowGenerator
|
|
78
81
|
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
generator = WorkflowGenerator(SeismologyRecipe.from_num_tasks(250))
|
|
83
|
+
workflow = generator.build_workflow()
|
|
84
|
+
workflow.write_json(pathlib.Path("seismology-workflow.json"))
|
|
81
85
|
```
|
|
82
86
|
|
|
83
|
-
|
|
87
|
+
Next steps:
|
|
84
88
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
89
|
+
- Learn how to build recipes in the [WfChef guide](https://wfcommons.readthedocs.io/en/latest/generating_workflows_recipe.html).
|
|
90
|
+
- Generate larger workflow families in the [WfGen guide](https://wfcommons.readthedocs.io/en/latest/generating_workflows.html).
|
|
91
|
+
- Produce benchmark specs in the [WfBench guide](https://wfcommons.readthedocs.io/en/latest/generating_workflow_benchmarks.html).
|
|
88
92
|
|
|
89
|
-
|
|
90
|
-
|
|
93
|
+
## Installation
|
|
94
|
+
|
|
95
|
+
WfCommons is available on [PyPI](https://pypi.org/project/wfcommons).
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
python3 -m pip install wfcommons
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Installing from source (latest)
|
|
91
102
|
|
|
92
103
|
```
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
104
|
+
git clone https://github.com/wfcommons/wfcommons
|
|
105
|
+
cd wfcommons
|
|
106
|
+
python3 -m pip install .
|
|
96
107
|
```
|
|
97
108
|
|
|
98
109
|
### Optional Requirements
|
|
99
110
|
|
|
100
111
|
#### Graphviz
|
|
101
|
-
WfCommons uses _pygraphviz_ for generating visualizations for the workflow task graph.
|
|
102
|
-
If you want to enable this feature, you will have to install the
|
|
112
|
+
WfCommons uses _pygraphviz_ for generating visualizations for the workflow task graph.
|
|
113
|
+
If you want to enable this feature, you will have to install the
|
|
103
114
|
[graphviz](https://www.graphviz.org/) package (version 2.16 or later).
|
|
104
115
|
You can install graphviz easily on Linux with your favorite package manager,
|
|
105
116
|
for example for Debian-based distributions:
|
|
@@ -130,15 +141,14 @@ python3 -m pip install pydot
|
|
|
130
141
|
|
|
131
142
|
## Get in Touch
|
|
132
143
|
|
|
133
|
-
The main channel to reach the WfCommons team is via the support email:
|
|
144
|
+
The main channel to reach the WfCommons team is via the support email:
|
|
134
145
|
[support@wfcommons.org](mailto:support@wfcommons.org).
|
|
135
146
|
|
|
136
|
-
**Bug Report / Feature Request:** our preferred channel to report a bug or request a feature is via
|
|
147
|
+
**Bug Report / Feature Request:** our preferred channel to report a bug or request a feature is via
|
|
137
148
|
WfCommons's [Github Issues Track](https://github.com/wfcommons/wfcommons/issues).
|
|
138
149
|
|
|
139
|
-
|
|
140
150
|
## Citing WfCommons
|
|
141
|
-
When citing WfCommons, please use the following paper. You should also actually read
|
|
151
|
+
When citing WfCommons, please use the following paper. You should also actually read
|
|
142
152
|
that paper, as it provides a recent and general overview on the framework.
|
|
143
153
|
|
|
144
154
|
```
|
|
@@ -6,52 +6,64 @@
|
|
|
6
6
|
[![Codecov][cov-badge]][cov-link]
|
|
7
7
|
[](https://pepy.tech/project/wfcommons)
|
|
8
8
|
|
|
9
|
-
<a href="https://wfcommons.org" target="_blank"><img src="https://wfcommons.org/images/wfcommons-
|
|
10
|
-
<br/>
|
|
9
|
+
<a href="https://wfcommons.org" target="_blank"><img src="https://wfcommons.org/images/wfcommons-logo-white.png" width="350" /></a>
|
|
10
|
+
<br/>An open-source ecosystem of workflow execution instances, synthetic workflow generators, and benchmark specifications. It helps the community study scheduling, performance, resilience, and emerging AI-driven workflow automation on modern distributed and HPC platforms.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
- **Real instances:** Workflow executions curated in a common JSON format (WfFormat).
|
|
13
|
+
- **Synthetic realism:** Generate realistic workflows from real traces.
|
|
14
|
+
- **Benchmarks:** Produce executable specs for repeatable experiments and fair comparisons.
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
- Producing recipes structures for creating workflow recipes for workflow generation;
|
|
16
|
-
- Generating synthetic realistic workflow instances; and
|
|
17
|
-
- Generating realistic workflow benchmark specifications.
|
|
16
|
+
Quick links: [Documentation](https://wfcommons.readthedocs.io/en/latest/) · [Website](https://wfcommons.org) · [GitHub Issues](https://github.com/wfcommons/wfcommons/issues)
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
## Quickstart
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
WfCommons requires Python 3.11+ and has been tested on Linux and macOS.
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
```
|
|
23
|
+
python3 -m venv .venv
|
|
24
|
+
source .venv/bin/activate
|
|
25
|
+
python3 -m pip install wfcommons
|
|
26
|
+
```
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
Generate a synthetic workflow in a few lines:
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
```python
|
|
31
|
+
import pathlib
|
|
32
|
+
from wfcommons.wfchef.recipes import SeismologyRecipe
|
|
33
|
+
from wfcommons import WorkflowGenerator
|
|
30
34
|
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
generator = WorkflowGenerator(SeismologyRecipe.from_num_tasks(250))
|
|
36
|
+
workflow = generator.build_workflow()
|
|
37
|
+
workflow.write_json(pathlib.Path("seismology-workflow.json"))
|
|
33
38
|
```
|
|
34
39
|
|
|
35
|
-
|
|
40
|
+
Next steps:
|
|
36
41
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
- Learn how to build recipes in the [WfChef guide](https://wfcommons.readthedocs.io/en/latest/generating_workflows_recipe.html).
|
|
43
|
+
- Generate larger workflow families in the [WfGen guide](https://wfcommons.readthedocs.io/en/latest/generating_workflows.html).
|
|
44
|
+
- Produce benchmark specs in the [WfBench guide](https://wfcommons.readthedocs.io/en/latest/generating_workflow_benchmarks.html).
|
|
40
45
|
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
## Installation
|
|
47
|
+
|
|
48
|
+
WfCommons is available on [PyPI](https://pypi.org/project/wfcommons).
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
python3 -m pip install wfcommons
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Installing from source (latest)
|
|
43
55
|
|
|
44
56
|
```
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
57
|
+
git clone https://github.com/wfcommons/wfcommons
|
|
58
|
+
cd wfcommons
|
|
59
|
+
python3 -m pip install .
|
|
48
60
|
```
|
|
49
61
|
|
|
50
62
|
### Optional Requirements
|
|
51
63
|
|
|
52
64
|
#### Graphviz
|
|
53
|
-
WfCommons uses _pygraphviz_ for generating visualizations for the workflow task graph.
|
|
54
|
-
If you want to enable this feature, you will have to install the
|
|
65
|
+
WfCommons uses _pygraphviz_ for generating visualizations for the workflow task graph.
|
|
66
|
+
If you want to enable this feature, you will have to install the
|
|
55
67
|
[graphviz](https://www.graphviz.org/) package (version 2.16 or later).
|
|
56
68
|
You can install graphviz easily on Linux with your favorite package manager,
|
|
57
69
|
for example for Debian-based distributions:
|
|
@@ -82,15 +94,14 @@ python3 -m pip install pydot
|
|
|
82
94
|
|
|
83
95
|
## Get in Touch
|
|
84
96
|
|
|
85
|
-
The main channel to reach the WfCommons team is via the support email:
|
|
97
|
+
The main channel to reach the WfCommons team is via the support email:
|
|
86
98
|
[support@wfcommons.org](mailto:support@wfcommons.org).
|
|
87
99
|
|
|
88
|
-
**Bug Report / Feature Request:** our preferred channel to report a bug or request a feature is via
|
|
100
|
+
**Bug Report / Feature Request:** our preferred channel to report a bug or request a feature is via
|
|
89
101
|
WfCommons's [Github Issues Track](https://github.com/wfcommons/wfcommons/issues).
|
|
90
102
|
|
|
91
|
-
|
|
92
103
|
## Citing WfCommons
|
|
93
|
-
When citing WfCommons, please use the following paper. You should also actually read
|
|
104
|
+
When citing WfCommons, please use the following paper. You should also actually read
|
|
94
105
|
that paper, as it provides a recent and general overview on the framework.
|
|
95
106
|
|
|
96
107
|
```
|
|
Binary file
|
|
@@ -341,7 +341,7 @@ def begin_flowcept(args):
|
|
|
341
341
|
bundle_exec_id=args.workflow_id,
|
|
342
342
|
start_persistence=False, save_workflow=False)
|
|
343
343
|
f.start()
|
|
344
|
-
t = FlowceptTask(workflow_id=args.workflow_id, used={**args.__dict__})
|
|
344
|
+
t = FlowceptTask(task_id=f"{args.workflow_id}_{args.name}", workflow_id=args.workflow_id, used={**args.__dict__})
|
|
345
345
|
return f, t
|
|
346
346
|
|
|
347
347
|
|
|
@@ -457,7 +457,11 @@ def main():
|
|
|
457
457
|
if args.time:
|
|
458
458
|
time.sleep(int(args.time))
|
|
459
459
|
for proc in procs:
|
|
460
|
-
|
|
460
|
+
if isinstance(proc, multiprocessing.Process):
|
|
461
|
+
if proc.is_alive():
|
|
462
|
+
proc.terminate()
|
|
463
|
+
elif isinstance(proc, subprocess.Popen):
|
|
464
|
+
proc.terminate()
|
|
461
465
|
else:
|
|
462
466
|
for proc in procs:
|
|
463
467
|
if isinstance(proc, subprocess.Popen):
|
|
@@ -7,16 +7,14 @@ name = "wfcommons"
|
|
|
7
7
|
authors = [{name = "WfCommons team", email = "support@wfcommons.org"}]
|
|
8
8
|
description = "A Framework for Enabling Scientific Workflow Research and Education"
|
|
9
9
|
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
11
|
classifiers = [
|
|
12
12
|
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
|
13
13
|
"Operating System :: OS Independent",
|
|
14
|
-
"Programming Language :: Python :: 3",
|
|
15
|
-
"Programming Language :: Python :: 3.9",
|
|
16
|
-
"Programming Language :: Python :: 3.10",
|
|
17
14
|
"Programming Language :: Python :: 3.11",
|
|
18
15
|
"Programming Language :: Python :: 3.12",
|
|
19
16
|
"Programming Language :: Python :: 3.13",
|
|
17
|
+
"Programming Language :: Python :: 3.14",
|
|
20
18
|
"Intended Audience :: Developers",
|
|
21
19
|
"Intended Audience :: Education",
|
|
22
20
|
"Intended Audience :: Science/Research",
|
|
@@ -33,13 +31,14 @@ dependencies = [
|
|
|
33
31
|
"pandas",
|
|
34
32
|
"python-dateutil",
|
|
35
33
|
"requests",
|
|
36
|
-
"scipy",
|
|
34
|
+
"scipy>=1.16.1",
|
|
37
35
|
"pyyaml",
|
|
38
36
|
"pandas",
|
|
39
37
|
"shortuuid",
|
|
40
38
|
"stringcase",
|
|
41
39
|
"filelock",
|
|
42
40
|
"pathos",
|
|
41
|
+
"tomli-w"
|
|
43
42
|
]
|
|
44
43
|
dynamic = ["version", "entry-points", "scripts"]
|
|
45
44
|
|
|
@@ -56,6 +55,12 @@ flowcept = ["flowcept"]
|
|
|
56
55
|
[tool.setuptools.dynamic]
|
|
57
56
|
version = {attr = "wfcommons.version.__version__"}
|
|
58
57
|
|
|
58
|
+
[tool.coverage.run]
|
|
59
|
+
omit = [
|
|
60
|
+
"wfcommons/wfinstances/logs/pegasusrec.py",
|
|
61
|
+
"wfcommons/wfbench/translator/templates"
|
|
62
|
+
]
|
|
63
|
+
|
|
59
64
|
[tool.pytest.ini_options]
|
|
60
65
|
addopts="""
|
|
61
66
|
--cov-context test \
|
|
@@ -63,7 +68,6 @@ addopts="""
|
|
|
63
68
|
--cov-report xml:coverage.xml \
|
|
64
69
|
--cov-report term-missing \
|
|
65
70
|
--cov ./wfcommons \
|
|
66
|
-
--ignore wfcommons/wfbench/translator/templates \
|
|
67
71
|
--no-cov-on-fail \
|
|
68
72
|
-ra \
|
|
69
73
|
-W ignore"""
|
wfcommons-1.4/setup.py
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2020-2026 The WfCommons Team.
|
|
5
|
+
#
|
|
6
|
+
# This program is free software: you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
# (at your option) any later version.
|
|
10
|
+
|
|
11
|
+
import sys
|
|
12
|
+
import subprocess
|
|
13
|
+
import os
|
|
14
|
+
|
|
15
|
+
from setuptools import setup, find_packages
|
|
16
|
+
from setuptools.command.build_ext import build_ext
|
|
17
|
+
|
|
18
|
+
class Build(build_ext):
|
|
19
|
+
"""Customized setuptools build command - builds cpu-benchmark on build."""
|
|
20
|
+
|
|
21
|
+
def run(self):
|
|
22
|
+
# Try to build the cpu-benchmark, but make it optional
|
|
23
|
+
# This allows installation on Windows where make/g++ may not be available
|
|
24
|
+
try:
|
|
25
|
+
result = subprocess.call(["make"], stderr=subprocess.DEVNULL, stdout=subprocess.DEVNULL)
|
|
26
|
+
if result != 0:
|
|
27
|
+
sys.stderr.write("Warning: 'make' build failed. cpu-benchmark will not be available.\n")
|
|
28
|
+
sys.stderr.write("This is expected on Windows. To build cpu-benchmark, install make and g++.\n")
|
|
29
|
+
except (FileNotFoundError, OSError):
|
|
30
|
+
sys.stderr.write("Warning: 'make' is not installed. cpu-benchmark will not be available.\n")
|
|
31
|
+
sys.stderr.write("This is expected on Windows. To build cpu-benchmark, install make and g++.\n")
|
|
32
|
+
super().run()
|
|
33
|
+
|
|
34
|
+
# Conditionally include cpu-benchmark based on platform
|
|
35
|
+
data_files = []
|
|
36
|
+
if sys.platform != 'win32':
|
|
37
|
+
# On Unix-like systems (Linux, macOS, Docker), always try to include it
|
|
38
|
+
# The Build class will create it during the build process
|
|
39
|
+
data_files.append(('bin', ['bin/cpu-benchmark']))
|
|
40
|
+
else:
|
|
41
|
+
# On Windows, only include if it exists (e.g., if user manually compiled it)
|
|
42
|
+
cpu_benchmark_path = 'bin/cpu-benchmark'
|
|
43
|
+
if os.path.exists(cpu_benchmark_path):
|
|
44
|
+
data_files.append(('bin', [cpu_benchmark_path]))
|
|
45
|
+
|
|
46
|
+
setup(
|
|
47
|
+
packages=find_packages(),
|
|
48
|
+
include_package_data=True,
|
|
49
|
+
has_ext_modules=lambda: True,
|
|
50
|
+
cmdclass={
|
|
51
|
+
'build_ext': Build,
|
|
52
|
+
},
|
|
53
|
+
data_files=data_files,
|
|
54
|
+
scripts=[
|
|
55
|
+
'bin/wfbench'
|
|
56
|
+
],
|
|
57
|
+
entry_points={
|
|
58
|
+
'console_scripts': [
|
|
59
|
+
'wfchef=wfcommons.wfchef.chef:main',
|
|
60
|
+
],
|
|
61
|
+
'workflow_recipes': [
|
|
62
|
+
'epigenomics_recipe = wfcommons.wfchef.recipes:EpigenomicsRecipe',
|
|
63
|
+
'montage_recipe = wfcommons.wfchef.recipes:MontageRecipe',
|
|
64
|
+
'cycles_recipe = wfcommons.wfchef.recipes:CyclesRecipe',
|
|
65
|
+
'seismology_recipe = wfcommons.wfchef.recipes:SeismologyRecipe',
|
|
66
|
+
'soykb_recipe = wfcommons.wfchef.recipes:SoykbRecipe',
|
|
67
|
+
'srasearch_recipe = wfcommons.wfchef.recipes:SrasearchRecipe',
|
|
68
|
+
'genome_recipe = wfcommons.wfchef.recipes:GenomeRecipe',
|
|
69
|
+
'blast_recipe = wfcommons.wfchef.recipes:BlastRecipe',
|
|
70
|
+
'bwa_recipe = wfcommons.wfchef.recipes:BwaRecipe',
|
|
71
|
+
'rnaseq_recipe = wfcommons.wfchef.recipes:RnaseqRecipe',
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
)
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2025-2026 The WfCommons Team.
|
|
5
|
+
#
|
|
6
|
+
# This program is free software: you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
# (at your option) any later version.
|
|
10
|
+
|
|
11
|
+
import pathlib
|
|
12
|
+
import shutil
|
|
13
|
+
import tarfile
|
|
14
|
+
import os
|
|
15
|
+
import io
|
|
16
|
+
import sys
|
|
17
|
+
import docker
|
|
18
|
+
import networkx
|
|
19
|
+
from docker.errors import ImageNotFound
|
|
20
|
+
|
|
21
|
+
from wfcommons.common import Workflow
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _create_fresh_local_dir(path: str) -> pathlib.Path:
|
|
25
|
+
dirpath = pathlib.Path(path)
|
|
26
|
+
if dirpath.exists():
|
|
27
|
+
shutil.rmtree(dirpath)
|
|
28
|
+
dirpath.mkdir(parents=True, exist_ok=True)
|
|
29
|
+
return dirpath
|
|
30
|
+
|
|
31
|
+
def _remove_local_dir_if_it_exists(path: str) -> None:
|
|
32
|
+
dirpath = pathlib.Path(path)
|
|
33
|
+
if dirpath.exists():
|
|
34
|
+
shutil.rmtree(dirpath)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _make_tarfile_of_wfcommons():
|
|
38
|
+
source_dir = os.getcwd() # This assumes the testing is run from the root
|
|
39
|
+
tar_stream = io.BytesIO()
|
|
40
|
+
with tarfile.open(fileobj=tar_stream, mode='w') as tar:
|
|
41
|
+
tar.add(source_dir, arcname=os.path.basename(source_dir))
|
|
42
|
+
tar_stream.seek(0)
|
|
43
|
+
return tar_stream
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _install_WfCommons_on_container(container):
|
|
47
|
+
# sys.stderr.write("Installing WfCommons on the container...\n")
|
|
48
|
+
# Copy the WfCommons code to it (removing stuff that should be removed)
|
|
49
|
+
target_path = '/tmp/' # inside container
|
|
50
|
+
tar_data = _make_tarfile_of_wfcommons()
|
|
51
|
+
container.put_archive(target_path, tar_data)
|
|
52
|
+
# Cleanup files that came from the host
|
|
53
|
+
exit_code, output = container.exec_run("sudo /bin/rm -rf /tmp/WfCommons/build/", stdout=True, stderr=True)
|
|
54
|
+
exit_code, output = container.exec_run("sudo /bin/rm -rf /tmp/WfCommons/*.egg-info/", stdout=True, stderr=True)
|
|
55
|
+
# Clean up and force a rebuild of cpu-benchmark (because it may be compiled for the wrong architecture)
|
|
56
|
+
exit_code, output = container.exec_run("sudo /bin/rm -rf /tmp/WfCommons/bin/cpu-benchmark.o", stdout=True,
|
|
57
|
+
stderr=True)
|
|
58
|
+
exit_code, output = container.exec_run("sudo /bin/rm -rf /tmp/WfCommons/bin/cpu-benchmark", stdout=True,
|
|
59
|
+
stderr=True)
|
|
60
|
+
|
|
61
|
+
# Install WfCommons on the container (to install wfbench and cpu-benchmark really)
|
|
62
|
+
exit_code, output = container.exec_run("sudo python3 -m pip install . --break-system-packages",
|
|
63
|
+
workdir="/tmp/WfCommons", stdout=True, stderr=True)
|
|
64
|
+
# print(output.decode())
|
|
65
|
+
if exit_code != 0:
|
|
66
|
+
raise RuntimeError("Failed to install WfCommons on the container")
|
|
67
|
+
|
|
68
|
+
def _start_docker_container(backend, mounted_dir, working_dir, bin_dir, command=None):
|
|
69
|
+
if command is None:
|
|
70
|
+
command = ["sleep", "infinity"]
|
|
71
|
+
# Pulling the Docker image
|
|
72
|
+
client = docker.from_env()
|
|
73
|
+
image_name = f"wfcommons/wfcommons-testing-{backend}"
|
|
74
|
+
|
|
75
|
+
try:
|
|
76
|
+
image = client.images.get(image_name)
|
|
77
|
+
sys.stderr.write(f"[{backend}] Image '{image_name}' is available locally\n")
|
|
78
|
+
except ImageNotFound:
|
|
79
|
+
sys.stderr.write(f"[{backend}] Pulling image '{image_name}'...\n")
|
|
80
|
+
client.images.pull(image_name)
|
|
81
|
+
|
|
82
|
+
# Launch the docker container to actually run the translated workflow
|
|
83
|
+
sys.stderr.write(f"[{backend}] Starting Docker container...\n")
|
|
84
|
+
container = client.containers.run(
|
|
85
|
+
image=image_name,
|
|
86
|
+
command=command,
|
|
87
|
+
volumes={mounted_dir: {'bind': mounted_dir, 'mode': 'rw'}},
|
|
88
|
+
working_dir=working_dir,
|
|
89
|
+
tty=True,
|
|
90
|
+
detach=True
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
# Installing WfCommons on container
|
|
94
|
+
_install_WfCommons_on_container(container)
|
|
95
|
+
|
|
96
|
+
# Copy over the wfbench and cpu-benchmark executables to where they should go on the container
|
|
97
|
+
if bin_dir:
|
|
98
|
+
sys.stderr.write(f"[{backend}] Copying wfbench and cpu-benchmark...\n")
|
|
99
|
+
exit_code, output = container.exec_run(["sh", "-c", "sudo cp -f `which wfbench` " + bin_dir],
|
|
100
|
+
stdout=True, stderr=True)
|
|
101
|
+
if exit_code != 0:
|
|
102
|
+
raise RuntimeError("Failed to copy wfbench script to the bin directory")
|
|
103
|
+
|
|
104
|
+
exit_code, output = container.exec_run(["sh", "-c", "sudo cp -f `which cpu-benchmark` " + bin_dir],
|
|
105
|
+
stdout=True, stderr=True)
|
|
106
|
+
if exit_code != 0:
|
|
107
|
+
raise RuntimeError("Failed to copy cpu-benchmark executable to the bin directory")
|
|
108
|
+
else:
|
|
109
|
+
sys.stderr.write(f"[{backend}] Not Copying wfbench and cpu-benchmark...\n")
|
|
110
|
+
|
|
111
|
+
# Change file permissions
|
|
112
|
+
exit_code, output = container.exec_run(["sh", "-c", "sudo chown -R wfcommons:wfcommons "],
|
|
113
|
+
stdout=True, stderr=True)
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
container.backend = backend
|
|
117
|
+
return container
|
|
118
|
+
|
|
119
|
+
def _shutdown_docker_container_and_remove_image(container):
|
|
120
|
+
image = container.image
|
|
121
|
+
sys.stderr.write(f"[{container.backend}] Terminating container if need be...\n")
|
|
122
|
+
try:
|
|
123
|
+
container.stop()
|
|
124
|
+
container.remove()
|
|
125
|
+
except Exception as e:
|
|
126
|
+
pass
|
|
127
|
+
|
|
128
|
+
# Remove the images as we go, if running on GitHub
|
|
129
|
+
if os.getenv('CI') or os.getenv('GITHUB_ACTIONS'):
|
|
130
|
+
sys.stderr.write(f"[{container.backend}] Removing Docker image...\n")
|
|
131
|
+
try:
|
|
132
|
+
image.remove(force=True)
|
|
133
|
+
except Exception as e:
|
|
134
|
+
sys.stderr.write(f"[{container.backend}] Warning: Error while removing image: {e}\n")
|
|
135
|
+
|
|
136
|
+
def _get_total_size_of_directory(directory_path: str):
|
|
137
|
+
total_size = 0
|
|
138
|
+
for dirpath, dirnames, filenames in os.walk(directory_path):
|
|
139
|
+
for filename in filenames:
|
|
140
|
+
filepath = os.path.join(dirpath, filename)
|
|
141
|
+
total_size += os.path.getsize(filepath)
|
|
142
|
+
return total_size
|
|
143
|
+
|
|
144
|
+
def _compare_workflows(workflow_1: Workflow, workflow_2: Workflow):
|
|
145
|
+
|
|
146
|
+
# Test the number of tasks
|
|
147
|
+
assert (len(workflow_1.tasks) == len(workflow_2.tasks))
|
|
148
|
+
# Test the task graph topology
|
|
149
|
+
assert (networkx.is_isomorphic(workflow_1, workflow_2))
|
|
150
|
+
# Test the total file size sum
|
|
151
|
+
workflow1_input_bytes, workflow2_input_bytes = 0, 0
|
|
152
|
+
workflow1_output_bytes, workflow2_output_bytes = 0, 0
|
|
153
|
+
for workflow1_task, workflow2_task in zip(workflow_1.tasks.values(), workflow_2.tasks.values()):
|
|
154
|
+
# sys.stderr.write(f"WORKFLOW1: {workflow1_task.task_id} WORKFLOW2 TASK: {workflow2_task.task_id}\n")
|
|
155
|
+
for input_file in workflow1_task.input_files:
|
|
156
|
+
# sys.stderr.write(f"WORKFLOW1 INPUT FILE: {input_file.file_id} {input_file.size}\n")
|
|
157
|
+
workflow1_input_bytes += input_file.size
|
|
158
|
+
for input_file in workflow2_task.input_files:
|
|
159
|
+
# sys.stderr.write(f"WORKFLOW2 INPUT FILE: {input_file.file_id} {input_file.size}\n")
|
|
160
|
+
workflow2_input_bytes += input_file.size
|
|
161
|
+
for output_file in workflow1_task.output_files:
|
|
162
|
+
# sys.stderr.write(f"WORKFLOW1 OUTPUT FILE: {output_file.file_id} {output_file.size}\n")
|
|
163
|
+
workflow1_output_bytes += output_file.size
|
|
164
|
+
for output_file in workflow2_task.output_files:
|
|
165
|
+
# sys.stderr.write(f"WORKFLOW2 OUTPUT FILE: {output_file.file_id} {output_file.size}\n")
|
|
166
|
+
workflow2_output_bytes += output_file.size
|
|
167
|
+
assert (workflow1_input_bytes == workflow2_input_bytes)
|
|
168
|
+
assert (workflow1_output_bytes == workflow2_output_bytes)
|
|
@@ -16,7 +16,7 @@ __credits__ = 'University of Hawaii at Manoa, Oak Ridge National Laboratoy, San
|
|
|
16
16
|
import logging
|
|
17
17
|
|
|
18
18
|
from .wfchef.recipes import BlastRecipe, BwaRecipe, CyclesRecipe, EpigenomicsRecipe, GenomeRecipe, MontageRecipe, \
|
|
19
|
-
SeismologyRecipe, SoykbRecipe, SrasearchRecipe
|
|
19
|
+
RnaseqRecipe, SeismologyRecipe, SoykbRecipe, SrasearchRecipe
|
|
20
20
|
from .wfgen import WorkflowGenerator
|
|
21
21
|
from .wfinstances import Instance, InstanceAnalyzer, InstanceElement
|
|
22
22
|
|
|
@@ -16,12 +16,6 @@ from typing import Dict, Optional, Union
|
|
|
16
16
|
from ..utils import NoValue
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
class FileLink(NoValue):
|
|
20
|
-
"""Type of file link."""
|
|
21
|
-
INPUT = "input"
|
|
22
|
-
OUTPUT = "output"
|
|
23
|
-
|
|
24
|
-
|
|
25
19
|
class File:
|
|
26
20
|
"""Representation of a file.
|
|
27
21
|
|
|
@@ -29,28 +23,24 @@ class File:
|
|
|
29
23
|
:type file_id: str
|
|
30
24
|
:param size: File size in bytes.
|
|
31
25
|
:type size: int
|
|
32
|
-
:param link: Type of file link.
|
|
33
|
-
:type link: FileLink
|
|
34
26
|
:param logger: The logger where to log information/warning or errors.
|
|
35
27
|
:type logger: Optional[Logger]
|
|
36
28
|
"""
|
|
37
29
|
|
|
38
30
|
def __init__(self, file_id: str,
|
|
39
31
|
size: int,
|
|
40
|
-
link: FileLink,
|
|
41
32
|
logger: Optional[Logger] = None) -> None:
|
|
42
33
|
"""A file used by tasks."""
|
|
43
34
|
self.logger: Logger = logger if logger else logging.getLogger(__name__)
|
|
44
35
|
|
|
45
36
|
self.file_id: str = file_id
|
|
46
37
|
self.size: int = size
|
|
47
|
-
self.link: FileLink = link
|
|
48
38
|
|
|
49
|
-
def as_dict(self) -> Dict[str, Union[str, int
|
|
39
|
+
def as_dict(self) -> Dict[str, Union[str, int]]:
|
|
50
40
|
"""A JSON representation of the file.
|
|
51
41
|
|
|
52
42
|
:return: A JSON object representation of the file.
|
|
53
|
-
:rtype: Dict[str, Union[str, int
|
|
43
|
+
:rtype: Dict[str, Union[str, int]]
|
|
54
44
|
"""
|
|
55
45
|
return {
|
|
56
46
|
'id': self.file_id,
|