From 7b4b85ec66f8e95459f96e2c0b97789c27f782b9 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 19 Nov 2020 18:05:42 +0100 Subject: [PATCH 001/127] all Requirement classes should be static strings --- CommandLineTool.yml | 61 +++++++++++++++++++++++++++++++++++++-------- Process.yml | 18 ++++++++++--- Workflow.yml | 24 +++++++++++++++--- 3 files changed, 85 insertions(+), 18 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index a91c2443..d78cafec 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -784,7 +784,11 @@ $graph: fields: - name: class - type: string + type: + type: enum + name: DockerRequirement_class + symbols: + - cwl:DockerRequirement doc: "Always 'DockerRequirement'" jsonldPredicate: "_id": "@type" @@ -826,7 +830,11 @@ $graph: the defined process. fields: - name: class - type: string + type: + type: enum + name: SoftwareRequirement_class + symbols: + - cwl:SoftwareRequirement doc: "Always 'SoftwareRequirement'" jsonldPredicate: "_id": "@type" @@ -1007,10 +1015,13 @@ $graph: Together with `DockerRequirement.dockerOutputDirectory` this it possible to control the locations of both input and output files when running in containers. - fields: - name: class - type: string + type: + type: enum + name: InitialWorkDirRequirement_class + symbols: + - cwl:InitialWorkDirRequirement doc: InitialWorkDirRequirement jsonldPredicate: "_id": "@type" @@ -1066,7 +1077,11 @@ $graph: execution environment of the tool. See `EnvironmentDef` for details. fields: - name: class - type: string + type: + type: enum + name: EnvVarRequirement_class + symbols: + - cwl:EnvVarRequirement doc: "Always 'EnvVarRequirement'" jsonldPredicate: "_id": "@type" @@ -1092,7 +1107,11 @@ $graph: the use of shell metacharacters such as `|` for pipes. fields: - name: class - type: string + type: + type: enum + name: ShellCommandRequirement_class + symbols: + - cwl:ShellCommandRequirement doc: "Always 'ShellCommandRequirement'" jsonldPredicate: "_id": "@type" @@ -1131,7 +1150,11 @@ $graph: fields: - name: class - type: string + type: + type: enum + name: ResourceRequirement_class + symbols: + - cwl:ResourceRequirement doc: "Always 'ResourceRequirement'" jsonldPredicate: "_id": "@type" @@ -1242,7 +1265,11 @@ $graph: is enabled by default. fields: - name: class - type: string + type: + type: enum + name: WorkReuse_class + symbols: + - cwl:WorkReuse doc: "Always 'WorkReuse'" jsonldPredicate: "_id": "@type" @@ -1274,7 +1301,11 @@ $graph: fields: - name: class - type: string + type: + type: enum + name: NetworkAccess_class + symbols: + - cwl:NetworkAccess doc: "Always 'NetworkAccess'" jsonldPredicate: "_id": "@type" @@ -1319,7 +1350,11 @@ $graph: fields: class: - type: string + type: + type: enum + name: InplaceUpdateRequirement_class + symbols: + - cwl:InplaceUpdateRequirement doc: "Always 'InplaceUpdateRequirement'" jsonldPredicate: "_id": "@type" @@ -1340,7 +1375,11 @@ $graph: wall-time for the execution of the command line itself. fields: - name: class - type: string + type: + type: enum + name: ToolTimeLimit_class + symbols: + - cwl:ToolTimeLimit doc: "Always 'ToolTimeLimit'" jsonldPredicate: "_id": "@type" diff --git a/Process.yml b/Process.yml index cc8a9f50..c8bf4952 100644 --- a/Process.yml +++ b/Process.yml @@ -887,7 +887,11 @@ $graph: interpolatation. fields: - name: class - type: string + type: + type: enum + name: InlineJavascriptRequirement_class + symbols: + - cwl:InlineJavascriptRequirement doc: "Always 'InlineJavascriptRequirement'" jsonldPredicate: "_id": "@type" @@ -923,7 +927,11 @@ $graph: fields: - name: class - type: string + type: + type: enum + name: SchemaDefRequirement_class + symbols: + - cwl:SchemaDefRequirement doc: "Always 'SchemaDefRequirement'" jsonldPredicate: "_id": "@type" @@ -1021,7 +1029,11 @@ $graph: a Directory object for use by expressions. fields: class: - type: string + type: + type: enum + name: LoadListingRequirement_class + symbols: + - cwl:LoadListingRequirement doc: "Always 'LoadListingRequirement'" jsonldPredicate: "_id": "@type" diff --git a/Workflow.yml b/Workflow.yml index 327a4798..4d58ddc2 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -729,7 +729,11 @@ $graph: the `run` field of [WorkflowStep](#WorkflowStep). fields: - name: "class" - type: "string" + type: + type: enum + name: SubworkflowFeatureRequirement_class + symbols: + - cwl:SubworkflowFeatureRequirement doc: "Always 'SubworkflowFeatureRequirement'" jsonldPredicate: "_id": "@type" @@ -743,7 +747,11 @@ $graph: `scatterMethod` fields of [WorkflowStep](#WorkflowStep). fields: - name: "class" - type: "string" + type: + type: enum + name: ScatterFeatureRequirement_class + symbols: + - cwl:ScatterFeatureRequirement doc: "Always 'ScatterFeatureRequirement'" jsonldPredicate: "_id": "@type" @@ -757,7 +765,11 @@ $graph: listed in the `source` field of [WorkflowStepInput](#WorkflowStepInput). fields: - name: "class" - type: "string" + type: + type: enum + name: MultipleInputFeatureRequirement_class + symbols: + - cwl:MultipleInputFeatureRequirement doc: "Always 'MultipleInputFeatureRequirement'" jsonldPredicate: "_id": "@type" @@ -771,7 +783,11 @@ $graph: of [WorkflowStepInput](#WorkflowStepInput). fields: - name: "class" - type: "string" + type: + type: enum + name: StepInputExpressionRequirement_class + symbols: + - cwl:StepInputExpressionRequirement doc: "Always 'StepInputExpressionRequirement'" jsonldPredicate: "_id": "@type" From 74b3ff4a1438b26b6e72e078e07b614598523960 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Tue, 2 Feb 2021 11:33:12 +0100 Subject: [PATCH 002/127] all Process classes should also be static strings --- CommandLineTool.yml | 6 +++++- Operation.yml | 6 +++++- Workflow.yml | 12 ++++++++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index d78cafec..270702d2 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -631,7 +631,11 @@ $graph: jsonldPredicate: "_id": "@type" "_type": "@vocab" - type: string + type: + type: enum + name: CommandLineTool_class + symbols: + - cwl:CommandLineTool - name: baseCommand doc: | Specifies the program to execute. If an array, the first element of diff --git a/Operation.yml b/Operation.yml index d47079f5..076571f6 100644 --- a/Operation.yml +++ b/Operation.yml @@ -87,4 +87,8 @@ $graph: jsonldPredicate: "_id": "@type" "_type": "@vocab" - type: string + type: + type: enum + name: Operation_class + symbols: + - cwl:Operation diff --git a/Workflow.yml b/Workflow.yml index 4d58ddc2..8d93a881 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -175,7 +175,11 @@ $graph: jsonldPredicate: "_id": "@type" "_type": "@vocab" - type: string + type: + type: enum + name: ExpressionTool_class + symbols: + - cwl:ExpressionTool - name: expression type: Expression doc: | @@ -707,7 +711,11 @@ $graph: jsonldPredicate: "_id": "@type" "_type": "@vocab" - type: string + type: + type: enum + name: Workflow_class + symbols: + - cwl:Workflow - name: steps doc: | The individual steps that make up the workflow. Each step is executed when all of its From 48475cd57fc40d6bf8cf4135d6bbc35d569f5998 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Thu, 2 Sep 2021 17:23:50 +0200 Subject: [PATCH 003/127] More defaults (#68) * some defaults should not be set using 'default' To implement the slightly complicated default value rules for ResourceRequirement * InputBinding.position default is 0. * File.streamable default is false. --- CommandLineTool.yml | 30 +++++++++++++++++++++++++++--- Process.yml | 1 + 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index 270702d2..a27779ee 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -180,10 +180,12 @@ $graph: fields: - name: position type: [ "null", int, Expression ] + default: 0 doc: | - The sorting key. Default position is 0. If the inputBinding is - associated with an input parameter, then the value of `self` in the - expression will be the value of the input parameter. Input parameter + The sorting key. Default position is 0. If a [CWL Parameter Reference](#Parameter_references) + or [CWL Expression](#Expressions_(Optional)) is used and if the + inputBinding is associated with an input parameter, then the value of + `self` will be the value of the input parameter. Input parameter defaults (as specified by the `InputParameter.default` field) must be applied before evaluating the expression. Expressions must return a single value of type int or a null. @@ -1165,6 +1167,10 @@ $graph: "_type": "@vocab" - name: coresMin type: ["null", long, float, Expression] + # default: 1 + # Don't set the default here, we need to be able to distinguish between + # a value not provided and the textual default to be able to implement + # the rules written in the ResourceRequirement doc above doc: | Minimum reserved number of CPU cores (default is 1). @@ -1201,6 +1207,12 @@ $graph: - name: ramMin type: ["null", long, float, Expression] + # default: 256 + # Don't set the default here, we need to be able to distinguish between + # a value not provided and the textual default to be able to implement + # the rules written in the ResourceRequirement doc above. + # Consumers of ResourceRequirement must apply the default value algorithm + # themselves and not rely on schema-salad rules doc: | Minimum reserved RAM in mebibytes (2**20) (default is 256) @@ -1219,6 +1231,12 @@ $graph: - name: tmpdirMin type: ["null", long, float, Expression] + # default: 1024 + # Don't set the default here, we need to be able to distinguish between + # a value not provided and the textual default to be able to implement + # the rules written in the ResourceRequirement doc above + # Consumers of ResourceRequirement must apply the default value algorithm + # themselves and not rely on schema-salad rules doc: | Minimum reserved filesystem based storage for the designated temporary directory, in mebibytes (2**20) (default is 1024) @@ -1237,6 +1255,12 @@ $graph: - name: outdirMin type: ["null", long, float, Expression] + # default: 1024 + # Don't set the default here, we need to be able to distinguish between + # a value not provided and the textual default to be able to implement + # the rules written in the ResourceRequirement doc above + # Consumers of ResourceRequirement must apply the default value algorithm + # themselves and not rely on schema-salad rules doc: | Minimum reserved filesystem based storage for the designated output directory, in mebibytes (2**20) (default is 1024) diff --git a/Process.yml b/Process.yml index c8bf4952..32e69815 100644 --- a/Process.yml +++ b/Process.yml @@ -558,6 +558,7 @@ $graph: streamable: type: boolean? + default: false doc: | Only valid when `type: File` or is an array of `items: File`. From 596e811072f173a65d93a3c2217458eefd7e1d6d Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Wed, 15 Sep 2021 18:50:56 +0200 Subject: [PATCH 004/127] Update cwloutput-nolimit.cwl --- tests/loadContents/cwloutput-nolimit.cwl | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/loadContents/cwloutput-nolimit.cwl b/tests/loadContents/cwloutput-nolimit.cwl index a2fb3bc9..75b1eda7 100644 --- a/tests/loadContents/cwloutput-nolimit.cwl +++ b/tests/loadContents/cwloutput-nolimit.cwl @@ -10,4 +10,5 @@ inputs: default: {class: File, location: mkfilelist.py} outputs: filelist: string[] + bigstring: string arguments: [python, $(inputs.script)] From 9939cde9141cda655a06d23fdf060a8a179b13e2 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Sat, 4 Sep 2021 17:04:55 +0200 Subject: [PATCH 005/127] metaschema: clean up & sync --- salad/.gitignore | 12 - salad/.travis.yml | 22 - salad/MANIFEST.in | 9 - salad/Makefile | 216 - salad/README.rst | 175 +- salad/appveyor.yml | 44 - salad/docs/typeshed.rst | 24 - salad/release-test.sh | 108 - salad/schema_salad/metaschema/sfdsl_res.yml | 2 +- .../schema_salad/metaschema/sfdsl_res_src.yml | 4 +- salad/schema_salad/tests/EDAM.owl | 51294 ---------------- salad/schema_salad/tests/Process.yml | 36 - salad/schema_salad/tests/cwl-pre.yml | 2354 - salad/schema_salad/tests/docimp/d1.yml | 7 - salad/schema_salad/tests/docimp/d2.md | 1 - salad/schema_salad/tests/docimp/d3.yml | 3 - salad/schema_salad/tests/docimp/d4.yml | 3 - salad/schema_salad/tests/docimp/d5.md | 1 - salad/schema_salad/tests/docimp/dpre.json | 13 - salad/schema_salad/tests/frag.yml | 4 - salad/schema_salad/tests/hello.txt | 1 - salad/schema_salad/tests/hellofield.yml | 5 - salad/schema_salad/tests/metaschema-pre.yml | 665 - salad/schema_salad/tests/mixin.yml | 2 - salad/schema_salad/tests/pt.yml | 28 - .../tests/test_schema/CommandLineTool.yml | 895 - .../test_schema/CommonWorkflowLanguage.yml | 11 - .../tests/test_schema/Process.yml | 745 - .../tests/test_schema/Workflow.yml | 583 - .../tests/test_schema/concepts.md | 1 - .../schema_salad/tests/test_schema/contrib.md | 1 - salad/schema_salad/tests/test_schema/intro.md | 1 - .../tests/test_schema/invocation.md | 1 - .../tests/test_schema/metaschema_base.yml | 161 - .../schema_salad/tests/test_schema/test1.cwl | 2 - .../schema_salad/tests/test_schema/test10.cwl | 11 - .../schema_salad/tests/test_schema/test11.cwl | 11 - .../schema_salad/tests/test_schema/test12.cwl | 17 - .../schema_salad/tests/test_schema/test13.cwl | 21 - .../schema_salad/tests/test_schema/test14.cwl | 12 - .../schema_salad/tests/test_schema/test15.cwl | 13 - .../schema_salad/tests/test_schema/test16.cwl | 16 - .../schema_salad/tests/test_schema/test17.cwl | 14 - .../schema_salad/tests/test_schema/test18.cwl | 14 - .../schema_salad/tests/test_schema/test19.cwl | 16 - .../schema_salad/tests/test_schema/test2.cwl | 2 - .../schema_salad/tests/test_schema/test3.cwl | 7 - .../schema_salad/tests/test_schema/test4.cwl | 7 - .../schema_salad/tests/test_schema/test5.cwl | 7 - .../schema_salad/tests/test_schema/test6.cwl | 6 - .../schema_salad/tests/test_schema/test7.cwl | 11 - .../schema_salad/tests/test_schema/test8.cwl | 11 - .../schema_salad/tests/test_schema/test9.cwl | 11 - salad/setup.cfg | 11 - salad/tox.ini | 50 - 55 files changed, 153 insertions(+), 57549 deletions(-) delete mode 100644 salad/.gitignore delete mode 100644 salad/.travis.yml delete mode 100644 salad/MANIFEST.in delete mode 100644 salad/Makefile delete mode 100644 salad/appveyor.yml delete mode 100644 salad/docs/typeshed.rst delete mode 100755 salad/release-test.sh delete mode 100644 salad/schema_salad/tests/EDAM.owl delete mode 100644 salad/schema_salad/tests/Process.yml delete mode 100644 salad/schema_salad/tests/cwl-pre.yml delete mode 100644 salad/schema_salad/tests/docimp/d1.yml delete mode 100644 salad/schema_salad/tests/docimp/d2.md delete mode 100644 salad/schema_salad/tests/docimp/d3.yml delete mode 100644 salad/schema_salad/tests/docimp/d4.yml delete mode 100644 salad/schema_salad/tests/docimp/d5.md delete mode 100644 salad/schema_salad/tests/docimp/dpre.json delete mode 100644 salad/schema_salad/tests/frag.yml delete mode 100644 salad/schema_salad/tests/hello.txt delete mode 100644 salad/schema_salad/tests/hellofield.yml delete mode 100644 salad/schema_salad/tests/metaschema-pre.yml delete mode 100644 salad/schema_salad/tests/mixin.yml delete mode 100644 salad/schema_salad/tests/pt.yml delete mode 100644 salad/schema_salad/tests/test_schema/CommandLineTool.yml delete mode 100644 salad/schema_salad/tests/test_schema/CommonWorkflowLanguage.yml delete mode 100644 salad/schema_salad/tests/test_schema/Process.yml delete mode 100644 salad/schema_salad/tests/test_schema/Workflow.yml delete mode 100644 salad/schema_salad/tests/test_schema/concepts.md delete mode 100644 salad/schema_salad/tests/test_schema/contrib.md delete mode 100644 salad/schema_salad/tests/test_schema/intro.md delete mode 100644 salad/schema_salad/tests/test_schema/invocation.md delete mode 100644 salad/schema_salad/tests/test_schema/metaschema_base.yml delete mode 100644 salad/schema_salad/tests/test_schema/test1.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test10.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test11.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test12.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test13.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test14.cwl delete mode 100755 salad/schema_salad/tests/test_schema/test15.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test16.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test17.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test18.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test19.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test2.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test3.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test4.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test5.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test6.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test7.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test8.cwl delete mode 100644 salad/schema_salad/tests/test_schema/test9.cwl delete mode 100644 salad/setup.cfg delete mode 100644 salad/tox.ini diff --git a/salad/.gitignore b/salad/.gitignore deleted file mode 100644 index 3d7187d4..00000000 --- a/salad/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -.tox/ -.eggs -*.egg-info/ -*pyc - -build/ -dist/ -ruamel -typeshed/2and3/ruamel/yaml -# virtualenv -venv/ -.cache/ diff --git a/salad/.travis.yml b/salad/.travis.yml deleted file mode 100644 index 311a4347..00000000 --- a/salad/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -sudo: false -language: python -cache: - pip: true - directories: - - .mypy_cache -python: - - 2.7 - - 3.4 - - 3.5 - - 3.6 -os: - - linux -jobs: - include: - - stage: release-test - script: RELEASE_SKIP=head PYVER= ./release-test.sh -script: tox -install: - - pip install tox-travis -notifications: - email: false diff --git a/salad/MANIFEST.in b/salad/MANIFEST.in deleted file mode 100644 index 661c696f..00000000 --- a/salad/MANIFEST.in +++ /dev/null @@ -1,9 +0,0 @@ -include gittaggers.py Makefile -include schema_salad/tests/* -include schema_salad/tests/test_schema/*.md -include schema_salad/tests/test_schema/*.yml -include schema_salad/tests/test_schema/*.cwl -include schema_salad/metaschema/* -include schema_salad/tests/docimp/* -global-exclude *~ -global-exclude *.pyc diff --git a/salad/Makefile b/salad/Makefile deleted file mode 100644 index dec3bfaa..00000000 --- a/salad/Makefile +++ /dev/null @@ -1,216 +0,0 @@ -# This file is part of schema-salad, -# https://github.com/common-workflow-language/schema-salad/, and is -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Contact: common-workflow-language@googlegroups.com - -# make pep8 to check for basic Python code compliance -# make autopep8 to fix most pep8 errors -# make pylint to check Python code for enhanced compliance including naming -# and documentation -# make coverage-report to check coverage of the python scripts by the tests - -MODULE=schema_salad -PACKAGE=schema-salad - -# `SHELL=bash` doesn't work for some, so don't use BASH-isms like -# `[[` conditional expressions. -PYSOURCES=$(wildcard ${MODULE}/**.py tests/*.py) setup.py -DEVPKGS=pep8 diff_cover autopep8 pylint coverage pep257 pytest flake8 -COVBASE=coverage run --branch --append --source=${MODULE} \ - --omit=schema_salad/tests/* - -# Updating the Major & Minor version below? -# Don't forget to update setup.py as well -VERSION=2.7.$(shell date +%Y%m%d%H%M%S --utc --date=`git log --first-parent \ - --max-count=1 --format=format:%cI`) - -## all : default task -all: - pip install -e . - -## help : print this help message and exit -help: Makefile - @sed -n 's/^##//p' $< - -## install-dep : install most of the development dependencies via pip -install-dep: install-dependencies - -install-dependencies: - pip install --upgrade $(DEVPKGS) - pip install -r requirements.txt - -## install : install the ${MODULE} module and schema-salad-tool -install: FORCE - pip install . - -## dist : create a module package for distribution -dist: dist/${MODULE}-$(VERSION).tar.gz - -dist/${MODULE}-$(VERSION).tar.gz: $(SOURCES) - ./setup.py sdist bdist_wheel - -## clean : clean up all temporary / machine-generated files -clean: FORCE - rm -f ${MODILE}/*.pyc tests/*.pyc - ./setup.py clean --all || true - rm -Rf .coverage - rm -f diff-cover.html - -## pep8 : check Python code style -pep8: $(PYSOURCES) - pep8 --exclude=_version.py --show-source --show-pep8 $^ || true - -pep8_report.txt: $(PYSOURCES) - pep8 --exclude=_version.py $^ > $@ || true - -diff_pep8_report: pep8_report.txt - diff-quality --violations=pep8 pep8_report.txt - -## pep257 : check Python code style -pep257: $(PYSOURCES) - pep257 --ignore=D100,D101,D102,D103 $^ || true - -pep257_report.txt: $(PYSOURCES) - pep257 setup.py $^ > $@ 2>&1 || true - -diff_pep257_report: pep257_report.txt - diff-quality --violations=pep8 pep257_report.txt - -## autopep8 : fix most Python code indentation and formatting -autopep8: $(PYSOURCES) - autopep8 --recursive --in-place --ignore E309 $^ - -# A command to automatically run astyle and autopep8 on appropriate files -## format : check/fix all code indentation and formatting (runs autopep8) -format: autopep8 - # Do nothing - -## pylint : run static code analysis on Python code -pylint: $(PYSOURCES) - pylint --msg-template="{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}" \ - $^ || true - -pylint_report.txt: ${PYSOURCES} - pylint --msg-template="{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}" \ - $^ > $@ || true - -diff_pylint_report: pylint_report.txt - diff-quality --violations=pylint pylint_report.txt - -.coverage: $(PYSOURCES) all - rm -f .coverage - $(COVBASE) setup.py test - $(COVBASE) -m schema_salad.main \ - --print-jsonld-context schema_salad/metaschema/metaschema.yml \ - > /dev/null - $(COVBASE) -m schema_salad.main \ - --print-rdfs schema_salad/metaschema/metaschema.yml \ - > /dev/null - $(COVBASE) -m schema_salad.main \ - --print-avro schema_salad/metaschema/metaschema.yml \ - > /dev/null - $(COVBASE) -m schema_salad.main \ - --print-rdf schema_salad/metaschema/metaschema.yml \ - > /dev/null - $(COVBASE) -m schema_salad.main \ - --print-pre schema_salad/metaschema/metaschema.yml \ - > /dev/null - $(COVBASE) -m schema_salad.main \ - --print-index schema_salad/metaschema/metaschema.yml \ - > /dev/null - $(COVBASE) -m schema_salad.main \ - --print-metadata schema_salad/metaschema/metaschema.yml \ - > /dev/null - $(COVBASE) -m schema_salad.makedoc \ - schema_salad/metaschema/metaschema.yml \ - > /dev/null - -coverage.xml: .coverage - coverage xml - -coverage.html: htmlcov/index.html - -htmlcov/index.html: .coverage - coverage html - @echo Test coverage of the Python code is now in htmlcov/index.html - -coverage-report: .coverage - coverage report - -diff-cover: coverage.xml - diff-cover $^ - -diff-cover.html: coverage.xml - diff-cover $^ --html-report $@ - -## test : run the ${MODULE} test suite -test: FORCE - python setup.py test - -sloccount.sc: ${PYSOURCES} Makefile - sloccount --duplicates --wide --details $^ > $@ - -## sloccount : count lines of code -sloccount: ${PYSOURCES} Makefile - sloccount $^ - -list-author-emails: - @echo 'name, E-Mail Address' - @git log --format='%aN,%aE' | sort -u | grep -v 'root' - -mypy2: ${PYSOURCES} - rm -Rf typeshed/2and3/ruamel/yaml - ln -s $(shell python -c 'from __future__ import print_function; import ruamel.yaml; import os.path; print(os.path.dirname(ruamel.yaml.__file__))') \ - typeshed/2and3/ruamel/ - MYPYPATH=$MYPYPATH:typeshed/2.7:typeshed/2and3 mypy --py2 --disallow-untyped-calls \ - --warn-redundant-casts \ - schema_salad - -mypy3: ${PYSOURCES} - rm -Rf typeshed/2and3/ruamel/yaml - ln -s $(shell python -c 'from __future__ import print_function; import ruamel.yaml; import os.path; print(os.path.dirname(ruamel.yaml.__file__))') \ - typeshed/2and3/ruamel/ - MYPYPATH=$MYPYPATH:typeshed/3:typeshed/2and3 mypy --disallow-untyped-calls \ - --warn-redundant-casts \ - schema_salad - -jenkins: FORCE - rm -Rf env && virtualenv env - . env/bin/activate ; \ - pip install -U setuptools pip wheel ; \ - ${MAKE} install-dep coverage.html coverage.xml pep257_report.txt \ - sloccount.sc pep8_report.txt pylint_report.txt - if ! test -d env3 ; then virtualenv -p python3 env3 ; fi - . env3/bin/activate ; \ - pip install -U setuptools pip wheel ; \ - ${MAKE} install-dep ; \ - pip install -U -r mypy_requirements.txt ; ${MAKE} mypy2 - # pip install -U -r mypy_requirements.txt ; ${MAKE} mypy3 - -release-test: FORCE - git diff-index --quiet HEAD -- || ( echo You have uncommited changes, please commit them and try again; false ) - PYVER=2.7 ./release-test.sh - PYVER=3 ./release-test.sh - -release: release-test - . testenv2.7_2/bin/activate && \ - testenv2.7_2/src/${PACKAGE}/setup.py sdist bdist_wheel - . testenv2.7_2/bin/activate && \ - pip install twine && \ - twine upload testenv2.7_2/src/${PACKAGE}/dist/* && \ - git tag ${VERSION} && git push --tags - - -FORCE: diff --git a/salad/README.rst b/salad/README.rst index 7901a762..d4287705 100644 --- a/salad/README.rst +++ b/salad/README.rst @@ -1,23 +1,26 @@ -|Build Status| |Build status| +|Linux Build Status| |Code coverage| |CII Best Practices| -.. |Build Status| image:: https://img.shields.io/travis/common-workflow-language/schema_salad/master.svg?label=unix%20build - :target: https://travis-ci.org/common-workflow-language/schema_salad -.. |Build status| image:: https://img.shields.io/appveyor/ci/mr-c/schema-salad/master.svg?label=windows%20build - :target: https://ci.appveyor.com/project/mr-c/schema-salad/branch/master +.. |Linux Build Status| image:: https://github.com/common-workflow-language/schema-salad/actions/workflows/ci-tests.yml/badge.svg?branch=main + :target: https://github.com/common-workflow-language/schema-salad/actions/workflows/ci-tests.yml +.. |Code coverage| image:: https://codecov.io/gh/common-workflow-language/schema_salad/branch/main/graph/badge.svg + :target: https://codecov.io/gh/common-workflow-language/schema_salad +.. |CII Best Practices| image:: https://bestpractices.coreinfrastructure.org/projects/1867/badge + :target: https://bestpractices.coreinfrastructure.org/projects/1867 Schema Salad ------------ -Salad is a schema language for describing JSON or YAML structured linked data -documents. Salad is based originally on JSON-LD_ and the Apache Avro_ data -serialization system. +Salad is a schema language for describing JSON or YAML structured +linked data documents. Salad schema describes rules for +preprocessing, structural validation, and hyperlink checking for +documents described by a Salad schema. Salad supports rich data +modeling with inheritance, template specialization, object +identifiers, object references, documentation generation, code +generation, and transformation to RDF_. Salad provides a bridge +between document and record oriented data modeling and the Semantic +Web. -Salad schema describes rules for preprocessing, structural validation, and link -checking for documents described by a Salad schema. Salad features for rich -data modeling such as inheritance, template specialization, object identifiers, -object references, documentation generation, and transformation to RDF_. Salad -provides a bridge between document and record oriented data modeling and the -Semantic Web. +The Schema Salad library is Python 3.6+ only. Usage ----- @@ -25,21 +28,142 @@ Usage :: $ pip install schema_salad + +To install from source:: + + git clone https://github.com/common-workflow-language/schema_salad + cd schema_salad + python3 setup.py install + +Commands +-------- + +Schema salad can be used as a command line tool or imported as a Python module:: + $ schema-salad-tool usage: schema-salad-tool [-h] [--rdf-serializer RDF_SERIALIZER] - [--print-jsonld-context | --print-doc | --print-rdfs | --print-avro | --print-rdf | --print-pre | --print-index | --print-metadata | --version] - [--strict | --non-strict] - [--verbose | --quiet | --debug] - schema [document] + [--print-jsonld-context | --print-rdfs | --print-avro + | --print-rdf | --print-pre | --print-index + | --print-metadata | --print-inheritance-dot + | --print-fieldrefs-dot | --codegen language + | --print-oneline] + [--strict | --non-strict] [--verbose | --quiet + | --debug] + [--version] + [schema] [document] + $ python >>> import schema_salad -To install from source:: +Validate a schema:: + + $ schema-salad-tool myschema.yml + +Validate a document using a schema:: + + $ schema-salad-tool myschema.yml mydocument.yml + +Generate HTML documentation:: + + $ schema-salad-tool myschema.yml > myschema.html + +Get JSON-LD context:: + + $ schema-salad-tool --print-jsonld-context myschema.yml mydocument.yml + +Convert a document to JSON-LD:: + + $ schema-salad-tool --print-pre myschema.yml mydocument.yml > mydocument.jsonld + +Generate Python classes for loading/generating documents described by the schema:: + + $ schema-salad-tool --codegen=python myschema.yml > myschema.py + +Display inheritance relationship between classes as a graphviz 'dot' file and +render as SVG:: + + $ schema-salad-tool --print-inheritance-dot myschema.yml | dot -Tsvg > myschema.svg + + +Quick Start +----------- + +Let's say you have a 'basket' record that can contain items measured either by +weight or by count. Here's an example:: + + basket: + - product: bananas + price: 0.39 + per: pound + weight: 1 + - product: cucumbers + price: 0.79 + per: item + count: 3 + +We want to validate that all the expected fields are present, the +measurement is known, and that "count" cannot be a fractional value. +Here is an example schema to do that:: + + - name: Product + doc: | + The base type for a product. This is an abstract type, so it + can't be used directly, but can be used to define other types. + type: record + abstract: true + fields: + product: string + price: float + + - name: ByWeight + doc: | + A product, sold by weight. Products may be sold by pound or by + kilogram. Weights may be fractional. + type: record + extends: Product + fields: + per: + type: + type: enum + symbols: + - pound + - kilogram + jsonldPredicate: '#per' + weight: float + + - name: ByCount + doc: | + A product, sold by count. The count must be a integer value. + type: record + extends: Product + fields: + per: + type: + type: enum + symbols: + - item + jsonldPredicate: '#per' + count: int + + - name: Basket + doc: | + A basket of products. The 'documentRoot' field indicates it is a + valid starting point for a document. The 'basket' field will + validate subtypes of 'Product' (ByWeight and ByCount). + type: record + documentRoot: true + fields: + basket: + type: + type: array + items: Product + +You can check the schema and document in schema_salad/tests/basket_schema.yml +and schema_salad/tests/basket.yml:: + + $ schema-salad-tool basket_schema.yml basket.yml + Document `basket.yml` is valid - git clone https://github.com/common-workflow-language/schema_salad - cd schema_salad - python setup.py install - Documentation ------------- @@ -47,6 +171,7 @@ Documentation See the specification_ and the metaschema_ (salad schema for itself). For an example application of Schema Salad see the Common Workflow Language_. + Rationale --------- @@ -83,7 +208,7 @@ provides for robust support of inline documentation. .. _JSON-LD: http://json-ld.org .. _Avro: http://avro.apache.org -.. _metaschema: https://github.com/common-workflow-language/schema_salad/blob/master/schema_salad/metaschema/metaschema.yml +.. _metaschema: https://github.com/common-workflow-language/schema_salad/blob/main/schema_salad/metaschema/metaschema.yml .. _specification: http://www.commonwl.org/v1.0/SchemaSalad.html -.. _Language: https://github.com/common-workflow-language/common-workflow-language/blob/master/v1.0/CommandLineTool.yml +.. _Language: https://github.com/common-workflow-language/common-workflow-language/blob/main/v1.0/CommandLineTool.yml .. _RDF: https://www.w3.org/RDF/ diff --git a/salad/appveyor.yml b/salad/appveyor.yml deleted file mode 100644 index a5d3da96..00000000 --- a/salad/appveyor.yml +++ /dev/null @@ -1,44 +0,0 @@ -version: .{build}-{branch} - -cache: - - '%LOCALAPPDATA%\pip\Cache' - -environment: - - matrix: - - PYTHON: "C:\\Python27-x64" - PYTHON_VERSION: "2.7.x" - PYTHON_ARCH: "64" - - - PYTHON: "C:\\Python34-x64" - PYTHON_VERSION: "3.4.x" - PYTHON_ARCH: "64" - - - PYTHON: "C:\\Python35-x64" - PYTHON_VERSION: "3.5.x" - PYTHON_ARCH: "64" - - - PYTHON: "C:\\Python36-x64" - PYTHON_VERSION: "3.6.x" - PYTHON_ARCH: "64" - -install: - - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" - - pip install --disable-pip-version-check "setuptools>=27.3" - -build_script: - - | - %PYTHON%\\python.exe -m pip install . wheel pytest pytest-xdist" - -test_script: - - | - %PYTHON%\\python.exe setup.py test --addopts "--verbose -p no:cacheprovider --junit-xml=tests.xml -n2" - -on_finish: - - ps: | - $wc = New-Object 'System.Net.WebClient' - $wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($Env:APPVEYOR_JOB_ID)", (Resolve-Path .\tests.xml)) - -branches: - only: - - master diff --git a/salad/docs/typeshed.rst b/salad/docs/typeshed.rst deleted file mode 100644 index 3cbe98df..00000000 --- a/salad/docs/typeshed.rst +++ /dev/null @@ -1,24 +0,0 @@ -How to add new types to the local Typeshed ------------------------------------------- - - -If when running ``make mypy`` you receive errors about modules that can't be -found you may need to add type stubs for new modules to the ``typeshed/`` -directory. - -:: - - mkdir out - stubgen --py2 module_name - mv out/module_name/* typeshed/2.7/ - make mypy - -Note: the module name is not always the name of the PyPI package -(``CacheControl`` vs ``cachecontrol``). - -Stubs are just that, you will still need to annotate whichever functions you -call. - -Oftentimes it is simpler to comment out imports in the ``.pyi`` stubs that are -not needed yet. The goal is represent the public API, or at least the part we -use. diff --git a/salad/release-test.sh b/salad/release-test.sh deleted file mode 100755 index c7705718..00000000 --- a/salad/release-test.sh +++ /dev/null @@ -1,108 +0,0 @@ -#!/bin/bash - -set -e -set -x - -package=schema-salad -module=schema_salad -slug=${TRAVIS_PULL_REQUEST_SLUG:=common-workflow-language/schema_salad} -repo=https://github.com/${slug}.git -run_tests="bin/py.test --pyarg ${module}" -pipver=8.0.1 # minimum required version of pip -setupver=20.10.1 # minimum required version of setuptools -PYVER=${PYVER:=2.7} - -rm -Rf "testenv${PYVER}_"? || /bin/true - -export HEAD=${TRAVIS_PULL_REQUEST_SHA:-$(git rev-parse HEAD)} - -if [ "${RELEASE_SKIP}" != "head" ] -then - virtualenv "testenv${PYVER}_1" -p "python${PYVER}" - # First we test the head - # shellcheck source=/dev/null - source "testenv${PYVER}_1/bin/activate" - rm "testenv${PYVER}_1/lib/python-wheels/setuptools"* \ - && pip install --force-reinstall -U pip==${pipver} \ - && pip install setuptools==${setupver} wheel - make install-dependencies - make test - pip uninstall -y ${package} || true; pip uninstall -y ${package} \ - || true; make install - mkdir "testenv${PYVER}_1/not-${module}" - # if there is a subdir named '${module}' py.test will execute tests - # there instead of the installed module's tests - - pushd "testenv${PYVER}_1/not-${module}" - # shellcheck disable=SC2086 - ../${run_tests}; popd -fi - - -virtualenv "testenv${PYVER}_2" -p "python${PYVER}" -virtualenv "testenv${PYVER}_3" -p "python${PYVER}" -virtualenv "testenv${PYVER}_4" -p "python${PYVER}" -virtualenv "testenv${PYVER}_5" -p "python${PYVER}" - - -# Secondly we test via pip - -pushd "testenv${PYVER}_2" -# shellcheck source=/dev/null -source bin/activate -rm lib/python-wheels/setuptools* \ - && pip install --force-reinstall -U pip==${pipver} \ - && pip install setuptools==${setupver} wheel -# The following can fail if you haven't pushed your commits to ${repo} -pip install -e "git+${repo}@${HEAD}#egg=${package}" -pushd src/${package} -make install-dependencies -make dist -make test -cp dist/${package}*tar.gz "../../../testenv${PYVER}_3/" -cp dist/${module}*whl "../../../testenv${PYVER}_4/" -pip uninstall -y ${package} || true; pip uninstall -y ${package} || true; make install -popd # ../.. no subdir named ${proj} here, safe for py.testing the installed module -# shellcheck disable=SC2086 -${run_tests} -popd - -# Is the source distribution in testenv${PYVER}_2 complete enough to build -# another functional distribution? - -pushd "testenv${PYVER}_3/" -# shellcheck source=/dev/null -source bin/activate -rm lib/python-wheels/setuptools* \ - && pip install --force-reinstall -U pip==${pipver} \ - && pip install setuptools==${setupver} wheel -pip install ${package}*tar.gz -pip install pytest -mkdir out -tar --extract --directory=out -z -f ${package}*.tar.gz -pushd out/${package}* -make dist -make test -pip uninstall -y ${package} || true; pip uninstall -y ${package} || true; make install -mkdir ../not-${module} -pushd ../not-${module} -# shellcheck disable=SC2086 -../../${run_tests}; popd -popd -popd - -# Is the wheel in testenv${PYVER}_2 installable and will it pass the tests - -pushd "testenv${PYVER}_4/" -# shellcheck source=/dev/null -source bin/activate -rm lib/python-wheels/setuptools* \ - && pip install --force-reinstall -U pip==${pipver} \ - && pip install setuptools==${setupver} wheel -pip install ${module}*.whl -pip install pytest -mkdir not-${module} -pushd not-${module} -# shellcheck disable=SC2086 -../${run_tests}; popd -popd diff --git a/salad/schema_salad/metaschema/sfdsl_res.yml b/salad/schema_salad/metaschema/sfdsl_res.yml index 871b8e07..f6194950 100644 --- a/salad/schema_salad/metaschema/sfdsl_res.yml +++ b/salad/schema_salad/metaschema/sfdsl_res.yml @@ -10,7 +10,7 @@ stripped off and the value of the field `required` is set to `False` * The remaining value is assigned to the field `pattern` - ### Secondary files DSL example + ### Type DSL example Given the following schema: diff --git a/salad/schema_salad/metaschema/sfdsl_res_src.yml b/salad/schema_salad/metaschema/sfdsl_res_src.yml index dc4c5f3e..c12869cb 100644 --- a/salad/schema_salad/metaschema/sfdsl_res_src.yml +++ b/salad/schema_salad/metaschema/sfdsl_res_src.yml @@ -5,8 +5,8 @@ }, { "secondaryFiles": { "pattern": ".bai?" -}, { +}}, { "secondaryFiles": { "pattern": ".bai?", "required": true -}] +}}] diff --git a/salad/schema_salad/tests/EDAM.owl b/salad/schema_salad/tests/EDAM.owl deleted file mode 100644 index 092fccda..00000000 --- a/salad/schema_salad/tests/EDAM.owl +++ /dev/null @@ -1,51294 +0,0 @@ - - - - - - - - - - - - - -]> - - - - - EDAM_topic http://edamontology.org/topic_ "EDAM topics" - EDAM_operation http://edamontology.org/operation_ "EDAM operations" - 09:07:2015 - 3625 - formats "EDAM data formats" - EDAM - An ontology of bioinformatics topics, operations, types of data including identifiers, and data formats - identifiers "EDAM types of identifiers" - data "EDAM types of data" - relations "EDAM relations" - edam "EDAM" - EDAM editors: Jon Ison, Matus Kalas, and Herve Menager. Contributors: Inge Jonassen, Dan Bolser, Hamish McWilliam, Mahmut Uludag, James Malone, Rodrigo Lopez, Steve Pettifer, and Peter Rice. Contibutions from these projects: EMBRACE, ELIXIR, and BioMedBridges (EU); EMBOSS (BBSRC, UK); eSysbio, FUGE Bioinformatics Platform, and ELIXIR.NO/Norwegian Bioinformatics Platform (Research Council of Norway). See http://edamontology.org for documentation and licence. - operations "EDAM operations" - EDAM http://edamontology.org/ "EDAM relations and concept properties" - application/rdf+xml - EDAM_data http://edamontology.org/data_ "EDAM types of data" - concept_properties "EDAM concept properties" - Jon Ison - Matúš Kalaš - Jon Ison, Matus Kalas, Hervé Ménager - EDAM_format http://edamontology.org/format_ "EDAM data formats" - topics "EDAM topics" - 1.11 - Hervé Ménager - EDAM is an ontology of well established, familiar concepts that are prevalent within bioinformatics, including types of data and data identifiers, data formats, operations and topics. EDAM is a simple ontology - essentially a set of terms with synonyms and definitions - organised into an intuitive hierarchy for convenient use by curators, software developers and end-users. EDAM is suitable for large-scale semantic annotations and categorization of diverse bioinformatics resources. EDAM is also suitable for diverse application including for example within workbenches and workflow-management systems, software distributions, and resource registries. - - - - - - - - - - - - - - - Created in - Version in which a concept was created. - true - concept_properties - - - - - - - - Documentation - Specification - 'Documentation' trailing modifier (qualifier, 'documentation') of 'xref' links of 'Format' concepts. When 'true', the link is pointing to a page with explanation, description, documentation, or specification of the given data format. - true - concept_properties - - - - - - - - Example - 'Example' concept property ('example' metadat tag) lists examples of valid values of types of identifiers (accessions). Applicable to some other types of data, too. - true - concept_properties - - - - - - - - - - - - - - Obsolete since - true - concept_properties - Version in which a concept was made obsolete. - - - - - - - - Regular expression - 'Regular expression' concept property ('regex' metadata tag) specifies the allowed values of types of identifiers (accessions). Applicable to some other types of data, too. - concept_properties - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - has format - "http://purl.obolibrary.org/obo/OBI_0000298" - Subject A can be any concept or entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated) that is (or is in a role of) 'Data', or an input, output, input or output argument of an 'Operation'. Object B can either be a concept that is a 'Format', or in unexpected cases an entity outside of an ontology that is a 'Format' or is in the role of a 'Format'. In EDAM, 'has_format' is not explicitly defined between EDAM concepts, only the inverse 'is_format_of'. - false - OBO_REL:is_a - relations - http://www.loa-cnr.it/ontologies/DOLCE-Lite.owl#has-quality" - false - false - edam - 'A has_format B' defines for the subject A, that it has the object B as its data format. - false - - - - - - - - - - has function - http://wsio.org/has_function - false - OBO_REL:is_a - OBO_REL:bearer_of - edam - Subject A can be any concept or entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated). Object B can either be a concept that is (or is in a role of) a function, or an entity outside of an ontology that is (or is in a role of) a function specification. In the scope of EDAM, 'has_function' serves only for relating annotated entities outside of EDAM with 'Operation' concepts. - false - http://www.loa-cnr.it/ontologies/DOLCE-Lite.owl#has-quality" - true - 'A has_function B' defines for the subject A, that it has the object B as its function. - "http://purl.obolibrary.org/obo/OBI_0000306" - relations - false - - - - true - In very unusual cases. - - - - - Is defined anywhere? Not in the 'unknown' version of RO. 'OBO_REL:bearer_of' is narrower in the sense that it only relates ontological categories (concepts) that are an 'independent_continuant' (snap:IndependentContinuant) with ontological categories that are a 'specifically_dependent_continuant' (snap:SpecificallyDependentContinuant), and broader in the sense that it relates with any borne objects not just functions of the subject. - OBO_REL:bearer_of - - - - - - - - - - has identifier - false - false - relations - OBO_REL:is_a - edam - 'A has_identifier B' defines for the subject A, that it has the object B as its identifier. - Subject A can be any concept or entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated). Object B can either be a concept that is an 'Identifier', or an entity outside of an ontology that is an 'Identifier' or is in the role of an 'Identifier'. In EDAM, 'has_identifier' is not explicitly defined between EDAM concepts, only the inverse 'is_identifier_of'. - false - false - - - - - - - - - - has input - OBO_REL:has_participant - "http://purl.obolibrary.org/obo/OBI_0000293" - false - http://wsio.org/has_input - Subject A can either be concept that is or has an 'Operation' function, or an entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated) that has an 'Operation' function or is an 'Operation'. Object B can be any concept or entity. In EDAM, only 'has_input' is explicitly defined between EDAM concepts ('Operation' 'has_input' 'Data'). The inverse, 'is_input_of', is not explicitly defined. - relations - OBO_REL:is_a - false - 'A has_input B' defines for the subject A, that it has the object B as a necessary or actual input or input argument. - false - true - edam - - - - - OBO_REL:has_participant - 'OBO_REL:has_participant' is narrower in the sense that it only relates ontological categories (concepts) that are a 'process' (span:Process) with ontological categories that are a 'continuant' (snap:Continuant), and broader in the sense that it relates with any participating objects not just inputs or input arguments of the subject. - - - - - true - In very unusual cases. - - - - - - - - - - has output - http://wsio.org/has_output - Subject A can either be concept that is or has an 'Operation' function, or an entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated) that has an 'Operation' function or is an 'Operation'. Object B can be any concept or entity. In EDAM, only 'has_output' is explicitly defined between EDAM concepts ('Operation' 'has_output' 'Data'). The inverse, 'is_output_of', is not explicitly defined. - edam - "http://purl.obolibrary.org/obo/OBI_0000299" - OBO_REL:is_a - relations - OBO_REL:has_participant - true - 'A has_output B' defines for the subject A, that it has the object B as a necessary or actual output or output argument. - false - false - false - - - - - 'OBO_REL:has_participant' is narrower in the sense that it only relates ontological categories (concepts) that are a 'process' (span:Process) with ontological categories that are a 'continuant' (snap:Continuant), and broader in the sense that it relates with any participating objects not just outputs or output arguments of the subject. It is also not clear whether an output (result) actually participates in the process that generates it. - OBO_REL:has_participant - - - - - In very unusual cases. - true - - - - - - - - - - has topic - relations - true - Subject A can be any concept or entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated). Object B can either be a concept that is a 'Topic', or in unexpected cases an entity outside of an ontology that is a 'Topic' or is in the role of a 'Topic'. In EDAM, only 'has_topic' is explicitly defined between EDAM concepts ('Operation' or 'Data' 'has_topic' 'Topic'). The inverse, 'is_topic_of', is not explicitly defined. - false - 'A has_topic B' defines for the subject A, that it has the object B as its topic (A is in the scope of a topic B). - edam - OBO_REL:is_a - http://annotation-ontology.googlecode.com/svn/trunk/annotation-core.owl#hasTopic - false - "http://purl.obolibrary.org/obo/IAO_0000136" - false - http://www.loa-cnr.it/ontologies/DOLCE-Lite.owl#has-quality - "http://purl.obolibrary.org/obo/OBI_0000298" - - - - - - - - - - - - In very unusual cases. - true - - - - - - - - - - is format of - false - OBO_REL:is_a - false - false - false - 'A is_format_of B' defines for the subject A, that it is a data format of the object B. - edam - relations - Subject A can either be a concept that is a 'Format', or in unexpected cases an entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated) that is a 'Format' or is in the role of a 'Format'. Object B can be any concept or entity outside of an ontology that is (or is in a role of) 'Data', or an input, output, input or output argument of an 'Operation'. In EDAM, only 'is_format_of' is explicitly defined between EDAM concepts ('Format' 'is_format_of' 'Data'). The inverse, 'has_format', is not explicitly defined. - OBO_REL:quality_of - http://www.loa-cnr.it/ontologies/DOLCE-Lite.owl#inherent-in - - - - - - OBO_REL:quality_of - Is defined anywhere? Not in the 'unknown' version of RO. 'OBO_REL:quality_of' might be seen narrower in the sense that it only relates subjects that are a 'quality' (snap:Quality) with objects that are an 'independent_continuant' (snap:IndependentContinuant), and is broader in the sense that it relates any qualities of the object. - - - - - - - - - - is function of - Subject A can either be concept that is (or is in a role of) a function, or an entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated) that is (or is in a role of) a function specification. Object B can be any concept or entity. Within EDAM itself, 'is_function_of' is not used. - OBO_REL:inheres_in - true - OBO_REL:is_a - false - 'A is_function_of B' defines for the subject A, that it is a function of the object B. - OBO_REL:function_of - edam - http://wsio.org/is_function_of - relations - http://www.loa-cnr.it/ontologies/DOLCE-Lite.owl#inherent-in - false - false - - - - - OBO_REL:inheres_in - Is defined anywhere? Not in the 'unknown' version of RO. 'OBO_REL:inheres_in' is narrower in the sense that it only relates ontological categories (concepts) that are a 'specifically_dependent_continuant' (snap:SpecificallyDependentContinuant) with ontological categories that are an 'independent_continuant' (snap:IndependentContinuant), and broader in the sense that it relates any borne subjects not just functions. - - - - - true - In very unusual cases. - - - - - OBO_REL:function_of - Is defined anywhere? Not in the 'unknown' version of RO. 'OBO_REL:function_of' only relates subjects that are a 'function' (snap:Function) with objects that are an 'independent_continuant' (snap:IndependentContinuant), so for example no processes. It does not define explicitly that the subject is a function of the object. - - - - - - - - - - is identifier of - false - false - edam - false - relations - Subject A can either be a concept that is an 'Identifier', or an entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated) that is an 'Identifier' or is in the role of an 'Identifier'. Object B can be any concept or entity outside of an ontology. In EDAM, only 'is_identifier_of' is explicitly defined between EDAM concepts (only 'Identifier' 'is_identifier_of' 'Data'). The inverse, 'has_identifier', is not explicitly defined. - 'A is_identifier_of B' defines for the subject A, that it is an identifier of the object B. - OBO_REL:is_a - false - - - - - - - - - - - is input of - false - http://wsio.org/is_input_of - relations - true - false - OBO_REL:participates_in - OBO_REL:is_a - "http://purl.obolibrary.org/obo/OBI_0000295" - edam - Subject A can be any concept or entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated). Object B can either be a concept that is or has an 'Operation' function, or an entity outside of an ontology that has an 'Operation' function or is an 'Operation'. In EDAM, 'is_input_of' is not explicitly defined between EDAM concepts, only the inverse 'has_input'. - false - 'A is_input_of B' defines for the subject A, that it as a necessary or actual input or input argument of the object B. - - - - - - 'OBO_REL:participates_in' is narrower in the sense that it only relates ontological categories (concepts) that are a 'continuant' (snap:Continuant) with ontological categories that are a 'process' (span:Process), and broader in the sense that it relates any participating subjects not just inputs or input arguments. - OBO_REL:participates_in - - - - - In very unusual cases. - true - - - - - - - - - - is output of - OBO_REL:is_a - false - false - Subject A can be any concept or entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated). Object B can either be a concept that is or has an 'Operation' function, or an entity outside of an ontology that has an 'Operation' function or is an 'Operation'. In EDAM, 'is_output_of' is not explicitly defined between EDAM concepts, only the inverse 'has_output'. - edam - false - 'A is_output_of B' defines for the subject A, that it as a necessary or actual output or output argument of the object B. - OBO_REL:participates_in - http://wsio.org/is_output_of - true - relations - "http://purl.obolibrary.org/obo/OBI_0000312" - - - - - - In very unusual cases. - true - - - - - OBO_REL:participates_in - 'OBO_REL:participates_in' is narrower in the sense that it only relates ontological categories (concepts) that are a 'continuant' (snap:Continuant) with ontological categories that are a 'process' (span:Process), and broader in the sense that it relates any participating subjects not just outputs or output arguments. It is also not clear whether an output (result) actually participates in the process that generates it. - - - - - - - - - - is topic of - 'A is_topic_of B' defines for the subject A, that it is a topic of the object B (a topic A is the scope of B). - relations - OBO_REL:quality_of - false - true - false - Subject A can either be a concept that is a 'Topic', or in unexpected cases an entity outside of an ontology (or an ontology concept in a role of an entity being semantically annotated) that is a 'Topic' or is in the role of a 'Topic'. Object B can be any concept or entity outside of an ontology. In EDAM, 'is_topic_of' is not explicitly defined between EDAM concepts, only the inverse 'has_topic'. - http://www.loa-cnr.it/ontologies/DOLCE-Lite.owl#inherent-in - false - OBO_REL:is_a - edam - - - - - - - - - - - - - OBO_REL:quality_of - Is defined anywhere? Not in the 'unknown' version of RO. 'OBO_REL:quality_of' might be seen narrower in the sense that it only relates subjects that are a 'quality' (snap:Quality) with objects that are an 'independent_continuant' (snap:IndependentContinuant), and is broader in the sense that it relates any qualities of the object. - - - - - In very unusual cases. - true - - - - - - - - - - - - - - - - Resource type - - beta12orEarlier - beta12orEarlier - A type of computational resource used in bioinformatics. - true - - - - - - - - - Data - - - - - Information, represented in an information artefact (data record) that is 'understandable' by dedicated computational tools that can use the data as input or produce it as output. - http://www.onto-med.de/ontologies/gfo.owl#Perpetuant - http://semanticscience.org/resource/SIO_000088 - http://semanticscience.org/resource/SIO_000069 - "http://purl.obolibrary.org/obo/IAO_0000030" - "http://purl.obolibrary.org/obo/IAO_0000027" - Data set - Data record - beta12orEarlier - http://wsio.org/data_002 - http://purl.org/biotop/biotop.owl#DigitalEntity - http://www.ifomis.org/bfo/1.1/snap#Continuant - Datum - - - - - Data set - EDAM does not distinguish the multiplicity of data, such as one data item (datum) versus a collection of data (data set). - - - - - Datum - EDAM does not distinguish the multiplicity of data, such as one data item (datum) versus a collection of data (data set). - - - - - Data record - EDAM does not distinguish a data record (a tool-understandable information artefact) from data or datum (its content, the tool-understandable encoding of an information). - - - - - - - - - - Tool - - beta12orEarlier - A bioinformatics package or tool, e.g. a standalone application or web service. - beta12orEarlier - true - - - - - - - - - Database - - A digital data archive typically based around a relational model but sometimes using an object-oriented, tree or graph-based model. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - Ontology - - - - - - - - beta12orEarlier - Ontologies - An ontology of biological or bioinformatics concepts and relations, a controlled vocabulary, structured glossary etc. - - - - - - - - - - Directory metadata - - 1.5 - A directory on disk from which files are read. - beta12orEarlier - true - - - - - - - - - - MeSH vocabulary - - beta12orEarlier - true - Controlled vocabulary from National Library of Medicine. The MeSH thesaurus is used to index articles in biomedical journals for the Medline/PubMED databases. - beta12orEarlier - - - - - - - - - - HGNC vocabulary - - beta12orEarlier - beta12orEarlier - Controlled vocabulary for gene names (symbols) from HUGO Gene Nomenclature Committee. - true - - - - - - - - - - UMLS vocabulary - - Compendium of controlled vocabularies for the biomedical domain (Unified Medical Language System). - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Identifier - - - - - - - - - - http://semanticscience.org/resource/SIO_000115 - beta12orEarlier - ID - "http://purl.org/dc/elements/1.1/identifier" - http://wsio.org/data_005 - A text token, number or something else which identifies an entity, but which may not be persistent (stable) or unique (the same identifier may identify multiple things). - - - - - - - Almost exact but limited to identifying resources. - - - - - - - - - - - Database entry - - beta12orEarlier - beta12orEarlier - An entry (retrievable via URL) from a biological database. - true - - - - - - - - - - Molecular mass - - Mass of a molecule. - beta12orEarlier - - - - - - - - - - Molecular charge - - Net charge of a molecule. - beta12orEarlier - PDBML:pdbx_formal_charge - - - - - - - - - - Chemical formula - - Chemical structure specification - A specification of a chemical structure. - beta12orEarlier - - - - - - - - - - QSAR descriptor - - A QSAR quantitative descriptor (name-value pair) of chemical structure. - QSAR descriptors have numeric values that quantify chemical information encoded in a symbolic representation of a molecule. They are used in quantitative structure activity relationship (QSAR) applications. Many subtypes of individual descriptors (not included in EDAM) cover various types of protein properties. - beta12orEarlier - - - - - - - - - - Raw sequence - - beta12orEarlier - A raw molecular sequence (string of characters) which might include ambiguity, unknown positions and non-sequence characters. - Non-sequence characters may be used for example for gaps and translation stop. - - - - - - - - - - Sequence record - - http://purl.bioontology.org/ontology/MSH/D058977 - beta12orEarlier - A molecular sequence and associated metadata. - SO:2000061 - - - - - - - - - - Sequence set - - A collection of multiple molecular sequences and associated metadata that do not (typically) correspond to molecular sequence database records or entries and which (typically) are derived from some analytical method. - This concept may be used for arbitrary sequence sets and associated data arising from processing. - beta12orEarlier - SO:0001260 - - - - - - - - - - Sequence mask character - - true - beta12orEarlier - 1.5 - A character used to replace (mask) other characters in a molecular sequence. - - - - - - - - - - Sequence mask type - - A label (text token) describing the type of sequence masking to perform. - Sequence masking is where specific characters or positions in a molecular sequence are masked (replaced) with an another (mask character). The mask type indicates what is masked, for example regions that are not of interest or which are information-poor including acidic protein regions, basic protein regions, proline-rich regions, low compositional complexity regions, short-periodicity internal repeats, simple repeats and low complexity regions. Masked sequences are used in database search to eliminate statistically significant but biologically uninteresting hits. - beta12orEarlier - 1.5 - true - - - - - - - - - - DNA sense specification - - DNA strand specification - beta12orEarlier - Strand - The strand of a DNA sequence (forward or reverse). - The forward or 'top' strand might specify a sequence is to be used as given, the reverse or 'bottom' strand specifying the reverse complement of the sequence is to be used. - - - - - - - - - - Sequence length specification - - true - A specification of sequence length(s). - beta12orEarlier - 1.5 - - - - - - - - - - Sequence metadata - - beta12orEarlier - Basic or general information concerning molecular sequences. - This is used for such things as a report including the sequence identifier, type and length. - 1.5 - true - - - - - - - - - - Sequence feature source - - This might be the name and version of a software tool, the name of a database, or 'curated' to indicate a manual annotation (made by a human). - How the annotation of a sequence feature (for example in EMBL or Swiss-Prot) was derived. - beta12orEarlier - - - - - - - - - - Sequence search results - - beta12orEarlier - Database hits (sequence) - - Sequence database hits - Sequence search hits - The score list includes the alignment score, percentage of the query sequence matched, length of the database sequence entry in this alignment, identifier of the database sequence entry, excerpt of the database sequence entry description etc. - A report of sequence hits and associated data from searching a database of sequences (for example a BLAST search). This will typically include a list of scores (often with statistical evaluation) and a set of alignments for the hits. - Sequence database search results - - - - - - - - - - Sequence signature matches - - Sequence motif matches - Protein secondary database search results - beta12orEarlier - Report on the location of matches in one or more sequences to profiles, motifs (conserved or functional patterns) or other signatures. - Sequence profile matches - This ncluding reports of hits from a search of a protein secondary or domain database. - Search results (protein secondary database) - - - - - - - - - - Sequence signature model - - Data files used by motif or profile methods. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Sequence signature data - - - - - - - - beta12orEarlier - This can include metadata about a motif or sequence profile such as its name, length, technical details about the profile construction, and so on. - Data concering concerning specific or conserved pattern in molecular sequences and the classifiers used for their identification, including sequence motifs, profiles or other diagnostic element. - - - - - - - - - - Sequence alignment (words) - - 1.5 - beta12orEarlier - true - Sequence word alignment - Alignment of exact matches between subsequences (words) within two or more molecular sequences. - - - - - - - - - - Dotplot - - A dotplot of sequence similarities identified from word-matching or character comparison. - beta12orEarlier - - - - - - - - - - Sequence alignment - - - - - - - - http://en.wikipedia.org/wiki/Sequence_alignment - http://purl.bioontology.org/ontology/MSH/D016415 - http://semanticscience.org/resource/SIO_010066 - beta12orEarlier - Alignment of multiple molecular sequences. - - - - - - - - - - Sequence alignment parameter - - Some simple value controlling a sequence alignment (or similar 'match') operation. - true - 1.5 - beta12orEarlier - - - - - - - - - - Sequence similarity score - - A value representing molecular sequence similarity. - beta12orEarlier - - - - - - - - - - Sequence alignment metadata - - Report of general information on a sequence alignment, typically include a description, sequence identifiers and alignment score. - beta12orEarlier - true - 1.5 - - - - - - - - - - Sequence alignment report - - Use this for any computer-generated reports on sequence alignments, and for general information (metadata) on a sequence alignment, such as a description, sequence identifiers and alignment score. - An informative report of molecular sequence alignment-derived data or metadata. - beta12orEarlier - - - - - - - - - - Sequence profile alignment - - beta12orEarlier - A profile-profile alignment (each profile typically representing a sequence alignment). - - - - - - - - - - Sequence-profile alignment - - beta12orEarlier - Alignment of one or more molecular sequence(s) to one or more sequence profile(s) (each profile typically representing a sequence alignment). - Data associated with the alignment might also be included, e.g. ranked list of best-scoring sequences and a graphical representation of scores. - - - - - - - - - - Sequence distance matrix - - beta12orEarlier - Moby:phylogenetic_distance_matrix - A matrix of estimated evolutionary distance between molecular sequences, such as is suitable for phylogenetic tree calculation. - Phylogenetic distance matrix - Methods might perform character compatibility analysis or identify patterns of similarity in an alignment or data matrix. - - - - - - - - - - Phylogenetic character data - - Basic character data from which a phylogenetic tree may be generated. - As defined, this concept would also include molecular sequences, microsatellites, polymorphisms (RAPDs, RFLPs, or AFLPs), restriction sites and fragments - http://www.evolutionaryontology.org/cdao.owl#Character - beta12orEarlier - - - - - - - - - - Phylogenetic tree - - - - - - - - Phylogeny - Moby:Tree - http://www.evolutionaryontology.org/cdao.owl#Tree - A phylogenetic tree is usually constructed from a set of sequences from which an alignment (or data matrix) is calculated. See also 'Phylogenetic tree image'. - http://purl.bioontology.org/ontology/MSH/D010802 - Moby:phylogenetic_tree - The raw data (not just an image) from which a phylogenetic tree is directly generated or plotted, such as topology, lengths (in time or in expected amounts of variance) and a confidence interval for each length. - beta12orEarlier - Moby:myTree - - - - - - - - - - Comparison matrix - - beta12orEarlier - The comparison matrix might include matrix name, optional comment, height and width (or size) of matrix, an index row/column (of characters) and data rows/columns (of integers or floats). - Matrix of integer or floating point numbers for amino acid or nucleotide sequence comparison. - Substitution matrix - - - - - - - - - - Protein topology - - beta12orEarlier - beta12orEarlier - Predicted or actual protein topology represented as a string of protein secondary structure elements. - true - The location and size of the secondary structure elements and intervening loop regions is usually indicated. - - - - - - - - - - Protein features report (secondary structure) - - beta12orEarlier - 1.8 - true - Secondary structure (predicted or real) of a protein. - - - - - - - - - - Protein features report (super-secondary) - - 1.8 - Super-secondary structures include leucine zippers, coiled coils, Helix-Turn-Helix etc. - true - beta12orEarlier - Super-secondary structure of protein sequence(s). - - - - - - - - - - Secondary structure alignment (protein) - - - Alignment of the (1D representations of) secondary structure of two or more proteins. - beta12orEarlier - - - - - - - - - - Secondary structure alignment metadata (protein) - - An informative report on protein secondary structure alignment-derived data or metadata. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - RNA secondary structure - - - - - - - - An informative report of secondary structure (predicted or real) of an RNA molecule. - This includes thermodynamically stable or evolutionarily conserved structures such as knots, pseudoknots etc. - Moby:RNAStructML - Secondary structure (RNA) - beta12orEarlier - - - - - - - - - - Secondary structure alignment (RNA) - - Moby:RNAStructAlignmentML - Alignment of the (1D representations of) secondary structure of two or more RNA molecules. - beta12orEarlier - - - - - - - - - - Secondary structure alignment metadata (RNA) - - true - beta12orEarlier - An informative report of RNA secondary structure alignment-derived data or metadata. - beta12orEarlier - - - - - - - - - - Structure - - - - - - - - beta12orEarlier - Coordinate model - Structure data - The coordinate data may be predicted or real. - http://purl.bioontology.org/ontology/MSH/D015394 - 3D coordinate and associated data for a macromolecular tertiary (3D) structure or part of a structure. - - - - - - - - - - Tertiary structure record - - true - beta12orEarlier - beta12orEarlier - An entry from a molecular tertiary (3D) structure database. - - - - - - - - - - Structure database search results - - 1.8 - Results (hits) from searching a database of tertiary structure. - beta12orEarlier - true - - - - - - - - - - Structure alignment - - - - - - - - Alignment (superimposition) of molecular tertiary (3D) structures. - A tertiary structure alignment will include the untransformed coordinates of one macromolecule, followed by the second (or subsequent) structure(s) with all the coordinates transformed (by rotation / translation) to give a superposition. - beta12orEarlier - - - - - - - - - - Structure alignment report - - beta12orEarlier - This is a broad data type and is used a placeholder for other, more specific types. - An informative report of molecular tertiary structure alignment-derived data. - - - - - - - - - - Structure similarity score - - beta12orEarlier - A value representing molecular structure similarity, measured from structure alignment or some other type of structure comparison. - - - - - - - - - - Structural profile - - - - - - - - beta12orEarlier - 3D profile - Some type of structural (3D) profile or template (representing a structure or structure alignment). - Structural (3D) profile - - - - - - - - - - Structural (3D) profile alignment - - beta12orEarlier - Structural profile alignment - A 3D profile-3D profile alignment (each profile representing structures or a structure alignment). - - - - - - - - - - Sequence-3D profile alignment - - Sequence-structural profile alignment - 1.5 - An alignment of a sequence to a 3D profile (representing structures or a structure alignment). - beta12orEarlier - true - - - - - - - - - - Protein sequence-structure scoring matrix - - beta12orEarlier - Matrix of values used for scoring sequence-structure compatibility. - - - - - - - - - - Sequence-structure alignment - - beta12orEarlier - An alignment of molecular sequence to structure (from threading sequence(s) through 3D structure or representation of structure(s)). - - - - - - - - - - Amino acid annotation - - An informative report about a specific amino acid. - 1.4 - true - beta12orEarlier - - - - - - - - - - Peptide annotation - - 1.4 - true - An informative report about a specific peptide. - beta12orEarlier - - - - - - - - - - Protein report - - Gene product annotation - beta12orEarlier - An informative human-readable report about one or more specific protein molecules or protein structural domains, derived from analysis of primary (sequence or structural) data. - - - - - - - - - - Protein property - - Protein physicochemical property - A report of primarily non-positional data describing intrinsic physical, chemical or other properties of a protein molecule or model. - beta12orEarlier - Protein sequence statistics - Protein properties - The report may be based on analysis of nucleic acid sequence or structural data. This is a broad data type and is used a placeholder for other, more specific types. - - - - - - - - - - Protein structural motifs and surfaces - - true - 1.8 - 3D structural motifs in a protein. - beta12orEarlier - Protein 3D motifs - - - - - - - - - Protein domain classification - - true - Data concerning the classification of the sequences and/or structures of protein structural domain(s). - 1.5 - beta12orEarlier - - - - - - - - - - Protein features report (domains) - - true - structural domains or 3D folds in a protein or polypeptide chain. - 1.8 - beta12orEarlier - - - - - - - - - - Protein architecture report - - 1.4 - An informative report on architecture (spatial arrangement of secondary structure) of a protein structure. - Protein property (architecture) - Protein structure report (architecture) - beta12orEarlier - true - - - - - - - - - - Protein folding report - - beta12orEarlier - A report on an analysis or model of protein folding properties, folding pathways, residues or sites that are key to protein folding, nucleation or stabilization centers etc. - true - 1.8 - - - - - - - - - - Protein features (mutation) - - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - Data on the effect of (typically point) mutation on protein folding, stability, structure and function. - true - beta12orEarlier - Protein property (mutation) - Protein structure report (mutation) - beta13 - Protein report (mutation) - - - - - - - - - - Protein interaction raw data - - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - Protein-protein interaction data from for example yeast two-hybrid analysis, protein microarrays, immunoaffinity chromatography followed by mass spectrometry, phage display etc. - beta12orEarlier - - - - - - - - - - Protein interaction report - - - - - - - - beta12orEarlier - Protein report (interaction) - Protein interaction record - An informative report on the interactions (predicted or known) of a protein, protein domain or part of a protein with some other molecule(s), which might be another protein, nucleic acid or some other ligand. - - - - - - - - - - Protein family report - - - - - - - - beta12orEarlier - An informative report on a specific protein family or other classification or group of protein sequences or structures. - Protein family annotation - Protein classification data - - - - - - - - - - Vmax - - beta12orEarlier - The maximum initial velocity or rate of a reaction. It is the limiting velocity as substrate concentrations get very large. - - - - - - - - - - Km - - Km is the concentration (usually in Molar units) of substrate that leads to half-maximal velocity of an enzyme-catalysed reaction. - beta12orEarlier - - - - - - - - - - Nucleotide base annotation - - beta12orEarlier - true - An informative report about a specific nucleotide base. - 1.4 - - - - - - - - - - Nucleic acid property - - A report of primarily non-positional data describing intrinsic physical, chemical or other properties of a nucleic acid molecule. - The report may be based on analysis of nucleic acid sequence or structural data. This is a broad data type and is used a placeholder for other, more specific types. - Nucleic acid physicochemical property - beta12orEarlier - - - - - - - - - - Codon usage data - - - - - - - - beta12orEarlier - Data derived from analysis of codon usage (typically a codon usage table) of DNA sequences. - This is a broad data type and is used a placeholder for other, more specific types. - - - - - - - - - - Gene report - - Gene structure (repot) - A report on predicted or actual gene structure, regions which make an RNA product and features such as promoters, coding regions, splice sites etc. - Gene and transcript structure (report) - Gene features report - Nucleic acid features (gene and transcript structure) - Moby:gene - This includes any report on a particular locus or gene. This might include the gene name, description, summary and so on. It can include details about the function of a gene, such as its encoded protein or a functional classification of the gene sequence along according to the encoded protein(s). - Gene annotation - beta12orEarlier - Moby_namespace:Human_Readable_Description - Gene function (report) - Moby:GeneInfo - - - - - - - - - - Gene classification - - beta12orEarlier - true - A report on the classification of nucleic acid / gene sequences according to the functional classification of their gene products. - beta12orEarlier - - - - - - - - - - DNA variation - - stable, naturally occuring mutations in a nucleotide sequence including alleles, naturally occurring mutations such as single base nucleotide substitutions, deletions and insertions, RFLPs and other polymorphisms. - true - 1.8 - beta12orEarlier - - - - - - - - - - Chromosome report - - - - - - - - beta12orEarlier - An informative report on a specific chromosome. - This includes basic information. e.g. chromosome number, length, karyotype features, chromosome sequence etc. - - - - - - - - - - Genotype/phenotype report - - An informative report on the set of genes (or allelic forms) present in an individual, organism or cell and associated with a specific physical characteristic, or a report concerning an organisms traits and phenotypes. - Genotype/phenotype annotation - beta12orEarlier - - - - - - - - - - Nucleic acid features report (primers) - - true - 1.8 - beta12orEarlier - PCR primers and hybridization oligos in a nucleic acid sequence. - - - - - - - - - - PCR experiment report - - true - beta12orEarlier - PCR experiments, e.g. quantitative real-time PCR. - 1.8 - - - - - - - - - - Sequence trace - - - Fluorescence trace data generated by an automated DNA sequencer, which can be interprted as a molecular sequence (reads), given associated sequencing metadata such as base-call quality scores. - This is the raw data produced by a DNA sequencing machine. - beta12orEarlier - - - - - - - - - - Sequence assembly - - beta12orEarlier - An assembly of fragments of a (typically genomic) DNA sequence. - http://en.wikipedia.org/wiki/Sequence_assembly - SO:0001248 - Typically, an assembly is a collection of contigs (for example ESTs and genomic DNA fragments) that are ordered, aligned and merged. Annotation of the assembled sequence might be included. - SO:0000353 - - - - - SO:0001248 - Perhaps surprisingly, the definition of 'SO:assembly' is narrower than the 'SO:sequence_assembly'. - - - - - - - - - - Radiation Hybrid (RH) scores - - beta12orEarlier - Radiation Hybrid (RH) scores are used in Radiation Hybrid mapping. - Radiation hybrid scores (RH) scores for one or more markers. - - - - - - - - - - Genetic linkage report - - beta12orEarlier - Gene annotation (linkage) - Linkage disequilibrium (report) - An informative report on the linkage of alleles. - This includes linkage disequilibrium; the non-random association of alleles or polymorphisms at two or more loci (not necessarily on the same chromosome). - - - - - - - - - - Gene expression profile - - Data quantifying the level of expression of (typically) multiple genes, derived for example from microarray experiments. - beta12orEarlier - Gene expression pattern - - - - - - - - - - Microarray experiment report - - true - microarray experiments including conditions, protocol, sample:data relationships etc. - 1.8 - beta12orEarlier - - - - - - - - - - Oligonucleotide probe data - - beta12orEarlier - beta13 - true - Data on oligonucleotide probes (typically for use with DNA microarrays). - - - - - - - - - - SAGE experimental data - - beta12orEarlier - true - Output from a serial analysis of gene expression (SAGE) experiment. - Serial analysis of gene expression (SAGE) experimental data - beta12orEarlier - - - - - - - - - - MPSS experimental data - - beta12orEarlier - Massively parallel signature sequencing (MPSS) data. - beta12orEarlier - Massively parallel signature sequencing (MPSS) experimental data - true - - - - - - - - - - SBS experimental data - - beta12orEarlier - beta12orEarlier - true - Sequencing by synthesis (SBS) experimental data - Sequencing by synthesis (SBS) data. - - - - - - - - - - Sequence tag profile (with gene assignment) - - beta12orEarlier - Tag to gene assignments (tag mapping) of SAGE, MPSS and SBS data. Typically this is the sequencing-based expression profile annotated with gene identifiers. - - - - - - - - - - Protein X-ray crystallographic data - - X-ray crystallography data. - beta12orEarlier - - - - - - - - - - Protein NMR data - - Protein nuclear magnetic resonance (NMR) raw data. - beta12orEarlier - - - - - - - - - - Protein circular dichroism (CD) spectroscopic data - - beta12orEarlier - Protein secondary structure from protein coordinate or circular dichroism (CD) spectroscopic data. - - - - - - - - - - Electron microscopy volume map - - - - - - - - beta12orEarlier - Volume map data from electron microscopy. - EM volume map - - - - - - - - - - Electron microscopy model - - - - - - - - beta12orEarlier - Annotation on a structural 3D model (volume map) from electron microscopy. - This might include the location in the model of the known features of a particular macromolecule. - - - - - - - - - - 2D PAGE image - - - - - - - - beta12orEarlier - Two-dimensional gel electrophoresis image - - - - - - - - - - Mass spectrometry spectra - - - - - - - - beta12orEarlier - Spectra from mass spectrometry. - - - - - - - - - - Peptide mass fingerprint - - - - - - - - - Peak list - Protein fingerprint - A set of peptide masses (peptide mass fingerprint) from mass spectrometry. - beta12orEarlier - - - - - - - - - - Peptide identification - - - - - - - - Protein or peptide identifications with evidence supporting the identifications, typically from comparing a peptide mass fingerprint (from mass spectrometry) to a sequence database. - beta12orEarlier - - - - - - - - - - Pathway or network annotation - - beta12orEarlier - true - An informative report about a specific biological pathway or network, typically including a map (diagram) of the pathway. - beta12orEarlier - - - - - - - - - - Biological pathway map - - beta12orEarlier - true - A map (typically a diagram) of a biological pathway. - beta12orEarlier - - - - - - - - - - Data resource definition - - beta12orEarlier - true - 1.5 - A definition of a data resource serving one or more types of data, including metadata and links to the resource or data proper. - - - - - - - - - - Workflow metadata - - Basic information, annotation or documentation concerning a workflow (but not the workflow itself). - beta12orEarlier - - - - - - - - - - Mathematical model - - - - - - - - Biological model - beta12orEarlier - A biological model represented in mathematical terms. - - - - - - - - - - Statistical estimate score - - beta12orEarlier - A value representing estimated statistical significance of some observed data; typically sequence database hits. - - - - - - - - - - EMBOSS database resource definition - - beta12orEarlier - Resource definition for an EMBOSS database. - true - 1.5 - - - - - - - - - - Version information - - "http://purl.obolibrary.org/obo/IAO_0000129" - 1.5 - Development status / maturity may be part of the version information, for example in case of tools, standards, or some data records. - http://www.ebi.ac.uk/swo/maturity/SWO_9000061 - beta12orEarlier - Information on a version of software or data, for example name, version number and release date. - http://semanticscience.org/resource/SIO_000653 - true - http://usefulinc.com/ns/doap#Version - - - - - - - - - - Database cross-mapping - - beta12orEarlier - A mapping of the accession numbers (or other database identifier) of entries between (typically) two biological or biomedical databases. - The cross-mapping is typically a table where each row is an accession number and each column is a database being cross-referenced. The cells give the accession number or identifier of the corresponding entry in a database. If a cell in the table is not filled then no mapping could be found for the database. Additional information might be given on version, date etc. - - - - - - - - - - Data index - - - - - - - - An index of data of biological relevance. - beta12orEarlier - - - - - - - - - - Data index report - - - - - - - - A report of an analysis of an index of biological data. - Database index annotation - beta12orEarlier - - - - - - - - - - Database metadata - - Basic information on bioinformatics database(s) or other data sources such as name, type, description, URL etc. - beta12orEarlier - - - - - - - - - - Tool metadata - - beta12orEarlier - Basic information about one or more bioinformatics applications or packages, such as name, type, description, or other documentation. - - - - - - - - - - Job metadata - - beta12orEarlier - true - 1.5 - Moby:PDGJOB - Textual metadata on a submitted or completed job. - - - - - - - - - - User metadata - - beta12orEarlier - Textual metadata on a software author or end-user, for example a person or other software. - - - - - - - - - - Small molecule report - - - - - - - - Small molecule annotation - Small molecule report - Chemical structure report - An informative report on a specific chemical compound. - beta12orEarlier - Chemical compound annotation - - - - - - - - - - Cell line report - - Organism strain data - Cell line annotation - Report on a particular strain of organism cell line including plants, virus, fungi and bacteria. The data typically includes strain number, organism type, growth conditions, source and so on. - beta12orEarlier - - - - - - - - - - Scent annotation - - beta12orEarlier - An informative report about a specific scent. - 1.4 - true - - - - - - - - - - Ontology term - - Ontology class name - beta12orEarlier - A term (name) from an ontology. - Ontology terms - - - - - - - - - - Ontology concept data - - beta12orEarlier - Ontology class metadata - Ontology term metadata - Data concerning or derived from a concept from a biological ontology. - - - - - - - - - - Keyword - - Phrases - Keyword(s) or phrase(s) used (typically) for text-searching purposes. - Boolean operators (AND, OR and NOT) and wildcard characters may be allowed. - Moby:QueryString - beta12orEarlier - Moby:BooleanQueryString - Moby:Wildcard_Query - Moby:Global_Keyword - Terms - Text - - - - - - - - - - Citation - - Bibliographic data that uniquely identifies a scientific article, book or other published material. - A bibliographic reference might include information such as authors, title, journal name, date and (possibly) a link to the abstract or full-text of the article if available. - Moby:GCP_SimpleCitation - Reference - Bibliographic reference - Moby:Publication - beta12orEarlier - - - - - - - - - - Article - - - - - - - - A document of scientific text, typically a full text article from a scientific journal. - beta12orEarlier - - - - - - - - - - Text mining report - - An abstract of the results of text mining. - beta12orEarlier - Text mining output - A text mining abstract will typically include an annotated a list of words or sentences extracted from one or more scientific articles. - - - - - - - - - - Entity identifier - - beta12orEarlier - true - beta12orEarlier - An identifier of a biological entity or phenomenon. - - - - - - - - - - Data resource identifier - - true - An identifier of a data resource. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Identifier (typed) - - beta12orEarlier - This concept exists only to assist EDAM maintenance and navigation in graphical browsers. It does not add semantic information. This branch provides an alternative organisation of the concepts nested under 'Accession' and 'Name'. All concepts under here are already included under 'Accession' or 'Name'. - An identifier that identifies a particular type of data. - - - - - - - - - - - Tool identifier - - An identifier of a bioinformatics tool, e.g. an application or web service. - beta12orEarlier - - - - - - - - - - - Discrete entity identifier - - beta12orEarlier - true - beta12orEarlier - Name or other identifier of a discrete entity (any biological thing with a distinct, discrete physical existence). - - - - - - - - - - Entity feature identifier - - true - beta12orEarlier - Name or other identifier of an entity feature (a physical part or region of a discrete biological entity, or a feature that can be mapped to such a thing). - beta12orEarlier - - - - - - - - - - Entity collection identifier - - beta12orEarlier - true - beta12orEarlier - Name or other identifier of a collection of discrete biological entities. - - - - - - - - - - Phenomenon identifier - - beta12orEarlier - true - beta12orEarlier - Name or other identifier of a physical, observable biological occurrence or event. - - - - - - - - - - Molecule identifier - - Name or other identifier of a molecule. - beta12orEarlier - - - - - - - - - - - Atom ID - - Atom identifier - Identifier (e.g. character symbol) of a specific atom. - beta12orEarlier - - - - - - - - - - - Molecule name - - - Name of a specific molecule. - beta12orEarlier - - - - - - - - - - - Molecule type - - For example, 'Protein', 'DNA', 'RNA' etc. - true - 1.5 - beta12orEarlier - A label (text token) describing the type a molecule. - Protein|DNA|RNA - - - - - - - - - - Chemical identifier - - true - beta12orEarlier - beta12orEarlier - Unique identifier of a chemical compound. - - - - - - - - - - Chromosome name - - - - - - - - - beta12orEarlier - Name of a chromosome. - - - - - - - - - - - Peptide identifier - - Identifier of a peptide chain. - beta12orEarlier - - - - - - - - - - - Protein identifier - - - - - - - - beta12orEarlier - Identifier of a protein. - - - - - - - - - - - Compound name - - - Chemical name - Unique name of a chemical compound. - beta12orEarlier - - - - - - - - - - - Chemical registry number - - beta12orEarlier - Unique registry number of a chemical compound. - - - - - - - - - - - Ligand identifier - - true - beta12orEarlier - Code word for a ligand, for example from a PDB file. - beta12orEarlier - - - - - - - - - - Drug identifier - - - - - - - - beta12orEarlier - Identifier of a drug. - - - - - - - - - - - Amino acid identifier - - - - - - - - Identifier of an amino acid. - beta12orEarlier - Residue identifier - - - - - - - - - - - Nucleotide identifier - - beta12orEarlier - Name or other identifier of a nucleotide. - - - - - - - - - - - Monosaccharide identifier - - beta12orEarlier - Identifier of a monosaccharide. - - - - - - - - - - - Chemical name (ChEBI) - - ChEBI chemical name - Unique name from Chemical Entities of Biological Interest (ChEBI) of a chemical compound. - beta12orEarlier - This is the recommended chemical name for use for example in database annotation. - - - - - - - - - - - Chemical name (IUPAC) - - IUPAC recommended name of a chemical compound. - IUPAC chemical name - beta12orEarlier - - - - - - - - - - - Chemical name (INN) - - INN chemical name - beta12orEarlier - International Non-proprietary Name (INN or 'generic name') of a chemical compound, assigned by the World Health Organization (WHO). - - - - - - - - - - - Chemical name (brand) - - Brand name of a chemical compound. - Brand chemical name - beta12orEarlier - - - - - - - - - - - Chemical name (synonymous) - - beta12orEarlier - Synonymous chemical name - Synonymous name of a chemical compound. - - - - - - - - - - - Chemical registry number (CAS) - - CAS chemical registry number - CAS registry number of a chemical compound. - beta12orEarlier - - - - - - - - - - - Chemical registry number (Beilstein) - - Beilstein chemical registry number - beta12orEarlier - Beilstein registry number of a chemical compound. - - - - - - - - - - - Chemical registry number (Gmelin) - - Gmelin chemical registry number - beta12orEarlier - Gmelin registry number of a chemical compound. - - - - - - - - - - - HET group name - - 3-letter code word for a ligand (HET group) from a PDB file, for example ATP. - Short ligand name - Component identifier code - beta12orEarlier - - - - - - - - - - - Amino acid name - - String of one or more ASCII characters representing an amino acid. - beta12orEarlier - - - - - - - - - - - Nucleotide code - - - beta12orEarlier - String of one or more ASCII characters representing a nucleotide. - - - - - - - - - - - Polypeptide chain ID - - - - - - - - beta12orEarlier - WHATIF: chain - Chain identifier - Identifier of a polypeptide chain from a protein. - PDBML:pdbx_PDB_strand_id - Protein chain identifier - PDB strand id - PDB chain identifier - This is typically a character (for the chain) appended to a PDB identifier, e.g. 1cukA - Polypeptide chain identifier - - - - - - - - - - - Protein name - - - Name of a protein. - beta12orEarlier - - - - - - - - - - - Enzyme identifier - - beta12orEarlier - Name or other identifier of an enzyme or record from a database of enzymes. - - - - - - - - - - - EC number - - [0-9]+\.-\.-\.-|[0-9]+\.[0-9]+\.-\.-|[0-9]+\.[0-9]+\.[0-9]+\.-|[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ - EC code - Moby:EC_Number - An Enzyme Commission (EC) number of an enzyme. - EC - Moby:Annotated_EC_Number - beta12orEarlier - Enzyme Commission number - - - - - - - - - - - Enzyme name - - - Name of an enzyme. - beta12orEarlier - - - - - - - - - - - Restriction enzyme name - - Name of a restriction enzyme. - beta12orEarlier - - - - - - - - - - - Sequence position specification - - 1.5 - A specification (partial or complete) of one or more positions or regions of a molecular sequence or map. - beta12orEarlier - true - - - - - - - - - - Sequence feature ID - - - A unique identifier of molecular sequence feature, for example an ID of a feature that is unique within the scope of the GFF file. - beta12orEarlier - - - - - - - - - - - Sequence position - - WHATIF: number - WHATIF: PDBx_atom_site - beta12orEarlier - PDBML:_atom_site.id - SO:0000735 - A position of one or more points (base or residue) in a sequence, or part of such a specification. - - - - - - - - - - Sequence range - - beta12orEarlier - Specification of range(s) of sequence positions. - - - - - - - - - - Nucleic acid feature identifier - - beta12orEarlier - beta12orEarlier - Name or other identifier of an nucleic acid feature. - true - - - - - - - - - - Protein feature identifier - - Name or other identifier of a protein feature. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - Sequence feature key - - Sequence feature method - The type of a sequence feature, typically a term or accession from the Sequence Ontology, for example an EMBL or Swiss-Prot sequence feature key. - Sequence feature type - beta12orEarlier - A feature key indicates the biological nature of the feature or information about changes to or versions of the sequence. - - - - - - - - - - Sequence feature qualifier - - beta12orEarlier - Typically one of the EMBL or Swiss-Prot feature qualifiers. - Feature qualifiers hold information about a feature beyond that provided by the feature key and location. - - - - - - - - - - Sequence feature label - - Sequence feature name - Typically an EMBL or Swiss-Prot feature label. - A feature label identifies a feature of a sequence database entry. When used with the database name and the entry's primary accession number, it is a unique identifier of that feature. - beta12orEarlier - - - - - - - - - - EMBOSS Uniform Feature Object - - - beta12orEarlier - UFO - The name of a sequence feature-containing entity adhering to the standard feature naming scheme used by all EMBOSS applications. - - - - - - - - - - Codon name - - beta12orEarlier - beta12orEarlier - String of one or more ASCII characters representing a codon. - true - - - - - - - - - - Gene identifier - - - - - - - - Moby:GeneAccessionList - An identifier of a gene, such as a name/symbol or a unique identifier of a gene in a database. - beta12orEarlier - - - - - - - - - - - Gene symbol - - Moby_namespace:Global_GeneSymbol - beta12orEarlier - Moby_namespace:Global_GeneCommonName - The short name of a gene; a single word that does not contain white space characters. It is typically derived from the gene name. - - - - - - - - - - - Gene ID (NCBI) - - - NCBI geneid - Gene identifier (NCBI) - http://www.geneontology.org/doc/GO.xrf_abbs:NCBI_Gene - Entrez gene ID - Gene identifier (Entrez) - http://www.geneontology.org/doc/GO.xrf_abbs:LocusID - An NCBI unique identifier of a gene. - NCBI gene ID - beta12orEarlier - - - - - - - - - - - Gene identifier (NCBI RefSeq) - - beta12orEarlier - true - beta12orEarlier - An NCBI RefSeq unique identifier of a gene. - - - - - - - - - - Gene identifier (NCBI UniGene) - - beta12orEarlier - An NCBI UniGene unique identifier of a gene. - beta12orEarlier - true - - - - - - - - - - Gene identifier (Entrez) - - An Entrez unique identifier of a gene. - beta12orEarlier - true - [0-9]+ - beta12orEarlier - - - - - - - - - - Gene ID (CGD) - - CGD ID - Identifier of a gene or feature from the CGD database. - beta12orEarlier - - - - - - - - - - - Gene ID (DictyBase) - - beta12orEarlier - Identifier of a gene from DictyBase. - - - - - - - - - - - Ensembl gene ID - - - beta12orEarlier - Gene ID (Ensembl) - Unique identifier for a gene (or other feature) from the Ensembl database. - - - - - - - - - - - Gene ID (SGD) - - - Identifier of an entry from the SGD database. - S[0-9]+ - SGD identifier - beta12orEarlier - - - - - - - - - - - Gene ID (GeneDB) - - Moby_namespace:GeneDB - GeneDB identifier - beta12orEarlier - [a-zA-Z_0-9\.-]* - Identifier of a gene from the GeneDB database. - - - - - - - - - - - TIGR identifier - - - beta12orEarlier - Identifier of an entry from the TIGR database. - - - - - - - - - - - TAIR accession (gene) - - - Gene:[0-9]{7} - beta12orEarlier - Identifier of an gene from the TAIR database. - - - - - - - - - - - Protein domain ID - - - - - - - - - beta12orEarlier - Identifier of a protein structural domain. - This is typically a character or string concatenated with a PDB identifier and a chain identifier. - - - - - - - - - - - SCOP domain identifier - - Identifier of a protein domain (or other node) from the SCOP database. - beta12orEarlier - - - - - - - - - - - CATH domain ID - - 1nr3A00 - beta12orEarlier - CATH domain identifier - Identifier of a protein domain from CATH. - - - - - - - - - - - SCOP concise classification string (sccs) - - A SCOP concise classification string (sccs) is a compact representation of a SCOP domain classification. - beta12orEarlier - An scss includes the class (alphabetical), fold, superfamily and family (all numerical) to which a given domain belongs. - - - - - - - - - - - SCOP sunid - - Unique identifier (number) of an entry in the SCOP hierarchy, for example 33229. - beta12orEarlier - A sunid uniquely identifies an entry in the SCOP hierarchy, including leaves (the SCOP domains) and higher level nodes including entries corresponding to the protein level. - sunid - SCOP unique identifier - 33229 - - - - - - - - - - - CATH node ID - - 3.30.1190.10.1.1.1.1.1 - CATH code - A code number identifying a node from the CATH database. - CATH node identifier - beta12orEarlier - - - - - - - - - - - Kingdom name - - The name of a biological kingdom (Bacteria, Archaea, or Eukaryotes). - beta12orEarlier - - - - - - - - - - - Species name - - The name of a species (typically a taxonomic group) of organism. - Organism species - beta12orEarlier - - - - - - - - - - - Strain name - - - beta12orEarlier - The name of a strain of an organism variant, typically a plant, virus or bacterium. - - - - - - - - - - - URI - - A string of characters that name or otherwise identify a resource on the Internet. - URIs - beta12orEarlier - - - - - - - - - - Database ID - - - - - - - - An identifier of a biological or bioinformatics database. - Database identifier - beta12orEarlier - - - - - - - - - - - Directory name - - beta12orEarlier - The name of a directory. - - - - - - - - - - - File name - - The name (or part of a name) of a file (of any type). - beta12orEarlier - - - - - - - - - - - Ontology name - - - - - - - - - beta12orEarlier - Name of an ontology of biological or bioinformatics concepts and relations. - - - - - - - - - - - URL - - A Uniform Resource Locator (URL). - Moby:URL - Moby:Link - beta12orEarlier - - - - - - - - - - URN - - beta12orEarlier - A Uniform Resource Name (URN). - - - - - - - - - - LSID - - beta12orEarlier - LSIDs provide a standard way to locate and describe data. An LSID is represented as a Uniform Resource Name (URN) with the following format: URN:LSID:<Authority>:<Namespace>:<ObjectID>[:<Version>] - Life Science Identifier - A Life Science Identifier (LSID) - a unique identifier of some data. - - - - - - - - - - Database name - - - The name of a biological or bioinformatics database. - beta12orEarlier - - - - - - - - - - - Sequence database name - - The name of a molecular sequence database. - true - beta13 - beta12orEarlier - - - - - - - - - - Enumerated file name - - beta12orEarlier - The name of a file (of any type) with restricted possible values. - - - - - - - - - - - File name extension - - The extension of a file name. - A file extension is the characters appearing after the final '.' in the file name. - beta12orEarlier - - - - - - - - - - - File base name - - beta12orEarlier - The base name of a file. - A file base name is the file name stripped of its directory specification and extension. - - - - - - - - - - - QSAR descriptor name - - - - - - - - - beta12orEarlier - Name of a QSAR descriptor. - - - - - - - - - - - Database entry identifier - - true - This concept is required for completeness. It should never have child concepts. - beta12orEarlier - An identifier of an entry from a database where the same type of identifier is used for objects (data) of different semantic type. - beta12orEarlier - - - - - - - - - - Sequence identifier - - - - - - - - An identifier of molecular sequence(s) or entries from a molecular sequence database. - beta12orEarlier - - - - - - - - - - - Sequence set ID - - - - - - - - - An identifier of a set of molecular sequence(s). - beta12orEarlier - - - - - - - - - - - Sequence signature identifier - - beta12orEarlier - beta12orEarlier - true - Identifier of a sequence signature (motif or profile) for example from a database of sequence patterns. - - - - - - - - - - - Sequence alignment ID - - - - - - - - - Identifier of a molecular sequence alignment, for example a record from an alignment database. - beta12orEarlier - - - - - - - - - - - Phylogenetic distance matrix identifier - - beta12orEarlier - Identifier of a phylogenetic distance matrix. - true - beta12orEarlier - - - - - - - - - - Phylogenetic tree ID - - - - - - - - - beta12orEarlier - Identifier of a phylogenetic tree for example from a phylogenetic tree database. - - - - - - - - - - - Comparison matrix identifier - - - - - - - - An identifier of a comparison matrix. - Substitution matrix identifier - beta12orEarlier - - - - - - - - - - - Structure ID - - - beta12orEarlier - A unique and persistent identifier of a molecular tertiary structure, typically an entry from a structure database. - - - - - - - - - - - Structural (3D) profile ID - - - - - - - - - Structural profile identifier - Identifier or name of a structural (3D) profile or template (representing a structure or structure alignment). - beta12orEarlier - - - - - - - - - - - Structure alignment ID - - - - - - - - - beta12orEarlier - Identifier of an entry from a database of tertiary structure alignments. - - - - - - - - - - - Amino acid index ID - - - - - - - - - Identifier of an index of amino acid physicochemical and biochemical property data. - beta12orEarlier - - - - - - - - - - - Protein interaction ID - - - - - - - - - beta12orEarlier - Molecular interaction ID - Identifier of a report of protein interactions from a protein interaction database (typically). - - - - - - - - - - - Protein family identifier - - - - - - - - Protein secondary database record identifier - Identifier of a protein family. - beta12orEarlier - - - - - - - - - - - Codon usage table name - - - - - - - - - - - - - - - Unique name of a codon usage table. - beta12orEarlier - - - - - - - - - - - Transcription factor identifier - - - Identifier of a transcription factor (or a TF binding site). - beta12orEarlier - - - - - - - - - - - Experiment annotation ID - - - - - - - - beta12orEarlier - Identifier of an entry from a database of microarray data. - - - - - - - - - - - Electron microscopy model ID - - - - - - - - - Identifier of an entry from a database of electron microscopy data. - beta12orEarlier - - - - - - - - - - - Gene expression report ID - - - - - - - - - Accession of a report of gene expression (e.g. a gene expression profile) from a database. - beta12orEarlier - Gene expression profile identifier - - - - - - - - - - - Genotype and phenotype annotation ID - - - - - - - - - Identifier of an entry from a database of genotypes and phenotypes. - beta12orEarlier - - - - - - - - - - - Pathway or network identifier - - - - - - - - Identifier of an entry from a database of biological pathways or networks. - beta12orEarlier - - - - - - - - - - - Workflow ID - - - beta12orEarlier - Identifier of a biological or biomedical workflow, typically from a database of workflows. - - - - - - - - - - - Data resource definition ID - - beta12orEarlier - Identifier of a data type definition from some provider. - Data resource definition identifier - - - - - - - - - - - Biological model ID - - - - - - - - Biological model identifier - beta12orEarlier - Identifier of a mathematical model, typically an entry from a database. - - - - - - - - - - - Compound identifier - - - - - - - - beta12orEarlier - Chemical compound identifier - Identifier of an entry from a database of chemicals. - Small molecule identifier - - - - - - - - - - - Ontology concept ID - - - A unique (typically numerical) identifier of a concept in an ontology of biological or bioinformatics concepts and relations. - beta12orEarlier - Ontology concept ID - - - - - - - - - - - Article ID - - - - - - - - - beta12orEarlier - Unique identifier of a scientific article. - Article identifier - - - - - - - - - - - FlyBase ID - - - Identifier of an object from the FlyBase database. - FB[a-zA-Z_0-9]{2}[0-9]{7} - beta12orEarlier - - - - - - - - - - - WormBase name - - - Name of an object from the WormBase database, usually a human-readable name. - beta12orEarlier - - - - - - - - - - - WormBase class - - beta12orEarlier - Class of an object from the WormBase database. - A WormBase class describes the type of object such as 'sequence' or 'protein'. - - - - - - - - - - - Sequence accession - - - beta12orEarlier - A persistent, unique identifier of a molecular sequence database entry. - Sequence accession number - - - - - - - - - - - Sequence type - - 1.5 - Sequence type might reflect the molecule (protein, nucleic acid etc) or the sequence itself (gapped, ambiguous etc). - A label (text token) describing a type of molecular sequence. - true - beta12orEarlier - - - - - - - - - - EMBOSS Uniform Sequence Address - - - EMBOSS USA - beta12orEarlier - The name of a sequence-based entity adhering to the standard sequence naming scheme used by all EMBOSS applications. - - - - - - - - - - - Sequence accession (protein) - - - - - - - - Accession number of a protein sequence database entry. - Protein sequence accession number - beta12orEarlier - - - - - - - - - - - Sequence accession (nucleic acid) - - - - - - - - Accession number of a nucleotide sequence database entry. - beta12orEarlier - Nucleotide sequence accession number - - - - - - - - - - - RefSeq accession - - Accession number of a RefSeq database entry. - beta12orEarlier - RefSeq ID - (NC|AC|NG|NT|NW|NZ|NM|NR|XM|XR|NP|AP|XP|YP|ZP)_[0-9]+ - - - - - - - - - - - UniProt accession (extended) - - true - Accession number of a UniProt (protein sequence) database entry. May contain version or isoform number. - [A-NR-Z][0-9][A-Z][A-Z0-9][A-Z0-9][0-9]|[OPQ][0-9][A-Z0-9][A-Z0-9][A-Z0-9][0-9]|[A-NR-Z][0-9][A-Z][A-Z0-9][A-Z0-9][0-9].[0-9]+|[OPQ][0-9][A-Z0-9][A-Z0-9][A-Z0-9][0-9].[0-9]+|[A-NR-Z][0-9][A-Z][A-Z0-9][A-Z0-9][0-9]-[0-9]+|[OPQ][0-9][A-Z0-9][A-Z0-9][A-Z0-9][0-9]-[0-9]+ - beta12orEarlier - Q7M1G0|P43353-2|P01012.107 - 1.0 - - - - - - - - - - PIR identifier - - - - - - - - An identifier of PIR sequence database entry. - beta12orEarlier - PIR ID - PIR accession number - - - - - - - - - - - TREMBL accession - - beta12orEarlier - Identifier of a TREMBL sequence database entry. - true - 1.2 - - - - - - - - - - Gramene primary identifier - - beta12orEarlier - Gramene primary ID - Primary identifier of a Gramene database entry. - - - - - - - - - - - EMBL/GenBank/DDBJ ID - - Identifier of a (nucleic acid) entry from the EMBL/GenBank/DDBJ databases. - beta12orEarlier - - - - - - - - - - - Sequence cluster ID (UniGene) - - UniGene identifier - UniGene cluster id - UniGene ID - UniGene cluster ID - beta12orEarlier - A unique identifier of an entry (gene cluster) from the NCBI UniGene database. - - - - - - - - - - - dbEST accession - - - dbEST ID - Identifier of a dbEST database entry. - beta12orEarlier - - - - - - - - - - - dbSNP ID - - beta12orEarlier - dbSNP identifier - Identifier of a dbSNP database entry. - - - - - - - - - - - EMBOSS sequence type - - beta12orEarlier - true - See the EMBOSS documentation (http://emboss.sourceforge.net/) for a definition of what this includes. - beta12orEarlier - The EMBOSS type of a molecular sequence. - - - - - - - - - - EMBOSS listfile - - 1.5 - List of EMBOSS Uniform Sequence Addresses (EMBOSS listfile). - true - beta12orEarlier - - - - - - - - - - Sequence cluster ID - - - - - - - - An identifier of a cluster of molecular sequence(s). - beta12orEarlier - - - - - - - - - - - Sequence cluster ID (COG) - - COG ID - beta12orEarlier - Unique identifier of an entry from the COG database. - - - - - - - - - - - Sequence motif identifier - - - - - - - - Identifier of a sequence motif, for example an entry from a motif database. - beta12orEarlier - - - - - - - - - - - Sequence profile ID - - - - - - - - - Identifier of a sequence profile. - beta12orEarlier - A sequence profile typically represents a sequence alignment. - - - - - - - - - - - ELM ID - - Identifier of an entry from the ELMdb database of protein functional sites. - beta12orEarlier - - - - - - - - - - - Prosite accession number - - beta12orEarlier - Accession number of an entry from the Prosite database. - PS[0-9]{5} - Prosite ID - - - - - - - - - - - HMMER hidden Markov model ID - - - - - - - - Unique identifier or name of a HMMER hidden Markov model. - beta12orEarlier - - - - - - - - - - - JASPAR profile ID - - beta12orEarlier - Unique identifier or name of a profile from the JASPAR database. - - - - - - - - - - - Sequence alignment type - - beta12orEarlier - 1.5 - true - Possible values include for example the EMBOSS alignment types, BLAST alignment types and so on. - A label (text token) describing the type of a sequence alignment. - - - - - - - - - - BLAST sequence alignment type - - true - beta12orEarlier - beta12orEarlier - The type of a BLAST sequence alignment. - - - - - - - - - - Phylogenetic tree type - - For example 'nj', 'upgmp' etc. - beta12orEarlier - true - A label (text token) describing the type of a phylogenetic tree. - 1.5 - nj|upgmp - - - - - - - - - - TreeBASE study accession number - - Accession number of an entry from the TreeBASE database. - beta12orEarlier - - - - - - - - - - - TreeFam accession number - - beta12orEarlier - Accession number of an entry from the TreeFam database. - - - - - - - - - - - Comparison matrix type - - 1.5 - true - beta12orEarlier - blosum|pam|gonnet|id - A label (text token) describing the type of a comparison matrix. - Substitution matrix type - For example 'blosum', 'pam', 'gonnet', 'id' etc. Comparison matrix type may be required where a series of matrices of a certain type are used. - - - - - - - - - - Comparison matrix name - - - - - - - - - beta12orEarlier - Substitution matrix name - See for example http://www.ebi.ac.uk/Tools/webservices/help/matrix. - Unique name or identifier of a comparison matrix. - - - - - - - - - - - PDB ID - - An identifier of an entry from the PDB database. - [a-zA-Z_0-9]{4} - PDBID - PDB identifier - beta12orEarlier - - - - - - - - - - - AAindex ID - - beta12orEarlier - Identifier of an entry from the AAindex database. - - - - - - - - - - - BIND accession number - - Accession number of an entry from the BIND database. - beta12orEarlier - - - - - - - - - - - IntAct accession number - - EBI\-[0-9]+ - beta12orEarlier - Accession number of an entry from the IntAct database. - - - - - - - - - - - Protein family name - - - beta12orEarlier - Name of a protein family. - - - - - - - - - - - InterPro entry name - - - - - - - - beta12orEarlier - Name of an InterPro entry, usually indicating the type of protein matches for that entry. - - - - - - - - - - - InterPro accession - - - - - - - - Primary accession number of an InterPro entry. - InterPro primary accession - Every InterPro entry has a unique accession number to provide a persistent citation of database records. - beta12orEarlier - InterPro primary accession number - IPR015590 - IPR[0-9]{6} - - - - - - - - - - - InterPro secondary accession - - - - - - - - Secondary accession number of an InterPro entry. - beta12orEarlier - InterPro secondary accession number - - - - - - - - - - - Gene3D ID - - beta12orEarlier - Unique identifier of an entry from the Gene3D database. - - - - - - - - - - - PIRSF ID - - PIRSF[0-9]{6} - beta12orEarlier - Unique identifier of an entry from the PIRSF database. - - - - - - - - - - - PRINTS code - - beta12orEarlier - PR[0-9]{5} - The unique identifier of an entry in the PRINTS database. - - - - - - - - - - - Pfam accession number - - PF[0-9]{5} - Accession number of a Pfam entry. - beta12orEarlier - - - - - - - - - - - SMART accession number - - Accession number of an entry from the SMART database. - beta12orEarlier - SM[0-9]{5} - - - - - - - - - - - Superfamily hidden Markov model number - - Unique identifier (number) of a hidden Markov model from the Superfamily database. - beta12orEarlier - - - - - - - - - - - TIGRFam ID - - TIGRFam accession number - Accession number of an entry (family) from the TIGRFam database. - beta12orEarlier - - - - - - - - - - - ProDom accession number - - A ProDom domain family accession number. - PD[0-9]+ - beta12orEarlier - ProDom is a protein domain family database. - - - - - - - - - - - TRANSFAC accession number - - beta12orEarlier - Identifier of an entry from the TRANSFAC database. - - - - - - - - - - - ArrayExpress accession number - - Accession number of an entry from the ArrayExpress database. - beta12orEarlier - [AEP]-[a-zA-Z_0-9]{4}-[0-9]+ - ArrayExpress experiment ID - - - - - - - - - - - PRIDE experiment accession number - - [0-9]+ - beta12orEarlier - PRIDE experiment accession number. - - - - - - - - - - - EMDB ID - - beta12orEarlier - Identifier of an entry from the EMDB electron microscopy database. - - - - - - - - - - - GEO accession number - - Accession number of an entry from the GEO database. - o^GDS[0-9]+ - beta12orEarlier - - - - - - - - - - - GermOnline ID - - beta12orEarlier - Identifier of an entry from the GermOnline database. - - - - - - - - - - - EMAGE ID - - Identifier of an entry from the EMAGE database. - beta12orEarlier - - - - - - - - - - - Disease ID - - - - - - - - - Identifier of an entry from a database of disease. - beta12orEarlier - - - - - - - - - - - HGVbase ID - - Identifier of an entry from the HGVbase database. - beta12orEarlier - - - - - - - - - - - HIVDB identifier - - true - beta12orEarlier - Identifier of an entry from the HIVDB database. - beta12orEarlier - - - - - - - - - - OMIM ID - - beta12orEarlier - [*#+%^]?[0-9]{6} - Identifier of an entry from the OMIM database. - - - - - - - - - - - KEGG object identifier - - - beta12orEarlier - Unique identifier of an object from one of the KEGG databases (excluding the GENES division). - - - - - - - - - - - Pathway ID (reactome) - - Identifier of an entry from the Reactome database. - Reactome ID - beta12orEarlier - REACT_[0-9]+(\.[0-9]+)? - - - - - - - - - - - Pathway ID (aMAZE) - - beta12orEarlier - aMAZE ID - true - beta12orEarlier - Identifier of an entry from the aMAZE database. - - - - - - - - - - Pathway ID (BioCyc) - - - BioCyc pathway ID - beta12orEarlier - Identifier of an pathway from the BioCyc biological pathways database. - - - - - - - - - - - Pathway ID (INOH) - - beta12orEarlier - INOH identifier - Identifier of an entry from the INOH database. - - - - - - - - - - - Pathway ID (PATIKA) - - Identifier of an entry from the PATIKA database. - PATIKA ID - beta12orEarlier - - - - - - - - - - - Pathway ID (CPDB) - - This concept refers to identifiers used by the databases collated in CPDB; CPDB identifiers are not independently defined. - CPDB ID - Identifier of an entry from the CPDB (ConsensusPathDB) biological pathways database, which is an identifier from an external database integrated into CPDB. - beta12orEarlier - - - - - - - - - - - Pathway ID (Panther) - - Identifier of a biological pathway from the Panther Pathways database. - beta12orEarlier - PTHR[0-9]{5} - Panther Pathways ID - - - - - - - - - - - MIRIAM identifier - - - - - - - - Unique identifier of a MIRIAM data resource. - MIR:00100005 - MIR:[0-9]{8} - beta12orEarlier - This is the identifier used internally by MIRIAM for a data type. - - - - - - - - - - - MIRIAM data type name - - - - - - - - beta12orEarlier - The name of a data type from the MIRIAM database. - - - - - - - - - - - MIRIAM URI - - - - - - - - - beta12orEarlier - The URI (URL or URN) of a data entity from the MIRIAM database. - identifiers.org synonym - urn:miriam:pubmed:16333295|urn:miriam:obo.go:GO%3A0045202 - A MIRIAM URI consists of the URI of the MIRIAM data type (PubMed, UniProt etc) followed by the identifier of an element of that data type, for example PMID for a publication or an accession number for a GO term. - - - - - - - - - - - MIRIAM data type primary name - - beta12orEarlier - The primary name of a MIRIAM data type is taken from a controlled vocabulary. - UniProt|Enzyme Nomenclature - The primary name of a data type from the MIRIAM database. - - - - - - A protein entity has the MIRIAM data type 'UniProt', and an enzyme has the MIRIAM data type 'Enzyme Nomenclature'. - UniProt|Enzyme Nomenclature - - - - - - - - - - MIRIAM data type synonymous name - - A synonymous name of a data type from the MIRIAM database. - A synonymous name for a MIRIAM data type taken from a controlled vocabulary. - beta12orEarlier - - - - - - - - - - - Taverna workflow ID - - beta12orEarlier - Unique identifier of a Taverna workflow. - - - - - - - - - - - Biological model name - - - beta12orEarlier - Name of a biological (mathematical) model. - - - - - - - - - - - BioModel ID - - Unique identifier of an entry from the BioModel database. - beta12orEarlier - (BIOMD|MODEL)[0-9]{10} - - - - - - - - - - - PubChem CID - - - [0-9]+ - PubChem compound accession identifier - Chemical structure specified in PubChem Compound Identification (CID), a non-zero integer identifier for a unique chemical structure. - beta12orEarlier - - - - - - - - - - - ChemSpider ID - - Identifier of an entry from the ChemSpider database. - beta12orEarlier - [0-9]+ - - - - - - - - - - - ChEBI ID - - Identifier of an entry from the ChEBI database. - ChEBI IDs - ChEBI identifier - CHEBI:[0-9]+ - beta12orEarlier - - - - - - - - - - - BioPax concept ID - - beta12orEarlier - An identifier of a concept from the BioPax ontology. - - - - - - - - - - - GO concept ID - - GO concept identifier - [0-9]{7}|GO:[0-9]{7} - beta12orEarlier - An identifier of a concept from The Gene Ontology. - - - - - - - - - - - MeSH concept ID - - beta12orEarlier - An identifier of a concept from the MeSH vocabulary. - - - - - - - - - - - HGNC concept ID - - beta12orEarlier - An identifier of a concept from the HGNC controlled vocabulary. - - - - - - - - - - - NCBI taxonomy ID - - - NCBI taxonomy identifier - [1-9][0-9]{0,8} - NCBI tax ID - A stable unique identifier for each taxon (for a species, a family, an order, or any other group in the NCBI taxonomy database. - 9662|3483|182682 - beta12orEarlier - - - - - - - - - - - Plant Ontology concept ID - - An identifier of a concept from the Plant Ontology (PO). - beta12orEarlier - - - - - - - - - - - UMLS concept ID - - An identifier of a concept from the UMLS vocabulary. - beta12orEarlier - - - - - - - - - - - FMA concept ID - - An identifier of a concept from Foundational Model of Anatomy. - FMA:[0-9]+ - Classifies anatomical entities according to their shared characteristics (genus) and distinguishing characteristics (differentia). Specifies the part-whole and spatial relationships of the entities, morphological transformation of the entities during prenatal development and the postnatal life cycle and principles, rules and definitions according to which classes and relationships in the other three components of FMA are represented. - beta12orEarlier - - - - - - - - - - - EMAP concept ID - - beta12orEarlier - An identifier of a concept from the EMAP mouse ontology. - - - - - - - - - - - ChEBI concept ID - - beta12orEarlier - An identifier of a concept from the ChEBI ontology. - - - - - - - - - - - MGED concept ID - - beta12orEarlier - An identifier of a concept from the MGED ontology. - - - - - - - - - - - myGrid concept ID - - beta12orEarlier - The ontology is provided as two components, the service ontology and the domain ontology. The domain ontology acts provides concepts for core bioinformatics data types and their relations. The service ontology describes the physical and operational features of web services. - An identifier of a concept from the myGrid ontology. - - - - - - - - - - - PubMed ID - - PMID - [1-9][0-9]{0,8} - PubMed unique identifier of an article. - beta12orEarlier - 4963447 - - - - - - - - - - - DOI - - beta12orEarlier - (doi\:)?[0-9]{2}\.[0-9]{4}/.* - Digital Object Identifier - Digital Object Identifier (DOI) of a published article. - - - - - - - - - - - Medline UI - - beta12orEarlier - Medline UI (unique identifier) of an article. - The use of Medline UI has been replaced by the PubMed unique identifier. - Medline unique identifier - - - - - - - - - - - Tool name - - The name of a computer package, application, method or function. - beta12orEarlier - - - - - - - - - - - Tool name (signature) - - beta12orEarlier - The unique name of a signature (sequence classifier) method. - Signature methods from http://www.ebi.ac.uk/Tools/InterProScan/help.html#results include BlastProDom, FPrintScan, HMMPIR, HMMPfam, HMMSmart, HMMTigr, ProfileScan, ScanRegExp, SuperFamily and HAMAP. - - - - - - - - - - - Tool name (BLAST) - - This include 'blastn', 'blastp', 'blastx', 'tblastn' and 'tblastx'. - The name of a BLAST tool. - beta12orEarlier - BLAST name - - - - - - - - - - - Tool name (FASTA) - - beta12orEarlier - The name of a FASTA tool. - This includes 'fasta3', 'fastx3', 'fasty3', 'fastf3', 'fasts3' and 'ssearch'. - - - - - - - - - - - Tool name (EMBOSS) - - The name of an EMBOSS application. - beta12orEarlier - - - - - - - - - - - Tool name (EMBASSY package) - - The name of an EMBASSY package. - beta12orEarlier - - - - - - - - - - - QSAR descriptor (constitutional) - - A QSAR constitutional descriptor. - beta12orEarlier - QSAR constitutional descriptor - - - - - - - - - - QSAR descriptor (electronic) - - beta12orEarlier - A QSAR electronic descriptor. - QSAR electronic descriptor - - - - - - - - - - QSAR descriptor (geometrical) - - QSAR geometrical descriptor - A QSAR geometrical descriptor. - beta12orEarlier - - - - - - - - - - QSAR descriptor (topological) - - beta12orEarlier - QSAR topological descriptor - A QSAR topological descriptor. - - - - - - - - - - QSAR descriptor (molecular) - - A QSAR molecular descriptor. - QSAR molecular descriptor - beta12orEarlier - - - - - - - - - - Sequence set (protein) - - Any collection of multiple protein sequences and associated metadata that do not (typically) correspond to common sequence database records or database entries. - beta12orEarlier - - - - - - - - - - Sequence set (nucleic acid) - - beta12orEarlier - Any collection of multiple nucleotide sequences and associated metadata that do not (typically) correspond to common sequence database records or database entries. - - - - - - - - - - Sequence cluster - - - - - - - - - - - - - - A set of sequences that have been clustered or otherwise classified as belonging to a group including (typically) sequence cluster information. - The cluster might include sequences identifiers, short descriptions, alignment and summary information. - beta12orEarlier - - - - - - - - - - Psiblast checkpoint file - - beta12orEarlier - A Psiblast checkpoint file uses ASN.1 Binary Format and usually has the extension '.asn'. - beta12orEarlier - true - A file of intermediate results from a PSIBLAST search that is used for priming the search in the next PSIBLAST iteration. - - - - - - - - - - HMMER synthetic sequences set - - Sequences generated by HMMER package in FASTA-style format. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Proteolytic digest - - - - - - - - beta12orEarlier - A protein sequence cleaved into peptide fragments (by enzymatic or chemical cleavage) with fragment masses. - - - - - - - - - - Restriction digest - - Restriction digest fragments from digesting a nucleotide sequence with restriction sites using a restriction endonuclease. - SO:0000412 - beta12orEarlier - - - - - - - - - - PCR primers - - beta12orEarlier - Oligonucleotide primer(s) for PCR and DNA amplification, for example a minimal primer set. - - - - - - - - - - vectorstrip cloning vector definition file - - beta12orEarlier - true - File of sequence vectors used by EMBOSS vectorstrip application, or any file in same format. - beta12orEarlier - - - - - - - - - - Primer3 internal oligo mishybridizing library - - true - beta12orEarlier - A library of nucleotide sequences to avoid during hybridization events. Hybridization of the internal oligo to sequences in this library is avoided, rather than priming from them. The file is in a restricted FASTA format. - beta12orEarlier - - - - - - - - - - Primer3 mispriming library file - - true - A nucleotide sequence library of sequences to avoid during amplification (for example repetitive sequences, or possibly the sequences of genes in a gene family that should not be amplified. The file must is in a restricted FASTA format. - beta12orEarlier - beta12orEarlier - - - - - - - - - - primersearch primer pairs sequence record - - true - beta12orEarlier - beta12orEarlier - File of one or more pairs of primer sequences, as used by EMBOSS primersearch application. - - - - - - - - - - Sequence cluster (protein) - - - Protein sequence cluster - The sequences are typically related, for example a family of sequences. - beta12orEarlier - A cluster of protein sequences. - - - - - - - - - - Sequence cluster (nucleic acid) - - - A cluster of nucleotide sequences. - Nucleotide sequence cluster - beta12orEarlier - The sequences are typically related, for example a family of sequences. - - - - - - - - - - Sequence length - - beta12orEarlier - The size (length) of a sequence, subsequence or region in a sequence, or range(s) of lengths. - - - - - - - - - - Word size - - Word size is used for example in word-based sequence database search methods. - Word length - 1.5 - Size of a sequence word. - true - beta12orEarlier - - - - - - - - - - Window size - - 1.5 - true - A window is a region of fixed size but not fixed position over a molecular sequence. It is typically moved (computationally) over a sequence during scoring. - beta12orEarlier - Size of a sequence window. - - - - - - - - - - Sequence length range - - true - Specification of range(s) of length of sequences. - beta12orEarlier - 1.5 - - - - - - - - - - Sequence information report - - Report on basic information about a molecular sequence such as name, accession number, type (nucleic or protein), length, description etc. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Sequence property - - beta12orEarlier - An informative report about non-positional sequence features, typically a report on general molecular sequence properties derived from sequence analysis. - Sequence properties report - - - - - - - - - - Sequence features - - Sequence features report - beta12orEarlier - http://purl.bioontology.org/ontology/MSH/D058977 - SO:0000110 - This includes annotation of positional sequence features, organized into a standard feature table, or any other report of sequence features. General feature reports are a source of sequence feature table information although internal conversion would be required. - General sequence features - Annotation of positional features of molecular sequence(s), i.e. that can be mapped to position(s) in the sequence. - Features - Feature record - - - - - - - - - - Sequence features (comparative) - - Comparative data on sequence features such as statistics, intersections (and data on intersections), differences etc. - beta13 - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - true - beta12orEarlier - - - - - - - - - - Sequence property (protein) - - true - A report of general sequence properties derived from protein sequence data. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Sequence property (nucleic acid) - - A report of general sequence properties derived from nucleotide sequence data. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Sequence complexity report - - A report on sequence complexity, for example low-complexity or repeat regions in sequences. - beta12orEarlier - Sequence property (complexity) - - - - - - - - - - Sequence ambiguity report - - A report on ambiguity in molecular sequence(s). - Sequence property (ambiguity) - beta12orEarlier - - - - - - - - - - Sequence composition report - - beta12orEarlier - A report (typically a table) on character or word composition / frequency of a molecular sequence(s). - Sequence property (composition) - - - - - - - - - - Peptide molecular weight hits - - A report on peptide fragments of certain molecular weight(s) in one or more protein sequences. - beta12orEarlier - - - - - - - - - - Base position variability plot - - beta12orEarlier - A plot of third base position variability in a nucleotide sequence. - - - - - - - - - - Sequence composition table - - A table of character or word composition / frequency of a molecular sequence. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Base frequencies table - - - beta12orEarlier - A table of base frequencies of a nucleotide sequence. - - - - - - - - - - Base word frequencies table - - - A table of word composition of a nucleotide sequence. - beta12orEarlier - - - - - - - - - - Amino acid frequencies table - - - Sequence composition (amino acid frequencies) - A table of amino acid frequencies of a protein sequence. - beta12orEarlier - - - - - - - - - - Amino acid word frequencies table - - - A table of amino acid word composition of a protein sequence. - Sequence composition (amino acid words) - beta12orEarlier - - - - - - - - - - DAS sequence feature annotation - - beta12orEarlier - Annotation of a molecular sequence in DAS format. - beta12orEarlier - true - - - - - - - - - - Feature table - - Sequence feature table - beta12orEarlier - Annotation of positional sequence features, organized into a standard feature table. - - - - - - - - - - Map - - - - - - - - DNA map - beta12orEarlier - A map of (typically one) DNA sequence annotated with positional or non-positional features. - - - - - - - - - - Nucleic acid features - - - An informative report on intrinsic positional features of a nucleotide sequence. - beta12orEarlier - Genome features - This includes nucleotide sequence feature annotation in any known sequence feature table format and any other report of nucleic acid features. - Genomic features - Nucleic acid feature table - Feature table (nucleic acid) - - - - - - - - - - Protein features - - - An informative report on intrinsic positional features of a protein sequence. - beta12orEarlier - This includes protein sequence feature annotation in any known sequence feature table format and any other report of protein features. - Feature table (protein) - Protein feature table - - - - - - - - - - Genetic map - - A map showing the relative positions of genetic markers in a nucleic acid sequence, based on estimation of non-physical distance such as recombination frequencies. - beta12orEarlier - A genetic (linkage) map indicates the proximity of two genes on a chromosome, whether two genes are linked and the frequency they are transmitted together to an offspring. They are limited to genetic markers of traits observable only in whole organisms. - Linkage map - Moby:GeneticMap - - - - - - - - - - Sequence map - - A sequence map typically includes annotation on significant subsequences such as contigs, haplotypes and genes. The contigs shown will (typically) be a set of small overlapping clones representing a complete chromosomal segment. - beta12orEarlier - A map of genetic markers in a contiguous, assembled genomic sequence, with the sizes and separation of markers measured in base pairs. - - - - - - - - - - Physical map - - A map of DNA (linear or circular) annotated with physical features or landmarks such as restriction sites, cloned DNA fragments, genes or genetic markers, along with the physical distances between them. - Distance in a physical map is measured in base pairs. A physical map might be ordered relative to a reference map (typically a genetic map) in the process of genome sequencing. - beta12orEarlier - - - - - - - - - - Sequence signature map - - true - Image of a sequence with matches to signatures, motifs or profiles. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Cytogenetic map - - beta12orEarlier - A map showing banding patterns derived from direct observation of a stained chromosome. - Cytologic map - Chromosome map - Cytogenic map - This is the lowest-resolution physical map and can provide only rough estimates of physical (base pair) distances. Like a genetic map, they are limited to genetic markers of traits observable only in whole organisms. - - - - - - - - - - DNA transduction map - - beta12orEarlier - A gene map showing distances between loci based on relative cotransduction frequencies. - - - - - - - - - - Gene map - - Sequence map of a single gene annotated with genetic features such as introns, exons, untranslated regions, polyA signals, promoters, enhancers and (possibly) mutations defining alleles of a gene. - beta12orEarlier - - - - - - - - - - Plasmid map - - Sequence map of a plasmid (circular DNA). - beta12orEarlier - - - - - - - - - - Genome map - - beta12orEarlier - Sequence map of a whole genome. - - - - - - - - - - Restriction map - - - Image of the restriction enzyme cleavage sites (restriction sites) in a nucleic acid sequence. - beta12orEarlier - - - - - - - - - - InterPro compact match image - - beta12orEarlier - Image showing matches between protein sequence(s) and InterPro Entries. - The sequence(s) might be screened against InterPro, or be the sequences from the InterPro entry itself. Each protein is represented as a scaled horizontal line with colored bars indicating the position of the matches. - beta12orEarlier - true - - - - - - - - - - InterPro detailed match image - - beta12orEarlier - beta12orEarlier - Image showing detailed information on matches between protein sequence(s) and InterPro Entries. - The sequence(s) might be screened against InterPro, or be the sequences from the InterPro entry itself. - true - - - - - - - - - - InterPro architecture image - - beta12orEarlier - beta12orEarlier - true - The sequence(s) might be screened against InterPro, or be the sequences from the InterPro entry itself. Domain architecture is shown as a series of non-overlapping domains in the protein. - Image showing the architecture of InterPro domains in a protein sequence. - - - - - - - - - - SMART protein schematic - - true - beta12orEarlier - beta12orEarlier - SMART protein schematic in PNG format. - - - - - - - - - - GlobPlot domain image - - beta12orEarlier - beta12orEarlier - true - Images based on GlobPlot prediction of intrinsic disordered regions and globular domains in protein sequences. - - - - - - - - - - Sequence motif matches - - beta12orEarlier - Report on the location of matches to profiles, motifs (conserved or functional patterns) or other signatures in one or more sequences. - 1.8 - true - - - - - - - - - - Sequence features (repeats) - - beta12orEarlier - true - 1.5 - Repeat sequence map - The report might include derived data map such as classification, annotation, organization, periodicity etc. - Location of short repetitive subsequences (repeat sequences) in (typically nucleotide) sequences. - - - - - - - - - - - Gene and transcript structure (report) - - 1.5 - beta12orEarlier - A report on predicted or actual gene structure, regions which make an RNA product and features such as promoters, coding regions, splice sites etc. - true - - - - - - - - - - Mobile genetic elements - - true - beta12orEarlier - regions of a nucleic acid sequence containing mobile genetic elements. - 1.8 - - - - - - - - - - Nucleic acid features report (PolyA signal or site) - - true - regions or sites in a eukaryotic and eukaryotic viral RNA sequence which directs endonuclease cleavage or polyadenylation of an RNA transcript. - 1.8 - beta12orEarlier - - - - - - - - - - Nucleic acid features (quadruplexes) - - true - 1.5 - A report on quadruplex-forming motifs in a nucleotide sequence. - beta12orEarlier - - - - - - - - - - Nucleic acid features report (CpG island and isochore) - - 1.8 - CpG rich regions (isochores) in a nucleotide sequence. - beta12orEarlier - true - - - - - - - - - - Nucleic acid features report (restriction sites) - - beta12orEarlier - true - 1.8 - restriction enzyme recognition sites (restriction sites) in a nucleic acid sequence. - - - - - - - - - - Nucleosome exclusion sequences - - beta12orEarlier - true - Report on nucleosome formation potential or exclusion sequence(s). - 1.8 - - - - - - - - - - Nucleic acid features report (splice sites) - - splice sites in a nucleotide sequence or alternative RNA splicing events. - beta12orEarlier - true - 1.8 - - - - - - - - - - Nucleic acid features report (matrix/scaffold attachment sites) - - 1.8 - matrix/scaffold attachment regions (MARs/SARs) in a DNA sequence. - true - beta12orEarlier - - - - - - - - - - Gene features (exonic splicing enhancer) - - beta12orEarlier - beta13 - true - A report on exonic splicing enhancers (ESE) in an exon. - - - - - - - - - - Nucleic acid features (microRNA) - - true - beta12orEarlier - A report on microRNA sequence (miRNA) or precursor, microRNA targets, miRNA binding sites in an RNA sequence etc. - 1.5 - - - - - - - - - - Gene features report (operon) - - true - operons (operators, promoters and genes) from a bacterial genome. - 1.8 - beta12orEarlier - - - - - - - - - - Nucleic acid features report (promoters) - - 1.8 - whole promoters or promoter elements (transcription start sites, RNA polymerase binding site, transcription factor binding sites, promoter enhancers etc) in a DNA sequence. - true - beta12orEarlier - - - - - - - - - - Coding region - - beta12orEarlier - protein-coding regions including coding sequences (CDS), exons, translation initiation sites and open reading frames. - 1.8 - true - - - - - - - - - - Gene features (SECIS element) - - beta12orEarlier - beta13 - A report on selenocysteine insertion sequence (SECIS) element in a DNA sequence. - true - - - - - - - - - - Transcription factor binding sites - - transcription factor binding sites (TFBS) in a DNA sequence. - beta12orEarlier - true - 1.8 - - - - - - - - - - Protein features (sites) - - true - beta12orEarlier - Use this concept for collections of specific sites which are not necessarily contiguous, rather than contiguous stretches of amino acids. - beta12orEarlier - A report on predicted or known key residue positions (sites) in a protein sequence, such as binding or functional sites. - - - - - - - - - - Protein features report (signal peptides) - - true - signal peptides or signal peptide cleavage sites in protein sequences. - 1.8 - beta12orEarlier - - - - - - - - - - Protein features report (cleavage sites) - - true - 1.8 - cleavage sites (for a proteolytic enzyme or agent) in a protein sequence. - beta12orEarlier - - - - - - - - - - Protein features (post-translation modifications) - - true - beta12orEarlier - post-translation modifications in a protein sequence, typically describing the specific sites involved. - 1.8 - - - - - - - - - - Protein features report (active sites) - - 1.8 - true - beta12orEarlier - catalytic residues (active site) of an enzyme. - - - - - - - - - - Protein features report (binding sites) - - beta12orEarlier - ligand-binding (non-catalytic) residues of a protein, such as sites that bind metal, prosthetic groups or lipids. - true - 1.8 - - - - - - - - - - Protein features (epitopes) - - A report on antigenic determinant sites (epitopes) in proteins, from sequence and / or structural data. - beta13 - beta12orEarlier - Epitope mapping is commonly done during vaccine design. - true - - - - - - - - - - Protein features report (nucleic acid binding sites) - - true - beta12orEarlier - 1.8 - RNA and DNA-binding proteins and binding sites in protein sequences. - - - - - - - - - - MHC Class I epitopes report - - beta12orEarlier - beta12orEarlier - true - A report on epitopes that bind to MHC class I molecules. - - - - - - - - - - MHC Class II epitopes report - - beta12orEarlier - beta12orEarlier - true - A report on predicted epitopes that bind to MHC class II molecules. - - - - - - - - - - Protein features (PEST sites) - - beta12orEarlier - A report or plot of PEST sites in a protein sequence. - true - beta13 - 'PEST' motifs target proteins for proteolytic degradation and reduce the half-lives of proteins dramatically. - - - - - - - - - - Sequence database hits scores list - - Scores from a sequence database search (for example a BLAST search). - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Sequence database hits alignments list - - beta12orEarlier - Alignments from a sequence database search (for example a BLAST search). - beta12orEarlier - true - - - - - - - - - - Sequence database hits evaluation data - - beta12orEarlier - A report on the evaluation of the significance of sequence similarity scores from a sequence database search (for example a BLAST search). - beta12orEarlier - true - - - - - - - - - - MEME motif alphabet - - Alphabet for the motifs (patterns) that MEME will search for. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - MEME background frequencies file - - MEME background frequencies file. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - MEME motifs directive file - - beta12orEarlier - true - File of directives for ordering and spacing of MEME motifs. - beta12orEarlier - - - - - - - - - - Dirichlet distribution - - Dirichlet distribution used by hidden Markov model analysis programs. - beta12orEarlier - - - - - - - - - - HMM emission and transition counts - - Emission and transition counts of a hidden Markov model, generated once HMM has been determined, for example after residues/gaps have been assigned to match, delete and insert states. - true - 1.4 - beta12orEarlier - - - - - - - - - - - Regular expression - - Regular expression pattern. - beta12orEarlier - - - - - - - - - - Sequence motif - - - - - - - - beta12orEarlier - Any specific or conserved pattern (typically expressed as a regular expression) in a molecular sequence. - - - - - - - - - - Sequence profile - - - - - - - - Some type of statistical model representing a (typically multiple) sequence alignment. - http://semanticscience.org/resource/SIO_010531 - beta12orEarlier - - - - - - - - - - Protein signature - - An informative report about a specific or conserved protein sequence pattern. - InterPro entry - Protein repeat signature - Protein region signature - Protein site signature - beta12orEarlier - Protein family signature - Protein domain signature - - - - - - - - - - Prosite nucleotide pattern - - A nucleotide regular expression pattern from the Prosite database. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Prosite protein pattern - - A protein regular expression pattern from the Prosite database. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Position frequency matrix - - beta12orEarlier - PFM - A profile (typically representing a sequence alignment) that is a simple matrix of nucleotide (or amino acid) counts per position. - - - - - - - - - - Position weight matrix - - PWM - beta12orEarlier - A profile (typically representing a sequence alignment) that is weighted matrix of nucleotide (or amino acid) counts per position. - Contributions of individual sequences to the matrix might be uneven (weighted). - - - - - - - - - - Information content matrix - - beta12orEarlier - ICM - A profile (typically representing a sequence alignment) derived from a matrix of nucleotide (or amino acid) counts per position that reflects information content at each position. - - - - - - - - - - Hidden Markov model - - HMM - beta12orEarlier - A hidden Markov model representation of a set or alignment of sequences. - - - - - - - - - - Fingerprint - - beta12orEarlier - One or more fingerprints (sequence classifiers) as used in the PRINTS database. - - - - - - - - - - Domainatrix signature - - A protein signature of the type used in the EMBASSY Signature package. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - HMMER NULL hidden Markov model - - beta12orEarlier - beta12orEarlier - true - NULL hidden Markov model representation used by the HMMER package. - - - - - - - - - - Protein family signature - - Protein family signatures cover all domains in the matching proteins and span >80% of the protein length and with no adjacent protein domain signatures or protein region signatures. - beta12orEarlier - true - 1.5 - A protein family signature (sequence classifier) from the InterPro database. - - - - - - - - - - Protein domain signature - - beta12orEarlier - 1.5 - true - A protein domain signature (sequence classifier) from the InterPro database. - Protein domain signatures identify structural or functional domains or other units with defined boundaries. - - - - - - - - - - Protein region signature - - A protein region signature (sequence classifier) from the InterPro database. - true - beta12orEarlier - 1.5 - A protein region signature defines a region which cannot be described as a protein family or domain signature. - - - - - - - - - - Protein repeat signature - - true - 1.5 - A protein repeat signature is a repeated protein motif, that is not in single copy expected to independently fold into a globular domain. - beta12orEarlier - A protein repeat signature (sequence classifier) from the InterPro database. - - - - - - - - - - Protein site signature - - A protein site signature is a classifier for a specific site in a protein. - beta12orEarlier - A protein site signature (sequence classifier) from the InterPro database. - true - 1.5 - - - - - - - - - - Protein conserved site signature - - 1.4 - true - A protein conserved site signature is any short sequence pattern that may contain one or more unique residues and is cannot be described as a active site, binding site or post-translational modification. - A protein conserved site signature (sequence classifier) from the InterPro database. - beta12orEarlier - - - - - - - - - - Protein active site signature - - A protein active site signature (sequence classifier) from the InterPro database. - A protein active site signature corresponds to an enzyme catalytic pocket. An active site typically includes non-contiguous residues, therefore multiple signatures may be required to describe an active site. ; residues involved in enzymatic reactions for which mutational data is typically available. - true - 1.4 - beta12orEarlier - - - - - - - - - - Protein binding site signature - - 1.4 - A protein binding site signature (sequence classifier) from the InterPro database. - true - A protein binding site signature corresponds to a site that reversibly binds chemical compounds, which are not themselves substrates of the enzymatic reaction. This includes enzyme cofactors and residues involved in electron transport or protein structure modification. - beta12orEarlier - - - - - - - - - - Protein post-translational modification signature - - A protein post-translational modification signature (sequence classifier) from the InterPro database. - A protein post-translational modification signature corresponds to sites that undergo modification of the primary structure, typically to activate or de-activate a function. For example, methylation, sumoylation, glycosylation etc. The modification might be permanent or reversible. - 1.4 - beta12orEarlier - true - - - - - - - - - - Sequence alignment (pair) - - http://semanticscience.org/resource/SIO_010068 - beta12orEarlier - Alignment of exactly two molecular sequences. - - - - - - - - - - Sequence alignment (multiple) - - beta12orEarlier - beta12orEarlier - Alignment of more than two molecular sequences. - true - - - - - - - - - - Sequence alignment (nucleic acid) - - beta12orEarlier - Alignment of multiple nucleotide sequences. - - - - - - - - - - Sequence alignment (protein) - - - Alignment of multiple protein sequences. - beta12orEarlier - - - - - - - - - - Sequence alignment (hybrid) - - Alignment of multiple molecular sequences of different types. - Hybrid sequence alignments include for example genomic DNA to EST, cDNA or mRNA. - beta12orEarlier - - - - - - - - - - Sequence alignment (nucleic acid pair) - - - beta12orEarlier - Alignment of exactly two nucleotide sequences. - - - - - - - - - - Sequence alignment (protein pair) - - - Alignment of exactly two protein sequences. - beta12orEarlier - - - - - - - - - - Hybrid sequence alignment (pair) - - true - beta12orEarlier - beta12orEarlier - Alignment of exactly two molecular sequences of different types. - - - - - - - - - - Multiple nucleotide sequence alignment - - beta12orEarlier - Alignment of more than two nucleotide sequences. - true - beta12orEarlier - - - - - - - - - - Multiple protein sequence alignment - - true - beta12orEarlier - beta12orEarlier - Alignment of more than two protein sequences. - - - - - - - - - - Alignment score or penalty - - beta12orEarlier - A simple floating point number defining the penalty for opening or extending a gap in an alignment. - - - - - - - - - - Score end gaps control - - beta12orEarlier - beta12orEarlier - Whether end gaps are scored or not. - true - - - - - - - - - - Aligned sequence order - - beta12orEarlier - beta12orEarlier - true - Controls the order of sequences in an output sequence alignment. - - - - - - - - - - Gap opening penalty - - A penalty for opening a gap in an alignment. - beta12orEarlier - - - - - - - - - - Gap extension penalty - - A penalty for extending a gap in an alignment. - beta12orEarlier - - - - - - - - - - Gap separation penalty - - beta12orEarlier - A penalty for gaps that are close together in an alignment. - - - - - - - - - - Terminal gap penalty - - beta12orEarlier - A penalty for gaps at the termini of an alignment, either from the N/C terminal of protein or 5'/3' terminal of nucleotide sequences. - true - beta12orEarlier - - - - - - - - - - - Match reward score - - beta12orEarlier - The score for a 'match' used in various sequence database search applications with simple scoring schemes. - - - - - - - - - - Mismatch penalty score - - beta12orEarlier - The score (penalty) for a 'mismatch' used in various alignment and sequence database search applications with simple scoring schemes. - - - - - - - - - - Drop off score - - This is the threshold drop in score at which extension of word alignment is halted. - beta12orEarlier - - - - - - - - - - Gap opening penalty (integer) - - beta12orEarlier - true - A simple floating point number defining the penalty for opening a gap in an alignment. - beta12orEarlier - - - - - - - - - - Gap opening penalty (float) - - beta12orEarlier - beta12orEarlier - A simple floating point number defining the penalty for opening a gap in an alignment. - true - - - - - - - - - - Gap extension penalty (integer) - - true - A simple floating point number defining the penalty for extending a gap in an alignment. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Gap extension penalty (float) - - beta12orEarlier - true - A simple floating point number defining the penalty for extending a gap in an alignment. - beta12orEarlier - - - - - - - - - - Gap separation penalty (integer) - - A simple floating point number defining the penalty for gaps that are close together in an alignment. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Gap separation penalty (float) - - beta12orEarlier - true - beta12orEarlier - A simple floating point number defining the penalty for gaps that are close together in an alignment. - - - - - - - - - - Terminal gap opening penalty - - beta12orEarlier - A number defining the penalty for opening gaps at the termini of an alignment, either from the N/C terminal of protein or 5'/3' terminal of nucleotide sequences. - - - - - - - - - - Terminal gap extension penalty - - A number defining the penalty for extending gaps at the termini of an alignment, either from the N/C terminal of protein or 5'/3' terminal of nucleotide sequences. - beta12orEarlier - - - - - - - - - - Sequence identity - - Sequence identity is the number (%) of matches (identical characters) in positions from an alignment of two molecular sequences. - beta12orEarlier - - - - - - - - - - Sequence similarity - - beta12orEarlier - Sequence similarity is the similarity (expressed as a percentage) of two molecular sequences calculated from their alignment, a scoring matrix for scoring characters substitutions and penalties for gap insertion and extension. - Data Type is float probably. - - - - - - - - - - Sequence alignment metadata (quality report) - - beta12orEarlier - true - beta12orEarlier - Data on molecular sequence alignment quality (estimated accuracy). - - - - - - - - - - Sequence alignment report (site conservation) - - beta12orEarlier - Data on character conservation in a molecular sequence alignment. - 1.4 - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. Use this concept for calculated substitution rates, relative site variability, data on sites with biased properties, highly conserved or very poorly conserved sites, regions, blocks etc. - true - - - - - - - - - - Sequence alignment report (site correlation) - - 1.4 - beta12orEarlier - Data on correlations between sites in a molecular sequence alignment, typically to identify possible covarying positions and predict contacts or structural constraints in protein structures. - true - - - - - - - - - - Sequence-profile alignment (Domainatrix signature) - - beta12orEarlier - Alignment of molecular sequences to a Domainatrix signature (representing a sequence alignment). - beta12orEarlier - true - - - - - - - - - - Sequence-profile alignment (HMM) - - beta12orEarlier - 1.5 - true - Alignment of molecular sequence(s) to a hidden Markov model(s). - - - - - - - - - - Sequence-profile alignment (fingerprint) - - Alignment of molecular sequences to a protein fingerprint from the PRINTS database. - 1.5 - beta12orEarlier - true - - - - - - - - - - Phylogenetic continuous quantitative data - - beta12orEarlier - Phylogenetic continuous quantitative characters - Quantitative traits - Continuous quantitative data that may be read during phylogenetic tree calculation. - - - - - - - - - - Phylogenetic discrete data - - Discrete characters - Character data with discrete states that may be read during phylogenetic tree calculation. - Phylogenetic discrete states - beta12orEarlier - Discretely coded characters - - - - - - - - - - Phylogenetic character cliques - - One or more cliques of mutually compatible characters that are generated, for example from analysis of discrete character data, and are used to generate a phylogeny. - Phylogenetic report (cliques) - beta12orEarlier - - - - - - - - - - Phylogenetic invariants - - - - - - - - Phylogenetic invariants data for testing alternative tree topologies. - beta12orEarlier - Phylogenetic report (invariants) - - - - - - - - - - Phylogenetic report - - beta12orEarlier - A report of data concerning or derived from a phylogenetic tree, or from comparing two or more phylogenetic trees. - Phylogenetic tree report - 1.5 - Phylogenetic report - Phylogenetic tree-derived report - This is a broad data type and is used for example for reports on confidence, shape or stratigraphic (age) data derived from phylogenetic tree analysis. - true - - - - - - - - - - DNA substitution model - - Substitution model - Phylogenetic tree report (DNA substitution model) - Sequence alignment report (DNA substitution model) - beta12orEarlier - A model of DNA substitution that explains a DNA sequence alignment, derived from phylogenetic tree analysis. - - - - - - - - - - Phylogenetic tree report (tree shape) - - beta12orEarlier - true - 1.4 - Data about the shape of a phylogenetic tree. - - - - - - - - - - Phylogenetic tree report (tree evaluation) - - beta12orEarlier - true - 1.4 - Data on the confidence of a phylogenetic tree. - - - - - - - - - - Phylogenetic tree distances - - beta12orEarlier - Phylogenetic tree report (tree distances) - Distances, such as Branch Score distance, between two or more phylogenetic trees. - - - - - - - - - - Phylogenetic tree report (tree stratigraphic) - - beta12orEarlier - 1.4 - true - Molecular clock and stratigraphic (age) data derived from phylogenetic tree analysis. - - - - - - - - - - Phylogenetic character contrasts - - Phylogenetic report (character contrasts) - Independent contrasts for characters used in a phylogenetic tree, or covariances, regressions and correlations between characters for those contrasts. - beta12orEarlier - - - - - - - - - - Comparison matrix (integers) - - beta12orEarlier - Substitution matrix (integers) - beta12orEarlier - Matrix of integer numbers for sequence comparison. - true - - - - - - - - - - Comparison matrix (floats) - - beta12orEarlier - beta12orEarlier - true - Matrix of floating point numbers for sequence comparison. - Substitution matrix (floats) - - - - - - - - - - Comparison matrix (nucleotide) - - Matrix of integer or floating point numbers for nucleotide comparison. - beta12orEarlier - Nucleotide substitution matrix - - - - - - - - - - Comparison matrix (amino acid) - - - Amino acid comparison matrix - beta12orEarlier - Matrix of integer or floating point numbers for amino acid comparison. - Amino acid substitution matrix - - - - - - - - - - Nucleotide comparison matrix (integers) - - Nucleotide substitution matrix (integers) - beta12orEarlier - Matrix of integer numbers for nucleotide comparison. - true - beta12orEarlier - - - - - - - - - - Nucleotide comparison matrix (floats) - - beta12orEarlier - true - Matrix of floating point numbers for nucleotide comparison. - beta12orEarlier - Nucleotide substitution matrix (floats) - - - - - - - - - - Amino acid comparison matrix (integers) - - beta12orEarlier - Matrix of integer numbers for amino acid comparison. - Amino acid substitution matrix (integers) - true - beta12orEarlier - - - - - - - - - - Amino acid comparison matrix (floats) - - beta12orEarlier - Amino acid substitution matrix (floats) - beta12orEarlier - true - Matrix of floating point numbers for amino acid comparison. - - - - - - - - - - Protein features report (membrane regions) - - true - beta12orEarlier - 1.8 - trans- or intra-membrane regions of a protein, typically describing physicochemical properties of the secondary structure elements. - - - - - - - - - - Nucleic acid structure - - - - - - - - 3D coordinate and associated data for a nucleic acid tertiary (3D) structure. - beta12orEarlier - - - - - - - - - - Protein structure - - - - - - - - Protein structures - 3D coordinate and associated data for a protein tertiary (3D) structure. - beta12orEarlier - - - - - - - - - - Protein-ligand complex - - The structure of a protein in complex with a ligand, typically a small molecule such as an enzyme substrate or cofactor, but possibly another macromolecule. - beta12orEarlier - This includes interactions of proteins with atoms, ions and small molecules or macromolecules such as nucleic acids or other polypeptides. For stable inter-polypeptide interactions use 'Protein complex' instead. - - - - - - - - - - Carbohydrate structure - - - - - - - - - - - - - - beta12orEarlier - 3D coordinate and associated data for a carbohydrate (3D) structure. - - - - - - - - - - Small molecule structure - - - - - - - - 3D coordinate and associated data for the (3D) structure of a small molecule, such as any common chemical compound. - CHEBI:23367 - beta12orEarlier - - - - - - - - - - DNA structure - - beta12orEarlier - 3D coordinate and associated data for a DNA tertiary (3D) structure. - - - - - - - - - - RNA structure - - - - - - - - beta12orEarlier - 3D coordinate and associated data for an RNA tertiary (3D) structure. - - - - - - - - - - tRNA structure - - 3D coordinate and associated data for a tRNA tertiary (3D) structure, including tmRNA, snoRNAs etc. - beta12orEarlier - - - - - - - - - - Protein chain - - beta12orEarlier - 3D coordinate and associated data for the tertiary (3D) structure of a polypeptide chain. - - - - - - - - - - Protein domain - - - - - - - - 3D coordinate and associated data for the tertiary (3D) structure of a protein domain. - beta12orEarlier - - - - - - - - - - Protein structure (all atoms) - - beta12orEarlier - 1.5 - true - 3D coordinate and associated data for a protein tertiary (3D) structure (all atoms). - - - - - - - - - - C-alpha trace - - 3D coordinate and associated data for a protein tertiary (3D) structure (typically C-alpha atoms only). - C-beta atoms from amino acid side-chains may be included. - Protein structure (C-alpha atoms) - beta12orEarlier - - - - - - - - - - Protein chain (all atoms) - - 3D coordinate and associated data for a polypeptide chain tertiary (3D) structure (all atoms). - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Protein chain (C-alpha atoms) - - true - 3D coordinate and associated data for a polypeptide chain tertiary (3D) structure (typically C-alpha atoms only). - beta12orEarlier - beta12orEarlier - C-beta atoms from amino acid side-chains may be included. - - - - - - - - - - Protein domain (all atoms) - - 3D coordinate and associated data for a protein domain tertiary (3D) structure (all atoms). - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Protein domain (C-alpha atoms) - - C-beta atoms from amino acid side-chains may be included. - true - 3D coordinate and associated data for a protein domain tertiary (3D) structure (typically C-alpha atoms only). - beta12orEarlier - beta12orEarlier - - - - - - - - - - Structure alignment (pair) - - Alignment (superimposition) of exactly two molecular tertiary (3D) structures. - beta12orEarlier - Pair structure alignment - - - - - - - - - - Structure alignment (multiple) - - beta12orEarlier - beta12orEarlier - true - Alignment (superimposition) of more than two molecular tertiary (3D) structures. - - - - - - - - - - Structure alignment (protein) - - - Protein structure alignment - beta12orEarlier - Alignment (superimposition) of protein tertiary (3D) structures. - - - - - - - - - - Structure alignment (nucleic acid) - - beta12orEarlier - Alignment (superimposition) of nucleic acid tertiary (3D) structures. - Nucleic acid structure alignment - - - - - - - - - - Structure alignment (protein pair) - - - Protein pair structural alignment - beta12orEarlier - Alignment (superimposition) of exactly two protein tertiary (3D) structures. - - - - - - - - - - Multiple protein tertiary structure alignment - - Alignment (superimposition) of more than two protein tertiary (3D) structures. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Structure alignment (protein all atoms) - - 1.5 - Alignment (superimposition) of protein tertiary (3D) structures (all atoms considered). - beta12orEarlier - true - - - - - - - - - - Structure alignment (protein C-alpha atoms) - - Alignment (superimposition) of protein tertiary (3D) structures (typically C-alpha atoms only considered). - C-beta atoms from amino acid side-chains may be considered. - 1.5 - C-alpha trace - true - beta12orEarlier - - - - - - - - - - Pairwise protein tertiary structure alignment (all atoms) - - Alignment (superimposition) of exactly two protein tertiary (3D) structures (all atoms considered). - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - Pairwise protein tertiary structure alignment (C-alpha atoms) - - C-beta atoms from amino acid side-chains may be included. - true - beta12orEarlier - Alignment (superimposition) of exactly two protein tertiary (3D) structures (typically C-alpha atoms only considered). - beta12orEarlier - - - - - - - - - - Multiple protein tertiary structure alignment (all atoms) - - beta12orEarlier - true - Alignment (superimposition) of exactly two protein tertiary (3D) structures (all atoms considered). - beta12orEarlier - - - - - - - - - - Multiple protein tertiary structure alignment (C-alpha atoms) - - beta12orEarlier - Alignment (superimposition) of exactly two protein tertiary (3D) structures (typically C-alpha atoms only considered). - true - beta12orEarlier - C-beta atoms from amino acid side-chains may be included. - - - - - - - - - - Structure alignment (nucleic acid pair) - - - beta12orEarlier - Nucleic acid pair structure alignment - Alignment (superimposition) of exactly two nucleic acid tertiary (3D) structures. - - - - - - - - - - Multiple nucleic acid tertiary structure alignment - - beta12orEarlier - Alignment (superimposition) of more than two nucleic acid tertiary (3D) structures. - true - beta12orEarlier - - - - - - - - - - Structure alignment (RNA) - - RNA structure alignment - Alignment (superimposition) of RNA tertiary (3D) structures. - beta12orEarlier - - - - - - - - - - Structural transformation matrix - - Matrix to transform (rotate/translate) 3D coordinates, typically the transformation necessary to superimpose two molecular structures. - beta12orEarlier - - - - - - - - - - DaliLite hit table - - DaliLite hit table of protein chain tertiary structure alignment data. - The significant and top-scoring hits for regions of the compared structures is shown. Data such as Z-Scores, number of aligned residues, root-mean-square deviation (RMSD) of atoms and sequence identity are given. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Molecular similarity score - - beta12orEarlier - A score reflecting structural similarities of two molecules. - true - beta12orEarlier - - - - - - - - - - Root-mean-square deviation - - RMSD - beta12orEarlier - Root-mean-square deviation (RMSD) is calculated to measure the average distance between superimposed macromolecular coordinates. - - - - - - - - - - Tanimoto similarity score - - beta12orEarlier - A measure of the similarity between two ligand fingerprints. - A ligand fingerprint is derived from ligand structural data from a Protein DataBank file. It reflects the elements or groups present or absent, covalent bonds and bond orders and the bonded environment in terms of SATIS codes and BLEEP atom types. - - - - - - - - - - 3D-1D scoring matrix - - A matrix of 3D-1D scores reflecting the probability of amino acids to occur in different tertiary structural environments. - beta12orEarlier - - - - - - - - - - Amino acid index - - - beta12orEarlier - A table of 20 numerical values which quantify a property (e.g. physicochemical or biochemical) of the common amino acids. - - - - - - - - - - Amino acid index (chemical classes) - - Chemical classes (amino acids) - Chemical classification (small, aliphatic, aromatic, polar, charged etc) of amino acids. - beta12orEarlier - - - - - - - - - - Amino acid pair-wise contact potentials - - Contact potentials (amino acid pair-wise) - Statistical protein contact potentials. - beta12orEarlier - - - - - - - - - - Amino acid index (molecular weight) - - Molecular weights of amino acids. - Molecular weight (amino acids) - beta12orEarlier - - - - - - - - - - Amino acid index (hydropathy) - - Hydrophobic, hydrophilic or charge properties of amino acids. - beta12orEarlier - Hydropathy (amino acids) - - - - - - - - - - Amino acid index (White-Wimley data) - - beta12orEarlier - White-Wimley data (amino acids) - Experimental free energy values for the water-interface and water-octanol transitions for the amino acids. - - - - - - - - - - Amino acid index (van der Waals radii) - - van der Waals radii (amino acids) - Van der Waals radii of atoms for different amino acid residues. - beta12orEarlier - - - - - - - - - - Enzyme report - - true - 1.5 - Protein report (enzyme) - beta12orEarlier - Enzyme report - An informative report on a specific enzyme. - - - - - - - - - - Restriction enzyme report - - An informative report on a specific restriction enzyme such as enzyme reference data. - Restriction enzyme pattern data - beta12orEarlier - 1.5 - This might include name of enzyme, organism, isoschizomers, methylation, source, suppliers, literature references, or data on restriction enzyme patterns such as name of enzyme, recognition site, length of pattern, number of cuts made by enzyme, details of blunt or sticky end cut etc. - Protein report (restriction enzyme) - Restriction enzyme report - true - - - - - - - - - - Peptide molecular weights - - beta12orEarlier - List of molecular weight(s) of one or more proteins or peptides, for example cut by proteolytic enzymes or reagents. - The report might include associated data such as frequency of peptide fragment molecular weights. - - - - - - - - - - Peptide hydrophobic moment - - beta12orEarlier - Report on the hydrophobic moment of a polypeptide sequence. - Hydrophobic moment is a peptides hydrophobicity measured for different angles of rotation. - - - - - - - - - - Protein aliphatic index - - The aliphatic index of a protein. - beta12orEarlier - The aliphatic index is the relative protein volume occupied by aliphatic side chains. - - - - - - - - - - Protein sequence hydropathy plot - - Hydrophobic moment is a peptides hydrophobicity measured for different angles of rotation. - A protein sequence with annotation on hydrophobic or hydrophilic / charged regions, hydrophobicity plot etc. - beta12orEarlier - - - - - - - - - - Protein charge plot - - beta12orEarlier - A plot of the mean charge of the amino acids within a window of specified length as the window is moved along a protein sequence. - - - - - - - - - - Protein solubility - - beta12orEarlier - The solubility or atomic solvation energy of a protein sequence or structure. - Protein solubility data - - - - - - - - - - Protein crystallizability - - beta12orEarlier - Protein crystallizability data - Data on the crystallizability of a protein sequence. - - - - - - - - - - Protein globularity - - Protein globularity data - beta12orEarlier - Data on the stability, intrinsic disorder or globularity of a protein sequence. - - - - - - - - - - Protein titration curve - - - The titration curve of a protein. - beta12orEarlier - - - - - - - - - - Protein isoelectric point - - beta12orEarlier - The isoelectric point of one proteins. - - - - - - - - - - Protein pKa value - - The pKa value of a protein. - beta12orEarlier - - - - - - - - - - Protein hydrogen exchange rate - - beta12orEarlier - The hydrogen exchange rate of a protein. - - - - - - - - - - Protein extinction coefficient - - The extinction coefficient of a protein. - beta12orEarlier - - - - - - - - - - Protein optical density - - The optical density of a protein. - beta12orEarlier - - - - - - - - - - Protein subcellular localization - - Protein report (subcellular localization) - An informative report on protein subcellular localization (nuclear, cytoplasmic, mitochondrial, chloroplast, plastid, membrane etc) or destination (exported / extracellular proteins). - beta12orEarlier - true - beta13 - - - - - - - - - - Peptide immunogenicity data - - An report on allergenicity / immunogenicity of peptides and proteins. - Peptide immunogenicity report - beta12orEarlier - Peptide immunogenicity - This includes data on peptide ligands that elicit an immune response (immunogens), allergic cross-reactivity, predicted antigenicity (Hopp and Woods plot) etc. These data are useful in the development of peptide-specific antibodies or multi-epitope vaccines. Methods might use sequence data (for example motifs) and / or structural data. - - - - - - - - - - MHC peptide immunogenicity report - - A report on the immunogenicity of MHC class I or class II binding peptides. - beta13 - true - beta12orEarlier - - - - - - - - - - Protein structure report - - - Protein structural property - Protein structure-derived report - This includes for example reports on the surface properties (shape, hydropathy, electrostatic patches etc) of a protein structure, protein flexibility or motion, and protein architecture (spatial arrangement of secondary structure). - Protein property (structural) - Annotation on or structural information derived from one or more specific protein 3D structure(s) or structural domains. - beta12orEarlier - Protein report (structure) - Protein structure report (domain) - - - - - - - - - - Protein structural quality report - - Report on the quality of a protein three-dimensional model. - Protein structure report (quality evaluation) - Protein structure validation report - Protein property (structural quality) - Model validation might involve checks for atomic packing, steric clashes, agreement with electron density maps etc. - Protein report (structural quality) - beta12orEarlier - - - - - - - - - - Protein residue interactions - - - - - - - - Residue interaction data - Data on inter-atomic or inter-residue contacts, distances and interactions in protein structure(s) or on the interactions of protein atoms or residues with non-protein groups. - beta12orEarlier - Atom interaction data - - - - - - - - - - Protein flexibility or motion report - - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - Protein property (flexibility or motion) - Informative report on flexibility or motion of a protein structure. - Protein flexibility or motion - beta12orEarlier - true - 1.4 - Protein structure report (flexibility or motion) - - - - - - - - - - Protein solvent accessibility - - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. This concept covers definitions of the protein surface, interior and interfaces, accessible and buried residues, surface accessible pockets, interior inaccessible cavities etc. - beta12orEarlier - Data on the solvent accessible or buried surface area of a protein structure. - - - - - - - - - - Protein surface report - - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - Protein structure report (surface) - 1.4 - Data on the surface properties (shape, hydropathy, electrostatic patches etc) of a protein structure. - beta12orEarlier - true - - - - - - - - - - Ramachandran plot - - beta12orEarlier - Phi/psi angle data or a Ramachandran plot of a protein structure. - - - - - - - - - - Protein dipole moment - - Data on the net charge distribution (dipole moment) of a protein structure. - beta12orEarlier - - - - - - - - - - Protein distance matrix - - beta12orEarlier - A matrix of distances between amino acid residues (for example the C-alpha atoms) in a protein structure. - - - - - - - - - - Protein contact map - - An amino acid residue contact map for a protein structure. - beta12orEarlier - - - - - - - - - - Protein residue 3D cluster - - beta12orEarlier - Report on clusters of contacting residues in protein structures such as a key structural residue network. - - - - - - - - - - Protein hydrogen bonds - - Patterns of hydrogen bonding in protein structures. - beta12orEarlier - - - - - - - - - - Protein non-canonical interactions - - Protein non-canonical interactions report - true - Non-canonical atomic interactions in protein structures. - 1.4 - beta12orEarlier - - - - - - - - - - CATH node - - Information on a node from the CATH database. - The report (for example http://www.cathdb.info/cathnode/1.10.10.10) includes CATH code (of the node and upper levels in the hierarchy), classification text (of appropriate levels in hierarchy), list of child nodes, representative domain and other relevant data and links. - 1.5 - beta12orEarlier - true - CATH classification node report - - - - - - - - - - SCOP node - - true - SCOP classification node - Information on a node from the SCOP database. - 1.5 - beta12orEarlier - - - - - - - - - - EMBASSY domain classification - - beta12orEarlier - beta12orEarlier - true - An EMBASSY domain classification file (DCF) of classification and other data for domains from SCOP or CATH, in EMBL-like format. - - - - - - - - - CATH class - - beta12orEarlier - 1.5 - Information on a protein 'class' node from the CATH database. - true - - - - - - - - - - CATH architecture - - beta12orEarlier - 1.5 - Information on a protein 'architecture' node from the CATH database. - true - - - - - - - - - - CATH topology - - true - 1.5 - Information on a protein 'topology' node from the CATH database. - beta12orEarlier - - - - - - - - - - CATH homologous superfamily - - 1.5 - true - beta12orEarlier - Information on a protein 'homologous superfamily' node from the CATH database. - - - - - - - - - - CATH structurally similar group - - 1.5 - true - beta12orEarlier - Information on a protein 'structurally similar group' node from the CATH database. - - - - - - - - - - CATH functional category - - Information on a protein 'functional category' node from the CATH database. - true - 1.5 - beta12orEarlier - - - - - - - - - - Protein fold recognition report - - Methods use some type of mapping between sequence and fold, for example secondary structure prediction and alignment, profile comparison, sequence properties, homologous sequence search, kernel machines etc. Domains and folds might be taken from SCOP or CATH. - beta12orEarlier - A report on known protein structural domains or folds that are recognized (identified) in protein sequence(s). - true - beta12orEarlier - - - - - - - - - - Protein-protein interaction report - - protein-protein interaction(s), including interactions between protein domains. - beta12orEarlier - true - 1.8 - - - - - - - - - - Protein-ligand interaction report - - beta12orEarlier - An informative report on protein-ligand (small molecule) interaction(s). - - - - - - - - - - Protein-nucleic acid interactions report - - true - protein-DNA/RNA interaction(s). - beta12orEarlier - 1.8 - - - - - - - - - - Nucleic acid melting profile - - Nucleic acid stability profile - A melting (stability) profile calculated the free energy required to unwind and separate the nucleic acid strands, plotted for sliding windows over a sequence. - Data on the dissociation characteristics of a double-stranded nucleic acid molecule (DNA or a DNA/RNA hybrid) during heating. - beta12orEarlier - - - - - - - - - - Nucleic acid enthalpy - - beta12orEarlier - Enthalpy of hybridized or double stranded nucleic acid (DNA or RNA/DNA). - - - - - - - - - - Nucleic acid entropy - - Entropy of hybridized or double stranded nucleic acid (DNA or RNA/DNA). - beta12orEarlier - - - - - - - - - - Nucleic acid melting temperature - - Melting temperature of hybridized or double stranded nucleic acid (DNA or RNA/DNA). - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Nucleic acid stitch profile - - beta12orEarlier - Stitch profile of hybridized or double stranded nucleic acid (DNA or RNA/DNA). - A stitch profile diagram shows partly melted DNA conformations (with probabilities) at a range of temperatures. For example, a stitch profile might show possible loop openings with their location, size, probability and fluctuations at a given temperature. - - - - - - - - - - DNA base pair stacking energies data - - DNA base pair stacking energies data. - beta12orEarlier - - - - - - - - - - DNA base pair twist angle data - - beta12orEarlier - DNA base pair twist angle data. - - - - - - - - - - DNA base trimer roll angles data - - beta12orEarlier - DNA base trimer roll angles data. - - - - - - - - - - Vienna RNA parameters - - RNA parameters used by the Vienna package. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - Vienna RNA structure constraints - - true - Structure constraints used by the Vienna package. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Vienna RNA concentration data - - RNA concentration data used by the Vienna package. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Vienna RNA calculated energy - - beta12orEarlier - beta12orEarlier - true - RNA calculated energy data generated by the Vienna package. - - - - - - - - - - Base pairing probability matrix dotplot - - - beta12orEarlier - Such as generated by the Vienna package. - Dotplot of RNA base pairing probability matrix. - - - - - - - - - - Nucleic acid folding report - - Nucleic acid report (folding) - beta12orEarlier - Nucleic acid report (folding model) - RNA secondary structure folding probablities - A report on an analysis of RNA/DNA folding, minimum folding energies for DNA or RNA sequences, energy landscape of RNA mutants etc. - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - RNA secondary structure folding classification - - - - - - - - - - Codon usage table - - - - - - - - Table of codon usage data calculated from one or more nucleic acid sequences. - A codon usage table might include the codon usage table name, optional comments and a table with columns for codons and corresponding codon usage data. A genetic code can be extracted from or represented by a codon usage table. - beta12orEarlier - - - - - - - - - - Genetic code - - beta12orEarlier - A genetic code for an organism. - A genetic code need not include detailed codon usage information. - - - - - - - - - - Codon adaptation index - - true - A simple measure of synonymous codon usage bias often used to predict gene expression levels. - CAI - beta12orEarlier - beta12orEarlier - - - - - - - - - - Codon usage bias plot - - Synonymous codon usage statistic plot - beta12orEarlier - A plot of the synonymous codon usage calculated for windows over a nucleotide sequence. - - - - - - - - - - Nc statistic - - true - beta12orEarlier - The effective number of codons used in a gene sequence. This reflects how far codon usage of a gene departs from equal usage of synonymous codons. - beta12orEarlier - - - - - - - - - - Codon usage fraction difference - - The differences in codon usage fractions between two codon usage tables. - beta12orEarlier - - - - - - - - - - Pharmacogenomic test report - - beta12orEarlier - The report might correlate gene expression or single-nucleotide polymorphisms with drug efficacy or toxicity. - Data on the influence of genotype on drug response. - - - - - - - - - - Disease report - - - - - - - - An informative report on a specific disease. - For example, an informative report on a specific tumor including nature and origin of the sample, anatomic site, organ or tissue, tumor type, including morphology and/or histologic type, and so on. - beta12orEarlier - Disease report - - - - - - - - - - Linkage disequilibrium (report) - - true - A report on linkage disequilibrium; the non-random association of alleles or polymorphisms at two or more loci (not necessarily on the same chromosome). - 1.8 - beta12orEarlier - - - - - - - - - - Heat map - - - A graphical 2D tabular representation of gene expression data, typically derived from a DNA microarray experiment. - beta12orEarlier - A heat map is a table where rows and columns correspond to different genes and contexts (for example, cells or samples) and the cell color represents the level of expression of a gene that context. - - - - - - - - - - Affymetrix probe sets library file - - true - Affymetrix library file of information about which probes belong to which probe set. - CDF file - beta12orEarlier - beta12orEarlier - - - - - - - - - - Affymetrix probe sets information library file - - true - Affymetrix library file of information about the probe sets such as the gene name with which the probe set is associated. - GIN file - beta12orEarlier - beta12orEarlier - - - - - - - - - - Molecular weights standard fingerprint - - beta12orEarlier - Standard protonated molecular masses from trypsin (modified porcine trypsin, Promega) and keratin peptides, used in EMBOSS. - - - - - - - - - - Metabolic pathway report - - This includes carbohydrate, energy, lipid, nucleotide, amino acid, glycan, PK/NRP, cofactor/vitamin, secondary metabolite, xenobiotics etc. - beta12orEarlier - A report typically including a map (diagram) of a metabolic pathway. - 1.8 - true - - - - - - - - - - Genetic information processing pathway report - - beta12orEarlier - 1.8 - true - genetic information processing pathways. - - - - - - - - - - Environmental information processing pathway report - - true - environmental information processing pathways. - beta12orEarlier - 1.8 - - - - - - - - - - Signal transduction pathway report - - A report typically including a map (diagram) of a signal transduction pathway. - 1.8 - true - beta12orEarlier - - - - - - - - - - Cellular process pathways report - - 1.8 - Topic concernning cellular process pathways. - true - beta12orEarlier - - - - - - - - - - Disease pathway or network report - - true - beta12orEarlier - disease pathways, typically of human disease. - 1.8 - - - - - - - - - - Drug structure relationship map - - A report typically including a map (diagram) of drug structure relationships. - beta12orEarlier - - - - - - - - - - Protein interaction networks - - 1.8 - networks of protein interactions. - true - beta12orEarlier - - - - - - - - - - MIRIAM datatype - - A MIRIAM entry describes a MIRIAM data type including the official name, synonyms, root URI, identifier pattern (regular expression applied to a unique identifier of the data type) and documentation. Each data type can be associated with several resources. Each resource is a physical location of a service (typically a database) providing information on the elements of a data type. Several resources may exist for each data type, provided the same (mirrors) or different information. MIRIAM provides a stable and persistent reference to its data types. - An entry (data type) from the Minimal Information Requested in the Annotation of Biochemical Models (MIRIAM) database of data resources. - beta12orEarlier - true - 1.5 - - - - - - - - - - E-value - - An expectation value (E-Value) is the expected number of observations which are at least as extreme as observations expected to occur by random chance. The E-value describes the number of hits with a given score or better that are expected to occur at random when searching a database of a particular size. It decreases exponentially with the score (S) of a hit. A low E value indicates a more significant score. - beta12orEarlier - A simple floating point number defining the lower or upper limit of an expectation value (E-value). - Expectation value - - - - - - - - - - Z-value - - beta12orEarlier - The z-value is the number of standard deviations a data value is above or below a mean value. - A z-value might be specified as a threshold for reporting hits from database searches. - - - - - - - - - - P-value - - beta12orEarlier - A z-value might be specified as a threshold for reporting hits from database searches. - The P-value is the probability of obtaining by random chance a result that is at least as extreme as an observed result, assuming a NULL hypothesis is true. - - - - - - - - - - Database version information - - true - Ontology version information - 1.5 - Information on a database (or ontology) version, for example name, version number and release date. - beta12orEarlier - - - - - - - - - - Tool version information - - beta12orEarlier - Information on an application version, for example name, version number and release date. - true - 1.5 - - - - - - - - - - CATH version information - - beta12orEarlier - beta12orEarlier - true - Information on a version of the CATH database. - - - - - - - - - - Swiss-Prot to PDB mapping - - Cross-mapping of Swiss-Prot codes to PDB identifiers. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Sequence database cross-references - - Cross-references from a sequence record to other databases. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Job status - - Metadata on the status of a submitted job. - beta12orEarlier - 1.5 - true - Values for EBI services are 'DONE' (job has finished and the results can then be retrieved), 'ERROR' (the job failed or no results where found), 'NOT_FOUND' (the job id is no longer available; job results might be deleted, 'PENDING' (the job is in a queue waiting processing), 'RUNNING' (the job is currently being processed). - - - - - - - - - - Job ID - - 1.0 - The (typically numeric) unique identifier of a submitted job. - beta12orEarlier - true - - - - - - - - - Job type - - 1.5 - true - beta12orEarlier - A label (text token) describing the type of job, for example interactive or non-interactive. - - - - - - - - - - Tool log - - 1.5 - A report of tool-specific metadata on some analysis or process performed, for example a log of diagnostic or error messages. - true - beta12orEarlier - - - - - - - - - - DaliLite log file - - true - beta12orEarlier - DaliLite log file describing all the steps taken by a DaliLite alignment of two protein structures. - beta12orEarlier - - - - - - - - - - STRIDE log file - - STRIDE log file. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - - NACCESS log file - - beta12orEarlier - beta12orEarlier - true - NACCESS log file. - - - - - - - - - - - EMBOSS wordfinder log file - - EMBOSS wordfinder log file. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - EMBOSS domainatrix log file - - beta12orEarlier - EMBOSS (EMBASSY) domainatrix application log file. - beta12orEarlier - true - - - - - - - - - - EMBOSS sites log file - - true - beta12orEarlier - beta12orEarlier - EMBOSS (EMBASSY) sites application log file. - - - - - - - - - - EMBOSS supermatcher error file - - EMBOSS (EMBASSY) supermatcher error file. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - EMBOSS megamerger log file - - beta12orEarlier - beta12orEarlier - EMBOSS megamerger log file. - true - - - - - - - - - - EMBOSS whichdb log file - - beta12orEarlier - true - EMBOSS megamerger log file. - beta12orEarlier - - - - - - - - - - EMBOSS vectorstrip log file - - true - beta12orEarlier - beta12orEarlier - EMBOSS vectorstrip log file. - - - - - - - - - - Username - - A username on a computer system. - beta12orEarlier - - - - - - - - - - - Password - - beta12orEarlier - A password on a computer system. - - - - - - - - - - - Email address - - beta12orEarlier - Moby:Email - A valid email address of an end-user. - Moby:EmailAddress - - - - - - - - - - - Person name - - beta12orEarlier - The name of a person. - - - - - - - - - - - Number of iterations - - 1.5 - Number of iterations of an algorithm. - true - beta12orEarlier - - - - - - - - - - Number of output entities - - Number of entities (for example database hits, sequences, alignments etc) to write to an output file. - 1.5 - beta12orEarlier - true - - - - - - - - - - Hit sort order - - Controls the order of hits (reported matches) in an output file from a database search. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - - Drug report - - - - - - - - An informative report on a specific drug. - beta12orEarlier - Drug annotation - - - - - - - - - - - Phylogenetic tree image - - beta12orEarlier - An image (for viewing or printing) of a phylogenetic tree including (typically) a plot of rooted or unrooted phylogenies, cladograms, circular trees or phenograms and associated information. - See also 'Phylogenetic tree' - - - - - - - - - - RNA secondary structure image - - beta12orEarlier - Image of RNA secondary structure, knots, pseudoknots etc. - - - - - - - - - - Protein secondary structure image - - Image of protein secondary structure. - beta12orEarlier - - - - - - - - - - Structure image - - beta12orEarlier - Image of one or more molecular tertiary (3D) structures. - - - - - - - - - - Sequence alignment image - - beta12orEarlier - Image of two or more aligned molecular sequences possibly annotated with alignment features. - - - - - - - - - - Chemical structure image - - An image of the structure of a small chemical compound. - The molecular identifier and formula are typically included. - Small molecule structure image - beta12orEarlier - - - - - - - - - - Fate map - - - - - - - - - beta12orEarlier - A fate map is a plan of early stage of an embryo such as a blastula, showing areas that are significance to development. - - - - - - - - - - Microarray spots image - - - beta12orEarlier - An image of spots from a microarray experiment. - - - - - - - - - - BioPax term - - beta12orEarlier - A term from the BioPax ontology. - beta12orEarlier - true - - - - - - - - - - GO - - beta12orEarlier - Gene Ontology term - Moby:Annotated_GO_Term - Moby:Annotated_GO_Term_With_Probability - true - A term definition from The Gene Ontology (GO). - beta12orEarlier - Moby:GO_Term - Moby:GOTerm - - - - - - - - - - MeSH - - true - A term from the MeSH vocabulary. - beta12orEarlier - beta12orEarlier - - - - - - - - - - HGNC - - beta12orEarlier - true - A term from the HGNC controlled vocabulary. - beta12orEarlier - - - - - - - - - - NCBI taxonomy vocabulary - - beta12orEarlier - beta12orEarlier - true - A term from the NCBI taxonomy vocabulary. - - - - - - - - - - Plant ontology term - - beta12orEarlier - true - beta12orEarlier - A term from the Plant Ontology (PO). - - - - - - - - - - UMLS - - beta12orEarlier - beta12orEarlier - A term from the UMLS vocabulary. - true - - - - - - - - - - FMA - - beta12orEarlier - Classifies anatomical entities according to their shared characteristics (genus) and distinguishing characteristics (differentia). Specifies the part-whole and spatial relationships of the entities, morphological transformation of the entities during prenatal development and the postnatal life cycle and principles, rules and definitions according to which classes and relationships in the other three components of FMA are represented. - beta12orEarlier - A term from Foundational Model of Anatomy. - true - - - - - - - - - - EMAP - - A term from the EMAP mouse ontology. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - ChEBI - - beta12orEarlier - A term from the ChEBI ontology. - true - beta12orEarlier - - - - - - - - - - MGED - - beta12orEarlier - true - A term from the MGED ontology. - beta12orEarlier - - - - - - - - - - myGrid - - The ontology is provided as two components, the service ontology and the domain ontology. The domain ontology acts provides concepts for core bioinformatics data types and their relations. The service ontology describes the physical and operational features of web services. - beta12orEarlier - true - A term from the myGrid ontology. - beta12orEarlier - - - - - - - - - - GO (biological process) - - beta12orEarlier - true - beta12orEarlier - Data Type is an enumerated string. - A term definition for a biological process from the Gene Ontology (GO). - - - - - - - - - - GO (molecular function) - - A term definition for a molecular function from the Gene Ontology (GO). - beta12orEarlier - Data Type is an enumerated string. - true - beta12orEarlier - - - - - - - - - - GO (cellular component) - - beta12orEarlier - true - A term definition for a cellular component from the Gene Ontology (GO). - beta12orEarlier - Data Type is an enumerated string. - - - - - - - - - - Ontology relation type - - 1.5 - beta12orEarlier - true - A relation type defined in an ontology. - - - - - - - - - - Ontology concept definition - - beta12orEarlier - Ontology class definition - The definition of a concept from an ontology. - - - - - - - - - - Ontology concept comment - - beta12orEarlier - 1.4 - true - A comment on a concept from an ontology. - - - - - - - - - - Ontology concept reference - - beta12orEarlier - true - Reference for a concept from an ontology. - beta12orEarlier - - - - - - - - - - doc2loc document information - - beta12orEarlier - true - The doc2loc output includes the url, format, type and availability code of a document for every service provider. - beta12orEarlier - Information on a published article provided by the doc2loc program. - - - - - - - - - - PDB residue number - - WHATIF: pdb_number - PDBML:PDB_residue_no - beta12orEarlier - A residue identifier (a string) from a PDB file. - - - - - - - - - - Atomic coordinate - - Cartesian coordinate of an atom (in a molecular structure). - beta12orEarlier - Cartesian coordinate - - - - - - - - - - Atomic x coordinate - - WHATIF: PDBx_Cartn_x - Cartesian x coordinate - beta12orEarlier - PDBML:_atom_site.Cartn_x in PDBML - Cartesian x coordinate of an atom (in a molecular structure). - - - - - - - - - - Atomic y coordinate - - WHATIF: PDBx_Cartn_y - Cartesian y coordinate - beta12orEarlier - PDBML:_atom_site.Cartn_y in PDBML - Cartesian y coordinate of an atom (in a molecular structure). - - - - - - - - - - Atomic z coordinate - - PDBML:_atom_site.Cartn_z - WHATIF: PDBx_Cartn_z - Cartesian z coordinate of an atom (in a molecular structure). - beta12orEarlier - Cartesian z coordinate - - - - - - - - - - PDB atom name - - WHATIF: PDBx_type_symbol - beta12orEarlier - WHATIF: PDBx_auth_atom_id - WHATIF: alternate_atom - PDBML:pdbx_PDB_atom_name - WHATIF: atom_type - Identifier (a string) of a specific atom from a PDB file for a molecular structure. - - - - - - - - - - - Protein atom - - Atom data - CHEBI:33250 - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - Data on a single atom from a protein structure. - beta12orEarlier - - - - - - - - - - Protein residue - - beta12orEarlier - Data on a single amino acid residue position in a protein structure. - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - Residue - - - - - - - - - - Atom name - - - Name of an atom. - beta12orEarlier - - - - - - - - - - - PDB residue name - - Three-letter amino acid residue names as used in PDB files. - WHATIF: type - beta12orEarlier - - - - - - - - - - - PDB model number - - Identifier of a model structure from a PDB file. - beta12orEarlier - PDBML:pdbx_PDB_model_num - Model number - WHATIF: model_number - - - - - - - - - - - CATH domain report - - beta12orEarlier - true - beta13 - The report (for example http://www.cathdb.info/domain/1cukA01) includes CATH codes for levels in the hierarchy for the domain, level descriptions and relevant data and links. - Summary of domain classification information for a CATH domain. - - - - - - - - - - CATH representative domain sequences (ATOM) - - beta12orEarlier - beta12orEarlier - FASTA sequence database (based on ATOM records in PDB) for CATH domains (clustered at different levels of sequence identity). - true - - - - - - - - - - CATH representative domain sequences (COMBS) - - true - FASTA sequence database (based on COMBS sequence data) for CATH domains (clustered at different levels of sequence identity). - beta12orEarlier - beta12orEarlier - - - - - - - - - - CATH domain sequences (ATOM) - - true - FASTA sequence database for all CATH domains (based on PDB ATOM records). - beta12orEarlier - beta12orEarlier - - - - - - - - - - CATH domain sequences (COMBS) - - FASTA sequence database for all CATH domains (based on COMBS sequence data). - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Sequence version - - beta12orEarlier - Information on an molecular sequence version. - Sequence version information - - - - - - - - - - Score - - A numerical value, that is some type of scored value arising for example from a prediction method. - beta12orEarlier - - - - - - - - - - Protein report (function) - - true - For properties that can be mapped to a sequence, use 'Sequence report' instead. - beta13 - Report on general functional properties of specific protein(s). - beta12orEarlier - - - - - - - - - - Gene name (ASPGD) - - 1.3 - beta12orEarlier - true - Name of a gene from Aspergillus Genome Database. - http://www.geneontology.org/doc/GO.xrf_abbs:ASPGD_LOCUS - - - - - - - - - - Gene name (CGD) - - Name of a gene from Candida Genome Database. - true - http://www.geneontology.org/doc/GO.xrf_abbs:CGD_LOCUS - beta12orEarlier - 1.3 - - - - - - - - - - Gene name (dictyBase) - - http://www.geneontology.org/doc/GO.xrf_abbs:dictyBase - beta12orEarlier - 1.3 - true - Name of a gene from dictyBase database. - - - - - - - - - - Gene name (EcoGene primary) - - http://www.geneontology.org/doc/GO.xrf_abbs:ECOGENE_G - Primary name of a gene from EcoGene Database. - EcoGene primary gene name - 1.3 - true - beta12orEarlier - - - - - - - - - - Gene name (MaizeGDB) - - http://www.geneontology.org/doc/GO.xrf_abbs:MaizeGDB_Locus - 1.3 - Name of a gene from MaizeGDB (maize genes) database. - true - beta12orEarlier - - - - - - - - - - Gene name (SGD) - - true - 1.3 - beta12orEarlier - http://www.geneontology.org/doc/GO.xrf_abbs:SGD_LOCUS - Name of a gene from Saccharomyces Genome Database. - - - - - - - - - - Gene name (TGD) - - beta12orEarlier - 1.3 - Name of a gene from Tetrahymena Genome Database. - true - http://www.geneontology.org/doc/GO.xrf_abbs:TGD_LOCUS - - - - - - - - - - Gene name (CGSC) - - beta12orEarlier - 1.3 - true - http://www.geneontology.org/doc/GO.xrf_abbs: CGSC - Symbol of a gene from E.coli Genetic Stock Center. - - - - - - - - - - Gene name (HGNC) - - beta12orEarlier - HUGO symbol - 1.3 - true - HGNC symbol - Official gene name - HUGO gene name - http://www.geneontology.org/doc/GO.xrf_abbs: HGNC_gene - HGNC gene name - HUGO gene symbol - HGNC:[0-9]{1,5} - Gene name (HUGO) - HGNC gene symbol - Symbol of a gene approved by the HUGO Gene Nomenclature Committee. - - - - - - - - - - Gene name (MGD) - - MGI:[0-9]+ - Symbol of a gene from the Mouse Genome Database. - http://www.geneontology.org/doc/GO.xrf_abbs: MGD - 1.3 - true - beta12orEarlier - - - - - - - - - - Gene name (Bacillus subtilis) - - http://www.geneontology.org/doc/GO.xrf_abbs: SUBTILISTG - Symbol of a gene from Bacillus subtilis Genome Sequence Project. - beta12orEarlier - 1.3 - true - - - - - - - - - - Gene ID (PlasmoDB) - - Identifier of a gene from PlasmoDB Plasmodium Genome Resource. - beta12orEarlier - http://www.geneontology.org/doc/GO.xrf_abbs: ApiDB_PlasmoDB - - - - - - - - - - - Gene ID (EcoGene) - - Identifier of a gene from EcoGene Database. - EcoGene Accession - EcoGene ID - beta12orEarlier - - - - - - - - - - - Gene ID (FlyBase) - - beta12orEarlier - Gene identifier from FlyBase database. - http://www.geneontology.org/doc/GO.xrf_abbs: FB - http://www.geneontology.org/doc/GO.xrf_abbs: FlyBase - - - - - - - - - - - Gene ID (GeneDB Glossina morsitans) - - true - http://www.geneontology.org/doc/GO.xrf_abbs: GeneDB_Gmorsitans - beta13 - Gene identifier from Glossina morsitans GeneDB database. - beta12orEarlier - - - - - - - - - - Gene ID (GeneDB Leishmania major) - - Gene identifier from Leishmania major GeneDB database. - true - http://www.geneontology.org/doc/GO.xrf_abbs: GeneDB_Lmajor - beta12orEarlier - beta13 - - - - - - - - - - Gene ID (GeneDB Plasmodium falciparum) - - Gene identifier from Plasmodium falciparum GeneDB database. - true - http://www.geneontology.org/doc/GO.xrf_abbs: GeneDB_Pfalciparum - beta13 - beta12orEarlier - - - - - - - - - - Gene ID (GeneDB Schizosaccharomyces pombe) - - http://www.geneontology.org/doc/GO.xrf_abbs: GeneDB_Spombe - beta12orEarlier - true - beta13 - Gene identifier from Schizosaccharomyces pombe GeneDB database. - - - - - - - - - - Gene ID (GeneDB Trypanosoma brucei) - - Gene identifier from Trypanosoma brucei GeneDB database. - true - beta13 - beta12orEarlier - http://www.geneontology.org/doc/GO.xrf_abbs: GeneDB_Tbrucei - - - - - - - - - - Gene ID (Gramene) - - http://www.geneontology.org/doc/GO.xrf_abbs: GR_gene - beta12orEarlier - http://www.geneontology.org/doc/GO.xrf_abbs: GR_GENE - Gene identifier from Gramene database. - - - - - - - - - - - Gene ID (Virginia microbial) - - beta12orEarlier - http://www.geneontology.org/doc/GO.xrf_abbs: PAMGO_VMD - Gene identifier from Virginia Bioinformatics Institute microbial database. - http://www.geneontology.org/doc/GO.xrf_abbs: VMD - - - - - - - - - - - Gene ID (SGN) - - http://www.geneontology.org/doc/GO.xrf_abbs: SGN - Gene identifier from Sol Genomics Network. - beta12orEarlier - - - - - - - - - - - Gene ID (WormBase) - - - Gene identifier used by WormBase database. - WBGene[0-9]{8} - http://www.geneontology.org/doc/GO.xrf_abbs: WB - http://www.geneontology.org/doc/GO.xrf_abbs: WormBase - beta12orEarlier - - - - - - - - - - - Gene synonym - - Gene name synonym - true - Any name (other than the recommended one) for a gene. - beta12orEarlier - beta12orEarlier - - - - - - - - - - ORF name - - - beta12orEarlier - The name of an open reading frame attributed by a sequencing project. - - - - - - - - - - - Sequence assembly component - - A component of a larger sequence assembly. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - Chromosome annotation (aberration) - - beta12orEarlier - beta12orEarlier - true - A report on a chromosome aberration such as abnormalities in chromosome structure. - - - - - - - - - - Clone ID - - beta12orEarlier - An identifier of a clone (cloned molecular sequence) from a database. - - - - - - - - - - - PDB insertion code - - beta12orEarlier - WHATIF: insertion_code - PDBML:pdbx_PDB_ins_code - An insertion code (part of the residue number) for an amino acid residue from a PDB file. - - - - - - - - - - Atomic occupancy - - WHATIF: PDBx_occupancy - The fraction of an atom type present at a site in a molecular structure. - beta12orEarlier - The sum of the occupancies of all the atom types at a site should not normally significantly exceed 1.0. - - - - - - - - - - Isotropic B factor - - Isotropic B factor (atomic displacement parameter) for an atom from a PDB file. - WHATIF: PDBx_B_iso_or_equiv - beta12orEarlier - - - - - - - - - - Deletion map - - A cytogenetic map is built from a set of mutant cell lines with sub-chromosomal deletions and a reference wild-type line ('genome deletion panel'). The panel is used to map markers onto the genome by comparing mutant to wild-type banding patterns. Markers are linked (occur in the same deleted region) if they share the same banding pattern (presence or absence) as the deletion panel. - beta12orEarlier - A cytogenetic map showing chromosome banding patterns in mutant cell lines relative to the wild type. - Deletion-based cytogenetic map - - - - - - - - - - QTL map - - A genetic map which shows the approximate location of quantitative trait loci (QTL) between two or more markers. - beta12orEarlier - Quantitative trait locus map - - - - - - - - - - Haplotype map - - beta12orEarlier - Moby:Haplotyping_Study_obj - A map of haplotypes in a genome or other sequence, describing common patterns of genetic variation. - - - - - - - - - - Map set data - - beta12orEarlier - Data describing a set of multiple genetic or physical maps, typically sharing a common set of features which are mapped. - Moby:GCP_CorrelatedLinkageMapSet - Moby:GCP_CorrelatedMapSet - - - - - - - - - - Map feature - - beta12orEarlier - true - A feature which may mapped (positioned) on a genetic or other type of map. - Moby:MapFeature - beta12orEarlier - Mappable features may be based on Gramene's notion of map features; see http://www.gramene.org/db/cmap/feature_type_info. - - - - - - - - - - - - Map type - - A designation of the type of map (genetic map, physical map, sequence map etc) or map set. - Map types may be based on Gramene's notion of a map type; see http://www.gramene.org/db/cmap/map_type_info. - 1.5 - true - beta12orEarlier - - - - - - - - - - Protein fold name - - The name of a protein fold. - beta12orEarlier - - - - - - - - - - - Taxon - - Moby:PotentialTaxon - Taxonomy rank - beta12orEarlier - Taxonomic rank - For a complete list of taxonomic ranks see https://www.phenoscape.org/wiki/Taxonomic_Rank_Vocabulary. - The name of a group of organisms belonging to the same taxonomic rank. - Moby:BriefTaxonConcept - - - - - - - - - - - Organism identifier - - - - - - - - beta12orEarlier - A unique identifier of a (group of) organisms. - - - - - - - - - - - Genus name - - beta12orEarlier - The name of a genus of organism. - - - - - - - - - - - Taxonomic classification - - Moby:TaxonName - Moby:GCP_Taxon - beta12orEarlier - The full name for a group of organisms, reflecting their biological classification and (usually) conforming to a standard nomenclature. - Moby:iANT_organism-xml - Taxonomic name - Name components correspond to levels in a taxonomic hierarchy (e.g. 'Genus', 'Species', etc.) Meta information such as a reference where the name was defined and a date might be included. - Taxonomic information - Moby:TaxonScientificName - Moby:TaxonTCS - - - - - - - - - - - iHOP organism ID - - beta12orEarlier - Moby_namespace:iHOPorganism - A unique identifier for an organism used in the iHOP database. - - - - - - - - - - - Genbank common name - - Common name for an organism as used in the GenBank database. - beta12orEarlier - - - - - - - - - - - NCBI taxon - - The name of a taxon from the NCBI taxonomy database. - beta12orEarlier - - - - - - - - - - - Synonym - - beta12orEarlier - Alternative name - beta12orEarlier - true - An alternative for a word. - - - - - - - - - - Misspelling - - A common misspelling of a word. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Acronym - - true - An abbreviation of a phrase or word. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Misnomer - - A term which is likely to be misleading of its meaning. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Author ID - - Information on the authors of a published work. - Moby:Author - beta12orEarlier - - - - - - - - - - - DragonDB author identifier - - An identifier representing an author in the DragonDB database. - beta12orEarlier - - - - - - - - - - - Annotated URI - - beta12orEarlier - A URI along with annotation describing the data found at the address. - Moby:DescribedLink - - - - - - - - - - UniProt keywords - - true - beta12orEarlier - beta12orEarlier - A controlled vocabulary for words and phrases that can appear in the keywords field (KW line) of entries from the UniProt database. - - - - - - - - - - Gene ID (GeneFarm) - - Moby_namespace:GENEFARM_GeneID - Identifier of a gene from the GeneFarm database. - beta12orEarlier - - - - - - - - - - - Blattner number - - beta12orEarlier - Moby_namespace:Blattner_number - The blattner identifier for a gene. - - - - - - - - - - - Gene ID (MIPS Maize) - - MIPS genetic element identifier (Maize) - Identifier for genetic elements in MIPS Maize database. - beta12orEarlier - Moby_namespace:MIPS_GE_Maize - beta13 - true - - - - - - - - - - Gene ID (MIPS Medicago) - - MIPS genetic element identifier (Medicago) - beta12orEarlier - beta13 - true - Moby_namespace:MIPS_GE_Medicago - Identifier for genetic elements in MIPS Medicago database. - - - - - - - - - - Gene name (DragonDB) - - true - The name of an Antirrhinum Gene from the DragonDB database. - beta12orEarlier - Moby_namespace:DragonDB_Gene - 1.3 - - - - - - - - - - Gene name (Arabidopsis) - - Moby_namespace:ArabidopsisGeneSymbol - true - A unique identifier for an Arabidopsis gene, which is an acronym or abbreviation of the gene name. - beta12orEarlier - 1.3 - - - - - - - - - - iHOP symbol - - - - A unique identifier of a protein or gene used in the iHOP database. - Moby_namespace:iHOPsymbol - beta12orEarlier - - - - - - - - - - - Gene name (GeneFarm) - - 1.3 - true - Name of a gene from the GeneFarm database. - Moby_namespace:GENEFARM_GeneName - GeneFarm gene ID - beta12orEarlier - - - - - - - - - - Locus ID - - - - - - - - - A unique name or other identifier of a genetic locus, typically conforming to a scheme that names loci (such as predicted genes) depending on their position in a molecular sequence, for example a completely sequenced genome or chromosome. - Locus name - beta12orEarlier - Locus identifier - - - - - - - - - - - Locus ID (AGI) - - AT[1-5]G[0-9]{5} - AGI ID - Locus identifier for Arabidopsis Genome Initiative (TAIR, TIGR and MIPS databases) - http://www.geneontology.org/doc/GO.xrf_abbs:AGI_LocusCode - Arabidopsis gene loci number - AGI locus code - beta12orEarlier - AGI identifier - - - - - - - - - - - Locus ID (ASPGD) - - beta12orEarlier - http://www.geneontology.org/doc/GO.xrf_abbs: ASPGD - http://www.geneontology.org/doc/GO.xrf_abbs: ASPGDID - Identifier for loci from ASPGD (Aspergillus Genome Database). - - - - - - - - - - - Locus ID (MGG) - - Identifier for loci from Magnaporthe grisea Database at the Broad Institute. - http://www.geneontology.org/doc/GO.xrf_abbs: Broad_MGG - beta12orEarlier - - - - - - - - - - - Locus ID (CGD) - - Identifier for loci from CGD (Candida Genome Database). - http://www.geneontology.org/doc/GO.xrf_abbs: CGDID - beta12orEarlier - CGDID - CGD locus identifier - http://www.geneontology.org/doc/GO.xrf_abbs: CGD - - - - - - - - - - - Locus ID (CMR) - - http://www.geneontology.org/doc/GO.xrf_abbs: TIGR_CMR - Locus identifier for Comprehensive Microbial Resource at the J. Craig Venter Institute. - http://www.geneontology.org/doc/GO.xrf_abbs: JCVI_CMR - beta12orEarlier - - - - - - - - - - - NCBI locus tag - - beta12orEarlier - Moby_namespace:LocusID - Locus ID (NCBI) - http://www.geneontology.org/doc/GO.xrf_abbs: NCBI_locus_tag - Identifier for loci from NCBI database. - - - - - - - - - - - Locus ID (SGD) - - - Identifier for loci from SGD (Saccharomyces Genome Database). - http://www.geneontology.org/doc/GO.xrf_abbs: SGDID - beta12orEarlier - http://www.geneontology.org/doc/GO.xrf_abbs: SGD - SGDID - - - - - - - - - - - Locus ID (MMP) - - Identifier of loci from Maize Mapping Project. - Moby_namespace:MMP_Locus - beta12orEarlier - - - - - - - - - - - Locus ID (DictyBase) - - Moby_namespace:DDB_gene - Identifier of locus from DictyBase (Dictyostelium discoideum). - beta12orEarlier - - - - - - - - - - - Locus ID (EntrezGene) - - Identifier of a locus from EntrezGene database. - beta12orEarlier - Moby_namespace:EntrezGene_ID - Moby_namespace:EntrezGene_EntrezGeneID - - - - - - - - - - - Locus ID (MaizeGDB) - - Identifier of locus from MaizeGDB (Maize genome database). - Moby_namespace:MaizeGDB_Locus - beta12orEarlier - - - - - - - - - - - Quantitative trait locus - - QTL - A QTL sometimes but does not necessarily correspond to a gene. - true - beta12orEarlier - beta12orEarlier - A stretch of DNA that is closely linked to the genes underlying a quantitative trait (a phenotype that varies in degree and depends upon the interactions between multiple genes and their environment). - Moby:SO_QTL - - - - - - - - - - Gene ID (KOME) - - Identifier of a gene from the KOME database. - beta12orEarlier - Moby_namespace:GeneId - - - - - - - - - - - Locus ID (Tropgene) - - Identifier of a locus from the Tropgene database. - Moby:Tropgene_locus - beta12orEarlier - - - - - - - - - - - Alignment - - An alignment of molecular sequences, structures or profiles derived from them. - beta12orEarlier - - - - - - - - - - Atomic property - - General atomic property - Data for an atom (in a molecular structure). - beta12orEarlier - - - - - - - - - - UniProt keyword - - beta12orEarlier - A word or phrase that can appear in the keywords field (KW line) of entries from the UniProt database. - Moby_namespace:SP_KW - http://www.geneontology.org/doc/GO.xrf_abbs: SP_KW - - - - - - - - - - Ordered locus name - - beta12orEarlier - true - A name for a genetic locus conforming to a scheme that names loci (such as predicted genes) depending on their position in a molecular sequence, for example a completely sequenced genome or chromosome. - beta12orEarlier - - - - - - - - - - Sequence coordinates - - - - Map position - Moby:Position - Locus - Sequence co-ordinates - A position in a map (for example a genetic map), either a single position (point) or a region / interval. - Moby:GenePosition - This includes positions in genomes based on a reference sequence. A position may be specified for any mappable object, i.e. anything that may have positional information such as a physical position in a chromosome. Data might include sequence region name, strand, coordinate system name, assembly name, start position and end position. - Moby:HitPosition - beta12orEarlier - Moby:MapPosition - Moby:Locus - Moby:GCP_MapInterval - Moby:GCP_MapPosition - Moby:GCP_MapPoint - PDBML:_atom_site.id - - - - - - - - - - Amino acid property - - Data concerning the intrinsic physical (e.g. structural) or chemical properties of one, more or all amino acids. - Amino acid data - beta12orEarlier - - - - - - - - - - Annotation - - beta12orEarlier - true - beta13 - This is a broad data type and is used a placeholder for other, more specific types. - A human-readable collection of information which (typically) is generated or collated by hand and which describes a biological entity, phenomena or associated primary (e.g. sequence or structural) data, as distinct from the primary data itself and computer-generated reports derived from it. - - - - - - - - - - Map data - - - - - - - - Map attribute - beta12orEarlier - An attribute of a molecular map (genetic or physical), or data extracted from or derived from the analysis of such a map. - - - - - - - - - - Vienna RNA structural data - - true - Data used by the Vienna RNA analysis package. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Sequence mask parameter - - beta12orEarlier - 1.5 - true - Data used to replace (mask) characters in a molecular sequence. - - - - - - - - - - Enzyme kinetics data - - - Data concerning chemical reaction(s) catalysed by enzyme(s). - beta12orEarlier - This is a broad data type and is used a placeholder for other, more specific types. - - - - - - - - - - Michaelis Menten plot - - A plot giving an approximation of the kinetics of an enzyme-catalysed reaction, assuming simple kinetics (i.e. no intermediate or product inhibition, allostericity or cooperativity). It plots initial reaction rate to the substrate concentration (S) from which the maximum rate (vmax) is apparent. - beta12orEarlier - - - - - - - - - - Hanes Woolf plot - - beta12orEarlier - A plot based on the Michaelis Menten equation of enzyme kinetics plotting the ratio of the initial substrate concentration (S) against the reaction velocity (v). - - - - - - - - - - Experimental data - - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - true - Raw data from or annotation on laboratory experiments. - beta12orEarlier - Experimental measurement data - beta13 - - - - - - - - - - - Genome version information - - beta12orEarlier - true - Information on a genome version. - 1.5 - - - - - - - - - - Evidence - - Typically a statement about some data or results, including evidence or the source of a statement, which may include computational prediction, laboratory experiment, literature reference etc. - beta12orEarlier - - - - - - - - - - Sequence record lite - - beta12orEarlier - A molecular sequence and minimal metadata, typically an identifier of the sequence and/or a comment. - true - 1.8 - - - - - - - - - - Sequence - - - - - - - - http://purl.bioontology.org/ontology/MSH/D008969 - Sequences - http://purl.org/biotop/biotop.owl#BioMolecularSequenceInformation - This concept is a placeholder of concepts for primary sequence data including raw sequences and sequence records. It should not normally be used for derivatives such as sequence alignments, motifs or profiles. - beta12orEarlier - One or more molecular sequences, possibly with associated annotation. - - - - - - - - - - Nucleic acid sequence record (lite) - - beta12orEarlier - 1.8 - true - A nucleic acid sequence and minimal metadata, typically an identifier of the sequence and/or a comment. - - - - - - - - - - Protein sequence record (lite) - - 1.8 - Sequence record lite (protein) - beta12orEarlier - A protein sequence and minimal metadata, typically an identifier of the sequence and/or a comment. - true - - - - - - - - - - Report - - You can use this term by default for any textual report, in case you can't find another, more specific term. Reports may be generated automatically or collated by hand and can include metadata on the origin, source, history, ownership or location of some thing. - http://semanticscience.org/resource/SIO_000148 - Document - A human-readable collection of information including annotation on a biological entity or phenomena, computer-generated reports of analysis of primary data (e.g. sequence or structural), and metadata (data about primary data) or any other free (essentially unformatted) text, as distinct from the primary data itself. - beta12orEarlier - - - - - - - - - - Molecular property (general) - - General molecular property - General data for a molecule. - beta12orEarlier - - - - - - - - - - Structural data - - This is a broad data type and is used a placeholder for other, more specific types. - beta12orEarlier - true - Data concerning molecular structural data. - beta13 - - - - - - - - - - - Sequence motif (nucleic acid) - - Nucleic acid sequence motif - DNA sequence motif - A nucleotide sequence motif. - beta12orEarlier - RNA sequence motif - - - - - - - - - - Sequence motif (protein) - - beta12orEarlier - An amino acid sequence motif. - Protein sequence motif - - - - - - - - - - Search parameter - - beta12orEarlier - 1.5 - true - Some simple value controlling a search operation, typically a search of a database. - - - - - - - - - - Database search results - - beta12orEarlier - A report of hits from searching a database of some type. - Search results - Database hits - - - - - - - - - - Secondary structure - - 1.5 - true - beta12orEarlier - The secondary structure assignment (predicted or real) of a nucleic acid or protein. - - - - - - - - - - Matrix - - beta12orEarlier - Array - This is a broad data type and is used a placeholder for other, more specific types. - An array of numerical values. - - - - - - - - - - Alignment data - - beta12orEarlier - 1.8 - true - Data concerning, extracted from, or derived from the analysis of molecular alignment of some type. - This is a broad data type and is used a placeholder for other, more specific types. - Alignment report - - - - - - - - - - Nucleic acid report - - An informative human-readable report about one or more specific nucleic acid molecules, derived from analysis of primary (sequence or structural) data. - beta12orEarlier - - - - - - - - - - Structure report - - An informative report on general information, properties or features of one or more molecular tertiary (3D) structures. - beta12orEarlier - Structure-derived report - - - - - - - - - - Nucleic acid structure data - - Nucleic acid property (structural) - This includes reports on the stiffness, curvature, twist/roll data or other conformational parameters or properties. - Nucleic acid structural property - beta12orEarlier - A report on nucleic acid structure-derived data, describing structural properties of a DNA molecule, or any other annotation or information about specific nucleic acid 3D structure(s). - - - - - - - - - - Molecular property - - beta12orEarlier - SO:0000400 - A report on the physical (e.g. structural) or chemical properties of molecules, or parts of a molecule. - Physicochemical property - - - - - - - - - - DNA base structural data - - Structural data for DNA base pairs or runs of bases, such as energy or angle data. - beta12orEarlier - - - - - - - - - - Database entry version information - - true - beta12orEarlier - 1.5 - Information on a database (or ontology) entry version, such as name (or other identifier) or parent database, unique identifier of entry, data, author and so on. - - - - - - - - - - Accession - - beta12orEarlier - http://semanticscience.org/resource/SIO_000731 - A persistent (stable) and unique identifier, typically identifying an object (entry) from a database. - http://semanticscience.org/resource/SIO_000675 - - - - - - - - - - - SNP - - single nucleotide polymorphism (SNP) in a DNA sequence. - true - beta12orEarlier - 1.8 - - - - - - - - - - Data reference - - A list of database accessions or identifiers are usually included. - Reference to a dataset (or a cross-reference between two datasets), typically one or more entries in a biological database or ontology. - beta12orEarlier - - - - - - - - - - Job identifier - - http://wsio.org/data_009 - An identifier of a submitted job. - beta12orEarlier - - - - - - - - - - - Name - - http://semanticscience.org/resource/SIO_000116 - http://usefulinc.com/ns/doap#name - "http://www.w3.org/2000/01/rdf-schema#label - beta12orEarlier - A name of a thing, which need not necessarily uniquely identify it. - Symbolic name - - - - - - - Closely related, but focusing on labeling and human readability but not on identification. - - - - - - - - - - - Type - - A label (text token) describing the type of a thing, typically an enumerated string (a string with one of a limited set of values). - http://purl.org/dc/elements/1.1/type - 1.5 - beta12orEarlier - true - - - - - - - - - - User ID - - An identifier of a software end-user (typically a person). - beta12orEarlier - - - - - - - - - - - KEGG organism code - - - A three-letter code used in the KEGG databases to uniquely identify organisms. - beta12orEarlier - - - - - - - - - - - Gene name (KEGG GENES) - - beta12orEarlier - KEGG GENES entry name - [a-zA-Z_0-9]+:[a-zA-Z_0-9\.-]* - Name of an entry (gene) from the KEGG GENES database. - Moby_namespace:GeneId - true - 1.3 - - - - - - - - - - BioCyc ID - - - Identifier of an object from one of the BioCyc databases. - beta12orEarlier - - - - - - - - - - - Compound ID (BioCyc) - - - BioCyc compound identifier - Identifier of a compound from the BioCyc chemical compounds database. - BioCyc compound ID - beta12orEarlier - - - - - - - - - - - Reaction ID (BioCyc) - - - - - - - - - beta12orEarlier - Identifier of a biological reaction from the BioCyc reactions database. - - - - - - - - - - - Enzyme ID (BioCyc) - - - BioCyc enzyme ID - beta12orEarlier - Identifier of an enzyme from the BioCyc enzymes database. - - - - - - - - - - - Reaction ID - - - - - - - - - beta12orEarlier - Identifier of a biological reaction from a database. - - - - - - - - - - - Identifier (hybrid) - - An identifier that is re-used for data objects of fundamentally different types (typically served from a single database). - beta12orEarlier - This branch provides an alternative organisation of the concepts nested under 'Accession' and 'Name'. All concepts under here are already included under 'Accession' or 'Name'. - - - - - - - - - - - Molecular property identifier - - - - - - - - beta12orEarlier - Identifier of a molecular property. - - - - - - - - - - - Codon usage table ID - - - - - - - - - - - - - - Identifier of a codon usage table, for example a genetic code. - Codon usage table identifier - beta12orEarlier - - - - - - - - - - - FlyBase primary identifier - - beta12orEarlier - Primary identifier of an object from the FlyBase database. - - - - - - - - - - - WormBase identifier - - beta12orEarlier - Identifier of an object from the WormBase database. - - - - - - - - - - - WormBase wormpep ID - - - Protein identifier used by WormBase database. - CE[0-9]{5} - beta12orEarlier - - - - - - - - - - - Nucleic acid features (codon) - - beta12orEarlier - true - An informative report on a trinucleotide sequence that encodes an amino acid including the triplet sequence, the encoded amino acid or whether it is a start or stop codon. - beta12orEarlier - - - - - - - - - - Map identifier - - - - - - - - An identifier of a map of a molecular sequence. - beta12orEarlier - - - - - - - - - - - Person identifier - - An identifier of a software end-user (typically a person). - beta12orEarlier - - - - - - - - - - - Nucleic acid identifier - - - - - - - - Name or other identifier of a nucleic acid molecule. - beta12orEarlier - - - - - - - - - - - Translation frame specification - - beta12orEarlier - Frame for translation of DNA (3 forward and 3 reverse frames relative to a chromosome). - - - - - - - - - - Genetic code identifier - - - - - - - - An identifier of a genetic code. - beta12orEarlier - - - - - - - - - - - Genetic code name - - - Informal name for a genetic code, typically an organism name. - beta12orEarlier - - - - - - - - - - - File format name - - - Name of a file format such as HTML, PNG, PDF, EMBL, GenBank and so on. - beta12orEarlier - - - - - - - - - - - Sequence profile type - - true - 1.5 - A label (text token) describing a type of sequence profile such as frequency matrix, Gribskov profile, hidden Markov model etc. - beta12orEarlier - - - - - - - - - - Operating system name - - beta12orEarlier - Name of a computer operating system such as Linux, PC or Mac. - - - - - - - - - - - Mutation type - - beta12orEarlier - true - beta12orEarlier - A type of point or block mutation, including insertion, deletion, change, duplication and moves. - - - - - - - - - - Logical operator - - beta12orEarlier - A logical operator such as OR, AND, XOR, and NOT. - - - - - - - - - - - Results sort order - - Possible options including sorting by score, rank, by increasing P-value (probability, i.e. most statistically significant hits given first) and so on. - beta12orEarlier - true - 1.5 - A control of the order of data that is output, for example the order of sequences in an alignment. - - - - - - - - - - Toggle - - beta12orEarlier - A simple parameter that is a toggle (boolean value), typically a control for a modal tool. - true - beta12orEarlier - - - - - - - - - - Sequence width - - true - beta12orEarlier - beta12orEarlier - The width of an output sequence or alignment. - - - - - - - - - - Gap penalty - - beta12orEarlier - A penalty for introducing or extending a gap in an alignment. - - - - - - - - - - Nucleic acid melting temperature - - beta12orEarlier - A temperature concerning nucleic acid denaturation, typically the temperature at which the two strands of a hybridized or double stranded nucleic acid (DNA or RNA/DNA) molecule separate. - Melting temperature - - - - - - - - - - Concentration - - beta12orEarlier - The concentration of a chemical compound. - - - - - - - - - - Window step size - - 1.5 - beta12orEarlier - true - Size of the incremental 'step' a sequence window is moved over a sequence. - - - - - - - - - - EMBOSS graph - - beta12orEarlier - true - beta12orEarlier - An image of a graph generated by the EMBOSS suite. - - - - - - - - - - EMBOSS report - - An application report generated by the EMBOSS suite. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Sequence offset - - true - beta12orEarlier - 1.5 - An offset for a single-point sequence position. - - - - - - - - - - Threshold - - 1.5 - beta12orEarlier - true - A value that serves as a threshold for a tool (usually to control scoring or output). - - - - - - - - - - Protein report (transcription factor) - - beta13 - true - This might include conformational or physicochemical properties, as well as sequence information for transcription factor(s) binding sites. - An informative report on a transcription factor protein. - Transcription factor binding site data - beta12orEarlier - - - - - - - - - - Database category name - - true - The name of a category of biological or bioinformatics database. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Sequence profile name - - beta12orEarlier - Name of a sequence profile. - true - beta12orEarlier - - - - - - - - - - Color - - Specification of one or more colors. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Rendering parameter - - true - beta12orEarlier - 1.5 - A parameter that is used to control rendering (drawing) to a device or image. - Graphics parameter - Graphical parameter - - - - - - - - - - Sequence name - - - Any arbitrary name of a molecular sequence. - beta12orEarlier - - - - - - - - - - - Date - - 1.5 - A temporal date. - beta12orEarlier - true - - - - - - - - - - Word composition - - beta12orEarlier - Word composition data for a molecular sequence. - true - beta12orEarlier - - - - - - - - - - - Fickett testcode plot - - A plot of Fickett testcode statistic (identifying protein coding regions) in a nucleotide sequences. - beta12orEarlier - - - - - - - - - - Sequence similarity plot - - - Use this concept for calculated substitution rates, relative site variability, data on sites with biased properties, highly conserved or very poorly conserved sites, regions, blocks etc. - beta12orEarlier - Sequence conservation report - Sequence similarity plot - A plot of sequence similarities identified from word-matching or character comparison. - - - - - - - - - - Helical wheel - - beta12orEarlier - An image of peptide sequence sequence looking down the axis of the helix for highlighting amphipathicity and other properties. - - - - - - - - - - Helical net - - beta12orEarlier - Useful for highlighting amphipathicity and other properties. - An image of peptide sequence sequence in a simple 3,4,3,4 repeating pattern that emulates at a simple level the arrangement of residues around an alpha helix. - - - - - - - - - - Protein sequence properties plot - - true - beta12orEarlier - beta12orEarlier - A plot of general physicochemical properties of a protein sequence. - - - - - - - - - - Protein ionization curve - - - beta12orEarlier - A plot of pK versus pH for a protein. - - - - - - - - - - Sequence composition plot - - - beta12orEarlier - A plot of character or word composition / frequency of a molecular sequence. - - - - - - - - - - Nucleic acid density plot - - - beta12orEarlier - Density plot (of base composition) for a nucleotide sequence. - - - - - - - - - - Sequence trace image - - Image of a sequence trace (nucleotide sequence versus probabilities of each of the 4 bases). - beta12orEarlier - - - - - - - - - - Nucleic acid features (siRNA) - - true - 1.5 - beta12orEarlier - A report on siRNA duplexes in mRNA. - - - - - - - - - - Sequence set (stream) - - beta12orEarlier - true - This concept may be used for sequence sets that are expected to be read and processed a single sequence at a time. - A collection of multiple molecular sequences and (typically) associated metadata that is intended for sequential processing. - beta12orEarlier - - - - - - - - - - FlyBase secondary identifier - - Secondary identifier of an object from the FlyBase database. - Secondary identifier are used to handle entries that were merged with or split from other entries in the database. - beta12orEarlier - - - - - - - - - - - Cardinality - - The number of a certain thing. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Exactly 1 - - beta12orEarlier - beta12orEarlier - A single thing. - true - - - - - - - - - 1 or more - - One or more things. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - Exactly 2 - - Exactly two things. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - 2 or more - - Two or more things. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - Sequence checksum - - A fixed-size datum calculated (by using a hash function) for a molecular sequence, typically for purposes of error detection or indexing. - beta12orEarlier - Hash code - Hash sum - Hash - Hash value - - - - - - - - - - Protein features report (chemical modifications) - - 1.8 - beta12orEarlier - chemical modification of a protein. - true - - - - - - - - - - Error - - beta12orEarlier - Data on an error generated by computer system or tool. - 1.5 - true - - - - - - - - - - Database entry metadata - - beta12orEarlier - Basic information on any arbitrary database entry. - - - - - - - - - - Gene cluster - - beta13 - true - beta12orEarlier - A cluster of similar genes. - - - - - - - - - - Sequence record full - - true - beta12orEarlier - A molecular sequence and comprehensive metadata (such as a feature table), typically corresponding to a full entry from a molecular sequence database. - 1.8 - - - - - - - - - - Plasmid identifier - - An identifier of a plasmid in a database. - beta12orEarlier - - - - - - - - - - - Mutation ID - - - beta12orEarlier - A unique identifier of a specific mutation catalogued in a database. - - - - - - - - - - - Mutation annotation (basic) - - Information describing the mutation itself, the organ site, tissue and type of lesion where the mutation has been identified, description of the patient origin and life-style. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Mutation annotation (prevalence) - - beta12orEarlier - true - An informative report on the prevalence of mutation(s), including data on samples and mutation prevalence (e.g. by tumour type).. - beta12orEarlier - - - - - - - - - - Mutation annotation (prognostic) - - beta12orEarlier - An informative report on mutation prognostic data, such as information on patient cohort, the study settings and the results of the study. - beta12orEarlier - true - - - - - - - - - - Mutation annotation (functional) - - An informative report on the functional properties of mutant proteins including transcriptional activities, promotion of cell growth and tumorigenicity, dominant negative effects, capacity to induce apoptosis, cell-cycle arrest or checkpoints in human cells and so on. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - Codon number - - beta12orEarlier - The number of a codon, for instance, at which a mutation is located. - - - - - - - - - - Tumor annotation - - true - 1.4 - An informative report on a specific tumor including nature and origin of the sample, anatomic site, organ or tissue, tumor type, including morphology and/or histologic type, and so on. - beta12orEarlier - - - - - - - - - - Server metadata - - Basic information about a server on the web, such as an SRS server. - beta12orEarlier - 1.5 - true - - - - - - - - - - Database field name - - The name of a field in a database. - beta12orEarlier - - - - - - - - - - - Sequence cluster ID (SYSTERS) - - SYSTERS cluster ID - Unique identifier of a sequence cluster from the SYSTERS database. - beta12orEarlier - - - - - - - - - - - Ontology metadata - - - - - - - - beta12orEarlier - Data concerning a biological ontology. - - - - - - - - - - Raw SCOP domain classification - - true - beta12orEarlier - Raw SCOP domain classification data files. - beta13 - These are the parsable data files provided by SCOP. - - - - - - - - - - Raw CATH domain classification - - Raw CATH domain classification data files. - These are the parsable data files provided by CATH. - true - beta13 - beta12orEarlier - - - - - - - - - - Heterogen annotation - - 1.4 - true - beta12orEarlier - An informative report on the types of small molecules or 'heterogens' (non-protein groups) that are represented in PDB files. - - - - - - - - - - Phylogenetic property values - - beta12orEarlier - Phylogenetic property values data. - true - beta12orEarlier - - - - - - - - - - Sequence set (bootstrapped) - - 1.5 - beta12orEarlier - Bootstrapping is often performed in phylogenetic analysis. - true - A collection of sequences output from a bootstrapping (resampling) procedure. - - - - - - - - - - Phylogenetic consensus tree - - true - A consensus phylogenetic tree derived from comparison of multiple trees. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Schema - - beta12orEarlier - true - A data schema for organising or transforming data of some type. - 1.5 - - - - - - - - - - DTD - - A DTD (document type definition). - true - beta12orEarlier - 1.5 - - - - - - - - - - XML Schema - - beta12orEarlier - XSD - An XML Schema. - true - 1.5 - - - - - - - - - - Relax-NG schema - - beta12orEarlier - 1.5 - A relax-NG schema. - true - - - - - - - - - - XSLT stylesheet - - 1.5 - beta12orEarlier - An XSLT stylesheet. - true - - - - - - - - - Data resource definition name - - - beta12orEarlier - The name of a data type. - - - - - - - - - - - OBO file format name - - Name of an OBO file format such as OBO-XML, plain and so on. - beta12orEarlier - - - - - - - - - - - Gene ID (MIPS) - - Identifier for genetic elements in MIPS database. - beta12orEarlier - MIPS genetic element identifier - - - - - - - - - - - Sequence identifier (protein) - - An identifier of protein sequence(s) or protein sequence database entries. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Sequence identifier (nucleic acid) - - An identifier of nucleotide sequence(s) or nucleotide sequence database entries. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - EMBL accession - - EMBL ID - beta12orEarlier - EMBL accession number - EMBL identifier - An accession number of an entry from the EMBL sequence database. - - - - - - - - - - - UniProt ID - - - - - - - - UniProtKB identifier - An identifier of a polypeptide in the UniProt database. - UniProtKB entry name - beta12orEarlier - UniProt identifier - UniProt entry name - - - - - - - - - - - GenBank accession - - GenBank ID - GenBank identifier - Accession number of an entry from the GenBank sequence database. - beta12orEarlier - GenBank accession number - - - - - - - - - - - Gramene secondary identifier - - beta12orEarlier - Gramene internal identifier - Gramene internal ID - Secondary (internal) identifier of a Gramene database entry. - Gramene secondary ID - - - - - - - - - - - Sequence variation ID - - - An identifier of an entry from a database of molecular sequence variation. - beta12orEarlier - - - - - - - - - - - Gene ID - - - Gene accession - beta12orEarlier - A unique (and typically persistent) identifier of a gene in a database, that is (typically) different to the gene name/symbol. - Gene code - - - - - - - - - - - Gene name (AceView) - - AceView gene name - 1.3 - true - Name of an entry (gene) from the AceView genes database. - beta12orEarlier - - - - - - - - - - Gene ID (ECK) - - ECK accession - beta12orEarlier - E. coli K-12 gene identifier - Identifier of an E. coli K-12 gene from EcoGene Database. - http://www.geneontology.org/doc/GO.xrf_abbs: ECK - - - - - - - - - - - Gene ID (HGNC) - - HGNC ID - beta12orEarlier - Identifier for a gene approved by the HUGO Gene Nomenclature Committee. - - - - - - - - - - - Gene name - - - The name of a gene, (typically) assigned by a person and/or according to a naming scheme. It may contain white space characters and is typically more intuitive and readable than a gene symbol. It (typically) may be used to identify similar genes in different species and to derive a gene symbol. - Allele name - beta12orEarlier - - - - - - - - - - - Gene name (NCBI) - - beta12orEarlier - 1.3 - NCBI gene name - Name of an entry (gene) from the NCBI genes database. - true - - - - - - - - - - SMILES string - - A specification of a chemical structure in SMILES format. - beta12orEarlier - - - - - - - - - - STRING ID - - Unique identifier of an entry from the STRING database of protein-protein interactions. - beta12orEarlier - - - - - - - - - - - Virus annotation - - An informative report on a specific virus. - true - 1.4 - beta12orEarlier - - - - - - - - - - Virus annotation (taxonomy) - - An informative report on the taxonomy of a specific virus. - beta12orEarlier - true - 1.4 - - - - - - - - - - Reaction ID (SABIO-RK) - - Identifier of a biological reaction from the SABIO-RK reactions database. - beta12orEarlier - [0-9]+ - - - - - - - - - - - Carbohydrate report - - Annotation on or information derived from one or more specific carbohydrate 3D structure(s). - beta12orEarlier - - - - - - - - - - GI number - - beta12orEarlier - NCBI GI number - gi number - A series of digits that are assigned consecutively to each sequence record processed by NCBI. The GI number bears no resemblance to the Accession number of the sequence record. - Nucleotide sequence GI number is shown in the VERSION field of the database record. Protein sequence GI number is shown in the CDS/db_xref field of a nucleotide database record, and the VERSION field of a protein database record. - - - - - - - - - - - NCBI version - - beta12orEarlier - NCBI accession.version - Nucleotide sequence version contains two letters followed by six digits, a dot, and a version number (or for older nucleotide sequence records, the format is one letter followed by five digits, a dot, and a version number). Protein sequence version contains three letters followed by five digits, a dot, and a version number. - An identifier assigned to sequence records processed by NCBI, made of the accession number of the database record followed by a dot and a version number. - accession.version - - - - - - - - - - - Cell line name - - beta12orEarlier - The name of a cell line. - - - - - - - - - - - Cell line name (exact) - - beta12orEarlier - The name of a cell line. - - - - - - - - - - - Cell line name (truncated) - - The name of a cell line. - beta12orEarlier - - - - - - - - - - - Cell line name (no punctuation) - - The name of a cell line. - beta12orEarlier - - - - - - - - - - - Cell line name (assonant) - - The name of a cell line. - beta12orEarlier - - - - - - - - - - - Enzyme ID - - - beta12orEarlier - A unique, persistent identifier of an enzyme. - Enzyme accession - - - - - - - - - - - REBASE enzyme number - - Identifier of an enzyme from the REBASE enzymes database. - beta12orEarlier - - - - - - - - - - - DrugBank ID - - beta12orEarlier - DB[0-9]{5} - Unique identifier of a drug from the DrugBank database. - - - - - - - - - - - GI number (protein) - - beta12orEarlier - protein gi number - A unique identifier assigned to NCBI protein sequence records. - Nucleotide sequence GI number is shown in the VERSION field of the database record. Protein sequence GI number is shown in the CDS/db_xref field of a nucleotide database record, and the VERSION field of a protein database record. - protein gi - - - - - - - - - - - Bit score - - A score derived from the alignment of two sequences, which is then normalized with respect to the scoring system. - Bit scores are normalized with respect to the scoring system and therefore can be used to compare alignment scores from different searches. - beta12orEarlier - - - - - - - - - - Translation phase specification - - beta12orEarlier - Phase for translation of DNA (0, 1 or 2) relative to a fragment of the coding sequence. - Phase - - - - - - - - - - Resource metadata - - Data concerning or describing some core computational resource, as distinct from primary data. This includes metadata on the origin, source, history, ownership or location of some thing. - This is a broad data type and is used a placeholder for other, more specific types. - Provenance metadata - beta12orEarlier - - - - - - - - - - Ontology identifier - - - - - - - - beta12orEarlier - Any arbitrary identifier of an ontology. - - - - - - - - - - - Ontology concept name - - - The name of a concept in an ontology. - beta12orEarlier - - - - - - - - - - - Genome build identifier - - beta12orEarlier - An identifier of a build of a particular genome. - - - - - - - - - - - Pathway or network name - - The name of a biological pathway or network. - beta12orEarlier - - - - - - - - - - - Pathway ID (KEGG) - - - Identifier of a pathway from the KEGG pathway database. - beta12orEarlier - [a-zA-Z_0-9]{2,3}[0-9]{5} - KEGG pathway ID - - - - - - - - - - - Pathway ID (NCI-Nature) - - beta12orEarlier - [a-zA-Z_0-9]+ - Identifier of a pathway from the NCI-Nature pathway database. - - - - - - - - - - - Pathway ID (ConsensusPathDB) - - - beta12orEarlier - Identifier of a pathway from the ConsensusPathDB pathway database. - - - - - - - - - - - Sequence cluster ID (UniRef) - - Unique identifier of an entry from the UniRef database. - UniRef cluster id - UniRef entry accession - beta12orEarlier - - - - - - - - - - - Sequence cluster ID (UniRef100) - - UniRef100 cluster id - beta12orEarlier - UniRef100 entry accession - Unique identifier of an entry from the UniRef100 database. - - - - - - - - - - - Sequence cluster ID (UniRef90) - - UniRef90 entry accession - beta12orEarlier - UniRef90 cluster id - Unique identifier of an entry from the UniRef90 database. - - - - - - - - - - - Sequence cluster ID (UniRef50) - - beta12orEarlier - UniRef50 cluster id - UniRef50 entry accession - Unique identifier of an entry from the UniRef50 database. - - - - - - - - - - - Ontology data - - - - - - - - Data concerning or derived from an ontology. - Ontological data - beta12orEarlier - This is a broad data type and is used a placeholder for other, more specific types. - - - - - - - - - - RNA family report - - beta12orEarlier - An informative report on a specific RNA family or other group of classified RNA sequences. - RNA family annotation - - - - - - - - - - RNA family identifier - - - - - - - - beta12orEarlier - Identifier of an RNA family, typically an entry from a RNA sequence classification database. - - - - - - - - - - - RFAM accession - - - Stable accession number of an entry (RNA family) from the RFAM database. - beta12orEarlier - - - - - - - - - - - Protein signature type - - beta12orEarlier - true - A label (text token) describing a type of protein family signature (sequence classifier) from the InterPro database. - 1.5 - - - - - - - - - - Domain-nucleic acid interaction report - - 1.5 - true - An informative report on protein domain-DNA/RNA interaction(s). - beta12orEarlier - - - - - - - - - - Domain-domain interactions - - 1.8 - An informative report on protein domain-protein domain interaction(s). - beta12orEarlier - true - - - - - - - - - - Domain-domain interaction (indirect) - - true - beta12orEarlier - beta12orEarlier - Data on indirect protein domain-protein domain interaction(s). - - - - - - - - - - Sequence accession (hybrid) - - - - - - - - Accession number of a nucleotide or protein sequence database entry. - beta12orEarlier - - - - - - - - - - - 2D PAGE data - - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - beta13 - beta12orEarlier - true - Data concerning two-dimensional polygel electrophoresis. - - - - - - - - - - - 2D PAGE report - - beta12orEarlier - two-dimensional gel electrophoresis experiments, gels or spots in a gel. - 1.8 - true - - - - - - - - - - Pathway or network accession - - - A persistent, unique identifier of a biological pathway or network (typically a database entry). - beta12orEarlier - - - - - - - - - - - Secondary structure alignment - - Alignment of the (1D representations of) secondary structure of two or more molecules. - beta12orEarlier - - - - - - - - - - ASTD ID - - - beta12orEarlier - Identifier of an object from the ASTD database. - - - - - - - - - - - ASTD ID (exon) - - beta12orEarlier - Identifier of an exon from the ASTD database. - - - - - - - - - - - ASTD ID (intron) - - beta12orEarlier - Identifier of an intron from the ASTD database. - - - - - - - - - - - ASTD ID (polya) - - Identifier of a polyA signal from the ASTD database. - beta12orEarlier - - - - - - - - - - - ASTD ID (tss) - - Identifier of a transcription start site from the ASTD database. - beta12orEarlier - - - - - - - - - - - 2D PAGE spot report - - 2D PAGE spot annotation - beta12orEarlier - An informative report on individual spot(s) from a two-dimensional (2D PAGE) gel. - 1.8 - true - - - - - - - - - - Spot ID - - - beta12orEarlier - Unique identifier of a spot from a two-dimensional (protein) gel. - - - - - - - - - - - Spot serial number - - Unique identifier of a spot from a two-dimensional (protein) gel in the SWISS-2DPAGE database. - beta12orEarlier - - - - - - - - - - - Spot ID (HSC-2DPAGE) - - Unique identifier of a spot from a two-dimensional (protein) gel from a HSC-2DPAGE database. - beta12orEarlier - - - - - - - - - - - Protein-motif interaction - - beta13 - true - Data on the interaction of a protein (or protein domain) with specific structural (3D) and/or sequence motifs. - beta12orEarlier - - - - - - - - - - Strain identifier - - Identifier of a strain of an organism variant, typically a plant, virus or bacterium. - beta12orEarlier - - - - - - - - - - - CABRI accession - - - A unique identifier of an item from the CABRI database. - beta12orEarlier - - - - - - - - - - - Experiment report (genotyping) - - true - Report of genotype experiment including case control, population, and family studies. These might use array based methods and re-sequencing methods. - 1.8 - beta12orEarlier - - - - - - - - - - Genotype experiment ID - - - - - - - - - beta12orEarlier - Identifier of an entry from a database of genotype experiment metadata. - - - - - - - - - - - EGA accession - - beta12orEarlier - Identifier of an entry from the EGA database. - - - - - - - - - - - IPI protein ID - - Identifier of a protein entry catalogued in the International Protein Index (IPI) database. - IPI[0-9]{8} - beta12orEarlier - - - - - - - - - - - RefSeq accession (protein) - - RefSeq protein ID - Accession number of a protein from the RefSeq database. - beta12orEarlier - - - - - - - - - - - EPD ID - - beta12orEarlier - Identifier of an entry (promoter) from the EPD database. - EPD identifier - - - - - - - - - - - TAIR accession - - - beta12orEarlier - Identifier of an entry from the TAIR database. - - - - - - - - - - - TAIR accession (At gene) - - beta12orEarlier - Identifier of an Arabidopsis thaliana gene from the TAIR database. - - - - - - - - - - - UniSTS accession - - beta12orEarlier - Identifier of an entry from the UniSTS database. - - - - - - - - - - - UNITE accession - - beta12orEarlier - Identifier of an entry from the UNITE database. - - - - - - - - - - - UTR accession - - beta12orEarlier - Identifier of an entry from the UTR database. - - - - - - - - - - - UniParc accession - - beta12orEarlier - UPI[A-F0-9]{10} - Accession number of a UniParc (protein sequence) database entry. - UniParc ID - UPI - - - - - - - - - - - mFLJ/mKIAA number - - beta12orEarlier - Identifier of an entry from the Rouge or HUGE databases. - - - - - - - - - - - Fungi annotation - - true - beta12orEarlier - 1.4 - An informative report on a specific fungus. - - - - - - - - - - Fungi annotation (anamorph) - - beta12orEarlier - An informative report on a specific fungus anamorph. - 1.4 - true - - - - - - - - - - Gene features report (exon) - - true - exons in a nucleotide sequences. - 1.8 - beta12orEarlier - - - - - - - - - - Ensembl protein ID - - - Ensembl ID (protein) - beta12orEarlier - Protein ID (Ensembl) - Unique identifier for a protein from the Ensembl database. - - - - - - - - - - - Gene transcriptional features report - - 1.8 - beta12orEarlier - transcription of DNA into RNA including the regulation of transcription. - true - - - - - - - - - - Toxin annotation - - beta12orEarlier - An informative report on a specific toxin. - 1.4 - true - - - - - - - - - - Protein report (membrane protein) - - beta12orEarlier - true - An informative report on a membrane protein. - beta12orEarlier - - - - - - - - - - Protein-drug interaction report - - - - An informative report on tentative or known protein-drug interaction(s). - beta12orEarlier - - - - - - - - - - Map data - - beta12orEarlier - This is a broad data type and is used a placeholder for other, more specific types. - true - beta13 - Data concerning a map of molecular sequence(s). - - - - - - - - - - - Phylogenetic data - - Data concerning phylogeny, typically of molecular sequences, including reports of information concerning or derived from a phylogenetic tree, or from comparing two or more phylogenetic trees. - Phylogenetic data - This is a broad data type and is used a placeholder for other, more specific types. - beta12orEarlier - - - - - - - - - - Protein data - - This is a broad data type and is used a placeholder for other, more specific types. - beta13 - Data concerning one or more protein molecules. - true - beta12orEarlier - - - - - - - - - - Nucleic acid data - - true - Data concerning one or more nucleic acid molecules. - beta13 - beta12orEarlier - This is a broad data type and is used a placeholder for other, more specific types. - - - - - - - - - - Article data - - beta12orEarlier - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. It includes concepts that are best described as scientific text or closely concerned with or derived from text. - Article report - Data concerning, extracted from, or derived from the analysis of a scientific text (or texts) such as a full text article from a scientific journal. - - - - - - - - - - - Parameter - - http://semanticscience.org/resource/SIO_000144 - Tool-specific parameter - beta12orEarlier - http://www.e-lico.eu/ontologies/dmo/DMOP/DMOP.owl#Parameter - Typically a simple numerical or string value that controls the operation of a tool. - Parameters - Tool parameter - - - - - - - - - - Molecular data - - Molecule-specific data - true - Data concerning a specific type of molecule. - beta13 - beta12orEarlier - This is a broad data type and is used a placeholder for other, more specific types. - - - - - - - - - - Molecule report - - An informative report on a specific molecule. - beta12orEarlier - Molecular report - 1.5 - true - - - - - - - - - - - Organism report - - An informative report on a specific organism. - beta12orEarlier - Organism annotation - - - - - - - - - - Experiment report - - Experiment metadata - beta12orEarlier - Experiment annotation - Annotation on a wet lab experiment, such as experimental conditions. - - - - - - - - - - Nucleic acid features report (mutation) - - DNA mutation. - 1.8 - true - beta12orEarlier - - - - - - - - - - Sequence attribute - - An attribute of a molecular sequence, possibly in reference to some other sequence. - Sequence parameter - beta12orEarlier - - - - - - - - - - Sequence tag profile - - SAGE, MPSS and SBS experiments are usually performed to study gene expression. The sequence tags are typically subsequently annotated (after a database search) with the mRNA (and therefore gene) the tag was extracted from. - beta12orEarlier - Sequencing-based expression profile - Output from a serial analysis of gene expression (SAGE), massively parallel signature sequencing (MPSS) or sequencing by synthesis (SBS) experiment. In all cases this is a list of short sequence tags and the number of times it is observed. - - - - - - - - - - Mass spectrometry data - - beta12orEarlier - Data concerning a mass spectrometry measurement. - - - - - - - - - - Protein structure raw data - - beta12orEarlier - Raw data from experimental methods for determining protein structure. - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - - - - - - - - - - Mutation identifier - - An identifier of a mutation. - beta12orEarlier - - - - - - - - - - - Alignment data - - This is a broad data type and is used a placeholder for other, more specific types. This includes entities derived from sequences and structures such as motifs and profiles. - true - beta13 - Data concerning an alignment of two or more molecular sequences, structures or derived data. - beta12orEarlier - - - - - - - - - - - Data index data - - true - Data concerning an index of data. - beta12orEarlier - beta13 - Database index - This is a broad data type and is used a placeholder for other, more specific types. - - - - - - - - - - Amino acid name (single letter) - - beta12orEarlier - Single letter amino acid identifier, e.g. G. - - - - - - - - - - - Amino acid name (three letter) - - beta12orEarlier - Three letter amino acid identifier, e.g. GLY. - - - - - - - - - - - Amino acid name (full name) - - beta12orEarlier - Full name of an amino acid, e.g. Glycine. - - - - - - - - - - - Toxin identifier - - - - - - - - beta12orEarlier - Identifier of a toxin. - - - - - - - - - - - ArachnoServer ID - - Unique identifier of a toxin from the ArachnoServer database. - beta12orEarlier - - - - - - - - - - - Expressed gene list - - beta12orEarlier - true - 1.5 - Gene annotation (expressed gene list) - A simple summary of expressed genes. - - - - - - - - - - BindingDB Monomer ID - - Unique identifier of a monomer from the BindingDB database. - beta12orEarlier - - - - - - - - - - - GO concept name - - true - beta12orEarlier - beta12orEarlier - The name of a concept from the GO ontology. - - - - - - - - - - GO concept ID (biological process) - - [0-9]{7}|GO:[0-9]{7} - beta12orEarlier - An identifier of a 'biological process' concept from the the Gene Ontology. - - - - - - - - - - - GO concept ID (molecular function) - - beta12orEarlier - [0-9]{7}|GO:[0-9]{7} - An identifier of a 'molecular function' concept from the the Gene Ontology. - - - - - - - - - - - GO concept name (cellular component) - - The name of a concept for a cellular component from the GO ontology. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - Northern blot image - - beta12orEarlier - An image arising from a Northern Blot experiment. - - - - - - - - - - Blot ID - - - Unique identifier of a blot from a Northern Blot. - beta12orEarlier - - - - - - - - - - - BlotBase blot ID - - beta12orEarlier - Unique identifier of a blot from a Northern Blot from the BlotBase database. - - - - - - - - - - - Hierarchy - - beta12orEarlier - Raw data on a biological hierarchy, describing the hierarchy proper, hierarchy components and possibly associated annotation. - Hierarchy annotation - - - - - - - - - - Hierarchy identifier - - Identifier of an entry from a database of biological hierarchies. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Brite hierarchy ID - - beta12orEarlier - Identifier of an entry from the Brite database of biological hierarchies. - - - - - - - - - - - Cancer type - - true - A type (represented as a string) of cancer. - beta12orEarlier - beta12orEarlier - - - - - - - - - - BRENDA organism ID - - A unique identifier for an organism used in the BRENDA database. - beta12orEarlier - - - - - - - - - - - UniGene taxon - - The name of a taxon using the controlled vocabulary of the UniGene database. - UniGene organism abbreviation - beta12orEarlier - - - - - - - - - - - UTRdb taxon - - beta12orEarlier - The name of a taxon using the controlled vocabulary of the UTRdb database. - - - - - - - - - - - Catalogue ID - - beta12orEarlier - An identifier of a catalogue of biological resources. - Catalogue identifier - - - - - - - - - - - CABRI catalogue name - - - The name of a catalogue of biological resources from the CABRI database. - beta12orEarlier - - - - - - - - - - - Secondary structure alignment metadata - - An informative report on protein secondary structure alignment-derived data or metadata. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Molecule interaction report - - An informative report on the physical, chemical or other information concerning the interaction of two or more molecules (or parts of molecules). - beta12orEarlier - Molecular interaction report - Molecular interaction data - - - - - - - - - Pathway or network - - - - - - - - Network - beta12orEarlier - Pathway - Primary data about a specific biological pathway or network (the nodes and connections within the pathway or network). - - - - - - - - - - Small molecule data - - true - This is a broad data type and is used a placeholder for other, more specific types. - beta12orEarlier - beta13 - Data concerning one or more small molecules. - - - - - - - - - - Genotype and phenotype data - - beta12orEarlier - true - beta13 - Data concerning a particular genotype, phenotype or a genotype / phenotype relation. - - - - - - - - - - Gene expression data - - - - - - - - beta12orEarlier - Image or hybridisation data for a microarray, typically a study of gene expression. - Microarray data - This is a broad data type and is used a placeholder for other, more specific types. See also http://edamontology.org/data_0931 - - - - - - - - - - Compound ID (KEGG) - - - C[0-9]+ - Unique identifier of a chemical compound from the KEGG database. - beta12orEarlier - KEGG compound ID - KEGG compound identifier - - - - - - - - - - - RFAM name - - - Name (not necessarily stable) an entry (RNA family) from the RFAM database. - beta12orEarlier - - - - - - - - - - - Reaction ID (KEGG) - - - Identifier of a biological reaction from the KEGG reactions database. - R[0-9]+ - beta12orEarlier - - - - - - - - - - - Drug ID (KEGG) - - - beta12orEarlier - Unique identifier of a drug from the KEGG Drug database. - D[0-9]+ - - - - - - - - - - - Ensembl ID - - - beta12orEarlier - ENS[A-Z]*[FPTG][0-9]{11} - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl database. - Ensembl IDs - - - - - - - - - - - ICD identifier - - - - - - - - An identifier of a disease from the International Classification of Diseases (ICD) database. - beta12orEarlier - [A-Z][0-9]+(\.[-[0-9]+])? - - - - - - - - - - - Sequence cluster ID (CluSTr) - - Unique identifier of a sequence cluster from the CluSTr database. - [0-9A-Za-z]+:[0-9]+:[0-9]{1,5}(\.[0-9])? - CluSTr ID - beta12orEarlier - CluSTr cluster ID - - - - - - - - - - - KEGG Glycan ID - - - G[0-9]+ - Unique identifier of a glycan ligand from the KEGG GLYCAN database (a subset of KEGG LIGAND). - beta12orEarlier - - - - - - - - - - - TCDB ID - - beta12orEarlier - OBO file for regular expression. - TC number - [0-9]+\.[A-Z]\.[0-9]+\.[0-9]+\.[0-9]+ - A unique identifier of a family from the transport classification database (TCDB) of membrane transport proteins. - - - - - - - - - - - MINT ID - - MINT\-[0-9]{1,5} - Unique identifier of an entry from the MINT database of protein-protein interactions. - beta12orEarlier - - - - - - - - - - - DIP ID - - Unique identifier of an entry from the DIP database of protein-protein interactions. - beta12orEarlier - DIP[\:\-][0-9]{3}[EN] - - - - - - - - - - - Signaling Gateway protein ID - - beta12orEarlier - Unique identifier of a protein listed in the UCSD-Nature Signaling Gateway Molecule Pages database. - A[0-9]{6} - - - - - - - - - - - Protein modification ID - - - beta12orEarlier - Identifier of a protein modification catalogued in a database. - - - - - - - - - - - RESID ID - - Identifier of a protein modification catalogued in the RESID database. - AA[0-9]{4} - beta12orEarlier - - - - - - - - - - - RGD ID - - - [0-9]{4,7} - beta12orEarlier - Identifier of an entry from the RGD database. - - - - - - - - - - - TAIR accession (protein) - - - - - - - - - AASequence:[0-9]{10} - Identifier of a protein sequence from the TAIR database. - beta12orEarlier - - - - - - - - - - - Compound ID (HMDB) - - HMDB[0-9]{5} - beta12orEarlier - HMDB ID - Identifier of a small molecule metabolite from the Human Metabolome Database (HMDB). - - - - - - - - - - - LIPID MAPS ID - - beta12orEarlier - LM ID - Identifier of an entry from the LIPID MAPS database. - LM(FA|GL|GP|SP|ST|PR|SL|PK)[0-9]{4}([0-9a-zA-Z]{4})? - - - - - - - - - - - PeptideAtlas ID - - Identifier of a peptide from the PeptideAtlas peptide databases. - PDBML:pdbx_PDB_strand_id - beta12orEarlier - PAp[0-9]{8} - - - - - - - - - - - Molecular interaction ID - - Identifier of a report of molecular interactions from a database (typically). - true - beta12orEarlier - 1.7 - - - - - - - - - - BioGRID interaction ID - - [0-9]+ - beta12orEarlier - A unique identifier of an interaction from the BioGRID database. - - - - - - - - - - - Enzyme ID (MEROPS) - - MEROPS ID - Unique identifier of a peptidase enzyme from the MEROPS database. - beta12orEarlier - S[0-9]{2}\.[0-9]{3} - - - - - - - - - - - Mobile genetic element ID - - - An identifier of a mobile genetic element. - beta12orEarlier - - - - - - - - - - - ACLAME ID - - beta12orEarlier - mge:[0-9]+ - An identifier of a mobile genetic element from the Aclame database. - - - - - - - - - - - SGD ID - - - PWY[a-zA-Z_0-9]{2}\-[0-9]{3} - beta12orEarlier - Identifier of an entry from the Saccharomyces genome database (SGD). - - - - - - - - - - - Book ID - - - beta12orEarlier - Unique identifier of a book. - - - - - - - - - - - ISBN - - beta12orEarlier - (ISBN)?(-13|-10)?[:]?[ ]?([0-9]{2,3}[ -]?)?[0-9]{1,5}[ -]?[0-9]{1,7}[ -]?[0-9]{1,6}[ -]?([0-9]|X) - The International Standard Book Number (ISBN) is for identifying printed books. - - - - - - - - - - - Compound ID (3DMET) - - B[0-9]{5} - 3DMET ID - beta12orEarlier - Identifier of a metabolite from the 3DMET database. - - - - - - - - - - - MatrixDB interaction ID - - ([A-NR-Z][0-9][A-Z][A-Z0-9][A-Z0-9][0-9])_.*|([OPQ][0-9][A-Z0-9][A-Z0-9][A-Z0-9][0-9]_.*)|(GAG_.*)|(MULT_.*)|(PFRAG_.*)|(LIP_.*)|(CAT_.*) - A unique identifier of an interaction from the MatrixDB database. - beta12orEarlier - - - - - - - - - - - cPath ID - - - [0-9]+ - These identifiers are unique within the cPath database, however, they are not stable between releases. - beta12orEarlier - A unique identifier for pathways, reactions, complexes and small molecules from the cPath (Pathway Commons) database. - - - - - - - - - - - PubChem bioassay ID - - - Identifier of an assay from the PubChem database. - [0-9]+ - beta12orEarlier - - - - - - - - - - - PubChem ID - - - PubChem identifier - beta12orEarlier - Identifier of an entry from the PubChem database. - - - - - - - - - - - Reaction ID (MACie) - - beta12orEarlier - M[0-9]{4} - MACie entry number - Identifier of an enzyme reaction mechanism from the MACie database. - - - - - - - - - - - Gene ID (miRBase) - - beta12orEarlier - miRNA name - miRNA ID - Identifier for a gene from the miRBase database. - MI[0-9]{7} - miRNA identifier - - - - - - - - - - - Gene ID (ZFIN) - - Identifier for a gene from the Zebrafish information network genome (ZFIN) database. - beta12orEarlier - ZDB\-GENE\-[0-9]+\-[0-9]+ - - - - - - - - - - - Reaction ID (Rhea) - - [0-9]{5} - Identifier of an enzyme-catalysed reaction from the Rhea database. - beta12orEarlier - - - - - - - - - - - Pathway ID (Unipathway) - - UPA[0-9]{5} - upaid - beta12orEarlier - Identifier of a biological pathway from the Unipathway database. - - - - - - - - - - - Compound ID (ChEMBL) - - Identifier of a small molecular from the ChEMBL database. - ChEMBL ID - beta12orEarlier - [0-9]+ - - - - - - - - - - - LGICdb identifier - - Unique identifier of an entry from the Ligand-gated ion channel (LGICdb) database. - beta12orEarlier - [a-zA-Z_0-9]+ - - - - - - - - - - - Reaction kinetics ID (SABIO-RK) - - Identifier of a biological reaction (kinetics entry) from the SABIO-RK reactions database. - [0-9]+ - beta12orEarlier - - - - - - - - - - - PharmGKB ID - - - beta12orEarlier - Identifier of an entry from the pharmacogenetics and pharmacogenomics knowledge base (PharmGKB). - PA[0-9]+ - - - - - - - - - - - Pathway ID (PharmGKB) - - - PA[0-9]+ - Identifier of a pathway from the pharmacogenetics and pharmacogenomics knowledge base (PharmGKB). - beta12orEarlier - - - - - - - - - - - Disease ID (PharmGKB) - - - Identifier of a disease from the pharmacogenetics and pharmacogenomics knowledge base (PharmGKB). - beta12orEarlier - PA[0-9]+ - - - - - - - - - - - Drug ID (PharmGKB) - - - beta12orEarlier - Identifier of a drug from the pharmacogenetics and pharmacogenomics knowledge base (PharmGKB). - PA[0-9]+ - - - - - - - - - - - Drug ID (TTD) - - DAP[0-9]+ - Identifier of a drug from the Therapeutic Target Database (TTD). - beta12orEarlier - - - - - - - - - - - Target ID (TTD) - - TTDS[0-9]+ - Identifier of a target protein from the Therapeutic Target Database (TTD). - beta12orEarlier - - - - - - - - - - - Cell type identifier - - beta12orEarlier - Cell type ID - A unique identifier of a type or group of cells. - - - - - - - - - - - NeuronDB ID - - [0-9]+ - beta12orEarlier - A unique identifier of a neuron from the NeuronDB database. - - - - - - - - - - - NeuroMorpho ID - - beta12orEarlier - A unique identifier of a neuron from the NeuroMorpho database. - [a-zA-Z_0-9]+ - - - - - - - - - - - Compound ID (ChemIDplus) - - Identifier of a chemical from the ChemIDplus database. - ChemIDplus ID - [0-9]+ - beta12orEarlier - - - - - - - - - - - Pathway ID (SMPDB) - - beta12orEarlier - Identifier of a pathway from the Small Molecule Pathway Database (SMPDB). - SMP[0-9]{5} - - - - - - - - - - - BioNumbers ID - - Identifier of an entry from the BioNumbers database of key numbers and associated data in molecular biology. - [0-9]+ - beta12orEarlier - - - - - - - - - - - T3DB ID - - beta12orEarlier - T3D[0-9]+ - Unique identifier of a toxin from the Toxin and Toxin Target Database (T3DB) database. - - - - - - - - - - - Carbohydrate identifier - - - - - - - - - - - - - - beta12orEarlier - Identifier of a carbohydrate. - - - - - - - - - - - GlycomeDB ID - - Identifier of an entry from the GlycomeDB database. - beta12orEarlier - [0-9]+ - - - - - - - - - - - LipidBank ID - - beta12orEarlier - [a-zA-Z_0-9]+[0-9]+ - Identifier of an entry from the LipidBank database. - - - - - - - - - - - CDD ID - - beta12orEarlier - cd[0-9]{5} - Identifier of a conserved domain from the Conserved Domain Database. - - - - - - - - - - - MMDB ID - - [0-9]{1,5} - beta12orEarlier - An identifier of an entry from the MMDB database. - MMDB accession - - - - - - - - - - - iRefIndex ID - - Unique identifier of an entry from the iRefIndex database of protein-protein interactions. - beta12orEarlier - [0-9]+ - - - - - - - - - - - ModelDB ID - - Unique identifier of an entry from the ModelDB database. - [0-9]+ - beta12orEarlier - - - - - - - - - - - Pathway ID (DQCS) - - [0-9]+ - Identifier of a signaling pathway from the Database of Quantitative Cellular Signaling (DQCS). - beta12orEarlier - - - - - - - - - - - Ensembl ID (Homo sapiens) - - beta12orEarlier - true - beta12orEarlier - ENS([EGTP])[0-9]{11} - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database (Homo sapiens division). - - - - - - - - - - Ensembl ID ('Bos taurus') - - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Bos taurus' division). - true - beta12orEarlier - ENSBTA([EGTP])[0-9]{11} - - - - - - - - - - Ensembl ID ('Canis familiaris') - - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Canis familiaris' division). - true - ENSCAF([EGTP])[0-9]{11} - beta12orEarlier - - - - - - - - - - Ensembl ID ('Cavia porcellus') - - ENSCPO([EGTP])[0-9]{11} - true - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Cavia porcellus' division). - beta12orEarlier - - - - - - - - - - Ensembl ID ('Ciona intestinalis') - - true - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Ciona intestinalis' division). - beta12orEarlier - beta12orEarlier - ENSCIN([EGTP])[0-9]{11} - - - - - - - - - - Ensembl ID ('Ciona savignyi') - - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Ciona savignyi' division). - ENSCSAV([EGTP])[0-9]{11} - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Ensembl ID ('Danio rerio') - - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Danio rerio' division). - true - beta12orEarlier - beta12orEarlier - ENSDAR([EGTP])[0-9]{11} - - - - - - - - - - Ensembl ID ('Dasypus novemcinctus') - - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Dasypus novemcinctus' division). - beta12orEarlier - beta12orEarlier - ENSDNO([EGTP])[0-9]{11} - true - - - - - - - - - - Ensembl ID ('Echinops telfairi') - - ENSETE([EGTP])[0-9]{11} - true - beta12orEarlier - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Echinops telfairi' division). - - - - - - - - - - Ensembl ID ('Erinaceus europaeus') - - true - ENSEEU([EGTP])[0-9]{11} - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Erinaceus europaeus' division). - beta12orEarlier - - - - - - - - - - Ensembl ID ('Felis catus') - - beta12orEarlier - true - ENSFCA([EGTP])[0-9]{11} - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Felis catus' division). - beta12orEarlier - - - - - - - - - - Ensembl ID ('Gallus gallus') - - ENSGAL([EGTP])[0-9]{11} - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Gallus gallus' division). - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Ensembl ID ('Gasterosteus aculeatus') - - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Gasterosteus aculeatus' division). - true - ENSGAC([EGTP])[0-9]{11} - beta12orEarlier - - - - - - - - - - Ensembl ID ('Homo sapiens') - - ENSHUM([EGTP])[0-9]{11} - beta12orEarlier - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Homo sapiens' division). - true - - - - - - - - - - Ensembl ID ('Loxodonta africana') - - beta12orEarlier - true - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Loxodonta africana' division). - ENSLAF([EGTP])[0-9]{11} - beta12orEarlier - - - - - - - - - - Ensembl ID ('Macaca mulatta') - - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Macaca mulatta' division). - beta12orEarlier - ENSMMU([EGTP])[0-9]{11} - true - beta12orEarlier - - - - - - - - - - Ensembl ID ('Monodelphis domestica') - - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Monodelphis domestica' division). - true - ENSMOD([EGTP])[0-9]{11} - beta12orEarlier - - - - - - - - - - Ensembl ID ('Mus musculus') - - ENSMUS([EGTP])[0-9]{11} - true - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Mus musculus' division). - beta12orEarlier - beta12orEarlier - - - - - - - - - - Ensembl ID ('Myotis lucifugus') - - beta12orEarlier - ENSMLU([EGTP])[0-9]{11} - true - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Myotis lucifugus' division). - - - - - - - - - - Ensembl ID ("Ornithorhynchus anatinus") - - beta12orEarlier - true - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Ornithorhynchus anatinus' division). - ENSOAN([EGTP])[0-9]{11} - beta12orEarlier - - - - - - - - - - Ensembl ID ('Oryctolagus cuniculus') - - beta12orEarlier - ENSOCU([EGTP])[0-9]{11} - true - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Oryctolagus cuniculus' division). - beta12orEarlier - - - - - - - - - - Ensembl ID ('Oryzias latipes') - - ENSORL([EGTP])[0-9]{11} - true - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Oryzias latipes' division). - beta12orEarlier - - - - - - - - - - Ensembl ID ('Otolemur garnettii') - - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Otolemur garnettii' division). - true - beta12orEarlier - ENSSAR([EGTP])[0-9]{11} - - - - - - - - - - Ensembl ID ('Pan troglodytes') - - beta12orEarlier - beta12orEarlier - ENSPTR([EGTP])[0-9]{11} - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Pan troglodytes' division). - true - - - - - - - - - - Ensembl ID ('Rattus norvegicus') - - beta12orEarlier - true - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Rattus norvegicus' division). - ENSRNO([EGTP])[0-9]{11} - beta12orEarlier - - - - - - - - - - Ensembl ID ('Spermophilus tridecemlineatus') - - true - beta12orEarlier - ENSSTO([EGTP])[0-9]{11} - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Spermophilus tridecemlineatus' division). - beta12orEarlier - - - - - - - - - - Ensembl ID ('Takifugu rubripes') - - beta12orEarlier - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Takifugu rubripes' division). - ENSFRU([EGTP])[0-9]{11} - true - - - - - - - - - - Ensembl ID ('Tupaia belangeri') - - beta12orEarlier - beta12orEarlier - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Tupaia belangeri' division). - true - ENSTBE([EGTP])[0-9]{11} - - - - - - - - - - Ensembl ID ('Xenopus tropicalis') - - Identifier of an entry (exon, gene, transcript or protein) from the Ensembl 'core' database ('Xenopus tropicalis' division). - beta12orEarlier - beta12orEarlier - true - ENSXET([EGTP])[0-9]{11} - - - - - - - - - - CATH identifier - - beta12orEarlier - Identifier of a protein domain (or other node) from the CATH database. - - - - - - - - - - - CATH node ID (family) - - beta12orEarlier - A code number identifying a family from the CATH database. - 2.10.10.10 - - - - - - - - - - - Enzyme ID (CAZy) - - Identifier of an enzyme from the CAZy enzymes database. - beta12orEarlier - CAZy ID - - - - - - - - - - - Clone ID (IMAGE) - - I.M.A.G.E. cloneID - IMAGE cloneID - A unique identifier assigned by the I.M.A.G.E. consortium to a clone (cloned molecular sequence). - beta12orEarlier - - - - - - - - - - - GO concept ID (cellular compartment) - - An identifier of a 'cellular compartment' concept from the Gene Ontology. - [0-9]{7}|GO:[0-9]{7} - beta12orEarlier - GO concept identifier (cellular compartment) - - - - - - - - - - - Chromosome name (BioCyc) - - Name of a chromosome as used in the BioCyc database. - beta12orEarlier - - - - - - - - - - - CleanEx entry name - - beta12orEarlier - An identifier of a gene expression profile from the CleanEx database. - - - - - - - - - - - CleanEx dataset code - - beta12orEarlier - An identifier of (typically a list of) gene expression experiments catalogued in the CleanEx database. - - - - - - - - - - - Genome report - - An informative report of general information concerning a genome as a whole. - beta12orEarlier - - - - - - - - - - Protein ID (CORUM) - - beta12orEarlier - CORUM complex ID - Unique identifier for a protein complex from the CORUM database. - - - - - - - - - - - CDD PSSM-ID - - beta12orEarlier - Unique identifier of a position-specific scoring matrix from the CDD database. - - - - - - - - - - - Protein ID (CuticleDB) - - CuticleDB ID - beta12orEarlier - Unique identifier for a protein from the CuticleDB database. - - - - - - - - - - - DBD ID - - Identifier of a predicted transcription factor from the DBD database. - beta12orEarlier - - - - - - - - - - - Oligonucleotide probe annotation - - - - - - - - beta12orEarlier - General annotation on an oligonucleotide probe. - - - - - - - - - - Oligonucleotide ID - - - Identifier of an oligonucleotide from a database. - beta12orEarlier - - - - - - - - - - - dbProbe ID - - Identifier of an oligonucleotide probe from the dbProbe database. - beta12orEarlier - - - - - - - - - - - Dinucleotide property - - beta12orEarlier - Physicochemical property data for one or more dinucleotides. - - - - - - - - - - DiProDB ID - - beta12orEarlier - Identifier of an dinucleotide property from the DiProDB database. - - - - - - - - - - - Protein features report (disordered structure) - - 1.8 - true - beta12orEarlier - disordered structure in a protein. - - - - - - - - - - Protein ID (DisProt) - - DisProt ID - beta12orEarlier - Unique identifier for a protein from the DisProt database. - - - - - - - - - - - Embryo report - - Annotation on an embryo or concerning embryological development. - true - Embryo annotation - beta12orEarlier - 1.5 - - - - - - - - - - Ensembl transcript ID - - - beta12orEarlier - Transcript ID (Ensembl) - Unique identifier for a gene transcript from the Ensembl database. - - - - - - - - - - - Inhibitor annotation - - 1.4 - beta12orEarlier - An informative report on one or more small molecules that are enzyme inhibitors. - true - - - - - - - - - - Promoter ID - - - beta12orEarlier - An identifier of a promoter of a gene that is catalogued in a database. - Moby:GeneAccessionList - - - - - - - - - - - EST accession - - Identifier of an EST sequence. - beta12orEarlier - - - - - - - - - - - COGEME EST ID - - beta12orEarlier - Identifier of an EST sequence from the COGEME database. - - - - - - - - - - - COGEME unisequence ID - - Identifier of a unisequence from the COGEME database. - A unisequence is a single sequence assembled from ESTs. - beta12orEarlier - - - - - - - - - - - Protein family ID (GeneFarm) - - GeneFarm family ID - beta12orEarlier - Accession number of an entry (family) from the TIGRFam database. - - - - - - - - - - - Family name - - beta12orEarlier - The name of a family of organism. - - - - - - - - - - - Genus name (virus) - - true - The name of a genus of viruses. - beta13 - beta12orEarlier - - - - - - - - - - Family name (virus) - - beta13 - The name of a family of viruses. - true - beta12orEarlier - - - - - - - - - - Database name (SwissRegulon) - - true - beta13 - The name of a SwissRegulon database. - beta12orEarlier - - - - - - - - - - Sequence feature ID (SwissRegulon) - - beta12orEarlier - A feature identifier as used in the SwissRegulon database. - This can be name of a gene, the ID of a TFBS, or genomic coordinates in form "chr:start..end". - - - - - - - - - - - FIG ID - - A FIG ID consists of four parts: a prefix, genome id, locus type and id number. - A unique identifier of gene in the NMPDR database. - beta12orEarlier - - - - - - - - - - - Gene ID (Xenbase) - - A unique identifier of gene in the Xenbase database. - beta12orEarlier - - - - - - - - - - - Gene ID (Genolist) - - beta12orEarlier - A unique identifier of gene in the Genolist database. - - - - - - - - - - - Gene name (Genolist) - - beta12orEarlier - true - Genolist gene name - 1.3 - Name of an entry (gene) from the Genolist genes database. - - - - - - - - - - ABS ID - - ABS identifier - beta12orEarlier - Identifier of an entry (promoter) from the ABS database. - - - - - - - - - - - AraC-XylS ID - - Identifier of a transcription factor from the AraC-XylS database. - beta12orEarlier - - - - - - - - - - - Gene name (HUGO) - - beta12orEarlier - beta12orEarlier - true - Name of an entry (gene) from the HUGO database. - - - - - - - - - - Locus ID (PseudoCAP) - - beta12orEarlier - Identifier of a locus from the PseudoCAP database. - - - - - - - - - - - Locus ID (UTR) - - beta12orEarlier - Identifier of a locus from the UTR database. - - - - - - - - - - - MonosaccharideDB ID - - Unique identifier of a monosaccharide from the MonosaccharideDB database. - beta12orEarlier - - - - - - - - - - - Database name (CMD) - - beta12orEarlier - true - The name of a subdivision of the Collagen Mutation Database (CMD) database. - beta13 - - - - - - - - - - Database name (Osteogenesis) - - beta12orEarlier - true - beta13 - The name of a subdivision of the Osteogenesis database. - - - - - - - - - - Genome identifier - - An identifier of a particular genome. - beta12orEarlier - - - - - - - - - - - GenomeReviews ID - - beta12orEarlier - An identifier of a particular genome. - - - - - - - - - - - GlycoMap ID - - [0-9]+ - beta12orEarlier - Identifier of an entry from the GlycosciencesDB database. - - - - - - - - - - - Carbohydrate conformational map - - beta12orEarlier - A conformational energy map of the glycosidic linkages in a carbohydrate molecule. - - - - - - - - - - Gene features report (intron) - - introns in a nucleotide sequences. - true - beta12orEarlier - 1.8 - - - - - - - - - - Transcription factor name - - - The name of a transcription factor. - beta12orEarlier - - - - - - - - - - - TCID - - Identifier of a membrane transport proteins from the transport classification database (TCDB). - beta12orEarlier - - - - - - - - - - - Pfam domain name - - beta12orEarlier - Name of a domain from the Pfam database. - PF[0-9]{5} - - - - - - - - - - - Pfam clan ID - - beta12orEarlier - CL[0-9]{4} - Accession number of a Pfam clan. - - - - - - - - - - - Gene ID (VectorBase) - - VectorBase ID - beta12orEarlier - Identifier for a gene from the VectorBase database. - - - - - - - - - - - UTRSite ID - - Identifier of an entry from the UTRSite database of regulatory motifs in eukaryotic UTRs. - beta12orEarlier - - - - - - - - - - - Sequence signature report - - - - - - - - Sequence motif report - Sequence profile report - An informative report about a specific or conserved pattern in a molecular sequence, such as its context in genes or proteins, its role, origin or method of construction, etc. - beta12orEarlier - - - - - - - - - - Locus annotation - - Locus report - true - beta12orEarlier - An informative report on a particular locus. - beta12orEarlier - - - - - - - - - - Protein name (UniProt) - - Official name of a protein as used in the UniProt database. - beta12orEarlier - - - - - - - - - - - Term ID list - - One or more terms from one or more controlled vocabularies which are annotations on an entity. - beta12orEarlier - true - The concepts are typically provided as a persistent identifier or some other link the source ontologies. Evidence of the validity of the annotation might be included. - 1.5 - - - - - - - - - - HAMAP ID - - Name of a protein family from the HAMAP database. - beta12orEarlier - - - - - - - - - - - Identifier with metadata - - Basic information concerning an identifier of data (typically including the identifier itself). For example, a gene symbol with information concerning its provenance. - beta12orEarlier - - - - - - - - - - Gene symbol annotation - - true - beta12orEarlier - Annotation about a gene symbol. - beta12orEarlier - - - - - - - - - - Transcript ID - - - - - - - - - Identifier of a RNA transcript. - beta12orEarlier - - - - - - - - - - - HIT ID - - Identifier of an RNA transcript from the H-InvDB database. - beta12orEarlier - - - - - - - - - - - HIX ID - - A unique identifier of gene cluster in the H-InvDB database. - beta12orEarlier - - - - - - - - - - - HPA antibody id - - beta12orEarlier - Identifier of a antibody from the HPA database. - - - - - - - - - - - IMGT/HLA ID - - Identifier of a human major histocompatibility complex (HLA) or other protein from the IMGT/HLA database. - beta12orEarlier - - - - - - - - - - - Gene ID (JCVI) - - A unique identifier of gene assigned by the J. Craig Venter Institute (JCVI). - beta12orEarlier - - - - - - - - - - - Kinase name - - beta12orEarlier - The name of a kinase protein. - - - - - - - - - - - ConsensusPathDB entity ID - - - Identifier of a physical entity from the ConsensusPathDB database. - beta12orEarlier - - - - - - - - - - - ConsensusPathDB entity name - - - beta12orEarlier - Name of a physical entity from the ConsensusPathDB database. - - - - - - - - - - - CCAP strain number - - The number of a strain of algae and protozoa from the CCAP database. - beta12orEarlier - - - - - - - - - - - Stock number - - - beta12orEarlier - An identifier of stock from a catalogue of biological resources. - - - - - - - - - - - Stock number (TAIR) - - beta12orEarlier - A stock number from The Arabidopsis information resource (TAIR). - - - - - - - - - - - REDIdb ID - - beta12orEarlier - Identifier of an entry from the RNA editing database (REDIdb). - - - - - - - - - - - SMART domain name - - Name of a domain from the SMART database. - beta12orEarlier - - - - - - - - - - - Protein family ID (PANTHER) - - beta12orEarlier - Panther family ID - Accession number of an entry (family) from the PANTHER database. - - - - - - - - - - - RNAVirusDB ID - - beta12orEarlier - Could list (or reference) other taxa here from https://www.phenoscape.org/wiki/Taxonomic_Rank_Vocabulary. - A unique identifier for a virus from the RNAVirusDB database. - - - - - - - - - - - Virus ID - - - beta12orEarlier - An accession of annotation on a (group of) viruses (catalogued in a database). - - - - - - - - - - - NCBI Genome Project ID - - An identifier of a genome project assigned by NCBI. - beta12orEarlier - - - - - - - - - - - NCBI genome accession - - A unique identifier of a whole genome assigned by the NCBI. - beta12orEarlier - - - - - - - - - - - Sequence profile data - - 1.8 - Data concerning, extracted from, or derived from the analysis of a sequence profile, such as its name, length, technical details about the profile or it's construction, the biological role or annotation, and so on. - true - beta12orEarlier - - - - - - - - - - Protein ID (TopDB) - - beta12orEarlier - TopDB ID - Unique identifier for a membrane protein from the TopDB database. - - - - - - - - - - - Gel ID - - Gel identifier - Identifier of a two-dimensional (protein) gel. - beta12orEarlier - - - - - - - - - - - Reference map name (SWISS-2DPAGE) - - - beta12orEarlier - Name of a reference map gel from the SWISS-2DPAGE database. - - - - - - - - - - - Protein ID (PeroxiBase) - - PeroxiBase ID - beta12orEarlier - Unique identifier for a peroxidase protein from the PeroxiBase database. - - - - - - - - - - - SISYPHUS ID - - beta12orEarlier - Identifier of an entry from the SISYPHUS database of tertiary structure alignments. - - - - - - - - - - - ORF ID - - - beta12orEarlier - Accession of an open reading frame (catalogued in a database). - - - - - - - - - - - ORF identifier - - An identifier of an open reading frame. - beta12orEarlier - - - - - - - - - - - Linucs ID - - Identifier of an entry from the GlycosciencesDB database. - beta12orEarlier - - - - - - - - - - - Protein ID (LGICdb) - - beta12orEarlier - LGICdb ID - Unique identifier for a ligand-gated ion channel protein from the LGICdb database. - - - - - - - - - - - MaizeDB ID - - beta12orEarlier - Identifier of an EST sequence from the MaizeDB database. - - - - - - - - - - - Gene ID (MfunGD) - - beta12orEarlier - A unique identifier of gene in the MfunGD database. - - - - - - - - - - - Orpha number - - - - - - - - beta12orEarlier - An identifier of a disease from the Orpha database. - - - - - - - - - - - Protein ID (EcID) - - beta12orEarlier - Unique identifier for a protein from the EcID database. - - - - - - - - - - - Clone ID (RefSeq) - - - A unique identifier of a cDNA molecule catalogued in the RefSeq database. - beta12orEarlier - - - - - - - - - - - Protein ID (ConoServer) - - beta12orEarlier - Unique identifier for a cone snail toxin protein from the ConoServer database. - - - - - - - - - - - GeneSNP ID - - Identifier of a GeneSNP database entry. - beta12orEarlier - - - - - - - - - - - Lipid identifier - - - - - - - - - - - - - - Identifier of a lipid. - beta12orEarlier - - - - - - - - - - - Databank - - true - beta12orEarlier - A flat-file (textual) data archive. - beta12orEarlier - - - - - - - - - Web portal - - A web site providing data (web pages) on a common theme to a HTTP client. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - Gene ID (VBASE2) - - Identifier for a gene from the VBASE2 database. - beta12orEarlier - VBASE2 ID - - - - - - - - - - - DPVweb ID - - DPVweb virus ID - beta12orEarlier - A unique identifier for a virus from the DPVweb database. - - - - - - - - - - - Pathway ID (BioSystems) - - beta12orEarlier - Identifier of a pathway from the BioSystems pathway database. - [0-9]+ - - - - - - - - - - - Experimental data (proteomics) - - true - Data concerning a proteomics experiment. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Abstract - - beta12orEarlier - An abstract of a scientific article. - - - - - - - - - - Lipid structure - - beta12orEarlier - 3D coordinate and associated data for a lipid structure. - - - - - - - - - - Drug structure - - beta12orEarlier - 3D coordinate and associated data for the (3D) structure of a drug. - - - - - - - - - - Toxin structure - - 3D coordinate and associated data for the (3D) structure of a toxin. - beta12orEarlier - - - - - - - - - - Position-specific scoring matrix - - - beta12orEarlier - PSSM - A simple matrix of numbers, where each value (or column of values) is derived derived from analysis of the corresponding position in a sequence alignment. - - - - - - - - - - Distance matrix - - A matrix of distances between molecular entities, where a value (distance) is (typically) derived from comparison of two entities and reflects their similarity. - beta12orEarlier - - - - - - - - - - Structural distance matrix - - Distances (values representing similarity) between a group of molecular structures. - beta12orEarlier - - - - - - - - - - Article metadata - - true - beta12orEarlier - Bibliographic data concerning scientific article(s). - 1.5 - - - - - - - - - - Ontology concept - - beta12orEarlier - This includes any fields from the concept definition such as concept name, definition, comments and so on. - A concept from a biological ontology. - - - - - - - - - - Codon usage bias - - A numerical measure of differences in the frequency of occurrence of synonymous codons in DNA sequences. - beta12orEarlier - - - - - - - - - - Northern blot report - - true - beta12orEarlier - 1.8 - Northern Blot experiments. - - - - - - - - - - Nucleic acid features report (VNTR) - - 1.8 - beta12orEarlier - true - variable number of tandem repeat (VNTR) polymorphism in a DNA sequence. - - - - - - - - - - Nucleic acid features report (microsatellite) - - true - microsatellite polymorphism in a DNA sequence. - 1.8 - beta12orEarlier - - - - - - - - - - - Nucleic acid features report (RFLP) - - beta12orEarlier - true - 1.8 - restriction fragment length polymorphisms (RFLP) in a DNA sequence. - - - - - - - - - - Radiation hybrid map - - The radiation method can break very closely linked markers providing a more detailed map. Most genetic markers and subsequences may be located to a defined map position and with a more precise estimates of distance than a linkage map. - A map showing distance between genetic markers estimated by radiation-induced breaks in a chromosome. - beta12orEarlier - RH map - - - - - - - - - - ID list - - A simple list of data identifiers (such as database accessions), possibly with additional basic information on the addressed data. - beta12orEarlier - - - - - - - - - - Phylogenetic gene frequencies data - - beta12orEarlier - Gene frequencies data that may be read during phylogenetic tree calculation. - - - - - - - - - - Sequence set (polymorphic) - - beta13 - beta12orEarlier - true - A set of sub-sequences displaying some type of polymorphism, typically indicating the sequence in which they occur, their position and other metadata. - - - - - - - - - - DRCAT resource - - 1.5 - An entry (resource) from the DRCAT bioinformatics resource catalogue. - beta12orEarlier - true - - - - - - - - - - Protein complex - - beta12orEarlier - 3D coordinate and associated data for a multi-protein complex; two or more polypeptides chains in a stable, functional association with one another. - - - - - - - - - - Protein structural motif - - beta12orEarlier - 3D coordinate and associated data for a protein (3D) structural motif; any group of contiguous or non-contiguous amino acid residues but typically those forming a feature with a structural or functional role. - - - - - - - - - - Lipid report - - beta12orEarlier - Annotation on or information derived from one or more specific lipid 3D structure(s). - - - - - - - - - - Secondary structure image - - 1.4 - beta12orEarlier - Image of one or more molecular secondary structures. - true - - - - - - - - - - Secondary structure report - - Secondary structure-derived report - beta12orEarlier - true - An informative report on general information, properties or features of one or more molecular secondary structures. - 1.5 - - - - - - - - - - DNA features - - beta12orEarlier - DNA sequence-specific feature annotation (not in a feature table). - true - beta12orEarlier - - - - - - - - - - RNA features report - - true - beta12orEarlier - 1.5 - Features concerning RNA or regions of DNA that encode an RNA molecule. - RNA features - Nucleic acid features (RNA features) - - - - - - - - - - Plot - - beta12orEarlier - true - beta12orEarlier - Biological data that has been plotted as a graph of some type. - - - - - - - - - - Nucleic acid features report (polymorphism) - - true - DNA polymorphism. - beta12orEarlier - - - - - - - - - - Protein sequence record - - - A protein sequence and associated metadata. - beta12orEarlier - Protein sequence record - Sequence record (protein) - - - - - - - - - - Nucleic acid sequence record - - - RNA sequence record - Nucleotide sequence record - A nucleic acid sequence and associated metadata. - beta12orEarlier - DNA sequence record - Sequence record (nucleic acid) - - - - - - - - - - Protein sequence record (full) - - A protein sequence and comprehensive metadata (such as a feature table), typically corresponding to a full entry from a molecular sequence database. - 1.8 - beta12orEarlier - true - - - - - - - - - - Nucleic acid sequence record (full) - - true - A nucleic acid sequence and comprehensive metadata (such as a feature table), typically corresponding to a full entry from a molecular sequence database. - beta12orEarlier - 1.8 - - - - - - - - - - Biological model accession - - - beta12orEarlier - Accession of a mathematical model, typically an entry from a database. - - - - - - - - - - - Cell type name - - - The name of a type or group of cells. - beta12orEarlier - - - - - - - - - - - Cell type accession - - - beta12orEarlier - Accession of a type or group of cells (catalogued in a database). - - - - - - - - - - - Compound accession - - - Small molecule accession - Accession of an entry from a database of chemicals. - beta12orEarlier - Chemical compound accession - - - - - - - - - - - Drug accession - - - Accession of a drug. - beta12orEarlier - - - - - - - - - - - Toxin name - - - Name of a toxin. - beta12orEarlier - - - - - - - - - - - Toxin accession - - - beta12orEarlier - Accession of a toxin (catalogued in a database). - - - - - - - - - - - Monosaccharide accession - - - Accession of a monosaccharide (catalogued in a database). - beta12orEarlier - - - - - - - - - - - Drug name - - - beta12orEarlier - Common name of a drug. - - - - - - - - - - - Carbohydrate accession - - - Accession of an entry from a database of carbohydrates. - beta12orEarlier - - - - - - - - - - - Molecule accession - - - Accession of a specific molecule (catalogued in a database). - beta12orEarlier - - - - - - - - - - - Data resource definition accession - - - beta12orEarlier - Accession of a data definition (catalogued in a database). - - - - - - - - - - - Genome accession - - - An accession of a particular genome (in a database). - beta12orEarlier - - - - - - - - - - - Map accession - - - An accession of a map of a molecular sequence (deposited in a database). - beta12orEarlier - - - - - - - - - - - Lipid accession - - - beta12orEarlier - Accession of an entry from a database of lipids. - - - - - - - - - - - Peptide ID - - - beta12orEarlier - Accession of a peptide deposited in a database. - - - - - - - - - - - Protein accession - - - Protein accessions - beta12orEarlier - Accession of a protein deposited in a database. - - - - - - - - - - - Organism accession - - - An accession of annotation on a (group of) organisms (catalogued in a database). - beta12orEarlier - - - - - - - - - - - Organism name - - - Moby:Organism_Name - Moby:OrganismsShortName - Moby:OccurrenceRecord - Moby:BriefOccurrenceRecord - Moby:FirstEpithet - Moby:InfraspecificEpithet - beta12orEarlier - Moby:OrganismsLongName - The name of an organism (or group of organisms). - - - - - - - - - - - Protein family accession - - - beta12orEarlier - Accession of a protein family (that is deposited in a database). - - - - - - - - - - - Transcription factor accession - - - - beta12orEarlier - Accession of an entry from a database of transcription factors or binding sites. - - - - - - - - - - - Strain accession - - - - - - - - - beta12orEarlier - Identifier of a strain of an organism variant, typically a plant, virus or bacterium. - - - - - - - - - - - Virus identifier - - An accession of annotation on a (group of) viruses (catalogued in a database). - beta12orEarlier - - - - - - - - - - - Sequence features metadata - - beta12orEarlier - Metadata on sequence features. - - - - - - - - - - Gramene identifier - - beta12orEarlier - Identifier of a Gramene database entry. - - - - - - - - - - - DDBJ accession - - beta12orEarlier - DDBJ accession number - DDBJ identifier - DDBJ ID - An identifier of an entry from the DDBJ sequence database. - - - - - - - - - - - ConsensusPathDB identifier - - beta12orEarlier - An identifier of an entity from the ConsensusPathDB database. - - - - - - - - - - - Sequence data - - This is a broad data type and is used a placeholder for other, more specific types. - 1.8 - beta12orEarlier - true - Data concerning, extracted from, or derived from the analysis of molecular sequence(s). - - - - - - - - - - Codon usage - - beta12orEarlier - true - beta13 - Data concerning codon usage. - This is a broad data type and is used a placeholder for other, more specific types. - - - - - - - - - - Article report - - beta12orEarlier - 1.5 - Data derived from the analysis of a scientific text such as a full text article from a scientific journal. - true - - - - - - - - - - Sequence report - - An informative report of information about molecular sequence(s), including basic information (metadata), and reports generated from molecular sequence analysis, including positional features and non-positional properties. - beta12orEarlier - Sequence-derived report - - - - - - - - - - Protein secondary structure report - - An informative report about the properties or features of one or more protein secondary structures. - beta12orEarlier - - - - - - - - - - Hopp and Woods plot - - - A Hopp and Woods plot of predicted antigenicity of a peptide or protein. - beta12orEarlier - - - - - - - - - - Nucleic acid melting curve - - - Shows the proportion of nucleic acid which are double-stranded versus temperature. - A melting curve of a double-stranded nucleic acid molecule (DNA or DNA/RNA). - beta12orEarlier - - - - - - - - - - Nucleic acid probability profile - - A probability profile of a double-stranded nucleic acid molecule (DNA or DNA/RNA). - beta12orEarlier - Shows the probability of a base pair not being melted (i.e. remaining as double-stranded DNA) at a specified temperature - - - - - - - - - - Nucleic acid temperature profile - - A temperature profile of a double-stranded nucleic acid molecule (DNA or DNA/RNA). - Plots melting temperature versus base position. - beta12orEarlier - Melting map - - - - - - - - - - Gene regulatory network report - - 1.8 - A report typically including a map (diagram) of a gene regulatory network. - true - beta12orEarlier - - - - - - - - - - 2D PAGE gel report - - An informative report on a two-dimensional (2D PAGE) gel. - 2D PAGE image report - 1.8 - true - 2D PAGE gel annotation - beta12orEarlier - 2D PAGE image annotation - - - - - - - - - - Oligonucleotide probe sets annotation - - beta12orEarlier - General annotation on a set of oligonucleotide probes, such as the gene name with which the probe set is associated and which probes belong to the set. - - - - - - - - - - Microarray image - - 1.5 - beta12orEarlier - Gene expression image - An image from a microarray experiment which (typically) allows a visualisation of probe hybridisation and gene-expression data. - true - - - - - - - - - - Image - - http://semanticscience.org/resource/SIO_000081 - Biological or biomedical data has been rendered into an image, typically for display on screen. - http://semanticscience.org/resource/SIO_000079 - Image data - beta12orEarlier - - - - - - - - - - Sequence image - - - Image of a molecular sequence, possibly with sequence features or properties shown. - beta12orEarlier - - - - - - - - - - Protein hydropathy data - - Protein hydropathy report - A report on protein properties concerning hydropathy. - beta12orEarlier - - - - - - - - - - Workflow data - - beta12orEarlier - beta13 - Data concerning a computational workflow. - true - - - - - - - - - - Workflow - - true - beta12orEarlier - 1.5 - A computational workflow. - - - - - - - - - - Secondary structure data - - beta13 - true - beta12orEarlier - Data concerning molecular secondary structure data. - - - - - - - - - - Protein sequence (raw) - - - Raw protein sequence - beta12orEarlier - Raw sequence (protein) - A raw protein sequence (string of characters). - - - - - - - - - - Nucleic acid sequence (raw) - - - Nucleic acid raw sequence - beta12orEarlier - Nucleotide sequence (raw) - Raw sequence (nucleic acid) - A raw nucleic acid sequence. - - - - - - - - - - Protein sequence - - One or more protein sequences, possibly with associated annotation. - Protein sequences - beta12orEarlier - http://purl.org/biotop/biotop.owl#AminoAcidSequenceInformation - - - - - - - - - - Nucleic acid sequence - - One or more nucleic acid sequences, possibly with associated annotation. - beta12orEarlier - DNA sequence - Nucleotide sequence - Nucleotide sequences - Nucleic acid sequences - http://purl.org/biotop/biotop.owl#NucleotideSequenceInformation - - - - - - - - - - Reaction data - - Enzyme kinetics annotation - This is a broad data type and is used a placeholder for other, more specific types. - beta12orEarlier - Reaction annotation - Data concerning a biochemical reaction, typically data and more general annotation on the kinetics of enzyme-catalysed reaction. - - - - - - - - - - Peptide property - - beta12orEarlier - Peptide data - Data concerning small peptides. - - - - - - - - - - Protein classification - - This is a broad data type and is used a placeholder for other, more specific types. - Protein classification data - An informative report concerning the classification of protein sequences or structures. - beta12orEarlier - - - - - - - - - Sequence motif data - - true - 1.8 - Data concerning specific or conserved pattern in molecular sequences. - beta12orEarlier - This is a broad data type and is used a placeholder for other, more specific types. - - - - - - - - - - Sequence profile data - - beta12orEarlier - true - This is a broad data type and is used a placeholder for other, more specific types. - beta13 - Data concerning models representing a (typically multiple) sequence alignment. - - - - - - - - - - Pathway or network data - - Data concerning a specific biological pathway or network. - beta13 - true - beta12orEarlier - - - - - - - - - - - Pathway or network report - - - - - - - - beta12orEarlier - An informative report concerning or derived from the analysis of a biological pathway or network, such as a map (diagram) or annotation. - - - - - - - - - - Nucleic acid thermodynamic data - - Nucleic acid property (thermodynamic or kinetic) - A thermodynamic or kinetic property of a nucleic acid molecule. - Nucleic acid thermodynamic property - beta12orEarlier - - - - - - - - - - Nucleic acid classification - - This is a broad data type and is used a placeholder for other, more specific types. - beta12orEarlier - Data concerning the classification of nucleic acid sequences or structures. - Nucleic acid classification data - - - - - - - - - Classification report - - This can include an entire classification, components such as classifiers, assignments of entities to a classification and so on. - beta12orEarlier - true - Classification data - A report on a classification of molecular sequences, structures or other entities. - 1.5 - - - - - - - - - - Protein features report (key folding sites) - - beta12orEarlier - key residues involved in protein folding. - 1.8 - true - - - - - - - - - - Protein torsion angle data - - Torsion angle data - Torsion angle data for a protein structure. - beta12orEarlier - - - - - - - - - - Protein structure image - - - An image of protein structure. - beta12orEarlier - Structure image (protein) - - - - - - - - - - Phylogenetic character weights - - Weights for sequence positions or characters in phylogenetic analysis where zero is defined as unweighted. - beta12orEarlier - - - - - - - - - - Annotation track - - beta12orEarlier - Genomic track - Annotation of one particular positional feature on a biomolecular (typically genome) sequence, suitable for import and display in a genome browser. - Genome annotation track - Genome-browser track - Genome track - Sequence annotation track - - - - - - - - - - UniProt accession - - - - - - - - UniProtKB accession number - beta12orEarlier - P43353|Q7M1G0|Q9C199|A5A6J6 - UniProt entry accession - [OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2} - Swiss-Prot entry accession - TrEMBL entry accession - Accession number of a UniProt (protein sequence) database entry. - UniProtKB accession - UniProt accession number - - - - - - - - - - - NCBI genetic code ID - - - Identifier of a genetic code in the NCBI list of genetic codes. - [1-9][0-9]? - 16 - beta12orEarlier - - - - - - - - - - - Ontology concept identifier - - - - - - - - Identifier of a concept in an ontology of biological or bioinformatics concepts and relations. - beta12orEarlier - - - - - - - - - - - GO concept name (biological process) - - true - The name of a concept for a biological process from the GO ontology. - beta12orEarlier - beta12orEarlier - - - - - - - - - - GO concept name (molecular function) - - true - beta12orEarlier - The name of a concept for a molecular function from the GO ontology. - beta12orEarlier - - - - - - - - - - Taxonomy - - - - - - - - This is a broad data type and is used a placeholder for other, more specific types. - beta12orEarlier - Data concerning the classification, identification and naming of organisms. - Taxonomic data - - - - - - - - - - Protein ID (EMBL/GenBank/DDBJ) - - beta13 - EMBL/GENBANK/DDBJ coding feature protein identifier, issued by International collaborators. - This qualifier consists of a stable ID portion (3+5 format with 3 position letters and 5 numbers) plus a version number after the decimal point. When the protein sequence encoded by the CDS changes, only the version number of the /protein_id value is incremented; the stable part of the /protein_id remains unchanged and as a result will permanently be associated with a given protein; this qualifier is valid only on CDS features which translate into a valid protein. - - - - - - - - - - - Core data - - Core data entities typically have a format and may be identified by an accession number. - A type of data that (typically) corresponds to entries from the primary biological databases and which is (typically) the primary input or output of a tool, i.e. the data the tool processes or generates, as distinct from metadata and identifiers which describe and identify such core data, parameters that control the behaviour of tools, reports of derivative data generated by tools and annotation. - 1.5 - true - beta13 - - - - - - - - - - Sequence feature identifier - - - - - - - - beta13 - Name or other identifier of molecular sequence feature(s). - - - - - - - - - - - Structure identifier - - - - - - - - beta13 - An identifier of a molecular tertiary structure, typically an entry from a structure database. - - - - - - - - - - - Matrix identifier - - - - - - - - An identifier of an array of numerical values, such as a comparison matrix. - beta13 - - - - - - - - - - - Protein sequence composition - - beta13 - 1.8 - true - A report (typically a table) on character or word composition / frequency of protein sequence(s). - - - - - - - - - - Nucleic acid sequence composition (report) - - 1.8 - A report (typically a table) on character or word composition / frequency of nucleic acid sequence(s). - true - beta13 - - - - - - - - - - Protein domain classification node - - beta13 - A node from a classification of protein structural domain(s). - true - 1.5 - - - - - - - - - - CAS number - - beta13 - CAS registry number - Unique numerical identifier of chemicals in the scientific literature, as assigned by the Chemical Abstracts Service. - - - - - - - - - - - ATC code - - Unique identifier of a drug conforming to the Anatomical Therapeutic Chemical (ATC) Classification System, a drug classification system controlled by the WHO Collaborating Centre for Drug Statistics Methodology (WHOCC). - beta13 - - - - - - - - - - - UNII - - beta13 - A unique, unambiguous, alphanumeric identifier of a chemical substance as catalogued by the Substance Registration System of the Food and Drug Administration (FDA). - Unique Ingredient Identifier - - - - - - - - - - - Geotemporal metadata - - 1.5 - beta13 - true - Basic information concerning geographical location or time. - - - - - - - - - - System metadata - - Metadata concerning the software, hardware or other aspects of a computer system. - beta13 - - - - - - - - - - Sequence feature name - - - A name of a sequence feature, e.g. the name of a feature to be displayed to an end-user. - beta13 - - - - - - - - - - - Experimental measurement - - beta13 - Raw data such as measurements or other results from laboratory experiments, as generated from laboratory hardware. - Experimental measurement data - Measurement - This is a broad data type and is used a placeholder for other, more specific types. It is primarily intended to help navigation of EDAM and would not typically be used for annotation. - Measured data - Experimentally measured data - Measurement metadata - Measurement data - Raw experimental data - - - - - - - - - - Raw microarray data - - - beta13 - Raw data (typically MIAME-compliant) for hybridisations from a microarray experiment. - Such data as found in Affymetrix CEL or GPR files. - - - - - - - - - - Processed microarray data - - - - - - - - Data generated from processing and analysis of probe set data from a microarray experiment. - Gene annotation (expression) - Microarray probe set data - beta13 - Gene expression report - Such data as found in Affymetrix .CHP files or data from other software such as RMA or dChip. - - - - - - - - - - Gene expression matrix - - - This combines data from all hybridisations. - beta13 - Normalised microarray data - The final processed (normalised) data for a set of hybridisations in a microarray experiment. - Gene expression data matrix - - - - - - - - - - Sample annotation - - Annotation on a biological sample, for example experimental factors and their values. - This might include compound and dose in a dose response experiment. - beta13 - - - - - - - - - - Microarray metadata - - This might include gene identifiers, genomic coordinates, probe oligonucleotide sequences etc. - Annotation on the array itself used in a microarray experiment. - beta13 - - - - - - - - - - Microarray protocol annotation - - true - This might describe e.g. the normalisation methods used to process the raw data. - beta13 - 1.8 - Annotation on laboratory and/or data processing protocols used in an microarray experiment. - - - - - - - - - - Microarray hybridisation data - - Data concerning the hybridisations measured during a microarray experiment. - beta13 - - - - - - - - - - Protein features report (topological domains) - - 1.8 - beta13 - topological domains such as cytoplasmic regions in a protein. - true - - - - - - - - - - Sequence features (compositionally-biased regions) - - 1.5 - beta13 - true - A report of regions in a molecular sequence that are biased to certain characters. - - - - - - - - - - Nucleic acid features (difference and change) - - beta13 - A report on features in a nucleic acid sequence that indicate changes to or differences between sequences. - 1.5 - true - - - - - - - - - - Nucleic acid features report (expression signal) - - true - beta13 - regions within a nucleic acid sequence containing a signal that alters a biological function. - 1.8 - - - - - - - - - - Nucleic acid features report (binding) - - nucleic acids binding to some other molecule. - 1.8 - true - beta13 - This includes ribosome binding sites (Shine-Dalgarno sequence in prokaryotes). - - - - - - - - - - Nucleic acid repeats (report) - - true - repetitive elements within a nucleic acid sequence. - 1.8 - beta13 - - - - - - - - - - Nucleic acid features report (replication and recombination) - - beta13 - true - 1.8 - DNA replication or recombination. - - - - - - - - - - Nucleic acid structure report - - - A report on regions within a nucleic acid sequence which form secondary or tertiary (3D) structures. - Stem loop (report) - d-loop (report) - Nucleic acid features (structure) - Quadruplexes (report) - beta13 - - - - - - - - - - Protein features report (repeats) - - 1.8 - short repetitive subsequences (repeat sequences) in a protein sequence. - beta13 - true - - - - - - - - - - Sequence motif matches (protein) - - Report on the location of matches to profiles, motifs (conserved or functional patterns) or other signatures in one or more protein sequences. - 1.8 - beta13 - true - - - - - - - - - - Sequence motif matches (nucleic acid) - - Report on the location of matches to profiles, motifs (conserved or functional patterns) or other signatures in one or more nucleic acid sequences. - beta13 - true - 1.8 - - - - - - - - - - Nucleic acid features (d-loop) - - beta13 - true - 1.5 - A report on displacement loops in a mitochondrial DNA sequence. - A displacement loop is a region of mitochondrial DNA in which one of the strands is displaced by an RNA molecule. - - - - - - - - - - Nucleic acid features (stem loop) - - beta13 - true - A report on stem loops in a DNA sequence. - 1.5 - A stem loop is a hairpin structure; a double-helical structure formed when two complementary regions of a single strand of RNA or DNA molecule form base-pairs. - - - - - - - - - - Gene transcript report - - This includes 5'untranslated region (5'UTR), coding sequences (CDS), exons, intervening sequences (intron) and 3'untranslated regions (3'UTR). - Nucleic acid features (mRNA features) - beta13 - Transcript (report) - mRNA features - Gene transcript annotation - Clone or EST (report) - mRNA (report) - An informative report on features of a messenger RNA (mRNA) molecules including precursor RNA, primary (unprocessed) transcript and fully processed molecules. This includes reports on a specific gene transcript, clone or EST. - - - - - - - - - - - Nucleic acid features report (signal or transit peptide) - - true - coding sequences for a signal or transit peptide. - 1.8 - beta13 - - - - - - - - - - Non-coding RNA - - beta13 - true - features of non-coding or functional RNA molecules, including tRNA and rRNA. - 1.8 - - - - - - - - - - Transcriptional features (report) - - 1.5 - true - This includes promoters, CAAT signals, TATA signals, -35 signals, -10 signals, GC signals, primer binding sites for initiation of transcription or reverse transcription, enhancer, attenuator, terminators and ribosome binding sites. - Features concerning transcription of DNA into RNA including the regulation of transcription. - beta13 - - - - - - - - - - Nucleic acid features report (STS) - - sequence tagged sites (STS) in nucleic acid sequences. - 1.8 - true - beta13 - - - - - - - - - - Nucleic acid features (immunoglobulin gene structure) - - true - beta13 - 1.5 - A report on predicted or actual immunoglobulin gene structure including constant, switch and variable regions and diversity, joining and variable segments. - - - - - - - - - - SCOP class - - 1.5 - beta13 - true - Information on a 'class' node from the SCOP database. - - - - - - - - - - SCOP fold - - beta13 - Information on a 'fold' node from the SCOP database. - 1.5 - true - - - - - - - - - - SCOP superfamily - - beta13 - Information on a 'superfamily' node from the SCOP database. - 1.5 - true - - - - - - - - - - SCOP family - - 1.5 - true - Information on a 'family' node from the SCOP database. - beta13 - - - - - - - - - - SCOP protein - - Information on a 'protein' node from the SCOP database. - true - beta13 - 1.5 - - - - - - - - - - SCOP species - - 1.5 - true - beta13 - Information on a 'species' node from the SCOP database. - - - - - - - - - - Mass spectrometry experiment - - 1.8 - true - mass spectrometry experiments. - beta13 - - - - - - - - - - Gene family report - - An informative report on a particular family of genes, typically a set of genes with similar sequence that originate from duplication of a common ancestor gene, or any other classification of nucleic acid sequences or structures that reflects gene structure. - This includes reports on on gene homologues between species. - beta13 - Gene annotation (homology information) - Homology information - Gene annotation (homology) - Nucleic acid classification - Gene family annotation - Gene homology (report) - - - - - - - - - - Protein image - - beta13 - An image of a protein. - - - - - - - - - - Protein alignment - - An alignment of protein sequences and/or structures. - beta13 - - - - - - - - - - NGS experiment - - 1.8 - 1.0 - sequencing experiment, including samples, sampling, preparation, sequencing, and analysis. - true - - - - - - - - - - Sequence assembly report - - An informative report about a DNA sequence assembly. - 1.1 - This might include an overall quality assement of the assembly and summary statistics including counts, average length and number of bases for reads, matches and non-matches, contigs, reads in pairs etc. - Assembly report - - - - - - - - - - Genome index - - 1.1 - Many sequence alignment tasks involving many or very large sequences rely on a precomputed index of the sequence to accelerate the alignment. - An index of a genome sequence. - - - - - - - - - - GWAS report - - 1.8 - 1.1 - Report concerning genome-wide association study experiments. - true - Genome-wide association study - - - - - - - - - - Cytoband position - - 1.2 - The position of a cytogenetic band in a genome. - Information might include start and end position in a chromosome sequence, chromosome identifier, name of band and so on. - - - - - - - - - - Cell type ontology ID - - - CL ID - Cell type ontology concept ID. - CL_[0-9]{7} - 1.2 - beta12orEarlier - - - - - - - - - - - Kinetic model - - 1.2 - Mathematical model of a network, that contains biochemical kinetics. - - - - - - - - - - COSMIC ID - - COSMIC identifier - cosmic ID - Identifier of a COSMIC database entry. - cosmic identifier - cosmic id - 1.3 - - - - - - - - - - - HGMD ID - - Identifier of a HGMD database entry. - hgmd ID - hgmd identifier - beta12orEarlier - hgmd id - HGMD identifier - - - - - - - - - - - Sequence assembly ID - - Sequence assembly version - Unique identifier of sequence assembly. - 1.3 - - - - - - - - - - - Sequence feature type - - true - A label (text token) describing a type of sequence feature such as gene, transcript, cds, exon, repeat, simple, misc, variation, somatic variation, structural variation, somatic structural variation, constrained or regulatory. - 1.3 - 1.5 - - - - - - - - - - Gene homology (report) - - beta12orEarlier - true - An informative report on gene homologues between species. - 1.5 - - - - - - - - - - Ensembl gene tree ID - - - ENSGT00390000003602 - Ensembl ID (gene tree) - Unique identifier for a gene tree from the Ensembl database. - 1.3 - - - - - - - - - - - Gene tree - - 1.3 - A phylogenetic tree that is an estimate of the character's phylogeny. - - - - - - - - - - Species tree - - A phylogenetic tree that reflects phylogeny of the taxa from which the characters (used in calculating the tree) were sampled. - 1.3 - - - - - - - - - - Sample ID - - - - - - - - - 1.3 - Sample accession - Name or other identifier of an entry from a biosample database. - - - - - - - - - - - MGI accession - - - Identifier of an object from the MGI database. - 1.3 - - - - - - - - - - - Phenotype name - - - 1.3 - Name of a phenotype. - Phenotypes - Phenotype - - - - - - - - - - - Transition matrix - - A HMM transition matrix contains the probabilities of switching from one HMM state to another. - Consider for example an HMM with two states (AT-rich and GC-rich). The transition matrix will hold the probabilities of switching from the AT-rich to the GC-rich state, and vica versa. - HMM transition matrix - 1.4 - - - - - - - - - Emission matrix - - A HMM emission matrix holds the probabilities of choosing the four nucleotides (A, C, G and T) in each of the states of a HMM. - 1.4 - Consider for example an HMM with two states (AT-rich and GC-rich). The emission matrix holds the probabilities of choosing each of the four nucleotides (A, C, G and T) in the AT-rich state and in the GC-rich state. - HMM emission matrix - - - - - - - - - Hidden Markov model - - A statistical Markov model of a system which is assumed to be a Markov process with unobserved (hidden) states. - 1.4 - - - - - - - - - Format identifier - - An identifier of a data format. - 1.4 - - - - - - - - - Raw image - - 1.5 - Amino acid data - http://semanticscience.org/resource/SIO_000081 - beta12orEarlier - Image data - Raw biological or biomedical image generated by some experimental technique. - - - - - - - - - - Carbohydrate property - - Carbohydrate data - Data concerning the intrinsic physical (e.g. structural) or chemical properties of one, more or all carbohydrates. - 1.5 - - - - - - - - - - Proteomics experiment report - - true - 1.8 - Report concerning proteomics experiments. - 1.5 - - - - - - - - - - RNAi report - - 1.5 - RNAi experiments. - true - 1.8 - - - - - - - - - - Simulation experiment report - - 1.5 - biological computational model experiments (simulation), for example the minimum information required in order to permit its correct interpretation and reproduction. - true - 1.8 - - - - - - - - - - MRI image - - - - - - - - MRT image - 1.7 - Magnetic resonance tomography image - Nuclear magnetic resonance imaging image - - Magnetic resonance imaging image - - NMRI image - An imaging technique that uses magnetic fields and radiowaves to form images, typically to investigate the anatomy and physiology of the human body. - - - - - - - - - - Cell migration track image - - - - - - - - 1.7 - An image from a cell migration track assay. - - - - - - - - - - Rate of association - - kon - 1.7 - Rate of association of a protein with another protein or some other molecule. - - - - - - - - - - Gene order - - Such data are often used for genome rearrangement tools and phylogenetic tree labeling. - Multiple gene identifiers in a specific order. - 1.7 - - - - - - - - - - Spectrum - - 1.7 - The spectrum of frequencies of electromagnetic radiation emitted from a molecule as a result of some spectroscopy experiment. - Spectra - - - - - - - - - - NMR spectrum - - - - - - - - Spectral information for a molecule from a nuclear magnetic resonance experiment. - 1.7 - NMR spectra - - - - - - - - - - Chemical structure sketch - - Chemical structure sketches are used for presentational purposes but also as inputs to various analysis software. - 1.8 - Small molecule sketch - A sketch of a small molecule made with some specialised drawing package. - - - - - - - - - - Nucleic acid signature - - 1.8 - An informative report about a specific or conserved nucleic acid sequence pattern. - - - - - - - - - - DNA sequence - - DNA sequences - 1.8 - A DNA sequence. - - - - - - - - - - RNA sequence - - A DNA sequence. - DNA sequences - RNA sequences - 1.8 - - - - - - - - - - RNA sequence (raw) - - - Raw sequence (RNA) - 1.8 - A raw RNA sequence. - RNA raw sequence - - - - - - - - - - DNA sequence (raw) - - - Raw sequence (DNA) - A raw DNA sequence. - 1.8 - DNA raw sequence - - - - - - - - - - Sequence variations - - - - - - - - 1.8 - Data on gene sequence variations resulting large-scale genotyping and DNA sequencing projects. - Gene sequence variations - Variations are stored along with a reference genome. - - - - - - - - - - Bibliography - - 1.8 - A list of publications such as scientic papers or books. - - - - - - - - - - Ontology mapping - - A mapping of supplied textual terms or phrases to ontology concepts (URIs). - beta12orEarlier - - - - - - - - - - Image metadata - - Image-associated data - This can include basic provenance and technical information about the image, scientific annotation and so on. - Any data concerning a specific biological or biomedical image. - 1.9 - Image data - Image-related data - - - - - - - - - - Clinical trial report - - Clinical trial information - A report concerning a clinical trial. - 1.9 - - - - - - - - - - Reference sample report - - 1.10 - A report about a biosample. - Biosample report - - - - - - - - - - Gene Expression Atlas Experiment ID - - Accession number of an entry from the Gene Expression Atlas. - 1.10 - - - - - - - - - - - SMILES - - - Chemical structure specified in Simplified Molecular Input Line Entry System (SMILES) line notation. - beta12orEarlier - - - - - - - - - - - - - - InChI - - - Chemical structure specified in IUPAC International Chemical Identifier (InChI) line notation. - beta12orEarlier - - - - - - - - - - mf - - - Chemical structure specified by Molecular Formula (MF), including a count of each element in a compound. - beta12orEarlier - The general MF query format consists of a series of valid atomic symbols, with an optional number or range. - - - - - - - - - - inchikey - - - The InChIKey (hashed InChI) is a fixed length (25 character) condensed digital representation of an InChI chemical structure specification. It uniquely identifies a chemical compound. - beta12orEarlier - An InChI identifier is not human-readable but is more suitable for web searches than an InChI chemical structure specification. - - - - - - - - - - smarts - - SMILES ARbitrary Target Specification (SMARTS) format for chemical structure specification, which is a subset of the SMILES line notation. - beta12orEarlier - - - - - - - - - - unambiguous pure - - - beta12orEarlier - Alphabet for a molecular sequence with possible unknown positions but without ambiguity or non-sequence characters. - - - - - - - - - - nucleotide - - - Non-sequence characters may be used for example for gaps. - http://onto.eva.mpg.de/ontologies/gfo-bio.owl#Nucleotide_sequence - beta12orEarlier - Alphabet for a nucleotide sequence with possible ambiguity, unknown positions and non-sequence characters. - - - - - - - - - - protein - - - Alphabet for a protein sequence with possible ambiguity, unknown positions and non-sequence characters. - beta12orEarlier - Non-sequence characters may be used for gaps and translation stop. - http://onto.eva.mpg.de/ontologies/gfo-bio.owl#Amino_acid_sequence - - - - - - - - - - consensus - - - beta12orEarlier - Alphabet for the consensus of two or more molecular sequences. - - - - - - - - - - pure nucleotide - - - beta12orEarlier - Alphabet for a nucleotide sequence with possible ambiguity and unknown positions but without non-sequence characters. - - - - - - - - - - unambiguous pure nucleotide - - - beta12orEarlier - Alphabet for a nucleotide sequence (characters ACGTU only) with possible unknown positions but without ambiguity or non-sequence characters . - - - - - - - - - - dna - - beta12orEarlier - http://onto.eva.mpg.de/ontologies/gfo-bio.owl#DNA_sequence - Alphabet for a DNA sequence with possible ambiguity, unknown positions and non-sequence characters. - - - - - - - - - - rna - - Alphabet for an RNA sequence with possible ambiguity, unknown positions and non-sequence characters. - http://onto.eva.mpg.de/ontologies/gfo-bio.owl#RNA_sequence - beta12orEarlier - - - - - - - - - - unambiguous pure dna - - - Alphabet for a DNA sequence (characters ACGT only) with possible unknown positions but without ambiguity or non-sequence characters. - beta12orEarlier - - - - - - - - - - pure dna - - - Alphabet for a DNA sequence with possible ambiguity and unknown positions but without non-sequence characters. - beta12orEarlier - - - - - - - - - - unambiguous pure rna sequence - - - Alphabet for an RNA sequence (characters ACGU only) with possible unknown positions but without ambiguity or non-sequence characters. - beta12orEarlier - - - - - - - - - - pure rna - - - Alphabet for an RNA sequence with possible ambiguity and unknown positions but without non-sequence characters. - beta12orEarlier - - - - - - - - - - unambiguous pure protein - - - beta12orEarlier - Alphabet for any protein sequence with possible unknown positions but without ambiguity or non-sequence characters. - - - - - - - - - - pure protein - - - beta12orEarlier - Alphabet for any protein sequence with possible ambiguity and unknown positions but without non-sequence characters. - - - - - - - - - - UniGene entry format - - beta12orEarlier - Format of an entry from UniGene. - A UniGene entry includes a set of transcript sequences assigned to the same transcription locus (gene or expressed pseudogene), with information on protein similarities, gene expression, cDNA clone reagents, and genomic location. - beta12orEarlier - true - - - - - - - - - - COG sequence cluster format - - beta12orEarlier - true - beta12orEarlier - Format of an entry from the COG database of clusters of (related) protein sequences. - - - - - - - - - - EMBL feature location - - - beta12orEarlier - Feature location - Format for sequence positions (feature location) as used in DDBJ/EMBL/GenBank database. - - - - - - - - - - quicktandem - - - Report format for tandem repeats in a nucleotide sequence (format generated by the Sanger Centre quicktandem program). - beta12orEarlier - - - - - - - - - - Sanger inverted repeats - - - beta12orEarlier - Report format for inverted repeats in a nucleotide sequence (format generated by the Sanger Centre inverted program). - - - - - - - - - - EMBOSS repeat - - - Report format for tandem repeats in a sequence (an EMBOSS report format). - beta12orEarlier - - - - - - - - - - est2genome format - - - beta12orEarlier - Format of a report on exon-intron structure generated by EMBOSS est2genome. - - - - - - - - - - restrict format - - - Report format for restriction enzyme recognition sites used by EMBOSS restrict program. - beta12orEarlier - - - - - - - - - - restover format - - - beta12orEarlier - Report format for restriction enzyme recognition sites used by EMBOSS restover program. - - - - - - - - - - REBASE restriction sites - - - beta12orEarlier - Report format for restriction enzyme recognition sites used by REBASE database. - - - - - - - - - - FASTA search results format - - - Format of results of a sequence database search using FASTA. - beta12orEarlier - This includes (typically) score data, alignment data and a histogram (of observed and expected distribution of E values.) - - - - - - - - - - BLAST results - - - Format of results of a sequence database search using some variant of BLAST. - beta12orEarlier - This includes score data, alignment data and summary table. - - - - - - - - - - mspcrunch - - - beta12orEarlier - Format of results of a sequence database search using some variant of MSPCrunch. - - - - - - - - - - Smith-Waterman format - - - beta12orEarlier - Format of results of a sequence database search using some variant of Smith Waterman. - - - - - - - - - - dhf - - - The hits are relatives to a SCOP or CATH family and are found from a search of a sequence database. - beta12orEarlier - Format of EMBASSY domain hits file (DHF) of hits (sequences) with domain classification information. - - - - - - - - - - lhf - - - beta12orEarlier - Format of EMBASSY ligand hits file (LHF) of database hits (sequences) with ligand classification information. - The hits are putative ligand-binding sequences and are found from a search of a sequence database. - - - - - - - - - - InterPro hits format - - - Results format for searches of the InterPro database. - beta12orEarlier - - - - - - - - - - InterPro protein view report format - - Format of results of a search of the InterPro database showing matches of query protein sequence(s) to InterPro entries. - The report includes a classification of regions in a query protein sequence which are assigned to a known InterPro protein family or group. - beta12orEarlier - - - - - - - - - - InterPro match table format - - Format of results of a search of the InterPro database showing matches between protein sequence(s) and signatures for an InterPro entry. - beta12orEarlier - The table presents matches between query proteins (rows) and signature methods (columns) for this entry. Alternatively the sequence(s) might be from from the InterPro entry itself. The match position in the protein sequence and match status (true positive, false positive etc) are indicated. - - - - - - - - - - HMMER Dirichlet prior - - - beta12orEarlier - Dirichlet distribution HMMER format. - - - - - - - - - - MEME Dirichlet prior - - - beta12orEarlier - Dirichlet distribution MEME format. - - - - - - - - - - HMMER emission and transition - - - Format of a report from the HMMER package on the emission and transition counts of a hidden Markov model. - beta12orEarlier - - - - - - - - - - prosite-pattern - - - Format of a regular expression pattern from the Prosite database. - beta12orEarlier - - - - - - - - - - EMBOSS sequence pattern - - - Format of an EMBOSS sequence pattern. - beta12orEarlier - - - - - - - - - - meme-motif - - - A motif in the format generated by the MEME program. - beta12orEarlier - - - - - - - - - - prosite-profile - - - Sequence profile (sequence classifier) format used in the PROSITE database. - beta12orEarlier - - - - - - - - - - JASPAR format - - - beta12orEarlier - A profile (sequence classifier) in the format used in the JASPAR database. - - - - - - - - - - MEME background Markov model - - - Format of the model of random sequences used by MEME. - beta12orEarlier - - - - - - - - - - HMMER format - - - Format of a hidden Markov model representation used by the HMMER package. - beta12orEarlier - - - - - - - - - - HMMER-aln - - - - beta12orEarlier - FASTA-style format for multiple sequences aligned by HMMER package to an HMM. - - - - - - - - - - DIALIGN format - - - Format of multiple sequences aligned by DIALIGN package. - beta12orEarlier - - - - - - - - - - daf - - - The format is clustal-like and includes annotation of domain family classification information. - EMBASSY 'domain alignment file' (DAF) format, containing a sequence alignment of protein domains belonging to the same SCOP or CATH family. - beta12orEarlier - - - - - - - - - - Sequence-MEME profile alignment - - - beta12orEarlier - Format for alignment of molecular sequences to MEME profiles (position-dependent scoring matrices) as generated by the MAST tool from the MEME package. - - - - - - - - - - HMMER profile alignment (sequences versus HMMs) - - - Format used by the HMMER package for an alignment of a sequence against a hidden Markov model database. - beta12orEarlier - - - - - - - - - - HMMER profile alignment (HMM versus sequences) - - - Format used by the HMMER package for of an alignment of a hidden Markov model against a sequence database. - beta12orEarlier - - - - - - - - - - Phylip distance matrix - - - Data Type must include the distance matrix, probably as pairs of sequence identifiers with a distance (integer or float). - beta12orEarlier - Format of PHYLIP phylogenetic distance matrix data. - - - - - - - - - - ClustalW dendrogram - - - beta12orEarlier - Dendrogram (tree file) format generated by ClustalW. - - - - - - - - - - Phylip tree raw - - - Raw data file format used by Phylip from which a phylogenetic tree is directly generated or plotted. - beta12orEarlier - - - - - - - - - - Phylip continuous quantitative characters - - - beta12orEarlier - PHYLIP file format for continuous quantitative character data. - - - - - - - - - - Phylogenetic property values format - - Format of phylogenetic property data. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Phylip character frequencies format - - - beta12orEarlier - PHYLIP file format for phylogenetics character frequency data. - - - - - - - - - - Phylip discrete states format - - - Format of PHYLIP discrete states data. - beta12orEarlier - - - - - - - - - - Phylip cliques format - - - beta12orEarlier - Format of PHYLIP cliques data. - - - - - - - - - - Phylip tree format - - - Phylogenetic tree data format used by the PHYLIP program. - beta12orEarlier - - - - - - - - - - TreeBASE format - - - beta12orEarlier - The format of an entry from the TreeBASE database of phylogenetic data. - - - - - - - - - - TreeFam format - - - beta12orEarlier - The format of an entry from the TreeFam database of phylogenetic data. - - - - - - - - - - Phylip tree distance format - - - Format for distances, such as Branch Score distance, between two or more phylogenetic trees as used by the Phylip package. - beta12orEarlier - - - - - - - - - - dssp - - - beta12orEarlier - The DSSP database is built using the DSSP application which defines secondary structure, geometrical features and solvent exposure of proteins, given atomic coordinates in PDB format. - Format of an entry from the DSSP database (Dictionary of Secondary Structure in Proteins). - - - - - - - - - - hssp - - - Entry format of the HSSP database (Homology-derived Secondary Structure in Proteins). - beta12orEarlier - - - - - - - - - - Dot-bracket format - - - beta12orEarlier - Format of RNA secondary structure in dot-bracket notation, originally generated by the Vienna RNA package/server. - Vienna RNA secondary structure format - Vienna RNA format - - - - - - - - - - Vienna local RNA secondary structure format - - - Format of local RNA secondary structure components with free energy values, generated by the Vienna RNA package/server. - beta12orEarlier - - - - - - - - - - PDB database entry format - - - - - - - - beta12orEarlier - PDB entry format - Format of an entry (or part of an entry) from the PDB database. - - - - - - - - - - PDB - - - PDB format - beta12orEarlier - Entry format of PDB database in PDB format. - - - - - - - - - - mmCIF - - - Chemical MIME (http://www.ch.ic.ac.uk/chemime): chemical/x-mmcif - Entry format of PDB database in mmCIF format. - beta12orEarlier - mmcif - - - - - - - - - - PDBML - - - Entry format of PDB database in PDBML (XML) format. - beta12orEarlier - - - - - - - - - - Domainatrix 3D-1D scoring matrix format - - beta12orEarlier - true - beta12orEarlier - Format of a matrix of 3D-1D scores used by the EMBOSS Domainatrix applications. - - - - - - - - - aaindex - - - Amino acid index format used by the AAindex database. - beta12orEarlier - - - - - - - - - - IntEnz enzyme report format - - beta12orEarlier - beta12orEarlier - Format of an entry from IntEnz (The Integrated Relational Enzyme Database). - IntEnz is the master copy of the Enzyme Nomenclature, the recommendations of the NC-IUBMB on the Nomenclature and Classification of Enzyme-Catalysed Reactions. - true - - - - - - - - - - BRENDA enzyme report format - - true - Format of an entry from the BRENDA enzyme database. - beta12orEarlier - beta12orEarlier - - - - - - - - - - KEGG REACTION enzyme report format - - true - beta12orEarlier - Format of an entry from the KEGG REACTION database of biochemical reactions. - beta12orEarlier - - - - - - - - - - KEGG ENZYME enzyme report format - - beta12orEarlier - true - Format of an entry from the KEGG ENZYME database. - beta12orEarlier - - - - - - - - - - REBASE proto enzyme report format - - Format of an entry from the proto section of the REBASE enzyme database. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - REBASE withrefm enzyme report format - - beta12orEarlier - true - beta12orEarlier - Format of an entry from the withrefm section of the REBASE enzyme database. - - - - - - - - - - Pcons report format - - - Format of output of the Pcons Model Quality Assessment Program (MQAP). - beta12orEarlier - Pcons ranks protein models by assessing their quality based on the occurrence of recurring common three-dimensional structural patterns. Pcons returns a score reflecting the overall global quality and a score for each individual residue in the protein reflecting the local residue quality. - - - - - - - - - - ProQ report format - - - beta12orEarlier - ProQ is a neural network-based predictor that predicts the quality of a protein model based on the number of structural features. - Format of output of the ProQ protein model quality predictor. - - - - - - - - - - SMART domain assignment report format - - beta12orEarlier - true - Format of SMART domain assignment data. - The SMART output file includes data on genetically mobile domains / analysis of domain architectures, including phyletic distributions, functional class, tertiary structures and functionally important residues. - beta12orEarlier - - - - - - - - - - BIND entry format - - Entry format for the BIND database of protein interaction. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - IntAct entry format - - beta12orEarlier - beta12orEarlier - Entry format for the IntAct database of protein interaction. - true - - - - - - - - - - InterPro entry format - - Entry format for the InterPro database of protein signatures (sequence classifiers) and classified sequences. - true - beta12orEarlier - This includes signature metadata, sequence references and a reference to the signature itself. There is normally a header (entry accession numbers and name), abstract, taxonomy information, example proteins etc. Each entry also includes a match list which give a number of different views of the signature matches for the sequences in each InterPro entry. - beta12orEarlier - - - - - - - - - - InterPro entry abstract format - - true - beta12orEarlier - References are included and a functional inference is made where possible. - beta12orEarlier - Entry format for the textual abstract of signatures in an InterPro entry and its protein matches. - - - - - - - - - - Gene3D entry format - - Entry format for the Gene3D protein secondary database. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - PIRSF entry format - - beta12orEarlier - Entry format for the PIRSF protein secondary database. - true - beta12orEarlier - - - - - - - - - - PRINTS entry format - - beta12orEarlier - beta12orEarlier - true - Entry format for the PRINTS protein secondary database. - - - - - - - - - - Panther Families and HMMs entry format - - beta12orEarlier - beta12orEarlier - Entry format for the Panther library of protein families and subfamilies. - true - - - - - - - - - - Pfam entry format - - Entry format for the Pfam protein secondary database. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - SMART entry format - - true - beta12orEarlier - Entry format for the SMART protein secondary database. - beta12orEarlier - - - - - - - - - - Superfamily entry format - - Entry format for the Superfamily protein secondary database. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - TIGRFam entry format - - beta12orEarlier - true - Entry format for the TIGRFam protein secondary database. - beta12orEarlier - - - - - - - - - - ProDom entry format - - Entry format for the ProDom protein domain classification database. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - FSSP entry format - - Entry format for the FSSP database. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - findkm - - - beta12orEarlier - A report format for the kinetics of enzyme-catalysed reaction(s) in a format generated by EMBOSS findkm. This includes Michaelis Menten plot, Hanes Woolf plot, Michaelis Menten constant (Km) and maximum velocity (Vmax). - - - - - - - - - - Ensembl gene report format - - beta12orEarlier - Entry format of Ensembl genome database. - beta12orEarlier - true - - - - - - - - - - DictyBase gene report format - - true - beta12orEarlier - Entry format of DictyBase genome database. - beta12orEarlier - - - - - - - - - - CGD gene report format - - beta12orEarlier - true - beta12orEarlier - Entry format of Candida Genome database. - - - - - - - - - - DragonDB gene report format - - beta12orEarlier - Entry format of DragonDB genome database. - beta12orEarlier - true - - - - - - - - - - EcoCyc gene report format - - Entry format of EcoCyc genome database. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - FlyBase gene report format - - true - beta12orEarlier - beta12orEarlier - Entry format of FlyBase genome database. - - - - - - - - - - Gramene gene report format - - beta12orEarlier - beta12orEarlier - Entry format of Gramene genome database. - true - - - - - - - - - - KEGG GENES gene report format - - true - beta12orEarlier - Entry format of KEGG GENES genome database. - beta12orEarlier - - - - - - - - - - MaizeGDB gene report format - - beta12orEarlier - beta12orEarlier - true - Entry format of the Maize genetics and genomics database (MaizeGDB). - - - - - - - - - - MGD gene report format - - Entry format of the Mouse Genome Database (MGD). - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - RGD gene report format - - true - beta12orEarlier - Entry format of the Rat Genome Database (RGD). - beta12orEarlier - - - - - - - - - - SGD gene report format - - true - beta12orEarlier - beta12orEarlier - Entry format of the Saccharomyces Genome Database (SGD). - - - - - - - - - - GeneDB gene report format - - Entry format of the Sanger GeneDB genome database. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - TAIR gene report format - - beta12orEarlier - beta12orEarlier - Entry format of The Arabidopsis Information Resource (TAIR) genome database. - true - - - - - - - - - - WormBase gene report format - - Entry format of the WormBase genomes database. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - ZFIN gene report format - - beta12orEarlier - beta12orEarlier - true - Entry format of the Zebrafish Information Network (ZFIN) genome database. - - - - - - - - - - TIGR gene report format - - true - Entry format of the TIGR genome database. - beta12orEarlier - beta12orEarlier - - - - - - - - - - dbSNP polymorphism report format - - beta12orEarlier - Entry format for the dbSNP database. - true - beta12orEarlier - - - - - - - - - - OMIM entry format - - beta12orEarlier - true - beta12orEarlier - Format of an entry from the OMIM database of genotypes and phenotypes. - - - - - - - - - - HGVbase entry format - - true - Format of a record from the HGVbase database of genotypes and phenotypes. - beta12orEarlier - beta12orEarlier - - - - - - - - - - HIVDB entry format - - beta12orEarlier - beta12orEarlier - true - Format of a record from the HIVDB database of genotypes and phenotypes. - - - - - - - - - - KEGG DISEASE entry format - - beta12orEarlier - Format of an entry from the KEGG DISEASE database. - true - beta12orEarlier - - - - - - - - - - Primer3 primer - - - Report format on PCR primers and hybridization oligos as generated by Whitehead primer3 program. - beta12orEarlier - - - - - - - - - - ABI - - - A format of raw sequence read data from an Applied Biosystems sequencing machine. - beta12orEarlier - - - - - - - - - - mira - - - Format of MIRA sequence trace information file. - beta12orEarlier - - - - - - - - - - CAF - - - Common Assembly Format (CAF). A sequence assembly format including contigs, base-call qualities, and other metadata. - beta12orEarlier - - - - - - - - - - - - exp - - - Sequence assembly project file EXP format. - beta12orEarlier - - - - - - - - - - SCF - - - Staden Chromatogram Files format (SCF) of base-called sequence reads, qualities, and other metadata. - beta12orEarlier - - - - - - - - - - - - PHD - - - beta12orEarlier - PHD sequence trace format to store serialised chromatogram data (reads). - - - - - - - - - - - - dat - - - - - - - - - beta12orEarlier - Format of Affymetrix data file of raw image data. - Affymetrix image data file format - - - - - - - - - - cel - - - - - - - - - beta12orEarlier - Affymetrix probe raw data format - Format of Affymetrix data file of information about (raw) expression levels of the individual probes. - - - - - - - - - - affymetrix - - - Format of affymetrix gene cluster files (hc-genes.txt, hc-chips.txt) from hierarchical clustering. - beta12orEarlier - - - - - - - - - - ArrayExpress entry format - - beta12orEarlier - true - Entry format for the ArrayExpress microarrays database. - beta12orEarlier - - - - - - - - - - affymetrix-exp - - - Affymetrix data file format for information about experimental conditions and protocols. - Affymetrix experimental conditions data file format - beta12orEarlier - - - - - - - - - - CHP - - - - - - - - - Affymetrix probe normalised data format - beta12orEarlier - Format of Affymetrix data file of information about (normalised) expression levels of the individual probes. - - - - - - - - - - EMDB entry format - - beta12orEarlier - Format of an entry from the Electron Microscopy DataBase (EMDB). - true - beta12orEarlier - - - - - - - - - - KEGG PATHWAY entry format - - beta12orEarlier - beta12orEarlier - The format of an entry from the KEGG PATHWAY database of pathway maps for molecular interactions and reaction networks. - true - - - - - - - - - - MetaCyc entry format - - true - beta12orEarlier - The format of an entry from the MetaCyc metabolic pathways database. - beta12orEarlier - - - - - - - - - - HumanCyc entry format - - The format of a report from the HumanCyc metabolic pathways database. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - INOH entry format - - beta12orEarlier - true - The format of an entry from the INOH signal transduction pathways database. - beta12orEarlier - - - - - - - - - - PATIKA entry format - - beta12orEarlier - The format of an entry from the PATIKA biological pathways database. - beta12orEarlier - true - - - - - - - - - - Reactome entry format - - beta12orEarlier - The format of an entry from the reactome biological pathways database. - true - beta12orEarlier - - - - - - - - - - aMAZE entry format - - beta12orEarlier - true - The format of an entry from the aMAZE biological pathways and molecular interactions database. - beta12orEarlier - - - - - - - - - - CPDB entry format - - The format of an entry from the CPDB database. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Panther Pathways entry format - - beta12orEarlier - true - beta12orEarlier - The format of an entry from the Panther Pathways database. - - - - - - - - - - Taverna workflow format - - - Format of Taverna workflows. - beta12orEarlier - - - - - - - - - - BioModel mathematical model format - - beta12orEarlier - beta12orEarlier - Format of mathematical models from the BioModel database. - true - Models are annotated and linked to relevant data resources, such as publications, databases of compounds and pathways, controlled vocabularies, etc. - - - - - - - - - - KEGG LIGAND entry format - - The format of an entry from the KEGG LIGAND chemical database. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - KEGG COMPOUND entry format - - beta12orEarlier - The format of an entry from the KEGG COMPOUND database. - true - beta12orEarlier - - - - - - - - - - KEGG PLANT entry format - - beta12orEarlier - beta12orEarlier - The format of an entry from the KEGG PLANT database. - true - - - - - - - - - - KEGG GLYCAN entry format - - true - beta12orEarlier - The format of an entry from the KEGG GLYCAN database. - beta12orEarlier - - - - - - - - - - PubChem entry format - - beta12orEarlier - The format of an entry from PubChem. - true - beta12orEarlier - - - - - - - - - - ChemSpider entry format - - beta12orEarlier - The format of an entry from a database of chemical structures and property predictions. - beta12orEarlier - true - - - - - - - - - - ChEBI entry format - - beta12orEarlier - beta12orEarlier - The format of an entry from Chemical Entities of Biological Interest (ChEBI). - true - ChEBI includes an ontological classification defining relations between entities or classes of entities. - - - - - - - - - - MSDchem ligand dictionary entry format - - The format of an entry from the MSDchem ligand dictionary. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - HET group dictionary entry format - - - The format of an entry from the HET group dictionary (HET groups from PDB files). - beta12orEarlier - - - - - - - - - - KEGG DRUG entry format - - The format of an entry from the KEGG DRUG database. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - PubMed citation - - - beta12orEarlier - Format of bibliographic reference as used by the PubMed database. - - - - - - - - - - Medline Display Format - - - beta12orEarlier - Format for abstracts of scientific articles from the Medline database. - Bibliographic reference information including citation information is included - - - - - - - - - - CiteXplore-core - - - beta12orEarlier - CiteXplore 'core' citation format including title, journal, authors and abstract. - - - - - - - - - - CiteXplore-all - - - CiteXplore 'all' citation format includes all known details such as Mesh terms and cross-references. - beta12orEarlier - - - - - - - - - - pmc - - - beta12orEarlier - Article format of the PubMed Central database. - - - - - - - - - - iHOP text mining abstract format - - - beta12orEarlier - iHOP abstract format. - - - - - - - - - - Oscar3 - - - Oscar 3 performs chemistry-specific parsing of chemical documents. It attempts to identify chemical names, ontology concepts and chemical data from a document. - Text mining abstract format from the Oscar 3 application. - beta12orEarlier - - - - - - - - - - PDB atom record format - - true - beta13 - beta12orEarlier - Format of an ATOM record (describing data for an individual atom) from a PDB file. - - - - - - - - - - CATH chain report format - - The report (for example http://www.cathdb.info/chain/1cukA) includes chain identifiers, domain identifiers and CATH codes for domains in a given protein chain. - beta12orEarlier - Format of CATH domain classification information for a polypeptide chain. - beta12orEarlier - true - - - - - - - - - - CATH PDB report format - - beta12orEarlier - beta12orEarlier - true - Format of CATH domain classification information for a protein PDB file. - The report (for example http://www.cathdb.info/pdb/1cuk) includes chain identifiers, domain identifiers and CATH codes for domains in a given PDB file. - - - - - - - - - - NCBI gene report format - - true - Entry (gene) format of the NCBI database. - beta12orEarlier - beta12orEarlier - - - - - - - - - - GeneIlluminator gene report format - - Report format for biological functions associated with a gene name and its alternative names (synonyms, homonyms), as generated by the GeneIlluminator service. - This includes a gene name and abbreviation of the name which may be in a name space indicating the gene status and relevant organisation. - beta12orEarlier - beta12orEarlier - Moby:GI_Gene - true - - - - - - - - - - BacMap gene card format - - Format of a report on the DNA and protein sequences for a given gene label from a bacterial chromosome maps from the BacMap database. - true - beta12orEarlier - beta12orEarlier - Moby:BacMapGeneCard - - - - - - - - - - ColiCard report format - - Format of a report on Escherichia coli genes, proteins and molecules from the CyberCell Database (CCDB). - true - beta12orEarlier - Moby:ColiCard - beta12orEarlier - - - - - - - - - - PlasMapper TextMap - - - beta12orEarlier - Map of a plasmid (circular DNA) in PlasMapper TextMap format. - - - - - - - - - - newick - - - nh - beta12orEarlier - Phylogenetic tree Newick (text) format. - - - - - - - - - - TreeCon format - - - beta12orEarlier - Phylogenetic tree TreeCon (text) format. - - - - - - - - - - Nexus format - - - Phylogenetic tree Nexus (text) format. - beta12orEarlier - - - - - - - - - - Format - - - - http://en.wikipedia.org/wiki/File_format - http://purl.org/biotop/biotop.owl#MachineLanguage - File format - Data model - http://www.onto-med.de/ontologies/gfo.owl#Symbol_structure - Exchange format - "http://purl.obolibrary.org/obo/IAO_0000098" - http://semanticscience.org/resource/SIO_000612 - http://semanticscience.org/resource/SIO_000618 - beta12orEarlier - http://www.ifomis.org/bfo/1.1/snap#Continuant - http://www.loa-cnr.it/ontologies/DOLCE-Lite.owl#quality - "http://purl.org/dc/elements/1.1/format" - http://wsio.org/compression_004 - A defined way or layout of representing and structuring data in a computer file, blob, string, message, or elsewhere. - http://en.wikipedia.org/wiki/List_of_file_formats - http://www.ifomis.org/bfo/1.1/snap#Quality - Data format - http://purl.org/biotop/biotop.owl#Quality - The main focus in EDAM lies on formats as means of structuring data exchanged between different tools or resources. The serialisation, compression, or encoding of concrete data formats/models is not in scope of EDAM. Format 'is format of' Data. - http://www.onto-med.de/ontologies/gfo.owl#Perpetuant - - - - - A defined data format has its implicit or explicit data model, and EDAM does not distinguish the two. Some data models however do not have any standard way of serialisation into an exchange format, and those are thus not considered formats in EDAM. (Remark: even broader - or closely related - term to 'Data model' would be an 'Information model'.) - Data model - - - - - File format denotes only formats of a computer file, but the same formats apply also to data blobs or exchanged messages. - File format - - - - - - - - - - Atomic data format - - beta12orEarlier - beta13 - Data format for an individual atom. - true - - - - - - - - - - Sequence record format - - - - - - - - Data format for a molecular sequence record. - beta12orEarlier - - - - - - - - - - Sequence feature annotation format - - - - - - - - beta12orEarlier - Data format for molecular sequence feature information. - - - - - - - - - - Alignment format - - - - - - - - Data format for molecular sequence alignment information. - beta12orEarlier - - - - - - - - - - acedb - - beta12orEarlier - ACEDB sequence format. - - - - - - - - - - clustal sequence format - - true - beta12orEarlier - Clustalw output format. - beta12orEarlier - - - - - - - - - - codata - - - Codata entry format. - beta12orEarlier - - - - - - - - - - dbid - - beta12orEarlier - Fasta format variant with database name before ID. - - - - - - - - - - EMBL format - - - EMBL entry format. - EMBL sequence format - EMBL - beta12orEarlier - - - - - - - - - - Staden experiment format - - - Staden experiment file format. - beta12orEarlier - - - - - - - - - - FASTA - - - beta12orEarlier - FASTA format - FASTA sequence format - FASTA format including NCBI-style IDs. - - - - - - - - - - FASTQ - - FASTQ short read format ignoring quality scores. - beta12orEarlier - FASTAQ - fq - - - - - - - - - - FASTQ-illumina - - FASTQ Illumina 1.3 short read format. - beta12orEarlier - - - - - - - - - - FASTQ-sanger - - FASTQ short read format with phred quality. - beta12orEarlier - - - - - - - - - - FASTQ-solexa - - FASTQ Solexa/Illumina 1.0 short read format. - beta12orEarlier - - - - - - - - - - fitch program - - - Fitch program format. - beta12orEarlier - - - - - - - - - - GCG - - - GCG SSF - beta12orEarlier - GCG SSF (single sequence file) file format. - GCG sequence file format. - - - - - - - - - - GenBank format - - - beta12orEarlier - Genbank entry format. - - - - - - - - - - genpept - - beta12orEarlier - Genpept protein entry format. - Currently identical to refseqp format - - - - - - - - - - GFF2-seq - - - GFF feature file format with sequence in the header. - beta12orEarlier - - - - - - - - - - GFF3-seq - - - GFF3 feature file format with sequence. - beta12orEarlier - - - - - - - - - - giFASTA format - - FASTA sequence format including NCBI-style GIs. - beta12orEarlier - - - - - - - - - - hennig86 - - - beta12orEarlier - Hennig86 output sequence format. - - - - - - - - - - ig - - - Intelligenetics sequence format. - beta12orEarlier - - - - - - - - - - igstrict - - - beta12orEarlier - Intelligenetics sequence format (strict version). - - - - - - - - - - jackknifer - - - Jackknifer interleaved and non-interleaved sequence format. - beta12orEarlier - - - - - - - - - - mase format - - - beta12orEarlier - Mase program sequence format. - - - - - - - - - - mega-seq - - - beta12orEarlier - Mega interleaved and non-interleaved sequence format. - - - - - - - - - - MSF - - GCG MSF - beta12orEarlier - GCG MSF (multiple sequence file) file format. - - - - - - - - - - nbrf/pir - - NBRF/PIR entry sequence format. - nbrf - beta12orEarlier - pir - - - - - - - - - - nexus-seq - - - - beta12orEarlier - Nexus/paup interleaved sequence format. - - - - - - - - - - pdbatom - - - - pdb format in EMBOSS. - beta12orEarlier - PDB sequence format (ATOM lines). - - - - - - - - - - pdbatomnuc - - - - beta12orEarlier - pdbnuc format in EMBOSS. - PDB nucleotide sequence format (ATOM lines). - - - - - - - - - - pdbseqresnuc - - - - pdbnucseq format in EMBOSS. - PDB nucleotide sequence format (SEQRES lines). - beta12orEarlier - - - - - - - - - - pdbseqres - - - - PDB sequence format (SEQRES lines). - beta12orEarlier - pdbseq format in EMBOSS. - - - - - - - - - - Pearson format - - beta12orEarlier - Plain old FASTA sequence format (unspecified format for IDs). - - - - - - - - - - phylip sequence format - - beta12orEarlier - Phylip interleaved sequence format. - true - beta12orEarlier - - - - - - - - - - phylipnon sequence format - - true - Phylip non-interleaved sequence format. - beta12orEarlier - beta12orEarlier - - - - - - - - - - raw - - - beta12orEarlier - Raw sequence format with no non-sequence characters. - - - - - - - - - - refseqp - - - beta12orEarlier - Refseq protein entry sequence format. - Currently identical to genpept format - - - - - - - - - - selex sequence format - - beta12orEarlier - true - beta12orEarlier - Selex sequence format. - - - - - - - - - - Staden format - - - beta12orEarlier - Staden suite sequence format. - - - - - - - - - - - - - - Stockholm format - - - Stockholm multiple sequence alignment format (used by Pfam and Rfam). - beta12orEarlier - - - - - - - - - - - - strider format - - - DNA strider output sequence format. - beta12orEarlier - - - - - - - - - - UniProtKB format - - UniProt format - SwissProt format - beta12orEarlier - UniProtKB entry sequence format. - - - - - - - - - - plain text format (unformatted) - - - beta12orEarlier - Plain text sequence format (essentially unformatted). - - - - - - - - - - treecon sequence format - - true - beta12orEarlier - beta12orEarlier - Treecon output sequence format. - - - - - - - - - - ASN.1 sequence format - - - NCBI ASN.1-based sequence format. - beta12orEarlier - - - - - - - - - - DAS format - - - das sequence format - DAS sequence (XML) format (any type). - beta12orEarlier - - - - - - - - - - dasdna - - - beta12orEarlier - DAS sequence (XML) format (nucleotide-only). - The use of this format is deprecated. - - - - - - - - - - debug-seq - - - EMBOSS debugging trace sequence format of full internal data content. - beta12orEarlier - - - - - - - - - - jackknifernon - - - beta12orEarlier - Jackknifer output sequence non-interleaved format. - - - - - - - - - - meganon sequence format - - beta12orEarlier - beta12orEarlier - Mega non-interleaved output sequence format. - true - - - - - - - - - - NCBI format - - NCBI FASTA sequence format with NCBI-style IDs. - beta12orEarlier - There are several variants of this. - - - - - - - - - - nexusnon - - - - Nexus/paup non-interleaved sequence format. - beta12orEarlier - - - - - - - - - - GFF2 - - beta12orEarlier - General Feature Format (GFF) of sequence features. - - - - - - - - - - - - GFF3 - - beta12orEarlier - Generic Feature Format version 3 (GFF3) of sequence features. - - - - - - - - - - - - pir - - true - 1.7 - PIR feature format. - beta12orEarlier - - - - - - - - - - swiss feature - - true - Swiss-Prot feature format. - beta12orEarlier - beta12orEarlier - - - - - - - - - - DASGFF - - - DAS GFF (XML) feature format. - das feature - DASGFF feature - beta12orEarlier - - - - - - - - - - debug-feat - - - EMBOSS debugging trace feature format of full internal data content. - beta12orEarlier - - - - - - - - - - EMBL feature - - beta12orEarlier - EMBL feature format. - true - beta12orEarlier - - - - - - - - - - GenBank feature - - beta12orEarlier - Genbank feature format. - beta12orEarlier - true - - - - - - - - - - ClustalW format - - - clustal - beta12orEarlier - ClustalW format for (aligned) sequences. - - - - - - - - - - debug - - - EMBOSS alignment format for debugging trace of full internal data content. - beta12orEarlier - - - - - - - - - - FASTA-aln - - - beta12orEarlier - Fasta format for (aligned) sequences. - - - - - - - - - - markx0 - - beta12orEarlier - Pearson MARKX0 alignment format. - - - - - - - - - - markx1 - - Pearson MARKX1 alignment format. - beta12orEarlier - - - - - - - - - - markx10 - - beta12orEarlier - Pearson MARKX10 alignment format. - - - - - - - - - - markx2 - - beta12orEarlier - Pearson MARKX2 alignment format. - - - - - - - - - - markx3 - - beta12orEarlier - Pearson MARKX3 alignment format. - - - - - - - - - - match - - - Alignment format for start and end of matches between sequence pairs. - beta12orEarlier - - - - - - - - - - mega - - Mega format for (typically aligned) sequences. - beta12orEarlier - - - - - - - - - - meganon - - Mega non-interleaved format for (typically aligned) sequences. - beta12orEarlier - - - - - - - - - - msf alignment format - - true - beta12orEarlier - beta12orEarlier - MSF format for (aligned) sequences. - - - - - - - - - - nexus alignment format - - Nexus/paup format for (aligned) sequences. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - nexusnon alignment format - - beta12orEarlier - true - Nexus/paup non-interleaved format for (aligned) sequences. - beta12orEarlier - - - - - - - - - - pair - - EMBOSS simple sequence pair alignment format. - beta12orEarlier - - - - - - - - - - PHYLIP format - - phy - beta12orEarlier - ph - http://www.bioperl.org/wiki/PHYLIP_multiple_alignment_format - PHYLIP interleaved format - Phylip format for (aligned) sequences. - - - - - - - - - - phylipnon - - http://www.bioperl.org/wiki/PHYLIP_multiple_alignment_format - beta12orEarlier - PHYLIP sequential format - Phylip non-interleaved format for (aligned) sequences. - - - - - - - - - - scores format - - - Alignment format for score values for pairs of sequences. - beta12orEarlier - - - - - - - - - - selex - - - - beta12orEarlier - SELEX format for (aligned) sequences. - - - - - - - - - - EMBOSS simple format - - - EMBOSS simple multiple alignment format. - beta12orEarlier - - - - - - - - - - srs format - - - beta12orEarlier - Simple multiple sequence (alignment) format for SRS. - - - - - - - - - - srspair - - - beta12orEarlier - Simple sequence pair (alignment) format for SRS. - - - - - - - - - - T-Coffee format - - - T-Coffee program alignment format. - beta12orEarlier - - - - - - - - - - TreeCon-seq - - - - Treecon format for (aligned) sequences. - beta12orEarlier - - - - - - - - - - Phylogenetic tree format - - - - - - - - Data format for a phylogenetic tree. - beta12orEarlier - - - - - - - - - - Biological pathway or network format - - - - - - - - beta12orEarlier - Data format for a biological pathway or network. - - - - - - - - - - Sequence-profile alignment format - - - - - - - - beta12orEarlier - Data format for a sequence-profile alignment. - - - - - - - - - - Sequence-profile alignment (HMM) format - - beta12orEarlier - beta12orEarlier - true - Data format for a sequence-HMM profile alignment. - - - - - - - - - - Amino acid index format - - - - - - - - Data format for an amino acid index. - beta12orEarlier - - - - - - - - - - Article format - - - - - - - - beta12orEarlier - Literature format - Data format for a full-text scientific article. - - - - - - - - - - Text mining report format - - - - - - - - beta12orEarlier - Data format for an abstract (report) from text mining. - - - - - - - - - - Enzyme kinetics report format - - - - - - - - Data format for reports on enzyme kinetics. - beta12orEarlier - - - - - - - - - - Small molecule report format - - - - - - - - beta12orEarlier - Chemical compound annotation format - Format of a report on a chemical compound. - - - - - - - - - - Gene annotation format - - - - - - - - Format of a report on a particular locus, gene, gene system or groups of genes. - beta12orEarlier - Gene features format - - - - - - - - - - Workflow format - - beta12orEarlier - Format of a workflow. - - - - - - - - - - Tertiary structure format - - beta12orEarlier - Data format for a molecular tertiary structure. - - - - - - - - - - Biological model format - - Data format for a biological model. - beta12orEarlier - 1.2 - true - - - - - - - - - - Chemical formula format - - - - - - - - beta12orEarlier - Text format of a chemical formula. - - - - - - - - - - Phylogenetic character data format - - - - - - - - beta12orEarlier - Format of raw (unplotted) phylogenetic data. - - - - - - - - - - Phylogenetic continuous quantitative character format - - - - - - - - Format of phylogenetic continuous quantitative character data. - beta12orEarlier - - - - - - - - - - Phylogenetic discrete states format - - - - - - - - Format of phylogenetic discrete states data. - beta12orEarlier - - - - - - - - - - Phylogenetic tree report (cliques) format - - - - - - - - Format of phylogenetic cliques data. - beta12orEarlier - - - - - - - - - - Phylogenetic tree report (invariants) format - - - - - - - - beta12orEarlier - Format of phylogenetic invariants data. - - - - - - - - - - Electron microscopy model format - - beta12orEarlier - true - beta12orEarlier - Annotation format for electron microscopy models. - - - - - - - - - - Phylogenetic tree report (tree distances) format - - - - - - - - Format for phylogenetic tree distance data. - beta12orEarlier - - - - - - - - - - Polymorphism report format - - beta12orEarlier - true - 1.0 - Format for sequence polymorphism data. - - - - - - - - - Protein family report format - - - - - - - - beta12orEarlier - Format for reports on a protein family. - - - - - - - - - - Protein interaction format - - - - - - - - beta12orEarlier - Format for molecular interaction data. - Molecular interaction format - - - - - - - - - - Sequence assembly format - - - - - - - - beta12orEarlier - Format for sequence assembly data. - - - - - - - - - - Microarray experiment data format - - Format for information about a microarray experimental per se (not the data generated from that experiment). - beta12orEarlier - - - - - - - - - - Sequence trace format - - - - - - - - Format for sequence trace data (i.e. including base call information). - beta12orEarlier - - - - - - - - - - Gene expression report format - - - - - - - - Gene expression data format - Format of a file of gene expression data, e.g. a gene expression matrix or profile. - beta12orEarlier - - - - - - - - - - Genotype and phenotype annotation format - - beta12orEarlier - true - Format of a report on genotype / phenotype information. - beta12orEarlier - - - - - - - - - - Map format - - - - - - - - Format of a map of (typically one) molecular sequence annotated with features. - beta12orEarlier - - - - - - - - - - Nucleic acid features (primers) format - - beta12orEarlier - Format of a report on PCR primers or hybridization oligos in a nucleic acid sequence. - - - - - - - - - - Protein report format - - - - - - - - Format of a report of general information about a specific protein. - beta12orEarlier - - - - - - - - - - Protein report (enzyme) format - - Format of a report of general information about a specific enzyme. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - 3D-1D scoring matrix format - - - - - - - - beta12orEarlier - Format of a matrix of 3D-1D scores (amino acid environment probabilities). - - - - - - - - - - Protein structure report (quality evaluation) format - - - - - - - - Format of a report on the quality of a protein three-dimensional model. - beta12orEarlier - - - - - - - - - - Database hits (sequence) format - - - - - - - - Format of a report on sequence hits and associated data from searching a sequence database. - beta12orEarlier - - - - - - - - - - Sequence distance matrix format - - - - - - - - beta12orEarlier - Format of a matrix of genetic distances between molecular sequences. - - - - - - - - - - Sequence motif format - - - - - - - - Format of a sequence motif. - beta12orEarlier - - - - - - - - - - Sequence profile format - - - - - - - - Format of a sequence profile. - beta12orEarlier - - - - - - - - - - Hidden Markov model format - - - - - - - - beta12orEarlier - Format of a hidden Markov model. - - - - - - - - - - Dirichlet distribution format - - - - - - - - Data format of a dirichlet distribution. - beta12orEarlier - - - - - - - - - - HMM emission and transition counts format - - - - - - - - - - - - - - Data format for the emission and transition counts of a hidden Markov model. - beta12orEarlier - - - - - - - - - - RNA secondary structure format - - - - - - - - beta12orEarlier - Format for secondary structure (predicted or real) of an RNA molecule. - - - - - - - - - - Protein secondary structure format - - Format for secondary structure (predicted or real) of a protein molecule. - beta12orEarlier - - - - - - - - - - Sequence range format - - - - - - - - beta12orEarlier - Format used to specify range(s) of sequence positions. - - - - - - - - - - pure - - - Alphabet for molecular sequence with possible unknown positions but without non-sequence characters. - beta12orEarlier - - - - - - - - - - unpure - - - Alphabet for a molecular sequence with possible unknown positions but possibly with non-sequence characters. - beta12orEarlier - - - - - - - - - - unambiguous sequence - - - Alphabet for a molecular sequence with possible unknown positions but without ambiguity characters. - beta12orEarlier - - - - - - - - - - ambiguous - - - beta12orEarlier - Alphabet for a molecular sequence with possible unknown positions and possible ambiguity characters. - - - - - - - - - - Sequence features (repeats) format - - beta12orEarlier - Format used for map of repeats in molecular (typically nucleotide) sequences. - - - - - - - - - - Nucleic acid features (restriction sites) format - - beta12orEarlier - Format used for report on restriction enzyme recognition sites in nucleotide sequences. - - - - - - - - - - Gene features (coding region) format - - beta12orEarlier - Format used for report on coding regions in nucleotide sequences. - true - 1.10 - - - - - - - - - - Sequence cluster format - - - - - - - - beta12orEarlier - Format used for clusters of molecular sequences. - - - - - - - - - - Sequence cluster format (protein) - - Format used for clusters of protein sequences. - beta12orEarlier - - - - - - - - - - Sequence cluster format (nucleic acid) - - Format used for clusters of nucleotide sequences. - beta12orEarlier - - - - - - - - - - Gene cluster format - - true - beta13 - beta12orEarlier - Format used for clusters of genes. - - - - - - - - - - EMBL-like (text) - - - This concept may be used for the many non-standard EMBL-like text formats. - beta12orEarlier - A text format resembling EMBL entry format. - - - - - - - - - - FASTQ-like format (text) - - - A text format resembling FASTQ short read format. - This concept may be used for non-standard FASTQ short read-like formats. - beta12orEarlier - - - - - - - - - - EMBLXML - - XML format for EMBL entries. - beta12orEarlier - - - - - - - - - - cdsxml - - XML format for EMBL entries. - beta12orEarlier - - - - - - - - - - insdxml - - beta12orEarlier - XML format for EMBL entries. - - - - - - - - - - geneseq - - Geneseq sequence format. - beta12orEarlier - - - - - - - - - - UniProt-like (text) - - - A text sequence format resembling uniprotkb entry format. - beta12orEarlier - - - - - - - - - - UniProt format - - beta12orEarlier - true - UniProt entry sequence format. - 1.8 - - - - - - - - - - ipi - - 1.8 - beta12orEarlier - ipi sequence format. - true - - - - - - - - - - medline - - - Abstract format used by MedLine database. - beta12orEarlier - - - - - - - - - - Ontology format - - - - - - - - Format used for ontologies. - beta12orEarlier - - - - - - - - - - OBO format - - beta12orEarlier - A serialisation format conforming to the Open Biomedical Ontologies (OBO) model. - - - - - - - - - - OWL format - - - A serialisation format conforming to the Web Ontology Language (OWL) model. - beta12orEarlier - - - - - - - - - - FASTA-like (text) - - - This concept may also be used for the many non-standard FASTA-like formats. - http://filext.com/file-extension/FASTA - beta12orEarlier - A text format resembling FASTA format. - - - - - - - - - - Sequence record full format - - 1.8 - beta12orEarlier - Data format for a molecular sequence record, typically corresponding to a full entry from a molecular sequence database. - true - - - - - - - - - - Sequence record lite format - - true - 1.8 - beta12orEarlier - Data format for a molecular sequence record 'lite', typically molecular sequence and minimal metadata, such as an identifier of the sequence and/or a comment. - - - - - - - - - - EMBL format (XML) - - beta12orEarlier - An XML format for EMBL entries. - This is a placeholder for other more specific concepts. It should not normally be used for annotation. - - - - - - - - - - GenBank-like format (text) - - - A text format resembling GenBank entry (plain text) format. - This concept may be used for the non-standard GenBank-like text formats. - beta12orEarlier - - - - - - - - - - Sequence feature table format (text) - - Text format for a sequence feature table. - beta12orEarlier - - - - - - - - - - Strain data format - - Format of a report on organism strain data / cell line. - beta12orEarlier - true - 1.0 - - - - - - - - - CIP strain data format - - Format for a report of strain data as used for CIP database entries. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - phylip property values - - true - PHYLIP file format for phylogenetic property data. - beta12orEarlier - beta12orEarlier - - - - - - - - - - STRING entry format (HTML) - - beta12orEarlier - true - beta12orEarlier - Entry format (HTML) for the STRING database of protein interaction. - - - - - - - - - - STRING entry format (XML) - - - Entry format (XML) for the STRING database of protein interaction. - beta12orEarlier - - - - - - - - - - GFF - - - GFF feature format (of indeterminate version). - beta12orEarlier - - - - - - - - - - GTF - - Gene Transfer Format (GTF), a restricted version of GFF. - beta12orEarlier - - - - - - - - - - - - - FASTA-HTML - - - FASTA format wrapped in HTML elements. - beta12orEarlier - - - - - - - - - - EMBL-HTML - - - EMBL entry format wrapped in HTML elements. - beta12orEarlier - - - - - - - - - - BioCyc enzyme report format - - true - beta12orEarlier - beta12orEarlier - Format of an entry from the BioCyc enzyme database. - - - - - - - - - - ENZYME enzyme report format - - Format of an entry from the Enzyme nomenclature database (ENZYME). - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - PseudoCAP gene report format - - true - beta12orEarlier - beta12orEarlier - Format of a report on a gene from the PseudoCAP database. - - - - - - - - - - GeneCards gene report format - - Format of a report on a gene from the GeneCards database. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Textual format - - http://filext.com/file-extension/TSV - http://www.iana.org/assignments/media-types/text/plain - Textual format. - Data in text format can be compressed into binary format, or can be a value of an XML element or attribute. Markup formats are not considered textual (or more precisely, not plain-textual). - txt - http://filext.com/file-extension/TXT - Plain text - http://www.iana.org/assignments/media-types/media-types.xhtml#text - beta12orEarlier - - - - - - - - - - HTML - - - - - - - - HTML format. - beta12orEarlier - http://filext.com/file-extension/HTML - Hypertext Markup Language - - - - - - - - - - XML - - Data in XML format can be serialised into text, or binary format. - eXtensible Markup Language (XML) format. - beta12orEarlier - http://filext.com/file-extension/XML - Extensible Markup Language - - - - - - - - - - Binary format - - Only specific native binary formats are listed under 'Binary format' in EDAM. Generic binary formats - such as any data being zipped, or any XML data being serialised into the Efficient XML Interchange (EXI) format - are not modelled in EDAM. Refer to http://wsio.org/compression_004. - beta12orEarlier - Binary format. - - - - - - - - - - URI format - - beta13 - true - Typical textual representation of a URI. - beta12orEarlier - - - - - - - - - - NCI-Nature pathway entry format - - beta12orEarlier - true - The format of an entry from the NCI-Nature pathways database. - beta12orEarlier - - - - - - - - - - Format (typed) - - This concept exists only to assist EDAM maintenance and navigation in graphical browsers. It does not add semantic information. The concept branch under 'Format (typed)' provides an alternative organisation of the concepts nested under the other top-level branches ('Binary', 'HTML', 'RDF', 'Text' and 'XML'. All concepts under here are already included under those branches. - beta12orEarlier - A broad class of format distinguished by the scientific nature of the data that is identified. - - - - - - - - - - BioXSD - - - - - - - - - - - - - - - - - - - - - - - - BioXSD XML format - beta12orEarlier - BioXSD XML format of basic bioinformatics types of data (sequence records, alignments, feature records, references to resources, and more). - - - - - - - - - - - - RDF format - - - beta12orEarlier - A serialisation format conforming to the Resource Description Framework (RDF) model. - - - - - - - - - - GenBank-HTML - - - beta12orEarlier - Genbank entry format wrapped in HTML elements. - - - - - - - - - - Protein features (domains) format - - beta12orEarlier - true - beta12orEarlier - Format of a report on protein features (domain composition). - - - - - - - - - - EMBL-like format - - beta12orEarlier - A format resembling EMBL entry (plain text) format. - This concept may be used for the many non-standard EMBL-like formats. - - - - - - - - - - FASTQ-like format - - A format resembling FASTQ short read format. - This concept may be used for non-standard FASTQ short read-like formats. - beta12orEarlier - - - - - - - - - - FASTA-like - - This concept may be used for the many non-standard FASTA-like formats. - beta12orEarlier - A format resembling FASTA format. - - - - - - - - - - uniprotkb-like format - - - beta12orEarlier - A sequence format resembling uniprotkb entry format. - - - - - - - - - - Sequence feature table format - - - - - - - - Format for a sequence feature table. - beta12orEarlier - - - - - - - - - - OBO - - - beta12orEarlier - OBO ontology text format. - - - - - - - - - - OBO-XML - - - beta12orEarlier - OBO ontology XML format. - - - - - - - - - - Sequence record format (text) - - Data format for a molecular sequence record. - beta12orEarlier - - - - - - - - - - Sequence record format (XML) - - beta12orEarlier - Data format for a molecular sequence record. - - - - - - - - - - Sequence feature table format (XML) - - XML format for a sequence feature table. - beta12orEarlier - - - - - - - - - - Alignment format (text) - - Text format for molecular sequence alignment information. - beta12orEarlier - - - - - - - - - - Alignment format (XML) - - XML format for molecular sequence alignment information. - beta12orEarlier - - - - - - - - - - Phylogenetic tree format (text) - - beta12orEarlier - Text format for a phylogenetic tree. - - - - - - - - - - Phylogenetic tree format (XML) - - beta12orEarlier - XML format for a phylogenetic tree. - - - - - - - - - - EMBL-like (XML) - - - An XML format resembling EMBL entry format. - This concept may be used for the any non-standard EMBL-like XML formats. - beta12orEarlier - - - - - - - - - - GenBank-like format - - A format resembling GenBank entry (plain text) format. - beta12orEarlier - This concept may be used for the non-standard GenBank-like formats. - - - - - - - - - - STRING entry format - - beta12orEarlier - Entry format for the STRING database of protein interaction. - beta12orEarlier - true - - - - - - - - - - Sequence assembly format (text) - - beta12orEarlier - Text format for sequence assembly data. - - - - - - - - - - Amino acid identifier format - - beta13 - Text format (representation) of amino acid residues. - true - beta12orEarlier - - - - - - - - - - completely unambiguous - - - beta12orEarlier - Alphabet for a molecular sequence without any unknown positions or ambiguity characters. - - - - - - - - - - completely unambiguous pure - - - beta12orEarlier - Alphabet for a molecular sequence without unknown positions, ambiguity or non-sequence characters. - - - - - - - - - - completely unambiguous pure nucleotide - - - Alphabet for a nucleotide sequence (characters ACGTU only) without unknown positions, ambiguity or non-sequence characters . - beta12orEarlier - - - - - - - - - - completely unambiguous pure dna - - - beta12orEarlier - Alphabet for a DNA sequence (characters ACGT only) without unknown positions, ambiguity or non-sequence characters. - - - - - - - - - - completely unambiguous pure rna sequence - - - Alphabet for an RNA sequence (characters ACGU only) without unknown positions, ambiguity or non-sequence characters. - beta12orEarlier - - - - - - - - - - Raw sequence format - - - - - - - - http://www.onto-med.de/ontologies/gfo.owl#Symbol_sequence - beta12orEarlier - Format of a raw molecular sequence (i.e. the alphabet used). - - - - - - - - - - BAM - - - - beta12orEarlier - BAM format, the binary, BGZF-formatted compressed version of SAM format for alignment of nucleotide sequences (e.g. sequencing reads) to (a) reference sequence(s). May contain base-call and alignment qualities and other data. - - - - - - - - - - - - SAM - - - - The format supports short and long reads (up to 128Mbp) produced by different sequencing platforms and is used to hold mapped data within the GATK and across the Broad Institute, the Sanger Centre, and throughout the 1000 Genomes project. - beta12orEarlier - Sequence Alignment/Map (SAM) format for alignment of nucleotide sequences (e.g. sequencing reads) to (a) reference sequence(s). May contain base-call and alignment qualities and other data. - - - - - - - - - - - - SBML - - - Systems Biology Markup Language (SBML), the standard XML format for models of biological processes such as for example metabolism, cell signaling, and gene regulation. - beta12orEarlier - - - - - - - - - - - - completely unambiguous pure protein - - - beta12orEarlier - Alphabet for any protein sequence without unknown positions, ambiguity or non-sequence characters. - - - - - - - - - - Bibliographic reference format - - - - - - - - - - - - - - Format of a bibliographic reference. - beta12orEarlier - - - - - - - - - - Sequence annotation track format - - - - - - - - Format of a sequence annotation track. - beta12orEarlier - - - - - - - - - - Alignment format (pair only) - - - - - - - - beta12orEarlier - Data format for molecular sequence alignment information that can hold sequence alignment(s) of only 2 sequences. - - - - - - - - - - Sequence variation annotation format - - - - - - - - Format of sequence variation annotation. - beta12orEarlier - - - - - - - - - - markx0 variant - - - Some variant of Pearson MARKX alignment format. - beta12orEarlier - - - - - - - - - - mega variant - - - - Some variant of Mega format for (typically aligned) sequences. - beta12orEarlier - - - - - - - - - - Phylip format variant - - - - beta12orEarlier - Some variant of Phylip format for (aligned) sequences. - - - - - - - - - - AB1 - - - beta12orEarlier - AB1 binary format of raw DNA sequence reads (output of Applied Biosystems' sequencing analysis software). Contains an electropherogram and the DNA base sequence. - AB1 uses the generic binary Applied Biosystems, Inc. Format (ABIF). - - - - - - - - - - ACE - - - ACE sequence assembly format including contigs, base-call qualities, and other metadata (version Aug 1998 and onwards). - beta12orEarlier - - - - - - - - - - - - BED - - - beta12orEarlier - BED detail format includes 2 additional columns (http://genome.ucsc.edu/FAQ/FAQformat#format1.7) and BED 15 includes 3 additional columns for experiment scores (http://genomewiki.ucsc.edu/index.php/Microarray_track). - Browser Extensible Data (BED) format of sequence annotation track, typically to be displayed in a genome browser. - - - - - - - - - - - - bigBed - - - beta12orEarlier - bigBed format for large sequence annotation tracks, similar to textual BED format. - - - - - - - - - - - - WIG - - - Wiggle format (WIG) of a sequence annotation track that consists of a value for each sequence position. Typically to be displayed in a genome browser. - beta12orEarlier - - - - - - - - - - - - bigWig - - - beta12orEarlier - bigWig format for large sequence annotation tracks that consist of a value for each sequence position. Similar to textual WIG format. - - - - - - - - - - - - PSL - - - - PSL format of alignments, typically generated by BLAT or psLayout. Can be displayed in a genome browser like a sequence annotation track. - beta12orEarlier - - - - - - - - - - - - MAF - - - - Multiple Alignment Format (MAF) supporting alignments of whole genomes with rearrangements, directions, multiple pieces to the alignment, and so forth. - Typically generated by Multiz and TBA aligners; can be displayed in a genome browser like a sequence annotation track. This should not be confused with MIRA Assembly Format or Mutation Annotation Format. - beta12orEarlier - - - - - - - - - - - - 2bit - - - beta12orEarlier - 2bit binary format of nucleotide sequences using 2 bits per nucleotide. In addition encodes unknown nucleotides and lower-case 'masking'. - - - - - - - - - - - - - .nib - - - beta12orEarlier - .nib (nibble) binary format of a nucleotide sequence using 4 bits per nucleotide (including unknown) and its lower-case 'masking'. - - - - - - - - - - - - genePred - - - genePred table format for gene prediction tracks. - genePred format has 3 main variations (http://genome.ucsc.edu/FAQ/FAQformat#format9 http://www.broadinstitute.org/software/igv/genePred). They reflect UCSC Browser DB tables. - beta12orEarlier - - - - - - - - - - - - pgSnp - - - Personal Genome SNP (pgSnp) format for sequence variation tracks (indels and polymorphisms), supported by the UCSC Genome Browser. - beta12orEarlier - - - - - - - - - - - - axt - - - beta12orEarlier - axt format of alignments, typically produced from BLASTZ. - - - - - - - - - - - - LAV - - - beta12orEarlier - LAV format of alignments generated by BLASTZ and LASTZ. - - - - - - - - - - - - Pileup - - - beta12orEarlier - Pileup format of alignment of sequences (e.g. sequencing reads) to (a) reference sequence(s). Contains aligned bases per base of the reference sequence(s). - - - - - - - - - - - - VCF - - - beta12orEarlier - Variant Call Format (VCF) for sequence variation (indels, polymorphisms, structural variation). - - - - - - - - - - - - SRF - - - Sequence Read Format (SRF) of sequence trace data. Supports submission to the NCBI Short Read Archive. - beta12orEarlier - - - - - - - - - - - - ZTR - - - ZTR format for storing chromatogram data from DNA sequencing instruments. - beta12orEarlier - - - - - - - - - - - - GVF - - - Genome Variation Format (GVF). A GFF3-compatible format with defined header and attribute tags for sequence variation. - beta12orEarlier - - - - - - - - - - - - BCF - - - beta12orEarlier - BCF, the binary version of Variant Call Format (VCF) for sequence variation (indels, polymorphisms, structural variation). - - - - - - - - - - - Matrix format - - - - - - - - Format of a matrix (array) of numerical values. - beta13 - - - - - - - - - - Protein domain classification format - - - - - - - - Format of data concerning the classification of the sequences and/or structures of protein structural domain(s). - beta13 - - - - - - - - - - Raw SCOP domain classification format - - Format of raw SCOP domain classification data files. - These are the parsable data files provided by SCOP. - beta13 - - - - - - - - - - Raw CATH domain classification format - - These are the parsable data files provided by CATH. - beta13 - Format of raw CATH domain classification data files. - - - - - - - - - - CATH domain report format - - Format of summary of domain classification information for a CATH domain. - beta13 - The report (for example http://www.cathdb.info/domain/1cukA01) includes CATH codes for levels in the hierarchy for the domain, level descriptions and relevant data and links. - - - - - - - - - - SBRML - - - 1.0 - Systems Biology Result Markup Language (SBRML), the standard XML format for simulated or calculated results (e.g. trajectories) of systems biology models. - - - - - - - - - - - - BioPAX - - BioPAX is an exchange format for pathway data, with its data model defined in OWL. - 1.0 - - - - - - - - - - - - EBI Application Result XML - - - - EBI Application Result XML is a format returned by sequence similarity search Web services at EBI. - 1.0 - - - - - - - - - - - - PSI MI XML (MIF) - - - 1.0 - XML Molecular Interaction Format (MIF), standardised by HUPO PSI MI. - MIF - - - - - - - - - - - - phyloXML - - - phyloXML is a standardised XML format for phylogenetic trees, networks, and associated data. - 1.0 - - - - - - - - - - - - NeXML - - - 1.0 - NeXML is a standardised XML format for rich phyloinformatic data. - - - - - - - - - - - - MAGE-ML - - - - - - - - - 1.0 - MAGE-ML XML format for microarray expression data, standardised by MGED (now FGED). - - - - - - - - - - - - MAGE-TAB - - - - - - - - - MAGE-TAB textual format for microarray expression data, standardised by MGED (now FGED). - 1.0 - - - - - - - - - - - - GCDML - - - GCDML XML format for genome and metagenome metadata according to MIGS/MIMS/MIMARKS information standards, standardised by the Genomic Standards Consortium (GSC). - 1.0 - - - - - - - - - - - - GTrack - - - 1.0 - GTrack is an optimised tabular format for genome/sequence feature tracks unifying the power of other tabular formats (e.g. GFF3, BED, WIG). - - - - - - - - - - - - Biological pathway or network report format - - - - - - - - Data format for a report of information derived from a biological pathway or network. - beta12orEarlier - - - - - - - - - - Experiment annotation format - - - - - - - - beta12orEarlier - Data format for annotation on a laboratory experiment. - - - - - - - - - - Cytoband format - - - - - - - - - 1.2 - Cytoband format for chromosome cytobands. - Reflects a UCSC Browser DB table. - - - - - - - - - - - - CopasiML - - - - 1.2 - CopasiML, the native format of COPASI. - - - - - - - - - - - - CellML - - - CellML, the format for mathematical models of biological and other networks. - 1.2 - - - - - - - - - - - - PSI MI TAB (MITAB) - - - 1.2 - Tabular Molecular Interaction format (MITAB), standardised by HUPO PSI MI. - - - - - - - - - - - - PSI-PAR - - Protein affinity format (PSI-PAR), standardised by HUPO PSI MI. It is compatible with PSI MI XML (MIF) and uses the same XML Schema. - 1.2 - - - - - - - - - - - - mzML - - - mzML is the successor and unifier of the mzData format developed by PSI and mzXML developed at the Seattle Proteome Center. - 1.2 - mzML format for raw spectrometer output data, standardised by HUPO PSI MSS. - - - - - - - - - - - - Mass spectrometry data format - - - - - - - - 1.2 - Format for mass spectrometry data. - - - - - - - - - - TraML - - - TraML (Transition Markup Language) is the format for mass spectrometry transitions, standardised by HUPO PSI MSS. - 1.2 - - - - - - - - - - - - mzIdentML - - - mzIdentML is the exchange format for peptides and proteins identified from mass spectra, standardised by HUPO PSI PI. It can be used for outputs of proteomics search engines. - 1.2 - - - - - - - - - - - - mzQuantML - - - mzQuantML is the format for quantitation values associated with peptides, proteins and small molecules from mass spectra, standardised by HUPO PSI PI. It can be used for outputs of quantitation software for proteomics. - 1.2 - - - - - - - - - - - - GelML - - - 1.2 - GelML is the format for describing the process of gel electrophoresis, standardised by HUPO PSI PS. - - - - - - - - - - - - spML - - - 1.2 - spML is the format for describing proteomics sample processing, other than using gels, prior to mass spectrometric protein identification, standardised by HUPO PSI PS. It may also be applicable for metabolomics. - - - - - - - - - - - - OWL Functional Syntax - - - A human-readable encoding for the Web Ontology Language (OWL). - 1.2 - - - - - - - - - - Manchester OWL Syntax - - - A syntax for writing OWL class expressions. - 1.2 - This format was influenced by the OWL Abstract Syntax and the DL style syntax. - - - - - - - - - - KRSS2 Syntax - - - This format is used in Protege 4. - A superset of the "Description-Logic Knowledge Representation System Specification from the KRSS Group of the ARPA Knowledge Sharing Effort". - 1.2 - - - - - - - - - - Turtle - - - The SPARQL Query Language incorporates a very similar syntax. - 1.2 - The Terse RDF Triple Language (Turtle) is a human-friendly serialization format for RDF (Resource Description Framework) graphs. - - - - - - - - - - N-Triples - - - N-Triples should not be confused with Notation 3 which is a superset of Turtle. - 1.2 - A plain text serialisation format for RDF (Resource Description Framework) graphs, and a subset of the Turtle (Terse RDF Triple Language) format. - - - - - - - - - - Notation3 - - - N3 - A shorthand non-XML serialization of Resource Description Framework model, designed with human-readability in mind. - - - - - - - - - - RDF/XML - - - - RDF - Resource Description Framework (RDF) XML format. - 1.2 - http://www.ebi.ac.uk/SWO/data/SWO_3000006 - RDF/XML is a serialization syntax for OWL DL, but not for OWL Full. - - - - - - - - - - OWL/XML - - - OWL ontology XML serialisation format. - 1.2 - OWL - - - - - - - - - - A2M - - - The A2M format is used as the primary format for multiple alignments of protein or nucleic-acid sequences in the SAM suite of tools. It is a small modification of FASTA format for sequences and is compatible with most tools that read FASTA. - 1.3 - - - - - - - - - - - - SFF - - - Standard flowgram format - Standard flowgram format (SFF) is a binary file format used to encode results of pyrosequencing from the 454 Life Sciences platform for high-throughput sequencing. - 1.3 - - - - - - - - - - - - MAP - - The MAP file describes SNPs and is used by the Plink package. - 1.3 - Plink MAP - - - - - - - - - - - PED - - Plink PED - 1.3 - The PED file describes individuals and genetic data and is used by the Plink package. - - - - - - - - - - - Individual genetic data format - - Data format for a metadata on an individual and their genetic data. - 1.3 - - - - - - - - - - PED/MAP - - - The PED/MAP file describes data used by the Plink package. - Plink PED/MAP - 1.3 - - - - - - - - - - - CT - - - File format of a CT (Connectivity Table) file from the RNAstructure package. - beta12orEarlier - Connect format - Connectivity Table file format - - - - - - - - - - - - SS - - - beta12orEarlier - XRNA old input style format. - - - - - - - - - - - RNAML - - - - RNA Markup Language. - beta12orEarlier - - - - - - - - - - - GDE - - - Format for the Genetic Data Environment (GDE). - beta12orEarlier - - - - - - - - - - - BLC - - 1.3 - Block file format - A multiple alignment in vertical format, as used in the AMPS (Alignment of Multiple Protein Sequences) pacakge. - - - - - - - - - - - Data index format - - - - - - - - - 1.3 - - - - - - - - - - BAI - - - - - - - - 1.3 - BAM indexing format - - - - - - - - - - - HMMER2 - - HMMER profile HMM file for HMMER versions 2.x - 1.3 - - - - - - - - - - - HMMER3 - - 1.3 - HMMER profile HMM file for HMMER versions 3.x - - - - - - - - - - - PO - - EMBOSS simple sequence pair alignment format. - 1.3 - - - - - - - - - - - BLAST XML results format - - - XML format as produced by the NCBI Blast package - 1.3 - - - - - - - - - - CRAM - - - Reference-based compression of alignment format - http://www.ebi.ac.uk/ena/software/cram-usage#format_specification http://samtools.github.io/hts-specs/CRAMv2.1.pdf - http://www.ebi.ac.uk/ena/software/cram-usage#format_specification http://samtools.github.io/hts-specs/CRAMv2.1.pdf - 1.7 - - - - - - - - - - JSON - - 1.7 - Javascript Object Notation format; a lightweight, text-based format to represent structured data using key-value pairs. - - - - - - - - - - EPS - - Encapsulated PostScript format - 1.7 - - - - - - - - - - GIF - - 1.7 - Graphics Interchange Format. - - - - - - - - - - xls - - - Microsoft Excel spreadsheet format. - Microsoft Excel format - 1.7 - - - - - - - - - - TSV - - Tabular format - http://filext.com/file-extension/CSV - http://www.iana.org/assignments/media-types/text/csv - Tabular data represented as tab-separated values in a text file. - 1.7 - http://filext.com/file-extension/TSV - CSV - - - - - - - - - - Gene expression data format - - true - 1.10 - 1.7 - Format of a file of gene expression data, e.g. a gene expression matrix or profile. - - - - - - - - - - Cytoscape input file format - - - Format of the cytoscape input file of gene expression ratios or values are specified over one or more experiments. - 1.7 - - - - - - - - - - ebwt - - - - - - - - https://github.com/BenLangmead/bowtie/blob/master/MANUAL - Bowtie index format - 1.7 - Bowtie format for indexed reference genome for "small" genomes. - - - - - - - - - - RSF - - http://www.molbiol.ox.ac.uk/tutorials/Seqlab_GCG.pdf - RSF-format files contain one or more sequences that may or may not be related. In addition to the sequence data, each sequence can be annotated with descriptive sequence information (from the GCG manual). - Rich sequence format. - 1.7 - GCG RSF - - - - - - - - - - GCG format variant - - - - 1.7 - Some format based on the GCG format. - - - - - - - - - - BSML - - - http://rothlab.ucdavis.edu/genhelp/chapter_2_using_sequences.html#_Creating_and_Editing_Single_Sequenc - Bioinformatics Sequence Markup Language format. - 1.7 - - - - - - - - - - ebwtl - - - - - - - - 1.7 - https://github.com/BenLangmead/bowtie/blob/master/MANUAL - Bowtie long index format - Bowtie format for indexed reference genome for "large" genomes. - - - - - - - - - - Ensembl variation file format - - - Ensembl standard format for variation data. - 1.8 - - - - - - - - - - - docx - - - 1.8 - Microsoft Word format - doc - Microsoft Word format. - - - - - - - - - - Document format - - Portable Document Format - Microsoft Word format - Format of documents including word processor, spreadsheet and presentation. - 1.8 - doc - - - - - - - - - - PDF - - - 1.8 - Portable Document Format - - - - - - - - - - Image format - - - - - - - - Format used for images and image metadata. - 1.9 - - - - - - - - - - DICOM format - - - 1.9 - Medical image format corresponding to the Digital Imaging and Communications in Medicine (DICOM) standard. - - - - - - - - - - - - - nii - - - Medical image and metadata format of the Neuroimaging Informatics Technology Initiative. - - - NIfTI-1 format - 1.9 - - - - - - - - - - - mhd - - - Metalmage format - 1.9 - Text-based tagged file format for medical images generated using the MetaImage software package. - - - - - - - - - - - nrrd - - - 1.9 - Nearly Raw Rasta Data format designed to support scientific visualization and image processing involving N-dimensional raster data. - - - - - - - - - - - R file format - - File format used for scripts written in the R programming language for execution within the R software environment, typically for statistical computation and graphics. - - 1.9 - - - - - - - - - - SPSS - - 1.9 - File format used for scripts for the Statistical Package for the Social Sciences. - - - - - - - - - - - MHT - MIME HTML format for Web pages, which can include external resources, including images, Flash animations and so on. - - EMBL entry format wrapped in HTML elements. - 1.9 - MHTML - - - - - - - - - - IDAT - - - - - - - - - Proprietary file format for (raw) BeadArray data used by genomewide profiling platforms from Illumina Inc. This format is output directly from the scanner and stores summary intensities for each probe-type on an array. - 1.10 - - - - - - - - - - JPG - - - 1.10 - Joint Picture Group file format for lossy graphics file. - - Sequence of segments with markers. Begins with byte of 0xFF and follows by marker type. - - - - - - - - - - - rcc - - - 1.10 - Reporter Code Count-A data file (.csv) output by the Nanostring nCounter Digital Analyzer, which contains gene sample information, probe information and probe counts. - - - - - - - - - - arff - - ARFF (Attribute-Relation File Format) is an ASCII text file format that describes a list of instances sharing a set of attributes. - 1.11 - This file format is for machine learning. - - - - - - - - - - - - afg - - - 1.11 - AFG is a single text-based file assembly format that holds read and consensus information together - - - - - - - - - - - - bedgraph - - - Holds a tab-delimited chromosome /start /end / datavalue dataset. - 1.11 - The bedGraph format allows display of continuous-valued data in track format. This display type is useful for probability scores and transcriptome data - - - - - - - - - - - - bedstrict - - Browser Extensible Data (BED) format of sequence annotation track that strictly does not contain non-standard fields beyond the first 3 columns. - Galaxy allows BED files to contain non-standard fields beyond the first 3 columns, some other implementations do not. - 1.11 - - - - - - - - - - - - bed6 - - Tab delimited data in strict BED format - no non-standard columns allowed; column count forced to 6 - BED file format where each feature is described by chromosome, start, end, name, score, and strand. - 1.11 - - - - - - - - - - - - bed12 - - 1.11 - Tab delimited data in strict BED format - no non-standard columns allowed; column count forced to 12 - A BED file where each feature is described by all twelve columns. - - - - - - - - - - - - chrominfo - - - 1.11 - Tabular format of chromosome names and sizes used by Galaxy. - Galaxy allows BED files to contain non-standard fields beyond the first 3 columns, some other implementations do not. - - - - - - - - - - - - customtrack - - - 1.11 - Custom Sequence annotation track format used by Galaxy. - Used for tracks/track views within galaxy. - - - - - - - - - - - - csfasta - - - Color space FASTA format sequence variant. - 1.3 - FASTA format extended for color space information. - - - - - - - - - - - - hdf5 - - An HDF5 file appears to the user as a directed graph. The nodes of this graph are the higher-level HDF5 objects that are exposed by the HDF5 APIs: Groups, Datasets, Named datatypes. H5py uses straightforward NumPy and Python metaphors, like dictionary and NumPy array syntax. - 1.11 - h5 - Binary format used by Galaxy for hierarchical data. - - - - - - - - - - - - tiff - - - The TIFF format is perhaps the most versatile and diverse bitmap format in existence. Its extensible nature and support for numerous data compression schemes allow developers to customize the TIFF format to fit any peculiar data storage needs. - - A versatile bitmap format. - 1.11 - - - - - - - - - - - bmp - - - Standard bitmap storage format in the Microsoft Windows environment. - 1.11 - Although it is based on Windows internal bitmap data structures, it is supported by many non-Windows and non-PC applications. - - - - - - - - - - - im - - - IM is a format used by LabEye and other applications based on the IFUNC image processing library. - IFUNC library reads and writes most uncompressed interchange versions of this format. - - 1.11 - - - - - - - - - - - pcd - - - PCD was developed by Kodak. A PCD file contains five different resolution (ranging from low to high) of a slide or film negative. Due to it PCD is often used by many photographers and graphics professionals for high-end printed applications. - 1.11 - Photo CD format, which is the highest resolution format for images on a CD. - - - - - - - - - - - pcx - - - 1.11 - PCX is an image file format that uses a simple form of run-length encoding. It is lossless. - - - - - - - - - - - - ppm - - - The PPM format is a lowest common denominator color image file format. - - 1.11 - - - - - - - - - - - psd - - - 1.11 - PSD (Photoshop Document) is a proprietary file that allows the user to work with the images’ individual layers even after the file has been saved. - - - - - - - - - - - xbm - - - The XBM format was replaced by XPM for X11 in 1989. - 1.11 - X BitMap is a plain text binary image format used by the X Window System used for storing cursor and icon bitmaps used in the X GUI. - - - - - - - - - - - xpm - - - 1.11 - Sequence of segments with markers. Begins with byte of 0xFF and follows by marker type. - X PixMap (XPM) is an image file format used by the X Window System, it is intended primarily for creating icon pixmaps, and supports transparent pixels. - - - - - - - - - - - - rgb - - - 1.11 - RGB file format is the native raster graphics file format for Silicon Graphics workstations. - - - - - - - - - - - - pbm - - - 1.11 - The PBM format is a lowest common denominator monochrome file format. It serves as the common language of a large family of bitmap image conversion filters. - - - - - - - - - - - - pgm - - - It is designed to be extremely easy to learn and write programs for. - The PGM format is a lowest common denominator grayscale file format. - - 1.11 - - - - - - - - - - - png - - - 1.11 - PNG is a file format for image compression. - - It iis expected to replace the Graphics Interchange Format (GIF). - - - - - - - - - - - svg - - - The SVG specification is an open standard developed by the World Wide Web Consortium (W3C) since 1999. - Scalable Vector Graphics (SVG) is an XML-based vector image format for two-dimensional graphics with support for interactivity and animation. - 1.11 - - - - - - - - - - - rast - - - Sun Raster is a raster graphics file format used on SunOS by Sun Microsystems - 1.11 - The SVG specification is an open standard developed by the World Wide Web Consortium (W3C) since 1999. - - - - - - - - - - - Sequence quality report format (text) - - - - - - - - - Textual report format for sequence quality for reports from sequencing machines. - 1.11 - - - - - - - - - - qual - - - http://en.wikipedia.org/wiki/Phred_quality_score - 1.11 - Phred quality scores are defined as a property which is logarithmically related to the base-calling error probabilities. - FASTQ format subset for Phred sequencing quality score data only (no sequences). - - - - - - - - - - qualsolexa - - - Solexa/Illumina 1.0 format can encode a Solexa/Illumina quality score from -5 to 62 using ASCII 59 to 126 (although in raw read data Solexa scores from -5 to 40 only are expected) - 1.11 - FASTQ format subset for Phred sequencing quality score data only (no sequences) for Solexa/Illumina 1.0 format. - - - - - - - - - - qualillumina - - - Starting in Illumina 1.5 and before Illumina 1.8, the Phred scores 0 to 2 have a slightly different meaning. The values 0 and 1 are no longer used and the value 2, encoded by ASCII 66 "B", is used also at the end of reads as a Read Segment Quality Control Indicator. - FASTQ format subset for Phred sequencing quality score data only (no sequences) from Illumina 1.5 and before Illumina 1.8. - 1.11 - http://en.wikipedia.org/wiki/Phred_quality_score - - - - - - - - - - qualsolid - - For SOLiD data, the sequence is in color space, except the first position. The quality values are those of the Sanger format. - FASTQ format subset for Phred sequencing quality score data only (no sequences) for SOLiD data. - 1.11 - http://en.wikipedia.org/wiki/Phred_quality_score - - - - - - - - - - qual454 - - http://en.wikipedia.org/wiki/Phred_quality_score - 1.11 - FASTQ format subset for Phred sequencing quality score data only (no sequences) from 454 sequencers. - - - - - - - - - - ENCODE peak format - - 1.11 - Human ENCODE peak format. - Format that covers both the broad peak format and narrow peak format from ENCODE. - - - - - - - - - - - - ENCODE narrow peak format - - 1.11 - Human ENCODE narrow peak format. - Format that covers both the broad peak format and narrow peak format from ENCODE. - - - - - - - - - - - - ENCODE broad peak format - - 1.11 - Human ENCODE broad peak format. - - - - - - - - - - - - bgzip - - - BAM files are compressed using a variant of GZIP (GNU ZIP), into a format called BGZF (Blocked GNU Zip Format). - Blocked GNU Zip format. - 1.11 - - - - - - - - - - - tabix - - - TAB-delimited genome position file index format. - 1.11 - - - - - - - - - - - - Graph format - - Data format for graph data. - 1.11 - - - - - - - - - - xgmml - - XML-based format used to store graph descriptions within Galaxy. - 1.11 - - - - - - - - - - - sif - - 1.11 - SIF (simple interaction file) Format - a network/pathway format used for instance in cytoscape. - - - - - - - - - - - xlsx - - - 1.11 - MS Excel spreadsheet format consisting of a set of XML documents stored in a ZIP-compressed file. - - - - - - - - - - SQLite - - https://www.sqlite.org/fileformat2.html - Data format used by the SQLite database. - 1.11 - - - - - - - - - - GeminiSQLite - - https://gemini.readthedocs.org/en/latest/content/quick_start.html - 1.11 - Data format used by the SQLite database conformant to the Gemini schema. - - - - - - - - - - Index format - - - - - - - - - Format of a data index of some type. - 1.11 - - - - - - - - - - snpeffdb - - An index of a genome database, indexed for use by the snpeff tool. - 1.11 - - - - - - - - - - Operation - - - http://www.onto-med.de/ontologies/gfo.owl#Perpetuant - Computational tool - A function that processes a set of inputs and results in a set of outputs, or associates arguments (inputs) with values (outputs). Special cases are: a) An operation that consumes no input (has no input arguments). Such operation is either a constant function, or an operation depending only on the underlying state. b) An operation that may modify the underlying state but has no output. c) The singular-case operation with no input or output, that still may modify the underlying state. - Function - http://purl.org/biotop/biotop.owl#Function - http://www.ifomis.org/bfo/1.1/snap#Function - http://en.wikipedia.org/wiki/Function_(mathematics) - Computational method - http://semanticscience.org/resource/SIO_000017 - http://www.ebi.ac.uk/swo/SWO_0000003 - Mathematical operation - sumo:Function - beta12orEarlier - Process - Computational operation - Computational subroutine - http://semanticscience.org/resource/SIO_000649 - http://www.ifomis.org/bfo/1.1/span#Process - http://www.ifomis.org/bfo/1.1/snap#Continuant - http://onto.eva.mpg.de/ontologies/gfo-bio.owl#Method - Computational procedure - Mathematical function - Lambda abstraction - Function (programming) - http://www.onto-med.de/ontologies/gfo.owl#Process - http://www.loa-cnr.it/ontologies/DOLCE-Lite.owl#quality - http://wsio.org/operation_001 - http://www.loa-cnr.it/ontologies/DOLCE-Lite.owl#process - http://www.ifomis.org/bfo/1.1/snap#Quality - http://www.onto-med.de/ontologies/gfo.owl#Function - http://en.wikipedia.org/wiki/Function_(computer_science) - http://en.wikipedia.org/wiki/Subroutine - - - - - Process - Process can have a function (as its quality/attribute), and can also perform an operation with inputs and outputs. - - - - - Computational tool provides one or more operations. - Computational tool - - - - - Function - Operation is a function that is computational. It typically has input(s) and output(s), which are always data. - - - - - - - - - - Query and retrieval - - - - - - - - - - - - - - beta12orEarlier - Query - Retrieval - Search or query a data resource and retrieve entries and / or annotation. - Database retrieval - Search - - - - - - - - - - Data retrieval (database cross-reference) - - beta12orEarlier - Search database to retrieve all relevant references to a particular entity or entry. - true - beta13 - - - - - - - - - - Annotation - - - - - - - - - - - - - - Annotate an entity (typically a biological or biomedical database entity) with terms from a controlled vocabulary. - beta12orEarlier - This is a broad concept and is used a placeholder for other, more specific concepts. - - - - - - - - - - Indexing - - - - - - - - Data indexing - beta12orEarlier - Generate an index of (typically a file of) biological data. - Database indexing - - - - - - - - - - Data index analysis - - Database index analysis - Analyse an index of biological data. - beta12orEarlier - true - 1.6 - - - - - - - - - - Annotation retrieval (sequence) - - true - beta12orEarlier - Retrieve basic information about a molecular sequence. - beta12orEarlier - - - - - - - - - - Sequence generation - - - beta12orEarlier - Generate a molecular sequence by some means. - - - - - - - - - - Sequence editing - - - Edit or change a molecular sequence, either randomly or specifically. - beta12orEarlier - - - - - - - - - - Sequence merging - - beta12orEarlier - Merge two or more (typically overlapping) molecular sequences. - Sequence splicing - - - - - - - - - - Sequence conversion - - - Convert a molecular sequence from one type to another. - beta12orEarlier - - - - - - - - - - Sequence complexity calculation - - - - - - - - - - - - - - beta12orEarlier - Calculate sequence complexity, for example to find low-complexity regions in sequences. - - - - - - - - - - Sequence ambiguity calculation - - - - - - - - - - - - - - Calculate sequence ambiguity, for example identity regions in protein or nucleotide sequences with many ambiguity codes. - beta12orEarlier - - - - - - - - - - Sequence composition calculation - - - - - - - - - - - - - - - beta12orEarlier - Calculate character or word composition or frequency of a molecular sequence. - - - - - - - - - - Repeat sequence analysis - - - - - - - - Find and/or analyse repeat sequences in (typically nucleotide) sequences. - beta12orEarlier - Repeat sequences include tandem repeats, inverted or palindromic repeats, DNA microsatellites (Simple Sequence Repeats or SSRs), interspersed repeats, maximal duplications and reverse, complemented and reverse complemented repeats etc. Repeat units can be exact or imperfect, in tandem or dispersed, of specified or unspecified length. - - - - - - - - - - Sequence motif discovery - - - - - - - - - - - - - - Motifs and patterns might be conserved or over-represented (occur with improbable frequency). - beta12orEarlier - Discover new motifs or conserved patterns in sequences or sequence alignments (de-novo discovery). - Motif discovery - - - - - - - - - - Sequence signature recognition - - - - - - - - - - - - - - beta12orEarlier - Motif search - Sequence motif search - Protein secondary database search - Motif detection - Sequence motif recognition - Sequence signature detection - Sequence profile search - Find (scan for) known motifs, patterns and regular expressions in molecular sequence(s). - Sequence motif detection - Motif recognition - - - - - - - - - - Sequence motif comparison - - - - - - - - - - - - - - beta12orEarlier - Find motifs shared by molecular sequences. - - - - - - - - - - Transcription regulatory sequence analysis - - beta12orEarlier - beta13 - Analyse the sequence, conformational or physicochemical properties of transcription regulatory elements in DNA sequences. - For example transcription factor binding sites (TFBS) analysis to predict accessibility of DNA to binding factors. - true - - - - - - - - - - Conserved transcription regulatory sequence identification - - - For example cross-species comparison of transcription factor binding sites (TFBS). Methods might analyse co-regulated or co-expressed genes, or sets of oppositely expressed genes. - beta12orEarlier - Identify common, conserved (homologous) or synonymous transcriptional regulatory motifs (transcription factor binding sites). - - - - - - - - - - Protein property calculation (from structure) - - - - - - - - - - - - - - - This might be a residue-level search for properties such as solvent accessibility, hydropathy, secondary structure, ligand-binding etc. - Extract, calculate or predict non-positional (physical or chemical) properties of a protein from processing a protein (3D) structure. - beta12orEarlier - Protein structural property calculation - - - - - - - - - - Protein flexibility and motion analysis - - - beta12orEarlier - Analyse flexibility and motion in protein structure. - Use this concept for analysis of flexible and rigid residues, local chain deformability, regions undergoing conformational change, molecular vibrations or fluctuational dynamics, domain motions or other large-scale structural transitions in a protein structure. - - - - - - - - - - Protein structural motif recognition - - - - - - - - - Identify or screen for 3D structural motifs in protein structure(s). - This includes conserved substructures and conserved geometry, such as spatial arrangement of secondary structure or protein backbone. Methods might use structure alignment, structural templates, searches for similar electrostatic potential and molecular surface shape, surface-mapping of phylogenetic information etc. - beta12orEarlier - Protein structural feature identification - - - - - - - - - - Protein domain recognition - - - - - - - - - beta12orEarlier - Identify structural domains in a protein structure from first principles (for example calculations on structural compactness). - - - - - - - - - - Protein architecture analysis - - beta12orEarlier - Analyse the architecture (spatial arrangement of secondary structure) of protein structure(s). - - - - - - - - - - Residue interaction calculation - - - - - - - - - - - - - - WHATIF: SymShellTenXML - WHATIF:ListContactsRelaxed - WHATIF: SymShellTwoXML - WHATIF:ListSideChainContactsRelaxed - beta12orEarlier - WHATIF:ListSideChainContactsNormal - WHATIF:ListContactsNormal - Calculate or extract inter-atomic, inter-residue or residue-atom contacts, distances and interactions in protein structure(s). - WHATIF: SymShellFiveXML - WHATIF: SymShellOneXML - - - - - - - - - - Torsion angle calculation - - - - - - - - beta12orEarlier - Calculate, visualise or analyse phi/psi angles of a protein structure. - - - - - - - - - - Protein property calculation - - - - - - - - - - - - - - - - Calculate (or predict) physical or chemical properties of a protein, including any non-positional properties of the molecular sequence, from processing a protein sequence. - This includes methods to render and visualise the properties of a protein sequence. - beta12orEarlier - Protein property rendering - - - - - - - - - - Peptide immunogenicity prediction - - - - - - - - - - - - - - - beta12orEarlier - This is usually done in the development of peptide-specific antibodies or multi-epitope vaccines. Methods might use sequence data (for example motifs) and / or structural data. - Predict antigenicity, allergenicity / immunogenicity, allergic cross-reactivity etc of peptides and proteins. - - - - - - - - - - Sequence feature detection - - - - - - - - - - - - - - - Sequence feature prediction - Predict, recognise and identify positional features in molecular sequences such as key functional sites or regions. - Sequence feature recognition - beta12orEarlier - Motif database search - SO:0000110 - - - - - - - - - - Data retrieval (feature table) - - beta13 - Extract a sequence feature table from a sequence database entry. - true - beta12orEarlier - - - - - - - - - - Feature table query - - 1.6 - beta12orEarlier - true - Query the features (in a feature table) of molecular sequence(s). - - - - - - - - - - Sequence feature comparison - - - - - - - - - - - - - - - - - - - - - beta12orEarlier - Compare the feature tables of two or more molecular sequences. - Feature comparison - Feature table comparison - - - - - - - - - - Data retrieval (sequence alignment) - - beta12orEarlier - true - beta13 - Display basic information about a sequence alignment. - - - - - - - - - - Sequence alignment analysis - - - - - - - - Analyse a molecular sequence alignment. - beta12orEarlier - - - - - - - - - - Sequence alignment comparison - - - Compare (typically by aligning) two molecular sequence alignments. - beta12orEarlier - See also 'Sequence profile alignment'. - - - - - - - - - - Sequence alignment conversion - - - beta12orEarlier - Convert a molecular sequence alignment from one type to another (for example amino acid to coding nucleotide sequence). - - - - - - - - - - Nucleic acid property processing - - beta12orEarlier - true - Process (read and / or write) physicochemical property data of nucleic acids. - beta13 - - - - - - - - - - Nucleic acid property calculation - - - - - - - - - beta12orEarlier - Calculate or predict physical or chemical properties of nucleic acid molecules, including any non-positional properties of the molecular sequence. - - - - - - - - - - Splice transcript prediction - - - - - - - - beta12orEarlier - Predict splicing alternatives or transcript isoforms from analysis of sequence data. - - - - - - - - - - Frameshift detection - - - - - - - - - Detect frameshifts in DNA sequences, including frameshift sites and signals, and frameshift errors from sequencing projects. - Frameshift error detection - beta12orEarlier - Methods include sequence alignment (if related sequences are available) and word-based sequence comparison. - - - - - - - - - - Vector sequence detection - - - beta12orEarlier - Detect vector sequences in nucleotide sequence, typically by comparison to a set of known vector sequences. - - - - - - - - - - Protein secondary structure prediction - - - - - - - - - - Methods might use amino acid composition, local sequence information, multiple sequence alignments, physicochemical features, estimated energy content, statistical algorithms, hidden Markov models, support vector machines, kernel machines, neural networks etc. - Predict secondary structure of protein sequences. - Secondary structure prediction (protein) - beta12orEarlier - - - - - - - - - - Protein super-secondary structure prediction - - - - - - - - beta12orEarlier - Predict super-secondary structure of protein sequence(s). - Super-secondary structures include leucine zippers, coiled coils, Helix-Turn-Helix etc. - - - - - - - - - - Transmembrane protein prediction - - - Predict and/or classify transmembrane proteins or transmembrane (helical) domains or regions in protein sequences. - beta12orEarlier - - - - - - - - - - Transmembrane protein analysis - - - - - - - - beta12orEarlier - Analyse transmembrane protein(s), typically by processing sequence and / or structural data, and write an informative report for example about the protein and its transmembrane domains / regions. - Use this (or child) concept for analysis of transmembrane domains (buried and exposed faces), transmembrane helices, helix topology, orientation, inter-helical contacts, membrane dipping (re-entrant) loops and other secondary structure etc. Methods might use pattern discovery, hidden Markov models, sequence alignment, structural profiles, amino acid property analysis, comparison to known domains or some combination (hybrid methods). - - - - - - - - - - Structure prediction - - - - - - - - - - - - - - - Predict tertiary structure of a molecular (biopolymer) sequence. - beta12orEarlier - - - - - - - - - - Residue interaction prediction - - - - - - - - - Methods usually involve multiple sequence alignment analysis. - Predict contacts, non-covalent interactions and distance (constraints) between amino acids in protein sequences. - beta12orEarlier - - - - - - - - - - Protein interaction raw data analysis - - - - - - - - - - - - - - Analyse experimental protein-protein interaction data from for example yeast two-hybrid analysis, protein microarrays, immunoaffinity chromatography followed by mass spectrometry, phage display etc. - beta12orEarlier - - - - - - - - - - Protein-protein interaction prediction (from protein sequence) - - - beta12orEarlier - Identify or predict protein-protein interactions, interfaces, binding sites etc in protein sequences. - - - - - - - - - - Protein-protein interaction prediction (from protein structure) - - - - beta12orEarlier - Identify or predict protein-protein interactions, interfaces, binding sites etc in protein structures. - - - - - - - - - - Protein interaction network analysis - - - - - - - - - - - - - - - beta12orEarlier - Analyse a network of protein interactions. - - - - - - - - - - Protein interaction network comparison - - - beta12orEarlier - Compare two or more networks of protein interactions. - - - - - - - - - - RNA secondary structure prediction - - - - - - - - - - - - - - - - Predict RNA secondary structure (for example knots, pseudoknots, alternative structures etc). - beta12orEarlier - Methods might use RNA motifs, predicted intermolecular contacts, or RNA sequence-structure compatibility (inverse RNA folding). - - - - - - - - - - Nucleic acid folding prediction - - - - - - - - - - - - - - - - beta12orEarlier - Analyse some aspect of RNA/DNA folding, typically by processing sequence and/or structural data. - Nucleic acid folding modelling - Nucleic acid folding - - - - - - - - - - Data retrieval (restriction enzyme annotation) - - beta13 - Restriction enzyme information retrieval - true - Retrieve information on restriction enzymes or restriction enzyme sites. - beta12orEarlier - - - - - - - - - - Genetic marker identification - - true - beta12orEarlier - beta13 - Identify genetic markers in DNA sequences. - A genetic marker is any DNA sequence of known chromosomal location that is associated with and specific to a particular gene or trait. This includes short sequences surrounding a SNP, Sequence-Tagged Sites (STS) which are well suited for PCR amplification, a longer minisatellites sequence etc. - - - - - - - - - - Genetic mapping - - - - - - - - - beta12orEarlier - QTL mapping - This includes mapping of the genetic architecture of dynamic complex traits (functional mapping), e.g. by characterization of the underlying quantitative trait loci (QTLs) or nucleotides (QTNs). - Linkage mapping - Genetic map generation - Mapping involves ordering genetic loci along a chromosome and estimating the physical distance between loci. A genetic map shows the relative (not physical) position of known genes and genetic markers. - Generate a genetic (linkage) map of a DNA sequence (typically a chromosome) showing the relative positions of genetic markers based on estimation of non-physical distances. - Genetic map construction - Functional mapping - - - - - - - - - - Linkage analysis - - - - - - - - - - - - - - beta12orEarlier - For example, estimate how close two genes are on a chromosome by calculating how often they are transmitted together to an offspring, ascertain whether two genes are linked and parental linkage, calculate linkage map distance etc. - Analyse genetic linkage. - - - - - - - - - - Codon usage table generation - - - - - - - - - Calculate codon usage statistics and create a codon usage table. - beta12orEarlier - Codon usage table construction - - - - - - - - - - Codon usage table comparison - - - beta12orEarlier - Compare two or more codon usage tables. - - - - - - - - - - Codon usage analysis - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - beta12orEarlier - synon: Codon usage data analysis - Process (read and / or write) codon usage data, e.g. analyse codon usage tables or codon usage in molecular sequences. - synon: Codon usage table analysis - - - - - - - - - - Base position variability plotting - - - - - - - - - - - - - - - Identify and plot third base position variability in a nucleotide sequence. - beta12orEarlier - - - - - - - - - - Sequence word comparison - - Find exact character or word matches between molecular sequences without full sequence alignment. - beta12orEarlier - - - - - - - - - - Sequence distance matrix generation - - - - - - - - - - - - - - - Sequence distance matrix construction - Phylogenetic distance matrix generation - beta12orEarlier - Calculate a sequence distance matrix or otherwise estimate genetic distances between molecular sequences. - - - - - - - - - - Sequence redundancy removal - - - - - - - - beta12orEarlier - Compare two or more molecular sequences, identify and remove redundant sequences based on some criteria. - - - - - - - - - - Sequence clustering - - - - - - - - - - - - - - - - The clusters may be output or used internally for some other purpose. - Sequence cluster construction - beta12orEarlier - Build clusters of similar sequences, typically using scores from pair-wise alignment or other comparison of the sequences. - Sequence cluster generation - - - - - - - - - - Sequence alignment - - - - - - - - - - Sequence alignment construction - beta12orEarlier - Align (identify equivalent sites within) molecular sequences. - Sequence alignment generation - Sequence alignment computation - - - - - - - - - - Hybrid sequence alignment construction - - Hybrid sequence alignment - true - beta13 - beta12orEarlier - Align two or more molecular sequences of different types (for example genomic DNA to EST, cDNA or mRNA). - Hybrid sequence alignment generation - - - - - - - - - - Structure-based sequence alignment - - Structure-based sequence alignment - Sequence alignment generation (structure-based) - Structure-based sequence alignment construction - beta12orEarlier - Sequence alignment (structure-based) - Structure-based sequence alignment generation - Align molecular sequences using sequence and structural information. - - - - - - - - - - Structure alignment - - - - - - - - - - Align (superimpose) molecular tertiary structures. - Structure alignment generation - Structure alignment construction - beta12orEarlier - Multiple structure alignment construction - Multiple structure alignment generation - - - - - - - - - - Sequence profile generation - - - - - - - - - - - - - - - - - - - - - Sequence profile construction - beta12orEarlier - Generate some type of sequence profile (for example a hidden Markov model) from a sequence alignment. - - - - - - - - - - 3D profile generation - - - - - - - - - - - - - - - - - - - - - Structural profile generation - Generate some type of structural (3D) profile or template from a structure or structure alignment. - Structural profile construction - beta12orEarlier - - - - - - - - - - Profile-to-profile alignment - - - - - - - - - - - - - - - - - - - - Sequence profile alignment - beta12orEarlier - See also 'Sequence alignment comparison'. - Sequence profile alignment construction - Align sequence profiles (representing sequence alignments). - Sequence profile alignment generation - - - - - - - - - - 3D profile-to-3D profile alignment - - - - - - - - - - - - - - - beta12orEarlier - 3D profile alignment (multiple) - 3D profile alignment - Multiple 3D profile alignment construction - Structural profile alignment construction (multiple) - Structural profile alignment - Structural profile alignment generation - Structural profile alignment construction - Align structural (3D) profiles or templates (representing structures or structure alignments). - - - - - - - - - - Sequence-to-profile alignment - - - - - - - - - - - - - - - - - - - - Sequence-profile alignment construction - Sequence-profile alignment generation - beta12orEarlier - Align molecular sequence(s) to sequence profile(s). - Sequence-profile alignment - A sequence profile typically represents a sequence alignment. Methods might perform one-to-one, one-to-many or many-to-many comparisons. - - - - - - - - - - Sequence-to-3D-profile alignment - - - - - - - - - - - - - - - beta12orEarlier - Sequence-3D profile alignment construction - Align molecular sequence(s) to structural (3D) profile(s) or template(s) (representing a structure or structure alignment). - Sequence-3D profile alignment generation - Methods might perform one-to-one, one-to-many or many-to-many comparisons. - Sequence-3D profile alignment - - - - - - - - - - Protein threading - - - - - - - - - - - - - - - beta12orEarlier - Align molecular sequence to structure in 3D space (threading). - Use this concept for methods that evaluate sequence-structure compatibility by assessing residue interactions in 3D. Methods might perform one-to-one, one-to-many or many-to-many comparisons. - Sequence-structure alignment - - - - - - - - - - Protein fold recognition - - - - - - - - - - - beta12orEarlier - Protein domain prediction - Methods use some type of mapping between sequence and fold, for example secondary structure prediction and alignment, profile comparison, sequence properties, homologous sequence search, kernel machines etc. Domains and folds might be taken from SCOP or CATH. - Recognize (predict and identify) known protein structural domains or folds in protein sequence(s). - Protein fold prediction - - - - - - - - - - Metadata retrieval - - - - - - - - Data retrieval (documentation) - Search for and retrieve data concerning or describing some core data, as distinct from the primary data that is being described. - Data retrieval (metadata) - beta12orEarlier - This includes documentation, general information and other metadata on entities such as databases, database entries and tools. - - - - - - - - - - Literature search - - - - - - - - - - - - - - beta12orEarlier - Query the biomedical and informatics literature. - - - - - - - - - - Text mining - - - - - - - - - - - - - - - - - - - - Text data mining - beta12orEarlier - Process and analyse text (typically the biomedical and informatics literature) to extract information from it. - - - - - - - - - - Virtual PCR - - - - - - - - beta12orEarlier - Perform in-silico (virtual) PCR. - - - - - - - - - - PCR primer design - - - - - - - - - - - - - - - - - - - - PCR primer prediction - Primer design involves predicting or selecting primers that are specific to a provided PCR template. Primers can be designed with certain properties such as size of product desired, primer size etc. The output might be a minimal or overlapping primer set. - Design or predict oligonucleotide primers for PCR and DNA amplification etc. - beta12orEarlier - - - - - - - - - - Microarray probe design - - - - - - - - - - - - - - - - - - - - - - - - - - - Predict and/or optimize oligonucleotide probes for DNA microarrays, for example for transcription profiling of genes, or for genomes and gene families. - beta12orEarlier - Microarray probe prediction - - - - - - - - - - Sequence assembly - - - - - - - - - - - - - - - beta12orEarlier - For example, assemble overlapping reads from paired-end sequencers into contigs (a contiguous sequence corresponding to read overlaps). Or assemble contigs, for example ESTs and genomic DNA fragments, depending on the detected fragment overlaps. - Combine (align and merge) overlapping fragments of a DNA sequence to reconstruct the original sequence. - - - - - - - - - - Microarray data standardization and normalization - - - - - - - - - - - - - - - beta12orEarlier - Standardize or normalize microarray data. - This includes statistical analysis, for example of variability amongst microarrays experiments, comparison of heterogeneous microarray platforms etc. - - - - - - - - - - Sequencing-based expression profile data processing - - Process (read and / or write) SAGE, MPSS or SBS experimental data. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - Gene expression profile clustering - - - - - - - - - beta12orEarlier - Perform cluster analysis of gene expression (microarray) data, for example clustering of similar gene expression profiles. - - - - - - - - - - Gene expression profiling - - - - - - - - - Expression profiling - Gene expression profile construction - Functional profiling - Generate a gene expression profile or pattern, for example from microarray data. - beta12orEarlier - Gene expression profile generation - - - - - - - - - - Gene expression profile comparison - - - - - - - - - beta12orEarlier - Compare gene expression profiles or patterns. - - - - - - - - - - Functional profiling - - true - beta12orEarlier - Interpret (in functional terms) and annotate gene expression data. - beta12orEarlier - - - - - - - - - - EST and cDNA sequence analysis - - Analyse EST or cDNA sequences. - For example, identify full-length cDNAs from EST sequences or detect potential EST antisense transcripts. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Structural genomics target selection - - beta12orEarlier - Identify and select targets for protein structural determination. - beta12orEarlier - Methods will typically navigate a graph of protein families of known structure. - true - - - - - - - - - - Protein secondary structure assignment - - - - - - - - - - - - - - beta12orEarlier - Assign secondary structure from protein coordinate or experimental data. - - - - - - - - - - Protein structure assignment - - - - - - - - - - - - - - - beta12orEarlier - Assign a protein tertiary structure (3D coordinates) from raw experimental data. - - - - - - - - - - Protein model validation - - - - - - - - - - - - - - - - - - - - - Evaluate the quality or correctness a protein three-dimensional model. - Model validation might involve checks for atomic packing, steric clashes (bumps), volume irregularities, agreement with electron density maps, number of amino acid residues, percentage of residues with missing or bad atoms, irregular Ramachandran Z-scores, irregular Chi-1 / Chi-2 normality scores, RMS-Z score on bonds and angles etc. - WHATIF: CorrectedPDBasXML - Protein structure validation - WHATIF: UseFileDB - The PDB file format has had difficulties, inconsistencies and errors. Corrections can include identifying a meaningful sequence, removal of alternate atoms, correction of nomenclature problems, removal of incomplete residues and spurious waters, addition or removal of water, modelling of missing side chains, optimisation of cysteine bonds, regularisation of bond lengths, bond angles and planarities etc. - beta12orEarlier - - - - - - - - - - Molecular model refinement - - - Protein model refinement - WHATIF: CorrectedPDBasXML - beta12orEarlier - Refine (after evaluation) a model of a molecular structure (typically a protein structure) to reduce steric clashes, volume irregularities etc. - - - - - - - - - - Phylogenetic tree generation - - - - - - - - - - - - - - - Phylogenetic trees are usually constructed from a set of sequences from which an alignment (or data matrix) is calculated. - Phylogenetic tree construction - Construct a phylogenetic tree. - beta12orEarlier - - - - - - - - - - Phylogenetic tree analysis - - - - - - - - - - - - - - beta12orEarlier - Analyse an existing phylogenetic tree or trees, typically to detect features or make predictions. - - - - - - - - - - Phylogenetic tree comparison - - - beta12orEarlier - Compare two or more phylogenetic trees. - For example, to produce a consensus tree, subtrees, supertrees, calculate distances between trees or test topological similarity between trees (e.g. a congruence index) etc. - - - - - - - - - - Phylogenetic tree editing - - - - - - - - - - - - - - - Edit a phylogenetic tree. - beta12orEarlier - - - - - - - - - - Phylogenetic footprinting / shadowing - - - - - - - - A phylogenetic 'shadow' represents the additive differences between individual sequences. By masking or 'shadowing' variable positions a conserved sequence is produced with few or none of the variations, which is then compared to the sequences of interest to identify significant regions of conservation. - beta12orEarlier - Infer a phylogenetic tree by comparing orthologous sequences in different species, particularly many closely related species (phylogenetic shadowing). - - - - - - - - - - Protein folding simulation - - beta12orEarlier - Simulate the folding of a protein. - - - - - - - - - - Protein folding pathway prediction - - - Predict the folding pathway(s) or non-native structural intermediates of a protein. - beta12orEarlier - - - - - - - - - - Protein SNP mapping - - - - - - - - - beta12orEarlier - Map and model the effects of single nucleotide polymorphisms (SNPs) on protein structure(s). - - - - - - - - - - Protein modelling (mutation) - - - - - - - - - - - - - - - Methods might predict silent or pathological mutations. - Protein mutation modelling - Predict the effect of point mutation on a protein structure, in terms of strucural effects and protein folding, stability and function. - beta12orEarlier - - - - - - - - - - Immunogen design - - true - Design molecules that elicit an immune response (immunogens). - beta12orEarlier - beta12orEarlier - - - - - - - - - - Zinc finger prediction - - - - - - - - - - - - - - Predict and optimise zinc finger protein domains for DNA/RNA binding (for example for transcription factors and nucleases). - beta12orEarlier - - - - - - - - - - Enzyme kinetics calculation - - - - - - - - - - - - - - beta12orEarlier - Calculate Km, Vmax and derived data for an enzyme reaction. - - - - - - - - - - Formatting - - beta12orEarlier - Reformat a file of data (or equivalent entity in memory). - Format conversion - File formatting - Reformatting - File reformatting - File format conversion - - - - - - - - - - Format validation - - - Test and validate the format and content of a data file. - File format validation - beta12orEarlier - - - - - - - - - - Visualisation - - - - - - - - - - - - - - - - - - - - beta12orEarlier - Visualise, plot or render (graphically) biomolecular data such as molecular sequences or structures. - Rendering - - - - - - - - - - Sequence database search - - - - - - - - - - - - - - - Search a sequence database by sequence comparison and retrieve similar sequences. - -sequences matching a given sequence motif or pattern, such as a Prosite pattern or regular expression. - beta12orEarlier - This excludes direct retrieval methods (e.g. the dbfetch program). - - - - - - - - - - Structure database search - - - - - - - - beta12orEarlier - Search a tertiary structure database, typically by sequence and/or structure comparison, or some other means, and retrieve structures and associated data. - - - - - - - - - - Protein secondary database search - - 1.8 - beta12orEarlier - true - Search a secondary protein database (of classification information) to assign a protein sequence(s) to a known protein family or group. - - - - - - - - - - Motif database search - - beta12orEarlier - Screen a sequence against a motif or pattern database. - true - 1.8 - - - - - - - - - - Sequence profile database search - - true - beta12orEarlier - Search a database of sequence profiles with a query sequence. - 1.4 - - - - - - - - - - Transmembrane protein database search - - true - beta12orEarlier - Search a database of transmembrane proteins, for example for sequence or structural similarities. - beta12orEarlier - - - - - - - - - - Sequence retrieval (by code) - - Query a database and retrieve sequences with a given entry code or accession number. - true - 1.6 - beta12orEarlier - - - - - - - - - - Sequence retrieval (by keyword) - - true - Query a database and retrieve sequences containing a given keyword. - beta12orEarlier - 1.6 - - - - - - - - - - Sequence similarity search - - - Structure database search (by sequence) - Sequence database search (by sequence) - beta12orEarlier - Search a sequence database and retrieve sequences that are similar to a query sequence. - - - - - - - - - - Sequence database search (by motif or pattern) - - 1.8 - Search a sequence database and retrieve sequences matching a given sequence motif or pattern, such as a Prosite pattern or regular expression. - beta12orEarlier - true - - - - - - - - - - Sequence database search (by amino acid composition) - - true - Search a sequence database and retrieve sequences of a given amino acid composition. - 1.6 - beta12orEarlier - - - - - - - - - - Sequence database search (by property) - - Search a sequence database and retrieve sequences with a specified property, typically a physicochemical or compositional property. - beta12orEarlier - - - - - - - - - - Sequence database search (by sequence using word-based methods) - - beta12orEarlier - Word-based methods (for example BLAST, gapped BLAST, MEGABLAST, WU-BLAST etc.) are usually quicker than alignment-based methods. They may or may not handle gaps. - 1.6 - true - Sequence similarity search (word-based methods) - Search a sequence database and retrieve sequences that are similar to a query sequence using a word-based method. - - - - - - - - - - Sequence database search (by sequence using profile-based methods) - - true - Sequence similarity search (profile-based methods) - Search a sequence database and retrieve sequences that are similar to a query sequence using a sequence profile-based method, or with a supplied profile as query. - beta12orEarlier - This includes tools based on PSI-BLAST. - 1.6 - - - - - - - - - - Sequence database search (by sequence using local alignment-based methods) - - Search a sequence database for sequences that are similar to a query sequence using a local alignment-based method. - 1.6 - beta12orEarlier - true - Sequence similarity search (local alignment-based methods) - This includes tools based on the Smith-Waterman algorithm or FASTA. - - - - - - - - - - Sequence database search (by sequence using global alignment-based methods) - - This includes tools based on the Needleman and Wunsch algorithm. - Search sequence(s) or a sequence database for sequences that are similar to a query sequence using a global alignment-based method. - 1.6 - Sequence similarity search (global alignment-based methods) - beta12orEarlier - true - - - - - - - - - - Sequence database search (by sequence for primer sequences) - - true - beta12orEarlier - Search a DNA database (for example a database of conserved sequence tags) for matches to Sequence-Tagged Site (STS) primer sequences. - 1.6 - STSs are genetic markers that are easily detected by the polymerase chain reaction (PCR) using specific primers. - Sequence similarity search (primer sequences) - - - - - - - - - - Sequence database search (by molecular weight) - - Search sequence(s) or a sequence database for sequences which match a set of peptide masses, for example a peptide mass fingerprint from mass spectrometry. - 1.6 - Protein fingerprinting - true - beta12orEarlier - Peptide mass fingerprinting - - - - - - - - - - Sequence database search (by isoelectric point) - - 1.6 - beta12orEarlier - Search sequence(s) or a sequence database for sequences of a given isoelectric point. - true - - - - - - - - - - Structure retrieval (by code) - - Query a tertiary structure database and retrieve entries with a given entry code or accession number. - 1.6 - beta12orEarlier - true - - - - - - - - - - Structure retrieval (by keyword) - - true - 1.6 - Query a tertiary structure database and retrieve entries containing a given keyword. - beta12orEarlier - - - - - - - - - - Structure database search (by sequence) - - beta12orEarlier - true - Search a tertiary structure database and retrieve structures with a sequence similar to a query sequence. - 1.8 - - - - - - - - - - Structural similarity search - - - - - - - - - beta12orEarlier - Search a database of molecular structure and retrieve structures that are similar to a query structure. - Structure database search (by structure) - Structure retrieval by structure - - - - - - - - - - Sequence annotation - - - - - - - - - - - - - - beta12orEarlier - Annotate a molecular sequence record with terms from a controlled vocabulary. - - - - - - - - - - Genome annotation - - beta12orEarlier - Annotate a genome sequence with terms from a controlled vocabulary. - - - - - - - - - - Nucleic acid sequence reverse and complement - - beta12orEarlier - Generate the reverse and / or complement of a nucleotide sequence. - - - - - - - - - - Random sequence generation - - Generate a random sequence, for example, with a specific character composition. - beta12orEarlier - - - - - - - - - - Nucleic acid restriction digest - - - - - - - - - beta12orEarlier - Generate digest fragments for a nucleotide sequence containing restriction sites. - - - - - - - - - - Protein sequence cleavage - - - - - - - - - - - - - - - beta12orEarlier - Cleave a protein sequence into peptide fragments (by enzymatic or chemical cleavage) and calculate the fragment masses. - - - - - - - - - - Sequence mutation and randomization - - beta12orEarlier - Mutate a molecular sequence a specified amount or shuffle it to produce a randomized sequence with the same overall composition. - - - - - - - - - - Sequence masking - - Mask characters in a molecular sequence (replacing those characters with a mask character). - For example, SNPs or repeats in a DNA sequence might be masked. - beta12orEarlier - - - - - - - - - - Sequence cutting - - Cut (remove) characters or a region from a molecular sequence. - beta12orEarlier - - - - - - - - - - Restriction site creation - - Create (or remove) restriction sites in sequences, for example using silent mutations. - beta12orEarlier - - - - - - - - - - DNA translation - - - - - - - - beta12orEarlier - Translate a DNA sequence into protein. - - - - - - - - - - DNA transcription - - - - - - - - beta12orEarlier - Transcribe a nucleotide sequence into mRNA sequence(s). - - - - - - - - - - Sequence composition calculation (nucleic acid) - - true - Calculate base frequency or word composition of a nucleotide sequence. - 1.8 - beta12orEarlier - - - - - - - - - - Sequence composition calculation (protein) - - 1.8 - Calculate amino acid frequency or word composition of a protein sequence. - beta12orEarlier - true - - - - - - - - - - Repeat sequence detection - - - beta12orEarlier - Find (and possibly render) short repetitive subsequences (repeat sequences) in (typically nucleotide) sequences. - - - - - - - - - - Repeat sequence organisation analysis - - - beta12orEarlier - Analyse repeat sequence organization such as periodicity. - - - - - - - - - - Protein hydropathy calculation (from structure) - - - - Analyse the hydrophobic, hydrophilic or charge properties of a protein structure. - beta12orEarlier - - - - - - - - - - Protein solvent accessibility calculation - - - - - - - - - - - - - - beta12orEarlier - Calculate solvent accessible or buried surface areas in protein structures. - - - - - - - - - - Protein hydropathy cluster calculation - - - beta12orEarlier - Identify clusters of hydrophobic or charged residues in a protein structure. - - - - - - - - - - Protein dipole moment calculation - - - - - - - - beta12orEarlier - Calculate whether a protein structure has an unusually large net charge (dipole moment). - - - - - - - - - - Protein surface and interior calculation - - - - - - - - beta12orEarlier - Identify the protein surface and interior, surface accessible pockets, interior inaccessible cavities etc. - - - - - - - - - - Protein binding site prediction (from structure) - - - Identify or predict catalytic residues, active sites or other ligand-binding sites in protein structures. - beta12orEarlier - Ligand-binding and active site prediction (from structure) - Binding site prediction (from structure) - - - - - - - - - - Protein-nucleic acid binding site analysis - - - - - - - - Analyse RNA or DNA-binding sites in protein structure. - beta12orEarlier - - - - - - - - - - Protein peeling - - beta12orEarlier - Decompose a structure into compact or globular fragments (protein peeling). - - - - - - - - - - Protein distance matrix calculation - - - - - - - - beta12orEarlier - Calculate a matrix of distance between residues (for example the C-alpha atoms) in a protein structure. - - - - - - - - - - Protein contact map calculation - - - - - - - - beta12orEarlier - Calculate a residue contact map (typically all-versus-all inter-residue contacts) for a protein structure. - - - - - - - - - - Protein residue cluster calculation - - - - - - - - Cluster of contacting residues might be key structural residues. - Calculate clusters of contacting residues in protein structures. - beta12orEarlier - - - - - - - - - - Hydrogen bond calculation - - - - - - - - WHATIF:ShowHydrogenBonds - WHATIF:HasHydrogenBonds - The output might include the atoms involved in the bond, bond geometric parameters and bond enthalpy. - beta12orEarlier - WHATIF:ShowHydrogenBondsM - Identify potential hydrogen bonds between amino acids and other groups. - - - - - - - - - - Residue non-canonical interaction detection - - - beta12orEarlier - Calculate non-canonical atomic interactions in protein structures. - - - - - - - - - - Ramachandran plot calculation - - - - - - - - Calculate a Ramachandran plot of a protein structure. - beta12orEarlier - - - - - - - - - - Ramachandran plot validation - - - - - - - - - - - - - - beta12orEarlier - Validate a Ramachandran plot of a protein structure. - - - - - - - - - - Protein molecular weight calculation - - - - - - - - - - - - - - Calculate the molecular weight of a protein sequence or fragments. - beta12orEarlier - - - - - - - - - - Protein extinction coefficient calculation - - - - - - - - beta12orEarlier - Predict extinction coefficients or optical density of a protein sequence. - - - - - - - - - - Protein pH-dependent property calculation - - - - - - - - - - - - - - Calculate pH-dependent properties from pKa calculations of a protein sequence. - beta12orEarlier - - - - - - - - - - Protein hydropathy calculation (from sequence) - - - Hydropathy calculation on a protein sequence. - beta12orEarlier - - - - - - - - - - Protein titration curve plotting - - - - - - - - - beta12orEarlier - Plot a protein titration curve. - - - - - - - - - - Protein isoelectric point calculation - - - - - - - - beta12orEarlier - Calculate isoelectric point of a protein sequence. - - - - - - - - - - Protein hydrogen exchange rate calculation - - - - - - - - Estimate hydrogen exchange rate of a protein sequence. - beta12orEarlier - - - - - - - - - - Protein hydrophobic region calculation - - Calculate hydrophobic or hydrophilic / charged regions of a protein sequence. - beta12orEarlier - - - - - - - - - - Protein aliphatic index calculation - - - - - - - - beta12orEarlier - Calculate aliphatic index (relative volume occupied by aliphatic side chains) of a protein. - - - - - - - - - - Protein hydrophobic moment plotting - - - - - - - - - beta12orEarlier - Hydrophobic moment is a peptides hydrophobicity measured for different angles of rotation. - Calculate the hydrophobic moment of a peptide sequence and recognize amphiphilicity. - - - - - - - - - - Protein globularity prediction - - - - - - - - Predict the stability or globularity of a protein sequence, whether it is intrinsically unfolded etc. - beta12orEarlier - - - - - - - - - - Protein solubility prediction - - - - - - - - Predict the solubility or atomic solvation energy of a protein sequence. - beta12orEarlier - - - - - - - - - - Protein crystallizability prediction - - - - - - - - beta12orEarlier - Predict crystallizability of a protein sequence. - - - - - - - - - - Protein signal peptide detection (eukaryotes) - - beta12orEarlier - Detect or predict signal peptides (and typically predict subcellular localization) of eukaryotic proteins. - - - - - - - - - - Protein signal peptide detection (bacteria) - - Detect or predict signal peptides (and typically predict subcellular localization) of bacterial proteins. - beta12orEarlier - - - - - - - - - - MHC peptide immunogenicity prediction - - Predict MHC class I or class II binding peptides, promiscuous binding peptides, immunogenicity etc. - beta12orEarlier - - - - - - - - - - Protein feature prediction (from sequence) - - Methods typically involve scanning for known motifs, patterns and regular expressions. - beta12orEarlier - true - Sequence feature detection (protein) - 1.6 - Predict, recognise and identify positional features in protein sequences such as functional sites or regions and secondary structure. - - - - - - - - - - Nucleic acid feature detection - - - - - - - - - - - - - - - Sequence feature detection (nucleic acid) - Predict, recognise and identify features in nucleotide sequences such as functional sites or regions, typically by scanning for known motifs, patterns and regular expressions. - Methods typically involve scanning for known motifs, patterns and regular expressions. - beta12orEarlier - Nucleic acid feature recognition - Nucleic acid feature prediction - - - - - - - - - - Epitope mapping - - - - - - - - - beta12orEarlier - Predict antigenic determinant sites (epitopes) in protein sequences. - Epitope mapping is commonly done during vaccine design. - - - - - - - - - - Protein post-translation modification site prediction - - - - - - - - Predict post-translation modification sites in protein sequences. - beta12orEarlier - Methods might predict sites of methylation, N-terminal myristoylation, N-terminal acetylation, sumoylation, palmitoylation, phosphorylation, sulfation, glycosylation, glycosylphosphatidylinositol (GPI) modification sites (GPI lipid anchor signals) etc. - - - - - - - - - - Protein signal peptide detection - - - - - - - - - beta12orEarlier - Methods might use sequence motifs and features, amino acid composition, profiles, machine-learned classifiers, etc. - Detect or predict signal peptides and signal peptide cleavage sites in protein sequences. - - - - - - - - - - Protein binding site prediction (from sequence) - - - Binding site prediction (from sequence) - Predict catalytic residues, active sites or other ligand-binding sites in protein sequences. - Ligand-binding and active site prediction (from sequence) - Protein binding site detection - beta12orEarlier - - - - - - - - - - Protein-nucleic acid binding prediction - - beta12orEarlier - Predict RNA and DNA-binding binding sites in protein sequences. - - - - - - - - - - Protein folding site prediction - - - Predict protein sites that are key to protein folding, such as possible sites of nucleation or stabilization. - beta12orEarlier - - - - - - - - - - Protein cleavage site prediction - - - - - - - - beta12orEarlier - Detect or predict cleavage sites (enzymatic or chemical) in protein sequences. - - - - - - - - - - Epitope mapping (MHC Class I) - - 1.8 - true - beta12orEarlier - Predict epitopes that bind to MHC class I molecules. - - - - - - - - - - Epitope mapping (MHC Class II) - - Predict epitopes that bind to MHC class II molecules. - 1.8 - true - beta12orEarlier - - - - - - - - - - - Whole gene prediction - - beta12orEarlier - Detect, predict and identify whole gene structure in DNA sequences. This includes protein coding regions, exon-intron structure, regulatory regions etc. - - - - - - - - - - Gene component prediction - - Methods for gene prediction might be ab initio, based on phylogenetic comparisons, use motifs, sequence features, support vector machine, alignment etc. - beta12orEarlier - Detect, predict and identify genetic elements such as promoters, coding regions, splice sites, etc in DNA sequences. - - - - - - - - - - Transposon prediction - - beta12orEarlier - Detect or predict transposons, retrotransposons / retrotransposition signatures etc. - - - - - - - - - - PolyA signal detection - - Detect polyA signals in nucleotide sequences. - beta12orEarlier - - - - - - - - - - Quadruplex formation site detection - - - - - - - - - - - - - - beta12orEarlier - Quadruplex structure prediction - Detect quadruplex-forming motifs in nucleotide sequences. - Quadruplex (4-stranded) structures are formed by guanine-rich regions and are implicated in various important biological processes and as therapeutic targets. - - - - - - - - - - CpG island and isochore detection - - - - - - - - An isochore is long region (> 3 KB) of DNA with very uniform GC content, in contrast to the rest of the genome. Isochores tend tends to have more genes, higher local melting or denaturation temperatures, and different flexibility. Methods might calculate fractional GC content or variation of GC content, predict methylation status of CpG islands etc. This includes methods that visualise CpG rich regions in a nucleotide sequence, for example plot isochores in a genome sequence. - beta12orEarlier - Find CpG rich regions in a nucleotide sequence or isochores in genome sequences. - CpG island and isochores rendering - CpG island and isochores detection - - - - - - - - - - Restriction site recognition - - - - - - - - beta12orEarlier - Find and identify restriction enzyme cleavage sites (restriction sites) in (typically) DNA sequences, for example to generate a restriction map. - - - - - - - - - - Nucleosome formation or exclusion sequence prediction - - beta12orEarlier - Identify or predict nucleosome exclusion sequences (nucleosome free regions) in DNA. - - - - - - - - - - Splice site prediction - - - - - - - - beta12orEarlier - Identify, predict or analyse splice sites in nucleotide sequences. - Methods might require a pre-mRNA or genomic DNA sequence. - - - - - - - - - - Integrated gene prediction - - Predict whole gene structure using a combination of multiple methods to achieve better predictions. - beta12orEarlier - - - - - - - - - - Operon prediction - - Find operons (operators, promoters and genes) in bacteria genes. - beta12orEarlier - - - - - - - - - - Coding region prediction - - Predict protein-coding regions (CDS or exon) or open reading frames in nucleotide sequences. - ORF prediction - ORF finding - beta12orEarlier - - - - - - - - - - Selenocysteine insertion sequence (SECIS) prediction - - - - - - - - Predict selenocysteine insertion sequence (SECIS) in a DNA sequence. - SECIS elements are around 60 nucleotides in length with a stem-loop structure directs the cell to translate UGA codons as selenocysteines. - beta12orEarlier - - - - - - - - - - Regulatory element prediction - - - - - - - - Identify or predict transcription regulatory motifs, patterns, elements or regions in DNA sequences. - Translational regulatory element prediction - Transcription regulatory element prediction - This includes promoters, enhancers, silencers and boundary elements / insulators, regulatory protein or transcription factor binding sites etc. Methods might be specific to a particular genome and use motifs, word-based / grammatical methods, position-specific frequency matrices, discriminative pattern analysis etc. - beta12orEarlier - - - - - - - - - - Translation initiation site prediction - - - - - - - - Predict translation initiation sites, possibly by searching a database of sites. - beta12orEarlier - - - - - - - - - - Promoter prediction - - Identify or predict whole promoters or promoter elements (transcription start sites, RNA polymerase binding site, transcription factor binding sites, promoter enhancers etc) in DNA sequences. - Methods might recognize CG content, CpG islands, splice sites, polyA signals etc. - beta12orEarlier - - - - - - - - - - Transcription regulatory element prediction (DNA-cis) - - beta12orEarlier - Cis-regulatory elements (cis-elements) regulate the expression of genes located on the same strand. Cis-elements are found in the 5' promoter region of the gene, in an intron, or in the 3' untranslated region. Cis-elements are often binding sites of one or more trans-acting factors. - Identify, predict or analyse cis-regulatory elements (TATA box, Pribnow box, SOS box, CAAT box, CCAAT box, operator etc.) in DNA sequences. - - - - - - - - - - Transcription regulatory element prediction (RNA-cis) - - Cis-regulatory elements (cis-elements) regulate genes located on the same strand from which the element was transcribed. A riboswitch is a region of an mRNA molecule that bind a small target molecule that regulates the gene's activity. - Identify, predict or analyse cis-regulatory elements (for example riboswitches) in RNA sequences. - beta12orEarlier - - - - - - - - - - Transcription regulatory element prediction (trans) - - - - - - - - beta12orEarlier - Trans-regulatory elements regulate genes distant from the gene from which they were transcribed. - Identify or predict functional RNA sequences with a gene regulatory role (trans-regulatory elements) or targets. - Functional RNA identification - - - - - - - - - - Matrix/scaffold attachment site prediction - - MAR/SAR sites often flank a gene or gene cluster and are found nearby cis-regulatory sequences. They might contribute to transcription regulation. - Identify matrix/scaffold attachment regions (MARs/SARs) in DNA sequences. - beta12orEarlier - - - - - - - - - - Transcription factor binding site prediction - - beta12orEarlier - Identify or predict transcription factor binding sites in DNA sequences. - - - - - - - - - - Exonic splicing enhancer prediction - - - - - - - - An exonic splicing enhancer (ESE) is 6-base DNA sequence motif in an exon that enhances or directs splicing of pre-mRNA or hetero-nuclear RNA (hnRNA) into mRNA. - Identify or predict exonic splicing enhancers (ESE) in exons. - beta12orEarlier - - - - - - - - - - Sequence alignment validation - - - Evaluation might be purely sequence-based or use structural information. - Sequence alignment quality evaluation - Evaluate molecular sequence alignment accuracy. - beta12orEarlier - - - - - - - - - - Sequence alignment analysis (conservation) - - beta12orEarlier - Analyse character conservation in a molecular sequence alignment, for example to derive a consensus sequence. - Residue conservation analysis - Use this concept for methods that calculate substitution rates, estimate relative site variability, identify sites with biased properties, derive a consensus sequence, or identify highly conserved or very poorly conserved sites, regions, blocks etc. - - - - - - - - - - Sequence alignment analysis (site correlation) - - - Analyse correlations between sites in a molecular sequence alignment. - This is typically done to identify possible covarying positions and predict contacts or structural constraints in protein structures. - beta12orEarlier - - - - - - - - - - Chimeric sequence detection - - beta12orEarlier - A chimera includes regions from two or more phylogenetically distinct sequences. They are usually artifacts of PCR and are thought to occur when a prematurely terminated amplicon reanneals to another DNA strand and is subsequently copied to completion in later PCR cycles. - Detects chimeric sequences (chimeras) from a sequence alignment. - Sequence alignment analysis (chimeric sequence detection) - - - - - - - - - - Recombination detection - - Sequence alignment analysis (recombination detection) - beta12orEarlier - Detect recombination (hotspots and coldspots) and identify recombination breakpoints in a sequence alignment. - Tools might use a genetic algorithm, quartet-mapping, bootscanning, graphical methods, random forest model and so on. - - - - - - - - - - Indel detection - - beta12orEarlier - Sequence alignment analysis (indel detection) - Tools might use a genetic algorithm, quartet-mapping, bootscanning, graphical methods, random forest model and so on. - Identify insertion, deletion and duplication events from a sequence alignment. - - - - - - - - - - Nucleosome formation potential prediction - - true - beta12orEarlier - Predict nucleosome formation potential of DNA sequences. - beta12orEarlier - - - - - - - - - - Nucleic acid thermodynamic property calculation - - - - - - - - Calculate a thermodynamic property of DNA or DNA/RNA, such as melting temperature, enthalpy and entropy. - beta12orEarlier - - - - - - - - - - Nucleic acid melting profile plotting - - - - - - - - - Calculate and plot a DNA or DNA/RNA melting profile. - A melting profile is used to visualise and analyse partly melted DNA conformations. - beta12orEarlier - - - - - - - - - - Nucleic acid stitch profile plotting - - - - - - - - A stitch profile represents the alternative conformations that partly melted DNA can adopt in a temperature range. - beta12orEarlier - Calculate and plot a DNA or DNA/RNA stitch profile. - - - - - - - - - - Nucleic acid melting curve plotting - - - - - - - - Calculate and plot a DNA or DNA/RNA melting curve. - beta12orEarlier - - - - - - - - - - Nucleic acid probability profile plotting - - - - - - - - beta12orEarlier - Calculate and plot a DNA or DNA/RNA probability profile. - - - - - - - - - - Nucleic acid temperature profile plotting - - - - - - - - Calculate and plot a DNA or DNA/RNA temperature profile. - beta12orEarlier - - - - - - - - - - Nucleic acid curvature calculation - - - - - - - - Calculate curvature and flexibility / stiffness of a nucleotide sequence. - beta12orEarlier - This includes properties such as. - - - - - - - - - - microRNA detection - - Identify or predict microRNA sequences (miRNA) and precursors or microRNA targets / binding sites in a DNA sequence. - beta12orEarlier - - - - - - - - - - tRNA gene prediction - - - - - - - - Identify or predict tRNA genes in genomic sequences (tRNA). - beta12orEarlier - - - - - - - - - - siRNA binding specificity prediction - - - - - - - - beta12orEarlier - Assess binding specificity of putative siRNA sequence(s), for example for a functional assay, typically with respect to designing specific siRNA sequences. - - - - - - - - - - Protein secondary structure prediction (integrated) - - Predict secondary structure of protein sequence(s) using multiple methods to achieve better predictions. - beta12orEarlier - - - - - - - - - - Protein secondary structure prediction (helices) - - beta12orEarlier - Predict helical secondary structure of protein sequences. - - - - - - - - - - Protein secondary structure prediction (turns) - - Predict turn structure (for example beta hairpin turns) of protein sequences. - beta12orEarlier - - - - - - - - - - Protein secondary structure prediction (coils) - - beta12orEarlier - Predict open coils, non-regular secondary structure and intrinsically disordered / unstructured regions of protein sequences. - - - - - - - - - - Protein secondary structure prediction (disulfide bonds) - - beta12orEarlier - Predict cysteine bonding state and disulfide bond partners in protein sequences. - - - - - - - - - - GPCR prediction - - - beta12orEarlier - G protein-coupled receptor (GPCR) prediction - Predict G protein-coupled receptors (GPCR). - - - - - - - - - - GPCR analysis - - - - - - - - Analyse G-protein coupled receptor proteins (GPCRs). - beta12orEarlier - G protein-coupled receptor (GPCR) analysis - - - - - - - - - - Protein structure prediction - - - - - - - - - - - - - - - - - beta12orEarlier - Predict tertiary structure (backbone and side-chain conformation) of protein sequences. - - - - - - - - - - Nucleic acid structure prediction - - - - - - - - - - - - - - - - beta12orEarlier - Methods might identify thermodynamically stable or evolutionarily conserved structures. - Predict tertiary structure of DNA or RNA. - - - - - - - - - - Ab initio structure prediction - - Predict tertiary structure of protein sequence(s) without homologs of known structure. - de novo structure prediction - beta12orEarlier - - - - - - - - - - Protein modelling - - - - - - - - - - Comparative modelling - beta12orEarlier - Build a three-dimensional protein model based on known (for example homologs) structures. - The model might be of a whole, part or aspect of protein structure. Molecular modelling methods might use sequence-structure alignment, structural templates, molecular dynamics, energy minimization etc. - Homology modelling - Homology structure modelling - Protein structure comparative modelling - - - - - - - - - - Molecular docking - - - - - - - - - - - - - - - - - - - - - Model the structure of a protein in complex with a small molecule or another macromolecule. - beta12orEarlier - This includes protein-protein interactions, protein-nucleic acid, protein-ligand binding etc. Methods might predict whether the molecules are likely to bind in vivo, their conformation when bound, the strength of the interaction, possible mutations to achieve bonding and so on. - Docking simulation - Protein docking - - - - - - - - - - Protein modelling (backbone) - - Model protein backbone conformation. - Methods might require a preliminary C(alpha) trace. - beta12orEarlier - - - - - - - - - - Protein modelling (side chains) - - beta12orEarlier - Methods might use a residue rotamer library. - Model, analyse or edit amino acid side chain conformation in protein structure, optimize side-chain packing, hydrogen bonding etc. - - - - - - - - - - Protein modelling (loops) - - beta12orEarlier - Model loop conformation in protein structures. - - - - - - - - - - Protein-ligand docking - - - - - - - - - - - - - - beta12orEarlier - Methods aim to predict the position and orientation of a ligand bound to a protein receptor or enzyme. - Ligand-binding simulation - Model protein-ligand (for example protein-peptide) binding using comparative modelling or other techniques. - Virtual ligand screening - - - - - - - - - - Structured RNA prediction and optimisation - - - - - - - - - - - - - - Nucleic acid folding family identification - RNA inverse folding - beta12orEarlier - Predict or optimise RNA sequences (sequence pools) with likely secondary and tertiary structure for in vitro selection. - - - - - - - - - - SNP detection - - - - Find single nucleotide polymorphisms (SNPs) between sequences. - Single nucleotide polymorphism detection - beta12orEarlier - This includes functional SNPs for large-scale genotyping purposes, disease-associated non-synonymous SNPs etc. - - - - - - - - - - Radiation Hybrid Mapping - - - - - - - - Generate a physical (radiation hybrid) map of genetic markers in a DNA sequence using provided radiation hybrid (RH) scores for one or more markers. - beta12orEarlier - - - - - - - - - - Functional mapping - - beta12orEarlier - true - This can involve characterization of the underlying quantitative trait loci (QTLs) or nucleotides (QTNs). - Map the genetic architecture of dynamic complex traits. - beta12orEarlier - - - - - - - - - - Haplotype mapping - - - - - - - - - Haplotype map generation - Haplotype inference - Infer haplotypes, either alleles at multiple loci that are transmitted together on the same chromosome, or a set of single nucleotide polymorphisms (SNPs) on a single chromatid that are statistically associated. - beta12orEarlier - Haplotype inference can help in population genetic studies and the identification of complex disease genes, , and is typically based on aligned single nucleotide polymorphism (SNP) fragments. Haplotype comparison is a useful way to characterize the genetic variation between individuals. An individual's haplotype describes which nucleotide base occurs at each position for a set of common SNPs. Tools might use combinatorial functions (for example parsimony) or a likelihood function or model with optimization such as minimum error correction (MEC) model, expectation-maximization algorithm (EM), genetic algorithm or Markov chain Monte Carlo (MCMC). - Haplotype reconstruction - - - - - - - - - - Linkage disequilibrium calculation - - - - - - - - beta12orEarlier - Linkage disequilibrium is identified where a combination of alleles (or genetic markers) occurs more or less frequently in a population than expected by chance formation of haplotypes. - Calculate linkage disequilibrium; the non-random association of alleles or polymorphisms at two or more loci (not necessarily on the same chromosome). - - - - - - - - - - Genetic code prediction - - - - - - - - - beta12orEarlier - Predict genetic code from analysis of codon usage data. - - - - - - - - - - Dotplot plotting - - - - - - - - - - beta12orEarlier - Draw a dotplot of sequence similarities identified from word-matching or character comparison. - - - - - - - - - - Pairwise sequence alignment - - - - - - - - Pairwise sequence alignment generation - Pairwise sequence alignment - Methods might perform one-to-one, one-to-many or many-to-many comparisons. - Align exactly two molecular sequences. - Pairwise sequence alignment construction - beta12orEarlier - - - - - - - - - - Multiple sequence alignment - - Multiple sequence alignment construction - Align two or more molecular sequences. - This includes methods that use an existing alignment, for example to incorporate sequences into an alignment, or combine several multiple alignments into a single, improved alignment. - Multiple sequence alignment - beta12orEarlier - Multiple sequence alignment generation - - - - - - - - - - Pairwise sequence alignment generation (local) - - beta12orEarlier - Local pairwise sequence alignment construction - Locally align exactly two molecular sequences. - Pairwise sequence alignment (local) - true - Local alignment methods identify regions of local similarity. - 1.6 - Pairwise sequence alignment construction (local) - - - - - - - - - - - Pairwise sequence alignment generation (global) - - Pairwise sequence alignment construction (global) - Global pairwise sequence alignment construction - 1.6 - true - Globally align exactly two molecular sequences. - beta12orEarlier - Global alignment methods identify similarity across the entire length of the sequences. - Pairwise sequence alignment (global) - - - - - - - - - - - Local sequence alignment - - Multiple sequence alignment (local) - Local multiple sequence alignment construction - beta12orEarlier - Local alignment methods identify regions of local similarity. - Multiple sequence alignment construction (local) - Sequence alignment generation (local) - Sequence alignment (local) - Locally align two or more molecular sequences. - - - - - - - - - - Global sequence alignment - - Global multiple sequence alignment construction - Multiple sequence alignment (global) - beta12orEarlier - Sequence alignment (global) - Multiple sequence alignment construction (global) - Globally align two or more molecular sequences. - Sequence alignment generation (global) - Global alignment methods identify similarity across the entire length of the sequences. - - - - - - - - - - Constrained sequence alignment - - beta12orEarlier - Align two or more molecular sequences with user-defined constraints. - Multiple sequence alignment construction (constrained) - Sequence alignment generation (constrained) - Multiple sequence alignment (constrained) - Sequence alignment (constrained) - Constrained multiple sequence alignment construction - - - - - - - - - - Consensus-based sequence alignment - - Consensus multiple sequence alignment construction - Sequence alignment (consensus) - beta12orEarlier - Align two or more molecular sequences using multiple methods to achieve higher quality. - Sequence alignment generation (consensus) - Multiple sequence alignment construction (consensus) - Multiple sequence alignment (consensus) - - - - - - - - - - Tree-based sequence alignment - - - - - - - - Sequence alignment generation (phylogenetic tree-based) - This is supposed to give a more biologically meaningful alignment than standard alignments. - beta12orEarlier - Phylogenetic tree-based multiple sequence alignment construction - Align multiple sequences using relative gap costs calculated from neighbors in a supplied phylogenetic tree. - Sequence alignment (phylogenetic tree-based) - Multiple sequence alignment construction (phylogenetic tree-based) - Multiple sequence alignment (phylogenetic tree-based) - - - - - - - - - - Secondary structure alignment generation - - beta12orEarlier - 1.6 - Secondary structure alignment construction - Secondary structure alignment - true - Align molecular secondary structure (represented as a 1D string). - - - - - - - - - - Protein secondary structure alignment generation - - - - - - - - - Protein secondary structure alignment construction - Align protein secondary structures. - beta12orEarlier - Secondary structure alignment (protein) - Protein secondary structure alignment - - - - - - - - - - RNA secondary structure alignment - - - - - - - - - - - - - - - RNA secondary structure alignment generation - RNA secondary structure alignment - Align RNA secondary structures. - RNA secondary structure alignment construction - Secondary structure alignment (RNA) - beta12orEarlier - - - - - - - - - - Pairwise structure alignment - - beta12orEarlier - Pairwise structure alignment generation - Pairwise structure alignment construction - Align (superimpose) exactly two molecular tertiary structures. - - - - - - - - - - Multiple structure alignment construction - - Align (superimpose) two or more molecular tertiary structures. - This includes methods that use an existing alignment. - 1.6 - true - Multiple structure alignment - beta12orEarlier - - - - - - - - - - Structure alignment (protein) - - beta13 - true - beta12orEarlier - Align protein tertiary structures. - - - - - - - - - - Structure alignment (RNA) - - beta13 - true - Align RNA tertiary structures. - beta12orEarlier - - - - - - - - - - Pairwise structure alignment generation (local) - - Locally align (superimpose) exactly two molecular tertiary structures. - Pairwise structure alignment (local) - Local alignment methods identify regions of local similarity, common substructures etc. - Pairwise structure alignment construction (local) - 1.6 - true - Local pairwise structure alignment construction - beta12orEarlier - - - - - - - - - - - Pairwise structure alignment generation (global) - - Global pairwise structure alignment construction - Global alignment methods identify similarity across the entire structures. - true - beta12orEarlier - 1.6 - Pairwise structure alignment construction (global) - Globally align (superimpose) exactly two molecular tertiary structures. - Pairwise structure alignment (global) - - - - - - - - - - - Local structure alignment - - Local multiple structure alignment construction - Local alignment methods identify regions of local similarity, common substructures etc. - Structure alignment construction (local) - beta12orEarlier - Locally align (superimpose) two or more molecular tertiary structures. - Multiple structure alignment construction (local) - Multiple structure alignment (local) - Structure alignment generation (local) - - - - - - - - - - Global structure alignment - - Structure alignment construction (global) - Multiple structure alignment (global) - Structure alignment generation (global) - Multiple structure alignment construction (global) - beta12orEarlier - Global alignment methods identify similarity across the entire structures. - Global multiple structure alignment construction - Globally align (superimpose) two or more molecular tertiary structures. - - - - - - - - - - Profile-to-profile alignment (pairwise) - - Sequence alignment generation (pairwise profile) - Methods might perform one-to-one, one-to-many or many-to-many comparisons. - Pairwise sequence profile alignment construction - Sequence profile alignment construction (pairwise) - Sequence profile alignment (pairwise) - beta12orEarlier - Align exactly two molecular profiles. - Sequence profile alignment generation (pairwise) - - - - - - - - - - Sequence alignment generation (multiple profile) - - Align two or more molecular profiles. - 1.6 - true - Sequence profile alignment generation (multiple) - beta12orEarlier - Sequence profile alignment (multiple) - Sequence profile alignment construction (multiple) - Multiple sequence profile alignment construction - - - - - - - - - - 3D profile-to-3D profile alignment (pairwise) - - Methods might perform one-to-one, one-to-many or many-to-many comparisons. - Pairwise structural (3D) profile alignment construction - Structural (3D) profile alignment (pairwise) - Structural profile alignment construction (pairwise) - Align exactly two molecular Structural (3D) profiles. - beta12orEarlier - Structural profile alignment generation (pairwise) - - - - - - - - - - Structural profile alignment generation (multiple) - - true - Structural profile alignment construction (multiple) - Align two or more molecular 3D profiles. - Multiple structural (3D) profile alignment construction - beta12orEarlier - Structural (3D) profile alignment (multiple) - 1.6 - - - - - - - - - - Data retrieval (tool metadata) - - Data retrieval (tool annotation) - 1.6 - Search and retrieve names of or documentation on bioinformatics tools, for example by keyword or which perform a particular function. - beta12orEarlier - true - Tool information retrieval - - - - - - - - - - Data retrieval (database metadata) - - beta12orEarlier - true - Data retrieval (database annotation) - Search and retrieve names of or documentation on bioinformatics databases or query terms, for example by keyword. - Database information retrieval - 1.6 - - - - - - - - - - PCR primer design (for large scale sequencing) - - - - - - - - Predict primers for large scale sequencing. - beta12orEarlier - - - - - - - - - - PCR primer design (for genotyping polymorphisms) - - beta12orEarlier - Predict primers for genotyping polymorphisms, for example single nucleotide polymorphisms (SNPs). - - - - - - - - - - PCR primer design (for gene transcription profiling) - - - - - - - - Predict primers for gene transcription profiling. - beta12orEarlier - - - - - - - - - - PCR primer design (for conserved primers) - - Predict primers that are conserved across multiple genomes or species. - beta12orEarlier - - - - - - - - - - PCR primer design (based on gene structure) - - - - - - - - Predict primers based on gene structure, promoters, exon-exon junctions etc. - beta12orEarlier - - - - - - - - - - PCR primer design (for methylation PCRs) - - beta12orEarlier - Predict primers for methylation PCRs. - - - - - - - - - - Sequence assembly (mapping assembly) - - Sequence assembly by combining fragments using an existing backbone sequence, typically a reference genome. - beta12orEarlier - The final sequence will resemble the backbone sequence. Mapping assemblers are usually much faster and less memory intensive than de-novo assemblers. - - - - - - - - - - Sequence assembly (de-novo assembly) - - Sequence assembly by combining fragments without the aid of a reference sequence or genome. - De-novo assemblers are much slower and more memory intensive than mapping assemblers. - beta12orEarlier - - - - - - - - - - Sequence assembly (genome assembly) - - Sequence assembly capable on a very large scale such as assembly of whole genomes. - beta12orEarlier - - - - - - - - - - Sequence assembly (EST assembly) - - beta12orEarlier - Sequence assembly for EST sequences (transcribed mRNA). - Assemblers must handle (or be complicated by) alternative splicing, trans-splicing, single-nucleotide polymorphism (SNP), recoding, and post-transcriptional modification. - - - - - - - - - - Tag mapping - - - - - - - - - Tag mapping might assign experimentally obtained tags to known transcripts or annotate potential virtual tags in a genome. - Tag to gene assignment - Make gene to tag assignments (tag mapping) of SAGE, MPSS and SBS data, by annotating tags with ontology concepts. - beta12orEarlier - - - - - - - - - - SAGE data processing - - beta12orEarlier - Serial analysis of gene expression data processing - beta12orEarlier - Process (read and / or write) serial analysis of gene expression (SAGE) data. - true - - - - - - - - - - MPSS data processing - - beta12orEarlier - Process (read and / or write) massively parallel signature sequencing (MPSS) data. - true - Massively parallel signature sequencing data processing - beta12orEarlier - - - - - - - - - - SBS data processing - - beta12orEarlier - Sequencing by synthesis data processing - beta12orEarlier - Process (read and / or write) sequencing by synthesis (SBS) data. - true - - - - - - - - - - Heat map generation - - - - - - - - - beta12orEarlier - The heat map usually uses a coloring scheme to represent clusters. They can show how expression of mRNA by a set of genes was influenced by experimental conditions. - Heat map construction - Generate a heat map of gene expression from microarray data. - - - - - - - - - - Gene expression profile analysis - - true - Functional profiling - beta12orEarlier - Analyse one or more gene expression profiles, typically to interpret them in functional terms. - 1.6 - - - - - - - - - - Gene expression profile pathway mapping - - - - - - - - - - beta12orEarlier - Map a gene expression profile to known biological pathways, for example, to identify or reconstruct a pathway. - - - - - - - - - - Protein secondary structure assignment (from coordinate data) - - - beta12orEarlier - Assign secondary structure from protein coordinate data. - - - - - - - - - - Protein secondary structure assignment (from CD data) - - - - - - - - Assign secondary structure from circular dichroism (CD) spectroscopic data. - beta12orEarlier - - - - - - - - - - Protein structure assignment (from X-ray crystallographic data) - - true - 1.7 - Assign a protein tertiary structure (3D coordinates) from raw X-ray crystallography data. - beta12orEarlier - - - - - - - - - - Protein structure assignment (from NMR data) - - beta12orEarlier - Assign a protein tertiary structure (3D coordinates) from raw NMR spectroscopy data. - true - 1.7 - - - - - - - - - - Phylogenetic tree generation (data centric) - - Phylogenetic tree construction (data centric) - beta12orEarlier - Construct a phylogenetic tree from a specific type of data. - - - - - - - - - - Phylogenetic tree generation (method centric) - - Phylogenetic tree construction (method centric) - Construct a phylogenetic tree using a specific method. - beta12orEarlier - - - - - - - - - - Phylogenetic tree generation (from molecular sequences) - - - Phylogenetic tree construction from molecular sequences. - beta12orEarlier - Phylogenetic tree construction (from molecular sequences) - Methods typically compare multiple molecular sequence and estimate evolutionary distances and relationships to infer gene families or make functional predictions. - - - - - - - - - - Phylogenetic tree generation (from continuous quantitative characters) - - - - - - - - Phylogenetic tree construction (from continuous quantitative characters) - beta12orEarlier - Phylogenetic tree construction from continuous quantitative character data. - - - - - - - - - - Phylogenetic tree generation (from gene frequencies) - - - - - - - - - - - - - - Phylogenetic tree construction (from gene frequencies) - Phylogenetic tree construction from gene frequency data. - beta12orEarlier - - - - - - - - - - Phylogenetic tree construction (from polymorphism data) - - - - - - - - Phylogenetic tree construction from polymorphism data including microsatellites, RFLP (restriction fragment length polymorphisms), RAPD (random-amplified polymorphic DNA) and AFLP (amplified fragment length polymorphisms) data. - Phylogenetic tree generation (from polymorphism data) - beta12orEarlier - - - - - - - - - - Phylogenetic species tree construction - - Construct a phylogenetic species tree, for example, from a genome-wide sequence comparison. - Phylogenetic species tree generation - beta12orEarlier - - - - - - - - - - Phylogenetic tree generation (parsimony methods) - - Phylogenetic tree construction (parsimony methods) - Construct a phylogenetic tree by computing a sequence alignment and searching for the tree with the fewest number of character-state changes from the alignment. - This includes evolutionary parsimony (invariants) methods. - beta12orEarlier - - - - - - - - - - Phylogenetic tree generation (minimum distance methods) - - This includes neighbor joining (NJ) clustering method. - beta12orEarlier - Phylogenetic tree construction (minimum distance methods) - Construct a phylogenetic tree by computing (or using precomputed) distances between sequences and searching for the tree with minimal discrepancies between pairwise distances. - - - - - - - - - - Phylogenetic tree generation (maximum likelihood and Bayesian methods) - - Phylogenetic tree construction (maximum likelihood and Bayesian methods) - Construct a phylogenetic tree by relating sequence data to a hypothetical tree topology using a model of sequence evolution. - Maximum likelihood methods search for a tree that maximizes a likelihood function, i.e. that is most likely given the data and model. Bayesian analysis estimate the probability of tree for branch lengths and topology, typically using a Monte Carlo algorithm. - beta12orEarlier - - - - - - - - - - Phylogenetic tree generation (quartet methods) - - beta12orEarlier - Phylogenetic tree construction (quartet methods) - Construct a phylogenetic tree by computing four-taxon trees (4-trees) and searching for the phylogeny that matches most closely. - - - - - - - - - - Phylogenetic tree generation (AI methods) - - Construct a phylogenetic tree by using artificial-intelligence methods, for example genetic algorithms. - Phylogenetic tree construction (AI methods) - beta12orEarlier - - - - - - - - - - DNA substitution modelling - - - - - - - - - - - - - - - Sequence alignment analysis (phylogenetic modelling) - beta12orEarlier - Identify a plausible model of DNA substitution that explains a DNA sequence alignment. - - - - - - - - - - Phylogenetic tree analysis (shape) - - Phylogenetic tree topology analysis - Analyse the shape (topology) of a phylogenetic tree. - beta12orEarlier - - - - - - - - - - Phylogenetic tree bootstrapping - - - Apply bootstrapping or other measures to estimate confidence of a phylogenetic tree. - beta12orEarlier - - - - - - - - - - Phylogenetic tree analysis (gene family prediction) - - - - - - - - - - - - - - Predict families of genes and gene function based on their position in a phylogenetic tree. - beta12orEarlier - - - - - - - - - - Phylogenetic tree analysis (natural selection) - - beta12orEarlier - Stabilizing/purifying (directional) selection favors a single phenotype and tends to decrease genetic diversity as a population stabilizes on a particular trait, selecting out trait extremes or deleterious mutations. In contrast, balancing selection maintain genetic polymorphisms (or multiple alleles), whereas disruptive (or diversifying) selection favors individuals at both extremes of a trait. - Analyse a phylogenetic tree to identify allele frequency distribution and change that is subject to evolutionary pressures (natural selection, genetic drift, mutation and gene flow). Identify type of natural selection (such as stabilizing, balancing or disruptive). - - - - - - - - - - Phylogenetic tree generation (consensus) - - - Compare two or more phylogenetic trees to produce a consensus tree. - Methods typically test for topological similarity between trees using for example a congruence index. - beta12orEarlier - Phylogenetic tree construction (consensus) - - - - - - - - - - Phylogenetic sub/super tree detection - - beta12orEarlier - Compare two or more phylogenetic trees to detect subtrees or supertrees. - - - - - - - - - - Phylogenetic tree distances calculation - - - - - - - - beta12orEarlier - Compare two or more phylogenetic trees to calculate distances between trees. - - - - - - - - - - Phylogenetic tree annotation - - beta12orEarlier - http://www.evolutionaryontology.org/cdao.owl#CDAOAnnotation - Annotate a phylogenetic tree with terms from a controlled vocabulary. - - - - - - - - - - Immunogenicity prediction - - - - - - - - - - - - - - - - - - - - beta12orEarlier - Peptide immunogen prediction - Predict and optimise peptide ligands that elicit an immunological response. - - - - - - - - - - DNA vaccine design - - - - - - - - - - - - - - - beta12orEarlier - Predict or optimise DNA to elicit (via DNA vaccination) an immunological response. - - - - - - - - - - Sequence formatting - - - - - - - - - - - - - - beta12orEarlier - Reformat (a file or other report of) molecular sequence(s). - Sequence file format conversion - - - - - - - - - - Sequence alignment formatting - - - - - - - - - - - - - - Reformat (a file or other report of) molecular sequence alignment(s). - beta12orEarlier - - - - - - - - - - Codon usage table formatting - - - - - - - - - - - - - - - Reformat a codon usage table. - beta12orEarlier - - - - - - - - - - Sequence visualisation - - - - - - - - - - - - - - - beta12orEarlier - Visualise, format or render a molecular sequence, possibly with sequence features or properties shown. - Sequence rendering - - - - - - - - - - Sequence alignment visualisation - - - - - - - - - - - - - - - Sequence alignment rendering - Visualise, format or print a molecular sequence alignment. - beta12orEarlier - - - - - - - - - - Sequence cluster visualisation - - - - - - - - - - - - - - Sequence cluster rendering - beta12orEarlier - Visualise, format or render sequence clusters. - - - - - - - - - - Phylogenetic tree visualisation - - - - - - - - - Render or visualise a phylogenetic tree. - Phylogenetic tree rendering - beta12orEarlier - - - - - - - - - - RNA secondary structure visualisation - - - - - - - - - RNA secondary structure rendering - Visualise RNA secondary structure, knots, pseudoknots etc. - beta12orEarlier - - - - - - - - - - Protein secondary structure rendering - Protein secondary structure visualisation - - - - - - - - Render and visualise protein secondary structure. - beta12orEarlier - - - - - - - - - - Structure visualisation - - - - - - - - - - - - - - - Structure rendering - Visualise or render a molecular tertiary structure, for example a high-quality static picture or animation. - beta12orEarlier - - - - - - - - - - Microarray data rendering - - - - - - - - - - Visualise microarray data. - beta12orEarlier - - - - - - - - - - Protein interaction network rendering - Protein interaction network visualisation - - - - - - - - - beta12orEarlier - Identify and analyse networks of protein interactions. - - - - - - - - - - Map drawing - - - - - - - - beta12orEarlier - DNA map drawing - Map rendering - Draw or visualise a DNA map. - - - - - - - - - - Sequence motif rendering - - Render a sequence with motifs. - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - Restriction map drawing - - - - - - - - - Draw or visualise restriction maps in DNA sequences. - beta12orEarlier - - - - - - - - - - DNA linear map rendering - - beta12orEarlier - beta12orEarlier - true - Draw a linear maps of DNA. - - - - - - - - - - Plasmid map drawing - - beta12orEarlier - DNA circular map rendering - Draw a circular maps of DNA, for example a plasmid map. - - - - - - - - - - Operon drawing - - - - - - - - Visualise operon structure etc. - beta12orEarlier - Operon rendering - - - - - - - - - - Nucleic acid folding family identification - - true - beta12orEarlier - Identify folding families of related RNAs. - beta12orEarlier - - - - - - - - - - Nucleic acid folding energy calculation - - beta12orEarlier - Compute energies of nucleic acid folding, e.g. minimum folding energies for DNA or RNA sequences or energy landscape of RNA mutants. - - - - - - - - - - Annotation retrieval - - beta12orEarlier - Use this concepts for tools which retrieve pre-existing annotations, not for example prediction methods that might make annotations. - Retrieve existing annotation (or documentation), typically annotation on a database entity. - beta12orEarlier - true - - - - - - - - - - Protein function prediction - - - - - - - - - beta12orEarlier - Predict general functional properties of a protein. - For functional properties that can be mapped to a sequence, use 'Sequence feature detection (protein)' instead. - - - - - - - - - - Protein function comparison - - - - - - - - - Compare the functional properties of two or more proteins. - beta12orEarlier - - - - - - - - - - Sequence submission - - Submit a molecular sequence to a database. - beta12orEarlier - 1.6 - true - - - - - - - - - - Gene regulatory network analysis - - - - - - - - beta12orEarlier - Analyse a known network of gene regulation. - - - - - - - - - - - Loading - - - - - - - - Data loading - WHATIF:UploadPDB - Prepare or load a user-specified data file so that it is available for use. - beta12orEarlier - - - - - - - - - - Sequence retrieval - - This includes direct retrieval methods (e.g. the dbfetch program) but not those that perform calculations on the sequence. - Data retrieval (sequences) - 1.6 - Query a sequence data resource (typically a database) and retrieve sequences and / or annotation. - beta12orEarlier - true - - - - - - - - - - Structure retrieval - - true - WHATIF:EchoPDB - beta12orEarlier - WHATIF:DownloadPDB - This includes direct retrieval methods but not those that perform calculations on the sequence or structure. - Query a tertiary structure data resource (typically a database) and retrieve structures, structure-related data and annotation. - 1.6 - - - - - - - - - - Surface rendering - - - beta12orEarlier - WHATIF:GetSurfaceDots - Calculate the positions of dots that are homogeneously distributed over the surface of a molecule. - A dot has three coordinates (x,y,z) and (typically) a color. - - - - - - - - - - Protein atom surface calculation (accessible) - - beta12orEarlier - WHATIF:AtomAccessibilitySolventPlus - WHATIF:AtomAccessibilitySolvent - Calculate the solvent accessibility ('accessible surface') for each atom in a structure. - Waters are not considered. - - - - - - - - - - Protein atom surface calculation (accessible molecular) - - beta12orEarlier - Calculate the solvent accessibility ('accessible molecular surface') for each atom in a structure. - Waters are not considered. - WHATIF:AtomAccessibilityMolecular - WHATIF:AtomAccessibilityMolecularPlus - - - - - - - - - - Protein residue surface calculation (accessible) - - WHATIF:ResidueAccessibilitySolvent - beta12orEarlier - Solvent accessibility might be calculated for the backbone, sidechain and total (backbone plus sidechain). - Calculate the solvent accessibility ('accessible surface') for each residue in a structure. - - - - - - - - - - Protein residue surface calculation (vacuum accessible) - - Solvent accessibility might be calculated for the backbone, sidechain and total (backbone plus sidechain). - Calculate the solvent accessibility ('vacuum accessible surface') for each residue in a structure. This is the accessibility of the residue when taken out of the protein together with the backbone atoms of any residue it is covalently bound to. - WHATIF:ResidueAccessibilityVacuum - beta12orEarlier - - - - - - - - - - Protein residue surface calculation (accessible molecular) - - Calculate the solvent accessibility ('accessible molecular surface') for each residue in a structure. - WHATIF:ResidueAccessibilityMolecular - Solvent accessibility might be calculated for the backbone, sidechain and total (backbone plus sidechain). - beta12orEarlier - - - - - - - - - - Protein residue surface calculation (vacuum molecular) - - Solvent accessibility might be calculated for the backbone, sidechain and total (backbone plus sidechain). - beta12orEarlier - Calculate the solvent accessibility ('vacuum molecular surface') for each residue in a structure. This is the accessibility of the residue when taken out of the protein together with the backbone atoms of any residue it is covalently bound to. - WHATIF:ResidueAccessibilityVacuumMolecular - - - - - - - - - - Protein surface calculation (accessible molecular) - - WHATIF:TotAccessibilityMolecular - beta12orEarlier - Calculate the solvent accessibility ('accessible molecular surface') for a structure as a whole. - - - - - - - - - - Protein surface calculation (accessible) - - WHATIF:TotAccessibilitySolvent - Calculate the solvent accessibility ('accessible surface') for a structure as a whole. - beta12orEarlier - - - - - - - - - - Backbone torsion angle calculation - - beta12orEarlier - WHATIF:ResidueTorsionsBB - Calculate for each residue in a protein structure all its backbone torsion angles. - - - - - - - - - - Full torsion angle calculation - - beta12orEarlier - Calculate for each residue in a protein structure all its torsion angles. - WHATIF:ResidueTorsions - - - - - - - - - - Cysteine torsion angle calculation - - beta12orEarlier - Calculate for each cysteine (bridge) all its torsion angles. - WHATIF:CysteineTorsions - - - - - - - - - - Tau angle calculation - - WHATIF:ShowTauAngle - beta12orEarlier - Tau is the backbone angle N-Calpha-C (angle over the C-alpha). - For each amino acid in a protein structure calculate the backbone angle tau. - - - - - - - - - - Cysteine bridge detection - - WHATIF:ShowCysteineBridge - Detect cysteine bridges (from coordinate data) in a protein structure. - beta12orEarlier - - - - - - - - - - Free cysteine detection - - beta12orEarlier - A free cysteine is neither involved in a cysteine bridge, nor functions as a ligand to a metal. - Detect free cysteines in a protein structure. - WHATIF:ShowCysteineFree - - - - - - - - - - Metal-bound cysteine detection - - beta12orEarlier - WHATIF:ShowCysteineMetal - Detect cysteines that are bound to metal in a protein structure. - - - - - - - - - - Residue contact calculation (residue-nucleic acid) - - - - beta12orEarlier - WHATIF:ShowProteiNucleicContacts - Calculate protein residue contacts with nucleic acids in a structure. - WHATIF:HasNucleicContacts - - - - - - - - - - Residue contact calculation (residue-metal) - - - WHATIF:HasMetalContacts - beta12orEarlier - Calculate protein residue contacts with metal in a structure. - WHATIF:HasMetalContactsPlus - - - - - - - - - - Residue contact calculation (residue-negative ion) - - Calculate ion contacts in a structure (all ions for all side chain atoms). - WHATIF:HasNegativeIonContactsPlus - beta12orEarlier - WHATIF:HasNegativeIonContacts - - - - - - - - - - Residue bump detection - - WHATIF:ShowBumps - beta12orEarlier - Detect 'bumps' between residues in a structure, i.e. those with pairs of atoms whose Van der Waals' radii interpenetrate more than a defined distance. - - - - - - - - - - Residue symmetry contact calculation - - Calculate the number of symmetry contacts made by residues in a protein structure. - WHATIF:SymmetryContact - A symmetry contact is a contact between two atoms in different asymmetric unit. - beta12orEarlier - - - - - - - - - - Residue contact calculation (residue-ligand) - - - beta12orEarlier - Calculate contacts between residues and ligands in a protein structure. - WHATIF:ShowDrugContactsShort - WHATIF:ShowLigandContacts - WHATIF:ShowDrugContacts - - - - - - - - - - Salt bridge calculation - - Salt bridges are interactions between oppositely charged atoms in different residues. The output might include the inter-atomic distance. - WHATIF:HasSaltBridgePlus - WHATIF:ShowSaltBridges - beta12orEarlier - WHATIF:HasSaltBridge - WHATIF:ShowSaltBridgesH - Calculate (and possibly score) salt bridges in a protein structure. - - - - - - - - - - Rotamer likelihood prediction - - WHATIF:ShowLikelyRotamers - WHATIF:ShowLikelyRotamers500 - Predict rotamer likelihoods for all 20 amino acid types at each position in a protein structure. - WHATIF:ShowLikelyRotamers800 - WHATIF:ShowLikelyRotamers600 - WHATIF:ShowLikelyRotamers900 - Output typically includes, for each residue position, the likelihoods for the 20 amino acid types with estimated reliability of the 20 likelihoods. - WHATIF:ShowLikelyRotamers700 - WHATIF:ShowLikelyRotamers400 - WHATIF:ShowLikelyRotamers300 - WHATIF:ShowLikelyRotamers200 - WHATIF:ShowLikelyRotamers100 - beta12orEarlier - - - - - - - - - - Proline mutation value calculation - - Calculate for each position in a protein structure the chance that a proline, when introduced at this position, would increase the stability of the whole protein. - WHATIF:ProlineMutationValue - beta12orEarlier - - - - - - - - - - Residue packing validation - - beta12orEarlier - Identify poorly packed residues in protein structures. - WHATIF: PackingQuality - - - - - - - - - - Dihedral angle validation - - WHATIF: ImproperQualitySum - Identify for each residue in a protein structure any improper dihedral (phi/psi) angles. - beta12orEarlier - WHATIF: ImproperQualityMax - - - - - - - - - - PDB file sequence retrieval - - Extract a molecular sequence from a PDB file. - beta12orEarlier - WHATIF: PDB_sequence - true - beta12orEarlier - - - - - - - - - - HET group detection - - Identify HET groups in PDB files. - WHATIF: HETGroupNames - beta12orEarlier - A HET group usually corresponds to ligands, lipids, but might also (not consistently) include groups that are attached to amino acids. Each HET group is supposed to have a unique three letter code and a unique name which might be given in the output. - - - - - - - - - - DSSP secondary structure assignment - - Determine for residue the DSSP determined secondary structure in three-state (HSC). - beta12orEarlier - WHATIF: ResidueDSSP - beta12orEarlier - true - - - - - - - - - - Structure formatting - - Reformat (a file or other report of) tertiary structure data. - beta12orEarlier - WHATIF: PDBasXML - - - - - - - - - - Protein cysteine and disulfide bond assignment - - - - - - - - Assign cysteine bonding state and disulfide bond partners in protein structures. - beta12orEarlier - - - - - - - - - - Residue validation - - Identify poor quality amino acid positions in protein structures. - beta12orEarlier - WHATIF: UseResidueDB - The scoring function to identify poor quality residues may consider residues with bad atoms or atoms with high B-factor, residues in the N- or C-terminal position, adjacent to an unstructured residue, non-canonical residues, glycine and proline (or adjacent to these such residues). - - - - - - - - - - Structure retrieval (water) - - beta12orEarlier - 1.6 - WHATIF:MovedWaterPDB - true - Query a tertiary structure database and retrieve water molecules. - - - - - - - - - - siRNA duplex prediction - - - - - - - - beta12orEarlier - Identify or predict siRNA duplexes in RNA. - - - - - - - - - - Sequence alignment refinement - - - Refine an existing sequence alignment. - beta12orEarlier - - - - - - - - - - Listfile processing - - 1.6 - Process an EMBOSS listfile (list of EMBOSS Uniform Sequence Addresses). - true - beta12orEarlier - - - - - - - - - - Sequence file editing - - - beta12orEarlier - Perform basic (non-analytical) operations on a report or file of sequences (which might include features), such as file concatenation, removal or ordering of sequences, creation of subset or a new file of sequences. - - - - - - - - - - Sequence alignment file processing - - beta12orEarlier - Perform basic (non-analytical) operations on a sequence alignment file, such as copying or removal and ordering of sequences. - 1.6 - true - - - - - - - - - - Small molecule data processing - - beta13 - true - beta12orEarlier - Process (read and / or write) physicochemical property data for small molecules. - - - - - - - - - - Data retrieval (ontology annotation) - - beta13 - Ontology information retrieval - true - Search and retrieve documentation on a bioinformatics ontology. - beta12orEarlier - - - - - - - - - - Data retrieval (ontology concept) - - Query an ontology and retrieve concepts or relations. - true - beta13 - beta12orEarlier - Ontology retrieval - - - - - - - - - - Representative sequence identification - - - - - - - - Identify a representative sequence from a set of sequences, typically using scores from pair-wise alignment or other comparison of the sequences. - beta12orEarlier - - - - - - - - - - Structure file processing - - Perform basic (non-analytical) operations on a file of molecular tertiary structural data. - 1.6 - beta12orEarlier - true - - - - - - - - - - Data retrieval (sequence profile) - - Query a profile data resource and retrieve one or more profile(s) and / or associated annotation. - true - This includes direct retrieval methods that retrieve a profile by, e.g. the profile name. - beta13 - beta12orEarlier - - - - - - - - - - Statistical calculation - - Statistical analysis - Perform a statistical data operation of some type, e.g. calibration or validation. - beta12orEarlier - true - - - - - - - - - - 3D-1D scoring matrix generation - - - - - - - - - - - - - - - - beta12orEarlier - 3D-1D scoring matrix construction - A 3D-1D scoring matrix scores the probability of amino acids occurring in different structural environments. - Calculate a 3D-1D scoring matrix from analysis of protein sequence and structural data. - - - - - - - - - - Transmembrane protein visualisation - - - - - - - - - Visualise transmembrane proteins, typically the transmembrane regions within a sequence. - beta12orEarlier - Transmembrane protein rendering - - - - - - - - - - Demonstration - - beta12orEarlier - true - An operation performing purely illustrative (pedagogical) purposes. - beta13 - - - - - - - - - Data retrieval (pathway or network) - - beta12orEarlier - true - Query a biological pathways database and retrieve annotation on one or more pathways. - beta13 - - - - - - - - - - Data retrieval (identifier) - - beta12orEarlier - Query a database and retrieve one or more data identifiers. - beta13 - true - - - - - - - - - - Nucleic acid density plotting - - - beta12orEarlier - Calculate a density plot (of base composition) for a nucleotide sequence. - - - - - - - - - - Sequence analysis - - - - - - - - Analyse one or more known molecular sequences. - beta12orEarlier - Sequence analysis (general) - - - - - - - - - - Sequence motif processing - - true - 1.6 - Process (read and / or write) molecular sequence motifs. - beta12orEarlier - - - - - - - - - - Protein interaction data processing - - 1.6 - Process (read and / or write) protein interaction data. - true - beta12orEarlier - - - - - - - - - - Protein structure analysis - - - - - - - - - - - - - - - Structure analysis (protein) - beta12orEarlier - Analyse protein tertiary structural data. - - - - - - - - - - Annotation processing - - true - beta12orEarlier - beta12orEarlier - Process (read and / or write) annotation of some type, typically annotation on an entry from a biological or biomedical database entity. - - - - - - - - - - Sequence feature analysis - - beta12orEarlier - true - Analyse features in molecular sequences. - beta12orEarlier - - - - - - - - - - Utility operation - - - - - - - - Basic (non-analytical) operations of some data, either a file or equivalent entity in memory. - File processing - beta12orEarlier - Report handling - File handling - Data file processing - - - - - - - - - - Gene expression analysis - - Analyse gene expression and regulation data. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Structural profile processing - - beta12orEarlier - 1.6 - Process (read and / or write) one or more structural (3D) profile(s) or template(s) of some type. - 3D profile processing - true - - - - - - - - - - Data index processing - - Database index processing - true - Process (read and / or write) an index of (typically a file of) biological data. - 1.6 - beta12orEarlier - - - - - - - - - - Sequence profile processing - - true - beta12orEarlier - Process (read and / or write) some type of sequence profile. - 1.6 - - - - - - - - - - Protein function analysis - - - - - - - - This is a broad concept and is used a placeholder for other, more specific concepts. - beta12orEarlier - Analyse protein function, typically by processing protein sequence and/or structural data, and generate an informative report. - - - - - - - - - - Protein folding analysis - - - - - - - - - - - - - - - This is a broad concept and is used a placeholder for other, more specific concepts. - Analyse protein folding, typically by processing sequence and / or structural data, and write an informative report. - Protein folding modelling - beta12orEarlier - - - - - - - - - - Protein secondary structure analysis - - - - - - - - - - - - - - Analyse known protein secondary structure data. - beta12orEarlier - Secondary structure analysis (protein) - - - - - - - - - - Physicochemical property data processing - - beta13 - true - Process (read and / or write) data on the physicochemical property of a molecule. - beta12orEarlier - - - - - - - - - - Primer and probe design - - - - - - - - - Primer and probe prediction - beta12orEarlier - Predict oligonucleotide primers or probes. - - - - - - - - - - Operation (typed) - - Computation - Calculation - Processing - Process (read and / or write) data of a specific type, for example applying analytical methods. - beta12orEarlier - - - - - - - - - - Database search - - - - - - - - beta12orEarlier - Typically the query is compared to each entry and high scoring matches (hits) are returned. For example, a BLAST search of a sequence database. - Search a database (or other data resource) with a supplied query and retrieve entries (or parts of entries) that are similar to the query. - - - - - - - - - - Data retrieval - - - - - - - - Information retrieval - beta12orEarlier - Retrieve an entry (or part of an entry) from a data resource that matches a supplied query. This might include some primary data and annotation. The query is a data identifier or other indexed term. For example, retrieve a sequence record with the specified accession number, or matching supplied keywords. - - - - - - - - - - Prediction and recognition - - beta12orEarlier - Recognition - Prediction - Predict, recognise, detect or identify some properties of a biomolecule. - Detection - - - - - - - - - - Comparison - - beta12orEarlier - Compare two or more things to identify similarities. - - - - - - - - - - Optimisation and refinement - - beta12orEarlier - Refine or optimise some data model. - - - - - - - - - - Modelling and simulation - - - - - - - - beta12orEarlier - Model or simulate some biological entity or system. - - - - - - - - - - Data handling - - true - beta12orEarlier - Perform basic operations on some data or a database. - beta12orEarlier - - - - - - - - - - Validation - - beta12orEarlier - Validation and standardisation - Validate some data. - - - - - - - - - - Mapping - - This is a broad concept and is used a placeholder for other, more specific concepts. - Map properties to positions on an biological entity (typically a molecular sequence or structure), or assemble such an entity from constituent parts. - beta12orEarlier - - - - - - - - - - Design - - beta12orEarlier - Design a biological entity (typically a molecular sequence or structure) with specific properties. - true - - - - - - - - - - Microarray data processing - - beta12orEarlier - Process (read and / or write) microarray data. - beta12orEarlier - true - - - - - - - - - - Codon usage table processing - - Process (read and / or write) a codon usage table. - beta12orEarlier - - - - - - - - - - Data retrieval (codon usage table) - - Retrieve a codon usage table and / or associated annotation. - beta12orEarlier - true - beta13 - - - - - - - - - - Gene expression profile processing - - 1.6 - Process (read and / or write) a gene expression profile. - true - beta12orEarlier - - - - - - - - - - Functional enrichment - - - - - - - - - beta12orEarlier - Gene expression profile annotation - The Gene Ontology (GO) is invariably used, the input is a set of Gene IDs and the output of the analysis is typically a ranked list of GO terms, each associated with a p-value. - Analyse a set of genes (genes corresponding to an expression profile, or any other set) with respect to concepts from an ontology of gene functions. - GO term enrichment - - - - - - - - - - Gene regulatory network prediction - - - - - - - - - - - - - - - Predict a network of gene regulation. - beta12orEarlier - - - - - - - - - - Pathway or network processing - - - - - - - - Generate, analyse or handle a biological pathway or network. - beta12orEarlier - - - - - - - - - - RNA secondary structure analysis - - - - - - - - beta12orEarlier - Process (read and / or write) RNA secondary structure data. - - - - - - - - - - Structure processing (RNA) - - Process (read and / or write) RNA tertiary structure data. - beta12orEarlier - beta13 - true - - - - - - - - - - RNA structure prediction - - - - - - - - beta12orEarlier - Predict RNA tertiary structure. - - - - - - - - - - DNA structure prediction - - - - - - - - Predict DNA tertiary structure. - beta12orEarlier - - - - - - - - - - Phylogenetic tree processing - - - - - - - - beta12orEarlier - Process (read and / or write) a phylogenetic tree. - - - - - - - - - - Protein secondary structure processing - - Process (read and / or write) protein secondary structure data. - 1.6 - true - beta12orEarlier - - - - - - - - - - Protein interaction network processing - - true - beta12orEarlier - Process (read and / or write) a network of protein interactions. - 1.6 - - - - - - - - - - Sequence processing - - Sequence processing (general) - Process (read and / or write) one or more molecular sequences and associated annotation. - true - beta12orEarlier - 1.6 - - - - - - - - - - Sequence processing (protein) - - Process (read and / or write) a protein sequence and associated annotation. - beta12orEarlier - true - 1.6 - - - - - - - - - - Sequence processing (nucleic acid) - - 1.6 - true - beta12orEarlier - Process (read and / or write) a nucleotide sequence and associated annotation. - - - - - - - - - - Sequence comparison - - - - - - - - - - - - - - - - - - - - - Compare two or more molecular sequences. - beta12orEarlier - - - - - - - - - - Sequence cluster processing - - Process (read and / or write) a sequence cluster. - true - beta12orEarlier - 1.6 - - - - - - - - - - Feature table processing - - Process (read and / or write) a sequence feature table. - 1.6 - true - beta12orEarlier - - - - - - - - - - Gene prediction - - - - - - - - - - - - - - Gene and gene component prediction - beta12orEarlier - Detect, predict and identify genes or components of genes in DNA sequences. - Gene finding - - - - - - - - - - GPCR classification - - - - - - - - - beta12orEarlier - G protein-coupled receptor (GPCR) classification - Classify G-protein coupled receptors (GPCRs) into families and subfamilies. - - - - - - - - - - GPCR coupling selectivity prediction - - - - - - - - - - Predict G-protein coupled receptor (GPCR) coupling selectivity. - beta12orEarlier - - - - - - - - - - Structure processing (protein) - - true - 1.6 - beta12orEarlier - Process (read and / or write) a protein tertiary structure. - - - - - - - - - - Protein atom surface calculation - - Waters are not considered. - Calculate the solvent accessibility for each atom in a structure. - beta12orEarlier - - - - - - - - - - Protein residue surface calculation - - beta12orEarlier - Calculate the solvent accessibility for each residue in a structure. - - - - - - - - - - Protein surface calculation - - beta12orEarlier - Calculate the solvent accessibility of a structure as a whole. - - - - - - - - - - Sequence alignment processing - - beta12orEarlier - true - Process (read and / or write) a molecular sequence alignment. - 1.6 - - - - - - - - - - Protein-protein interaction prediction - - - - - - - - - - - - - - Identify or predict protein-protein interactions, interfaces, binding sites etc. - beta12orEarlier - - - - - - - - - - Structure processing - - true - 1.6 - Process (read and / or write) a molecular tertiary structure. - beta12orEarlier - - - - - - - - - - Map annotation - - Annotate a DNA map of some type with terms from a controlled vocabulary. - true - beta12orEarlier - 1.6 - - - - - - - - - - Data retrieval (protein annotation) - - Retrieve information on a protein. - beta13 - true - Protein information retrieval - beta12orEarlier - - - - - - - - - - Data retrieval (phylogenetic tree) - - beta12orEarlier - beta13 - Retrieve a phylogenetic tree from a data resource. - true - - - - - - - - - - Data retrieval (protein interaction annotation) - - Retrieve information on a protein interaction. - true - beta13 - beta12orEarlier - - - - - - - - - - Data retrieval (protein family annotation) - - beta12orEarlier - Protein family information retrieval - beta13 - Retrieve information on a protein family. - true - - - - - - - - - - Data retrieval (RNA family annotation) - - true - Retrieve information on an RNA family. - RNA family information retrieval - beta12orEarlier - beta13 - - - - - - - - - - Data retrieval (gene annotation) - - beta12orEarlier - Gene information retrieval - Retrieve information on a specific gene. - true - beta13 - - - - - - - - - - Data retrieval (genotype and phenotype annotation) - - Retrieve information on a specific genotype or phenotype. - Genotype and phenotype information retrieval - beta12orEarlier - beta13 - true - - - - - - - - - - Protein architecture comparison - - - Compare the architecture of two or more protein structures. - beta12orEarlier - - - - - - - - - - Protein architecture recognition - - - - beta12orEarlier - Includes methods that try to suggest the most likely biological unit for a given protein X-ray crystal structure based on crystal symmetry and scoring of putative protein-protein interfaces. - Identify the architecture of a protein structure. - - - - - - - - - - Molecular dynamics simulation - - - - - - - - - - - - - - - - - - - - - - Simulate molecular (typically protein) conformation using a computational model of physical forces and computer simulation. - beta12orEarlier - - - - - - - - - - Nucleic acid sequence analysis - - - - - - - - - - - - - - - Analyse a nucleic acid sequence (using methods that are only applicable to nucleic acid sequences). - beta12orEarlier - Sequence analysis (nucleic acid) - - - - - - - - - - Protein sequence analysis - - - - - - - - - Analyse a protein sequence (using methods that are only applicable to protein sequences). - Sequence analysis (protein) - beta12orEarlier - - - - - - - - - - Structure analysis - - - - - - - - beta12orEarlier - Analyse known molecular tertiary structures. - - - - - - - - - - Nucleic acid structure analysis - - - - - - - - - - - - - - - Analyse nucleic acid tertiary structural data. - beta12orEarlier - - - - - - - - - - Secondary structure processing - - 1.6 - Process (read and / or write) a molecular secondary structure. - true - beta12orEarlier - - - - - - - - - - Structure comparison - - - - - - - - - beta12orEarlier - Compare two or more molecular tertiary structures. - - - - - - - - - - Helical wheel drawing - - - - - - - - Helical wheel rendering - beta12orEarlier - Render a helical wheel representation of protein secondary structure. - - - - - - - - - - Topology diagram drawing - - - - - - - - Topology diagram rendering - beta12orEarlier - Render a topology diagram of protein secondary structure. - - - - - - - - - - Protein structure comparison - - - - - - - - - - beta12orEarlier - Structure comparison (protein) - Methods might identify structural neighbors, find structural similarities or define a structural core. - Compare protein tertiary structures. - - - - - - - - - - Protein secondary structure comparison - - - - Compare protein secondary structures. - beta12orEarlier - Secondary structure comparison (protein) - Protein secondary structure - - - - - - - - - - Protein subcellular localization prediction - - - - - - - - - The prediction might include subcellular localization (nuclear, cytoplasmic, mitochondrial, chloroplast, plastid, membrane etc) or export (extracellular proteins) of a protein. - Predict the subcellular localization of a protein sequence. - Protein targeting prediction - beta12orEarlier - - - - - - - - - - Residue contact calculation (residue-residue) - - beta12orEarlier - Calculate contacts between residues in a protein structure. - - - - - - - - - - Hydrogen bond calculation (inter-residue) - - - Identify potential hydrogen bonds between amino acid residues. - beta12orEarlier - - - - - - - - - - Protein interaction prediction - - - - - - - - - - - - - - - Predict the interactions of proteins with other molecules. - beta12orEarlier - - - - - - - - - - Codon usage data processing - - beta12orEarlier - beta13 - Process (read and / or write) codon usage data. - true - - - - - - - - - - Gene expression data analysis - - - - - - - - beta12orEarlier - Gene expression profile analysis - Gene expression (microarray) data processing - Microarray data processing - Gene expression data processing - Process (read and / or write) gene expression (typically microarray) data, including analysis of one or more gene expression profiles, typically to interpret them in functional terms. - - - - - - - - - - Gene regulatory network processing - - 1.6 - beta12orEarlier - Process (read and / or write) a network of gene regulation. - true - - - - - - - - - Pathway or network analysis - - - - - - - - Analyse a known biological pathway or network. - Pathway analysis - Network analysis - beta12orEarlier - - - - - - - - - - Sequencing-based expression profile data analysis - - Analyse SAGE, MPSS or SBS experimental data, typically to identify or quantify mRNA transcripts. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - Splicing model analysis - - - - - - - - - - Analyse, characterize and model alternative splicing events from comparing multiple nucleic acid sequences. - Splicing analysis - beta12orEarlier - - - - - - - - - - Microarray raw data analysis - - beta12orEarlier - beta12orEarlier - true - Analyse raw microarray data. - - - - - - - - - - Nucleic acid analysis - - - - - - - - Process (read and / or write) nucleic acid sequence or structural data. - Nucleic acid data processing - beta12orEarlier - - - - - - - - - - Protein analysis - - - - - - - - beta12orEarlier - Protein data processing - Process (read and / or write) protein sequence or structural data. - - - - - - - - - - Sequence data processing - - beta12orEarlier - Process (read and / or write) molecular sequence data. - beta13 - true - - - - - - - - - Structural data processing - - Process (read and / or write) molecular structural data. - beta13 - true - beta12orEarlier - - - - - - - - - - Text processing - - true - beta12orEarlier - Process (read and / or write) text. - 1.6 - - - - - - - - - - Protein sequence alignment analysis - - - - - - - - - - Analyse a protein sequence alignment, typically to detect features or make predictions. - beta12orEarlier - Sequence alignment analysis (protein) - - - - - - - - - - Nucleic acid sequence alignment analysis - - - - - - - - - - beta12orEarlier - Sequence alignment analysis (nucleic acid) - Analyse a protein sequence alignment, typically to detect features or make predictions. - - - - - - - - - - Nucleic acid sequence comparison - - - - Sequence comparison (nucleic acid) - Compare two or more nucleic acid sequences. - beta12orEarlier - - - - - - - - - - Protein sequence comparison - - - - beta12orEarlier - Sequence comparison (protein) - Compare two or more protein sequences. - - - - - - - - - - DNA back-translation - - - - - - - - beta12orEarlier - Back-translate a protein sequence into DNA. - - - - - - - - - - Sequence editing (nucleic acid) - - 1.8 - true - Edit or change a nucleic acid sequence, either randomly or specifically. - beta12orEarlier - - - - - - - - - - Sequence editing (protein) - - Edit or change a protein sequence, either randomly or specifically. - beta12orEarlier - true - 1.8 - - - - - - - - - - Sequence generation (nucleic acid) - - Generate a nucleic acid sequence by some means. - beta12orEarlier - - - - - - - - - - Sequence generation (protein) - - - Generate a protein sequence by some means. - beta12orEarlier - - - - - - - - - - Nucleic acid sequence visualisation - - Visualise, format or render a nucleic acid sequence. - true - Various nucleic acid sequence analysis methods might generate a sequence rendering but are not (for brevity) listed under here. - 1.8 - beta12orEarlier - - - - - - - - - - Protein sequence visualisation - - true - beta12orEarlier - Visualise, format or render a protein sequence. - 1.8 - Various protein sequence analysis methods might generate a sequence rendering but are not (for brevity) listed under here. - - - - - - - - - - Nucleic acid structure comparison - - - - Compare nucleic acid tertiary structures. - beta12orEarlier - Structure comparison (nucleic acid) - - - - - - - - - - Structure processing (nucleic acid) - - 1.6 - beta12orEarlier - true - Process (read and / or write) nucleic acid tertiary structure data. - - - - - - - - - - DNA mapping - - - - - - - - - - - - - - - - - - - - beta12orEarlier - Generate a map of a DNA sequence annotated with positional or non-positional features of some type. - - - - - - - - - - Map data processing - - DNA map data processing - Process (read and / or write) a DNA map of some type. - beta12orEarlier - true - 1.6 - - - - - - - - - - Protein hydropathy calculation - - - - - - - - - - - - - - beta12orEarlier - Analyse the hydrophobic, hydrophilic or charge properties of a protein (from analysis of sequence or structural information). - - - - - - - - - - Protein binding site prediction - - - - - - - - Ligand-binding and active site prediction - beta12orEarlier - Binding site prediction - Identify or predict catalytic residues, active sites or other ligand-binding sites in protein sequences or structures. - - - - - - - - - - Sequence tagged site (STS) mapping - - - - - - - - beta12orEarlier - Sequence mapping - An STS is a short subsequence of known sequence and location that occurs only once in the chromosome or genome that is being mapped. Sources of STSs include 1. expressed sequence tags (ESTs), simple sequence length polymorphisms (SSLPs), and random genomic sequences from cloned genomic DNA or database sequences. - Generate a physical DNA map (sequence map) from analysis of sequence tagged sites (STS). - - - - - - - - - - Alignment - - - - - - - - - Compare two or more entities, typically the sequence or structure (or derivatives) of macromolecules, to identify equivalent subunits. - Alignment - Alignment generation - beta12orEarlier - Alignment construction - - - - - - - - - - Protein fragment weight comparison - - - beta12orEarlier - Calculate the molecular weight of a protein (or fragments) and compare it another protein or reference data. - - - - - - - - - - Protein property comparison - - - - - - - - Compare the physicochemical properties of two or more proteins (or reference data). - beta12orEarlier - - - - - - - - - - Secondary structure comparison - - - - - - - - Compare two or more molecular secondary structures. - beta12orEarlier - - - - - - - - - - Hopp and Woods plotting - - - beta12orEarlier - Generate a Hopp and Woods plot of antigenicity of a protein. - - - - - - - - - - Microarray cluster textual view generation - - beta12orEarlier - Visualise gene clusters with gene names. - - - - - - - - - - Microarray wave graph plotting - - Microarray wave graph rendering - Microarray cluster temporal graph rendering - beta12orEarlier - This view can be rendered as a pie graph. The distance matrix is sorted by cluster number and typically represented as a diagonal matrix with distance values displayed in different color shades. - Visualise clustered gene expression data as a set of waves, where each wave corresponds to a gene across samples on the X-axis. - - - - - - - - - - Microarray dendrograph plotting - - Microarray dendrograph rendering - Generate a dendrograph of raw, preprocessed or clustered microarray data. - beta12orEarlier - Microarray checks view rendering - Microarray view rendering - - - - - - - - - - Microarray proximity map plotting - - beta12orEarlier - Microarray distance map rendering - Generate a plot of distances (distance matrix) between genes. - Microarray proximity map rendering - - - - - - - - - - Microarray tree or dendrogram rendering - - Microarray 2-way dendrogram rendering - beta12orEarlier - Visualise clustered gene expression data using a gene tree, array tree and color coded band of gene expression. - Microarray matrix tree plot rendering - - - - - - - - - - Microarray principal component plotting - - beta12orEarlier - Microarray principal component rendering - Generate a line graph drawn as sum of principal components (Eigen value) and individual expression values. - - - - - - - - - - Microarray scatter plot plotting - - Generate a scatter plot of microarray data, typically after principal component analysis. - beta12orEarlier - Microarray scatter plot rendering - - - - - - - - - - Whole microarray graph plotting - - Visualise gene expression data where each band (or line graph) corresponds to a sample. - beta12orEarlier - Whole microarray graph rendering - - - - - - - - - - Microarray tree-map rendering - - beta12orEarlier - Visualise gene expression data after hierarchical clustering for representing hierarchical relationships. - - - - - - - - - - Microarray Box-Whisker plot plotting - - beta12orEarlier - Visualise raw and pre-processed gene expression data, via a plot showing over- and under-expression along with mean, upper and lower quartiles. - - - - - - - - - - Physical mapping - - - - - - - - - - - - - - beta12orEarlier - Generate a physical (sequence) map of a DNA sequence showing the physical distance (base pairs) between features or landmarks such as restriction sites, cloned DNA fragments, genes and other genetic markers. - - - - - - - - - - Analysis - - Apply analytical methods to existing data of a specific type. - For non-analytical operations, see the 'Processing' branch. - beta12orEarlier - - - - - - - - - - - Alignment analysis - - Process or analyse an alignment of molecular sequences or structures. - true - beta12orEarlier - 1.8 - - - - - - - - - - Article analysis - - - - - - - - - - - - - - - - - - - - Analyse a body of scientific text (typically a full text article from a scientific journal.) - beta12orEarlier - Article analysis - - - - - - - - - - Molecular interaction analysis - - Analyse the interactions of two or more molecules (or parts of molecules) that are known to interact. - beta12orEarlier - beta13 - true - - - - - - - - - Protein interaction analysis - - - - - - - - - - - - - - beta12orEarlier - Analyse known protein-protein, protein-DNA/RNA or protein-ligand interactions. - - - - - - - - - - Residue contact calculation - - Calculate contacts between residues and some other group in a protein structure. - beta12orEarlier - - - - - - - - - - Alignment processing - - true - Process (read and / or write) an alignment of two or more molecular sequences, structures or derived data. - 1.6 - beta12orEarlier - - - - - - - - - - - Structure alignment processing - - Process (read and / or write) a molecular tertiary (3D) structure alignment. - 1.6 - beta12orEarlier - true - - - - - - - - - - Codon usage bias calculation - - - - - - - - Calculate codon usage bias. - beta12orEarlier - - - - - - - - - - Codon usage bias plotting - - - - - - - - - beta12orEarlier - Generate a codon usage bias plot. - - - - - - - - - - Codon usage fraction calculation - - - - - - - - Calculate the differences in codon usage fractions between two sequences, sets of sequences, codon usage tables etc. - beta12orEarlier - - - - - - - - - - Classification - - beta12orEarlier - Assign molecular sequences, structures or other biological data to a specific group or category according to qualities it shares with that group or category. - - - - - - - - - - Molecular interaction data processing - - beta13 - true - beta12orEarlier - Process (read and / or write) molecular interaction data. - - - - - - - - - Sequence classification - - - beta12orEarlier - Assign molecular sequence(s) to a group or category. - - - - - - - - - - Structure classification - - - Assign molecular structure(s) to a group or category. - beta12orEarlier - - - - - - - - - - Protein comparison - - Compare two or more proteins (or some aspect) to identify similarities. - beta12orEarlier - - - - - - - - - - Nucleic acid comparison - - beta12orEarlier - Compare two or more nucleic acids to identify similarities. - - - - - - - - - - Prediction and recognition (protein) - - beta12orEarlier - Predict, recognise, detect or identify some properties of proteins. - - - - - - - - - - Prediction and recognition (nucleic acid) - - beta12orEarlier - Predict, recognise, detect or identify some properties of nucleic acids. - - - - - - - - - - Structure editing - - - - - - - - beta13 - Edit, convert or otherwise change a molecular tertiary structure, either randomly or specifically. - - - - - - - - - - Sequence alignment editing - - Edit, convert or otherwise change a molecular sequence alignment, either randomly or specifically. - beta13 - - - - - - - - - - Pathway or network visualisation - - - - - - - - - Render (visualise) a biological pathway or network. - Pathway or network rendering - beta13 - - - - - - - - - - Protein function prediction (from sequence) - - beta13 - true - Predict general (non-positional) functional properties of a protein from analysing its sequence. - For functional properties that are positional, use 'Protein site detection' instead. - 1.6 - - - - - - - - - - Protein sequence feature detection - - - - Protein site recognition - Predict, recognise and identify functional or other key sites within protein sequences, typically by scanning for known motifs, patterns and regular expressions. - Protein site prediction - Sequence profile database search - Protein site detection - Protein secondary database search - Sequence feature detection (protein) - beta13 - - - - - - - - - - Protein property calculation (from sequence) - - - beta13 - Calculate (or predict) physical or chemical properties of a protein, including any non-positional properties of the molecular sequence, from processing a protein sequence. - - - - - - - - - - Protein feature prediction (from structure) - - beta13 - 1.6 - true - Predict, recognise and identify positional features in proteins from analysing protein structure. - - - - - - - - - - Protein feature detection - - - - - - - - - - - - - - - Features includes functional sites or regions, secondary structure, structural domains and so on. Methods might use fingerprints, motifs, profiles, hidden Markov models, sequence alignment etc to provide a mapping of a query protein sequence to a discriminatory element. This includes methods that search a secondary protein database (Prosite, Blocks, ProDom, Prints, Pfam etc.) to assign a protein sequence(s) to a known protein family or group. - - Predict, recognise and identify positional features in proteins from analysing protein sequences or structures. - beta13 - Protein feature recognition - Protein feature prediction - - - - - - - - - - Database search (by sequence) - - Sequence screening - true - 1.6 - Screen a molecular sequence(s) against a database (of some type) to identify similarities between the sequence and database entries. - beta13 - - - - - - - - - - Protein interaction network prediction - - - - - - - - - - - - - - beta13 - Predict a network of protein interactions. - - - - - - - - - - Nucleic acid design - - - beta13 - Design (or predict) nucleic acid sequences with specific chemical or physical properties. - - - - - - - - - - Editing - - beta13 - Edit a data entity, either randomly or specifically. - - - - - - - - - - Sequence assembly validation - - - - - - - - - - - - - - - - - - - - - 1.1 - Evaluate a DNA sequence assembly, typically for purposes of quality control. - - - - - - - - - - Genome alignment - - Align two or more (tpyically huge) molecular sequences that represent genomes. - Genome alignment construction - 1.1 - Genome alignment - - - - - - - - - - Localized reassembly - - Reconstruction of a sequence assembly in a localised area. - 1.1 - - - - - - - - - - Sequence assembly visualisation - - Assembly rendering - Sequence assembly rendering - Render and visualise a DNA sequence assembly. - 1.1 - Assembly visualisation - - - - - - - - - - Base-calling - - - - - - - - Phred base calling - 1.1 - Identify base (nucleobase) sequence from a fluorescence 'trace' data generated by an automated DNA sequencer. - Base calling - Phred base-calling - - - - - - - - - - Bisulfite mapping - - 1.1 - Bisulfite mapping follows high-throughput sequencing of DNA which has undergone bisulfite treatment followed by PCR amplification; unmethylated cytosines are specifically converted to thymine, allowing the methylation status of cytosine in the DNA to be detected. - The mapping of methylation sites in a DNA (genome) sequence. - Bisulfite sequence alignment - Bisulfite sequence mapping - - - - - - - - - - Sequence contamination filtering - - - - - - - - beta12orEarlier - Identify and filter a (typically large) sequence data set to remove sequences from contaminants in the sample that was sequenced. - - - - - - - - - - Trim ends - - 1.1 - Trim sequences (typically from an automated DNA sequencer) to remove misleading ends. - For example trim polyA tails, introns and primer sequence flanking the sequence of amplified exons, or other unwanted sequence. - - - - - - - - - - Trim vector - - Trim sequences (typically from an automated DNA sequencer) to remove sequence-specific end regions, typically contamination from vector sequences. - 1.1 - - - - - - - - - - Trim to reference - - 1.1 - Trim sequences (typically from an automated DNA sequencer) to remove the sequence ends that extend beyond an assembled reference sequence. - - - - - - - - - - Sequence trimming - - 1.1 - Cut (remove) the end from a molecular sequence. - - - - - - - - - - Genome feature comparison - - Genomic elements that might be compared include genes, indels, single nucleotide polymorphisms (SNPs), retrotransposons, tandem repeats and so on. - Compare the features of two genome sequences. - 1.1 - - - - - - - - - - Sequencing error detection - - - - - - - - Short read error correction - Short-read error correction - beta12orEarlier - Detect errors in DNA sequences generated from sequencing projects). - - - - - - - - - - Genotyping - - 1.1 - Methods might consider cytogenetic analyses, copy number polymorphism (and calculate copy number calls for copy-number variation(CNV) regions), single nucleotide polymorphism (SNP), , rare copy number variation (CNV) identification, loss of heterozygosity data and so on. - Analyse DNA sequence data to identify differences between the genetic composition (genotype) of an individual compared to other individual's or a reference sequence. - - - - - - - - - - Genetic variation analysis - - - 1.1 - Sequence variation analysis - Genetic variation annotation provides contextual interpretation of coding SNP consequences in transcripts. It allows comparisons to be made between variation data in different populations or strains for the same transcript. - Genetic variation annotation - Analyse a genetic variation, for example to annotate its location, alleles, classification, and effects on individual transcripts predicted for a gene model. - - - - - - - - - - Read mapping - - - Short oligonucleotide alignment - Oligonucleotide mapping - Oligonucleotide alignment generation - Short read mapping - Oligonucleotide alignment construction - The purpose of read mapping is to identify the location of sequenced fragments within a reference genome and assumes that there is, in fact, at least local similarity between the fragment and reference sequences. - Oligonucleotide alignment - Read alignment - 1.1 - Short read alignment - Align short oligonucleotide sequences (reads) to a larger (genomic) sequence. - Short sequence read mapping - - - - - - - - - - Split read mapping - - A varient of oligonucleotide mapping where a read is mapped to two separate locations because of possible structural variation. - 1.1 - - - - - - - - - - DNA barcoding - - Analyse DNA sequences in order to identify a DNA barcode; short fragment(s) of DNA that are useful to diagnose the taxa of biological organisms. - 1.1 - Sample barcoding - - - - - - - - - - SNP calling - - Identify single nucleotide change in base positions in sequencing data that differ from a reference genome and which might, especially by reference to population frequency or functional data, indicate a polymorphism. - Operations usually score confidence in the prediction or some other statistical measure of evidence. - 1.1 - - - - - - - - - - Mutation detection - - Polymorphism detection - Detect mutations in multiple DNA sequences, for example, from the alignment and comparison of the fluorescent traces produced by DNA sequencing hardware. - 1.1 - - - - - - - - - - Chromatogram visualisation - - Visualise, format or render an image of a Chromatogram. - Chromatogram viewing - 1.1 - - - - - - - - - - Methylation analysis - - 1.1 - Determine cytosine methylation states in nucleic acid sequences. - - - - - - - - - - Methylation calling - - - 1.1 - Determine cytosine methylation status of specific positions in a nucleic acid sequences. - - - - - - - - - - Methylation level analysis (global) - - 1.1 - Global methylation analysis - Measure the overall level of methyl cytosines in a genome from analysis of experimental data, typically from chromatographic methods and methyl accepting capacity assay. - - - - - - - - - - Methylation level analysis (gene-specific) - - Gene-specific methylation analysis - Many different techniques are available for this. - Measure the level of methyl cytosines in specific genes. - 1.1 - - - - - - - - - - Genome visualisation - - 1.1 - Genome visualization - Visualise, format or render a nucleic acid sequence that is part of (and in context of) a complete genome sequence. - Genome rendering - Genome visualisation - Genome viewing - Genome browsing - - - - - - - - - - Genome comparison - - Compare the sequence or features of two or more genomes, for example, to find matching regions. - 1.1 - Genomic region matching - - - - - - - - - - Genome indexing - - - - - - - - Many sequence alignment tasks involving many or very large sequences rely on a precomputed index of the sequence to accelerate the alignment. - Generate an index of a genome sequence. - 1.1 - - - - - - - - - - Genome indexing (Burrows-Wheeler) - - The Burrows-Wheeler Transform (BWT) is a permutation of the genome based on a suffix array algorithm. - Generate an index of a genome sequence using the Burrows-Wheeler algorithm. - 1.1 - - - - - - - - - - Genome indexing (suffix arrays) - - 1.1 - Generate an index of a genome sequence using a suffix arrays algorithm. - suffix arrays - A suffix array consists of the lexicographically sorted list of suffixes of a genome. - - - - - - - - - - Spectral analysis - - Spectral analysis - 1.1 - Spectrum analysis - Analyse a spectrum from a mass spectrometry (or other) experiment. - Mass spectrum analysis - - - - - - - - - - Peak detection - - - - - - - - 1.1 - Peak finding - Peak assignment - Identify peaks in a spectrum from a mass spectrometry, NMR, or some other spectrum-generating experiment. - - - - - - - - - - Scaffolding - - - - - - - - - Scaffold construction - Link together a non-contiguous series of genomic sequences into a scaffold, consisting of sequences separated by gaps of known length. The sequences that are linked are typically typically contigs; contiguous sequences corresponding to read overlaps. - 1.1 - Scaffold may be positioned along a chromosome physical map to create a "golden path". - Scaffold generation - - - - - - - - - - Scaffold gap completion - - Fill the gaps in a sequence assembly (scaffold) by merging in additional sequences. - Different techniques are used to generate gap sequences to connect contigs, depending on the size of the gap. For small (5-20kb) gaps, PCR amplification and sequencing is used. For large (>20kb) gaps, fragments are cloned (e.g. in BAC (Bacterial artificial chromosomes) vectors) and then sequenced. - 1.1 - - - - - - - - - - Sequencing quality control - - - Raw sequence data quality control. - Analyse raw sequence data from a sequencing pipeline and identify problems. - Sequencing QC - 1.1 - - - - - - - - - - Read pre-processing - - - Sequence read pre-processing - This is a broad concept and is used a placeholder for other, more specific concepts. For example process paired end reads to trim low quality ends remove short sequences, identify sequence inserts, detect chimeric reads, or remove low quality sequnces including vector, adaptor, low complexity and contaminant sequences. Sequences might come from genomic DNA library, EST libraries, SSH library and so on. - Pre-process sequence reads to ensure (or improve) quality and reliability. - 1.1 - - - - - - - - - - Species frequency estimation - - - - - - - - Estimate the frequencies of different species from analysis of the molecular sequences, typically of DNA recovered from environmental samples. - 1.1 - - - - - - - - - - Peak calling - - Chip-sequencing combines chromatin immunoprecipitation (ChIP) with massively parallel DNA sequencing to generate a set of reads, which are aligned to a genome sequence. The enriched areas contain the binding sites of DNA-associated proteins. For example, a transcription factor binding site. ChIP-on-chip in contrast combines chromatin immunoprecipitation ('ChIP') with microarray ('chip'). - Identify putative protein-binding regions in a genome sequence from analysis of Chip-sequencing data or ChIP-on-chip data. - Protein binding peak detection - 1.1 - - - - - - - - - - Differential expression analysis - - Identify (typically from analysis of microarray or RNA-seq data) genes whose expression levels are significantly different between two sample groups. - Differentially expressed gene identification - Differential expression analysis is used, for example, to identify which genes are up-regulated (increased expression) or down-regulated (decreased expression) between a group treated with a drug and a control groups. - 1.1 - - - - - - - - - - Gene set testing - - 1.1 - Gene sets can be defined beforehand by biological function, chromosome locations and so on. - Analyse gene expression patterns (typically from DNA microarray datasets) to identify sets of genes that are associated with a specific trait, condition, clinical outcome etc. - - - - - - - - - - Variant classification - - - Classify variants based on their potential effect on genes, especially functional effects on the expressed proteins. - 1.1 - Variants are typically classified by their position (intronic, exonic, etc.) in a gene transcript and (for variants in coding exons) by their effect on the protein sequence (synonymous, non-synonymous, frameshifting, etc.) - - - - - - - - - - Variant prioritization - - Variant prioritization can be used for example to produce a list of variants responsible for 'knocking out' genes in specific genomes. Methods amino acid substitution, aggregative approaches, probabilistic approach, inheritance and unified likelihood-frameworks. - Identify biologically interesting variants by prioritizing individual variants, for example, homozygous variants absent in control genomes. - 1.1 - - - - - - - - - - Variant calling - - Variant mapping - 1.1 - Identify and map genomic alterations, including single nucleotide polymorphisms, short indels and structural variants, in a genome sequence. - Methods often utilise a database of aligned reads. - - - - - - - - - - Structural variation discovery - - Detect large regions in a genome subject to copy-number variation, or other structural variations in genome(s). - 1.1 - Methods might involve analysis of whole-genome array comparative genome hybridization or single-nucleotide polymorphism arrays, paired-end mapping of sequencing data, or from analysis of short reads from new sequencing technologies. - - - - - - - - - - Exome analysis - - 1.1 - Targeted exome capture - Exome sequencing is considered a cheap alternative to whole genome sequencing. - Exome sequence analysis - Anaylse sequencing data from experiments aiming to selectively sequence the coding regions of the genome. - - - - - - - - - - Read depth analysis - - 1.1 - Analyse mapping density (read depth) of (typically) short reads from sequencing platforms, for example, to detect deletions and duplications. - - - - - - - - - - Gene expression QTL analysis - - - - - - - - expression quantitative trait loci profiling - 1.1 - eQTL profiling - Combine classical quantitative trait loci (QTL) analysis with gene expression profiling, for example, to describe describe cis- and trans-controlling elements for the expression of phenotype associated genes. - expression QTL profiling - - - - - - - - - - Copy number estimation - - Methods typically implement some statistical model for hypothesis testing, and methods estimate total copy number, i.e. do not distinguish the two inherited chromosomes quantities (specific copy number). - Transcript copy number estimation - 1.1 - Estimate the number of copies of loci of particular gene(s) in DNA sequences typically from gene-expression profiling technology based on microarray hybridization-based experiments. For example, estimate copy number (or marker dosage) of a dominant marker in samples from polyploid plant cells or tissues, or chromosomal gains and losses in tumors. - - - - - - - - - - Primer removal - - 1.2 - Remove forward and/or reverse primers from nucleic acid sequences (typically PCR products). - - - - - - - - - - Transcriptome assembly - - - - - - - - - - - - - - Infer a transcriptome sequence by analysis of short sequence reads. - 1.2 - - - - - - - - - - Transcriptome assembly (de novo) - - de novo transcriptome assembly - true - 1.6 - 1.2 - Infer a transcriptome sequence without the aid of a reference genome, i.e. by comparing short sequences (reads) to each other. - - - - - - - - - - Transcriptome assembly (mapping) - - Infer a transcriptome sequence by mapping short reads to a reference genome. - 1.6 - 1.2 - true - - - - - - - - - - Sequence coordinate conversion - - - - - - - - - - - - - - 1.3 - Convert one set of sequence coordinates to another, e.g. convert coordinates of one assembly to another, cDNA to genomic, CDS to genomic, protein translation to genomic etc. - - - - - - - - - - Document similarity calculation - - Calculate similarity between 2 or more documents. - 1.3 - - - - - - - - - - Document clustering - - - Cluster (group) documents on the basis of their calculated similarity. - 1.3 - - - - - - - - - - Named entity recognition - - - Entity identification - Entity chunking - Entity extraction - Recognise named entities (text tokens) within documents. - 1.3 - - - - - - - - - - ID mapping - - - Identifier mapping - The mapping can be achieved by comparing identifier values or some other means, e.g. exact matches to a provided sequence. - 1.3 - Accession mapping - Map data identifiers to one another for example to establish a link between two biological databases for the purposes of data integration. - - - - - - - - - - Anonymisation - - Process data in such a way that makes it hard to trace to the person which the data concerns. - 1.3 - Data anonymisation - - - - - - - - - - ID retrieval - - - - - - - - id retrieval - Data retrieval (accession) - Data retrieval (ID) - Identifier retrieval - Data retrieval (id) - Accession retrieval - Search for and retrieve a data identifier of some kind, e.g. a database entry accession. - 1.3 - - - - - - - - - - Sequence checksum generation - - - - - - - - - - - - - - Generate a checksum of a molecular sequence. - 1.4 - - - - - - - - - - Bibliography generation - - - - - - - - Bibliography construction - Construct a bibliography from the scientific literature. - 1.4 - - - - - - - - - - Protein quaternary structure prediction - - 1.4 - Predict the structure of a multi-subunit protein and particularly how the subunits fit together. - - - - - - - - - - Protein surface analysis - - 1.4 - Analyse the surface properties of proteins. - - - - - - - - - - Ontology comparison - - 1.4 - Compare two or more ontologies, e.g. identify differences. - - - - - - - - - - Ontology comparison - - 1.4 - Compare two or more ontologies, e.g. identify differences. - 1.9 - - - - - - - - - - Format detection - - - - - - - - - - - - - - Recognition of which format the given data is in. - 1.4 - Format identification - Format recognition - 'Format recognition' is not a bioinformatics-specific operation, but of great relevance in bioinformatics. Should be removed from EDAM if/when captured satisfactorily in a suitable domain-generic ontology. - Format inference - - - - - - The has_input "Data" (data_0006) may cause visualisation or other problems although ontologically correct. But on the other hand it may be useful to distinguish from nullary operations without inputs. - - - - - - - - - - - Splitting - - File splitting - Split a file containing multiple data items into many files, each containing one item - 1.4 - - - - - - - - - - Generation - - Construction - beta12orEarlier - For non-analytical operations, see the 'Processing' branch. - Construct some data entity. - - - - - - - - - - Nucleic acid sequence feature detection - - - Nucleic acid site prediction - Predict, recognise and identify functional or other key sites within nucleic acid sequences, typically by scanning for known motifs, patterns and regular expressions. - Nucleic acid site recognition - 1.6 - Nucleic acid site detection - - - - - - - - - - Deposition - - Deposit some data in a database or some other type of repository or software system. - 1.6 - Database submission - Submission - Data submission - Data deposition - Database deposition - For non-analytical operations, see the 'Processing' branch. - - - - - - - - - - Clustering - - 1.6 - Group together some data entities on the basis of similarities such that entities in the same group (cluster) are more similar to each other than to those in other groups (clusters). - - - - - - - - - - Assembly - - 1.6 - Construct some entity (typically a molecule sequence) from component pieces. - - - - - - - - - - Conversion - - 1.6 - Non-analytical data conversion. - - - - - - - - - - Standardization and normalization - - 1.6 - Standardize or normalize data. - - - - - - - - - - Aggregation - - Combine multiple files or data items into a single file or object. - 1.6 - - - - - - - - - - Article comparison - - Compare two or more scientific articles. - 1.6 - - - - - - - - - - Calculation - - Mathemetical determination of the value of something, typically a properly of a molecule. - 1.6 - - - - - - - - - - Pathway or network prediction - - - 1.6 - Predict a molecular pathway or network. - - - - - - - - - - Genome assembly - - 1.6 - The process of assembling many short DNA sequences together such thay they represent the original chromosomes from which the DNA originated. - - - - - - - - - - Plotting - - Generate a graph, or other visual representation, of data, showing the relationship between two or more variables. - 1.6 - - - - - - - - - - Image analysis - - - - - - - - 1.7 - The analysis of a image (typically a digital image) of some type in order to extract information from it. - Image processing - - - - - - - - - - - Diffraction data analysis - - 1.7 - Analysis of data from a diffraction experiment. - - - - - - - - - - Cell migration analysis - - - - - - - - 1.7 - Analysis of cell migration images in order to study cell migration, typically in order to study the processes that play a role in the disease progression. - - - - - - - - - - Diffraction data reduction - - 1.7 - Processing of diffraction data into a corrected, ordered, and simplified form. - - - - - - - - - - Neurite measurement - - - - - - - - Measurement of neurites; projections (axons or dendrites) from the cell body of a neuron, from analysis of neuron images. - 1.7 - - - - - - - - - - Diffraction data integration - - 1.7 - Diffraction summation integration - Diffraction profile fitting - The evaluation of diffraction intensities and integration of diffraction maxima from a diffraction experiment. - - - - - - - - - - Phasing - - Phase a macromolecular crystal structure, for example by using molecular replacement or experimental phasing methods. - 1.7 - - - - - - - - - - Molecular replacement - - 1.7 - A technique used to construct an atomic model of an unknown structure from diffraction data, based upon an atomic model of a known structure, either a related protein or the same protein from a different crystal form. - The technique solves the phase problem, i.e. retrieve information concern phases of the structure. - - - - - - - - - - Rigid body refinement - - 1.7 - Rigid body refinement usually follows molecular replacement in the assignment of a structure from diffraction data. - A method used to refine a structure by moving the whole molecule or parts of it as a rigid unit, rather than moving individual atoms. - - - - - - - - - - Single particle analysis - - - - - - - - - An image processing technique that combines and analyze multiple images of a particulate sample, in order to produce an image with clearer features that are more easily interpreted. - 1.7 - Single particle analysis is used to improve the information that can be obtained by relatively low resolution techniques, , e.g. an image of a protein or virus from transmission electron microscopy (TEM). - - - - - - - - - - Single particle alignment and classification - - - Compare (align and classify) multiple particle images from a micrograph in order to produce a representative image of the particle. - 1.7 - A micrograph can include particles in multiple different orientations and/or conformations. Particles are compared and organised into sets based on their similarity. Typically iterations of classification and alignment and are performed to optimise the final image; average images produced by classification are used as a reference image for subsequent alignment of the whole image set. - - - - - - - - - - Functional clustering - - - - - - - - 1.7 - Clustering of molecular sequences on the basis of their function, typically using information from an ontology of gene function, or some other measure of functional phenotype. - Functional sequence clustering - - - - - - - - - - Taxonomic classification - - 1.7 - Classifiication of molecular sequences by assignment to some taxonomic hierarchy. - - - - - - - - - - Virulence prediction - - - - - - - - - Pathogenicity prediction - The prediction of the degree of pathogenicity of a microorganism from analysis of molecular sequences. - 1.7 - - - - - - - - - - Gene expression correlation analysis - - - 1.7 - Gene co-expression network analysis - Analyse the correlation patterns among genes across across a variety of experiments, microarray samples etc. - - - - - - - - - - - Correlation - - - - - - - - 1.7 - Identify a correlation, i.e. a statistical relationship between two random variables or two sets of data. - - - - - - - - - - RNA structure covariance model generation - - - - - - - - - Compute the covariance model for (a family of) RNA secondary structures. - 1.7 - - - - - - - - - - RNA secondary structure prediction (shape-based) - - RNA shape prediction - Predict RNA secondary structure by analysis, e.g. probabilistic analysis, of the shape of RNA folds. - 1.7 - - - - - - - - - - Nucleic acid alignment folding prediction (alignment-based) - - 1.7 - Prediction of nucleic-acid folding using sequence alignments as a source of data. - - - - - - - - - - k-mer counting - - Count k-mers (substrings of length k) in DNA sequence data. - 1.7 - k-mer counting is used in genome and transcriptome assembly, metagenomic sequencing, and for error correction of sequence reads. - - - - - - - - - - Phylogenetic tree reconstruction - - - - - - - - Reconstructing the inner node labels of a phylogenetic tree from its leafes. - Note that this is somewhat different from simply analysing an existing tree or constructing a completely new one. - 1.7 - - - - - - - - - - Probabilistic data generation - - Generate some data from a choosen probibalistic model, possibly to evaluate algorithms. - 1.7 - - - - - - - - - - Probabilistic sequence generation - - - 1.7 - Generate sequences from some probabilistic model, e.g. a model that simulates evolution. - - - - - - - - - - Antimicrobial resistance prediction - - - - - - - - - 1.7 - Identify or predict causes for antibiotic resistance from molecular sequence analysis. - - - - - - - - - - Enrichment - - - - - - - - - A relevant ontology will be used. The input is typically a set of identifiers or other data, and the output of the analysis is typically a ranked list of ontology terms, each associated with a p-value. - Term enrichment - 1.8 - Analyse a dataset with respect to concepts from an ontology. - - - - - - - - - - Chemical class enrichment - - - - - - - - - 1.8 - Analyse a dataset with respect to concepts from an ontology of chemical structure. - - - - - - - - - - Incident curve plotting - - 1.8 - Plot an incident curve such as a survival curve, death curve, mortality curve. - - - - - - - - - - Variant pattern analysis - - Methods often utilise a database of aligned reads. - Identify and map patterns of genomic variations. - 1.8 - - - - - - - - - - Mathematical modelling - - Model some biological system using mathematical techniques including dynamical systems, statistical models, differential equations, and game theoretic models. - beta12orEarlier - - - - - - - - - - Microscope image visualisation - - - - - - - - Visualise images resulting from various types of microscopy. - 1.9 - Microscopy image visualisation - - - - - - - - - - Image annotation - - 1.9 - Annotate an image of some sort, typically with terms from a controlled vocabulary. - - - - - - - - - - Imputation - - Data imputation - Replace missing data with substituted values, usually by using some statistical or other mathematical approach. - true - 1.9 - - - - - - - - - - Ontology visualisation - - 1.9 - Visualise, format or render data from an ontology, typically a tree of terms. - Ontology browsing - - - - - - - - - - Maximum occurence analysis - - A method for making numerical assessments about the maximum percent of time that a conformer of a flexible macromolecule can exist and still be compatible with the experimental data. - beta12orEarlier - - - - - - - - - - Database comparison - - - 1.9 - Data model comparison - Compare the models or schemas used by two or more databases, or any other general comparison of databases rather than a detailed comparison of the entries themselves. - Schema comparison - - - - - - - - - - Network simulation - - - - - - - - Simulate the bevaviour of a biological pathway or network. - Pathway simulation - Network topology simulation - 1.9 - - - - - - - - - - RNA-seq read count analysis - - Analyze read counts from RNA-seq experiments. - 1.9 - - - - - - - - - - Chemical redundancy removal - - 1.9 - Identify and remove redudancy from a set of small molecule structures. - - - - - - - - - - RNA-seq time series data analysis - - 1.9 - Analyze time series data from an RNA-seq experiment. - - - - - - - - - - Simulated gene expression data generation - - 1.9 - Simulate gene expression data, e.g. for purposes of benchmarking. - - - - - - - - - - Topic - - http://purl.org/biotop/biotop.owl#Quality - http://bioontology.org/ontologies/ResearchArea.owl#Area_of_Research - http://www.onto-med.de/ontologies/gfo.owl#Category - http://www.ifomis.org/bfo/1.1/snap#Quality - http://www.onto-med.de/ontologies/gfo.owl#Perpetuant - A category denoting a rather broad domain or field of interest, of study, application, work, data, or technology. Topics have no clearly defined borders between each other. - http://www.loa-cnr.it/ontologies/DOLCE-Lite.owl#quality - beta12orEarlier - http://www.ifomis.org/bfo/1.1/snap#Continuant - sumo:FieldOfStudy - http://onto.eva.mpg.de/ontologies/gfo-bio.owl#Method - - - - - - - - - - Nucleic acids - - The processing and analysis of nucleic acid sequence, structural and other data. - Nucleic acid bioinformatics - Nucleic acid analysis - Nucleic acid informatics - http://purl.bioontology.org/ontology/MSH/D017423 - Nucleic acid properties - Nucleic acid physicochemistry - http://purl.bioontology.org/ontology/MSH/D017422 - beta12orEarlier - - - - - - - - - - Proteins - - Protein bioinformatics - Protein informatics - Protein databases - Protein analysis - http://purl.bioontology.org/ontology/MSH/D020539 - Archival, processing and analysis of protein data, typically molecular sequence and structural data. - beta12orEarlier - - - - - - - - - - Metabolites - - Metabolite structures - This concept excludes macromolecules such as proteins and nucleic acids. - The structures of reactants or products of metabolism, for example small molecules such as including vitamins, polyols, nucleotides and amino acids. - beta12orEarlier - - - - - - - - - - Sequence analysis - - beta12orEarlier - Sequence databases - Sequences - http://purl.bioontology.org/ontology/MSH/D017421 - The archival, processing and analysis of molecular sequences (monomer composition of polymers) including molecular sequence data resources, sequence sites, alignments, motifs and profiles. - - - - - - - - - - - Structure analysis - - Computational structural biology - The curation, processing and analysis of the structure of biological molecules, typically proteins and nucleic acids and other macromolecules. - http://purl.bioontology.org/ontology/MSH/D015394 - Structure analysis - Structural bioinformatics - Structure databases - This includes related concepts such as structural properties, alignments and structural motifs. - Structure data resources - beta12orEarlier - - - - - - - - - - - Structure prediction - - beta12orEarlier - The prediction of molecular (secondary or tertiary) structure. - - - - - - - - - - Alignment - - beta12orEarlier - true - The alignment (equivalence between sites) of molecular sequences, structures or profiles (representing a sequence or structure alignment). - beta12orEarlier - - - - - - - - - - - Phylogeny - - Phylogeny reconstruction - Phylogenetic stratigraphy - beta12orEarlier - Phylogenetic dating - Phylogenetic clocks - http://purl.bioontology.org/ontology/MSH/D010802 - The study of evolutionary relationships amongst organisms. - Phylogenetic simulation - This includes diverse phylogenetic methods, including phylogenetic tree construction, typically from molecular sequence or morphological data, methods that simulate DNA sequence evolution, a phylogenetic tree or the underlying data, or which estimate or use molecular clock and stratigraphic (age) data, methods for studying gene evolution etc. - - - - - - - - - - - Functional genomics - - - beta12orEarlier - The study of gene or protein functions and their interactions in totality in a given organism, tissue, cell etc. - - - - - - - - - - - Ontology and terminology - - Terminology - beta12orEarlier - http://purl.bioontology.org/ontology/MSH/D002965 - Applied ontology - Ontology - The conceptualisation, categorisation and nomenclature (naming) of entities or phenomena within biology or bioinformatics. This includes formal ontologies, controlled vocabularies, structured glossary, symbols and terminology or other related resource. - Ontologies - - - - - - - - - - - Information retrieval - - beta12orEarlier - Data retrieval - The search and query of data sources (typically databases or ontologies) in order to retrieve entries or other information. - This includes, for example, search, query and retrieval of molecular sequences and associated data. - Data search - VT 1.3.3 Information retrieval - Data query - - - - - - - - - - Bioinformatics - - This includes data processing in general, including basic handling of files and databases, datatypes, workflows and annotation. - VT 1.5.6 Bioinformatics - The archival, curation, processing and analysis of complex biological data. - http://purl.bioontology.org/ontology/MSH/D016247 - beta12orEarlier - - - - - - - - - - - Data visualisation - - Data rendering - Rendering (drawing on a computer screen) or visualisation of molecular sequences, structures or other biomolecular data. - VT 1.2.5 Computer graphics - beta12orEarlier - Computer graphics - - - - - - - - - - Nucleic acid thermodynamics - - true - The study of the thermodynamic properties of a nucleic acid. - 1.3 - - - - - - - - - - Nucleic acid structure analysis - - Includes secondary and tertiary nucleic acid structural data, nucleic acid thermodynamic, thermal and conformational properties including DNA or DNA/RNA denaturation (melting) etc. - DNA melting - Nucleic acid denaturation - RNA alignment - The archival, curation, processing and analysis of nucleic acid structural information, such as whole structures, structural features and alignments, and associated annotation. - RNA structure alignment - beta12orEarlier - Nucleic acid structure - Nucleic acid thermodynamics - RNA structure - - - - - - - - - - RNA - - beta12orEarlier - RNA sequences and structures. - - - - - - - - - - Nucleic acid restriction - - 1.3 - beta12orEarlier - Topic for the study of restriction enzymes, their cleavage sites and the restriction of nucleic acids. - true - - - - - - - - - - Mapping - - Genetic linkage - Linkage - Linkage mapping - Synteny - DNA mapping - beta12orEarlier - The mapping of complete (typically nucleotide) sequences. - This includes resources that aim to identify, map or analyse genetic markers in DNA sequences, for example to produce a genetic (linkage) map of a chromosome or genome or to analyse genetic linkage and synteny. It also includes resources for physical (sequence) maps of a DNA sequence showing the physical distance (base pairs) between features or landmarks such as restriction sites, cloned DNA fragments, genes and other genetic markers. - - - - - - - - - - Genetic codes and codon usage - - beta12orEarlier - true - 1.3 - Codon usage analysis - The study of codon usage in nucleotide sequence(s), genetic codes and so on. - - - - - - - - - - Protein expression - - Translation - The translation of mRNA into protein and subsequent protein processing in the cell. - beta12orEarlier - - - - - - - - - - - Gene finding - - 1.3 - This includes the study of promoters, coding regions, splice sites, etc. Methods for gene prediction might be ab initio, based on phylogenetic comparisons, use motifs, sequence features, support vector machine, alignment etc. - Gene discovery - Methods that aims to identify, predict, model or analyse genes or gene structure in DNA sequences. - beta12orEarlier - Gene prediction - true - - - - - - - - - - Transcription - - 1.3 - The transcription of DNA into mRNA. - beta12orEarlier - true - - - - - - - - - - Promoters - - true - beta12orEarlier - Promoters in DNA sequences (region of DNA that facilitates the transcription of a particular gene by binding RNA polymerase and transcription factor proteins). - beta13 - - - - - - - - - - Nucleic acid folding - - beta12orEarlier - The folding (in 3D space) of nucleic acid molecules. - true - beta12orEarlier - - - - - - - - - - Gene structure - - - This includes the study of promoters, coding regions etc. - beta12orEarlier - Gene features - Gene structure, regions which make an RNA product and features such as promoters, coding regions, gene fusion, splice sites etc. - - - - - - - - - - - Proteomics - - beta12orEarlier - Protein and peptide identification, especially in the study of whole proteomes of organisms. - Protein and peptide identification - Peptide identification - Proteomics includes any methods (especially high-throughput) that separate, characterize and identify expressed proteins such as mass spectrometry, two-dimensional gel electrophoresis and protein microarrays, as well as in-silico methods that perform proteolytic or mass calculations on a protein sequence and other analyses of protein expression data, for example in different cells or tissues. - http://purl.bioontology.org/ontology/MSH/D040901 - Protein expression - - - - - - - - - - - Structural genomics - - - beta12orEarlier - The elucidation of the three dimensional structure for all (available) proteins in a given organism. - - - - - - - - - - - Protein properties - - The study of the physical and biochemical properties of peptides and proteins, for example the hydrophobic, hydrophilic and charge properties of a protein. - Protein hydropathy - Protein physicochemistry - beta12orEarlier - - - - - - - - - - Protein interactions - - - Protein-protein, protein-DNA/RNA and protein-ligand interactions, including analysis of known interactions and prediction of putative interactions. - Protein-nucleic acid interactions - Protein-RNA interaction - This includes experimental (e.g. yeast two-hybrid) and computational analysis techniques. - Protein-protein interactions - Protein-ligand interactions - beta12orEarlier - Protein-DNA interaction - - - - - - - - - - Protein folding, stability and design - - Protein folding - Protein stability - beta12orEarlier - Protein stability, folding (in 3D space) and protein sequence-structure-function relationships. This includes for example study of inter-atomic or inter-residue interactions in protein (3D) structures, the effect of mutation, and the design of proteins with specific properties, typically by designing changes (via site-directed mutagenesis) to an existing protein. - Protein residue interactions - Protein design - Rational protein design - - - - - - - - - - Two-dimensional gel electrophoresis - - Two-dimensional gel electrophoresis image and related data. - beta13 - beta12orEarlier - true - - - - - - - - - - Mass spectrometry - - beta12orEarlier - An analytical chemistry technique that measures the mass-to-charge ratio and abundance of irons in the gas phase. - - - - - - - - - - - Protein microarrays - - Protein microarray data. - true - beta12orEarlier - beta13 - - - - - - - - - - Protein hydropathy - - beta12orEarlier - true - The study of the hydrophobic, hydrophilic and charge properties of a protein. - 1.3 - - - - - - - - - - Protein targeting and localization - - Protein targeting - Protein sorting - The study of how proteins are transported within and without the cell, including signal peptides, protein subcellular localization and export. - Protein localization - beta12orEarlier - - - - - - - - - - Protein cleavage sites and proteolysis - - true - beta12orEarlier - 1.3 - Enzyme or chemical cleavage sites and proteolytic or mass calculations on a protein sequence. - - - - - - - - - - Protein structure comparison - - The comparison of two or more protein structures. - beta12orEarlier - true - Use this concept for methods that are exclusively for protein structure. - beta12orEarlier - - - - - - - - - - - Protein residue interactions - - The processing and analysis of inter-atomic or inter-residue interactions in protein (3D) structures. - Protein residue interactions - true - 1.3 - beta12orEarlier - - - - - - - - - - Protein-protein interactions - - Protein interaction networks - true - Protein-protein interactions, individual interactions and networks, protein complexes, protein functional coupling etc. - beta12orEarlier - 1.3 - - - - - - - - - - Protein-ligand interactions - - beta12orEarlier - true - 1.3 - Protein-ligand (small molecule) interactions. - - - - - - - - - - Protein-nucleic acid interactions - - beta12orEarlier - 1.3 - Protein-DNA/RNA interactions. - true - - - - - - - - - - Protein design - - 1.3 - beta12orEarlier - The design of proteins with specific properties, typically by designing changes (via site-directed mutagenesis) to an existing protein. - true - - - - - - - - - - G protein-coupled receptors (GPCR) - - G-protein coupled receptors (GPCRs). - true - beta12orEarlier - beta12orEarlier - - - - - - - - - - Carbohydrates - - beta12orEarlier - Carbohydrates, typically including structural information. - - - - - - - - - - Lipids - - beta12orEarlier - Lipids and their structures. - - - - - - - - - - Small molecules - - Small molecules of biological significance, typically archival, curation, processing and analysis of structural information. - Small molecules include organic molecules, metal-organic compounds, small polypeptides, small polysaccharides and oligonucleotides. Structural data is usually included. - CHEBI:23367 - beta12orEarlier - - - - - - - - - - Sequence editing - - beta12orEarlier - true - beta12orEarlier - Edit, convert or otherwise change a molecular sequence, either randomly or specifically. - - - - - - - - - - - Sequence composition, complexity and repeats - - Sequence complexity - Repeat sequences - The archival, processing and analysis of the basic character composition of molecular sequences, for example character or word frequency, ambiguity, complexity, particularly regions of low complexity, and repeats or the repetitive nature of molecular sequences. - beta12orEarlier - Sequence repeats - Low complexity sequences - Sequence composition - - - - - - - - - - Sequence motifs - - beta12orEarlier - Motifs - true - 1.3 - Conserved patterns (motifs) in molecular sequences, that (typically) describe functional or other key sites. - - - - - - - - - - Sequence comparison - - The comparison might be on the basis of sequence, physico-chemical or some other properties of the sequences. - beta12orEarlier - The comparison of two or more molecular sequences, for example sequence alignment and clustering. - - - - - - - - - - Sequence sites, features and motifs - - Sequence features - The archival, detection, prediction and analysis of -positional features such as functional and other key sites, in molecular sequences and the conserved patterns (motifs, profiles etc.) that may be used to describe them. - Functional sites - Sequence motifs - Sequence profiles - Sequence sites - HMMs - beta12orEarlier - - - - - - - - - - Sequence database search - - beta12orEarlier - Search and retrieve molecular sequences that are similar to a sequence-based query (typically a simple sequence). - beta12orEarlier - true - The query is a sequence-based entity such as another sequence, a motif or profile. - - - - - - - - - - Sequence clustering - - This includes systems that generate, process and analyse sequence clusters. - beta12orEarlier - true - 1.7 - The comparison and grouping together of molecular sequences on the basis of their similarities. - Sequence clusters - - - - - - - - - - Protein structural motifs and surfaces - - - This includes conformation of conserved substructures, conserved geometry (spatial arrangement) of secondary structure or protein backbone, solvent-exposed surfaces, internal cavities, the analysis of shape, hydropathy, electrostatic patches, role and functions etc. - Protein structural features - Structural motifs - Protein 3D motifs - beta12orEarlier - Protein structural motifs - Structural features or common 3D motifs within protein structures, including the surface of a protein structure, such as biological interfaces with other molecules. - Protein surfaces - - - - - - - - - - Structural (3D) profiles - - The processing, analysis or use of some type of structural (3D) profile or template; a computational entity (typically a numerical matrix) that is derived from and represents a structure or structure alignment. - true - beta12orEarlier - 1.3 - Structural profiles - - - - - - - - - - Protein structure prediction - - - beta12orEarlier - The prediction, modelling, recognition or design of protein secondary or tertiary structure or other structural features. - - - - - - - - - - Nucleic acid structure prediction - - - The folding of nucleic acid molecules and the prediction or design of nucleic acid (typically RNA) sequences with specific conformations. - DNA structure prediction - Nucleic acid design - RNA structure prediction - beta12orEarlier - Nucleic acid folding - - - - - - - - - - Ab initio structure prediction - - 1.7 - The prediction of three-dimensional structure of a (typically protein) sequence from first principles, using a physics-based or empirical scoring function and without using explicit structural templates. - true - beta12orEarlier - - - - - - - - - - Homology modelling - - 1.4 - The modelling of the three-dimensional structure of a protein using known sequence and structural data. - true - beta12orEarlier - - - - - - - - - - Molecular dynamics - - This includes resources concerning flexibility and motion in protein and other molecular structures. - Protein dynamics - Molecular flexibility - Molecular motions - beta12orEarlier - The study and simulation of molecular (typically protein) conformation using a computational model of physical forces and computer simulation. - - - - - - - - - - Molecular docking - - beta12orEarlier - The modelling the structure of proteins in complex with small molecules or other macromolecules. - - - - - - - - - - Protein secondary structure prediction - - beta12orEarlier - 1.3 - The prediction of secondary or supersecondary structure of protein sequences. - true - - - - - - - - - - - Protein tertiary structure prediction - - 1.3 - true - The prediction of tertiary structure of protein sequences. - beta12orEarlier - - - - - - - - - - - Protein fold recognition - - For example threading, or the alignment of molecular sequences to structures, structural (3D) profiles or templates (representing a structure or structure alignment). - The recognition (prediction and assignment) of known protein structural domains or folds in protein sequence(s). - beta12orEarlier - - - - - - - - - - Sequence alignment - - This includes the generation of alignments (the identification of equivalent sites), the analysis of alignments, editing, visualisation, alignment databases, the alignment (equivalence between sites) of sequence profiles (representing sequence alignments) and so on. - beta12orEarlier - 1.7 - The alignment of molecular sequences or sequence profiles (representing sequence alignments). - true - - - - - - - - - - Structure alignment - - The superimposition of molecular tertiary structures or structural (3D) profiles (representing a structure or structure alignment). - This includes the generation, storage, analysis, rendering etc. of structure alignments. - true - 1.7 - beta12orEarlier - - - - - - - - - - Threading - - Sequence-structure alignment - 1.3 - beta12orEarlier - The alignment of molecular sequences to structures, structural (3D) profiles or templates (representing a structure or structure alignment). - true - - - - - - - - - - Sequence profiles and HMMs - - true - Sequence profiles; typically a positional, numerical matrix representing a sequence alignment. - beta12orEarlier - 1.3 - Sequence profiles include position-specific scoring matrix (position weight matrix), hidden Markov models etc. - - - - - - - - - - Phylogeny reconstruction - - The reconstruction of a phylogeny (evolutionary relatedness amongst organisms), for example, by building a phylogenetic tree. - 1.3 - true - Currently too specific for the topic sub-ontology (but might be unobsoleted). - beta12orEarlier - - - - - - - - - - Phylogenomics - - - beta12orEarlier - The integrated study of evolutionary relationships and whole genome data, for example, in the analysis of species trees, horizontal gene transfer and evolutionary reconstruction. - - - - - - - - - - - Virtual PCR - - beta13 - Polymerase chain reaction - beta12orEarlier - Simulated polymerase chain reaction (PCR). - PCR - true - - - - - - - - - - Sequence assembly - - Assembly - The assembly of fragments of a DNA sequence to reconstruct the original sequence. - beta12orEarlier - This covers for example the alignment of sequences of (typically millions) of short reads to a reference genome. - - - - - - - - - - Genetic variation - - - http://purl.bioontology.org/ontology/MSH/D014644 - Stable, naturally occuring mutations in a nucleotide sequence including alleles, naturally occurring mutations such as single base nucleotide substitutions, deletions and insertions, RFLPs and other polymorphisms. - DNA variation - Mutation - Polymorphism - beta12orEarlier - - - - - - - - - - Microarrays - - true - http://purl.bioontology.org/ontology/MSH/D046228 - Microarrays, for example, to process microarray data or design probes and experiments. - 1.3 - DNA microarrays - beta12orEarlier - - - - - - - - - - Pharmacology - - Computational pharmacology - beta12orEarlier - Pharmacoinformatics - The study of drugs and their effects or responses in living systems. - VT 3.1.7 Pharmacology and pharmacy - - - - - - - - - - - Gene expression - - This includes the study of codon usage in nucleotide sequence(s), genetic codes and so on. - Gene expression profiling - Expression profiling - beta12orEarlier - http://edamontology.org/topic_0197 - Gene expression levels are analysed by identifying, quantifying or comparing mRNA transcripts, for example using microarrays, RNA-seq, northern blots, gene-indexed expression profiles etc. - http://purl.bioontology.org/ontology/MSH/D015870 - Gene expression analysis - DNA microarrays - The analysis of levels and patterns of synthesis of gene products (proteins and functional RNA) including interpretation in functional terms of gene expression data. - Codon usage - - - - - - - - - - - Gene regulation - - beta12orEarlier - The regulation of gene expression. - - - - - - - - - - Pharmacogenomics - - - beta12orEarlier - The influence of genotype on drug response, for example by correlating gene expression or single-nucleotide polymorphisms with drug efficacy or toxicity. - - - - - - - - - - - Medicinal chemistry - - - VT 3.1.4 Medicinal chemistry - The design and chemical synthesis of bioactive molecules, for example drugs or potential drug compounds, for medicinal purposes. - This includes methods that search compound collections, generate or analyse drug 3D conformations, identify drug targets with structural docking etc. - Drug design - beta12orEarlier - - - - - - - - - - - Fish - - beta12orEarlier - true - 1.3 - Information on a specific fish genome including molecular sequences, genes and annotation. - - - - - - - - - - Flies - - 1.3 - true - beta12orEarlier - Information on a specific fly genome including molecular sequences, genes and annotation. - - - - - - - - - - Mice or rats - - Information on a specific mouse or rat genome including molecular sequences, genes and annotation. - The resource may be specific to a group of mice / rats or all mice / rats. - beta12orEarlier - - - - - - - - - - Worms - - true - 1.3 - beta12orEarlier - Information on a specific worm genome including molecular sequences, genes and annotation. - - - - - - - - - - Literature analysis - - beta12orEarlier - 1.3 - The processing and analysis of the bioinformatics literature and bibliographic data, such as literature search and query. - true - - - - - - - - - - Data mining - - beta12orEarlier - Text data mining - The analysis of the biomedical and informatics literature. - Literature analysis - Text mining - Literature mining - - - - - - - - - - - Data deposition, annotation and curation - - Deposition and curation of database accessions, including annotation, typically with terms from a controlled vocabulary. - Database curation - beta12orEarlier - - - - - - - - - - - Document, record and content management - - Document management - File management - This includes editing, reformatting, conversion, transformation, validation, debugging, indexing and so on. - Content management - The management and manipulation of digital documents, including database records, files and reports. - VT 1.3.6 Multimedia, hypermedia - Record management - beta12orEarlier - - - - - - - - - - Sequence annotation - - beta12orEarlier - beta12orEarlier - true - Annotation of a molecular sequence. - - - - - - - - - - Genome annotation - - Annotation of a genome. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - - NMR - - - ROESY - NOESY - Nuclear Overhauser Effect Spectroscopy - An analytical technique that exploits the magenetic properties of certain atomic nuclei to provide information on the structure, dynamics, reaction state and chemical environment of molecules. - HOESY - beta12orEarlier - Heteronuclear Overhauser Effect Spectroscopy - Nuclear magnetic resonance spectroscopy - Spectroscopy - NMR spectroscopy - Rotational Frame Nuclear Overhauser Effect Spectroscopy - - - - - - - - - - - Sequence classification - - beta12orEarlier - The classification of molecular sequences based on some measure of their similarity. - Methods including sequence motifs, profile and other diagnostic elements which (typically) represent conserved patterns (of residues or properties) in molecular sequences. - - - - - - - - - - Protein classification - - 1.3 - true - beta12orEarlier - primarily the classification of proteins (from sequence or structural data) into clusters, groups, families etc. - - - - - - - - - - Sequence motif or profile - - beta12orEarlier - true - Sequence motifs, or sequence profiles derived from an alignment of molecular sequences of a particular type. - This includes comparison, discovery, recognition etc. of sequence motifs. - beta12orEarlier - - - - - - - - - - - Protein modifications - - GO:0006464 - Protein chemical modifications, e.g. post-translational modifications. - Protein post-translational modification - MOD:00000 - EDAM does not describe all possible protein modifications. For fine-grained annotation of protein modification use the Gene Ontology (children of concept GO:0006464) and/or the Protein Modifications ontology (children of concept MOD:00000) - beta12orEarlier - - - - - - - - - - Molecular interactions, pathways and networks - - Biological networks - Network or pathway analysis - beta13 - Molecular interactions - Biological models - Molecular interactions, biological pathways, networks and other models. - Biological pathways - http://edamontology.org/topic_3076 - - - - - - - - - - - Informatics - - The study and practice of information processing and use of computer information systems. - VT 1.3.99 Other - Knowledge management - VT 1.3.4 Information management - beta12orEarlier - Information management - VT 1.3.5 Knowledge management - VT 1.3.3 Information retrieval - VT 1.3 Information sciences - Information science - - - - - - - - - Literature data resources - - Data resources for the biological or biomedical literature, either a primary source of literature or some derivative. - true - 1.3 - beta12orEarlier - - - - - - - - - - Laboratory information management - - Laboratory management and resources, for example, catalogues of biological resources for use in the lab including cell lines, viruses, plasmids, phages, DNA probes and primers and so on. - beta12orEarlier - Laboratory resources - - - - - - - - - - - - Cell and tissue culture - - Tissue culture - 1.3 - true - General cell culture or data on a specific cell lines. - Cell culture - beta12orEarlier - - - - - - - - - - Ecology - - The ecological and environmental sciences and especially the application of information technology (ecoinformatics). - http://purl.bioontology.org/ontology/MSH/D004777 - Ecological informatics - VT 1.5.15 Ecology - Computational ecology - beta12orEarlier - Ecoinformatics - Environmental science - - - - - - - - - - - Electron microscopy - - - SEM - Scanning electron microscopy - TEM - The study of matter by studying the interference pattern from firing electrons at a sample, to analyse structures at resolutions higher than can be achieved using light. - - Transmission electron microscopy - beta12orEarlier - Electron crystallography - Electron diffraction experiment - Single particle electron microscopy - - - - - - - - - - - Cell cycle - - beta13 - beta12orEarlier - true - The cell cycle including key genes and proteins. - - - - - - - - - - Peptides and amino acids - - beta12orEarlier - The physicochemical, biochemical or structural properties of amino acids or peptides. - Amino acids - Peptides - - - - - - - - - - Organelles - - Cell membrane - Cytoplasm - Organelle genes and proteins - Smooth endoplasmic reticulum - beta12orEarlier - Lysosome - Centriole - Ribosome - Nucleus - true - A specific organelle, or organelles in general, typically the genes and proteins (or genome and proteome). - Mitochondria - Golgi apparatus - Rough endoplasmic reticulum - 1.3 - - - - - - - - - - Ribosomes - - beta12orEarlier - Ribosomes, typically of ribosome-related genes and proteins. - Ribosome genes and proteins - 1.3 - true - - - - - - - - - - Scents - - A database about scents. - beta12orEarlier - beta13 - true - - - - - - - - - - Drugs and target structures - - - Drug structures - beta12orEarlier - The structures of drugs, drug target, their interactions and binding affinities. - Target structures - - - - - - - - - - - Model organisms - - This may include information on the genome (including molecular sequences and map, genes and annotation), proteome, as well as more general information about an organism. - beta12orEarlier - A specific organism, or group of organisms, used to study a particular aspect of biology. - Organisms - - - - - - - - - - - Genomics - - http://purl.bioontology.org/ontology/MSH/D023281 - beta12orEarlier - Whole genomes of one or more organisms, or genomes in general, such as meta-information on genomes, genome projects, gene names etc. - - - - - - - - - - - Gene families - - Particular gene(s), gene family or other gene group or system and their encoded proteins. - beta12orEarlier - Gene family - Gene system - Genes, gene family or system - Gene and protein families - - - - - - - - - - - Chromosomes - - beta12orEarlier - Study of chromosomes. - - - - - - - - - - Genotype and phenotype - - Genotype and phenotype resources - The study of genetic constitution of a living entity, such as an individual, and organism, a cell and so on, typically with respect to a particular observable phenotypic traits, or resources concerning such traits, which might be an aspect of biochemistry, physiology, morphology, anatomy, development and so on. - Genotyping - Phenotyping - beta12orEarlier - - - - - - - - - - - Gene expression and microarray - - true - beta12orEarlier - beta12orEarlier - Gene expression e.g. microarray data, northern blots, gene-indexed expression profiles etc. - - - - - - - - - - - Sequence design - - Probes - This includes the design of primers for PCR and DNA amplification or the design of molecular probes. - http://purl.bioontology.org/ontology/MSH/D015335 - Gene design - Molecular probes (e.g. a peptide probe or DNA microarray probe) or primers (e.g. for PCR). - Probe design - in silico cloning - Primer design - Primers - beta12orEarlier - - - - - - - - - - Pathology - - Diseases, including diseases in general and the genes, gene variations and proteins involved in one or more specific diseases. - beta12orEarlier - Diseases - VT 3.1.6 Pathology - - - - - - - - - - - Specific protein resources - - 1.3 - A particular protein, protein family or other group of proteins. - true - Specific protein - beta12orEarlier - - - - - - - - - - Taxonomy - - beta12orEarlier - VT 1.5.25 Taxonomy - Organism classification, identification and naming. - - - - - - - - - - Protein sequence analysis - - beta12orEarlier - Archival, processing and analysis of protein sequences and sequence-based entities such as alignments, motifs and profiles. - 1.8 - true - - - - - - - - - - Nucleic acid sequence analysis - - beta12orEarlier - 1.8 - true - The archival, processing and analysis of nucleotide sequences and and sequence-based entities such as alignments, motifs and profiles. - - - - - - - - - - - Repeat sequences - - true - The repetitive nature of molecular sequences. - beta12orEarlier - 1.3 - - - - - - - - - - Low complexity sequences - - true - The (character) complexity of molecular sequences, particularly regions of low complexity. - 1.3 - beta12orEarlier - - - - - - - - - - Proteome - - A specific proteome including protein sequences and annotation. - beta12orEarlier - beta13 - true - - - - - - - - - - DNA - - DNA analysis - beta12orEarlier - DNA sequences and structure, including processes such as methylation and replication. - The DNA sequences might be coding or non-coding sequences. - - - - - - - - - - Coding RNA - - EST - cDNA - mRNA - This includes expressed sequence tag (EST) or complementary DNA (cDNA) sequences. - Protein-coding regions including coding sequences (CDS), exons, translation initiation sites and open reading frames - beta12orEarlier - - - - - - - - - - Functional, regulatory and non-coding RNA - - - ncRNA - Non-coding RNA - Functional RNA - Non-coding or functional RNA sequences, including regulatory RNA sequences, ribosomal RNA (rRNA) and transfer RNA (tRNA). - Regulatory RNA - Non-coding RNA includes piwi-interacting RNA (piRNA), small nuclear RNA (snRNA) and small nucleolar RNA (snoRNA). Regulatory RNA includes microRNA (miRNA) - short single stranded RNA molecules that regulate gene expression, and small interfering RNA (siRNA). - beta12orEarlier - - - - - - - - - - rRNA - - 1.3 - One or more ribosomal RNA (rRNA) sequences. - true - - - - - - - - - - tRNA - - 1.3 - true - One or more transfer RNA (tRNA) sequences. - - - - - - - - - - Protein secondary structure - - true - beta12orEarlier - 1.8 - Protein secondary structure or secondary structure alignments. - This includes assignment, analysis, comparison, prediction, rendering etc. of secondary structure data. - - - - - - - - - - RNA structure - - 1.3 - RNA secondary or tertiary structure and alignments. - beta12orEarlier - true - - - - - - - - - - Protein tertiary structure - - 1.8 - true - Protein tertiary structures. - beta12orEarlier - - - - - - - - - - Nucleic acid classification - - Classification of nucleic acid sequences and structures. - 1.3 - true - beta12orEarlier - - - - - - - - - - Protein families - - beta12orEarlier - Protein sequence classification - Protein secondary databases - A protein families database might include the classifier (e.g. a sequence profile) used to build the classification. - Primarily the classification of proteins (from sequence or structural data) into clusters, groups, families etc., curation of a particular protein or protein family, or any other proteins that have been classified as members of a common group. - - - - - - - - - - - Protein domains and folds - - beta12orEarlier - Protein folds - Protein tertiary structural domains and folds. - Protein domains - - - - - - - - - - Nucleic acid sequence alignment - - beta12orEarlier - true - 1.3 - Nucleotide sequence alignments. - - - - - - - - - - Protein sequence alignment - - 1.3 - Protein sequence alignments. - beta12orEarlier - true - A sequence profile typically represents a sequence alignment. - - - - - - - - - - Nucleic acid sites and features - - beta12orEarlier - 1.3 - true - The archival, detection, prediction and analysis of -positional features such as functional sites in nucleotide sequences. - - - - - - - - - - - Protein sites and features - - beta12orEarlier - The detection, identification and analysis of positional features in proteins, such as functional sites. - 1.3 - true - - - - - - - - - - - Transcription factors and regulatory sites - - - - Transcription factor proteins either promote (as an activator) or block (as a repressor) the binding to DNA of RNA polymerase. Regulatory sites including transcription factor binding site as well as promoters, enhancers, silencers and boundary elements / insulators. - Proteins that bind to DNA and control transcription of DNA to mRNA (transcription factors) and also transcriptional regulatory sites, elements and regions (such as promoters, enhancers, silencers and boundary elements / insulators) in nucleotide sequences. - Transcriptional regulatory sites - TFBS - Transcription factors - beta12orEarlier - Transcription factor binding sites - - - - - - - - - - Phosphorylation sites - - 1.0 - Protein phosphorylation and phosphorylation sites in protein sequences. - true - beta12orEarlier - - - - - - - - - - - Metabolic pathways - - beta12orEarlier - Metabolic pathways. - - - - - - - - - - Signaling pathways - - Signaling pathways. - Signal transduction pathways - beta12orEarlier - - - - - - - - - - Protein and peptide identification - - 1.3 - beta12orEarlier - true - - - - - - - - - - Workflows - - Biological or biomedical analytical workflows or pipelines. - beta12orEarlier - true - 1.0 - - - - - - - - - Data types and objects - - Structuring data into basic types and (computational) objects. - beta12orEarlier - 1.0 - true - - - - - - - - - - Theoretical biology - - 1.3 - true - - - - - - - - - - Mitochondria - - beta12orEarlier - true - Mitochondria, typically of mitochondrial genes and proteins. - 1.3 - - - - - - - - - - Plants - - The resource may be specific to a plant, a group of plants or all plants. - Plant science - Plants, e.g. information on a specific plant genome including molecular sequences, genes and annotation. - Plant biology - Botany - VT 1.5.22 Plant science - Plant - VT 1.5.10 Botany - beta12orEarlier - - - - - - - - - - Viruses - - Virology - VT 1.5.28 Virology - beta12orEarlier - Viruses, e.g. sequence and structural data, interactions of viral proteins, or a viral genome including molecular sequences, genes and annotation. - The resource may be specific to a virus, a group of viruses or all viruses. - - - - - - - - - - Fungi - - Mycology - beta12orEarlier - The resource may be specific to a fungus, a group of fungi or all fungi. - Yeast - VT 1.5.21 Mycology - Fungi and molds, e.g. information on a specific fungal genome including molecular sequences, genes and annotation. - - - - - - - - - - Pathogens - - Pathogens, e.g. information on a specific vertebrate genome including molecular sequences, genes and annotation. - beta12orEarlier - The resource may be specific to a pathogen, a group of pathogens or all pathogens. - - - - - - - - - - Arabidopsis - - beta12orEarlier - Arabidopsis-specific data. - 1.3 - true - - - - - - - - - - Rice - - Rice-specific data. - true - 1.3 - beta12orEarlier - - - - - - - - - - Genetic mapping and linkage - - Linkage mapping - beta12orEarlier - 1.3 - true - Genetic linkage - Informatics resources that aim to identify, map or analyse genetic markers in DNA sequences, for example to produce a genetic (linkage) map of a chromosome or genome or to analyse genetic linkage and synteny. - - - - - - - - - - Comparative genomics - - The study (typically comparison) of the sequence, structure or function of multiple genomes. - beta12orEarlier - - - - - - - - - - - Mobile genetic elements - - - Transposons - beta12orEarlier - Mobile genetic elements, such as transposons, Plasmids, Bacteriophage elements and Group II introns. - - - - - - - - - - Human disease - - Human diseases, typically describing the genes, mutations and proteins implicated in disease. - beta13 - true - beta12orEarlier - - - - - - - - - - Immunology - - VT 3.1.3 Immunology - Immunoinformatics - http://purl.bioontology.org/ontology/MSH/D007120 - http://purl.bioontology.org/ontology/MSH/D007125 - beta12orEarlier - Computational immunology - The application of information technology to immunology such as immunological processes, immunological genes, proteins and peptide ligands, antigens and so on. - - - - - - - - - - - Membrane and lipoproteins - - Lipoproteins (protein-lipid assemblies), and proteins or region of a protein that spans or are associated with a membrane. - beta12orEarlier - Membrane proteins - Lipoproteins - Transmembrane proteins - - - - - - - - - - Enzymes - - Proteins that catalyze chemical reaction, the kinetics of enzyme-catalysed reactions, enzyme nomenclature etc. - beta12orEarlier - Enzymology - - - - - - - - - - Primers - - PCR primers and hybridization oligos in a nucleic acid sequence. - Nucleic acid features (primers) - beta12orEarlier - Primer binding sites - - - - - - - - - - - PolyA signal or sites - - beta12orEarlier - Nucleic acid features (PolyA signal or site) - PolyA signal - A polyA signal is required for endonuclease cleavage of an RNA transcript that is followed by polyadenylation. A polyA site is a site on an RNA transcript to which adenine residues will be added during post-transcriptional polyadenylation. - PolyA site - Regions or sites in a eukaryotic and eukaryotic viral RNA sequence which directs endonuclease cleavage or polyadenylation of an RNA transcript. - - - - - - - - - - - CpG island and isochores - - beta12orEarlier - Nucleic acid features (CpG island and isochore) - CpG rich regions (isochores) in a nucleotide sequence. - - - - - - - - - - - Restriction sites - - Restriction enzyme recognition sites (restriction sites) in a nucleic acid sequence. - Nucleic acid features (restriction sites) - beta12orEarlier - Nucleic acid restriction sites (report) - - - - - - - - - - - Splice sites - - - Nucleic acid features (splice sites) - Nucleic acid report (RNA splicing) - beta12orEarlier - Splice sites in a nucleotide sequence or alternative RNA splicing events. - Nucleic acid report (RNA splice model) - - - - - - - - - - - Matrix/scaffold attachment sites - - Nucleic acid features (matrix/scaffold attachment sites) - beta12orEarlier - Matrix/scaffold attachment regions (MARs/SARs) in a DNA sequence. - - - - - - - - - - - Operon - - Gene features (operon) - beta12orEarlier - Nucleic acid features (operon) - The report for a query sequence or gene might include the predicted operon leader and trailer gene, gene composition of the operon and associated information, as well as information on the query. - Operons (operators, promoters and genes) from a bacterial genome. - - - - - - - - - - - Promoters - - Whole promoters or promoter elements (transcription start sites, RNA polymerase binding site, transcription factor binding sites, promoter enhancers etc) in a DNA sequence. - beta12orEarlier - Nucleic acid features (promoters) - - - - - - - - - - - Structural biology - - Structural assignment - Structure determination - This includes experimental methods for biomolecular structure determination, such as X-ray crystallography, nuclear magnetic resonance (NMR), circular dichroism (CD) spectroscopy, microscopy etc., including the assignment or modelling of molecular structure from such data. - 1.3 - This includes Informatics concerning data generated from the use of microscopes, including optical, electron and scanning probe microscopy. Includes methods for digitizing microscope images and viewing the produced virtual slides and associated data on a computer screen. - The molecular structure of biological molecules, particularly macromolecules such as proteins and nucleic acids. - VT 1.5.24 Structural biology - Structural determination - - - - - - - - - - - Protein membrane regions - - - 1.8 - Protein features (membrane regions) - This might include the location and size of the membrane spanning segments and intervening loop regions, transmembrane region IN/OUT orientation relative to the membrane, plus the following data for each amino acid: A Z-coordinate (the distance to the membrane center), the free energy of membrane insertion (calculated in a sliding window over the sequence) and a reliability score. The z-coordinate implies information about re-entrant helices, interfacial helices, the tilt of a transmembrane helix and loop lengths. - Intramembrane regions - Trans- or intra-membrane regions of a protein, typically describing physicochemical properties of the secondary structure elements. - Protein transmembrane regions - Transmembrane regions - - - - - - - - - - - Structure comparison - - This might involve comparison of secondary or tertiary (3D) structural information. - The comparison of two or more molecular structures, for example structure alignment and clustering. - beta12orEarlier - - - - - - - - - - - Function analysis - - Protein function prediction - The study of gene and protein function including the prediction of functional properties of a protein. - Protein function analysis - beta12orEarlier - - - - - - - - - - - Prokaryotes and archae - - The resource may be specific to a prokaryote, a group of prokaryotes or all prokaryotes. - VT 1.5.2 Bacteriology - Bacteriology - beta12orEarlier - Specific bacteria or archaea, e.g. information on a specific prokaryote genome including molecular sequences, genes and annotation. - - - - - - - - - - Protein databases - - true - 1.3 - Protein data resources. - beta12orEarlier - Protein data resources - - - - - - - - - - Structure determination - - Experimental methods for biomolecular structure determination, such as X-ray crystallography, nuclear magnetic resonance (NMR), circular dichroism (CD) spectroscopy, microscopy etc., including the assignment or modelling of molecular structure from such data. - beta12orEarlier - true - 1.3 - - - - - - - - - - Cell biology - - beta12orEarlier - VT 1.5.11 Cell biology - Cells, such as key genes and proteins involved in the cell cycle. - - - - - - - - - - Classification - - beta13 - beta12orEarlier - Topic focused on identifying, grouping, or naming things in a structured way according to some schema based on observable relationships. - true - - - - - - - - - - Lipoproteins - - true - 1.3 - beta12orEarlier - Lipoproteins (protein-lipid assemblies). - - - - - - - - - - Phylogeny visualisation - - true - Visualise a phylogeny, for example, render a phylogenetic tree. - beta12orEarlier - beta12orEarlier - - - - - - - - - - Cheminformatics - - The application of information technology to chemistry in biological research environment. - Chemical informatics - beta12orEarlier - Chemoinformatics - - - - - - - - - - - Systems biology - - http://en.wikipedia.org/wiki/Systems_biology - This includes databases of models and methods to construct or analyse a model. - Biological models - http://purl.bioontology.org/ontology/MSH/D049490 - beta12orEarlier - Biological modelling - Biological system modelling - The holistic modelling and analysis of complex biological systems and the interactions therein. - - - - - - - - - - - Statistics and probability - - Biostatistics - The application of statistical methods to biological problems. - http://en.wikipedia.org/wiki/Biostatistics - beta12orEarlier - http://purl.bioontology.org/ontology/MSH/D056808 - - - - - - - - - - - Structure database search - - The query is a structure-based entity such as another structure, a 3D (structural) motif, 3D profile or template. - beta12orEarlier - Search for and retrieve molecular structures that are similar to a structure-based query (typically another structure or part of a structure). - beta12orEarlier - true - - - - - - - - - - Molecular modelling - - Homology modeling - Comparative modeling - Comparative modelling - beta12orEarlier - Homology modelling - Molecular modeling - The construction, analysis, evaluation, refinement etc. of models of a molecules properties or behaviour. - - - - - - - - - - Protein function prediction - - 1.2 - beta12orEarlier - true - The prediction of functional properties of a protein. - - - - - - - - - - SNP - - Single nucleotide polymorphisms (SNP) and associated data, for example, the discovery and annotation of SNPs. - beta12orEarlier - Single nucleotide polymorphism - A SNP is a DNA sequence variation where a single nucleotide differs between members of a species or paired chromosomes in an individual. - - - - - - - - - - Transmembrane protein prediction - - Predict transmembrane domains and topology in protein sequences. - beta12orEarlier - beta12orEarlier - true - - - - - - - - - - - Nucleic acid structure comparison - - The comparison two or more nucleic acid (typically RNA) secondary or tertiary structures. - beta12orEarlier - true - beta12orEarlier - Use this concept for methods that are exclusively for nucleic acid structures. - - - - - - - - - - - Exons - - Gene features (exon) - beta12orEarlier - Exons in a nucleotide sequences. - - - - - - - - - - - Gene transcription features - - GC signals (report) - CAAT signals (report) - -35 signals (report) - Gene transcriptional features - This includes promoters, CAAT signals, TATA signals, -35 signals, -10 signals, GC signals, primer binding sites for initiation of transcription or reverse transcription, enhancer, attenuator, terminators and ribosome binding sites. - Enhancers (report) - Terminators (report) - Transcription of DNA into RNA including the regulation of transcription. - Ribosome binding sites (report) - -10 signals (report) - beta12orEarlier - TATA signals (report) - Attenuators (report) - - - - - - - - - - - DNA mutation - - - Mutation annotation - beta12orEarlier - DNA mutation. - Nucleic acid features (mutation) - - - - - - - - - - - Oncology - - beta12orEarlier - VT 3.2.16 Oncology - Cancer - The study of cancer, for example, genes and proteins implicated in cancer. - Cancer biology - - - - - - - - - - - Toxins and targets - - - Toxins - Targets - beta12orEarlier - Structural and associated data for toxic chemical substances. - - - - - - - - - - - Introns - - Gene features (intron) - Nucleic acid features (intron) - Introns in a nucleotide sequences. - beta12orEarlier - - - - - - - - - - - Tool topic - - beta12orEarlier - A topic concerning primarily bioinformatics software tools, typically the broad function or purpose of a tool. - true - beta12orEarlier - - - - - - - - - - Study topic - - A general area of bioinformatics study, typically the broad scope or category of content of a bioinformatics journal or conference proceeding. - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - Nomenclature - - true - 1.3 - beta12orEarlier - Biological nomenclature (naming), symbols and terminology. - - - - - - - - - - Disease genes and proteins - - 1.3 - true - beta12orEarlier - The genes, gene variations and proteins involved in one or more specific diseases. - - - - - - - - - - Protein structure analysis - - Protein structure - Protein secondary or tertiary structural data and/or associated annotation. - http://edamontology.org/topic_3040 - beta12orEarlier - - - - - - - - - - - Humans - - beta12orEarlier - true - The human genome, including molecular sequences, genes, annotation, maps and viewers, the human proteome or human beings in general. - - - - - - - - - - Gene resources - - Gene resource - beta12orEarlier - 1.3 - Informatics resource (typically a database) primarily focussed on genes. - Gene database - true - - - - - - - - - - Yeast - - beta12orEarlier - Yeast, e.g. information on a specific yeast genome including molecular sequences, genes and annotation. - true - 1.3 - - - - - - - - - - Eukaryotes - - Eukaryote - Eukaryotes or data concerning eukaryotes, e.g. information on a specific eukaryote genome including molecular sequences, genes and annotation. - The resource may be specific to a eukaryote, a group of eukaryotes or all eukaryotes. - beta12orEarlier - - - - - - - - - - Invertebrates - - The resource may be specific to an invertebrate, a group of invertebrates or all invertebrates. - beta12orEarlier - Invertebrates, e.g. information on a specific invertebrate genome including molecular sequences, genes and annotation. - - - - - - - - - - Vertebrates - - The resource may be specific to a vertebrate, a group of vertebrates or all vertebrates. - Vertebrates, e.g. information on a specific vertebrate genome including molecular sequences, genes and annotation. - beta12orEarlier - - - - - - - - - - Unicellular eukaryotes - - Unicellular eukaryotes, e.g. information on a unicellular eukaryote genome including molecular sequences, genes and annotation. - beta12orEarlier - The resource may be specific to a unicellular eukaryote, a group of unicellular eukaryotes or all unicellular eukaryotes. - - - - - - - - - - Protein structure alignment - - Protein secondary or tertiary structure alignments. - beta12orEarlier - true - 1.3 - - - - - - - - - - X-ray diffraction - - - The study of matter and their structure by means of the diffraction of X-rays, typically the diffraction pattern caused by the regularly spaced atoms of a crystalline sample. - beta12orEarlier - X-ray microscopy - Crystallography - X-ray crystallography - - - - - - - - - - - Ontologies, nomenclature and classification - - true - Conceptualisation, categorisation and naming of entities or phenomena within biology or bioinformatics. - 1.3 - http://purl.bioontology.org/ontology/MSH/D002965 - beta12orEarlier - - - - - - - - - - Immunoproteins, genes and antigens - - - Immunopeptides - Immunity-related genes, proteins and their ligands. - Antigens - This includes T cell receptors (TR), major histocompatibility complex (MHC), immunoglobulin superfamily (IgSF) / antibodies, major histocompatibility complex superfamily (MhcSF), etc." - beta12orEarlier - Immunoproteins - Immunogenes - - - - - - - - - - - Molecules - - CHEBI:23367 - beta12orEarlier - beta12orEarlier - Specific molecules, including large molecules built from repeating subunits (macromolecules) and small molecules of biological significance. - true - - - - - - - - - - Toxicology - - - Toxins and the adverse effects of these chemical substances on living organisms. - VT 3.1.9 Toxicology - Toxicoinformatics - Toxicology - beta12orEarlier - Computational toxicology - - - - - - - - - - - High-throughput sequencing - - Next-generation sequencing - beta13 - true - beta12orEarlier - Parallelized sequencing processes that are capable of sequencing many thousands of sequences simultaneously. - - - - - - - - - - Structural clustering - - The comparison and grouping together of molecular structures on the basis of similarity; generate, process or analyse structural clusters. - 1.7 - Structure classification - true - beta12orEarlier - - - - - - - - - - Gene regulatory networks - - - Gene regulatory networks. - beta12orEarlier - - - - - - - - - - Disease (specific) - - Informatics resources dedicated to one or more specific diseases (not diseases in general). - beta12orEarlier - true - beta12orEarlier - - - - - - - - - - VNTR - - Nucleic acid features (VNTR) - Variable number of tandem repeat polymorphism - Variable number of tandem repeat (VNTR) polymorphism in a DNA sequence. - beta12orEarlier - VNTR annotation - VNTRs occur in non-coding regions of DNA and consists sub-sequence that is repeated a multiple (and varied) number of times. - - - - - - - - - - - Microsatellites - - beta12orEarlier - Nucleic acid features (microsatellite) - A microsatellite polymorphism is a very short subsequence that is repeated a variable number of times between individuals. These repeats consist of the nucleotides cytosine and adenosine. - Microsatellite annotation - Microsatellite polymorphism in a DNA sequence. - - - - - - - - - - - RFLP - - Restriction fragment length polymorphisms (RFLP) in a DNA sequence. - An RFLP is defined by the presence or absence of a specific restriction site of a bacterial restriction enzyme. - RFLP annotation - beta12orEarlier - Nucleic acid features (RFLP) - - - - - - - - - - - DNA polymorphism - - - Nucleic acid features (polymorphism) - DNA polymorphism. - Polymorphism annotation - beta12orEarlier - - - - - - - - - - - Nucleic acid design - - Topic for the design of nucleic acid sequences with specific conformations. - 1.3 - beta12orEarlier - true - - - - - - - - - - Primer or probe design - - 1.3 - true - beta13 - The design of primers for PCR and DNA amplification or the design of molecular probes. - - - - - - - - - - Structure databases - - beta13 - true - 1.2 - Structure data resources - Molecular secondary or tertiary (3D) structural data resources, typically of proteins and nucleic acids. - - - - - - - - - - Nucleic acid structure - - true - beta13 - Nucleic acid (secondary or tertiary) structure, such as whole structures, structural features and associated annotation. - 1.2 - - - - - - - - - - Sequence databases - - Molecular sequence data resources, including sequence sites, alignments, motifs and profiles. - true - beta13 - Sequence data resources - Sequence data - Sequence data resource - 1.3 - - - - - - - - - - Nucleic acid sequences - - Nucleotide sequences and associated concepts such as sequence sites, alignments, motifs and profiles. - beta13 - 1.3 - true - Nucleotide sequences - - - - - - - - - - Protein sequences - - Protein sequences and associated concepts such as sequence sites, alignments, motifs and profiles. - beta13 - 1.3 - true - - - - - - - - - - Protein interaction networks - - 1.3 - true - - - - - - - - - - Molecular biology - - VT 1.5.4 Biochemistry and molecular biology - beta13 - The molecular basis of biological activity, particularly the macromolecules (e.g. proteins and nucleic acids) that are essential to life. - - - - - - - - - - - Mammals - - true - beta13 - 1.3 - Mammals, e.g. information on a specific mammal genome including molecular sequences, genes and annotation. - - - - - - - - - - Biodiversity - - The degree of variation of life forms within a given ecosystem, biome or an entire planet. - beta13 - VT 1.5.5 Biodiversity conservation - http://purl.bioontology.org/ontology/MSH/D044822 - - - - - - - - - - - Sequence clusters and classification - - This includes the results of sequence clustering, ortholog identification, assignment to families, annotation etc. - The comparison, grouping together and classification of macromolecules on the basis of sequence similarity. - Sequence families - 1.3 - true - Sequence clusters - beta13 - - - - - - - - - - Genetics - - http://purl.bioontology.org/ontology/MSH/D005823 - The study of genes, genetic variation and heredity in living organisms. - beta13 - Heredity - - - - - - - - - - - Quantitative genetics - - beta13 - The genes and genetic mechanisms such as Mendelian inheritance that underly continuous phenotypic traits (such as height or weight). - - - - - - - - - - Population genetics - - The distribution of allele frequencies in a population of organisms and its change subject to evolutionary processes including natural selection, genetic drift, mutation and gene flow. - beta13 - - - - - - - - - - - Regulatory RNA - - 1.3 - Regulatory RNA sequences including microRNA (miRNA) and small interfering RNA (siRNA). - true - beta13 - - - - - - - - - - Documentation and help - - The documentation of resources such as tools, services and databases and how to get help. - Help - beta13 - Documentation - - - - - - - - - - - Genetic organisation - - The structural and functional organisation of genes and other genetic elements. - 1.3 - beta13 - true - - - - - - - - - - Medical informatics - - Health informatics - Clinical informatics - Biomedical informatics - Translational medicine - The application of information technology to health, disease and biomedicine. - Healthcare informatics - beta13 - Health and disease - Molecular medicine - - - - - - - - - - - Developmental biology - - VT 1.5.14 Developmental biology - beta13 - How organisms grow and develop. - - - - - - - - - - - Embryology - - beta13 - The development of organisms between the one-cell stage (typically the zygote) and the end of the embryonic stage. - - - - - - - - - - - Anatomy - - VT 3.1.1 Anatomy and morphology - beta13 - The form and function of the structures of living organisms. - - - - - - - - - - - Literature and reference - - Literature search - beta13 - The scientific literature, reference information and documentation. - Literature sources - http://purl.bioontology.org/ontology/MSH/D011642 - - - - - - - - - - - Biology - - VT 1.5.8 Biology - beta13 - VT 1.5 Biological sciences - VT 1.5.23 Reproductive biology - Cryobiology - Biological rhythms - A particular biological science, especially observable traits such as aspects of biochemistry, physiology, morphology, anatomy, development and so on. - VT 1.5.7 Biological rhythm - Biological science - Aerobiology - VT 1.5.99 Other - Chronobiology - VT 1.5.13 Cryobiology - - VT 1.5.1 Aerobiology - VT 1.5.3 Behavioural biology - Reproductive biology - Behavioural biology - - - - - - - - - - - Data management - - The development and use of architectures, policies, practices and procedures for management of data. - beta13 - Data handling - http://purl.bioontology.org/ontology/MSH/D030541 - VT 1.3.1 Data management - - - - - - - - - - - Sequence feature detection - - 1.3 - true - beta13 - The detection of the positional features, such as functional and other key sites, in molecular sequences. - http://purl.bioontology.org/ontology/MSH/D058977 - - - - - - - - - - Nucleic acid feature detection - - The detection of positional features such as functional sites in nucleotide sequences. - true - beta13 - 1.3 - - - - - - - - - - Protein feature detection - - The detection, identification and analysis of positional protein sequence features, such as functional sites. - beta13 - 1.3 - true - - - - - - - - - - Biological system modelling - - 1.2 - true - beta13 - Topic for modelling biological systems in mathematical terms. - - - - - - - - - - Data acquisition - - The acquisition of data, typically measurements of physical systems using any type of sampling system, or by another other means. - beta13 - - - - - - - - - - Genes and proteins resources - - 1.3 - Gene family - beta13 - Gene and protein families - Specific genes and/or their encoded proteins or a family or other grouping of related genes and proteins. - true - - - - - - - - - - Protein topological domains - - - Topological domains such as cytoplasmic regions in a protein. - Protein features (topological domains) - 1.8 - - - - - - - - - - - Protein variants - - protein sequence variants produced e.g. from alternative splicing, alternative promoter usage, alternative initiation and ribosomal frameshifting. - beta13 - - - - - - - - - - - Expression signals - - - beta13 - Nucleic acid features (expression signal) - Regions within a nucleic acid sequence containing a signal that alters a biological function. - - - - - - - - - - - DNA binding sites - - - This includes ribosome binding sites (Shine-Dalgarno sequence in prokaryotes). - beta13 - Nucleic acid features (binding) - Nucleic acids binding to some other molecule. - - - - - - - - - - - Nucleic acid repeats - - beta13 - This includes long terminal repeats (LTRs); sequences (typically retroviral) directly repeated at both ends of a defined sequence and other types of repeating unit. - Repetitive elements within a nucleic acid sequence. - - - - - - - - - - - DNA replication and recombination - - DNA replication or recombination. - This includes binding sites for initiation of replication (origin of replication), regions where transfer is initiated during the conjugation or mobilization (origin of transfer), starting sites for DNA duplication (origin of replication) and regions which are eliminated through any of kind of recombination. - Nucleosome exclusion sequences - Nucleic acid features (replication and recombination) - beta13 - - - - - - - - - - - Signal or transit peptide - - beta13 - Nucleic acid features (signal or transit peptide) - A signal peptide coding sequence encodes an N-terminal domain of a secreted protein, which is involved in attaching the polypeptide to a membrane leader sequence. A transit peptide coding sequence encodes an N-terminal domain of a nuclear-encoded organellar protein; which is involved in import of the protein into the organelle. - Coding sequences for a signal or transit peptide. - - - - - - - - - - - Sequence tagged sites - - Nucleic acid features (STS) - beta13 - Sequence tagged sites are short DNA sequences that are unique within a genome and serve as a mapping landmark, detectable by PCR they allow a genome to be mapped via an ordering of STSs. - Sequence tagged sites (STS) in nucleic acid sequences. - - - - - - - - - - - Sequencing - - http://purl.bioontology.org/ontology/MSH/D059014 - 1.1 - NGS - Next generation sequencing - The determination of complete (typically nucleotide) sequences, including those of genomes (full genome sequencing, de novo sequencing and resequencing), amplicons and transcriptomes. - Next gen sequencing - - - - - - - - - - - ChIP-seq - - true - 1.3 - Chip sequencing - Chip seq - 1.1 - The analysis of protein-DNA interactions where chromatin immunoprecipitation (ChIP) is used in combination with massively parallel DNA sequencing to identify the binding sites of DNA-associated proteins. - Chip-sequencing - - - - - - - - - - RNA-Seq - - Small RNA-seq - Whole transcriptome shotgun sequencing - RNA-seq - 1.1 - 1.3 - A topic concerning high-throughput sequencing of cDNA to measure the RNA content (transcriptome) of a sample, for example, to investigate how different alleles of a gene are expressed, detect post-transcriptional mutations or identify gene fusions. - Small RNA-Seq - WTSS - This includes small RNA profiling (small RNA-Seq), for example to find novel small RNAs, characterize mutations and analyze expression of small RNAs. - true - - - - - - - - - - DNA methylation - - true - DNA methylation including bisulfite sequencing, methylation sites and analysis, for example of patterns and profiles of DNA methylation in a population, tissue etc. - 1.3 - http://purl.bioontology.org/ontology/MSH/D019175 - 1.1 - - - - - - - - - - Metabolomics - - The systematic study of metabolites, the chemical processes they are involved, and the chemical fingerprints of specific cellular processes in a whole cell, tissue, organ or organism. - http://purl.bioontology.org/ontology/MSH/D055432 - 1.1 - - - - - - - - - - - Epigenomics - - - Epigenetics concerns the heritable changes in gene expression owing to mechanisms other than DNA sequence variation. - 1.1 - http://purl.bioontology.org/ontology/MSH/D057890 - The study of the epigenetic modifications of a whole cell, tissue, organism etc. - - - - - - - - - - - Metagenomics - - - http://purl.bioontology.org/ontology/MSH/D056186 - Ecogenomics - Community genomics - Environmental genomics - 1.1 - The study of genetic material recovered from environmental samples, and associated environmental data. - - - - - - - - - - - Structural variation - - - 1.1 - Variation in chromosome structure including microscopic and submicroscopic types of variation such as deletions, duplications, copy-number variants, insertions, inversions and translocations. - Genomic structural variation - - - - - - - - - - DNA packaging - - beta12orEarlier - DNA-histone complexes (chromatin), organisation of chromatin into nucleosomes and packaging into higher-order structures. - http://purl.bioontology.org/ontology/MSH/D042003 - - - - - - - - - - DNA-Seq - - 1.1 - A topic concerning high-throughput sequencing of randomly fragmented genomic DNA, for example, to investigate whole-genome sequencing and resequencing, SNP discovery, identification of copy number variations and chromosomal rearrangements. - 1.3 - DNA-seq - true - - - - - - - - - - RNA-Seq alignment - - true - 1.3 - RNA-seq alignment - The alignment of sequences of (typically millions) of short reads to a reference genome. This is a specialised topic within sequence alignment, especially because of complications arising from RNA splicing. - beta12orEarlier - - - - - - - - - - ChIP-on-chip - - true - 1.3 - 1.1 - Experimental techniques that combine chromatin immunoprecipitation ('ChIP') with microarray ('chip'). ChIP-on-chip is used for high-throughput study protein-DNA interactions. - ChIP-chip - - - - - - - - - - Data security - - 1.3 - Data privacy - The protection of data, such as patient health data, from damage or unwanted access from unauthorized users. - - - - - - - - - - Sample collections - - samples - biobanking - 1.3 - biosamples - Biological samples and specimens. - Specimen collections - - - - - - - - - - - Biochemistry - - - VT 1.5.4 Biochemistry and molecular biology - Chemical biology - 1.3 - Biological chemistry - Chemical substances and physico-chemical processes and that occur within living organisms. - - - - - - - - - - - Phylogenetics - - - The study of evolutionary relationships amongst organisms from analysis of genetic information (typically gene or protein sequences). - 1.3 - http://purl.bioontology.org/ontology/MSH/D010802 - - - - - - - - - - Epigenetics - - Topic concerning the study of heritable changes, for example in gene expression or phenotype, caused by mechanisms other than changes in the DNA sequence. - DNA methylation - This includes sub-topics such as histone modification and DNA methylation. - http://purl.bioontology.org/ontology/MSH/D019175 - Histone modification - 1.3 - - - - - - - - - - - Biotechnology - - 1.3 - The exploitation of biological process, structure and function for industrial purposes, for example the genetic manipulation of microorganisms for the antibody production. - - - - - - - - - - - Phenomics - - - Phenomes, or the study of the change in phenotype (the physical and biochemical traits of organisms) in response to genetic and environmental factors. - 1.3 - - - - - - - - - - - Evolutionary biology - - VT 1.5.16 Evolutionary biology - 1.3 - The evolutionary processes, from the genetic to environmental scale, that produced life in all its diversity. - - - - - - - - - - - Physiology - - The functions of living organisms and their constituent parts. - 1.3 - VT 3.1.8 Physiology - - - - - - - - - - - Microbiology - - The biology of microorganisms. - 1.3 - VT 1.5.20 Microbiology - - - - - - - - - - - Parasitology - - 1.3 - The biology of parasites. - - - - - - - - - - - Medicine - - General medicine - Research in support of healing by diagnosis, treatment, and prevention of disease. - 1.3 - VT 3.1 Basic medicine - VT 3.2.9 General and internal medicine - Experimental medicine - Biomedical research - Clinical medicine - VT 3.2 Clinical medicine - Internal medicine - - - - - - - - - - - Neurobiology - - Neuroscience - 1.3 - The study of the nervous system and brain; its anatomy, physiology and function. - VT 3.1.5 Neuroscience - - - - - - - - - - - Public health and epidemiology - - VT 3.3.1 Epidemiology - Topic concerning the the patterns, cause, and effect of disease within populations. - 1.3 - Public health - Epidemiology - - - - - - - - - - - Biophysics - - - 1.3 - VT 1.5.9 Biophysics - The use of physics to study biological system. - - - - - - - - - - - Computational biology - - - VT 1.5.19 Mathematical biology - VT 1.5.12 Computational biology - This includes the modeling and treatment of biological processes and systems in mathematical terms (theoretical biology). - Mathematical biology - VT 1.5.26 Theoretical biology - Theoretical biology - 1.3 - The development and application of theory, analytical methods, mathematical models and computational simulation of biological systems. - Biomathematics - - - - - - - - - - - Transcriptomics - - - The analysis of transcriptomes, or a set of all the RNA molecules in a specific cell, tissue etc. - Transcriptome - 1.3 - - - - - - - - - - - Chemistry - - VT 1.7.10 Polymer science - VT 1.7.7 Mathematical chemistry - VT 1.7.3 Colloid chemistry - 1.3 - Mathematical chemistry - Physical chemistry - VT 1.7.9 Physical chemistry - Polymer science - Chemical science - Organic chemistry - VT 1.7.6 Inorganic and nuclear chemistry - VT 1.7 Chemical sciences - VT 1.7.5 Electrochemistry - Inorganic chemistry - VT 1.7.2 Chemistry - Nuclear chemistry - VT 1.7.8 Organic chemistry - The composition and properties of matter, reactions, and the use of reactions to create new substances. - - - - - - - - - - - Mathematics - - The study of numbers (quantity) and other topics including structure, space, and change. - VT:1.1 Mathematics - Maths - VT 1.1.99 Other - 1.3 - - - - - - - - - - - Computer science - - 1.3 - VT 1.2 Computer sciences - VT 1.2.99 Other - The theory and practical use of computer systems. - - - - - - - - - - - Physics - - The study of matter, space and time, and related concepts such as energy and force. - 1.3 - - - - - - - - - - - RNA splicing - - - RNA splicing; post-transcription RNA modification involving the removal of introns and joining of exons. - This includes the study of splice sites, splicing patterns, splice alternatives or variants, isoforms, etc. - 1.3 - - - - - - - - - - Molecular genetics - - 1.3 - The structure and function of genes at a molecular level. - - - - - - - - - - - Respiratory medicine - - VT 3.2.25 Respiratory systems - Pulmonology - The study of respiratory system. - Pulmonary medicine - Respiratory disease - 1.3 - Pulmonary disorders - - - - - - - - - - - Metabolic disease - - The study of metabolic diseases. - 1.4 - 1.3 - true - - - - - - - - - - Infectious disease - - Transmissable disease - VT 3.3.4 Infectious diseases - Communicable disease - The branch of medicine that deals with the prevention, diagnosis and management of transmissable disease with clinically evident illness resulting from infection with pathogenic biological agents (viruses, bacteria, fungi, protozoa, parasites and prions). - 1.3 - - - - - - - - - - - Rare diseases - - 1.3 - The study of rare diseases. - - - - - - - - - - - Computational chemistry - - - 1.3 - VT 1.7.4 Computational chemistry - Topic concerning the development and application of theory, analytical methods, mathematical models and computational simulation of chemical systems. - - - - - - - - - - - Neurology - - Neurological disorders - 1.3 - The branch of medicine that deals with the anatomy, functions and disorders of the nervous system. - - - - - - - - - - - Cardiology - - Cardiovascular disease - VT 3.2.4 Cardiac and Cardiovascular systems - 1.3 - Cardiovascular medicine - Heart disease - VT 3.2.22 Peripheral vascular disease - The diseases and abnormalities of the heart and circulatory system. - - - - - - - - - - - Drug discovery - - - The discovery and design of drugs or potential drug compounds. - This includes methods that search compound collections, generate or analyse drug 3D conformations, identify drug targets with structural docking etc. - 1.3 - - - - - - - - - - - Biobank - - biobanking - 1.3 - Repositories of biological samples, typically human, for basic biological and clinical research. - Tissue collection - - - - - - - - - - - Mouse clinic - - 1.3 - Laboratory study of mice, for example, phenotyping, and mutagenesis of mouse cell lines. - - - - - - - - - - - Microbial collection - - Collections of microbial cells including bacteria, yeasts and moulds. - 1.3 - - - - - - - - - - - Cell culture collection - - 1.3 - Collections of cells grown under laboratory conditions, specifically, cells from multi-cellular eukaryotes and especially animal cells. - - - - - - - - - - - Clone library - - 1.3 - Collections of DNA, including both collections of cloned molecules, and populations of micro-organisms that store and propagate cloned DNA. - - - - - - - - - - - Translational medicine - - 'translating' the output of basic and biomedical research into better diagnostic tools, medicines, medical procedures, policies and advice. - 1.3 - - - - - - - - - - - Compound libraries and screening - - Translational medicine - Chemical library - Collections of chemicals, typically for use in high-throughput screening experiments. - Compound library - Chemical screening - 1.3 - - - - - - - - - - - Biomedical science - - - Topic concerning biological science that is (typically) performed in the context of medicine. - VT 3.3 Health sciences - Health science - 1.3 - - - - - - - - - - - Data identity and mapping - - Topic concerning the identity of biological entities, or reports on such entities, and the mapping of entities and records in different databases. - 1.3 - - - - - - - - - - - Sequence search - - 1.3 - Sequence database search - The search and retrieval from a database on the basis of molecular sequence similarity. - - - - - - - - - - Biomarkers - - Diagnostic markers - 1.4 - Objective indicators of biological state often used to assess health, and determinate treatment. - - - - - - - - - - Laboratory techniques - - The procedures used to conduct an experiment. - Lab techniques - 1.4 - - - - - - - - - - - Data architecture, analysis and design - - The development of policies, models and standards that cover data acquisitioin, storage and integration, such that it can be put to use, typically through a process of systematically applying statistical and / or logical techniques to describe, illustrate, summarise or evaluate data. - Data analysis - Data design - 1.4 - Data architecture - - - - - - - - - - - Data integration and warehousing - - The combination and integration of data from different sources, for example into a central repository or warehouse, to provide users with a unified view of these data. - - - Data integration - 1.4 - Data warehousing - - - - - - - - - - - Biomaterials - - Any matter, surface or construct that interacts with a biological system. - Diagnostic markers - 1.4 - - - - - - - - - - - Chemical biology - - - 1.4 - The use of synthetic chemistry to study and manipulate biological systems. - - - - - - - - - - - Analytical chemistry - - 1.4 - The study of the separation, identification, and quantification of the chemical components of natural and artificial materials. - VT 1.7.1 Analytical chemistry - - - - - - - - - - - Synthetic chemistry - - Synthetic organic chemistry - The use of chemistry to create new compounds. - 1.4 - - - - - - - - - - - Software engineering - - VT 1.2.1 Algorithms - Programming languages - VT 1.2.7 Data structures - Software development - Software engineering - Computer programming - 1.4 - 1.2.12 Programming languages - The process that leads from an original formulation of a computing problem to executable programs. - Data structures - Algorithms - VT 1.2.14 Software engineering - - - - - - - - - - - Drug development - - 1.4 - Medicine development - The process of bringing a new drug to market once a lead compounds has been identified through drug discovery. - Drug development science - Medicines development - - - - - - - - - - - Drug formulation and delivery - - The process of formulating abd administering a pharmaceutical compound to achieve a therapeutic effect. - Drug delivery - Drug formulation - 1.4 - - - - - - - - - - - Pharmacokinetics and pharmacodynamics - - Pharmacodynamics - Pharmacokinetics - Drug distribution - 1.4 - Drug excretion - The study of how a drug interacts with the body. - Drug absorption - ADME - Drug metabolism - Drug metabolism - - - - - - - - - - - Medicines research and development - Medicine research and development - - The discovery, development and approval of medicines. - Health care research - Drug discovery and development - 1.4 - Health care science - - - - - - - - - - - Safety sciences - - 1.4 - Drug safety - The safety (or lack) of drugs and other medical interventions. - - - - - - - - - - - Pharmacovigilence - - 1.4 - Pharmacovigilence concerns safety once a drug has gone to market. - The detection, assesment, understanding and prevention of adverse effects of medicines. - - - - - - - - - - - Preclinical and clinical studies - - The testing of new medicines, vaccines or procedures on animals (preclinical) and humans (clinical) prior to their approval by regulatory authorities. - Preclinical studies - 1.4 - Clinical studies - - - - - - - - - - - Imaging - - This includes diffraction experiments that are based upon the interference of waves, typically electromagnetic waves such as X-rays or visible light, by some object being studied, typical in order to produce an image of the object or determine its structure. - Microscopy imaging - 1.4 - Microscopy - Diffraction experiment - The visual representation of an object. - - - - - - - - - - - Biological imaging - - The use of imaging techniques to understand biology. - 1.4 - - - - - - - - - - - Medical imaging - - VT 3.2.24 Radiology - The use of imaging techniques for clinical purposes for medical research. - 1.4 - Radiology - VT 3.2.14 Nuclear medicine - Nuclear medicine - VT 3.2.13 Medical imaging - - - - - - - - - - - Light microscopy - - The use of optical instruments to magnify the image of an object. - 1.4 - - - - - - - - - - - Laboratory animal science - - 1.4 - The use of animals and alternatives in experimental research. - - - - - - - - - - - Marine biology - - 1.4 - VT 1.5.18 Marine and Freshwater biology - The study of organisms in the ocean or brackish waters. - - - - - - - - - - - Molecular medicine - - The identification of molecular and genetic causes of disease and the development of interventions to correct them. - 1.4 - - - - - - - - - - - Nutritional science - - 1.4 - VT 3.3.7 Nutrition and Dietetics - Dietetics - The study of the effects of food components on the metabolism, health, performance and disease resistance of humans and animals. It also includes the study of human behaviours related to food choices. - Nutrition science - - - - - - - - - - - Omics - - The collective characterisation and quantification of pools of biological molecules that translate into the structure, function, and dynamics of an organism or organisms. - 1.4 - - - - - - - - - - - Quality affairs - - The processes that need to be in place to ensure the quality of products for human or animal use. - Good clinical practice - Good manufacturing practice - Quality assurance - Good laboratory practice - 1.4 - - - - - - - - - - - Regulatory affairs - - The protection of public health by controlling the safety and efficacy of products in areas including pharmaceuticals, veterinary medicine, medical devices, pesticides, agrochemicals, cosmetics, and complementary medicines. - 1.4 - - - - - - - - - - - Regnerative medicine - - Stem cell research - Biomedical approaches to clinical interventions that involve the use of stem cells. - 1.4 - - - - - - - - - - - Systems medicine - - 1.4 - An interdisciplinary field of study that looks at the dynamic systems of the human body as part of an integrted whole, incoporating biochemical, physiological, and environmental interactions that sustain life. - - - - - - - - - - - Veterinary medicine - - 1.4 - Topic concerning the branch of medicine that deals with the prevention, diagnosis, and treatment of disease, disorder and injury in animals. - - - - - - - - - - - Bioengineering - - 1.4 - The application of biological concepts and methods to the analytical and synthetic methodologies of engineering. - Diagnostic markers - - - - - - - - - - - Geriatric medicine - - The branch of medicine dealing with the diagnosis, treatment and prevention of disease in older people, and the problems specific to aging. - VT 3.2.10 Geriatrics and gerontology - Ageing - Aging - Gerontology - 1.4 - Geriatrics - - - - - - - - - - - Allergy, clinical immunology and immunotherapeutics. - - VT 3.2.1 Allergy - Health issues related to the immune system and their prevention, diagnosis and mangement. - 1.4 - Immune disorders - Clinical immunology - Immunomodulators - Allergy - Immunotherapeutics - - - - - - - - - - - Pain medicine - - Ageing - 1.4 - Algiatry - The prevention of pain and the evaluation, treatment and rehabilitation of persons in pain. - - - - - - - - - - - Anaesthesiology - - Anaesthetics - Anaesthesia and anaesthetics. - 1.4 - VT 3.2.2 Anaesthesiology - - - - - - - - - - - Critical care medicine - - Acute medicine - Geriatrics - VT 3.2.5 Critical care/Emergency medicine - Emergency medicine - 1.4 - The multidisciplinary that cares for patients with acute, life-threatening illness or injury. - - - - - - - - - - - Dermatology - - The branch of medicine that deals with prevention, diagnosis and treatment of disorders of the skin, scalp, hair and nails. - Dermatological disorders - 1.4 - VT 3.2.7 Dermatology and venereal diseases - - - - - - - - - - - Dentistry - - 1.4 - The study, diagnosis, prevention and treatments of disorders of the oral cavity, maxillofacial area and adjacent structures. - - - - - - - - - - - Ear, nose and throat medicine - - Otolaryngology - 1.4 - The branch of medicine that deals with the prevention, diagnosis, and treatment of disorders of the ear, nose and throat. - Otorhinolaryngology - Head and neck disorders - VT 3.2.20 Otorhinolaryngology - Audiovestibular medicine - - - - - - - - - - - Endocrinology and metabolism - - 1.4 - Metabolic disorders - Metabolism - Endocrinology - The branch of medicine dealing with diseases of endocrine organs, hormone systems, their target organs, and disorders of the pathways of glucose and lipid metabolism. - Endocrine disorders - - - - - - - - - - - Haematology - - VT 3.2.11 Hematology - The branch of medicine that deals with the blood, blood-forming organs and blood diseases. - Haematological disorders - 1.4 - Blood disorders - - - - - - - - - - - Gastroenterology - - The branch of medicine that deals with disorders of the oesophagus, stomach, duodenum, jejenum, ileum, large intestine, sigmoid colon and rectum. - Gastrointestinal disorders - VT 3.2.8 Gastroenterology and hepatology - 1.4 - - - - - - - - - - - Gender medicine - - The study of the biological and physiological differences between males and females and how they effect differences in disease presentation and management. - 1.4 - - - - - - - - - - - Gynaecology and obstetrics - - VT 3.2.15 Obstetrics and gynaecology - 1.4 - Gynaecology - The branch of medicine that deals with the health of the female reproductive system, pregnancy and birth. - Gynaecological disorders - Obstetrics - - - - - - - - - - - Hepatic and biliary medicine - - Hepatobiliary medicine - Liver disorders - 1.4 - The branch of medicine that deals with the liver, gallbladder, bile ducts and bile. - - - - - - - - - - - Infectious tropical disease - - The branch of medicine that deals with the infectious diseases of the tropics. - 1.4 - - - - - - - - - - - Trauma medicine - - 1.4 - The branch of medicine that treats body wounds or shock produced by sudden physical injury, as from violence or accident. - - - - - - - - - - - Medical toxicology - - The branch of medicine that deals with the diagnosis, management and prevention of poisoning and other adverse health effects caused by medications, occupational and environmental toxins, and biological agents. - 1.4 - - - - - - - - - - - Musculoskeletal medicine - - The branch of medicine that deals with the prevention, diagnosis, and treatment of disorders of the muscle, bone and connective tissue. It incorporates aspects of orthopaedics, rheumatology, rehabilitation medicine and pain medicine. - VT 3.2.26 Rheumatology - VT 3.2.19 Orthopaedics - Musculoskeletal disorders - Orthopaedics - Rheumatology - 1.4 - - - - - - - - - - - Opthalmology - - Eye disoders - VT 3.2.18 Optometry - 1.4 - Optometry - VT 3.2.17 Ophthalmology - Audiovestibular medicine - The branch of medicine that deals with disorders of the eye, including eyelid, optic nerve/visual pathways and occular muscles. - - - - - - - - - - - Paediatrics - - 1.4 - The branch of medicine that deals with the medical care of infants, children and adolescents. - VT 3.2.21 Paediatrics - Child health - - - - - - - - - - - Psychiatry - - The branch of medicine that deals with the mangement of mental illness, emotional disturbance and abnormal behaviour. - 1.4 - Psychiatric disorders - VT 3.2.23 Psychiatry - Mental health - - - - - - - - - - - Reproductive health - - Reproductive disorders - Audiovestibular medicine - VT 3.2.3 Andrology - Andrology - 1.4 - Family planning - The health of the reproductive processes, functions and systems at all stages of life. - Fertility medicine - - - - - - - - - - - Surgery - - Transplantation - VT 3.2.28 Transplantation - The use of operative, manual and instrumental techniques on a patient to investigate and/or treat a pathological condition or help improve bodily function or appearance. - 1.4 - - - - - - - - - - - Urology and nephrology - - The branches of medicine and physiology focussing on the function and disorders of the urinary system in males and females, the reproductive system in males, and the kidney. - VT 3.2.29 Urology and nephrology - 1.4 - Urology - Kidney disease - Urological disorders - Nephrology - - - - - - - - - - - Complementary medicine - - Medical therapies that fall beyond the scope of conventional medicine but may be used alongside it in the treatment of disease and ill health. - VT 3.2.12 Integrative and Complementary medicine - Holistic medicine - 1.4 - Alternative medicine - Integrative medicine - - - - - - - - - - - MRI - - Nuclear magnetic resonance imaging - 1.7 - MRT - Magnetic resonance tomography - Techniques that uses magnetic fields and radiowaves to form images, typically to investigate the anatomy and physiology of the human body. - NMRI - Magnetic resonance imaging - - - - - - - - - - - Neutron diffraction - - - The study of matter by studying the diffraction pattern from firing neutrons at a sample, typically to determine atomic and/or magnetic structure. - Neutron microscopy - Elastic neutron scattering - 1.7 - Neutron diffraction experiment - - - - - - - - - - Tomography - - X-ray tomography - Imaging in sections (sectioning), through the use of a wave-generating device (tomograph) that generates an image (a tomogram). - Electron tomography - 1.7 - - - - - - - - - - Data mining - - 1.7 - VT 1.3.2 Data mining - The discovery of patterns in large data sets and the extraction and trasnsformation of those patterns into a useful format. - KDD - Knowledge discovery in databases - - - - - - - - - - Machine learning - - A topic concerning the application of artificial intelligence methods to algorithms, in order to create methods that can learn from data in order to generate an ouput, rather than relying on explicitly encoded information only. - Artificial Intelligence - 1.7 - VT 1.2.2 Artificial Intelligence (expert systems, machine learning, robotics) - - - - - - - - - - Database management - - 1.8 - Data maintenance - Databases - Database administration - The general handling of data stored in digital archives such as databanks, databases proper, web portals and other data resources. - - This includes databases for the results of scientific experiments, the application of high-throughput technology, computational analysis and the scientific literature. - Biological databases - - - - - - - - - - Animals - - 1.8 - Animal biology - Animals, e.g. information on a specific animal genome including molecular sequences, genes and annotation. - Zoology - Animal - VT 1.5.29 Zoology - The resource may be specific to a plant, a group of plants or all plants. - Metazoa - - - - - - - - - - Protein sites, features and motifs - - Protein sequence features - Protein functional sites - 1.8 - The biology, archival, detection, prediction and analysis of positional features such as functional and other key sites, in protein sequences and the conserved patterns (motifs, profiles etc.) that may be used to describe them. - - - - - - - - - - Nucleic acid sites, features and motifs - - Nucleic acid sequence features - 1.8 - Nucleic acid functional sites - The biology, archival, detection, prediction and analysis of positional features such as functional and other key sites, in nucleic acid sequences and the conserved patterns (motifs, profiles etc.) that may be used to describe them. - - - - - - - - - - Gene transcript features - - - Nucleic acid features (mRNA features) - Features of a messenger RNA (mRNA) molecules including precursor RNA, primary (unprocessed) transcript and fully processed molecules. - mRNA features - This includes 5'untranslated region (5'UTR), coding sequences (CDS), exons, intervening sequences (intron) and 3'untranslated regions (3'UTR). - 1.8 - - - - - - - - - - Protein-ligand interactions - - 1.8 - Protein-ligand (small molecule) interaction(s). - - - - - - - - - - Protein-drug interactions - - 1.8 - Protein-drug interaction(s). - - - - - - - - - - Genotyping experiment - - 1.8 - Genotype experiment including case control, population, and family studies. These might use array based methods and re-sequencing methods. - - - - - - - - - - GWAS study - - 1.8 - Genome-wide association study experiments. - Genome-wide association study - - - - - - - - - - Microarray experiment - - 1.8 - This might specify which raw data file relates to which sample and information on hybridisations, e.g. which are technical and which are biological replicates. - Microarray experiments including conditions, protocol, sample:data relationships etc. - - - - - - - - - - PCR experiment - - 1.8 - PCR experiments, e.g. quantitative real-time PCR. - - - - - - - - - - Proteomics experiment - - Proteomics experiments. - 1.8 - - - - - - - - - - 2D PAGE experiment - - Two-dimensional gel electrophoresis experiments, gels or spots in a gel. - 1.8 - - - - - - - - - - Northern blot experiment - - Northern Blot experiments. - 1.8 - - - - - - - - - - RNAi experiment - - 1.8 - RNAi experiments. - - - - - - - - - - Simulation experiment - - 1.8 - Biological computational model experiments (simulation), for example the minimum information required in order to permit its correct interpretation and reproduction. - - - - - - - - - - Protein-nucleic acid interactions - - 1.8 - Protein-DNA/RNA interaction(s). - - - - - - - - - - Protein-protein interactions - - Domain-domain interactions - Protein-protein interaction(s), including interactions between protein domains. - 1.8 - Protein interaction networks - - - - - - - - - - Cellular process pathways - - 1.8 - Cellular process pathways. - - - - - - - - - - Disease pathways - - Disease pathways, typically of human disease. - Pathway or network (disease) - 1.8 - - - - - - - - - - Environmental information processing pathways - - Environmental information processing pathways. - 1.8 - Pathway or network (environmental information processing) - - - - - - - - - - Genetic information processing pathways - - Pathway or network (genetic information processing) - 1.8 - Genetic information processing pathways. - - - - - - - - - - Protein super-secondary structure - - Super-secondary structure of protein sequence(s). - Protein features (super-secondary) - 1.8 - Super-secondary structures include leucine zippers, coiled coils, Helix-Turn-Helix etc. - - - - - - - - - - Protein active sites - - Enzyme active site - 1.8 - Protein features (active sites) - Catalytic residues (active site) of an enzyme. - - - - - - - - - - Protein binding sites - - Ligand-binding (non-catalytic) residues of a protein, such as sites that bind metal, prosthetic groups or lipids. - 1.8 - Protein features (binding sites) - - - - - - - - - - Protein-nucleic acid binding sites - - RNA and DNA-binding proteins and binding sites in protein sequences. - 1.8 - Protein features (nucleic acid binding sites) - - - - - - - - - - Protein cleavage sites - - Cleavage sites (for a proteolytic enzyme or agent) in a protein sequence. - Protein features (cleavage sites) - 1.8 - - - - - - - - - - Protein chemical modifications - - Chemical modification of a protein. - Protein features (chemical modifications) - MOD:00000 - 1.8 - GO:0006464 - - - - - - - - - - Protein disordered structure - - Disordered structure in a protein. - 1.8 - Protein features (disordered structure) - - - - - - - - - - Protein domains - - - The report will typically include a graphic of the location of domains in a sequence, with associated data such as lists of related sequences, literature references, etc. - Structural domains or 3D folds in a protein or polypeptide chain. - 1.8 - Protein structural domains - Protein features (domains) - - - - - - - - - - Protein key folding sites - - - Protein features (key folding sites) - 1.8 - Key residues involved in protein folding. - - - - - - - - - - Protein post-translational modifications - - Protein features (post-translation modifications) - Post-translation modifications - Post-translation modifications in a protein sequence, typically describing the specific sites involved. - 1.8 - - - - - - - - - - Protein secondary structure - - - The location and size of the secondary structure elements and intervening loop regions is typically given. The report can include disulphide bonds and post-translationally formed peptide bonds (crosslinks). - Secondary structure (predicted or real) of a protein. - Protein features (secondary structure) - 1.8 - - - - - - - - - - Protein sequence repeats - - 1.8 - Protein features (repeats) - Short repetitive subsequences (repeat sequences) in a protein sequence. - Protein repeats - - - - - - - - - - Protein signal peptides - - Protein features (signal peptides) - Signal peptides or signal peptide cleavage sites in protein sequences. - 1.8 - - - - - - - - - - Applied mathematics - - VT 1.1.1 Applied mathematics - The application of mathematics to specific problems in science, typically by the formulation and analysis of mathematical models. - 1.10 - - - - - - - - - - Pure mathematics - - VT 1.1.1 Pure mathematics - The study of abstract mathematical concepts. - 1.10 - - - - - - - - - - Data governance - - Data handling - http://purl.bioontology.org/ontology/MSH/D030541 - The control of data entry and maintenance to ensure the data meets defined standards, qualities or constraints. - 1.10 - Data stewardship - - - - - - - - - - Data quality management - - http://purl.bioontology.org/ontology/MSH/D030541 - 1.10 - Data quality - Data integrity - Data clean-up - Data enrichment - The quality, integrity, cleaning up and enrichment of data. - - - - - - - - - - Freshwater biology - - 1.10 - VT 1.5.18 Marine and Freshwater biology - The study of organisms in freshwater ecosystems. - - - - - - - - - - - Human genetics - - The study of inheritatnce in human beings. - VT 3.1.2 Human genetics - 1.10 - - - - - - - - - - - Tropical medicine - - 1.10 - Health problems that are prevalent in tropical and subtropical regions. - VT 3.3.14 Tropical medicine - - - - - - - - - - - Medical biotechnology - - 1.10 - VT 3.4.1 Biomedical devices - VT 3.4.2 Health-related biotechnology - VT 3.4 Medical biotechnology - VT 3.3.14 Tropical medicine - Pharmaceutical biotechnology - Biotechnology applied to the medical sciences and the development of medicines. - - - - - - - - - - - Personalized medicine - - 1.10 - Health problems that are prevalent in tropical and subtropical regions. - Molecular diagnostics - VT 3.4.5 Molecular diagnostics - - - - - - - - - - - Obsolete concept (EDAM) - - - 1.2 - Needed for conversion to the OBO format. - An obsolete concept (redefined in EDAM). - true - - - - - - - - - - - - - diff --git a/salad/schema_salad/tests/Process.yml b/salad/schema_salad/tests/Process.yml deleted file mode 100644 index 79b4dcf6..00000000 --- a/salad/schema_salad/tests/Process.yml +++ /dev/null @@ -1,36 +0,0 @@ -$base: "https://w3id.org/cwl/cwl#" - -$namespaces: - cwl: "https://w3id.org/cwl/cwl#" - sld: "https://w3id.org/cwl/salad#" - -$graph: - -- $import: "../metaschema/metaschema_base.yml" - -- name: InputBinding - type: record - abstract: true - fields: - - name: loadContents - type: - - "null" - - boolean - jsonldPredicate: "cwl:loadContents" - doc: | - Only valid when `type: File` or is an array of `items: File`. - - Read up to the first 64 KiB of text from the file and place it in the - "contents" field of the file object for use by expressions. - -- name: InputRecordField - type: record - extends: "sld:RecordField" - fields: - - name: inputBinding - type: [ "null", "#InputBinding" ] - jsonldPredicate: "cwl:inputBinding" - -- name: Blurb - type: record - extends: InputBinding diff --git a/salad/schema_salad/tests/cwl-pre.yml b/salad/schema_salad/tests/cwl-pre.yml deleted file mode 100644 index 41e37660..00000000 --- a/salad/schema_salad/tests/cwl-pre.yml +++ /dev/null @@ -1,2354 +0,0 @@ -[ - { - "name": "https://w3id.org/cwl/cwl#Common Workflow Language, v1.0", - "type": "documentation", - "doc": "\n" - }, - { - "name": "https://w3id.org/cwl/salad#PrimitiveType", - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/salad#null", - "http://www.w3.org/2001/XMLSchema#boolean", - "http://www.w3.org/2001/XMLSchema#int", - "http://www.w3.org/2001/XMLSchema#long", - "http://www.w3.org/2001/XMLSchema#float", - "http://www.w3.org/2001/XMLSchema#double", - "http://www.w3.org/2001/XMLSchema#string" - ], - "doc": [ - "Salad data types are based on Avro schema declarations. Refer to the\n[Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for\ndetailed information.\n", - "null: no value", - "boolean: a binary value", - "int: 32-bit signed integer", - "long: 64-bit signed integer", - "float: single precision (32-bit) IEEE 754 floating-point number", - "double: double precision (64-bit) IEEE 754 floating-point number", - "string: Unicode character sequence" - ] - }, - { - "name": "https://w3id.org/cwl/salad#Any", - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/salad#Any" - ], - "doc": "The **Any** type validates for any non-null value.\n" - }, - { - "name": "https://w3id.org/cwl/salad#RecordField", - "type": "record", - "doc": "A field of a record.", - "fields": [ - { - "name": "https://w3id.org/cwl/salad#RecordField/name", - "type": "string", - "jsonldPredicate": "@id", - "doc": "The name of the field\n" - }, - { - "name": "https://w3id.org/cwl/salad#RecordField/doc", - "type": [ - "null", - "string" - ], - "doc": "A documentation string for this field\n", - "jsonldPredicate": "rdfs:comment" - }, - { - "name": "https://w3id.org/cwl/salad#RecordField/type", - "type": [ - "PrimitiveType", - "RecordSchema", - "EnumSchema", - "ArraySchema", - "string", - { - "type": "array", - "items": [ - "PrimitiveType", - "RecordSchema", - "EnumSchema", - "ArraySchema", - "string" - ] - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "typeDSL": true, - "refScope": 2 - }, - "doc": "The field type\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/salad#RecordSchema", - "type": "record", - "fields": [ - { - "type": [ - "null", - { - "type": "array", - "items": "RecordField" - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#fields", - "mapSubject": "name", - "mapPredicate": "type" - }, - "doc": "Defines the fields of the record.", - "name": "https://w3id.org/cwl/salad#RecordSchema/fields" - }, - { - "doc": "Must be `record`", - "type": { - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/salad#record" - ] - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "typeDSL": true, - "refScope": 2 - }, - "name": "https://w3id.org/cwl/salad#RecordSchema/type" - } - ] - }, - { - "name": "https://w3id.org/cwl/salad#EnumSchema", - "type": "record", - "doc": "Define an enumerated type.\n", - "fields": [ - { - "type": { - "type": "array", - "items": "string" - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#symbols", - "_type": "@id", - "identity": true - }, - "doc": "Defines the set of valid symbols.", - "name": "https://w3id.org/cwl/salad#EnumSchema/symbols" - }, - { - "doc": "Must be `enum`", - "type": { - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/salad#enum" - ] - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "typeDSL": true, - "refScope": 2 - }, - "name": "https://w3id.org/cwl/salad#EnumSchema/type" - } - ] - }, - { - "name": "https://w3id.org/cwl/salad#ArraySchema", - "type": "record", - "fields": [ - { - "type": [ - "PrimitiveType", - "RecordSchema", - "EnumSchema", - "ArraySchema", - "string", - { - "type": "array", - "items": [ - "PrimitiveType", - "RecordSchema", - "EnumSchema", - "ArraySchema", - "string" - ] - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#items", - "_type": "@vocab", - "refScope": 2 - }, - "doc": "Defines the type of the array elements.", - "name": "https://w3id.org/cwl/salad#ArraySchema/items" - }, - { - "doc": "Must be `array`", - "type": { - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/salad#array" - ] - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "typeDSL": true, - "refScope": 2 - }, - "name": "https://w3id.org/cwl/salad#ArraySchema/type" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#BaseTypesDoc", - "type": "documentation", - "doc": "## Base types\n", - "docChild": [ - "https://w3id.org/cwl/cwl#CWLType", - "https://w3id.org/cwl/cwl#Process" - ] - }, - { - "type": "enum", - "name": "https://w3id.org/cwl/cwl#CWLVersion", - "doc": "Version symbols for published CWL document versions.", - "symbols": [ - "https://w3id.org/cwl/cwl#draft-2", - "https://w3id.org/cwl/cwl#draft-3.dev1", - "https://w3id.org/cwl/cwl#draft-3.dev2", - "https://w3id.org/cwl/cwl#draft-3.dev3", - "https://w3id.org/cwl/cwl#draft-3.dev4", - "https://w3id.org/cwl/cwl#draft-3.dev5", - "https://w3id.org/cwl/cwl#draft-3", - "https://w3id.org/cwl/cwl#draft-4.dev1", - "https://w3id.org/cwl/cwl#draft-4.dev2", - "https://w3id.org/cwl/cwl#draft-4.dev3", - "https://w3id.org/cwl/cwl#v1.0.dev4", - "https://w3id.org/cwl/cwl#v1.0" - ] - }, - { - "name": "https://w3id.org/cwl/cwl#CWLType", - "type": "enum", - "extends": "https://w3id.org/cwl/salad#PrimitiveType", - "symbols": [ - "https://w3id.org/cwl/cwl#File", - "https://w3id.org/cwl/cwl#Directory" - ], - "doc": [ - "Extends primitive types with the concept of a file and directory as a builtin type.", - "File: A File object", - "Directory: A Directory object" - ] - }, - { - "name": "https://w3id.org/cwl/cwl#File", - "type": "record", - "docParent": "https://w3id.org/cwl/cwl#CWLType", - "doc": "Represents a file (or group of files if `secondaryFiles` is specified) that\nmust be accessible by tools using standard POSIX file system call API such as\nopen(2) and read(2).\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#File/class", - "type": { - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/cwl#File" - ] - }, - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - }, - "doc": "Must be `File` to indicate this object describes a file." - }, - { - "name": "https://w3id.org/cwl/cwl#File/location", - "type": [ - "null", - "string" - ], - "doc": "An IRI that identifies the file resource. This may be a relative\nreference, in which case it must be resolved using the base IRI of the\ndocument. The location may refer to a local or remote resource; the\nimplementation must use the IRI to retrieve file content. If an\nimplementation is unable to retrieve the file content stored at a\nremote resource (due to unsupported protocol, access denied, or other\nissue) it must signal an error.\n\nIf the `location` field is not provided, the `contents` field must be\nprovided. The implementation must assign a unique identifier for\nthe `location` field.\n\nIf the `path` field is provided but the `location` field is not, an\nimplementation may assign the value of the `path` field to `location`,\nthen follow the rules above.\n", - "jsonldPredicate": { - "_id": "@id", - "_type": "@id" - } - }, - { - "name": "https://w3id.org/cwl/cwl#File/path", - "type": [ - "null", - "string" - ], - "doc": "The local host path where the File is available when a CommandLineTool is\nexecuted. This field must be set by the implementation. The final\npath component must match the value of `basename`. This field\nmust not be used in any other context. The command line tool being\nexecuted must be able to to access the file at `path` using the POSIX\n`open(2)` syscall.\n\nAs a special case, if the `path` field is provided but the `location`\nfield is not, an implementation may assign the value of the `path`\nfield to `location`, and remove the `path` field.\n\nIf the `path` contains [POSIX shell metacharacters](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02)\n(`|`,`&`, `;`, `<`, `>`, `(`,`)`, `$`,`` ` ``, `\\`, `\"`, `'`,\n``, ``, and ``) or characters\n[not allowed](http://www.iana.org/assignments/idna-tables-6.3.0/idna-tables-6.3.0.xhtml)\nfor [Internationalized Domain Names for Applications](https://tools.ietf.org/html/rfc6452)\nthen implementations may terminate the process with a\n`permanentFailure`.\n", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#path", - "_type": "@id" - } - }, - { - "name": "https://w3id.org/cwl/cwl#File/basename", - "type": [ - "null", - "string" - ], - "doc": "The base name of the file, that is, the name of the file without any\nleading directory path. The base name must not contain a slash `/`.\n\nIf not provided, the implementation must set this field based on the\n`location` field by taking the final path component after parsing\n`location` as an IRI. If `basename` is provided, it is not required to\nmatch the value from `location`.\n\nWhen this file is made available to a CommandLineTool, it must be named\nwith `basename`, i.e. the final component of the `path` field must match\n`basename`.\n", - "jsonldPredicate": "cwl:basename" - }, - { - "name": "https://w3id.org/cwl/cwl#File/dirname", - "type": [ - "null", - "string" - ], - "doc": "The name of the directory containing file, that is, the path leading up\nto the final slash in the path such that `dirname + '/' + basename ==\npath`.\n\nThe implementation must set this field based on the value of `path`\nprior to evaluating parameter references or expressions in a\nCommandLineTool document. This field must not be used in any other\ncontext.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#File/nameroot", - "type": [ - "null", - "string" - ], - "doc": "The basename root such that `nameroot + nameext == basename`, and\n`nameext` is empty or begins with a period and contains at most one\nperiod. For the purposess of path splitting leading periods on the\nbasename are ignored; a basename of `.cshrc` will have a nameroot of\n`.cshrc`.\n\nThe implementation must set this field automatically based on the value\nof `basename` prior to evaluating parameter references or expressions.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#File/nameext", - "type": [ - "null", - "string" - ], - "doc": "The basename extension such that `nameroot + nameext == basename`, and\n`nameext` is empty or begins with a period and contains at most one\nperiod. Leading periods on the basename are ignored; a basename of\n`.cshrc` will have an empty `nameext`.\n\nThe implementation must set this field automatically based on the value\nof `basename` prior to evaluating parameter references or expressions.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#File/checksum", - "type": [ - "null", - "string" - ], - "doc": "Optional hash code for validating file integrity. Currently must be in the form\n\"sha1$ + hexadecimal string\" using the SHA-1 algorithm.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#File/size", - "type": [ - "null", - "long" - ], - "doc": "Optional file size" - }, - { - "name": "https://w3id.org/cwl/cwl#File/secondaryFiles", - "type": [ - "null", - { - "type": "array", - "items": [ - "https://w3id.org/cwl/cwl#File", - "https://w3id.org/cwl/cwl#Directory" - ] - } - ], - "jsonldPredicate": "cwl:secondaryFiles", - "doc": "A list of additional files that are associated with the primary file\nand must be transferred alongside the primary file. Examples include\nindexes of the primary file, or external references which must be\nincluded when loading primary document. A file object listed in\n`secondaryFiles` may itself include `secondaryFiles` for which the same\nrules apply.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#File/format", - "type": [ - "null", - "string" - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#format", - "_type": "@id", - "identity": true - }, - "doc": "The format of the file: this must be an IRI of a concept node that\nrepresents the file format, preferrably defined within an ontology.\nIf no ontology is available, file formats may be tested by exact match.\n\nReasoning about format compatability must be done by checking that an\ninput file format is the same, `owl:equivalentClass` or\n`rdfs:subClassOf` the format required by the input parameter.\n`owl:equivalentClass` is transitive with `rdfs:subClassOf`, e.g. if\n` owl:equivalentClass ` and ` owl:subclassOf ` then infer\n` owl:subclassOf `.\n\nFile format ontologies may be provided in the \"$schema\" metadata at the\nroot of the document. If no ontologies are specified in `$schema`, the\nruntime may perform exact file format matches.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#File/contents", - "type": [ - "null", - "string" - ], - "doc": "File contents literal. Maximum of 64 KiB.\n\nIf neither `location` nor `path` is provided, `contents` must be\nnon-null. The implementation must assign a unique identifier for the\n`location` field. When the file is staged as input to CommandLineTool,\nthe value of `contents` must be written to a file.\n\nIf `loadContents` of `inputBinding` or `outputBinding` is true and\n`location` is valid, the implementation must read up to the first 64\nKiB of text from the file and place it in the \"contents\" field.\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#Directory", - "type": "record", - "docAfter": "https://w3id.org/cwl/cwl#File", - "doc": "Represents a directory to present to a command line tool.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#Directory/class", - "type": { - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/cwl#Directory" - ] - }, - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - }, - "doc": "Must be `Directory` to indicate this object describes a Directory." - }, - { - "name": "https://w3id.org/cwl/cwl#Directory/location", - "type": [ - "null", - "string" - ], - "doc": "An IRI that identifies the directory resource. This may be a relative\nreference, in which case it must be resolved using the base IRI of the\ndocument. The location may refer to a local or remote resource. If\nthe `listing` field is not set, the implementation must use the\nlocation IRI to retrieve directory listing. If an implementation is\nunable to retrieve the directory listing stored at a remote resource (due to\nunsupported protocol, access denied, or other issue) it must signal an\nerror.\n\nIf the `location` field is not provided, the `listing` field must be\nprovided. The implementation must assign a unique identifier for\nthe `location` field.\n\nIf the `path` field is provided but the `location` field is not, an\nimplementation may assign the value of the `path` field to `location`,\nthen follow the rules above.\n", - "jsonldPredicate": { - "_id": "@id", - "_type": "@id" - } - }, - { - "name": "https://w3id.org/cwl/cwl#Directory/path", - "type": [ - "null", - "string" - ], - "doc": "The local path where the Directory is made available prior to executing a\nCommandLineTool. This must be set by the implementation. This field\nmust not be used in any other context. The command line tool being\nexecuted must be able to to access the directory at `path` using the POSIX\n`opendir(2)` syscall.\n\nIf the `path` contains [POSIX shell metacharacters](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02)\n(`|`,`&`, `;`, `<`, `>`, `(`,`)`, `$`,`` ` ``, `\\`, `\"`, `'`,\n``, ``, and ``) or characters\n[not allowed](http://www.iana.org/assignments/idna-tables-6.3.0/idna-tables-6.3.0.xhtml)\nfor [Internationalized Domain Names for Applications](https://tools.ietf.org/html/rfc6452)\nthen implementations may terminate the process with a\n`permanentFailure`.\n", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#path", - "_type": "@id" - } - }, - { - "name": "https://w3id.org/cwl/cwl#Directory/basename", - "type": [ - "null", - "string" - ], - "doc": "The base name of the directory, that is, the name of the file without any\nleading directory path. The base name must not contain a slash `/`.\n\nIf not provided, the implementation must set this field based on the\n`location` field by taking the final path component after parsing\n`location` as an IRI. If `basename` is provided, it is not required to\nmatch the value from `location`.\n\nWhen this file is made available to a CommandLineTool, it must be named\nwith `basename`, i.e. the final component of the `path` field must match\n`basename`.\n", - "jsonldPredicate": "cwl:basename" - }, - { - "name": "https://w3id.org/cwl/cwl#Directory/listing", - "type": [ - "null", - { - "type": "array", - "items": [ - "https://w3id.org/cwl/cwl#File", - "https://w3id.org/cwl/cwl#Directory" - ] - } - ], - "doc": "List of files or subdirectories contained in this directory. The name\nof each file or subdirectory is determined by the `basename` field of\neach `File` or `Directory` object. It is an error if a `File` shares a\n`basename` with any other entry in `listing`. If two or more\n`Directory` object share the same `basename`, this must be treated as\nequivalent to a single subdirectory with the listings recursively\nmerged.\n", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#listing" - } - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#SchemaBase", - "type": "record", - "abstract": true, - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#SchemaBase/label", - "type": [ - "null", - "string" - ], - "jsonldPredicate": "rdfs:label", - "doc": "A short, human-readable label of this object." - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#Parameter", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#SchemaBase", - "abstract": true, - "doc": "Define an input or output parameter to a process.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#Parameter/secondaryFiles", - "type": [ - "null", - "string", - "https://w3id.org/cwl/cwl#Expression", - { - "type": "array", - "items": [ - "string", - "https://w3id.org/cwl/cwl#Expression" - ] - } - ], - "jsonldPredicate": "cwl:secondaryFiles", - "doc": "Only valid when `type: File` or is an array of `items: File`.\n\nDescribes files that must be included alongside the primary file(s).\n\nIf the value is an expression, the value of `self` in the expression\nmust be the primary input or output File to which this binding applies.\n\nIf the value is a string, it specifies that the following pattern\nshould be applied to the primary file:\n\n 1. If string begins with one or more caret `^` characters, for each\n caret, remove the last file extension from the path (the last\n period `.` and all following characters). If there are no file\n extensions, the path is unchanged.\n 2. Append the remainder of the string to the end of the file path.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#Parameter/format", - "type": [ - "null", - "string", - { - "type": "array", - "items": "string" - }, - "https://w3id.org/cwl/cwl#Expression" - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#format", - "_type": "@id", - "identity": true - }, - "doc": "Only valid when `type: File` or is an array of `items: File`.\n\nFor input parameters, this must be one or more IRIs of concept nodes\nthat represents file formats which are allowed as input to this\nparameter, preferrably defined within an ontology. If no ontology is\navailable, file formats may be tested by exact match.\n\nFor output parameters, this is the file format that will be assigned to\nthe output parameter.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#Parameter/streamable", - "type": [ - "null", - "boolean" - ], - "doc": "Only valid when `type: File` or is an array of `items: File`.\n\nA value of `true` indicates that the file is read or written\nsequentially without seeking. An implementation may use this flag to\nindicate whether it is valid to stream file contents using a named\npipe. Default: `false`.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#Parameter/doc", - "type": [ - "null", - "string", - { - "type": "array", - "items": "string" - } - ], - "doc": "A documentation string for this type, or an array of strings which should be concatenated.", - "jsonldPredicate": "rdfs:comment" - } - ] - }, - { - "type": "enum", - "name": "https://w3id.org/cwl/cwl#Expression", - "doc": "'Expression' is not a real type. It indicates that a field must allow\nruntime parameter references. If [InlineJavascriptRequirement](#InlineJavascriptRequirement)\nis declared and supported by the platform, the field must also allow\nJavascript expressions.\n", - "symbols": [ - "https://w3id.org/cwl/cwl#ExpressionPlaceholder" - ] - }, - { - "name": "https://w3id.org/cwl/cwl#InputBinding", - "type": "record", - "abstract": true, - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#InputBinding/loadContents", - "type": [ - "null", - "boolean" - ], - "jsonldPredicate": "cwl:loadContents", - "doc": "Only valid when `type: File` or is an array of `items: File`.\n\nRead up to the first 64 KiB of text from the file and place it in the\n\"contents\" field of the file object for use by expressions.\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#OutputBinding", - "type": "record", - "abstract": true - }, - { - "name": "https://w3id.org/cwl/cwl#InputSchema", - "extends": "https://w3id.org/cwl/cwl#SchemaBase", - "type": "record", - "abstract": true - }, - { - "name": "https://w3id.org/cwl/cwl#OutputSchema", - "extends": "https://w3id.org/cwl/cwl#SchemaBase", - "type": "record", - "abstract": true - }, - { - "name": "https://w3id.org/cwl/cwl#InputRecordField", - "type": "record", - "extends": "https://w3id.org/cwl/salad#RecordField", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/salad#RecordSchema", - "specializeTo": "https://w3id.org/cwl/cwl#InputRecordSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#EnumSchema", - "specializeTo": "https://w3id.org/cwl/cwl#InputEnumSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#ArraySchema", - "specializeTo": "https://w3id.org/cwl/cwl#InputArraySchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#PrimitiveType", - "specializeTo": "https://w3id.org/cwl/cwl#CWLType" - } - ], - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#InputRecordField/inputBinding", - "type": [ - "null", - "https://w3id.org/cwl/cwl#InputBinding" - ], - "jsonldPredicate": "cwl:inputBinding" - }, - { - "name": "https://w3id.org/cwl/cwl#InputRecordField/label", - "type": [ - "null", - "string" - ], - "jsonldPredicate": "rdfs:label", - "doc": "A short, human-readable label of this process object." - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#InputRecordSchema", - "type": "record", - "extends": [ - "https://w3id.org/cwl/salad#RecordSchema", - "https://w3id.org/cwl/cwl#InputSchema" - ], - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/salad#RecordField", - "specializeTo": "https://w3id.org/cwl/cwl#InputRecordField" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#InputEnumSchema", - "type": "record", - "extends": [ - "https://w3id.org/cwl/salad#EnumSchema", - "https://w3id.org/cwl/cwl#InputSchema" - ], - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#InputEnumSchema/inputBinding", - "type": [ - "null", - "https://w3id.org/cwl/cwl#InputBinding" - ], - "jsonldPredicate": "cwl:inputBinding" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#InputArraySchema", - "type": "record", - "extends": [ - "https://w3id.org/cwl/salad#ArraySchema", - "https://w3id.org/cwl/cwl#InputSchema" - ], - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/salad#RecordSchema", - "specializeTo": "https://w3id.org/cwl/cwl#InputRecordSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#EnumSchema", - "specializeTo": "https://w3id.org/cwl/cwl#InputEnumSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#ArraySchema", - "specializeTo": "https://w3id.org/cwl/cwl#InputArraySchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#PrimitiveType", - "specializeTo": "https://w3id.org/cwl/cwl#CWLType" - } - ], - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#InputArraySchema/inputBinding", - "type": [ - "null", - "https://w3id.org/cwl/cwl#InputBinding" - ], - "jsonldPredicate": "cwl:inputBinding" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#OutputRecordField", - "type": "record", - "extends": "https://w3id.org/cwl/salad#RecordField", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/salad#RecordSchema", - "specializeTo": "https://w3id.org/cwl/cwl#OutputRecordSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#EnumSchema", - "specializeTo": "https://w3id.org/cwl/cwl#OutputEnumSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#ArraySchema", - "specializeTo": "https://w3id.org/cwl/cwl#OutputArraySchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#PrimitiveType", - "specializeTo": "https://w3id.org/cwl/cwl#CWLType" - } - ], - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#OutputRecordField/outputBinding", - "type": [ - "null", - "https://w3id.org/cwl/cwl#OutputBinding" - ], - "jsonldPredicate": "cwl:outputBinding" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#OutputRecordSchema", - "type": "record", - "extends": [ - "https://w3id.org/cwl/salad#RecordSchema", - "https://w3id.org/cwl/cwl#OutputSchema" - ], - "docParent": "https://w3id.org/cwl/cwl#OutputParameter", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/salad#RecordField", - "specializeTo": "https://w3id.org/cwl/cwl#OutputRecordField" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#OutputEnumSchema", - "type": "record", - "extends": [ - "https://w3id.org/cwl/salad#EnumSchema", - "https://w3id.org/cwl/cwl#OutputSchema" - ], - "docParent": "https://w3id.org/cwl/cwl#OutputParameter", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#OutputEnumSchema/outputBinding", - "type": [ - "null", - "https://w3id.org/cwl/cwl#OutputBinding" - ], - "jsonldPredicate": "cwl:outputBinding" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#OutputArraySchema", - "type": "record", - "extends": [ - "https://w3id.org/cwl/salad#ArraySchema", - "https://w3id.org/cwl/cwl#OutputSchema" - ], - "docParent": "https://w3id.org/cwl/cwl#OutputParameter", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/salad#RecordSchema", - "specializeTo": "https://w3id.org/cwl/cwl#OutputRecordSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#EnumSchema", - "specializeTo": "https://w3id.org/cwl/cwl#OutputEnumSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#ArraySchema", - "specializeTo": "https://w3id.org/cwl/cwl#OutputArraySchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/salad#PrimitiveType", - "specializeTo": "https://w3id.org/cwl/cwl#CWLType" - } - ], - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#OutputArraySchema/outputBinding", - "type": [ - "null", - "https://w3id.org/cwl/cwl#OutputBinding" - ], - "jsonldPredicate": "cwl:outputBinding" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#InputParameter", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#Parameter", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#InputParameter/id", - "type": "string", - "jsonldPredicate": "@id", - "doc": "The unique identifier for this parameter object." - }, - { - "name": "https://w3id.org/cwl/cwl#InputParameter/inputBinding", - "type": [ - "null", - "https://w3id.org/cwl/cwl#InputBinding" - ], - "jsonldPredicate": "cwl:inputBinding", - "doc": "Describes how to handle the inputs of a process and convert them\ninto a concrete form for execution, such as command line parameters.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#InputParameter/default", - "type": [ - "null", - "Any" - ], - "jsonldPredicate": "cwl:default", - "doc": "The default value for this parameter if not provided in the input\nobject.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#InputParameter/type", - "type": [ - "null", - "https://w3id.org/cwl/cwl#CWLType", - "https://w3id.org/cwl/cwl#InputRecordSchema", - "https://w3id.org/cwl/cwl#InputEnumSchema", - "https://w3id.org/cwl/cwl#InputArraySchema", - "string", - { - "type": "array", - "items": [ - "https://w3id.org/cwl/cwl#CWLType", - "https://w3id.org/cwl/cwl#InputRecordSchema", - "https://w3id.org/cwl/cwl#InputEnumSchema", - "https://w3id.org/cwl/cwl#InputArraySchema", - "string" - ] - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "refScope": 2, - "typeDSL": true - }, - "doc": "Specify valid types of data that may be assigned to this parameter.\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#OutputParameter", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#Parameter", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#OutputParameter/id", - "type": "string", - "jsonldPredicate": "@id", - "doc": "The unique identifier for this parameter object." - }, - { - "name": "https://w3id.org/cwl/cwl#OutputParameter/outputBinding", - "type": [ - "null", - "https://w3id.org/cwl/cwl#OutputBinding" - ], - "jsonldPredicate": "cwl:outputBinding", - "doc": "Describes how to handle the outputs of a process.\n" - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#ProcessRequirement", - "abstract": true, - "doc": "A process requirement declares a prerequisite that may or must be fulfilled\nbefore executing a process. See [`Process.hints`](#process) and\n[`Process.requirements`](#process).\n\nProcess requirements are the primary mechanism for specifying extensions to\nthe CWL core specification.\n" - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#Process", - "abstract": true, - "doc": "\nThe base executable type in CWL is the `Process` object defined by the\ndocument. Note that the `Process` object is abstract and cannot be\ndirectly executed.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#Process/id", - "type": [ - "null", - "string" - ], - "jsonldPredicate": "@id", - "doc": "The unique identifier for this process object." - }, - { - "name": "https://w3id.org/cwl/cwl#Process/inputs", - "type": { - "type": "array", - "items": "https://w3id.org/cwl/cwl#InputParameter" - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#inputs", - "mapSubject": "id", - "mapPredicate": "type" - }, - "doc": "Defines the input parameters of the process. The process is ready to\nrun when all required input parameters are associated with concrete\nvalues. Input parameters include a schema for each parameter which is\nused to validate the input object. It may also be used to build a user\ninterface for constructing the input object.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#Process/outputs", - "type": { - "type": "array", - "items": "https://w3id.org/cwl/cwl#OutputParameter" - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#outputs", - "mapSubject": "id", - "mapPredicate": "type" - }, - "doc": "Defines the parameters representing the output of the process. May be\nused to generate and/or validate the output object.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#Process/requirements", - "type": [ - "null", - { - "type": "array", - "items": "https://w3id.org/cwl/cwl#ProcessRequirement" - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#requirements", - "mapSubject": "class" - }, - "doc": "Declares requirements that apply to either the runtime environment or the\nworkflow engine that must be met in order to execute this process. If\nan implementation cannot satisfy all requirements, or a requirement is\nlisted which is not recognized by the implementation, it is a fatal\nerror and the implementation must not attempt to run the process,\nunless overridden at user option.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#Process/hints", - "type": [ - "null", - { - "type": "array", - "items": "Any" - } - ], - "doc": "Declares hints applying to either the runtime environment or the\nworkflow engine that may be helpful in executing this process. It is\nnot an error if an implementation cannot satisfy all hints, however\nthe implementation may report a warning.\n", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#hints", - "noLinkCheck": true, - "mapSubject": "class" - } - }, - { - "name": "https://w3id.org/cwl/cwl#Process/label", - "type": [ - "null", - "string" - ], - "jsonldPredicate": "rdfs:label", - "doc": "A short, human-readable label of this process object." - }, - { - "name": "https://w3id.org/cwl/cwl#Process/doc", - "type": [ - "null", - "string" - ], - "jsonldPredicate": "rdfs:comment", - "doc": "A long, human-readable description of this process object." - }, - { - "name": "https://w3id.org/cwl/cwl#Process/cwlVersion", - "type": [ - "null", - "https://w3id.org/cwl/cwl#CWLVersion" - ], - "doc": "CWL document version. Always required at the document root. Not\nrequired for a Process embedded inside another Process.\n", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#cwlVersion", - "_type": "@vocab" - } - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#InlineJavascriptRequirement", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "Indicates that the workflow platform must support inline Javascript expressions.\nIf this requirement is not present, the workflow platform must not perform expression\ninterpolatation.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#InlineJavascriptRequirement/class", - "type": "string", - "doc": "Always 'InlineJavascriptRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - }, - { - "name": "https://w3id.org/cwl/cwl#InlineJavascriptRequirement/expressionLib", - "type": [ - "null", - { - "type": "array", - "items": "string" - } - ], - "doc": "Additional code fragments that will also be inserted\nbefore executing the expression code. Allows for function definitions that may\nbe called from CWL expressions.\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#SchemaDefRequirement", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "This field consists of an array of type definitions which must be used when\ninterpreting the `inputs` and `outputs` fields. When a `type` field\ncontain a IRI, the implementation must check if the type is defined in\n`schemaDefs` and use that definition. If the type is not found in\n`schemaDefs`, it is an error. The entries in `schemaDefs` must be\nprocessed in the order listed such that later schema definitions may refer\nto earlier schema definitions.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#SchemaDefRequirement/class", - "type": "string", - "doc": "Always 'SchemaDefRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - }, - { - "name": "https://w3id.org/cwl/cwl#SchemaDefRequirement/types", - "type": { - "type": "array", - "items": "https://w3id.org/cwl/cwl#InputSchema" - }, - "doc": "The list of type definitions." - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineToolDoc", - "type": "documentation", - "doc": [ - "# Common Workflow Language (CWL) Command Line Tool Description, v1.0\n\nThis version:\n * https://w3id.org/cwl/v1.0/\n\nCurrent version:\n * https://w3id.org/cwl/\n", - "\n\n", - "\n", - "\n\n", - "# Abstract\n\nA Command Line Tool is a non-interactive executable program that reads\nsome input, performs a computation, and terminates after producing some\noutput. Command line programs are a flexible unit of code sharing and\nreuse, unfortunately the syntax and input/output semantics among command\nline programs is extremely heterogeneous. A common layer for describing\nthe syntax and semantics of programs can reduce this incidental\ncomplexity by providing a consistent way to connect programs together.\nThis specification defines the Common Workflow Language (CWL) Command\nLine Tool Description, a vendor-neutral standard for describing the\nsyntax and input/output semantics of command line programs.\n", - "\n", - "## Introduction to v1.0\n\nThis specification represents the first full release from the CWL group.\nSince draft-3, version 1.0 introduces the following changes and additions:\n\n * The [Directory](#Directory) type.\n * Syntax simplifcations: denoted by the `map<>` syntax. Example: inputs\n contains a list of items, each with an id. Now one can specify\n a mapping of that identifier to the corresponding\n `CommandInputParamater`.\n ```\n inputs:\n - id: one\n type: string\n doc: First input parameter\n - id: two\n type: int\n doc: Second input parameter\n ```\n can be\n ```\n inputs:\n one:\n type: string\n doc: First input parameter\n two:\n type: int\n doc: Second input parameter\n ```\n * [InitialWorkDirRequirement](#InitialWorkDirRequirement): list of\n files and subdirectories to be present in the output directory prior\n to execution.\n * Shortcuts for specifying the standard [output](#stdout) and/or\n [error](#stderr) streams as a (streamable) File output.\n * [SoftwareRequirement](#SoftwareRequirement) for describing software\n dependencies of a tool.\n * The common `description` field has been renamed to `doc`.\n\n## Errata\n\nPost v1.0 release changes to the spec.\n\n * 13 July 2016: Mark `baseCommand` as optional and update descriptive text.\n\n## Purpose\n\nStandalone programs are a flexible and interoperable form of code reuse.\nUnlike monolithic applications, applications and analysis workflows which\nare composed of multiple separate programs can be written in multiple\nlanguages and execute concurrently on multiple hosts. However, POSIX\ndoes not dictate computer-readable grammar or semantics for program input\nand output, resulting in extremely heterogeneous command line grammar and\ninput/output semantics among program. This is a particular problem in\ndistributed computing (multi-node compute clusters) and virtualized\nenvironments (such as Docker containers) where it is often necessary to\nprovision resources such as input files before executing the program.\n\nOften this gap is filled by hard coding program invocation and\nimplicitly assuming requirements will be met, or abstracting program\ninvocation with wrapper scripts or descriptor documents. Unfortunately,\nwhere these approaches are application or platform specific it creates a\nsignificant barrier to reproducibility and portability, as methods\ndeveloped for one platform must be manually ported to be used on new\nplatforms. Similarly it creates redundant work, as wrappers for popular\ntools must be rewritten for each application or platform in use.\n\nThe Common Workflow Language Command Line Tool Description is designed to\nprovide a common standard description of grammar and semantics for\ninvoking programs used in data-intensive fields such as Bioinformatics,\nChemistry, Physics, Astronomy, and Statistics. This specification\ndefines a precise data and execution model for Command Line Tools that\ncan be implemented on a variety of computing platforms, ranging from a\nsingle workstation to cluster, grid, cloud, and high performance\ncomputing platforms.\n", - "\n", - "\n" - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#EnvironmentDef", - "doc": "Define an environment variable that will be set in the runtime environment\nby the workflow platform when executing the command line tool. May be the\nresult of executing an expression, such as getting a parameter from input.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#EnvironmentDef/envName", - "type": "string", - "doc": "The environment variable name" - }, - { - "name": "https://w3id.org/cwl/cwl#EnvironmentDef/envValue", - "type": [ - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "The environment variable value" - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#CommandLineBinding", - "extends": "https://w3id.org/cwl/cwl#InputBinding", - "doc": "\nWhen listed under `inputBinding` in the input schema, the term\n\"value\" refers to the the corresponding value in the input object. For\nbinding objects listed in `CommandLineTool.arguments`, the term \"value\"\nrefers to the effective value after evaluating `valueFrom`.\n\nThe binding behavior when building the command line depends on the data\ntype of the value. If there is a mismatch between the type described by\nthe input schema and the effective value, such as resulting from an\nexpression evaluation, an implementation must use the data type of the\neffective value.\n\n - **string**: Add `prefix` and the string to the command line.\n\n - **number**: Add `prefix` and decimal representation to command line.\n\n - **boolean**: If true, add `prefix` to the command line. If false, add\n nothing.\n\n - **File**: Add `prefix` and the value of\n [`File.path`](#File) to the command line.\n\n - **array**: If `itemSeparator` is specified, add `prefix` and the join\n the array into a single string with `itemSeparator` separating the\n items. Otherwise first add `prefix`, then recursively process\n individual elements.\n\n - **object**: Add `prefix` only, and recursively add object fields for\n which `inputBinding` is specified.\n\n - **null**: Add nothing.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#CommandLineBinding/position", - "type": [ - "null", - "int" - ], - "doc": "The sorting key. Default position is 0." - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineBinding/prefix", - "type": [ - "null", - "string" - ], - "doc": "Command line prefix to add before the value." - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineBinding/separate", - "type": [ - "null", - "boolean" - ], - "doc": "If true (default), then the prefix and value must be added as separate\ncommand line arguments; if false, prefix and value must be concatenated\ninto a single command line argument.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineBinding/itemSeparator", - "type": [ - "null", - "string" - ], - "doc": "Join the array elements into a single string with the elements\nseparated by by `itemSeparator`.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineBinding/valueFrom", - "type": [ - "null", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "jsonldPredicate": "cwl:valueFrom", - "doc": "If `valueFrom` is a constant string value, use this as the value and\napply the binding rules above.\n\nIf `valueFrom` is an expression, evaluate the expression to yield the\nactual value to use to build the command line and apply the binding\nrules above. If the inputBinding is associated with an input\nparameter, the value of `self` in the expression will be the value of the\ninput parameter.\n\nWhen a binding is part of the `CommandLineTool.arguments` field,\nthe `valueFrom` field is required.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineBinding/shellQuote", - "type": [ - "null", - "boolean" - ], - "doc": "If `ShellCommandRequirement` is in the requirements for the current command,\nthis controls whether the value is quoted on the command line (default is true).\nUse `shellQuote: false` to inject metacharacters for operations such as pipes.\n" - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#CommandOutputBinding", - "extends": "https://w3id.org/cwl/cwl#OutputBinding", - "doc": "Describes how to generate an output parameter based on the files produced\nby a CommandLineTool.\n\nThe output parameter is generated by applying these operations in\nthe following order:\n\n - glob\n - loadContents\n - outputEval\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#CommandOutputBinding/glob", - "type": [ - "null", - "string", - "https://w3id.org/cwl/cwl#Expression", - { - "type": "array", - "items": "string" - } - ], - "doc": "Find files relative to the output directory, using POSIX glob(3)\npathname matching. If an array is provided, find files that match any\npattern in the array. If an expression is provided, the expression must\nreturn a string or an array of strings, which will then be evaluated as\none or more glob patterns. Must only match and return files which\nactually exist.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandOutputBinding/loadContents", - "type": [ - "null", - "boolean" - ], - "jsonldPredicate": "cwl:loadContents", - "doc": "For each file matched in `glob`, read up to\nthe first 64 KiB of text from the file and place it in the `contents`\nfield of the file object for manipulation by `outputEval`.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandOutputBinding/outputEval", - "type": [ - "null", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "Evaluate an expression to generate the output value. If `glob` was\nspecified, the value of `self` must be an array containing file objects\nthat were matched. If no files were matched, `self` must be a zero\nlength array; if a single file was matched, the value of `self` is an\narray of a single element. Additionally, if `loadContents` is `true`,\nthe File objects must include up to the first 64 KiB of file contents\nin the `contents` field.\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#CommandInputRecordField", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#InputRecordField", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputRecordSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputRecordSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputEnumSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputEnumSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputArraySchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputArraySchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputBinding", - "specializeTo": "https://w3id.org/cwl/cwl#CommandLineBinding" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#CommandInputRecordSchema", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#InputRecordSchema", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputRecordField", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputRecordField" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#CommandInputEnumSchema", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#InputEnumSchema", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputBinding", - "specializeTo": "https://w3id.org/cwl/cwl#CommandLineBinding" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#CommandInputArraySchema", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#InputArraySchema", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputRecordSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputRecordSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputEnumSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputEnumSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputArraySchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputArraySchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputBinding", - "specializeTo": "https://w3id.org/cwl/cwl#CommandLineBinding" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#CommandOutputRecordField", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#OutputRecordField", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputRecordSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputRecordSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputEnumSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputEnumSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputArraySchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputArraySchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputBinding", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputBinding" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#CommandOutputRecordSchema", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#OutputRecordSchema", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputRecordField", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputRecordField" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#CommandOutputEnumSchema", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#OutputEnumSchema", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputRecordSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputRecordSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputEnumSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputEnumSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputArraySchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputArraySchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputBinding", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputBinding" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#CommandOutputArraySchema", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#OutputArraySchema", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputRecordSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputRecordSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputEnumSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputEnumSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputArraySchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputArraySchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputBinding", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputBinding" - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#CommandInputParameter", - "extends": "https://w3id.org/cwl/cwl#InputParameter", - "doc": "An input parameter for a CommandLineTool.", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputRecordSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputRecordSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputEnumSchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputEnumSchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputArraySchema", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputArraySchema" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputBinding", - "specializeTo": "https://w3id.org/cwl/cwl#CommandLineBinding" - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#CommandOutputParameter", - "extends": "https://w3id.org/cwl/cwl#OutputParameter", - "doc": "An output parameter for a CommandLineTool.", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputBinding", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputBinding" - } - ], - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#CommandOutputParameter/type", - "type": [ - "null", - "https://w3id.org/cwl/cwl#CWLType", - "https://w3id.org/cwl/cwl#stdout", - "https://w3id.org/cwl/cwl#stderr", - "https://w3id.org/cwl/cwl#CommandOutputRecordSchema", - "https://w3id.org/cwl/cwl#CommandOutputEnumSchema", - "https://w3id.org/cwl/cwl#CommandOutputArraySchema", - "string", - { - "type": "array", - "items": [ - "https://w3id.org/cwl/cwl#CWLType", - "https://w3id.org/cwl/cwl#CommandOutputRecordSchema", - "https://w3id.org/cwl/cwl#CommandOutputEnumSchema", - "https://w3id.org/cwl/cwl#CommandOutputArraySchema", - "string" - ] - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "refScope": 2, - "typeDSL": true - }, - "doc": "Specify valid types of data that may be assigned to this parameter.\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#stdout", - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/cwl#stdout" - ], - "docParent": "https://w3id.org/cwl/cwl#CommandOutputParameter", - "doc": "Only valid as a `type` for a `CommandLineTool` output with no\n`outputBinding` set.\n\nThe following\n```\noutputs:\n an_output_name:\n type: stdout\n\nstdout: a_stdout_file\n```\nis equivalent to\n```\noutputs:\n an_output_name:\n type: File\n streamable: true\n outputBinding:\n glob: a_stdout_file\n\nstdout: a_stdout_file\n```\n\nIf there is no `stdout` name provided, a random filename will be created.\nFor example, the following\n```\noutputs:\n an_output_name:\n type: stdout\n```\nis equivalent to\n```\noutputs:\n an_output_name:\n type: File\n streamable: true\n outputBinding:\n glob: random_stdout_filenameABCDEFG\n\nstdout: random_stdout_filenameABCDEFG\n```\n" - }, - { - "name": "https://w3id.org/cwl/cwl#stderr", - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/cwl#stderr" - ], - "docParent": "https://w3id.org/cwl/cwl#CommandOutputParameter", - "doc": "Only valid as a `type` for a `CommandLineTool` output with no\n`outputBinding` set.\n\nThe following\n```\noutputs:\n an_output_name:\n type: stderr\n\nstderr: a_stderr_file\n```\nis equivalent to\n```\noutputs:\n an_output_name:\n type: File\n streamable: true\n outputBinding:\n glob: a_stderr_file\n\nstderr: a_stderr_file\n```\n\nIf there is no `stderr` name provided, a random filename will be created.\nFor example, the following\n```\noutputs:\n an_output_name:\n type: stderr\n```\nis equivalent to\n```\noutputs:\n an_output_name:\n type: File\n streamable: true\n outputBinding:\n glob: random_stderr_filenameABCDEFG\n\nstderr: random_stderr_filenameABCDEFG\n```\n" - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#CommandLineTool", - "extends": "https://w3id.org/cwl/cwl#Process", - "documentRoot": true, - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#InputParameter", - "specializeTo": "https://w3id.org/cwl/cwl#CommandInputParameter" - }, - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputParameter", - "specializeTo": "https://w3id.org/cwl/cwl#CommandOutputParameter" - } - ], - "doc": "This defines the schema of the CWL Command Line Tool Description document.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#CommandLineTool/class", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - }, - "type": "string" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineTool/baseCommand", - "doc": "Specifies the program to execute. If an array, the first element of\nthe array is the command to execute, and subsequent elements are\nmandatory command line arguments. The elements in `baseCommand` must\nappear before any command line bindings from `inputBinding` or\n`arguments`.\n\nIf `baseCommand` is not provided or is an empty array, the first\nelement of the command line produced after processing `inputBinding` or\n`arguments` must be used as the program to execute.\n\nIf the program includes a path separator character it must\nbe an absolute path, otherwise it is an error. If the program does not\ninclude a path separator, search the `$PATH` variable in the runtime\nenvironment of the workflow runner find the absolute path of the\nexecutable.\n", - "type": [ - "null", - "string", - { - "type": "array", - "items": "string" - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#baseCommand", - "_container": "@list" - } - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineTool/arguments", - "doc": "Command line bindings which are not directly associated with input parameters.\n", - "type": [ - "null", - { - "type": "array", - "items": [ - "string", - "https://w3id.org/cwl/cwl#Expression", - "https://w3id.org/cwl/cwl#CommandLineBinding" - ] - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#arguments", - "_container": "@list" - } - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineTool/stdin", - "type": [ - "null", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "A path to a file whose contents must be piped into the command's\nstandard input stream.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineTool/stderr", - "type": [ - "null", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "jsonldPredicate": "https://w3id.org/cwl/cwl#stderr", - "doc": "Capture the command's standard error stream to a file written to\nthe designated output directory.\n\nIf `stderr` is a string, it specifies the file name to use.\n\nIf `stderr` is an expression, the expression is evaluated and must\nreturn a string with the file name to use to capture stderr. If the\nreturn value is not a string, or the resulting path contains illegal\ncharacters (such as the path separator `/`) it is an error.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineTool/stdout", - "type": [ - "null", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "jsonldPredicate": "https://w3id.org/cwl/cwl#stdout", - "doc": "Capture the command's standard output stream to a file written to\nthe designated output directory.\n\nIf `stdout` is a string, it specifies the file name to use.\n\nIf `stdout` is an expression, the expression is evaluated and must\nreturn a string with the file name to use to capture stdout. If the\nreturn value is not a string, or the resulting path contains illegal\ncharacters (such as the path separator `/`) it is an error.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineTool/successCodes", - "type": [ - "null", - { - "type": "array", - "items": "int" - } - ], - "doc": "Exit codes that indicate the process completed successfully.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineTool/temporaryFailCodes", - "type": [ - "null", - { - "type": "array", - "items": "int" - } - ], - "doc": "Exit codes that indicate the process failed due to a possibly\ntemporary condition, where executing the process with the same\nruntime environment and inputs may produce different results.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#CommandLineTool/permanentFailCodes", - "type": [ - "null", - { - "type": "array", - "items": "int" - } - ], - "doc": "Exit codes that indicate the process failed due to a permanent logic error, where executing the process with the same runtime environment and same inputs is expected to always fail." - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#DockerRequirement", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "Indicates that a workflow component should be run in a\n[Docker](http://docker.com) container, and specifies how to fetch or build\nthe image.\n\nIf a CommandLineTool lists `DockerRequirement` under\n`hints` (or `requirements`), it may (or must) be run in the specified Docker\ncontainer.\n\nThe platform must first acquire or install the correct Docker image as\nspecified by `dockerPull`, `dockerImport`, `dockerLoad` or `dockerFile`.\n\nThe platform must execute the tool in the container using `docker run` with\nthe appropriate Docker image and tool command line.\n\nThe workflow platform may provide input files and the designated output\ndirectory through the use of volume bind mounts. The platform may rewrite\nfile paths in the input object to correspond to the Docker bind mounted\nlocations.\n\nWhen running a tool contained in Docker, the workflow platform must not\nassume anything about the contents of the Docker container, such as the\npresence or absence of specific software, except to assume that the\ngenerated command line represents a valid command within the runtime\nenvironment of the container.\n\n## Interaction with other requirements\n\nIf [EnvVarRequirement](#EnvVarRequirement) is specified alongside a\nDockerRequirement, the environment variables must be provided to Docker\nusing `--env` or `--env-file` and interact with the container's preexisting\nenvironment as defined by Docker.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#DockerRequirement/class", - "type": "string", - "doc": "Always 'DockerRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - }, - { - "name": "https://w3id.org/cwl/cwl#DockerRequirement/dockerPull", - "type": [ - "null", - "string" - ], - "doc": "Specify a Docker image to retrieve using `docker pull`." - }, - { - "name": "https://w3id.org/cwl/cwl#DockerRequirement/dockerLoad", - "type": [ - "null", - "string" - ], - "doc": "Specify a HTTP URL from which to download a Docker image using `docker load`." - }, - { - "name": "https://w3id.org/cwl/cwl#DockerRequirement/dockerFile", - "type": [ - "null", - "string" - ], - "doc": "Supply the contents of a Dockerfile which will be built using `docker build`." - }, - { - "name": "https://w3id.org/cwl/cwl#DockerRequirement/dockerImport", - "type": [ - "null", - "string" - ], - "doc": "Provide HTTP URL to download and gunzip a Docker images using `docker import." - }, - { - "name": "https://w3id.org/cwl/cwl#DockerRequirement/dockerImageId", - "type": [ - "null", - "string" - ], - "doc": "The image id that will be used for `docker run`. May be a\nhuman-readable image name or the image identifier hash. May be skipped\nif `dockerPull` is specified, in which case the `dockerPull` image id\nmust be used.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#DockerRequirement/dockerOutputDirectory", - "type": [ - "null", - "string" - ], - "doc": "Set the designated output directory to a specific location inside the\nDocker container.\n" - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#SoftwareRequirement", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "A list of software packages that should be configured in the environment of\nthe defined process.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#SoftwareRequirement/class", - "type": "string", - "doc": "Always 'SoftwareRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - }, - { - "name": "https://w3id.org/cwl/cwl#SoftwareRequirement/packages", - "type": { - "type": "array", - "items": "https://w3id.org/cwl/cwl#SoftwarePackage" - }, - "doc": "The list of software to be configured.", - "jsonldPredicate": { - "mapSubject": "package", - "mapPredicate": "specs" - } - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#SoftwarePackage", - "type": "record", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#SoftwarePackage/package", - "type": "string", - "doc": "The common name of the software to be configured." - }, - { - "name": "https://w3id.org/cwl/cwl#SoftwarePackage/version", - "type": [ - "null", - { - "type": "array", - "items": "string" - } - ], - "doc": "The (optional) version of the software to configured." - }, - { - "name": "https://w3id.org/cwl/cwl#SoftwarePackage/specs", - "type": [ - "null", - { - "type": "array", - "items": "string" - } - ], - "doc": "Must be one or more IRIs identifying resources for installing or\nenabling the software. Implementations may provide resolvers which map\nwell-known software spec IRIs to some configuration action.\n\nFor example, an IRI `https://packages.debian.org/jessie/bowtie` could\nbe resolved with `apt-get install bowtie`. An IRI\n`https://anaconda.org/bioconda/bowtie` could be resolved with `conda\ninstall -c bioconda bowtie`.\n\nTools may also provide IRIs to index entries such as\n[RRID](http://www.identifiers.org/rrid/), such as\n`http://identifiers.org/rrid/RRID:SCR_005476`\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#Dirent", - "type": "record", - "doc": "Define a file or subdirectory that must be placed in the designated output\ndirectory prior to executing the command line tool. May be the result of\nexecuting an expression, such as building a configuration file from a\ntemplate.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#Dirent/entryname", - "type": [ - "null", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#entryname" - }, - "doc": "The name of the file or subdirectory to create in the output directory.\nIf `entry` is a File or Directory, this overrides `basename`. Optional.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#Dirent/entry", - "type": [ - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#entry" - }, - "doc": "If the value is a string literal or an expression which evaluates to a\nstring, a new file must be created with the string as the file contents.\n\nIf the value is an expression that evaluates to a `File` object, this\nindicates the referenced file should be added to the designated output\ndirectory prior to executing the tool.\n\nIf the value is an expression that evaluates to a `Dirent` object, this\nindicates that the File or Directory in `entry` should be added to the\ndesignated output directory with the name in `entryname`.\n\nIf `writable` is false, the file may be made available using a bind\nmount or file system link to avoid unnecessary copying of the input\nfile.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#Dirent/writable", - "type": [ - "null", - "boolean" - ], - "doc": "If true, the file or directory must be writable by the tool. Changes\nto the file or directory must be isolated and not visible by any other\nCommandLineTool process. This may be implemented by making a copy of\nthe original file or directory. Default false (files and directories\nread-only by default).\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#InitialWorkDirRequirement", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "Define a list of files and subdirectories that must be created by the workflow platform in the designated output directory prior to executing the command line tool.", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#InitialWorkDirRequirement/class", - "type": "string", - "doc": "InitialWorkDirRequirement", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - }, - { - "name": "https://w3id.org/cwl/cwl#InitialWorkDirRequirement/listing", - "type": [ - { - "type": "array", - "items": [ - "https://w3id.org/cwl/cwl#File", - "https://w3id.org/cwl/cwl#Directory", - "https://w3id.org/cwl/cwl#Dirent", - "string", - "https://w3id.org/cwl/cwl#Expression" - ] - }, - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#listing" - }, - "doc": "The list of files or subdirectories that must be placed in the\ndesignated output directory prior to executing the command line tool.\n\nMay be an expression. If so, the expression return value must validate\nas `{type: array, items: [File, Directory]}`.\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#EnvVarRequirement", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "Define a list of environment variables which will be set in the\nexecution environment of the tool. See `EnvironmentDef` for details.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#EnvVarRequirement/class", - "type": "string", - "doc": "Always 'EnvVarRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - }, - { - "name": "https://w3id.org/cwl/cwl#EnvVarRequirement/envDef", - "type": { - "type": "array", - "items": "https://w3id.org/cwl/cwl#EnvironmentDef" - }, - "doc": "The list of environment variables.", - "jsonldPredicate": { - "mapSubject": "envName", - "mapPredicate": "envValue" - } - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#ShellCommandRequirement", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "Modify the behavior of CommandLineTool to generate a single string\ncontaining a shell command line. Each item in the argument list must be\njoined into a string separated by single spaces and quoted to prevent\nintepretation by the shell, unless `CommandLineBinding` for that argument\ncontains `shellQuote: false`. If `shellQuote: false` is specified, the\nargument is joined into the command string without quoting, which allows\nthe use of shell metacharacters such as `|` for pipes.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#ShellCommandRequirement/class", - "type": "string", - "doc": "Always 'ShellCommandRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#ResourceRequirement", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "Specify basic hardware resource requirements.\n\n\"min\" is the minimum amount of a resource that must be reserved to schedule\na job. If \"min\" cannot be satisfied, the job should not be run.\n\n\"max\" is the maximum amount of a resource that the job shall be permitted\nto use. If a node has sufficient resources, multiple jobs may be scheduled\non a single node provided each job's \"max\" resource requirements are\nmet. If a job attempts to exceed its \"max\" resource allocation, an\nimplementation may deny additional resources, which may result in job\nfailure.\n\nIf \"min\" is specified but \"max\" is not, then \"max\" == \"min\"\nIf \"max\" is specified by \"min\" is not, then \"min\" == \"max\".\n\nIt is an error if max < min.\n\nIt is an error if the value of any of these fields is negative.\n\nIf neither \"min\" nor \"max\" is specified for a resource, an implementation may provide a default.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#ResourceRequirement/class", - "type": "string", - "doc": "Always 'ResourceRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - }, - { - "name": "https://w3id.org/cwl/cwl#ResourceRequirement/coresMin", - "type": [ - "null", - "long", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "Minimum reserved number of CPU cores" - }, - { - "name": "https://w3id.org/cwl/cwl#ResourceRequirement/coresMax", - "type": [ - "null", - "int", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "Maximum reserved number of CPU cores" - }, - { - "name": "https://w3id.org/cwl/cwl#ResourceRequirement/ramMin", - "type": [ - "null", - "long", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "Minimum reserved RAM in mebibytes (2**20)" - }, - { - "name": "https://w3id.org/cwl/cwl#ResourceRequirement/ramMax", - "type": [ - "null", - "long", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "Maximum reserved RAM in mebibytes (2**20)" - }, - { - "name": "https://w3id.org/cwl/cwl#ResourceRequirement/tmpdirMin", - "type": [ - "null", - "long", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "Minimum reserved filesystem based storage for the designated temporary directory, in mebibytes (2**20)" - }, - { - "name": "https://w3id.org/cwl/cwl#ResourceRequirement/tmpdirMax", - "type": [ - "null", - "long", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "Maximum reserved filesystem based storage for the designated temporary directory, in mebibytes (2**20)" - }, - { - "name": "https://w3id.org/cwl/cwl#ResourceRequirement/outdirMin", - "type": [ - "null", - "long", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "Minimum reserved filesystem based storage for the designated output directory, in mebibytes (2**20)" - }, - { - "name": "https://w3id.org/cwl/cwl#ResourceRequirement/outdirMax", - "type": [ - "null", - "long", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "Maximum reserved filesystem based storage for the designated output directory, in mebibytes (2**20)" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowDoc", - "type": "documentation", - "doc": [ - "# Common Workflow Language (CWL) Workflow Description, v1.0\n\nThis version:\n * https://w3id.org/cwl/v1.0/\n\nCurrent version:\n * https://w3id.org/cwl/\n", - "\n\n", - "\n", - "\n\n", - "# Abstract\n\nOne way to define a workflow is: an analysis task represented by a\ndirected graph describing a sequence of operations that transform an\ninput data set to output. This specification defines the Common Workflow\nLanguage (CWL) Workflow description, a vendor-neutral standard for\nrepresenting workflows intended to be portable across a variety of\ncomputing platforms.\n", - "\n", - "\n## Introduction to v1.0\n\nThis specification represents the first full release from the CWL group.\nSince draft-3, this draft introduces the following changes and additions:\n\n * The `inputs` and `outputs` fields have been renamed `in` and `out`.\n * Syntax simplifcations: denoted by the `map<>` syntax. Example: `in`\n contains a list of items, each with an id. Now one can specify\n a mapping of that identifier to the corresponding\n `InputParameter`.\n ```\n in:\n - id: one\n type: string\n doc: First input parameter\n - id: two\n type: int\n doc: Second input parameter\n ```\n can be\n ```\n in:\n one:\n type: string\n doc: First input parameter\n two:\n type: int\n doc: Second input parameter\n ```\n * The common field `description` has been renamed to `doc`.\n\n## Purpose\n\nThe Common Workflow Language Command Line Tool Description express\nworkflows for data-intensive science, such as Bioinformatics, Chemistry,\nPhysics, and Astronomy. This specification is intended to define a data\nand execution model for Workflows that can be implemented on top of a\nvariety of computing platforms, ranging from an individual workstation to\ncluster, grid, cloud, and high performance computing systems.\n", - "\n" - ] - }, - { - "name": "https://w3id.org/cwl/cwl#ExpressionToolOutputParameter", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#OutputParameter", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#ExpressionToolOutputParameter/type", - "type": [ - "null", - "https://w3id.org/cwl/cwl#CWLType", - "https://w3id.org/cwl/cwl#OutputRecordSchema", - "https://w3id.org/cwl/cwl#OutputEnumSchema", - "https://w3id.org/cwl/cwl#OutputArraySchema", - "string", - { - "type": "array", - "items": [ - "https://w3id.org/cwl/cwl#CWLType", - "https://w3id.org/cwl/cwl#OutputRecordSchema", - "https://w3id.org/cwl/cwl#OutputEnumSchema", - "https://w3id.org/cwl/cwl#OutputArraySchema", - "string" - ] - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "refScope": 2, - "typeDSL": true - }, - "doc": "Specify valid types of data that may be assigned to this parameter.\n" - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#ExpressionTool", - "extends": "https://w3id.org/cwl/cwl#Process", - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputParameter", - "specializeTo": "https://w3id.org/cwl/cwl#ExpressionToolOutputParameter" - } - ], - "documentRoot": true, - "doc": "Execute an expression as a Workflow step.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#ExpressionTool/class", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - }, - "type": "string" - }, - { - "name": "https://w3id.org/cwl/cwl#ExpressionTool/expression", - "type": [ - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "doc": "The expression to execute. The expression must return a JSON object which\nmatches the output parameters of the ExpressionTool.\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#LinkMergeMethod", - "type": "enum", - "docParent": "https://w3id.org/cwl/cwl#WorkflowStepInput", - "doc": "The input link merge method, described in [WorkflowStepInput](#WorkflowStepInput).", - "symbols": [ - "https://w3id.org/cwl/cwl#LinkMergeMethod/merge_nested", - "https://w3id.org/cwl/cwl#LinkMergeMethod/merge_flattened" - ] - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowOutputParameter", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#OutputParameter", - "docParent": "https://w3id.org/cwl/cwl#Workflow", - "doc": "Describe an output parameter of a workflow. The parameter must be\nconnected to one or more parameters defined in the workflow that will\nprovide the value of the output parameter.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#WorkflowOutputParameter/outputSource", - "doc": "Specifies one or more workflow parameters that supply the value of to\nthe output parameter.\n", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#outputSource", - "_type": "@id", - "refScope": 0 - }, - "type": [ - "null", - "string", - { - "type": "array", - "items": "string" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowOutputParameter/linkMerge", - "type": [ - "null", - "https://w3id.org/cwl/cwl#LinkMergeMethod" - ], - "jsonldPredicate": "cwl:linkMerge", - "doc": "The method to use to merge multiple sources into a single array.\nIf not specified, the default method is \"merge_nested\".\n" - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowOutputParameter/type", - "type": [ - "null", - "https://w3id.org/cwl/cwl#CWLType", - "https://w3id.org/cwl/cwl#OutputRecordSchema", - "https://w3id.org/cwl/cwl#OutputEnumSchema", - "https://w3id.org/cwl/cwl#OutputArraySchema", - "string", - { - "type": "array", - "items": [ - "https://w3id.org/cwl/cwl#CWLType", - "https://w3id.org/cwl/cwl#OutputRecordSchema", - "https://w3id.org/cwl/cwl#OutputEnumSchema", - "https://w3id.org/cwl/cwl#OutputArraySchema", - "string" - ] - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "refScope": 2, - "typeDSL": true - }, - "doc": "Specify valid types of data that may be assigned to this parameter.\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#Sink", - "type": "record", - "abstract": true, - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#Sink/source", - "doc": "Specifies one or more workflow parameters that will provide input to\nthe underlying step parameter.\n", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#source", - "_type": "@id", - "refScope": 2 - }, - "type": [ - "null", - "string", - { - "type": "array", - "items": "string" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#Sink/linkMerge", - "type": [ - "null", - "https://w3id.org/cwl/cwl#LinkMergeMethod" - ], - "jsonldPredicate": "cwl:linkMerge", - "doc": "The method to use to merge multiple inbound links into a single array.\nIf not specified, the default method is \"merge_nested\".\n" - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#WorkflowStepInput", - "extends": "https://w3id.org/cwl/cwl#Sink", - "docParent": "https://w3id.org/cwl/cwl#WorkflowStep", - "doc": "The input of a workflow step connects an upstream parameter (from the\nworkflow inputs, or the outputs of other workflows steps) with the input\nparameters of the underlying step.\n\n## Input object\n\nA WorkflowStepInput object must contain an `id` field in the form\n`#fieldname` or `#stepname.fieldname`. When the `id` field contains a\nperiod `.` the field name consists of the characters following the final\nperiod. This defines a field of the workflow step input object with the\nvalue of the `source` parameter(s).\n\n## Merging\n\nTo merge multiple inbound data links,\n[MultipleInputFeatureRequirement](#MultipleInputFeatureRequirement) must be specified\nin the workflow or workflow step requirements.\n\nIf the sink parameter is an array, or named in a [workflow\nscatter](#WorkflowStep) operation, there may be multiple inbound data links\nlisted in the `source` field. The values from the input links are merged\ndepending on the method specified in the `linkMerge` field. If not\nspecified, the default method is \"merge_nested\".\n\n* **merge_nested**\n\n The input must be an array consisting of exactly one entry for each\n input link. If \"merge_nested\" is specified with a single link, the value\n from the link must be wrapped in a single-item list.\n\n* **merge_flattened**\n\n 1. The source and sink parameters must be compatible types, or the source\n type must be compatible with single element from the \"items\" type of\n the destination array parameter.\n 2. Source parameters which are arrays are concatenated.\n Source parameters which are single element types are appended as\n single elements.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#WorkflowStepInput/id", - "type": "string", - "jsonldPredicate": "@id", - "doc": "A unique identifier for this workflow input parameter." - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStepInput/default", - "type": [ - "null", - "Any" - ], - "doc": "The default value for this parameter if there is no `source`\nfield.\n", - "jsonldPredicate": "cwl:default" - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStepInput/valueFrom", - "type": [ - "null", - "string", - "https://w3id.org/cwl/cwl#Expression" - ], - "jsonldPredicate": "cwl:valueFrom", - "doc": "To use valueFrom, [StepInputExpressionRequirement](#StepInputExpressionRequirement) must\nbe specified in the workflow or workflow step requirements.\n\nIf `valueFrom` is a constant string value, use this as the value for\nthis input parameter.\n\nIf `valueFrom` is a parameter reference or expression, it must be\nevaluated to yield the actual value to be assiged to the input field.\n\nThe `self` value of in the parameter reference or expression must be\nthe value of the parameter(s) specified in the `source` field, or\nnull if there is no `source` field.\n\nThe value of `inputs` in the parameter reference or expression must be\nthe input object to the workflow step after assigning the `source`\nvalues and then scattering. The order of evaluating `valueFrom` among\nstep input parameters is undefined and the result of evaluating\n`valueFrom` on a parameter must not be visible to evaluation of\n`valueFrom` on other parameters.\n" - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#WorkflowStepOutput", - "docParent": "https://w3id.org/cwl/cwl#WorkflowStep", - "doc": "Associate an output parameter of the underlying process with a workflow\nparameter. The workflow parameter (given in the `id` field) be may be used\nas a `source` to connect with input parameters of other workflow steps, or\nwith an output parameter of the process.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#WorkflowStepOutput/id", - "type": "string", - "jsonldPredicate": "@id", - "doc": "A unique identifier for this workflow output parameter. This is the\nidentifier to use in the `source` field of `WorkflowStepInput` to\nconnect the output value to downstream parameters.\n" - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#ScatterMethod", - "type": "enum", - "docParent": "https://w3id.org/cwl/cwl#WorkflowStep", - "doc": "The scatter method, as described in [workflow step scatter](#WorkflowStep).", - "symbols": [ - "https://w3id.org/cwl/cwl#ScatterMethod/dotproduct", - "https://w3id.org/cwl/cwl#ScatterMethod/nested_crossproduct", - "https://w3id.org/cwl/cwl#ScatterMethod/flat_crossproduct" - ] - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep", - "type": "record", - "docParent": "https://w3id.org/cwl/cwl#Workflow", - "doc": "A workflow step is an executable element of a workflow. It specifies the\nunderlying process implementation (such as `CommandLineTool` or another\n`Workflow`) in the `run` field and connects the input and output parameters\nof the underlying process to workflow parameters.\n\n# Scatter/gather\n\nTo use scatter/gather,\n[ScatterFeatureRequirement](#ScatterFeatureRequirement) must be specified\nin the workflow or workflow step requirements.\n\nA \"scatter\" operation specifies that the associated workflow step or\nsubworkflow should execute separately over a list of input elements. Each\njob making up a scatter operation is independent and may be executed\nconcurrently.\n\nThe `scatter` field specifies one or more input parameters which will be\nscattered. An input parameter may be listed more than once. The declared\ntype of each input parameter is implicitly wrapped in an array for each\ntime it appears in the `scatter` field. As a result, upstream parameters\nwhich are connected to scattered parameters may be arrays.\n\nAll output parameter types are also implicitly wrapped in arrays. Each job\nin the scatter results in an entry in the output array.\n\nIf `scatter` declares more than one input parameter, `scatterMethod`\ndescribes how to decompose the input into a discrete set of jobs.\n\n * **dotproduct** specifies that each of the input arrays are aligned and one\n element taken from each array to construct each job. It is an error\n if all input arrays are not the same length.\n\n * **nested_crossproduct** specifies the Cartesian product of the inputs,\n producing a job for every combination of the scattered inputs. The\n output must be nested arrays for each level of scattering, in the\n order that the input arrays are listed in the `scatter` field.\n\n * **flat_crossproduct** specifies the Cartesian product of the inputs,\n producing a job for every combination of the scattered inputs. The\n output arrays must be flattened to a single level, but otherwise listed in the\n order that the input arrays are listed in the `scatter` field.\n\n# Subworkflows\n\nTo specify a nested workflow as part of a workflow step,\n[SubworkflowFeatureRequirement](#SubworkflowFeatureRequirement) must be\nspecified in the workflow or workflow step requirements.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep/id", - "type": "string", - "jsonldPredicate": "@id", - "doc": "The unique identifier for this workflow step." - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep/in", - "type": { - "type": "array", - "items": "https://w3id.org/cwl/cwl#WorkflowStepInput" - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#in", - "mapSubject": "id", - "mapPredicate": "source" - }, - "doc": "Defines the input parameters of the workflow step. The process is ready to\nrun when all required input parameters are associated with concrete\nvalues. Input parameters include a schema for each parameter which is\nused to validate the input object. It may also be used build a user\ninterface for constructing the input object.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep/out", - "type": [ - { - "type": "array", - "items": [ - "string", - "https://w3id.org/cwl/cwl#WorkflowStepOutput" - ] - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#out", - "_type": "@id", - "identity": true - }, - "doc": "Defines the parameters representing the output of the process. May be\nused to generate and/or validate the output object.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep/requirements", - "type": [ - "null", - { - "type": "array", - "items": "https://w3id.org/cwl/cwl#ProcessRequirement" - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#requirements", - "mapSubject": "class" - }, - "doc": "Declares requirements that apply to either the runtime environment or the\nworkflow engine that must be met in order to execute this workflow step. If\nan implementation cannot satisfy all requirements, or a requirement is\nlisted which is not recognized by the implementation, it is a fatal\nerror and the implementation must not attempt to run the process,\nunless overridden at user option.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep/hints", - "type": [ - "null", - { - "type": "array", - "items": "Any" - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#hints", - "noLinkCheck": true, - "mapSubject": "class" - }, - "doc": "Declares hints applying to either the runtime environment or the\nworkflow engine that may be helpful in executing this workflow step. It is\nnot an error if an implementation cannot satisfy all hints, however\nthe implementation may report a warning.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep/label", - "type": [ - "null", - "string" - ], - "jsonldPredicate": "rdfs:label", - "doc": "A short, human-readable label of this process object." - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep/doc", - "type": [ - "null", - "string" - ], - "jsonldPredicate": "rdfs:comment", - "doc": "A long, human-readable description of this process object." - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep/run", - "type": [ - "string", - "https://w3id.org/cwl/cwl#Process" - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#run", - "_type": "@id" - }, - "doc": "Specifies the process to run.\n" - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep/scatter", - "type": [ - "null", - "string", - { - "type": "array", - "items": "string" - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#scatter", - "_type": "@id", - "_container": "@list", - "refScope": 0 - } - }, - { - "name": "https://w3id.org/cwl/cwl#WorkflowStep/scatterMethod", - "doc": "Required if `scatter` is an array of more than one element.\n", - "type": [ - "null", - "https://w3id.org/cwl/cwl#ScatterMethod" - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/cwl#scatterMethod", - "_type": "@vocab" - } - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#Workflow", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#Process", - "documentRoot": true, - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/cwl#OutputParameter", - "specializeTo": "https://w3id.org/cwl/cwl#WorkflowOutputParameter" - } - ], - "doc": "A workflow describes a set of **steps** and the **dependencies** between\nthose steps. When a step produces output that will be consumed by a\nsecond step, the first step is a dependency of the second step.\n\nWhen there is a dependency, the workflow engine must execute the preceeding\nstep and wait for it to successfully produce output before executing the\ndependent step. If two steps are defined in the workflow graph that\nare not directly or indirectly dependent, these steps are **independent**,\nand may execute in any order or execute concurrently. A workflow is\ncomplete when all steps have been executed.\n\nDependencies between parameters are expressed using the `source` field on\n[workflow step input parameters](#WorkflowStepInput) and [workflow output\nparameters](#WorkflowOutputParameter).\n\nThe `source` field expresses the dependency of one parameter on another\nsuch that when a value is associated with the parameter specified by\n`source`, that value is propagated to the destination parameter. When all\ndata links inbound to a given step are fufilled, the step is ready to\nexecute.\n\n## Workflow success and failure\n\nA completed step must result in one of `success`, `temporaryFailure` or\n`permanentFailure` states. An implementation may choose to retry a step\nexecution which resulted in `temporaryFailure`. An implementation may\nchoose to either continue running other steps of a workflow, or terminate\nimmediately upon `permanentFailure`.\n\n* If any step of a workflow execution results in `permanentFailure`, then\nthe workflow status is `permanentFailure`.\n\n* If one or more steps result in `temporaryFailure` and all other steps\ncomplete `success` or are not executed, then the workflow status is\n`temporaryFailure`.\n\n* If all workflow steps are executed and complete with `success`, then the\nworkflow status is `success`.\n\n# Extensions\n\n[ScatterFeatureRequirement](#ScatterFeatureRequirement) and\n[SubworkflowFeatureRequirement](#SubworkflowFeatureRequirement) are\navailable as standard [extensions](#Extensions_and_Metadata) to core\nworkflow semantics.\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#Workflow/class", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - }, - "type": "string" - }, - { - "name": "https://w3id.org/cwl/cwl#Workflow/steps", - "doc": "The individual steps that make up the workflow. Each step is executed when all of its\ninput data links are fufilled. An implementation may choose to execute\nthe steps in a different order than listed and/or execute steps\nconcurrently, provided that dependencies between steps are met.\n", - "type": [ - { - "type": "array", - "items": "https://w3id.org/cwl/cwl#WorkflowStep" - } - ], - "jsonldPredicate": { - "mapSubject": "id" - } - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#SubworkflowFeatureRequirement", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "Indicates that the workflow platform must support nested workflows in\nthe `run` field of [WorkflowStep](#WorkflowStep).\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#SubworkflowFeatureRequirement/class", - "type": "string", - "doc": "Always 'SubworkflowFeatureRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#ScatterFeatureRequirement", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "Indicates that the workflow platform must support the `scatter` and\n`scatterMethod` fields of [WorkflowStep](#WorkflowStep).\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#ScatterFeatureRequirement/class", - "type": "string", - "doc": "Always 'ScatterFeatureRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - } - ] - }, - { - "name": "https://w3id.org/cwl/cwl#MultipleInputFeatureRequirement", - "type": "record", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "Indicates that the workflow platform must support multiple inbound data links\nlisted in the `source` field of [WorkflowStepInput](#WorkflowStepInput).\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#MultipleInputFeatureRequirement/class", - "type": "string", - "doc": "Always 'MultipleInputFeatureRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - } - ] - }, - { - "type": "record", - "name": "https://w3id.org/cwl/cwl#StepInputExpressionRequirement", - "extends": "https://w3id.org/cwl/cwl#ProcessRequirement", - "doc": "Indicate that the workflow platform must support the `valueFrom` field\nof [WorkflowStepInput](#WorkflowStepInput).\n", - "fields": [ - { - "name": "https://w3id.org/cwl/cwl#StepInputExpressionRequirement/class", - "type": "string", - "doc": "Always 'StepInputExpressionRequirement'", - "jsonldPredicate": { - "_id": "@type", - "_type": "@vocab" - } - } - ] - } -] diff --git a/salad/schema_salad/tests/docimp/d1.yml b/salad/schema_salad/tests/docimp/d1.yml deleted file mode 100644 index 92cb8150..00000000 --- a/salad/schema_salad/tests/docimp/d1.yml +++ /dev/null @@ -1,7 +0,0 @@ -$graph: -- name: "Semantic_Annotations_for_Linked_Avro_Data" - type: documentation - doc: - - $include: d2.md - - $import: d3.yml - - $import: d4.yml diff --git a/salad/schema_salad/tests/docimp/d2.md b/salad/schema_salad/tests/docimp/d2.md deleted file mode 100644 index 2032c4a7..00000000 --- a/salad/schema_salad/tests/docimp/d2.md +++ /dev/null @@ -1 +0,0 @@ -*Hello* \ No newline at end of file diff --git a/salad/schema_salad/tests/docimp/d3.yml b/salad/schema_salad/tests/docimp/d3.yml deleted file mode 100644 index 99211ecd..00000000 --- a/salad/schema_salad/tests/docimp/d3.yml +++ /dev/null @@ -1,3 +0,0 @@ -- "hello 2" -- $include: d5.md -- "hello 3" diff --git a/salad/schema_salad/tests/docimp/d4.yml b/salad/schema_salad/tests/docimp/d4.yml deleted file mode 100644 index 1587596e..00000000 --- a/salad/schema_salad/tests/docimp/d4.yml +++ /dev/null @@ -1,3 +0,0 @@ -- "hello 4" -- $include: d5.md -- "hello 5" diff --git a/salad/schema_salad/tests/docimp/d5.md b/salad/schema_salad/tests/docimp/d5.md deleted file mode 100644 index a8eba23e..00000000 --- a/salad/schema_salad/tests/docimp/d5.md +++ /dev/null @@ -1 +0,0 @@ -*dee dee dee five* \ No newline at end of file diff --git a/salad/schema_salad/tests/docimp/dpre.json b/salad/schema_salad/tests/docimp/dpre.json deleted file mode 100644 index c23da589..00000000 --- a/salad/schema_salad/tests/docimp/dpre.json +++ /dev/null @@ -1,13 +0,0 @@ -[ - { - "name": "file:///home/peter/work/salad/schema_salad/tests/docimp/d1.yml#Semantic_Annotations_for_Linked_Avro_Data", - "type": "documentation", - "doc": [ - "*Hello*", - "hello 2", - "hello 3", - "hello 4", - "hello 5" - ] - } -] diff --git a/salad/schema_salad/tests/frag.yml b/salad/schema_salad/tests/frag.yml deleted file mode 100644 index 7e8818d3..00000000 --- a/salad/schema_salad/tests/frag.yml +++ /dev/null @@ -1,4 +0,0 @@ -- id: foo1 - bar: b1 -- id: foo2 - bar: b2 \ No newline at end of file diff --git a/salad/schema_salad/tests/hello.txt b/salad/schema_salad/tests/hello.txt deleted file mode 100644 index a0423896..00000000 --- a/salad/schema_salad/tests/hello.txt +++ /dev/null @@ -1 +0,0 @@ -hello world! diff --git a/salad/schema_salad/tests/hellofield.yml b/salad/schema_salad/tests/hellofield.yml deleted file mode 100644 index 11bc98f0..00000000 --- a/salad/schema_salad/tests/hellofield.yml +++ /dev/null @@ -1,5 +0,0 @@ -{ -"name": "hello", -"doc": {"$include": "hello.txt"}, -"type": "string" -} \ No newline at end of file diff --git a/salad/schema_salad/tests/metaschema-pre.yml b/salad/schema_salad/tests/metaschema-pre.yml deleted file mode 100644 index 69e33de9..00000000 --- a/salad/schema_salad/tests/metaschema-pre.yml +++ /dev/null @@ -1,665 +0,0 @@ -[ - { - "type": "documentation", - "doc": [ - "# Semantic Annotations for Linked Avro Data (SALAD)\n\nAuthor:\n\n* Peter Amstutz , Veritas Genetics\n\nContributors:\n\n* The developers of Apache Avro\n* The developers of JSON-LD\n* Neboj\u0161a Tijani\u0107 , Seven Bridges Genomics\n\n# Abstract\n\nSalad is a schema language for describing structured linked data documents\nin JSON or YAML documents. A Salad schema provides rules for\npreprocessing, structural validation, and link checking for documents\ndescribed by a Salad schema. Salad builds on JSON-LD and the Apache Avro\ndata serialization system, and extends Avro with features for rich data\nmodeling such as inheritance, template specialization, object identifiers,\nand object references. Salad was developed to provide a bridge between the\nrecord oriented data modeling supported by Apache Avro and the Semantic\nWeb.\n\n# Status of This Document\n\nThis document is the product of the [Common Workflow Language working\ngroup](https://groups.google.com/forum/#!forum/common-workflow-language). The\nlatest version of this document is available in the \"schema_salad\" repository at\n\nhttps://github.com/common-workflow-language/schema_salad\n\nThe products of the CWL working group (including this document) are made available\nunder the terms of the Apache License, version 2.0.\n\n\n\n# Introduction\n\nThe JSON data model is an extremely popular way to represent structured\ndata. It is attractive because of its relative simplicity and is a\nnatural fit with the standard types of many programming languages.\nHowever, this simplicity means that basic JSON lacks expressive features\nuseful for working with complex data structures and document formats, such\nas schemas, object references, and namespaces.\n\nJSON-LD is a W3C standard providing a way to describe how to interpret a\nJSON document as Linked Data by means of a \"context\". JSON-LD provides a\npowerful solution for representing object references and namespaces in JSON\nbased on standard web URIs, but is not itself a schema language. Without a\nschema providing a well defined structure, it is difficult to process an\narbitrary JSON-LD document as idiomatic JSON because there are many ways to\nexpress the same data that are logically equivalent but structurally\ndistinct.\n\nSeveral schema languages exist for describing and validating JSON data,\nsuch as the Apache Avro data serialization system, however none understand\nlinked data. As a result, to fully take advantage of JSON-LD to build the\nnext generation of linked data applications, one must maintain separate\nJSON schema, JSON-LD context, RDF schema, and human documentation, despite\nsignificant overlap of content and obvious need for these documents to stay\nsynchronized.\n\nSchema Salad is designed to address this gap. It provides a schema\nlanguage and processing rules for describing structured JSON content\npermitting URI resolution and strict document validation. The schema\nlanguage supports linked data through annotations that describe the linked\ndata interpretation of the content, enables generation of JSON-LD context\nand RDF schema, and production of RDF triples by applying the JSON-LD\ncontext. The schema language also provides for robust support of inline\ndocumentation.\n\n## Introduction to v1.1\n\nThis is the third version of of the Schema Salad specification. It is\ndeveloped concurrently with v1.1 of the Common Workflow Language for use in\nspecifying the Common Workflow Language, however Schema Salad is intended to be\nuseful to a broader audience. Compared to the v1.0 schema salad\nspecification, the following changes have been made:\n\n* Support for `default` values on record fields to specify default values\n* Add subscoped fields (fields which introduce a new inner scope for identifiers)\n* Add the *inVocab* flag (default true) to indicate if a type is added to the vocabulary of well known terms or must be prefixed\n* Add *secondaryFilesDSL* micro DSL (domain specific language) to convert text strings to a secondaryFiles record type used in CWL\n* The `$mixin` feature has been removed from the specification, as it\n is poorly documented, not included in conformance testing,\n and not widely supported.\n\n## References to Other Specifications\n\n**Javascript Object Notation (JSON)**: http://json.org\n\n**JSON Linked Data (JSON-LD)**: http://json-ld.org\n\n**YAML**: https://yaml.org/spec/1.2/spec.html\n\n**Avro**: https://avro.apache.org/docs/current/spec.html\n\n**Uniform Resource Identifier (URI) Generic Syntax**: https://tools.ietf.org/html/rfc3986)\n\n**Resource Description Framework (RDF)**: http://www.w3.org/RDF/\n\n**UTF-8**: https://www.ietf.org/rfc/rfc2279.txt)\n\n## Scope\n\nThis document describes the syntax, data model, algorithms, and schema\nlanguage for working with Salad documents. It is not intended to document\na specific implementation of Salad, however it may serve as a reference for\nthe behavior of conforming implementations.\n\n## Terminology\n\nThe terminology used to describe Salad documents is defined in the Concepts\nsection of the specification. The terms defined in the following list are\nused in building those definitions and in describing the actions of an\nSalad implementation:\n\n**may**: Conforming Salad documents and Salad implementations are permitted but\nnot required to be interpreted as described.\n\n**must**: Conforming Salad documents and Salad implementations are required\nto be interpreted as described; otherwise they are in error.\n\n**error**: A violation of the rules of this specification; results are\nundefined. Conforming implementations may detect and report an error and may\nrecover from it.\n\n**fatal error**: A violation of the rules of this specification; results\nare undefined. Conforming implementations must not continue to process the\ndocument and may report an error.\n\n**at user option**: Conforming software may or must (depending on the modal verb in\nthe sentence) behave as described; if it does, it must provide users a means to\nenable or disable the behavior described.\n\n# Document model\n\n## Data concepts\n\nAn **object** is a data structure equivalent to the \"object\" type in JSON,\nconsisting of a unordered set of name/value pairs (referred to here as\n**fields**) and where the name is a string and the value is a string, number,\nboolean, array, or object.\n\nA **document** is a file containing a serialized object, or an array of\nobjects.\n\nA **document type** is a class of files that share a common structure and\nsemantics.\n\nA **document schema** is a formal description of the grammar of a document type.\n\nA **base URI** is a context-dependent URI used to resolve relative references.\n\nAn **identifier** is a URI that designates a single document or single\nobject within a document.\n\nA **vocabulary** is the set of symbolic field names and enumerated symbols defined\nby a document schema, where each term maps to absolute URI.\n\n## Syntax\n\nConforming Salad v1.1 documents are serialized and loaded using a\nsubset of YAML 1.2 syntax and UTF-8 text encoding. Salad documents\nare written using the [JSON-compatible subset of YAML described in\nsection 10.2](https://yaml.org/spec/1.2/spec.html#id2803231). The\nfollowing features of YAML must not be used in conforming Salad\ndocuments:\n\n* Use of explicit node tags with leading `!` or `!!`\n* Use of anchors with leading `&` and aliases with leading `*`\n* %YAML directives\n* %TAG directives\n\nIt is a fatal error if the document is not valid YAML.\n\nA Salad document must consist only of either a single root object or an\narray of objects.\n\n## Document context\n\n### Implied context\n\nThe implicit context consists of the vocabulary defined by the schema and\nthe base URI. By default, the base URI must be the URI that was used to\nload the document. It may be overridden by an explicit context.\n\n### Explicit context\n\nIf a document consists of a root object, this object may contain the\nfields `$base`, `$namespaces`, `$schemas`, and `$graph`:\n\n * `$base`: Must be a string. Set the base URI for the document used to\n resolve relative references.\n\n * `$namespaces`: Must be an object with strings as values. The keys of\n the object are namespace prefixes used in the document; the values of\n the object are the prefix expansions.\n\n * `$schemas`: Must be an array of strings. This field may list URI\n references to documents in RDF-XML format which will be queried for RDF\n schema data. The subjects and predicates described by the RDF schema\n may provide additional semantic context for the document, and may be\n used for validation of prefixed extension fields found in the document.\n\nOther directives beginning with `$` must be ignored.\n\n## Document graph\n\nIf a document consists of a single root object, this object may contain the\nfield `$graph`. This field must be an array of objects. If present, this\nfield holds the primary content of the document. A document that consists\nof array of objects at the root is an implicit graph.\n\n## Document metadata\n\nIf a document consists of a single root object, metadata about the\ndocument, such as authorship, may be declared in the root object.\n\n## Document schema\n\nDocument preprocessing, link validation and schema validation require a\ndocument schema. A schema may consist of:\n\n * At least one record definition object which defines valid fields that\n make up a record type. Record field definitions include the valid types\n that may be assigned to each field and annotations to indicate fields\n that represent identifiers and links, described below in \"Semantic\n Annotations\".\n\n * Any number of enumerated type objects which define a set of finite set of symbols that are\n valid value of the type.\n\n * Any number of documentation objects which allow in-line documentation of the schema.\n\nThe schema for defining a salad schema (the metaschema) is described in\ndetail in the [Schema](#Schema) section.\n\n## Record field annotations\n\nIn a document schema, record field definitions may include the field\n`jsonldPredicate`, which may be either a string or object. Implementations\nmust use the following document preprocessing of fields by the following\nrules:\n\n * If the value of `jsonldPredicate` is `@id`, the field is an identifier\n field.\n\n * If the value of `jsonldPredicate` is an object, and that\n object contains the field `_type` with the value `@id`, the field is a\n link field subject to [link validation](#Link_validation).\n\n * If the value of `jsonldPredicate` is an object which contains the\n field `_type` with the value `@vocab`, the field value is subject to\n [vocabulary resolution](#Vocabulary_resolution).\n\n## Document traversal\n\nTo perform document document preprocessing, link validation and schema\nvalidation, the document must be traversed starting from the fields or\narray items of the root object or array and recursively visiting each child\nitem which contains an object or arrays.\n\n## Short names\n\nThe \"short name\" of an fully qualified identifier is the portion of\nthe identifier following the final slash `/` of either the fragment\nidentifier following `#` or the path portion, if there is no fragment.\nSome examples:\n\n* the short name of `http://example.com/foo` is `foo`\n* the short name of `http://example.com/#bar` is `bar`\n* the short name of `http://example.com/foo/bar` is `bar`\n* the short name of `http://example.com/foo#bar` is `bar`\n* the short name of `http://example.com/#foo/bar` is `bar`\n* the short name of `http://example.com/foo#bar/baz` is `baz`\n\n## Inheritance and specialization\n\nA record definition may inherit from one or more record definitions\nwith the `extends` field. This copies the fields defined in the\nparent record(s) as the base for the new record. A record definition\nmay `specialize` type declarations of the fields inherited from the\nbase record. For each field inherited from the base record, any\ninstance of the type in `specializeFrom` is replaced with the type in\n`specializeTo`. The type in `specializeTo` should extend from the\ntype in `specializeFrom`.\n\nA record definition may be `abstract`. This means the record\ndefinition is not used for validation on its own, but may be extended\nby other definitions. If an abstract type appears in a field\ndefinition, it is logically replaced with a union of all concrete\nsubtypes of the abstract type. In other words, the field value does\nnot validate as the abstract type, but must validate as some concrete\ntype that inherits from the abstract type.\n\n# Document preprocessing\n\nAfter processing the explicit context (if any), document preprocessing\nbegins. Starting from the document root, object fields values or array\nitems which contain objects or arrays are recursively traversed\ndepth-first. For each visited object, field names, identifier fields, link\nfields, vocabulary fields, and `$import` and `$include` directives must be\nprocessed as described in this section. The order of traversal of child\nnodes within a parent node is undefined.\n", - "## Field name resolution\n\nThe document schema declares the vocabulary of known field names. During\npreprocessing traversal, field name in the document which are not part of\nthe schema vocabulary must be resolved to absolute URIs. Under \"strict\"\nvalidation, it is an error for a document to include fields which are not\npart of the vocabulary and not resolvable to absolute URIs. Fields names\nwhich are not part of the vocabulary are resolved using the following\nrules:\n\n* If a field name URI begins with a namespace prefix declared in the\ndocument context (`@context`) followed by a colon `:`, the prefix and\ncolon must be replaced by the namespace declared in `@context`.\n\n* If there is a vocabulary term which maps to the URI of a resolved\nfield, the field name must be replace with the vocabulary term.\n\n* If a field name URI is an absolute URI consisting of a scheme and path\nand is not part of the vocabulary, no processing occurs.\n\nField name resolution is not relative. It must not be affected by the\nbase URI.\n\n### Field name resolution example\n\nGiven the following schema:\n\n```\n", - "{\n \"$namespaces\": {\n \"acid\": \"http://example.com/acid#\"\n },\n \"$graph\": [{\n \"name\": \"ExampleType\",\n \"type\": \"record\",\n \"fields\": [{\n \"name\": \"base\",\n \"type\": \"string\",\n \"jsonldPredicate\": \"http://example.com/base\"\n }]\n }]\n}\n", - "```\n\nProcess the following example:\n\n```\n", - " {\n \"base\": \"one\",\n \"form\": {\n \"http://example.com/base\": \"two\",\n \"http://example.com/three\": \"three\",\n },\n \"acid:four\": \"four\"\n }\n", - "```\n\nThis becomes:\n\n```\n", - " {\n \"base\": \"one\",\n \"form\": {\n \"base\": \"two\",\n \"http://example.com/three\": \"three\",\n },\n \"http://example.com/acid#four\": \"four\"\n }\n", - "```\n", - "## Identifier resolution\n\nThe schema may designate one or more fields as identifier fields to identify\nspecific objects. Processing must resolve relative identifiers to absolute\nidentifiers using the following rules:\n\n * If an identifier URI begins with `#` it is a current document\n fragment identifier. It is resolved relative to the base URI by\n setting or replacing the fragment portion of the base URI.\n\n * If an identifier URI contains `#` in some other position it is a\n relative URI with fragment identifier. It is resolved relative\n to the base URI by stripping the last path segment from the base\n URI and adding the identifier followed by the fragment.\n\n * If an identifier URI does not contain a scheme and does not\n contain `#` it is a parent relative fragment identifier.\n\n * If an identifier URI is a parent relative fragment identifier\n and the base URI does not contain a document fragment, set the\n document fragment on the base URI.\n\n * If an identifier URI is a parent relative fragment identifier\n and the object containing this identifier is assigned to a\n parent object field defined with `subscope` in\n `jsonldPredicate`, append a slash `/` to the base URI fragment\n followed by the value of the parent field `subscope`. Then\n append the identifier as described in the next rule.\n\n * If an identifier URI is a parent relative fragment identifier\n and the base URI contains a document fragment, append a slash\n `/` to the fragment followed by the identifier field to the\n fragment portion of the base URI.\n\n * If an identifier URI begins with a namespace prefix declared in\n `$namespaces` followed by a colon `:`, the prefix and colon must be\n replaced by the namespace declared in `$namespaces`.\n\n * If an identifier URI is an absolute URI consisting of a scheme and path,\n no processing occurs.\n\nWhen preprocessing visits a node containing an identifier, that identifier\nmust be used as the base URI to process child nodes.\n\nIt is an error for more than one object in a document to have the same\nabsolute URI.\n\n### Identifier resolution example\n\nGiven the following schema:\n\n```\n", - "{\n \"$namespaces\": {\n \"acid\": \"http://example.com/acid#\"\n },\n \"$graph\": [{\n \"name\": \"ExampleType\",\n \"type\": \"record\",\n \"fields\": [{\n \"name\": \"id\",\n \"type\": \"string\",\n \"jsonldPredicate\": \"@id\"\n }]}, {\n \"name\": \"SubscopeType\",\n \"type\": \"record\",\n \"fields\": [{\n \"name\": \"subscopeField\",\n \"type\": \"ExampleType\",\n \"jsonldPredicate\": {\n \"subscope\": \"thisIsASubscope\"\n }\n }]\n }]\n}\n", - "```\n\nProcess the following example:\n\n```\n", - " {\n \"id\": \"http://example.com/base\",\n \"form\": {\n \"id\": \"one\",\n \"things\": [\n {\n \"id\": \"two\"\n },\n {\n \"id\": \"#three\",\n },\n {\n \"id\": \"four#five\",\n },\n {\n \"id\": \"acid:six\",\n },\n {\n \"subscopeField\": {\n \"id\": \"seven\"\n }\n }\n ],\n }\n }\n", - "```\n\nThis becomes:\n\n```\n", - "{\n \"id\": \"http://example.com/base\",\n \"form\": {\n \"id\": \"http://example.com/base#one\",\n \"things\": [\n {\n \"id\": \"http://example.com/base#one/two\"\n },\n {\n \"id\": \"http://example.com/base#three\"\n },\n {\n \"id\": \"http://example.com/four#five\",\n },\n {\n \"id\": \"http://example.com/acid#six\",\n },\n {\n \"subscopeField\": {\n \"id\": \"http://example.com/base#one/thisIsASubscope/seven\"\n }\n }\n ],\n }\n}\n", - "```\n", - "## Link resolution\n\nThe schema may designate one or more fields as link fields that reference other\nobjects. Processing must resolve links to either absolute URIs using the\nfollowing rules:\n\n* If a reference URI is prefixed with `#` it is a relative\nfragment identifier. It is resolved relative to the base URI by setting\nor replacing the fragment portion of the base URI.\n\n* If a reference URI does not contain a scheme and is not prefixed with `#`\nit is a path relative reference. If the reference URI contains `#` in any\nposition other than the first character, the reference URI must be divided\ninto a path portion and a fragment portion split on the first instance of\n`#`. The path portion is resolved relative to the base URI by the following\nrule: if the path portion of the base URI ends in a slash `/`, append the\npath portion of the reference URI to the path portion of the base URI. If\nthe path portion of the base URI does not end in a slash, replace the final\npath segment with the path portion of the reference URI. Replace the\nfragment portion of the base URI with the fragment portion of the reference\nURI.\n\n* If a reference URI begins with a namespace prefix declared in `$namespaces`\nfollowed by a colon `:`, the prefix and colon must be replaced by the\nnamespace declared in `$namespaces`.\n\n* If a reference URI is an absolute URI consisting of a scheme and path,\nno processing occurs.\n\nLink resolution must not affect the base URI used to resolve identifiers\nand other links.\n\n### Link resolution example\n\nGiven the following schema:\n\n```\n", - "{\n \"$namespaces\": {\n \"acid\": \"http://example.com/acid#\"\n },\n \"$graph\": [{\n \"name\": \"ExampleType\",\n \"type\": \"record\",\n \"fields\": [{\n \"name\": \"link\",\n \"type\": \"string\",\n \"jsonldPredicate\": {\n \"_type\": \"@id\"\n }\n }]\n }]\n}\n", - "```\n\nProcess the following example:\n\n```\n", - "{\n \"$base\": \"http://example.com/base\",\n \"link\": \"http://example.com/base/zero\",\n \"form\": {\n \"link\": \"one\",\n \"things\": [\n {\n \"link\": \"two\"\n },\n {\n \"link\": \"#three\",\n },\n {\n \"link\": \"four#five\",\n },\n {\n \"link\": \"acid:six\",\n }\n ]\n }\n}\n", - "```\n\nThis becomes:\n\n```\n", - "{\n \"$base\": \"http://example.com/base\",\n \"link\": \"http://example.com/base/zero\",\n \"form\": {\n \"link\": \"http://example.com/one\",\n \"things\": [\n {\n \"link\": \"http://example.com/two\"\n },\n {\n \"link\": \"http://example.com/base#three\"\n },\n {\n \"link\": \"http://example.com/four#five\",\n },\n {\n \"link\": \"http://example.com/acid#six\",\n }\n ]\n }\n}\n", - "```\n", - "## Vocabulary resolution\n\n The schema may designate one or more vocabulary fields which use\n terms defined in the vocabulary. The vocabulary are the short\n names of all the identifiers in the schema. Processing must\n resolve vocabulary fields to either vocabulary terms or absolute\n URIs by first applying the link resolution rules defined above,\n then applying the following additional rule:\n\n * If a reference URI is a vocabulary field, and there is a vocabulary\n term which maps to the resolved URI, the reference must be replace with\n the vocabulary term.\n\n### Vocabulary resolution example\n\nGiven the following schema:\n\n```\n", - "{\n \"$namespaces\": {\n \"acid\": \"http://example.com/acid#\"\n },\n \"$graph\": [{\n \"name\": \"Colors\",\n \"type\": \"enum\",\n \"symbols\": [\"acid:red\"]\n },\n {\n \"name\": \"ExampleType\",\n \"type\": \"record\",\n \"fields\": [{\n \"name\": \"voc\",\n \"type\": \"string\",\n \"jsonldPredicate\": {\n \"_type\": \"@vocab\"\n }\n }]\n }]\n}\n", - "```\n\nProcess the following example:\n\n```\n", - " {\n \"form\": {\n \"things\": [\n {\n \"voc\": \"red\",\n },\n {\n \"voc\": \"http://example.com/acid#red\",\n },\n {\n \"voc\": \"http://example.com/acid#blue\",\n }\n ]\n }\n }\n", - "```\n\nThis becomes:\n\n```\n", - " {\n \"form\": {\n \"things\": [\n {\n \"voc\": \"red\",\n },\n {\n \"voc\": \"red\",\n },\n {\n \"voc\": \"http://example.com/acid#blue\",\n }\n ]\n }\n }\n", - "```\n", - "## Import\n\nDuring preprocessing traversal, an implementation must resolve `$import`\ndirectives. An `$import` directive is an object consisting of exactly one\nfield `$import` specifying resource by URI string. It is an error if there\nare additional fields in the `$import` object, such additional fields must\nbe ignored.\n\nThe URI string must be resolved to an absolute URI using the link\nresolution rules described previously. Implementations must support\nloading from `file`, `http` and `https` resources. The URI referenced by\n`$import` must be loaded and recursively preprocessed as a Salad document.\nThe external imported document does not inherit the context of the\nimporting document, and the default base URI for processing the imported\ndocument must be the URI used to retrieve the imported document. If the\n`$import` URI includes a document fragment, the fragment must be excluded\nfrom the base URI used to preprocess the imported document.\n\nOnce loaded and processed, the `$import` node is replaced in the document\nstructure by the object or array yielded from the import operation.\n\nURIs may reference document fragments which refer to specific an object in\nthe target document. This indicates that the `$import` node must be\nreplaced by only the object with the appropriate fragment identifier.\n\nIt is a fatal error if an import directive refers to an external resource\nor resource fragment which does not exist or is not accessible.\n\n### Import example\n\nimport.json:\n```\n{\n \"hello\": \"world\"\n}\n\n```\n\nparent.json:\n```\n{\n \"form\": {\n \"bar\": {\n \"$import\": \"import.json\"\n }\n }\n}\n\n```\n\nThis becomes:\n\n```\n{\n \"form\": {\n \"bar\": {\n \"hello\": \"world\"\n }\n }\n}\n```\n\n## Include\n\nDuring preprocessing traversal, an implementation must resolve `$include`\ndirectives. An `$include` directive is an object consisting of exactly one\nfield `$include` specifying a URI string. It is an error if there are\nadditional fields in the `$include` object, such additional fields must be\nignored.\n\nThe URI string must be resolved to an absolute URI using the link\nresolution rules described previously. The URI referenced by `$include` must\nbe loaded as a text data. Implementations must support loading from\n`file`, `http` and `https` resources. Implementations may transcode the\ncharacter encoding of the text data to match that of the parent document,\nbut must not interpret or parse the text document in any other way.\n\nOnce loaded, the `$include` node is replaced in the document structure by a\nstring containing the text data loaded from the resource.\n\nIt is a fatal error if an import directive refers to an external resource\nwhich does not exist or is not accessible.\n\n### Include example\n\nparent.json:\n```\n{\n \"form\": {\n \"bar\": {\n \"$include\": \"include.txt\"\n }\n }\n}\n\n```\n\ninclude.txt:\n```\nhello world\n\n```\n\nThis becomes:\n\n```\n{\n \"form\": {\n \"bar\": \"hello world\"\n }\n}\n```\n", - "## Identifier maps\n\nThe schema may designate certain fields as having a `mapSubject`. If the\nvalue of the field is a JSON object, it must be transformed into an array of\nJSON objects. Each key-value pair from the source JSON object is a list\nitem, each list item must be a JSON object, and the value of the key is\nassigned to the field specified by `mapSubject`.\n\nFields which have `mapSubject` specified may also supply a `mapPredicate`.\nIf the value of a map item is not a JSON object, the item is transformed to a\nJSON object with the key assigned to the field specified by `mapSubject` and\nthe value assigned to the field specified by `mapPredicate`.\n\n### Identifier map example\n\nGiven the following schema:\n\n```\n", - "{\n \"$graph\": [{\n \"name\": \"MappedType\",\n \"type\": \"record\",\n \"documentRoot\": true,\n \"fields\": [{\n \"name\": \"mapped\",\n \"type\": {\n \"type\": \"array\",\n \"items\": \"ExampleRecord\"\n },\n \"jsonldPredicate\": {\n \"mapSubject\": \"key\",\n \"mapPredicate\": \"value\"\n }\n }],\n },\n {\n \"name\": \"ExampleRecord\",\n \"type\": \"record\",\n \"fields\": [{\n \"name\": \"key\",\n \"type\": \"string\"\n }, {\n \"name\": \"value\",\n \"type\": \"string\"\n }\n ]\n }]\n}\n", - "```\n\nProcess the following example:\n\n```\n", - "{\n \"mapped\": {\n \"shaggy\": {\n \"value\": \"scooby\"\n },\n \"fred\": \"daphne\"\n }\n}", - "```\n\nThis becomes:\n\n```\n", - "{\n \"mapped\": [\n {\n \"value\": \"daphne\",\n \"key\": \"fred\"\n },\n {\n \"value\": \"scooby\",\n \"key\": \"shaggy\"\n }\n ]\n}", - "```\n", - "## Domain Specific Language for types\n\nFields may be tagged `typeDSL: true` in `jsonldPredicate`. If so, the field is expanded using the\nfollowing micro-DSL for schema salad types:\n\n* If the type ends with a question mark `?`, the question mark is stripped off and the type is expanded to a union with `null`\n* If the type ends with square brackets `[]` it is expanded to an array with items of the preceeding type symbol\n* The type may end with both `[]?` to indicate it is an optional array.\n* Identifier resolution is applied after type DSL expansion.\n\n### Type DSL example\n\nGiven the following schema:\n\n```\n", - "{\n \"$graph\": [\n {\"$import\": \"metaschema_base.yml\"},\n {\n \"name\": \"TypeDSLExample\",\n \"type\": \"record\",\n \"documentRoot\": true,\n \"fields\": [{\n \"name\": \"extype\",\n \"type\": \"string\",\n \"jsonldPredicate\": {\n _type: \"@vocab\",\n \"typeDSL\": true\n }\n }]\n }]\n}\n", - "```\n\nProcess the following example:\n\n```\n", - "[{\n \"extype\": \"string\"\n}, {\n \"extype\": \"string?\"\n}, {\n \"extype\": \"string[]\"\n}, {\n \"extype\": \"string[]?\"\n}]\n", - "```\n\nThis becomes:\n\n```\n", - "[\n {\n \"extype\": \"string\"\n }, \n {\n \"extype\": [\n \"null\", \n \"string\"\n ]\n }, \n {\n \"extype\": {\n \"type\": \"array\", \n \"items\": \"string\"\n }\n }, \n {\n \"extype\": [\n \"null\", \n {\n \"type\": \"array\", \n \"items\": \"string\"\n }\n ]\n }\n]\n", - "```\n", - "## Domain Specific Language for secondary files\n\nFields may be tagged `secondaryFilesDSL: true` in `jsonldPredicate`. If so, the field is expanded using the\nfollowing micro-DSL for secondary files:\n\n* If the value is a string, it is transformed to an object with two fields `pattern` and `required`\n* By default, the value of `required` is `null` (this indicates default behavior, which may be based on the context)\n* If the value ends with a question mark `?` the question mark is\n stripped off and the value of the field `required` is set to `False`\n* The remaining value is assigned to the field `pattern`\n\n### Type DSL example\n\nGiven the following schema:\n\n```\n", - "{\n \"$graph\": [\n {\n \"name\": \"SecondaryFilesDSLExample\",\n \"type\": \"record\",\n \"documentRoot\": true,\n \"fields\": [{\n \"name\": \"secondaryFiles\",\n \"type\": \"string\",\n \"jsonldPredicate\": {\n _type: \"@vocab\",\n \"secondaryFilesDSL\": true\n }\n }]\n }]\n}\n", - "```\n\nProcess the following example:\n\n```\n", - "[{\n \"secondaryFiles\": \".bai\"\n}, {\n \"secondaryFiles\": \".bai?\"\n}, {\n \"secondaryFiles\": {\n \"pattern\": \".bai?\"\n}, {\n \"secondaryFiles\": {\n \"pattern\": \".bai?\",\n \"required\": true\n}]\n", - "```\n\nThis becomes:\n\n```\n", - "[\n {\n \"secondaryFiles\": {\n \"pattern\": \".bai\",\n \"required\": null\n },\n {\n \"secondaryFiles\": {\n \"pattern\": \".bai\",\n \"required\": false\n },\n {\n \"secondaryFiles\": {\n \"pattern\": \".bai?\"\n },\n {\n \"secondaryFiles\": {\n \"pattern\": \".bai?\",\n \"required\": true\n },\n]\n", - "```\n" - ], - "name": "https://w3id.org/cwl/salad#Semantic_Annotations_for_Linked_Avro_Data" - }, - { - "type": "documentation", - "doc": "# Link validation\n\nOnce a document has been preprocessed, an implementation may validate\nlinks. The link validation traversal may visit fields which the schema\ndesignates as link fields and check that each URI references an existing\nobject in the current document, an imported document, file system, or\nnetwork resource. Failure to validate links may be a fatal error. Link\nvalidation behavior for individual fields may be modified by `identity` and\n`noLinkCheck` in the `jsonldPredicate` section of the field schema.\n", - "name": "https://w3id.org/cwl/salad#Link_Validation" - }, - { - "type": "documentation", - "doc": "# Validating a document against a schema\n\nTo validate a document against the schema, first [apply\npreprocessing](#Document_preprocessing), then, use the following\nalgorithm.\n\n1. The document root must be an object or a list. If the document root is an\n object containing the field `$graph` (which must be a list of\n objects), then validation applies to each object in the list.\n2. For each object, attempt to validate as one of the record types\n flagged with `documentRoot: true`.\n3. To validate a record, go through `fields` and recursively\n validate each field of the object.\n4. For fields with a list of types (type union), go through each\n type in the list and recursively validate the type. For the\n field to be valid, at least one type in the union must be valid.\n5. Missing fields are considered `null`. To validate, the allowed types\n for the field must include `null`\n6. Primitive types are null, boolean, int, long, float, double,\n string. To validate, the value in the document must have one\n of these type. For numerics, the value appearing in the\n document must fit into the specified type.\n7. To validate an array, the value in the document must be a list,\n and each item in the list must recursively validate as a type\n in `items`.\n8. To validate an enum, the value in the document be a string, and\n the value must be equal to the short name of one of the values\n listed in `symbols`.\n9. As a special case, a field with the `Expression` type validates string values\n which contain a CWL parameter reference or expression in the form\n `$(...)` or `${...}`\n", - "name": "https://w3id.org/cwl/salad#Schema_Validation" - }, - { - "type": "documentation", - "doc": "# Schema\n", - "name": "https://w3id.org/cwl/salad#Schema" - }, - { - "type": "record", - "abstract": true, - "name": "https://w3id.org/cwl/salad#Documented", - "fields": [ - { - "type": [ - "null", - "string", - { - "items": "string", - "type": "array" - } - ], - "doc": "A documentation string for this object, or an array of strings which should be concatenated.", - "name": "https://w3id.org/cwl/salad#Documented/doc", - "jsonldPredicate": "rdfs:comment" - } - ], - "docParent": "https://w3id.org/cwl/salad#Schema" - }, - { - "type": "enum", - "doc": [ - "Salad data types are based on Avro schema declarations. Refer to the\n[Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for\ndetailed information.\n", - "null: no value", - "boolean: a binary value", - "int: 32-bit signed integer", - "long: 64-bit signed integer", - "float: single precision (32-bit) IEEE 754 floating-point number", - "double: double precision (64-bit) IEEE 754 floating-point number", - "string: Unicode character sequence" - ], - "name": "https://w3id.org/cwl/salad#PrimitiveType", - "symbols": [ - "https://w3id.org/cwl/salad#null", - "http://www.w3.org/2001/XMLSchema#boolean", - "http://www.w3.org/2001/XMLSchema#int", - "http://www.w3.org/2001/XMLSchema#long", - "http://www.w3.org/2001/XMLSchema#float", - "http://www.w3.org/2001/XMLSchema#double", - "http://www.w3.org/2001/XMLSchema#string" - ] - }, - { - "type": "enum", - "docAfter": "https://w3id.org/cwl/salad#PrimitiveType", - "doc": "The **Any** type validates for any non-null value.\n", - "name": "https://w3id.org/cwl/salad#Any", - "symbols": [ - "https://w3id.org/cwl/salad#Any" - ] - }, - { - "type": "record", - "fields": [ - { - "type": "string", - "doc": "The name of the field\n", - "name": "https://w3id.org/cwl/salad#RecordField/name", - "jsonldPredicate": "@id" - }, - { - "type": [ - "PrimitiveType", - "RecordSchema", - "EnumSchema", - "ArraySchema", - "string", - { - "items": [ - "PrimitiveType", - "RecordSchema", - "EnumSchema", - "ArraySchema", - "string" - ], - "type": "array" - } - ], - "doc": "The field type\n", - "name": "https://w3id.org/cwl/salad#RecordField/type", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "typeDSL": true, - "refScope": 2 - } - } - ], - "doc": "A field of a record.", - "name": "https://w3id.org/cwl/salad#RecordField", - "extends": "https://w3id.org/cwl/salad#Documented" - }, - { - "type": "record", - "fields": [ - { - "name": "https://w3id.org/cwl/salad#RecordSchema/fields", - "doc": "Defines the fields of the record.", - "type": [ - "null", - { - "items": "RecordField", - "type": "array" - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#fields", - "mapSubject": "name", - "mapPredicate": "type" - } - }, - { - "name": "https://w3id.org/cwl/salad#RecordSchema/type", - "doc": "Must be `record`", - "type": { - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/salad#record" - ] - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "typeDSL": true, - "refScope": 2 - } - } - ], - "name": "https://w3id.org/cwl/salad#RecordSchema" - }, - { - "type": "record", - "fields": [ - { - "name": "https://w3id.org/cwl/salad#EnumSchema/symbols", - "doc": "Defines the set of valid symbols.", - "type": { - "items": "string", - "type": "array" - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#symbols", - "_type": "@id", - "identity": true - } - }, - { - "name": "https://w3id.org/cwl/salad#EnumSchema/type", - "doc": "Must be `enum`", - "type": { - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/salad#enum" - ] - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "typeDSL": true, - "refScope": 2 - } - } - ], - "doc": "Define an enumerated type.\n", - "name": "https://w3id.org/cwl/salad#EnumSchema" - }, - { - "type": "record", - "fields": [ - { - "name": "https://w3id.org/cwl/salad#ArraySchema/items", - "doc": "Defines the type of the array elements.", - "type": [ - "PrimitiveType", - "RecordSchema", - "EnumSchema", - "ArraySchema", - "string", - { - "items": [ - "PrimitiveType", - "RecordSchema", - "EnumSchema", - "ArraySchema", - "string" - ], - "type": "array" - } - ], - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#items", - "_type": "@vocab", - "refScope": 2 - } - }, - { - "name": "https://w3id.org/cwl/salad#ArraySchema/type", - "doc": "Must be `array`", - "type": { - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/salad#array" - ] - }, - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "typeDSL": true, - "refScope": 2 - } - } - ], - "name": "https://w3id.org/cwl/salad#ArraySchema" - }, - { - "type": "record", - "fields": [ - { - "type": [ - "null", - "string" - ], - "doc": "The predicate URI that this field corresponds to.\nCorresponds to JSON-LD `@id` directive.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/_id", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#_id", - "_type": "@id", - "identity": true - } - }, - { - "type": [ - "null", - "string" - ], - "doc": "The context type hint, corresponds to JSON-LD `@type` directive.\n\n* If the value of this field is `@id` and `identity` is false or\nunspecified, the parent field must be resolved using the link\nresolution rules. If `identity` is true, the parent field must be\nresolved using the identifier expansion rules.\n\n* If the value of this field is `@vocab`, the parent field must be\n resolved using the vocabulary resolution rules.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/_type" - }, - { - "type": [ - "null", - "string" - ], - "doc": "Structure hint, corresponds to JSON-LD `@container` directive.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/_container" - }, - { - "type": [ - "null", - "boolean" - ], - "doc": "If true and `_type` is `@id` this indicates that the parent field must\nbe resolved according to identity resolution rules instead of link\nresolution rules. In addition, the field value is considered an\nassertion that the linked value exists; absence of an object in the loaded document\nwith the URI is not an error.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/identity" - }, - { - "type": [ - "null", - "boolean" - ], - "doc": "If true, this indicates that link validation traversal must stop at\nthis field. This field (it is is a URI) or any fields under it (if it\nis an object or array) are not subject to link checking.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/noLinkCheck" - }, - { - "type": [ - "null", - "string" - ], - "doc": "If the value of the field is a JSON object, it must be transformed\ninto an array of JSON objects, where each key-value pair from the\nsource JSON object is a list item, the list items must be JSON objects,\nand the key is assigned to the field specified by `mapSubject`.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/mapSubject" - }, - { - "type": [ - "null", - "string" - ], - "doc": "Only applies if `mapSubject` is also provided. If the value of the\nfield is a JSON object, it is transformed as described in `mapSubject`,\nwith the addition that when the value of a map item is not an object,\nthe item is transformed to a JSON object with the key assigned to the\nfield specified by `mapSubject` and the value assigned to the field\nspecified by `mapPredicate`.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/mapPredicate" - }, - { - "type": [ - "null", - "int" - ], - "doc": "If the field contains a relative reference, it must be resolved by\nsearching for valid document references in each successive parent scope\nin the document fragment. For example, a reference of `foo` in the\ncontext `#foo/bar/baz` will first check for the existence of\n`#foo/bar/baz/foo`, followed by `#foo/bar/foo`, then `#foo/foo` and\nthen finally `#foo`. The first valid URI in the search order shall be\nused as the fully resolved value of the identifier. The value of the\nrefScope field is the specified number of levels from the containing\nidentifer scope before starting the search, so if `refScope: 2` then\n\"baz\" and \"bar\" must be stripped to get the base `#foo` and search\n`#foo/foo` and the `#foo`. The last scope searched must be the top\nlevel scope before determining if the identifier cannot be resolved.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/refScope" - }, - { - "type": [ - "null", - "boolean" - ], - "doc": "Field must be expanded based on the the Schema Salad type DSL.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/typeDSL" - }, - { - "type": [ - "null", - "boolean" - ], - "doc": "Field must be expanded based on the the Schema Salad secondary file DSL.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/secondaryFilesDSL" - }, - { - "type": [ - "null", - "string" - ], - "doc": "Append the subscope to the current scope when performing\nidentifier resolution to objects under this field.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate/subscope" - } - ], - "doc": "Attached to a record field to define how the parent record field is handled for\nURI resolution and JSON-LD context generation.\n", - "name": "https://w3id.org/cwl/salad#JsonldPredicate" - }, - { - "type": "record", - "fields": [ - { - "type": "string", - "doc": "The data type to be replaced", - "name": "https://w3id.org/cwl/salad#SpecializeDef/specializeFrom", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#specializeFrom", - "_type": "@id", - "refScope": 1 - } - }, - { - "type": "string", - "doc": "The new data type to replace with", - "name": "https://w3id.org/cwl/salad#SpecializeDef/specializeTo", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#specializeTo", - "_type": "@id", - "refScope": 1 - } - } - ], - "name": "https://w3id.org/cwl/salad#SpecializeDef" - }, - { - "type": "record", - "abstract": true, - "name": "https://w3id.org/cwl/salad#NamedType", - "fields": [ - { - "type": "string", - "doc": "The identifier for this type", - "name": "https://w3id.org/cwl/salad#NamedType/name", - "jsonldPredicate": "@id" - }, - { - "type": [ - "null", - "boolean" - ], - "default": true, - "name": "https://w3id.org/cwl/salad#NamedType/inVocab", - "doc": "If \"true\" (the default), include the short name of this type\nin the vocabulary. The vocabulary are all the symbols (field\nnames and other identifiers, such as classes and enum values)\nwhich can be used in the document without a namespace prefix.\nThese are the keys of the JSON-LD context. If false, do not\ninclude the short name in the vocabulary.\n\nThis is useful for specifying schema extensions that will be\nincluded in validation without introducing ambiguity by\nintroducing non-standard terms into the vocabulary.\n" - } - ], - "docParent": "https://w3id.org/cwl/salad#Schema" - }, - { - "fields": [ - { - "type": [ - "null", - "string" - ], - "doc": "Hint to indicate that during documentation generation, documentation\nfor this type should appear in a subsection under `docParent`.\n", - "name": "https://w3id.org/cwl/salad#DocType/docParent", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#docParent", - "_type": "@id" - } - }, - { - "type": [ - "null", - "string", - { - "items": "string", - "type": "array" - } - ], - "doc": "Hint to indicate that during documentation generation, documentation\nfor `docChild` should appear in a subsection under this type.\n", - "name": "https://w3id.org/cwl/salad#DocType/docChild", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#docChild", - "_type": "@id" - } - }, - { - "type": [ - "null", - "string" - ], - "doc": "Hint to indicate that during documentation generation, documentation\nfor this type should appear after the `docAfter` section at the same\nlevel.\n", - "name": "https://w3id.org/cwl/salad#DocType/docAfter", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#docAfter", - "_type": "@id" - } - } - ], - "docParent": "https://w3id.org/cwl/salad#Schema", - "name": "https://w3id.org/cwl/salad#DocType", - "abstract": true, - "type": "record", - "extends": "https://w3id.org/cwl/salad#Documented" - }, - { - "fields": [ - { - "type": [ - "null", - "string", - "JsonldPredicate" - ], - "doc": "Annotate this type with linked data context.\n", - "name": "https://w3id.org/cwl/salad#SchemaDefinedType/jsonldPredicate", - "jsonldPredicate": "sld:jsonldPredicate" - }, - { - "type": [ - "null", - "boolean" - ], - "doc": "If true, indicates that the type is a valid at the document root. At\nleast one type in a schema must be tagged with `documentRoot: true`.\n", - "name": "https://w3id.org/cwl/salad#SchemaDefinedType/documentRoot" - } - ], - "name": "https://w3id.org/cwl/salad#SchemaDefinedType", - "abstract": true, - "doc": "Abstract base for schema-defined types.\n", - "type": "record", - "extends": "https://w3id.org/cwl/salad#DocType" - }, - { - "type": "record", - "fields": [ - { - "type": [ - "null", - "string", - "JsonldPredicate" - ], - "doc": "Annotate this type with linked data context.\n", - "name": "https://w3id.org/cwl/salad#SaladRecordField/jsonldPredicate", - "jsonldPredicate": "sld:jsonldPredicate" - }, - { - "type": [ - "null", - "Any" - ], - "doc": "The default value to use for this field if the field is missing or \"null\".\n", - "name": "https://w3id.org/cwl/salad#SaladRecordField/default", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#default", - "noLinkCheck": true - } - } - ], - "doc": "A field of a record.", - "name": "https://w3id.org/cwl/salad#SaladRecordField", - "extends": "https://w3id.org/cwl/salad#RecordField" - }, - { - "specialize": [ - { - "specializeFrom": "https://w3id.org/cwl/salad#RecordField", - "specializeTo": "https://w3id.org/cwl/salad#SaladRecordField" - } - ], - "docParent": "https://w3id.org/cwl/salad#Schema", - "documentRoot": true, - "name": "https://w3id.org/cwl/salad#SaladRecordSchema", - "fields": [ - { - "type": [ - "null", - "boolean" - ], - "doc": "If true, this record is abstract and may be used as a base for other\nrecords, but is not valid on its own.\n", - "name": "https://w3id.org/cwl/salad#SaladRecordSchema/abstract" - }, - { - "type": [ - "null", - "string", - { - "items": "string", - "type": "array" - } - ], - "doc": "Indicates that this record inherits fields from one or more base records.\n", - "name": "https://w3id.org/cwl/salad#SaladRecordSchema/extends", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#extends", - "_type": "@id", - "refScope": 1 - } - }, - { - "type": [ - "null", - { - "items": "SpecializeDef", - "type": "array" - } - ], - "doc": "Only applies if `extends` is declared. Apply type specialization using the\nbase record as a template. For each field inherited from the base\nrecord, replace any instance of the type `specializeFrom` with\n`specializeTo`.\n", - "name": "https://w3id.org/cwl/salad#SaladRecordSchema/specialize", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#specialize", - "mapSubject": "specializeFrom", - "mapPredicate": "specializeTo" - } - } - ], - "type": "record", - "extends": [ - "https://w3id.org/cwl/salad#NamedType", - "https://w3id.org/cwl/salad#RecordSchema", - "https://w3id.org/cwl/salad#SchemaDefinedType" - ] - }, - { - "docParent": "https://w3id.org/cwl/salad#Schema", - "documentRoot": true, - "name": "https://w3id.org/cwl/salad#SaladEnumSchema", - "fields": [ - { - "type": [ - "null", - "string", - { - "items": "string", - "type": "array" - } - ], - "doc": "Indicates that this enum inherits symbols from a base enum.\n", - "name": "https://w3id.org/cwl/salad#SaladEnumSchema/extends", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#extends", - "_type": "@id", - "refScope": 1 - } - } - ], - "doc": "Define an enumerated type.\n", - "type": "record", - "extends": [ - "https://w3id.org/cwl/salad#NamedType", - "https://w3id.org/cwl/salad#EnumSchema", - "https://w3id.org/cwl/salad#SchemaDefinedType" - ] - }, - { - "docParent": "https://w3id.org/cwl/salad#Schema", - "documentRoot": true, - "name": "https://w3id.org/cwl/salad#Documentation", - "fields": [ - { - "type": { - "type": "enum", - "symbols": [ - "https://w3id.org/cwl/salad#documentation" - ] - }, - "doc": "Must be `documentation`", - "name": "https://w3id.org/cwl/salad#Documentation/type", - "jsonldPredicate": { - "_id": "https://w3id.org/cwl/salad#type", - "_type": "@vocab", - "typeDSL": true, - "refScope": 2 - } - } - ], - "doc": "A documentation section. This type exists to facilitate self-documenting\nschemas but has no role in formal validation.\n", - "type": "record", - "extends": [ - "https://w3id.org/cwl/salad#NamedType", - "https://w3id.org/cwl/salad#DocType" - ] - } -] diff --git a/salad/schema_salad/tests/mixin.yml b/salad/schema_salad/tests/mixin.yml deleted file mode 100644 index 90360c93..00000000 --- a/salad/schema_salad/tests/mixin.yml +++ /dev/null @@ -1,2 +0,0 @@ -id: four -one: two diff --git a/salad/schema_salad/tests/pt.yml b/salad/schema_salad/tests/pt.yml deleted file mode 100644 index 5f2377fd..00000000 --- a/salad/schema_salad/tests/pt.yml +++ /dev/null @@ -1,28 +0,0 @@ -$namespaces: - sld: "https://w3id.org/cwl/salad#" - dct: "http://purl.org/dc/terms/" - rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#" - rdfs: "http://www.w3.org/2000/01/rdf-schema#" - xsd: "http://www.w3.org/2001/XMLSchema#" -name: PrimitiveType -type: enum -symbols: - - "sld:null" - - "xsd:boolean" - - "xsd:int" - - "xsd:long" - - "xsd:float" - - "xsd:double" - - "xsd:string" -doc: - - | - Salad data types are based on Avro schema declarations. Refer to the - [Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for - detailed information. - - "null: no value" - - "boolean: a binary value" - - "int: 32-bit signed integer" - - "long: 64-bit signed integer" - - "float: single precision (32-bit) IEEE 754 floating-point number" - - "double: double precision (64-bit) IEEE 754 floating-point number" - - "string: Unicode character sequence" diff --git a/salad/schema_salad/tests/test_schema/CommandLineTool.yml b/salad/schema_salad/tests/test_schema/CommandLineTool.yml deleted file mode 100644 index 6a5de980..00000000 --- a/salad/schema_salad/tests/test_schema/CommandLineTool.yml +++ /dev/null @@ -1,895 +0,0 @@ -$base: "https://w3id.org/cwl/cwl#" - -$namespaces: - cwl: "https://w3id.org/cwl/cwl#" - sld: "https://w3id.org/cwl/salad#" - -$graph: - -- name: CommandLineToolDoc - type: documentation - doc: - - | - # Common Workflow Language (CWL) Command Line Tool Description, v1.0 - - This version: - * https://w3id.org/cwl/v1.0/ - - Current version: - * https://w3id.org/cwl/ - - "\n\n" - - {$include: contrib.md} - - "\n\n" - - | - # Abstract - - A Command Line Tool is a non-interactive executable program that reads - some input, performs a computation, and terminates after producing some - output. Command line programs are a flexible unit of code sharing and - reuse, unfortunately the syntax and input/output semantics among command - line programs is extremely heterogeneous. A common layer for describing - the syntax and semantics of programs can reduce this incidental - complexity by providing a consistent way to connect programs together. - This specification defines the Common Workflow Language (CWL) Command - Line Tool Description, a vendor-neutral standard for describing the - syntax and input/output semantics of command line programs. - - - {$include: intro.md} - - - | - ## Introduction to v1.0 - - This specification represents the first full release from the CWL group. - Since draft-3, version 1.0 introduces the following changes and additions: - - * The [Directory](#Directory) type. - * Syntax simplifcations: denoted by the `map<>` syntax. Example: inputs - contains a list of items, each with an id. Now one can specify - a mapping of that identifier to the corresponding - `CommandInputParamater`. - ``` - inputs: - - id: one - type: string - doc: First input parameter - - id: two - type: int - doc: Second input parameter - ``` - can be - ``` - inputs: - one: - type: string - doc: First input parameter - two: - type: int - doc: Second input parameter - ``` - * [InitialWorkDirRequirement](#InitialWorkDirRequirement): list of - files and subdirectories to be present in the output directory prior - to execution. - * Shortcuts for specifying the standard [output](#stdout) and/or - [error](#stderr) streams as a (streamable) File output. - * [SoftwareRequirement](#SoftwareRequirement) for describing software - dependencies of a tool. - * The common `description` field has been renamed to `doc`. - - ## Errata - - Post v1.0 release changes to the spec. - - * 13 July 2016: Mark `baseCommand` as optional and update descriptive text. - - ## Purpose - - Standalone programs are a flexible and interoperable form of code reuse. - Unlike monolithic applications, applications and analysis workflows which - are composed of multiple separate programs can be written in multiple - languages and execute concurrently on multiple hosts. However, POSIX - does not dictate computer-readable grammar or semantics for program input - and output, resulting in extremely heterogeneous command line grammar and - input/output semantics among program. This is a particular problem in - distributed computing (multi-node compute clusters) and virtualized - environments (such as Docker containers) where it is often necessary to - provision resources such as input files before executing the program. - - Often this gap is filled by hard coding program invocation and - implicitly assuming requirements will be met, or abstracting program - invocation with wrapper scripts or descriptor documents. Unfortunately, - where these approaches are application or platform specific it creates a - significant barrier to reproducibility and portability, as methods - developed for one platform must be manually ported to be used on new - platforms. Similarly it creates redundant work, as wrappers for popular - tools must be rewritten for each application or platform in use. - - The Common Workflow Language Command Line Tool Description is designed to - provide a common standard description of grammar and semantics for - invoking programs used in data-intensive fields such as Bioinformatics, - Chemistry, Physics, Astronomy, and Statistics. This specification - defines a precise data and execution model for Command Line Tools that - can be implemented on a variety of computing platforms, ranging from a - single workstation to cluster, grid, cloud, and high performance - computing platforms. - - - {$include: concepts.md} - - {$include: invocation.md} - - -- type: record - name: EnvironmentDef - doc: | - Define an environment variable that will be set in the runtime environment - by the workflow platform when executing the command line tool. May be the - result of executing an expression, such as getting a parameter from input. - fields: - - name: envName - type: string - doc: The environment variable name - - name: envValue - type: [string, Expression] - doc: The environment variable value - -- type: record - name: CommandLineBinding - extends: InputBinding - doc: | - - When listed under `inputBinding` in the input schema, the term - "value" refers to the the corresponding value in the input object. For - binding objects listed in `CommandLineTool.arguments`, the term "value" - refers to the effective value after evaluating `valueFrom`. - - The binding behavior when building the command line depends on the data - type of the value. If there is a mismatch between the type described by - the input schema and the effective value, such as resulting from an - expression evaluation, an implementation must use the data type of the - effective value. - - - **string**: Add `prefix` and the string to the command line. - - - **number**: Add `prefix` and decimal representation to command line. - - - **boolean**: If true, add `prefix` to the command line. If false, add - nothing. - - - **File**: Add `prefix` and the value of - [`File.path`](#File) to the command line. - - - **array**: If `itemSeparator` is specified, add `prefix` and the join - the array into a single string with `itemSeparator` separating the - items. Otherwise first add `prefix`, then recursively process - individual elements. - - - **object**: Add `prefix` only, and recursively add object fields for - which `inputBinding` is specified. - - - **null**: Add nothing. - - fields: - - name: position - type: int? - doc: "The sorting key. Default position is 0." - - name: prefix - type: string? - doc: "Command line prefix to add before the value." - - name: separate - type: boolean? - doc: | - If true (default), then the prefix and value must be added as separate - command line arguments; if false, prefix and value must be concatenated - into a single command line argument. - - name: itemSeparator - type: string? - doc: | - Join the array elements into a single string with the elements - separated by by `itemSeparator`. - - name: valueFrom - type: - - "null" - - string - - Expression - jsonldPredicate: "cwl:valueFrom" - doc: | - If `valueFrom` is a constant string value, use this as the value and - apply the binding rules above. - - If `valueFrom` is an expression, evaluate the expression to yield the - actual value to use to build the command line and apply the binding - rules above. If the inputBinding is associated with an input - parameter, the value of `self` in the expression will be the value of the - input parameter. - - When a binding is part of the `CommandLineTool.arguments` field, - the `valueFrom` field is required. - - name: shellQuote - type: boolean? - doc: | - If `ShellCommandRequirement` is in the requirements for the current command, - this controls whether the value is quoted on the command line (default is true). - Use `shellQuote: false` to inject metacharacters for operations such as pipes. - -- type: record - name: CommandOutputBinding - extends: OutputBinding - doc: | - Describes how to generate an output parameter based on the files produced - by a CommandLineTool. - - The output parameter is generated by applying these operations in - the following order: - - - glob - - loadContents - - outputEval - fields: - - name: glob - type: - - "null" - - string - - Expression - - type: array - items: string - doc: | - Find files relative to the output directory, using POSIX glob(3) - pathname matching. If an array is provided, find files that match any - pattern in the array. If an expression is provided, the expression must - return a string or an array of strings, which will then be evaluated as - one or more glob patterns. Must only match and return files which - actually exist. - - name: loadContents - type: - - "null" - - boolean - jsonldPredicate: "cwl:loadContents" - doc: | - For each file matched in `glob`, read up to - the first 64 KiB of text from the file and place it in the `contents` - field of the file object for manipulation by `outputEval`. - - name: outputEval - type: - - "null" - - string - - Expression - doc: | - Evaluate an expression to generate the output value. If `glob` was - specified, the value of `self` must be an array containing file objects - that were matched. If no files were matched, `self` must be a zero - length array; if a single file was matched, the value of `self` is an - array of a single element. Additionally, if `loadContents` is `true`, - the File objects must include up to the first 64 KiB of file contents - in the `contents` field. - - -- name: CommandInputRecordField - type: record - extends: InputRecordField - specialize: - - specializeFrom: InputRecordSchema - specializeTo: CommandInputRecordSchema - - specializeFrom: InputEnumSchema - specializeTo: CommandInputEnumSchema - - specializeFrom: InputArraySchema - specializeTo: CommandInputArraySchema - - specializeFrom: InputBinding - specializeTo: CommandLineBinding - - -- name: CommandInputRecordSchema - type: record - extends: InputRecordSchema - specialize: - - specializeFrom: InputRecordField - specializeTo: CommandInputRecordField - - -- name: CommandInputEnumSchema - type: record - extends: InputEnumSchema - specialize: - - specializeFrom: InputBinding - specializeTo: CommandLineBinding - - -- name: CommandInputArraySchema - type: record - extends: InputArraySchema - specialize: - - specializeFrom: InputRecordSchema - specializeTo: CommandInputRecordSchema - - specializeFrom: InputEnumSchema - specializeTo: CommandInputEnumSchema - - specializeFrom: InputArraySchema - specializeTo: CommandInputArraySchema - - specializeFrom: InputBinding - specializeTo: CommandLineBinding - - -- name: CommandOutputRecordField - type: record - extends: OutputRecordField - specialize: - - specializeFrom: OutputRecordSchema - specializeTo: CommandOutputRecordSchema - - specializeFrom: OutputEnumSchema - specializeTo: CommandOutputEnumSchema - - specializeFrom: OutputArraySchema - specializeTo: CommandOutputArraySchema - - specializeFrom: OutputBinding - specializeTo: CommandOutputBinding - - -- name: CommandOutputRecordSchema - type: record - extends: OutputRecordSchema - specialize: - - specializeFrom: OutputRecordField - specializeTo: CommandOutputRecordField - - -- name: CommandOutputEnumSchema - type: record - extends: OutputEnumSchema - specialize: - - specializeFrom: OutputRecordSchema - specializeTo: CommandOutputRecordSchema - - specializeFrom: OutputEnumSchema - specializeTo: CommandOutputEnumSchema - - specializeFrom: OutputArraySchema - specializeTo: CommandOutputArraySchema - - specializeFrom: OutputBinding - specializeTo: CommandOutputBinding - - -- name: CommandOutputArraySchema - type: record - extends: OutputArraySchema - specialize: - - specializeFrom: OutputRecordSchema - specializeTo: CommandOutputRecordSchema - - specializeFrom: OutputEnumSchema - specializeTo: CommandOutputEnumSchema - - specializeFrom: OutputArraySchema - specializeTo: CommandOutputArraySchema - - specializeFrom: OutputBinding - specializeTo: CommandOutputBinding - - -- type: record - name: CommandInputParameter - extends: InputParameter - doc: An input parameter for a CommandLineTool. - specialize: - - specializeFrom: InputRecordSchema - specializeTo: CommandInputRecordSchema - - specializeFrom: InputEnumSchema - specializeTo: CommandInputEnumSchema - - specializeFrom: InputArraySchema - specializeTo: CommandInputArraySchema - - specializeFrom: InputBinding - specializeTo: CommandLineBinding - -- type: record - name: CommandOutputParameter - extends: OutputParameter - doc: An output parameter for a CommandLineTool. - specialize: - - specializeFrom: OutputBinding - specializeTo: CommandOutputBinding - fields: - - name: type - type: - - "null" - - CWLType - - stdout - - stderr - - CommandOutputRecordSchema - - CommandOutputEnumSchema - - CommandOutputArraySchema - - string - - type: array - items: - - CWLType - - CommandOutputRecordSchema - - CommandOutputEnumSchema - - CommandOutputArraySchema - - string - jsonldPredicate: - "_id": "sld:type" - "_type": "@vocab" - refScope: 2 - typeDSL: True - doc: | - Specify valid types of data that may be assigned to this parameter. - -- name: stdout - type: enum - symbols: [ "cwl:stdout" ] - docParent: "#CommandOutputParameter" - doc: | - Only valid as a `type` for a `CommandLineTool` output with no - `outputBinding` set. - - The following - ``` - outputs: - an_output_name: - type: stdout - - stdout: a_stdout_file - ``` - is equivalent to - ``` - outputs: - an_output_name: - type: File - streamable: true - outputBinding: - glob: a_stdout_file - - stdout: a_stdout_file - ``` - - If there is no `stdout` name provided, a random filename will be created. - For example, the following - ``` - outputs: - an_output_name: - type: stdout - ``` - is equivalent to - ``` - outputs: - an_output_name: - type: File - streamable: true - outputBinding: - glob: random_stdout_filenameABCDEFG - - stdout: random_stdout_filenameABCDEFG - ``` - - -- name: stderr - type: enum - symbols: [ "cwl:stderr" ] - docParent: "#CommandOutputParameter" - doc: | - Only valid as a `type` for a `CommandLineTool` output with no - `outputBinding` set. - - The following - ``` - outputs: - an_output_name: - type: stderr - - stderr: a_stderr_file - ``` - is equivalent to - ``` - outputs: - an_output_name: - type: File - streamable: true - outputBinding: - glob: a_stderr_file - - stderr: a_stderr_file - ``` - - If there is no `stderr` name provided, a random filename will be created. - For example, the following - ``` - outputs: - an_output_name: - type: stderr - ``` - is equivalent to - ``` - outputs: - an_output_name: - type: File - streamable: true - outputBinding: - glob: random_stderr_filenameABCDEFG - - stderr: random_stderr_filenameABCDEFG - ``` - - -- type: record - name: CommandLineTool - extends: Process - documentRoot: true - specialize: - - specializeFrom: InputParameter - specializeTo: CommandInputParameter - - specializeFrom: OutputParameter - specializeTo: CommandOutputParameter - doc: | - This defines the schema of the CWL Command Line Tool Description document. - - fields: - - name: class - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - type: string - - name: baseCommand - doc: | - Specifies the program to execute. If an array, the first element of - the array is the command to execute, and subsequent elements are - mandatory command line arguments. The elements in `baseCommand` must - appear before any command line bindings from `inputBinding` or - `arguments`. - - If `baseCommand` is not provided or is an empty array, the first - element of the command line produced after processing `inputBinding` or - `arguments` must be used as the program to execute. - - If the program includes a path separator character it must - be an absolute path, otherwise it is an error. If the program does not - include a path separator, search the `$PATH` variable in the runtime - environment of the workflow runner find the absolute path of the - executable. - type: - - string? - - string[]? - jsonldPredicate: - "_id": "cwl:baseCommand" - "_container": "@list" - - name: arguments - doc: | - Command line bindings which are not directly associated with input parameters. - type: - - "null" - - type: array - items: [string, Expression, CommandLineBinding] - jsonldPredicate: - "_id": "cwl:arguments" - "_container": "@list" - - name: stdin - type: ["null", string, Expression] - doc: | - A path to a file whose contents must be piped into the command's - standard input stream. - - name: stderr - type: ["null", string, Expression] - jsonldPredicate: "https://w3id.org/cwl/cwl#stderr" - doc: | - Capture the command's standard error stream to a file written to - the designated output directory. - - If `stderr` is a string, it specifies the file name to use. - - If `stderr` is an expression, the expression is evaluated and must - return a string with the file name to use to capture stderr. If the - return value is not a string, or the resulting path contains illegal - characters (such as the path separator `/`) it is an error. - - name: stdout - type: ["null", string, Expression] - jsonldPredicate: "https://w3id.org/cwl/cwl#stdout" - doc: | - Capture the command's standard output stream to a file written to - the designated output directory. - - If `stdout` is a string, it specifies the file name to use. - - If `stdout` is an expression, the expression is evaluated and must - return a string with the file name to use to capture stdout. If the - return value is not a string, or the resulting path contains illegal - characters (such as the path separator `/`) it is an error. - - name: successCodes - type: int[]? - doc: | - Exit codes that indicate the process completed successfully. - - - name: temporaryFailCodes - type: int[]? - doc: | - Exit codes that indicate the process failed due to a possibly - temporary condition, where executing the process with the same - runtime environment and inputs may produce different results. - - - name: permanentFailCodes - type: int[]? - doc: - Exit codes that indicate the process failed due to a permanent logic - error, where executing the process with the same runtime environment and - same inputs is expected to always fail. - - -- type: record - name: DockerRequirement - extends: ProcessRequirement - doc: | - Indicates that a workflow component should be run in a - [Docker](http://docker.com) container, and specifies how to fetch or build - the image. - - If a CommandLineTool lists `DockerRequirement` under - `hints` (or `requirements`), it may (or must) be run in the specified Docker - container. - - The platform must first acquire or install the correct Docker image as - specified by `dockerPull`, `dockerImport`, `dockerLoad` or `dockerFile`. - - The platform must execute the tool in the container using `docker run` with - the appropriate Docker image and tool command line. - - The workflow platform may provide input files and the designated output - directory through the use of volume bind mounts. The platform may rewrite - file paths in the input object to correspond to the Docker bind mounted - locations. - - When running a tool contained in Docker, the workflow platform must not - assume anything about the contents of the Docker container, such as the - presence or absence of specific software, except to assume that the - generated command line represents a valid command within the runtime - environment of the container. - - ## Interaction with other requirements - - If [EnvVarRequirement](#EnvVarRequirement) is specified alongside a - DockerRequirement, the environment variables must be provided to Docker - using `--env` or `--env-file` and interact with the container's preexisting - environment as defined by Docker. - - fields: - - name: class - type: string - doc: "Always 'DockerRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: dockerPull - type: string? - doc: "Specify a Docker image to retrieve using `docker pull`." - - name: dockerLoad - type: string? - doc: "Specify a HTTP URL from which to download a Docker image using `docker load`." - - name: dockerFile - type: string? - doc: "Supply the contents of a Dockerfile which will be built using `docker build`." - - name: dockerImport - type: string? - doc: "Provide HTTP URL to download and gunzip a Docker images using `docker import." - - name: dockerImageId - type: string? - doc: | - The image id that will be used for `docker run`. May be a - human-readable image name or the image identifier hash. May be skipped - if `dockerPull` is specified, in which case the `dockerPull` image id - must be used. - - name: dockerOutputDirectory - type: string? - doc: | - Set the designated output directory to a specific location inside the - Docker container. - - -- type: record - name: SoftwareRequirement - extends: ProcessRequirement - doc: | - A list of software packages that should be configured in the environment of - the defined process. - fields: - - name: class - type: string - doc: "Always 'SoftwareRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: packages - type: SoftwarePackage[] - doc: "The list of software to be configured." - jsonldPredicate: - mapSubject: package - mapPredicate: specs - -- name: SoftwarePackage - type: record - fields: - - name: package - type: string - doc: "The common name of the software to be configured." - - name: version - type: string[]? - doc: "The (optional) version of the software to configured." - - name: specs - type: string[]? - doc: | - Must be one or more IRIs identifying resources for installing or - enabling the software. Implementations may provide resolvers which map - well-known software spec IRIs to some configuration action. - - For example, an IRI `https://packages.debian.org/jessie/bowtie` could - be resolved with `apt-get install bowtie`. An IRI - `https://anaconda.org/bioconda/bowtie` could be resolved with `conda - install -c bioconda bowtie`. - - Tools may also provide IRIs to index entries such as - [RRID](http://www.identifiers.org/rrid/), such as - `http://identifiers.org/rrid/RRID:SCR_005476` - - -- name: Dirent - type: record - doc: | - Define a file or subdirectory that must be placed in the designated output - directory prior to executing the command line tool. May be the result of - executing an expression, such as building a configuration file from a - template. - fields: - - name: entryname - type: ["null", string, Expression] - jsonldPredicate: - _id: cwl:entryname - doc: | - The name of the file or subdirectory to create in the output directory. - If `entry` is a File or Directory, this overrides `basename`. Optional. - - name: entry - type: [string, Expression] - jsonldPredicate: - _id: cwl:entry - doc: | - If the value is a string literal or an expression which evaluates to a - string, a new file must be created with the string as the file contents. - - If the value is an expression that evaluates to a `File` object, this - indicates the referenced file should be added to the designated output - directory prior to executing the tool. - - If the value is an expression that evaluates to a `Dirent` object, this - indicates that the File or Directory in `entry` should be added to the - designated output directory with the name in `entryname`. - - If `writable` is false, the file may be made available using a bind - mount or file system link to avoid unnecessary copying of the input - file. - - name: writable - type: boolean? - doc: | - If true, the file or directory must be writable by the tool. Changes - to the file or directory must be isolated and not visible by any other - CommandLineTool process. This may be implemented by making a copy of - the original file or directory. Default false (files and directories - read-only by default). - - -- name: InitialWorkDirRequirement - type: record - extends: ProcessRequirement - doc: - Define a list of files and subdirectories that must be created by the - workflow platform in the designated output directory prior to executing the - command line tool. - fields: - - name: class - type: string - doc: InitialWorkDirRequirement - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: listing - type: - - type: array - items: [File, Directory, Dirent, string, Expression] - - string - - Expression - jsonldPredicate: - _id: "cwl:listing" - doc: | - The list of files or subdirectories that must be placed in the - designated output directory prior to executing the command line tool. - - May be an expression. If so, the expression return value must validate - as `{type: array, items: [File, Directory]}`. - - -- name: EnvVarRequirement - type: record - extends: ProcessRequirement - doc: | - Define a list of environment variables which will be set in the - execution environment of the tool. See `EnvironmentDef` for details. - fields: - - name: class - type: string - doc: "Always 'EnvVarRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: envDef - type: EnvironmentDef[] - doc: The list of environment variables. - jsonldPredicate: - mapSubject: envName - mapPredicate: envValue - - -- type: record - name: ShellCommandRequirement - extends: ProcessRequirement - doc: | - Modify the behavior of CommandLineTool to generate a single string - containing a shell command line. Each item in the argument list must be - joined into a string separated by single spaces and quoted to prevent - intepretation by the shell, unless `CommandLineBinding` for that argument - contains `shellQuote: false`. If `shellQuote: false` is specified, the - argument is joined into the command string without quoting, which allows - the use of shell metacharacters such as `|` for pipes. - fields: - - name: class - type: string - doc: "Always 'ShellCommandRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - -- type: record - name: ResourceRequirement - extends: ProcessRequirement - doc: | - Specify basic hardware resource requirements. - - "min" is the minimum amount of a resource that must be reserved to schedule - a job. If "min" cannot be satisfied, the job should not be run. - - "max" is the maximum amount of a resource that the job shall be permitted - to use. If a node has sufficient resources, multiple jobs may be scheduled - on a single node provided each job's "max" resource requirements are - met. If a job attempts to exceed its "max" resource allocation, an - implementation may deny additional resources, which may result in job - failure. - - If "min" is specified but "max" is not, then "max" == "min" - If "max" is specified by "min" is not, then "min" == "max". - - It is an error if max < min. - - It is an error if the value of any of these fields is negative. - - If neither "min" nor "max" is specified for a resource, an implementation may provide a default. - - fields: - - name: class - type: string - doc: "Always 'ResourceRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: coresMin - type: ["null", long, string, Expression] - doc: Minimum reserved number of CPU cores - - - name: coresMax - type: ["null", int, string, Expression] - doc: Maximum reserved number of CPU cores - - - name: ramMin - type: ["null", long, string, Expression] - doc: Minimum reserved RAM in mebibytes (2**20) - - - name: ramMax - type: ["null", long, string, Expression] - doc: Maximum reserved RAM in mebibytes (2**20) - - - name: tmpdirMin - type: ["null", long, string, Expression] - doc: Minimum reserved filesystem based storage for the designated temporary directory, in mebibytes (2**20) - - - name: tmpdirMax - type: ["null", long, string, Expression] - doc: Maximum reserved filesystem based storage for the designated temporary directory, in mebibytes (2**20) - - - name: outdirMin - type: ["null", long, string, Expression] - doc: Minimum reserved filesystem based storage for the designated output directory, in mebibytes (2**20) - - - name: outdirMax - type: ["null", long, string, Expression] - doc: Maximum reserved filesystem based storage for the designated output directory, in mebibytes (2**20) diff --git a/salad/schema_salad/tests/test_schema/CommonWorkflowLanguage.yml b/salad/schema_salad/tests/test_schema/CommonWorkflowLanguage.yml deleted file mode 100644 index 73921e89..00000000 --- a/salad/schema_salad/tests/test_schema/CommonWorkflowLanguage.yml +++ /dev/null @@ -1,11 +0,0 @@ -$base: "https://w3id.org/cwl/cwl#" - -$namespaces: - cwl: "https://w3id.org/cwl/cwl#" - sld: "https://w3id.org/cwl/salad#" - -$graph: - -- $import: Process.yml -- $import: CommandLineTool.yml -- $import: Workflow.yml diff --git a/salad/schema_salad/tests/test_schema/Process.yml b/salad/schema_salad/tests/test_schema/Process.yml deleted file mode 100644 index e83574c1..00000000 --- a/salad/schema_salad/tests/test_schema/Process.yml +++ /dev/null @@ -1,745 +0,0 @@ -$base: "https://w3id.org/cwl/cwl#" - -$namespaces: - cwl: "https://w3id.org/cwl/cwl#" - sld: "https://w3id.org/cwl/salad#" - -$graph: - -- name: "Common Workflow Language, v1.0" - type: documentation - doc: {$include: concepts.md} - -- $import: "metaschema_base.yml" - -- name: BaseTypesDoc - type: documentation - doc: | - ## Base types - docChild: - - "#CWLType" - - "#Process" - -- type: enum - name: CWLVersion - doc: "Version symbols for published CWL document versions." - symbols: - - cwl:draft-2 - - cwl:draft-3.dev1 - - cwl:draft-3.dev2 - - cwl:draft-3.dev3 - - cwl:draft-3.dev4 - - cwl:draft-3.dev5 - - cwl:draft-3 - - cwl:draft-4.dev1 - - cwl:draft-4.dev2 - - cwl:draft-4.dev3 - - cwl:v1.0.dev4 - - cwl:v1.0 - -- name: CWLType - type: enum - extends: "sld:PrimitiveType" - symbols: - - cwl:File - - cwl:Directory - doc: - - "Extends primitive types with the concept of a file and directory as a builtin type." - - "File: A File object" - - "Directory: A Directory object" - -- name: File - type: record - docParent: "#CWLType" - doc: | - Represents a file (or group of files if `secondaryFiles` is specified) that - must be accessible by tools using standard POSIX file system call API such as - open(2) and read(2). - fields: - - name: class - type: - type: enum - symbols: - - cwl:File - jsonldPredicate: - _id: "@type" - _type: "@vocab" - doc: Must be `File` to indicate this object describes a file. - - name: location - type: string? - doc: | - An IRI that identifies the file resource. This may be a relative - reference, in which case it must be resolved using the base IRI of the - document. The location may refer to a local or remote resource; the - implementation must use the IRI to retrieve file content. If an - implementation is unable to retrieve the file content stored at a - remote resource (due to unsupported protocol, access denied, or other - issue) it must signal an error. - - If the `location` field is not provided, the `contents` field must be - provided. The implementation must assign a unique identifier for - the `location` field. - - If the `path` field is provided but the `location` field is not, an - implementation may assign the value of the `path` field to `location`, - then follow the rules above. - jsonldPredicate: - _id: "@id" - _type: "@id" - - name: path - type: string? - doc: | - The local host path where the File is available when a CommandLineTool is - executed. This field must be set by the implementation. The final - path component must match the value of `basename`. This field - must not be used in any other context. The command line tool being - executed must be able to to access the file at `path` using the POSIX - `open(2)` syscall. - - As a special case, if the `path` field is provided but the `location` - field is not, an implementation may assign the value of the `path` - field to `location`, and remove the `path` field. - - If the `path` contains [POSIX shell metacharacters](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02) - (`|`,`&`, `;`, `<`, `>`, `(`,`)`, `$`,`` ` ``, `\`, `"`, `'`, - ``, ``, and ``) or characters - [not allowed](http://www.iana.org/assignments/idna-tables-6.3.0/idna-tables-6.3.0.xhtml) - for [Internationalized Domain Names for Applications](https://tools.ietf.org/html/rfc6452) - then implementations may terminate the process with a - `permanentFailure`. - jsonldPredicate: - "_id": "cwl:path" - "_type": "@id" - - name: basename - type: string? - doc: | - The base name of the file, that is, the name of the file without any - leading directory path. The base name must not contain a slash `/`. - - If not provided, the implementation must set this field based on the - `location` field by taking the final path component after parsing - `location` as an IRI. If `basename` is provided, it is not required to - match the value from `location`. - - When this file is made available to a CommandLineTool, it must be named - with `basename`, i.e. the final component of the `path` field must match - `basename`. - jsonldPredicate: "cwl:basename" - - name: dirname - type: string? - doc: | - The name of the directory containing file, that is, the path leading up - to the final slash in the path such that `dirname + '/' + basename == - path`. - - The implementation must set this field based on the value of `path` - prior to evaluating parameter references or expressions in a - CommandLineTool document. This field must not be used in any other - context. - - name: nameroot - type: string? - doc: | - The basename root such that `nameroot + nameext == basename`, and - `nameext` is empty or begins with a period and contains at most one - period. For the purposess of path splitting leading periods on the - basename are ignored; a basename of `.cshrc` will have a nameroot of - `.cshrc`. - - The implementation must set this field automatically based on the value - of `basename` prior to evaluating parameter references or expressions. - - name: nameext - type: string? - doc: | - The basename extension such that `nameroot + nameext == basename`, and - `nameext` is empty or begins with a period and contains at most one - period. Leading periods on the basename are ignored; a basename of - `.cshrc` will have an empty `nameext`. - - The implementation must set this field automatically based on the value - of `basename` prior to evaluating parameter references or expressions. - - name: checksum - type: string? - doc: | - Optional hash code for validating file integrity. Currently must be in the form - "sha1$ + hexadecimal string" using the SHA-1 algorithm. - - name: size - type: long? - doc: Optional file size - - name: "secondaryFiles" - type: - - "null" - - type: array - items: [File, Directory] - jsonldPredicate: "cwl:secondaryFiles" - doc: | - A list of additional files that are associated with the primary file - and must be transferred alongside the primary file. Examples include - indexes of the primary file, or external references which must be - included when loading primary document. A file object listed in - `secondaryFiles` may itself include `secondaryFiles` for which the same - rules apply. - - name: format - type: string? - jsonldPredicate: - _id: cwl:format - _type: "@id" - identity: true - doc: | - The format of the file: this must be an IRI of a concept node that - represents the file format, preferrably defined within an ontology. - If no ontology is available, file formats may be tested by exact match. - - Reasoning about format compatability must be done by checking that an - input file format is the same, `owl:equivalentClass` or - `rdfs:subClassOf` the format required by the input parameter. - `owl:equivalentClass` is transitive with `rdfs:subClassOf`, e.g. if - ` owl:equivalentClass ` and ` owl:subclassOf ` then infer - ` owl:subclassOf `. - - File format ontologies may be provided in the "$schema" metadata at the - root of the document. If no ontologies are specified in `$schema`, the - runtime may perform exact file format matches. - - name: contents - type: string? - doc: | - File contents literal. - - If neither `location` nor `path` is provided, `contents` must be - non-null. The implementation must assign a unique identifier for the - `location` field. When the file is staged as input to CommandLineTool, - the value of `contents` must be written to a file. - - If `loadContents` of `inputBinding` or `outputBinding` is true - and `location` is valid, it must refer to a UTF-8 text file 64 - KiB or smaller, and the implementation must read the entire - contents of the file and place it in the "contents" field. If - the size of the file is greater than 64 KiB, the implementation must - raise a fatal error. - - If "contents" is set as a result of an expression, InitialWorkDirRequirement, or cwl.input.json - -- name: Directory - type: record - docAfter: "#File" - doc: | - Represents a directory to present to a command line tool. - fields: - - name: class - type: - type: enum - symbols: - - cwl:Directory - jsonldPredicate: - _id: "@type" - _type: "@vocab" - doc: Must be `Directory` to indicate this object describes a Directory. - - name: location - type: string? - doc: | - An IRI that identifies the directory resource. This may be a relative - reference, in which case it must be resolved using the base IRI of the - document. The location may refer to a local or remote resource. If - the `listing` field is not set, the implementation must use the - location IRI to retrieve directory listing. If an implementation is - unable to retrieve the directory listing stored at a remote resource (due to - unsupported protocol, access denied, or other issue) it must signal an - error. - - If the `location` field is not provided, the `listing` field must be - provided. The implementation must assign a unique identifier for - the `location` field. - - If the `path` field is provided but the `location` field is not, an - implementation may assign the value of the `path` field to `location`, - then follow the rules above. - jsonldPredicate: - _id: "@id" - _type: "@id" - - name: path - type: string? - doc: | - The local path where the Directory is made available prior to executing a - CommandLineTool. This must be set by the implementation. This field - must not be used in any other context. The command line tool being - executed must be able to to access the directory at `path` using the POSIX - `opendir(2)` syscall. - - If the `path` contains [POSIX shell metacharacters](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02) - (`|`,`&`, `;`, `<`, `>`, `(`,`)`, `$`,`` ` ``, `\`, `"`, `'`, - ``, ``, and ``) or characters - [not allowed](http://www.iana.org/assignments/idna-tables-6.3.0/idna-tables-6.3.0.xhtml) - for [Internationalized Domain Names for Applications](https://tools.ietf.org/html/rfc6452) - then implementations may terminate the process with a - `permanentFailure`. - jsonldPredicate: - _id: "cwl:path" - _type: "@id" - - name: basename - type: string? - doc: | - The base name of the directory, that is, the name of the file without any - leading directory path. The base name must not contain a slash `/`. - - If not provided, the implementation must set this field based on the - `location` field by taking the final path component after parsing - `location` as an IRI. If `basename` is provided, it is not required to - match the value from `location`. - - When this file is made available to a CommandLineTool, it must be named - with `basename`, i.e. the final component of the `path` field must match - `basename`. - jsonldPredicate: "cwl:basename" - - name: listing - type: - - "null" - - type: array - items: [File, Directory] - doc: | - List of files or subdirectories contained in this directory. The name - of each file or subdirectory is determined by the `basename` field of - each `File` or `Directory` object. It is an error if a `File` shares a - `basename` with any other entry in `listing`. If two or more - `Directory` object share the same `basename`, this must be treated as - equivalent to a single subdirectory with the listings recursively - merged. - jsonldPredicate: - _id: "cwl:listing" - -- name: SchemaBase - type: record - abstract: true - fields: - - name: label - type: - - "null" - - string - jsonldPredicate: "rdfs:label" - doc: "A short, human-readable label of this object." - - -- name: Parameter - type: record - extends: SchemaBase - abstract: true - doc: | - Define an input or output parameter to a process. - - fields: - - name: secondaryFiles - type: - - "null" - - string - - Expression - - type: array - items: [string, Expression] - jsonldPredicate: "cwl:secondaryFiles" - doc: | - Only valid when `type: File` or is an array of `items: File`. - - Describes files that must be included alongside the primary file(s). - - If the value is an expression, the value of `self` in the expression - must be the primary input or output File to which this binding applies. - - If the value is a string, it specifies that the following pattern - should be applied to the primary file: - - 1. If string begins with one or more caret `^` characters, for each - caret, remove the last file extension from the path (the last - period `.` and all following characters). If there are no file - extensions, the path is unchanged. - 2. Append the remainder of the string to the end of the file path. - - - name: format - type: - - "null" - - string - - type: array - items: string - - Expression - jsonldPredicate: - _id: cwl:format - _type: "@id" - identity: true - doc: | - Only valid when `type: File` or is an array of `items: File`. - - For input parameters, this must be one or more IRIs of concept nodes - that represents file formats which are allowed as input to this - parameter, preferrably defined within an ontology. If no ontology is - available, file formats may be tested by exact match. - - For output parameters, this is the file format that will be assigned to - the output parameter. - - - name: streamable - type: boolean? - doc: | - Only valid when `type: File` or is an array of `items: File`. - - A value of `true` indicates that the file is read or written - sequentially without seeking. An implementation may use this flag to - indicate whether it is valid to stream file contents using a named - pipe. Default: `false`. - - - name: doc - type: - - string? - - string[]? - doc: "A documentation string for this type, or an array of strings which should be concatenated." - jsonldPredicate: "rdfs:comment" - - -- type: enum - name: Expression - doc: | - 'Expression' is not a real type. It indicates that a field must allow - runtime parameter references. If [InlineJavascriptRequirement](#InlineJavascriptRequirement) - is declared and supported by the platform, the field must also allow - Javascript expressions. - symbols: - - cwl:ExpressionPlaceholder - - -- name: InputBinding - type: record - abstract: true - fields: - - name: loadContents - type: - - "null" - - boolean - jsonldPredicate: "cwl:loadContents" - doc: | - Only valid when `type: File` or is an array of `items: File`. - - Read up to the first 64 KiB of text from the file and place it in the - "contents" field of the file object for use by expressions. - - -- name: OutputBinding - type: record - abstract: true - - -- name: InputSchema - extends: SchemaBase - type: record - abstract: true - - -- name: OutputSchema - extends: SchemaBase - type: record - abstract: true - - -- name: InputRecordField - type: record - extends: "sld:RecordField" - specialize: - - specializeFrom: "sld:RecordSchema" - specializeTo: InputRecordSchema - - specializeFrom: "sld:EnumSchema" - specializeTo: InputEnumSchema - - specializeFrom: "sld:ArraySchema" - specializeTo: InputArraySchema - - specializeFrom: "sld:PrimitiveType" - specializeTo: CWLType - fields: - - name: inputBinding - type: InputBinding? - jsonldPredicate: "cwl:inputBinding" - - name: label - type: string? - jsonldPredicate: "rdfs:label" - doc: "A short, human-readable label of this process object." - - -- name: InputRecordSchema - type: record - extends: ["sld:RecordSchema", InputSchema] - specialize: - - specializeFrom: "sld:RecordField" - specializeTo: InputRecordField - - -- name: InputEnumSchema - type: record - extends: ["sld:EnumSchema", InputSchema] - fields: - - name: inputBinding - type: InputBinding? - jsonldPredicate: "cwl:inputBinding" - - -- name: InputArraySchema - type: record - extends: ["sld:ArraySchema", InputSchema] - specialize: - - specializeFrom: "sld:RecordSchema" - specializeTo: InputRecordSchema - - specializeFrom: "sld:EnumSchema" - specializeTo: InputEnumSchema - - specializeFrom: "sld:ArraySchema" - specializeTo: InputArraySchema - - specializeFrom: "sld:PrimitiveType" - specializeTo: CWLType - fields: - - name: inputBinding - type: InputBinding? - jsonldPredicate: "cwl:inputBinding" - - -- name: OutputRecordField - type: record - extends: "sld:RecordField" - specialize: - - specializeFrom: "sld:RecordSchema" - specializeTo: OutputRecordSchema - - specializeFrom: "sld:EnumSchema" - specializeTo: OutputEnumSchema - - specializeFrom: "sld:ArraySchema" - specializeTo: OutputArraySchema - - specializeFrom: "sld:PrimitiveType" - specializeTo: CWLType - fields: - - name: outputBinding - type: OutputBinding? - jsonldPredicate: "cwl:outputBinding" - - -- name: OutputRecordSchema - type: record - extends: ["sld:RecordSchema", "#OutputSchema"] - docParent: "#OutputParameter" - specialize: - - specializeFrom: "sld:RecordField" - specializeTo: OutputRecordField - - -- name: OutputEnumSchema - type: record - extends: ["sld:EnumSchema", OutputSchema] - docParent: "#OutputParameter" - fields: - - name: outputBinding - type: OutputBinding? - jsonldPredicate: "cwl:outputBinding" - -- name: OutputArraySchema - type: record - extends: ["sld:ArraySchema", OutputSchema] - docParent: "#OutputParameter" - specialize: - - specializeFrom: "sld:RecordSchema" - specializeTo: OutputRecordSchema - - specializeFrom: "sld:EnumSchema" - specializeTo: OutputEnumSchema - - specializeFrom: "sld:ArraySchema" - specializeTo: OutputArraySchema - - specializeFrom: "sld:PrimitiveType" - specializeTo: CWLType - fields: - - name: outputBinding - type: OutputBinding? - jsonldPredicate: "cwl:outputBinding" - - -- name: InputParameter - type: record - extends: Parameter - fields: - - name: id - type: string - jsonldPredicate: "@id" - doc: "The unique identifier for this parameter object." - - - name: inputBinding - type: InputBinding? - jsonldPredicate: "cwl:inputBinding" - doc: | - Describes how to handle the inputs of a process and convert them - into a concrete form for execution, such as command line parameters. - - - name: default - type: Any? - jsonldPredicate: "cwl:default" - doc: | - The default value for this parameter if not provided in the input - object. - - - name: type - type: - - "null" - - CWLType - - InputRecordSchema - - InputEnumSchema - - InputArraySchema - - string - - type: array - items: - - CWLType - - InputRecordSchema - - InputEnumSchema - - InputArraySchema - - string - jsonldPredicate: - "_id": "sld:type" - "_type": "@vocab" - refScope: 2 - typeDSL: True - doc: | - Specify valid types of data that may be assigned to this parameter. - -- name: OutputParameter - type: record - extends: Parameter - fields: - - name: id - type: string - jsonldPredicate: "@id" - doc: "The unique identifier for this parameter object." - - name: outputBinding - type: OutputBinding? - jsonldPredicate: "cwl:outputBinding" - doc: | - Describes how to handle the outputs of a process. - - -- type: record - name: ProcessRequirement - abstract: true - doc: | - A process requirement declares a prerequisite that may or must be fulfilled - before executing a process. See [`Process.hints`](#process) and - [`Process.requirements`](#process). - - Process requirements are the primary mechanism for specifying extensions to - the CWL core specification. - - -- type: record - name: Process - abstract: true - doc: | - - The base executable type in CWL is the `Process` object defined by the - document. Note that the `Process` object is abstract and cannot be - directly executed. - - fields: - - name: id - type: string? - jsonldPredicate: "@id" - doc: "The unique identifier for this process object." - - name: inputs - type: - type: array - items: InputParameter - jsonldPredicate: - _id: "cwl:inputs" - mapSubject: id - mapPredicate: type - doc: | - Defines the input parameters of the process. The process is ready to - run when all required input parameters are associated with concrete - values. Input parameters include a schema for each parameter which is - used to validate the input object. It may also be used to build a user - interface for constructing the input object. - - name: outputs - type: - type: array - items: OutputParameter - jsonldPredicate: - _id: "cwl:outputs" - mapSubject: id - mapPredicate: type - doc: | - Defines the parameters representing the output of the process. May be - used to generate and/or validate the output object. - - name: requirements - type: ProcessRequirement[]? - jsonldPredicate: - _id: "cwl:requirements" - mapSubject: class - doc: | - Declares requirements that apply to either the runtime environment or the - workflow engine that must be met in order to execute this process. If - an implementation cannot satisfy all requirements, or a requirement is - listed which is not recognized by the implementation, it is a fatal - error and the implementation must not attempt to run the process, - unless overridden at user option. - - name: hints - type: Any[]? - doc: | - Declares hints applying to either the runtime environment or the - workflow engine that may be helpful in executing this process. It is - not an error if an implementation cannot satisfy all hints, however - the implementation may report a warning. - jsonldPredicate: - _id: cwl:hints - noLinkCheck: true - mapSubject: class - - name: label - type: string? - jsonldPredicate: "rdfs:label" - doc: "A short, human-readable label of this process object." - - name: doc - type: string? - jsonldPredicate: "rdfs:comment" - doc: "A long, human-readable description of this process object." - - name: cwlVersion - type: CWLVersion? - doc: | - CWL document version. Always required at the document root. Not - required for a Process embedded inside another Process. - jsonldPredicate: - "_id": "cwl:cwlVersion" - "_type": "@vocab" - -- name: InlineJavascriptRequirement - type: record - extends: ProcessRequirement - doc: | - Indicates that the workflow platform must support inline Javascript expressions. - If this requirement is not present, the workflow platform must not perform expression - interpolatation. - fields: - - name: class - type: string - doc: "Always 'InlineJavascriptRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: expressionLib - type: string[]? - doc: | - Additional code fragments that will also be inserted - before executing the expression code. Allows for function definitions that may - be called from CWL expressions. - - -- name: SchemaDefRequirement - type: record - extends: ProcessRequirement - doc: | - This field consists of an array of type definitions which must be used when - interpreting the `inputs` and `outputs` fields. When a `type` field - contain a IRI, the implementation must check if the type is defined in - `schemaDefs` and use that definition. If the type is not found in - `schemaDefs`, it is an error. The entries in `schemaDefs` must be - processed in the order listed such that later schema definitions may refer - to earlier schema definitions. - fields: - - name: class - type: string - doc: "Always 'SchemaDefRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - - name: types - type: - type: array - items: InputSchema - doc: The list of type definitions. diff --git a/salad/schema_salad/tests/test_schema/Workflow.yml b/salad/schema_salad/tests/test_schema/Workflow.yml deleted file mode 100644 index 6c2b0628..00000000 --- a/salad/schema_salad/tests/test_schema/Workflow.yml +++ /dev/null @@ -1,583 +0,0 @@ -$base: "https://w3id.org/cwl/cwl#" - -$namespaces: - sld: "https://w3id.org/cwl/salad#" - cwl: "https://w3id.org/cwl/cwl#" - -$graph: - -- name: "WorkflowDoc" - type: documentation - doc: - - | - # Common Workflow Language (CWL) Workflow Description, v1.0 - - This version: - * https://w3id.org/cwl/v1.0/ - - Current version: - * https://w3id.org/cwl/ - - "\n\n" - - {$include: contrib.md} - - "\n\n" - - | - # Abstract - - One way to define a workflow is: an analysis task represented by a - directed graph describing a sequence of operations that transform an - input data set to output. This specification defines the Common Workflow - Language (CWL) Workflow description, a vendor-neutral standard for - representing workflows intended to be portable across a variety of - computing platforms. - - - {$include: intro.md} - - - | - - ## Introduction to v1.0 - - This specification represents the first full release from the CWL group. - Since draft-3, this draft introduces the following changes and additions: - - * The `inputs` and `outputs` fields have been renamed `in` and `out`. - * Syntax simplifcations: denoted by the `map<>` syntax. Example: `in` - contains a list of items, each with an id. Now one can specify - a mapping of that identifier to the corresponding - `InputParameter`. - ``` - in: - - id: one - type: string - doc: First input parameter - - id: two - type: int - doc: Second input parameter - ``` - can be - ``` - in: - one: - type: string - doc: First input parameter - two: - type: int - doc: Second input parameter - ``` - * The common field `description` has been renamed to `doc`. - - ## Purpose - - The Common Workflow Language Command Line Tool Description express - workflows for data-intensive science, such as Bioinformatics, Chemistry, - Physics, and Astronomy. This specification is intended to define a data - and execution model for Workflows that can be implemented on top of a - variety of computing platforms, ranging from an individual workstation to - cluster, grid, cloud, and high performance computing systems. - - - {$include: concepts.md} - -- name: ExpressionToolOutputParameter - type: record - extends: OutputParameter - fields: - - name: type - type: - - "null" - - "#CWLType" - - "#OutputRecordSchema" - - "#OutputEnumSchema" - - "#OutputArraySchema" - - string - - type: array - items: - - "#CWLType" - - "#OutputRecordSchema" - - "#OutputEnumSchema" - - "#OutputArraySchema" - - string - jsonldPredicate: - "_id": "sld:type" - "_type": "@vocab" - refScope: 2 - typeDSL: True - doc: | - Specify valid types of data that may be assigned to this parameter. - -- type: record - name: ExpressionTool - extends: Process - specialize: - - specializeFrom: "#OutputParameter" - specializeTo: "#ExpressionToolOutputParameter" - documentRoot: true - doc: | - Execute an expression as a Workflow step. - fields: - - name: "class" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - type: string - - name: expression - type: [string, Expression] - doc: | - The expression to execute. The expression must return a JSON object which - matches the output parameters of the ExpressionTool. - -- name: LinkMergeMethod - type: enum - docParent: "#WorkflowStepInput" - doc: The input link merge method, described in [WorkflowStepInput](#WorkflowStepInput). - symbols: - - merge_nested - - merge_flattened - - -- name: WorkflowOutputParameter - type: record - extends: OutputParameter - docParent: "#Workflow" - doc: | - Describe an output parameter of a workflow. The parameter must be - connected to one or more parameters defined in the workflow that will - provide the value of the output parameter. - fields: - - name: outputSource - doc: | - Specifies one or more workflow parameters that supply the value of to - the output parameter. - jsonldPredicate: - "_id": "cwl:outputSource" - "_type": "@id" - refScope: 0 - type: - - string? - - string[]? - - name: linkMerge - type: ["null", "#LinkMergeMethod"] - jsonldPredicate: "cwl:linkMerge" - doc: | - The method to use to merge multiple sources into a single array. - If not specified, the default method is "merge_nested". - - name: type - type: - - "null" - - "#CWLType" - - "#OutputRecordSchema" - - "#OutputEnumSchema" - - "#OutputArraySchema" - - string - - type: array - items: - - "#CWLType" - - "#OutputRecordSchema" - - "#OutputEnumSchema" - - "#OutputArraySchema" - - string - jsonldPredicate: - "_id": "sld:type" - "_type": "@vocab" - refScope: 2 - typeDSL: True - doc: | - Specify valid types of data that may be assigned to this parameter. - - -- name: Sink - type: record - abstract: true - fields: - - name: source - doc: | - Specifies one or more workflow parameters that will provide input to - the underlying step parameter. - jsonldPredicate: - "_id": "cwl:source" - "_type": "@id" - refScope: 2 - type: - - string? - - string[]? - - name: linkMerge - type: LinkMergeMethod? - jsonldPredicate: "cwl:linkMerge" - doc: | - The method to use to merge multiple inbound links into a single array. - If not specified, the default method is "merge_nested". - - -- type: record - name: WorkflowStepInput - extends: Sink - docParent: "#WorkflowStep" - doc: | - The input of a workflow step connects an upstream parameter (from the - workflow inputs, or the outputs of other workflows steps) with the input - parameters of the underlying step. - - ## Input object - - A WorkflowStepInput object must contain an `id` field in the form - `#fieldname` or `#stepname.fieldname`. When the `id` field contains a - period `.` the field name consists of the characters following the final - period. This defines a field of the workflow step input object with the - value of the `source` parameter(s). - - ## Merging - - To merge multiple inbound data links, - [MultipleInputFeatureRequirement](#MultipleInputFeatureRequirement) must be specified - in the workflow or workflow step requirements. - - If the sink parameter is an array, or named in a [workflow - scatter](#WorkflowStep) operation, there may be multiple inbound data links - listed in the `source` field. The values from the input links are merged - depending on the method specified in the `linkMerge` field. If not - specified, the default method is "merge_nested". - - * **merge_nested** - - The input must be an array consisting of exactly one entry for each - input link. If "merge_nested" is specified with a single link, the value - from the link must be wrapped in a single-item list. - - * **merge_flattened** - - 1. The source and sink parameters must be compatible types, or the source - type must be compatible with single element from the "items" type of - the destination array parameter. - 2. Source parameters which are arrays are concatenated. - Source parameters which are single element types are appended as - single elements. - - fields: - - name: id - type: string - jsonldPredicate: "@id" - doc: "A unique identifier for this workflow input parameter." - - name: default - type: ["null", Any] - doc: | - The default value for this parameter if there is no `source` - field. - jsonldPredicate: "cwl:default" - - name: valueFrom - type: - - "null" - - "string" - - "#Expression" - jsonldPredicate: "cwl:valueFrom" - doc: | - To use valueFrom, [StepInputExpressionRequirement](#StepInputExpressionRequirement) must - be specified in the workflow or workflow step requirements. - - If `valueFrom` is a constant string value, use this as the value for - this input parameter. - - If `valueFrom` is a parameter reference or expression, it must be - evaluated to yield the actual value to be assiged to the input field. - - The `self` value of in the parameter reference or expression must be - the value of the parameter(s) specified in the `source` field, or - null if there is no `source` field. - - The value of `inputs` in the parameter reference or expression must be - the input object to the workflow step after assigning the `source` - values and then scattering. The order of evaluating `valueFrom` among - step input parameters is undefined and the result of evaluating - `valueFrom` on a parameter must not be visible to evaluation of - `valueFrom` on other parameters. - - -- type: record - name: WorkflowStepOutput - docParent: "#WorkflowStep" - doc: | - Associate an output parameter of the underlying process with a workflow - parameter. The workflow parameter (given in the `id` field) be may be used - as a `source` to connect with input parameters of other workflow steps, or - with an output parameter of the process. - fields: - - name: id - type: string - jsonldPredicate: "@id" - doc: | - A unique identifier for this workflow output parameter. This is the - identifier to use in the `source` field of `WorkflowStepInput` to - connect the output value to downstream parameters. - - -- name: ScatterMethod - type: enum - docParent: "#WorkflowStep" - doc: The scatter method, as described in [workflow step scatter](#WorkflowStep). - symbols: - - dotproduct - - nested_crossproduct - - flat_crossproduct - - -- name: WorkflowStep - type: record - docParent: "#Workflow" - doc: | - A workflow step is an executable element of a workflow. It specifies the - underlying process implementation (such as `CommandLineTool` or another - `Workflow`) in the `run` field and connects the input and output parameters - of the underlying process to workflow parameters. - - # Scatter/gather - - To use scatter/gather, - [ScatterFeatureRequirement](#ScatterFeatureRequirement) must be specified - in the workflow or workflow step requirements. - - A "scatter" operation specifies that the associated workflow step or - subworkflow should execute separately over a list of input elements. Each - job making up a scatter operation is independent and may be executed - concurrently. - - The `scatter` field specifies one or more input parameters which will be - scattered. An input parameter may be listed more than once. The declared - type of each input parameter is implicitly wrapped in an array for each - time it appears in the `scatter` field. As a result, upstream parameters - which are connected to scattered parameters may be arrays. - - All output parameter types are also implicitly wrapped in arrays. Each job - in the scatter results in an entry in the output array. - - If `scatter` declares more than one input parameter, `scatterMethod` - describes how to decompose the input into a discrete set of jobs. - - * **dotproduct** specifies that each of the input arrays are aligned and one - element taken from each array to construct each job. It is an error - if all input arrays are not the same length. - - * **nested_crossproduct** specifies the Cartesian product of the inputs, - producing a job for every combination of the scattered inputs. The - output must be nested arrays for each level of scattering, in the - order that the input arrays are listed in the `scatter` field. - - * **flat_crossproduct** specifies the Cartesian product of the inputs, - producing a job for every combination of the scattered inputs. The - output arrays must be flattened to a single level, but otherwise listed in the - order that the input arrays are listed in the `scatter` field. - - # Subworkflows - - To specify a nested workflow as part of a workflow step, - [SubworkflowFeatureRequirement](#SubworkflowFeatureRequirement) must be - specified in the workflow or workflow step requirements. - - fields: - - name: id - type: string - jsonldPredicate: "@id" - doc: "The unique identifier for this workflow step." - - name: in - type: WorkflowStepInput[] - jsonldPredicate: - _id: "cwl:in" - mapSubject: id - mapPredicate: source - doc: | - Defines the input parameters of the workflow step. The process is ready to - run when all required input parameters are associated with concrete - values. Input parameters include a schema for each parameter which is - used to validate the input object. It may also be used build a user - interface for constructing the input object. - - name: out - type: - - type: array - items: [string, WorkflowStepOutput] - jsonldPredicate: - _id: "cwl:out" - _type: "@id" - identity: true - doc: | - Defines the parameters representing the output of the process. May be - used to generate and/or validate the output object. - - name: requirements - type: ProcessRequirement[]? - jsonldPredicate: - _id: "cwl:requirements" - mapSubject: class - doc: | - Declares requirements that apply to either the runtime environment or the - workflow engine that must be met in order to execute this workflow step. If - an implementation cannot satisfy all requirements, or a requirement is - listed which is not recognized by the implementation, it is a fatal - error and the implementation must not attempt to run the process, - unless overridden at user option. - - name: hints - type: Any[]? - jsonldPredicate: - _id: "cwl:hints" - noLinkCheck: true - mapSubject: class - doc: | - Declares hints applying to either the runtime environment or the - workflow engine that may be helpful in executing this workflow step. It is - not an error if an implementation cannot satisfy all hints, however - the implementation may report a warning. - - name: label - type: string? - jsonldPredicate: "rdfs:label" - doc: "A short, human-readable label of this process object." - - name: doc - type: string? - jsonldPredicate: "rdfs:comment" - doc: "A long, human-readable description of this process object." - - name: run - type: [string, Process] - jsonldPredicate: - "_id": "cwl:run" - "_type": "@id" - doc: | - Specifies the process to run. - - name: scatter - type: - - string? - - string[]? - jsonldPredicate: - "_id": "cwl:scatter" - "_type": "@id" - "_container": "@list" - refScope: 0 - - name: scatterMethod - doc: | - Required if `scatter` is an array of more than one element. - type: ScatterMethod? - jsonldPredicate: - "_id": "cwl:scatterMethod" - "_type": "@vocab" - - -- name: Workflow - type: record - extends: "#Process" - documentRoot: true - specialize: - - specializeFrom: "#OutputParameter" - specializeTo: "#WorkflowOutputParameter" - doc: | - A workflow describes a set of **steps** and the **dependencies** between - those steps. When a step produces output that will be consumed by a - second step, the first step is a dependency of the second step. - - When there is a dependency, the workflow engine must execute the preceeding - step and wait for it to successfully produce output before executing the - dependent step. If two steps are defined in the workflow graph that - are not directly or indirectly dependent, these steps are **independent**, - and may execute in any order or execute concurrently. A workflow is - complete when all steps have been executed. - - Dependencies between parameters are expressed using the `source` field on - [workflow step input parameters](#WorkflowStepInput) and [workflow output - parameters](#WorkflowOutputParameter). - - The `source` field expresses the dependency of one parameter on another - such that when a value is associated with the parameter specified by - `source`, that value is propagated to the destination parameter. When all - data links inbound to a given step are fufilled, the step is ready to - execute. - - ## Workflow success and failure - - A completed step must result in one of `success`, `temporaryFailure` or - `permanentFailure` states. An implementation may choose to retry a step - execution which resulted in `temporaryFailure`. An implementation may - choose to either continue running other steps of a workflow, or terminate - immediately upon `permanentFailure`. - - * If any step of a workflow execution results in `permanentFailure`, then - the workflow status is `permanentFailure`. - - * If one or more steps result in `temporaryFailure` and all other steps - complete `success` or are not executed, then the workflow status is - `temporaryFailure`. - - * If all workflow steps are executed and complete with `success`, then the - workflow status is `success`. - - # Extensions - - [ScatterFeatureRequirement](#ScatterFeatureRequirement) and - [SubworkflowFeatureRequirement](#SubworkflowFeatureRequirement) are - available as standard [extensions](#Extensions_and_Metadata) to core - workflow semantics. - - fields: - - name: "class" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - type: string - - name: steps - doc: | - The individual steps that make up the workflow. Each step is executed when all of its - input data links are fufilled. An implementation may choose to execute - the steps in a different order than listed and/or execute steps - concurrently, provided that dependencies between steps are met. - type: - - type: array - items: "#WorkflowStep" - jsonldPredicate: - mapSubject: id - - -- type: record - name: SubworkflowFeatureRequirement - extends: ProcessRequirement - doc: | - Indicates that the workflow platform must support nested workflows in - the `run` field of [WorkflowStep](#WorkflowStep). - fields: - - name: "class" - type: "string" - doc: "Always 'SubworkflowFeatureRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - -- name: ScatterFeatureRequirement - type: record - extends: ProcessRequirement - doc: | - Indicates that the workflow platform must support the `scatter` and - `scatterMethod` fields of [WorkflowStep](#WorkflowStep). - fields: - - name: "class" - type: "string" - doc: "Always 'ScatterFeatureRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - -- name: MultipleInputFeatureRequirement - type: record - extends: ProcessRequirement - doc: | - Indicates that the workflow platform must support multiple inbound data links - listed in the `source` field of [WorkflowStepInput](#WorkflowStepInput). - fields: - - name: "class" - type: "string" - doc: "Always 'MultipleInputFeatureRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" - -- type: record - name: StepInputExpressionRequirement - extends: ProcessRequirement - doc: | - Indicate that the workflow platform must support the `valueFrom` field - of [WorkflowStepInput](#WorkflowStepInput). - fields: - - name: "class" - type: "string" - doc: "Always 'StepInputExpressionRequirement'" - jsonldPredicate: - "_id": "@type" - "_type": "@vocab" diff --git a/salad/schema_salad/tests/test_schema/concepts.md b/salad/schema_salad/tests/test_schema/concepts.md deleted file mode 100644 index 8b137891..00000000 --- a/salad/schema_salad/tests/test_schema/concepts.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/salad/schema_salad/tests/test_schema/contrib.md b/salad/schema_salad/tests/test_schema/contrib.md deleted file mode 100644 index 8b137891..00000000 --- a/salad/schema_salad/tests/test_schema/contrib.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/salad/schema_salad/tests/test_schema/intro.md b/salad/schema_salad/tests/test_schema/intro.md deleted file mode 100644 index 8b137891..00000000 --- a/salad/schema_salad/tests/test_schema/intro.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/salad/schema_salad/tests/test_schema/invocation.md b/salad/schema_salad/tests/test_schema/invocation.md deleted file mode 100644 index 8b137891..00000000 --- a/salad/schema_salad/tests/test_schema/invocation.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/salad/schema_salad/tests/test_schema/metaschema_base.yml b/salad/schema_salad/tests/test_schema/metaschema_base.yml deleted file mode 100644 index 42c49757..00000000 --- a/salad/schema_salad/tests/test_schema/metaschema_base.yml +++ /dev/null @@ -1,161 +0,0 @@ -$base: "https://w3id.org/cwl/salad#" - -$namespaces: - sld: "https://w3id.org/cwl/salad#" - dct: "http://purl.org/dc/terms/" - rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#" - rdfs: "http://www.w3.org/2000/01/rdf-schema#" - xsd: "http://www.w3.org/2001/XMLSchema#" - -$graph: -- name: PrimitiveType - type: enum - symbols: - - "sld:null" - - "xsd:boolean" - - "xsd:int" - - "xsd:long" - - "xsd:float" - - "xsd:double" - - "xsd:string" - doc: - - | - Salad data types are based on Avro schema declarations. Refer to the - [Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for - detailed information. - - "null: no value" - - "boolean: a binary value" - - "int: 32-bit signed integer" - - "long: 64-bit signed integer" - - "float: single precision (32-bit) IEEE 754 floating-point number" - - "double: double precision (64-bit) IEEE 754 floating-point number" - - "string: Unicode character sequence" - - -- name: Any - type: enum - symbols: ["#Any"] - doc: | - The **Any** type validates for any non-null value. - - -- name: RecordField - type: record - doc: A field of a record. - fields: - - name: name - type: string - jsonldPredicate: "@id" - doc: | - The name of the field - - - name: doc - type: string? - doc: | - A documentation string for this field - jsonldPredicate: "rdfs:comment" - - - name: type - type: - - PrimitiveType - - RecordSchema - - EnumSchema - - ArraySchema - - string - - type: array - items: - - PrimitiveType - - RecordSchema - - EnumSchema - - ArraySchema - - string - jsonldPredicate: - _id: sld:type - _type: "@vocab" - typeDSL: true - refScope: 2 - doc: | - The field type - - -- name: RecordSchema - type: record - fields: - type: - doc: "Must be `record`" - type: - type: enum - symbols: - - "sld:record" - jsonldPredicate: - _id: "sld:type" - _type: "@vocab" - typeDSL: true - refScope: 2 - fields: - type: RecordField[]? - jsonldPredicate: - _id: sld:fields - mapSubject: name - mapPredicate: type - doc: "Defines the fields of the record." - - -- name: EnumSchema - type: record - doc: | - Define an enumerated type. - fields: - type: - doc: "Must be `enum`" - type: - type: enum - symbols: - - "sld:enum" - jsonldPredicate: - _id: "sld:type" - _type: "@vocab" - typeDSL: true - refScope: 2 - symbols: - type: string[] - jsonldPredicate: - _id: "sld:symbols" - _type: "@id" - identity: true - doc: "Defines the set of valid symbols." - - -- name: ArraySchema - type: record - fields: - type: - doc: "Must be `array`" - type: - type: enum - symbols: - - "sld:array" - jsonldPredicate: - _id: "sld:type" - _type: "@vocab" - typeDSL: true - refScope: 2 - items: - type: - - PrimitiveType - - RecordSchema - - EnumSchema - - ArraySchema - - string - - type: array - items: - - PrimitiveType - - RecordSchema - - EnumSchema - - ArraySchema - - string - jsonldPredicate: - _id: "sld:items" - _type: "@vocab" - refScope: 2 - doc: "Defines the type of the array elements." diff --git a/salad/schema_salad/tests/test_schema/test1.cwl b/salad/schema_salad/tests/test_schema/test1.cwl deleted file mode 100644 index 873c62c3..00000000 --- a/salad/schema_salad/tests/test_schema/test1.cwl +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env cwl-runner -class: Workflow diff --git a/salad/schema_salad/tests/test_schema/test10.cwl b/salad/schema_salad/tests/test_schema/test10.cwl deleted file mode 100644 index 142d4411..00000000 --- a/salad/schema_salad/tests/test_schema/test10.cwl +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env cwl-runner -class: Workflow -inputs: - foo: string -outputs: - bar: string -steps: - step1: - scatterMethod: [record] - in: [] - out: [out] diff --git a/salad/schema_salad/tests/test_schema/test11.cwl b/salad/schema_salad/tests/test_schema/test11.cwl deleted file mode 100644 index eb529928..00000000 --- a/salad/schema_salad/tests/test_schema/test11.cwl +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env cwl-runner -class: Workflow -inputs: - foo: string -outputs: - bar: string -steps: - step1: - run: blub.cwl - in: [] - out: [out] diff --git a/salad/schema_salad/tests/test_schema/test12.cwl b/salad/schema_salad/tests/test_schema/test12.cwl deleted file mode 100644 index 3f149176..00000000 --- a/salad/schema_salad/tests/test_schema/test12.cwl +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env cwl-runner -cwlVersion: v1.0 -class: CommandLineTool -baseCommand: echo -inputs: - - id: example_flag - type: boolean - inputBinding: - position: 1 - prefix: -f - - id: example_flag - type: int - inputBinding: - position: 3 - prefix: --example-string - -outputs: [] diff --git a/salad/schema_salad/tests/test_schema/test13.cwl b/salad/schema_salad/tests/test_schema/test13.cwl deleted file mode 100644 index 2986352f..00000000 --- a/salad/schema_salad/tests/test_schema/test13.cwl +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env cwl-runner -cwlVersion: v1.0 -class: Workflow -inputs: - example_flag: - type: boolean - inputBinding: - position: 1 - prefix: -f - -outputs: [] - -steps: - example_flag: - in: [] - out: [] - run: - id: blah - class: CommandLineTool - inputs: [] - outputs: [] diff --git a/salad/schema_salad/tests/test_schema/test14.cwl b/salad/schema_salad/tests/test_schema/test14.cwl deleted file mode 100644 index 0c9bf40a..00000000 --- a/salad/schema_salad/tests/test_schema/test14.cwl +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env cwl-runner -cwlVersion: v1.0 -class: CommandLineTool -baseCommand: echo -inputs: - example_flag: - type: boolean - inputBinding: - position: 1 - prefix: -f -outputs: - example_flag: int diff --git a/salad/schema_salad/tests/test_schema/test15.cwl b/salad/schema_salad/tests/test_schema/test15.cwl deleted file mode 100755 index 0fc7f7ef..00000000 --- a/salad/schema_salad/tests/test_schema/test15.cwl +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env cwl-runner - -cwlVersion: v1.0 -class: CommandLineTool -baseCommand: echo -inputs: - message: - type: string - inputBinding: - position: 1 - invalid_field: it_is_invalid_field - another_invalid_field: invalid -outputs: [] diff --git a/salad/schema_salad/tests/test_schema/test16.cwl b/salad/schema_salad/tests/test_schema/test16.cwl deleted file mode 100644 index d102499c..00000000 --- a/salad/schema_salad/tests/test_schema/test16.cwl +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env cwl-runner -cwlVersion: v1.0 -class: CommandLineTool -baseCommand: echo -inputs: - message: - type: string - inputBinding: - position: 1 - posi -outputs: - hello_output: - type: File - outputBinding: - glob: hello-out.txt -stdout: hello-out.txt diff --git a/salad/schema_salad/tests/test_schema/test17.cwl b/salad/schema_salad/tests/test_schema/test17.cwl deleted file mode 100644 index b6efa601..00000000 --- a/salad/schema_salad/tests/test_schema/test17.cwl +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env cwl-runner -class: CommandLineTool -cwlVersion: v1.0 -baseCommand: cowsay -inputs: - - id: input - type: string? - inputBinding: - position: 0 -outputs: - - id: output - type: string? - outputBinding: {} - - aa: moa diff --git a/salad/schema_salad/tests/test_schema/test18.cwl b/salad/schema_salad/tests/test_schema/test18.cwl deleted file mode 100644 index b147a28f..00000000 --- a/salad/schema_salad/tests/test_schema/test18.cwl +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env cwl-runner -class: CommandLineTool -cwlVersion: v1.0 -baseCommand: echo -inputs: - - id: input - type: string? - inputBinding: {} -outputs: - - id: output - type: string? - outputBinding: {} - - id: output1 - type: Filea diff --git a/salad/schema_salad/tests/test_schema/test19.cwl b/salad/schema_salad/tests/test_schema/test19.cwl deleted file mode 100644 index 7b89c88c..00000000 --- a/salad/schema_salad/tests/test_schema/test19.cwl +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env cwl-runner -: aaa -cwlVersion: v1.0 -class: CommandLineTool -baseCommand: echo -inputs: - message: - type: string - inputBinding: - position: 1 -outputs: - hello_output: - type: File - outputBinding: - glob: hello-out.txt -stdout: hello-out.txt diff --git a/salad/schema_salad/tests/test_schema/test2.cwl b/salad/schema_salad/tests/test_schema/test2.cwl deleted file mode 100644 index 53427bdb..00000000 --- a/salad/schema_salad/tests/test_schema/test2.cwl +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env cwl-runner -class: xWorkflow diff --git a/salad/schema_salad/tests/test_schema/test3.cwl b/salad/schema_salad/tests/test_schema/test3.cwl deleted file mode 100644 index e1bcf917..00000000 --- a/salad/schema_salad/tests/test_schema/test3.cwl +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env cwl-runner -class: Workflow -inputs: - foo: string -outputs: - bar: xstring -steps: [] diff --git a/salad/schema_salad/tests/test_schema/test4.cwl b/salad/schema_salad/tests/test_schema/test4.cwl deleted file mode 100644 index 2f2e23cb..00000000 --- a/salad/schema_salad/tests/test_schema/test4.cwl +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env cwl-runner -class: Workflow -inputs: - foo: string -outputs: - bar: 12 -steps: [] diff --git a/salad/schema_salad/tests/test_schema/test5.cwl b/salad/schema_salad/tests/test_schema/test5.cwl deleted file mode 100644 index e85a71a6..00000000 --- a/salad/schema_salad/tests/test_schema/test5.cwl +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env cwl-runner -class: Workflow -inputs: - foo: string -outputs: - bar: string -steps: [12] diff --git a/salad/schema_salad/tests/test_schema/test6.cwl b/salad/schema_salad/tests/test_schema/test6.cwl deleted file mode 100644 index 2e32a49d..00000000 --- a/salad/schema_salad/tests/test_schema/test6.cwl +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env cwl-runner -inputs: - foo: string -outputs: - bar: string -steps: [12] diff --git a/salad/schema_salad/tests/test_schema/test7.cwl b/salad/schema_salad/tests/test_schema/test7.cwl deleted file mode 100644 index 2f362a0c..00000000 --- a/salad/schema_salad/tests/test_schema/test7.cwl +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env cwl-runner -class: Workflow -inputs: - foo: string -outputs: - bar: string -steps: - step1: - scatter_method: blub - in: [] - out: [out] diff --git a/salad/schema_salad/tests/test_schema/test8.cwl b/salad/schema_salad/tests/test_schema/test8.cwl deleted file mode 100644 index c239edce..00000000 --- a/salad/schema_salad/tests/test_schema/test8.cwl +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env cwl-runner -class: Workflow -inputs: - foo: string -outputs: - bar: string -steps: - step1: - scatterMethod: abc - in: [] - out: [out] diff --git a/salad/schema_salad/tests/test_schema/test9.cwl b/salad/schema_salad/tests/test_schema/test9.cwl deleted file mode 100644 index d844b902..00000000 --- a/salad/schema_salad/tests/test_schema/test9.cwl +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env cwl-runner -class: Workflow -inputs: - foo: string -outputs: - bar: string -steps: - step1: - scatterMethod: 12 - in: [] - out: [out] diff --git a/salad/setup.cfg b/salad/setup.cfg deleted file mode 100644 index 903b12df..00000000 --- a/salad/setup.cfg +++ /dev/null @@ -1,11 +0,0 @@ -[flake8] -ignore=E124,E128,E129,E201,E202,E225,E226,E231,E265,E271,E302,E303,F401,E402,E501,W503,E731,F811,F821,F841 - -[bdist_wheel] -universal = 1 - -[aliases] -test=pytest - -[tool:pytest] -addopts=--pyarg schema_salad diff --git a/salad/tox.ini b/salad/tox.ini deleted file mode 100644 index c387a4ba..00000000 --- a/salad/tox.ini +++ /dev/null @@ -1,50 +0,0 @@ -[tox] -envlist = - py{27,34,35,36}-lint, - py{27,34,35,36}-unit, - py35-mypy{2,3}, - py27-pipconflictchecker - -skipsdist = True -skip_missing_interpreters = True - -[travis] -python= - 2.7: py27 - 3.5: py35 - 3.6: py36 - -[testenv] -deps = - -rrequirements.txt - py{27,34,35,36}-lint: flake8 - -commands = - py{27,34,35,36}-unit: python setup.py test - py{27,34,35,36}-lint: flake8 schema_salad setup.py - -whitelist_externals = - py{27,34,35,36}-lint: flake8 - -[testenv:py35-mypy2] -commands = - make mypy2 -whitelist_externals = make -deps = - -rmypy_requirements.txt - -rrequirements.txt - -[testenv:py35-mypy3] -commands = - make mypy3 -whitelist_externals = make -deps = - -rmypy_requirements.txt - -rrequirements.txt - -[testenv:py27-pipconflictchecker] -commands = pipconflictchecker -whitelist_externals = pipconflictchecker -deps = - pip-conflict-checker - pip==9.0.3 From 4e7b6bd9e51a4d076a17518870bb5883a30bf7f0 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Wed, 1 Sep 2021 12:36:11 +0200 Subject: [PATCH 006/127] fix formatting of SecondaryFileSchema.pattern --- Process.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Process.yml b/Process.yml index 32e69815..49e17aca 100644 --- a/Process.yml +++ b/Process.yml @@ -966,7 +966,7 @@ $graph: The expression must return either: a filename string relative to the path to the primary File, a File or Directory object - (`class: File` or 'class: Directory`) with either `location` + (`class: File` or `class: Directory`) with either `location` (for inputs) or `path` (for outputs) and `basename` fields set, or an array consisting of strings or File or Directory objects as previously described. From f44d7c34cea35055cc7b1f0c77ca6e42f33dfb4d Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 21 Jan 2021 19:19:52 +0100 Subject: [PATCH 007/127] explicitly allow an int where we allow a long --- CommandLineTool.yml | 18 +++++++++--------- Process.yml | 5 ++++- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index a27779ee..dd591463 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -1166,7 +1166,7 @@ $graph: "_id": "@type" "_type": "@vocab" - name: coresMin - type: ["null", long, float, Expression] + type: ["null", int, long, float, Expression] # default: 1 # Don't set the default here, we need to be able to distinguish between # a value not provided and the textual default to be able to implement @@ -1199,14 +1199,14 @@ $graph: next whole number. - name: coresMax - type: ["null", long, float, Expression] + type: ["null", int, long, float, Expression] doc: | Maximum reserved number of CPU cores. See `coresMin` for discussion about fractional CPU requests. - name: ramMin - type: ["null", long, float, Expression] + type: ["null", int, long, float, Expression] # default: 256 # Don't set the default here, we need to be able to distinguish between # a value not provided and the textual default to be able to implement @@ -1223,14 +1223,14 @@ $graph: non-zero integer. - name: ramMax - type: ["null", long, float, Expression] + type: ["null", int, long, float, Expression] doc: | Maximum reserved RAM in mebibytes (2**20) See `ramMin` for discussion about fractional RAM requests. - name: tmpdirMin - type: ["null", long, float, Expression] + type: ["null", int, long, float, Expression] # default: 1024 # Don't set the default here, we need to be able to distinguish between # a value not provided and the textual default to be able to implement @@ -1247,14 +1247,14 @@ $graph: must be a non-zero integer. - name: tmpdirMax - type: ["null", long, float, Expression] + type: ["null", int, long, float, Expression] doc: | Maximum reserved filesystem based storage for the designated temporary directory, in mebibytes (2**20) See `tmpdirMin` for discussion about fractional storage requests. - name: outdirMin - type: ["null", long, float, Expression] + type: ["null", int, long, float, Expression] # default: 1024 # Don't set the default here, we need to be able to distinguish between # a value not provided and the textual default to be able to implement @@ -1271,7 +1271,7 @@ $graph: must be a non-zero integer. - name: outdirMax - type: ["null", long, float, Expression] + type: ["null", int, long, float, Expression] doc: | Maximum reserved filesystem based storage for the designated output directory, in mebibytes (2**20) @@ -1413,7 +1413,7 @@ $graph: "_id": "@type" "_type": "@vocab" - name: timelimit - type: [long, Expression] + type: [int, long, Expression] doc: | The time limit, in seconds. A time limit of zero means no time limit. Negative time limits are an error. diff --git a/Process.yml b/Process.yml index 49e17aca..3097d1c1 100644 --- a/Process.yml +++ b/Process.yml @@ -238,7 +238,10 @@ $graph: Optional hash code for validating file integrity. Currently must be in the form "sha1$ + hexadecimal string" using the SHA-1 algorithm. - name: size - type: long? + type: + - "null" + - int + - long doc: Optional file size - name: "secondaryFiles" type: From c4ebcec2ce85a1edafa5493f8c0c8c0b03947243 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Sat, 4 Sep 2021 17:04:55 +0200 Subject: [PATCH 008/127] metaschema: clean up & sync --- salad/schema_salad/metaschema/metaschema_base.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/salad/schema_salad/metaschema/metaschema_base.yml b/salad/schema_salad/metaschema/metaschema_base.yml index 67008b68..5bcbe492 100644 --- a/salad/schema_salad/metaschema/metaschema_base.yml +++ b/salad/schema_salad/metaschema/metaschema_base.yml @@ -173,4 +173,5 @@ $graph: _id: "sld:items" _type: "@vocab" refScope: 2 + typeDSL: True doc: "Defines the type of the array elements." From 0eca66656e5749be73541929882b17eb3290b60e Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Fri, 1 Oct 2021 01:42:16 +1300 Subject: [PATCH 009/127] Clarify $() and ${} --- concepts.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/concepts.md b/concepts.md index 48213c55..3aa6c8dc 100644 --- a/concepts.md +++ b/concepts.md @@ -602,17 +602,21 @@ requirement `InlineJavascriptRequirement`. Expressions may be used in any field permitting the pseudo-type `Expression`, as specified by this document. -Expressions are denoted by the syntax `$(...)` or `${...}`. A code -fragment wrapped in the `$(...)` syntax must be evaluated as a -[ECMAScript expression](http://www.ecma-international.org/ecma-262/5.1/#sec-11). A -code fragment wrapped in the `${...}` syntax must be evaluated as a +Expressions are denoted by the syntax `$(...)` or `${...}`. + +A code fragment wrapped in the `$(...)` syntax must be evaluated as a +[ECMAScript expression](http://www.ecma-international.org/ecma-262/5.1/#sec-11). + +A code fragment wrapped in the `${...}` syntax must be evaluated as a [ECMAScript function body](http://www.ecma-international.org/ecma-262/5.1/#sec-13) -for an anonymous, zero-argument function. Expressions must return a valid JSON -data type: one of null, string, number, boolean, array, object. Other return -values must result in a `permanentFailure`. Implementations must permit any -syntactically valid Javascript and account for nesting of parenthesis or braces -and that strings that may contain parenthesis or braces when scanning for -expressions. +for an anonymous, zero-argument function. This means the code will be +evaluated as `(function() { ... })()`. + +Expressions must return a valid JSON data type: one of null, string, number, +boolean, array, object. Other return values must result in a +`permanentFailure`. Implementations must permit any syntactically valid +Javascript and account for nesting of parenthesis or braces and that strings +that may contain parenthesis or braces when scanning for expressions. The runtime must include any code defined in the ["expressionLib" field of InlineJavascriptRequirement](#InlineJavascriptRequirement) prior to From 13ea3d1c10736417740cb63b037820e7940a3183 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Wed, 6 Oct 2021 12:00:04 +0200 Subject: [PATCH 010/127] Fewer containers (#129) also run the tests against cwltool --- .github/workflows/ci.yml | 4 +-- .github/workflows/cwltool.yml | 29 +++++++++++++++++++ tests/binding-test.cwl | 2 +- tests/bool-empty-inputbinding.cwl | 2 +- tests/bwa-mem-tool.cwl | 2 +- tests/cat-tool-shortcut.cwl | 2 +- tests/cat3-tool-docker.cwl | 2 +- tests/cat3-tool-mediumcut.cwl | 2 +- tests/cat3-tool-shortcut.cwl | 2 +- tests/cat3-tool.cwl | 2 +- tests/cat4-tool.cwl | 2 +- tests/cat5-tool.cwl | 2 +- tests/dir2.cwl | 2 +- tests/docker-array-secondaryfiles.cwl | 2 +- tests/docker-output-dir.cwl | 2 +- tests/docker-run-cmd.cwl | 2 +- tests/empty-array-input.cwl | 2 +- tests/envvar2.cwl | 2 +- tests/envvar3.cwl | 2 +- tests/formattest2.cwl | 2 +- tests/formattest3.cwl | 2 +- tests/glob-path-error.cwl | 2 +- .../initialworkdirrequirement-docker-out.cwl | 2 +- tests/inline-js.cwl | 2 +- tests/iwd/iwd-container-entryname1.cwl | 2 +- tests/iwd/iwd-container-entryname3.cwl | 2 +- tests/iwd/iwd-passthrough2.cwl | 2 +- tests/iwd/iwdr_dir_literal_real_file.cwl | 2 +- tests/loadContents/cwloutput-nolimit.cwl | 2 +- tests/metadata.cwl | 2 +- tests/networkaccess.cwl | 2 +- tests/networkaccess2.cwl | 2 +- tests/no-inputs-tool.cwl | 2 +- tests/no-inputs-wf.cwl | 2 +- tests/no-outputs-tool.cwl | 2 +- tests/no-outputs-wf.cwl | 2 +- tests/optional-output.cwl | 2 +- tests/revsort.cwl | 2 +- tests/search.cwl | 4 +-- tests/stage-unprovided-file.cwl | 2 +- tests/stagefile.cwl | 2 +- tests/symlink-illegal.cwl | 4 +-- tests/symlink-legal.cwl | 4 +-- tests/template-tool.cwl | 2 +- tests/test-cwl-out.cwl | 2 +- tests/test-cwl-out2.cwl | 2 +- tests/touch.cwl | 2 +- tests/updateval_inplace.cwl | 2 +- tests/valueFrom-constant.cwl | 2 +- tests/wc-tool-shortcut.cwl | 2 +- tests/writable-dir-docker.cwl | 2 +- 51 files changed, 83 insertions(+), 54 deletions(-) create mode 100644 .github/workflows/cwltool.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 14baf1e3..581070e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,9 +6,9 @@ name: CI on: # Triggers the workflow on push or pull request events but only for the main branch push: - branches: [ main ] + branches: [ main, 1.2.1_proposed ] pull_request: - branches: [ main ] + branches: [ main, 1.2.1_proposed ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: diff --git a/.github/workflows/cwltool.yml b/.github/workflows/cwltool.yml new file mode 100644 index 00000000..2793630d --- /dev/null +++ b/.github/workflows/cwltool.yml @@ -0,0 +1,29 @@ +name: test_with_cwltool + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the main branch + push: + branches: [ main, 1.2.1_proposed ] + pull_request: + branches: [ main, 1.2.1_proposed ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + test_with_cwltool: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-python@v2 + with: + python-version: '3.9.x' + + - name: Setup prerequirements + run: pip install cwltest cwltool + + - name: Run tests against the reference runner + run: ./run_test.sh RUNNER=cwltool EXTRA=--parallel -j$(nproc) diff --git a/tests/binding-test.cwl b/tests/binding-test.cwl index 90ef6d11..dc51ed17 100755 --- a/tests/binding-test.cwl +++ b/tests/binding-test.cwl @@ -4,7 +4,7 @@ class: CommandLineTool cwlVersion: v1.2 hints: - class: DockerRequirement - dockerPull: python:2-slim + dockerPull: docker.io/python:3-slim inputs: - id: reference type: File diff --git a/tests/bool-empty-inputbinding.cwl b/tests/bool-empty-inputbinding.cwl index d22605a2..efb25d26 100644 --- a/tests/bool-empty-inputbinding.cwl +++ b/tests/bool-empty-inputbinding.cwl @@ -3,7 +3,7 @@ class: CommandLineTool cwlVersion: v1.2 hints: - class: DockerRequirement - dockerPull: python:2-slim + dockerPull: docker.io/python:3-slim inputs: - id: flag type: boolean diff --git a/tests/bwa-mem-tool.cwl b/tests/bwa-mem-tool.cwl index d76f3180..26deb38c 100755 --- a/tests/bwa-mem-tool.cwl +++ b/tests/bwa-mem-tool.cwl @@ -8,7 +8,7 @@ hints: - class: ResourceRequirement coresMin: 2 - class: DockerRequirement - dockerPull: python:2-slim + dockerPull: docker.io/python:3-slim inputs: - id: reference diff --git a/tests/cat-tool-shortcut.cwl b/tests/cat-tool-shortcut.cwl index 3f07cebb..4c894c37 100755 --- a/tests/cat-tool-shortcut.cwl +++ b/tests/cat-tool-shortcut.cwl @@ -5,7 +5,7 @@ cwlVersion: v1.2 requirements: - class: DockerRequirement - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: stdin diff --git a/tests/cat3-tool-docker.cwl b/tests/cat3-tool-docker.cwl index 03c0ea4a..b486e8ce 100755 --- a/tests/cat3-tool-docker.cwl +++ b/tests/cat3-tool-docker.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 doc: "Print the contents of a file to stdout using 'cat' running in a docker container." requirements: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: type: File diff --git a/tests/cat3-tool-mediumcut.cwl b/tests/cat3-tool-mediumcut.cwl index 353e6800..534a12b4 100755 --- a/tests/cat3-tool-mediumcut.cwl +++ b/tests/cat3-tool-mediumcut.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 doc: "Print the contents of a file to stdout using 'cat' running in a docker container." requirements: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: type: File diff --git a/tests/cat3-tool-shortcut.cwl b/tests/cat3-tool-shortcut.cwl index 45e1d959..add284d9 100755 --- a/tests/cat3-tool-shortcut.cwl +++ b/tests/cat3-tool-shortcut.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 doc: "Print the contents of a file to stdout using 'cat' running in a docker container." requirements: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: type: File diff --git a/tests/cat3-tool.cwl b/tests/cat3-tool.cwl index 270640ca..f6b7a45b 100755 --- a/tests/cat3-tool.cwl +++ b/tests/cat3-tool.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 doc: "Print the contents of a file to stdout using 'cat' running in a docker container." hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: type: File diff --git a/tests/cat4-tool.cwl b/tests/cat4-tool.cwl index 29b6a154..656f94a8 100755 --- a/tests/cat4-tool.cwl +++ b/tests/cat4-tool.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 doc: "Print the contents of a file to stdout using 'cat' running in a docker container if docker is available." hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: File outputs: diff --git a/tests/cat5-tool.cwl b/tests/cat5-tool.cwl index 22bec9c3..ce8295c3 100755 --- a/tests/cat5-tool.cwl +++ b/tests/cat5-tool.cwl @@ -6,7 +6,7 @@ class: CommandLineTool doc: "Print the contents of a file to stdout using 'cat' running in a docker container." hints: DockerRequirement: - dockerPull: "debian:stretch-slim" + dockerPull: docker.io/debian:stable-slim ex:BlibberBlubberFakeRequirement: fakeField: fraggleFroogle inputs: diff --git a/tests/dir2.cwl b/tests/dir2.cwl index eaade67e..823ef609 100644 --- a/tests/dir2.cwl +++ b/tests/dir2.cwl @@ -4,7 +4,7 @@ requirements: ShellCommandRequirement: {} hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: indir: Directory outputs: diff --git a/tests/docker-array-secondaryfiles.cwl b/tests/docker-array-secondaryfiles.cwl index 8615d641..3058e3c8 100644 --- a/tests/docker-array-secondaryfiles.cwl +++ b/tests/docker-array-secondaryfiles.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 requirements: - class: DockerRequirement - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim - class: InlineJavascriptRequirement - class: ShellCommandRequirement diff --git a/tests/docker-output-dir.cwl b/tests/docker-output-dir.cwl index 339493fd..2a78b204 100644 --- a/tests/docker-output-dir.cwl +++ b/tests/docker-output-dir.cwl @@ -2,7 +2,7 @@ class: CommandLineTool cwlVersion: v1.2 requirements: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim dockerOutputDirectory: /other inputs: [] outputs: diff --git a/tests/docker-run-cmd.cwl b/tests/docker-run-cmd.cwl index e4432b86..fe4a286d 100644 --- a/tests/docker-run-cmd.cwl +++ b/tests/docker-run-cmd.cwl @@ -2,7 +2,7 @@ class: CommandLineTool cwlVersion: v1.2 requirements: DockerRequirement: - dockerPull: bash:4.4.12 + dockerPull: docker.io/bash:4.4 inputs: [] outputs: cow: diff --git a/tests/empty-array-input.cwl b/tests/empty-array-input.cwl index 8d6271ba..bc931a2f 100644 --- a/tests/empty-array-input.cwl +++ b/tests/empty-array-input.cwl @@ -5,7 +5,7 @@ class: CommandLineTool hints: - class: DockerRequirement - dockerPull: python:2-slim + dockerPull: docker.io/python:3-slim inputs: - id: array diff --git a/tests/envvar2.cwl b/tests/envvar2.cwl index cf81a45f..ffb5429c 100644 --- a/tests/envvar2.cwl +++ b/tests/envvar2.cwl @@ -6,7 +6,7 @@ requirements: ShellCommandRequirement: {} hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim arguments: [ echo, {valueFrom: '"HOME=$HOME"', shellQuote: false}, {valueFrom: '"TMPDIR=$TMPDIR"', shellQuote: false}, {valueFrom: '&&', shellQuote: false}, diff --git a/tests/envvar3.cwl b/tests/envvar3.cwl index 53c2e492..10a6545a 100644 --- a/tests/envvar3.cwl +++ b/tests/envvar3.cwl @@ -10,7 +10,7 @@ requirements: ShellCommandRequirement: {} hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim arguments: - shellQuote: false valueFrom: | diff --git a/tests/formattest2.cwl b/tests/formattest2.cwl index 7d2ddccc..0fdc9efa 100644 --- a/tests/formattest2.cwl +++ b/tests/formattest2.cwl @@ -7,7 +7,7 @@ cwlVersion: v1.2 doc: "Reverse each line using the `rev` command" hints: DockerRequirement: - dockerPull: "debian:stretch-slim" + dockerPull: docker.io/debian:stable-slim inputs: input: diff --git a/tests/formattest3.cwl b/tests/formattest3.cwl index 55be2546..cc8fe26f 100644 --- a/tests/formattest3.cwl +++ b/tests/formattest3.cwl @@ -9,7 +9,7 @@ cwlVersion: v1.2 doc: "Reverse each line using the `rev` command" hints: DockerRequirement: - dockerPull: "debian:stretch-slim" + dockerPull: docker.io/debian:stable-slim inputs: input: diff --git a/tests/glob-path-error.cwl b/tests/glob-path-error.cwl index 6a2e3331..6c1190dd 100644 --- a/tests/glob-path-error.cwl +++ b/tests/glob-path-error.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 requirements: - class: DockerRequirement - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim class: CommandLineTool diff --git a/tests/initialworkdirrequirement-docker-out.cwl b/tests/initialworkdirrequirement-docker-out.cwl index 922652c5..bdc2aba5 100644 --- a/tests/initialworkdirrequirement-docker-out.cwl +++ b/tests/initialworkdirrequirement-docker-out.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 requirements: - class: DockerRequirement - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim - class: InitialWorkDirRequirement listing: - $(inputs.INPUT) diff --git a/tests/inline-js.cwl b/tests/inline-js.cwl index abc85e44..12ff75ef 100755 --- a/tests/inline-js.cwl +++ b/tests/inline-js.cwl @@ -5,7 +5,7 @@ requirements: - class: InlineJavascriptRequirement hints: - class: DockerRequirement - dockerPull: python:2-slim + dockerPull: docker.io/python:3-slim inputs: - id: args.py diff --git a/tests/iwd/iwd-container-entryname1.cwl b/tests/iwd/iwd-container-entryname1.cwl index 2cfd3a31..3fe16c9e 100644 --- a/tests/iwd/iwd-container-entryname1.cwl +++ b/tests/iwd/iwd-container-entryname1.cwl @@ -12,7 +12,7 @@ outputs: glob: head.txt requirements: DockerRequirement: - dockerPull: "debian:10" + dockerPull: docker.io/debian:stable-slim dockerOutputDirectory: /output InitialWorkDirRequirement: listing: diff --git a/tests/iwd/iwd-container-entryname3.cwl b/tests/iwd/iwd-container-entryname3.cwl index d6aaf993..cfa14e63 100644 --- a/tests/iwd/iwd-container-entryname3.cwl +++ b/tests/iwd/iwd-container-entryname3.cwl @@ -12,7 +12,7 @@ outputs: glob: head.txt hints: DockerRequirement: - dockerPull: "debian:10" + dockerPull: docker.io/debian:stable-slim dockerOutputDirectory: /output requirements: InitialWorkDirRequirement: diff --git a/tests/iwd/iwd-passthrough2.cwl b/tests/iwd/iwd-passthrough2.cwl index 88034e41..e6fbf73c 100644 --- a/tests/iwd/iwd-passthrough2.cwl +++ b/tests/iwd/iwd-passthrough2.cwl @@ -9,7 +9,7 @@ doc: | requirements: DockerRequirement: - dockerPull: "python:3-slim" + dockerPull: docker.io/python:3-slim InitialWorkDirRequirement: listing: - entryname: "renamed-filelist.txt" diff --git a/tests/iwd/iwdr_dir_literal_real_file.cwl b/tests/iwd/iwdr_dir_literal_real_file.cwl index ae4c0f49..a6012fe1 100644 --- a/tests/iwd/iwdr_dir_literal_real_file.cwl +++ b/tests/iwd/iwdr_dir_literal_real_file.cwl @@ -3,7 +3,7 @@ cwlVersion: v1.2 requirements: DockerRequirement: - dockerPull: debian:stable-slim + dockerPull: docker.io/debian:stable-slim InlineJavascriptRequirement: {} InitialWorkDirRequirement: listing: | diff --git a/tests/loadContents/cwloutput-nolimit.cwl b/tests/loadContents/cwloutput-nolimit.cwl index 75b1eda7..d4e3b615 100644 --- a/tests/loadContents/cwloutput-nolimit.cwl +++ b/tests/loadContents/cwloutput-nolimit.cwl @@ -3,7 +3,7 @@ class: CommandLineTool cwlVersion: v1.2 requirements: DockerRequirement: - dockerPull: "python:3-slim" + dockerPull: docker.io/python:3-slim inputs: script: type: File diff --git a/tests/metadata.cwl b/tests/metadata.cwl index 7a1a2e3c..72e6b39d 100644 --- a/tests/metadata.cwl +++ b/tests/metadata.cwl @@ -18,7 +18,7 @@ dct:creator: hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: type: File diff --git a/tests/networkaccess.cwl b/tests/networkaccess.cwl index 855c7286..cbc7395b 100644 --- a/tests/networkaccess.cwl +++ b/tests/networkaccess.cwl @@ -2,7 +2,7 @@ class: CommandLineTool cwlVersion: v1.2 requirements: DockerRequirement: - dockerPull: python:3 + dockerPull: docker.io/python:3-slim NetworkAccess: networkAccess: true inputs: [] diff --git a/tests/networkaccess2.cwl b/tests/networkaccess2.cwl index 9d5c8864..ed36c9fc 100644 --- a/tests/networkaccess2.cwl +++ b/tests/networkaccess2.cwl @@ -2,7 +2,7 @@ class: CommandLineTool cwlVersion: v1.2 requirements: DockerRequirement: - dockerPull: python:3 + dockerPull: docker.io/python:3-slim inputs: [] outputs: [] baseCommand: python diff --git a/tests/no-inputs-tool.cwl b/tests/no-inputs-tool.cwl index 3037ea21..05bd64b6 100644 --- a/tests/no-inputs-tool.cwl +++ b/tests/no-inputs-tool.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 doc: "CommandLineTool without inputs." hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: [] outputs: output: diff --git a/tests/no-inputs-wf.cwl b/tests/no-inputs-wf.cwl index 1495bb63..613940ad 100644 --- a/tests/no-inputs-wf.cwl +++ b/tests/no-inputs-wf.cwl @@ -17,7 +17,7 @@ steps: doc: "CommandLineTool without inputs." hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: [] outputs: output: diff --git a/tests/no-outputs-tool.cwl b/tests/no-outputs-tool.cwl index eef1dcb3..faf262b4 100644 --- a/tests/no-outputs-tool.cwl +++ b/tests/no-outputs-tool.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 doc: "CommandLineTool without outputs." hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: type: File diff --git a/tests/no-outputs-wf.cwl b/tests/no-outputs-wf.cwl index 8fbed130..4b8706d0 100644 --- a/tests/no-outputs-wf.cwl +++ b/tests/no-outputs-wf.cwl @@ -15,7 +15,7 @@ steps: doc: "CommandLineTool without outputs." hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: type: File diff --git a/tests/optional-output.cwl b/tests/optional-output.cwl index ccca38b4..46c57afb 100644 --- a/tests/optional-output.cwl +++ b/tests/optional-output.cwl @@ -4,7 +4,7 @@ cwlVersion: "v1.2" doc: "Print the contents of a file to stdout using 'cat' running in a docker container." hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: type: File diff --git a/tests/revsort.cwl b/tests/revsort.cwl index 244601de..7f2cb286 100644 --- a/tests/revsort.cwl +++ b/tests/revsort.cwl @@ -10,7 +10,7 @@ cwlVersion: v1.2 # in which the command line tools will execute. hints: - class: DockerRequirement - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim # The inputs array defines the structure of the input object that describes diff --git a/tests/search.cwl b/tests/search.cwl index 745b49bf..d27c408c 100644 --- a/tests/search.cwl +++ b/tests/search.cwl @@ -14,7 +14,7 @@ $graph: - class: InlineJavascriptRequirement hints: - class: DockerRequirement - dockerPull: python:2-slim + dockerPull: docker.io/python:3-slim inputs: file: File @@ -48,7 +48,7 @@ $graph: - class: InlineJavascriptRequirement hints: - class: DockerRequirement - dockerPull: python:2-slim + dockerPull: docker.io/python:3-slim inputs: file: type: File diff --git a/tests/stage-unprovided-file.cwl b/tests/stage-unprovided-file.cwl index d8ad8d76..318e8226 100644 --- a/tests/stage-unprovided-file.cwl +++ b/tests/stage-unprovided-file.cwl @@ -2,7 +2,7 @@ cwlVersion: v1.2 class: CommandLineTool hints: - class: DockerRequirement - dockerPull: python:2-slim + dockerPull: docker.io/python:3-slim inputs: - id: infile type: File? diff --git a/tests/stagefile.cwl b/tests/stagefile.cwl index 8a9fdbc4..23dc26f7 100644 --- a/tests/stagefile.cwl +++ b/tests/stagefile.cwl @@ -2,7 +2,7 @@ class: CommandLineTool cwlVersion: v1.2 hints: - class: DockerRequirement - dockerPull: python:2-slim + dockerPull: docker.io/python:3-slim requirements: InitialWorkDirRequirement: listing: diff --git a/tests/symlink-illegal.cwl b/tests/symlink-illegal.cwl index 579539b0..16c5bf3b 100644 --- a/tests/symlink-illegal.cwl +++ b/tests/symlink-illegal.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 doc: "Create a file under /tmp, symlink it to working directory and glob symlink. The executor should NOT resolve this symlink" hints: DockerRequirement: - dockerPull: alpine + dockerPull: docker.io/alpine:latest inputs: [] outputs: output_file: @@ -22,4 +22,4 @@ arguments: - ln - -s - /tmp/original.txt - - symlink.txt \ No newline at end of file + - symlink.txt diff --git a/tests/symlink-legal.cwl b/tests/symlink-legal.cwl index f6735c51..6f0af3f4 100644 --- a/tests/symlink-legal.cwl +++ b/tests/symlink-legal.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 doc: "Create a file under adir/, symlink it to working directory (./) and glob symlink. The executor should resolve this symlink" hints: DockerRequirement: - dockerPull: alpine + dockerPull: docker.io/alpine:latest inputs: [] outputs: output_file: @@ -25,4 +25,4 @@ arguments: - ln - -s - adir/original.txt - - symlink.txt \ No newline at end of file + - symlink.txt diff --git a/tests/template-tool.cwl b/tests/template-tool.cwl index 1c20dfb2..24f93e1e 100755 --- a/tests/template-tool.cwl +++ b/tests/template-tool.cwl @@ -12,7 +12,7 @@ requirements: entry: $(t("The file is <%= data.inputs.file1.path.split('/').slice(-1)[0] %>\n")) hints: DockerRequirement: - dockerPull: "debian:stretch-slim" + dockerPull: docker.io/debian:stable-slim inputs: - id: file1 type: File diff --git a/tests/test-cwl-out.cwl b/tests/test-cwl-out.cwl index 3de92294..457f95c1 100644 --- a/tests/test-cwl-out.cwl +++ b/tests/test-cwl-out.cwl @@ -4,7 +4,7 @@ requirements: - class: ShellCommandRequirement hints: DockerRequirement: - dockerPull: "debian:stretch-slim" + dockerPull: docker.io/debian:stable-slim inputs: [] diff --git a/tests/test-cwl-out2.cwl b/tests/test-cwl-out2.cwl index 547b6f18..71044aae 100644 --- a/tests/test-cwl-out2.cwl +++ b/tests/test-cwl-out2.cwl @@ -4,7 +4,7 @@ requirements: - class: ShellCommandRequirement hints: DockerRequirement: - dockerPull: "debian:stretch-slim" + dockerPull: docker.io/debian:stable-slim inputs: [] diff --git a/tests/touch.cwl b/tests/touch.cwl index f4714933..397754f8 100644 --- a/tests/touch.cwl +++ b/tests/touch.cwl @@ -4,7 +4,7 @@ class: CommandLineTool hints: DockerRequirement: - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: name: diff --git a/tests/updateval_inplace.cwl b/tests/updateval_inplace.cwl index d3b45048..004ee1a0 100755 --- a/tests/updateval_inplace.cwl +++ b/tests/updateval_inplace.cwl @@ -10,7 +10,7 @@ requirements: inplaceUpdate: true hints: DockerRequirement: - dockerPull: "python:2.7.15-alpine3.7" + dockerPull: docker.io/python:3-slim inputs: r: File script: diff --git a/tests/valueFrom-constant.cwl b/tests/valueFrom-constant.cwl index c8b975c2..f16a9060 100644 --- a/tests/valueFrom-constant.cwl +++ b/tests/valueFrom-constant.cwl @@ -3,7 +3,7 @@ cwlVersion: v1.2 hints: - class: DockerRequirement - dockerPull: python:2-slim + dockerPull: docker.io/python:3-slim inputs: - id: array_input diff --git a/tests/wc-tool-shortcut.cwl b/tests/wc-tool-shortcut.cwl index 645fd430..f157cca3 100755 --- a/tests/wc-tool-shortcut.cwl +++ b/tests/wc-tool-shortcut.cwl @@ -5,7 +5,7 @@ cwlVersion: v1.2 requirements: - class: DockerRequirement - dockerPull: debian:stretch-slim + dockerPull: docker.io/debian:stable-slim inputs: file1: stdin diff --git a/tests/writable-dir-docker.cwl b/tests/writable-dir-docker.cwl index 756be158..82690c12 100644 --- a/tests/writable-dir-docker.cwl +++ b/tests/writable-dir-docker.cwl @@ -12,7 +12,7 @@ requirements: hints: - class: DockerRequirement - dockerPull: alpine + dockerPull: docker.io/alpine:latest inputs: [] outputs: From 3b85afc8585c0471a2f2ed003f28d1d78f3dd7fc Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Wed, 6 Oct 2021 06:18:02 -0400 Subject: [PATCH 011/127] Adjust behavior of command_input_file_expression (#128) Changes it to reference another input parameter instead of using self. The behavior of processing secondary files patterns in order and being able to reference earlier ones later is not part of the spec. This doesn't exactly replicate the previous behavior, because it introduces a new input parameter, however it does demonstrate the ability to rename a file and have it staged as a secondary file without having to use InitialWorkDir. refs #127 Co-authored-by: Michael R. Crusoe <1330696+mr-c@users.noreply.github.com> --- tests/secondaryfiles/rename-inputs.cwl | 20 ++++++++------------ tests/secondaryfiles/rename-inputs.yml | 3 +++ tests/secondaryfiles/test-index.yaml | 2 +- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/tests/secondaryfiles/rename-inputs.cwl b/tests/secondaryfiles/rename-inputs.cwl index bffc0311..484c3f58 100644 --- a/tests/secondaryfiles/rename-inputs.cwl +++ b/tests/secondaryfiles/rename-inputs.cwl @@ -1,7 +1,5 @@ #!/usr/bin/env cwl-runner id: InputSecondaryFileConformanceTest -baseCommand: -- ls class: CommandLineTool cwlVersion: v1.2 doc: | @@ -24,7 +22,6 @@ inputs: touch secondary_file_test.txt.accessory ``` secondaryFiles: - - .accessory - | ${ function resolveSecondary(base, secPattern) { @@ -37,19 +34,21 @@ inputs: } return [{ "class": "File", - "location": self.secondaryFiles[0].location, + "location": inputs.accessory.location, "basename": resolveSecondary(self.basename, '^.accessory') }]; } +- id: accessory + type: File + arguments: +- "ls" +- $(inputs.inputWithSecondary.dirname) - valueFrom: "|" shellQuote: false - position: 0 -- valueFrom: "grep" - position: 1 -- valueFrom: "secondary" - position: 2 +- "grep" +- "secondary" outputs: - id: output_file @@ -58,6 +57,3 @@ stdout: result requirements: InlineJavascriptRequirement: {} ShellCommandRequirement: {} - InitialWorkDirRequirement: - listing: - - $(inputs.inputWithSecondary) diff --git a/tests/secondaryfiles/rename-inputs.yml b/tests/secondaryfiles/rename-inputs.yml index de72eec9..90393b72 100644 --- a/tests/secondaryfiles/rename-inputs.yml +++ b/tests/secondaryfiles/rename-inputs.yml @@ -1,3 +1,6 @@ inputWithSecondary: class: File location: secondary_file_test.txt +accessory: + class: File + location: secondary_file_test.txt.accessory diff --git a/tests/secondaryfiles/test-index.yaml b/tests/secondaryfiles/test-index.yaml index 79fae852..6ecec1d6 100644 --- a/tests/secondaryfiles/test-index.yaml +++ b/tests/secondaryfiles/test-index.yaml @@ -8,7 +8,7 @@ checksum: sha1$901c3d387a263c57eaed6f24a82517c1fb0e198d size: 54 location: result - tags: [ inline_javascript, secondary_files, command_line_tool ] + tags: [ inline_javascript, secondary_files, command_line_tool, shell_command ] - tool: rename-outputs.cwl doc: Confirm CommandOutputParameter expression can receive a File object From ed8b990d5701924238f684b154c796b7efb7e582 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Wed, 6 Oct 2021 12:33:55 +0200 Subject: [PATCH 012/127] CI: less checks --- .github/workflows/ci.yml | 2 +- .github/workflows/cwltool.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 581070e5..e770c5eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ name: CI on: # Triggers the workflow on push or pull request events but only for the main branch push: - branches: [ main, 1.2.1_proposed ] + branches: [ main ] pull_request: branches: [ main, 1.2.1_proposed ] diff --git a/.github/workflows/cwltool.yml b/.github/workflows/cwltool.yml index 2793630d..3ec4ac6e 100644 --- a/.github/workflows/cwltool.yml +++ b/.github/workflows/cwltool.yml @@ -4,7 +4,7 @@ name: test_with_cwltool on: # Triggers the workflow on push or pull request events but only for the main branch push: - branches: [ main, 1.2.1_proposed ] + branches: [ main ] pull_request: branches: [ main, 1.2.1_proposed ] From 0af8fc93bdb6006d8d8a729c258cfd9e91a13734 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Sat, 9 Oct 2021 10:49:48 +0200 Subject: [PATCH 013/127] List who the publisher is --- contrib.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/contrib.md b/contrib.md index 7b9b7eea..d7f64c2d 100644 --- a/contrib.md +++ b/contrib.md @@ -13,7 +13,7 @@ Contributors to v1.2: Incorporates the work of past authors and contributors to [CWL v1.0](https://www.commonwl.org/v1.0/Workflow.html) and [CWL v1.1](https://www.commonwl.org/v1.1/Workflow.html). -This specification was [approved on 2020-08-07](https://github.com/common-workflow-language/cwl-v1.2/pull/47) by the CWL leadership team consisting of: +This standard was [approved on 2020-08-07](https://github.com/common-workflow-language/cwl-v1.2/pull/47) by the CWL leadership team consisting of: * Peter Amstutz, Curii Inc. / Arvados; https://orcid.org/0000-0003-3566-7705 * John Chilton, Pennsylvania State University / Galaxy Project; https://orcid.org/0000-0002-6794-0756 @@ -22,3 +22,5 @@ This specification was [approved on 2020-08-07](https://github.com/common-workfl * Jeff Gentry, Foundation Medicine; https://orcid.org/0000-0001-5351-8442 * Hervé Ménager, Institut Pasteur; https://orcid.org/0000-0002-7552-1009 * Stian Soiland-Reyes, University of Manchester; https://orcid.org/0000-0001-9842-9718 + +Publisher: [Common Workflow Language project](https://www.commonwl.org), a member project of [Software Freedom Conservancy](https://sfconservancy.org/) From de4177ee4783f2ec7f4f48388cf0d0a827937e61 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Sun, 10 Oct 2021 12:09:54 +0200 Subject: [PATCH 014/127] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 357404a9..f0baf3c1 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ Hello! -This repo holds the released v1.2 of the Common Workflow Language standard and the history of its development. +This repo holds the development version of CWL v1.2.1; see https://github.com/common-workflow-language/cwl-v1.2/issues/54 for the plan. + +See https://github.com/common-workflow-language/cwl-v1.2/tree/v1.2.0 for the released v1.2 of the Common Workflow Language standards and the history of its development. You can render this using https://github.com/common-workflow-language/cwl-website/blob/master/website.sh -You may browse the spec online at https://www.commonwl.org/v1.2 +You may browse the released v1.2 standards online at https://www.commonwl.org/v1.2 From f97fb94e466afc0acebc8be8269f93ab54ec3993 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Thu, 28 Oct 2021 21:25:46 +1300 Subject: [PATCH 015/127] Fix typo in SchemaDefRequirement section --- Process.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Process.yml b/Process.yml index 3097d1c1..65558f4c 100644 --- a/Process.yml +++ b/Process.yml @@ -918,7 +918,7 @@ $graph: doc: | This field consists of an array of type definitions which must be used when interpreting the `inputs` and `outputs` fields. When a `type` field - contain a IRI, the implementation must check if the type is defined in + contains a IRI, the implementation must check if the type is defined in `schemaDefs` and use that definition. If the type is not found in `schemaDefs`, it is an error. The entries in `schemaDefs` must be processed in the order listed such that later schema definitions may refer From beb4cb65e672e0652c19da070e19688c412b0551 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 28 Oct 2021 12:11:43 -0700 Subject: [PATCH 016/127] CI: add pycodegen extra to schema-salad --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e770c5eb..e4226c00 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: python-version: '3.8.x' - name: Setup prerequirements - run: pip install cwltest schema-salad + run: pip install cwltest schema-salad[pycodegen] - name: Download schema for conformance_tests.yaml run: curl -LO https://raw.githubusercontent.com/common-workflow-language/cwltest/main/cwltest/cwltest-schema.yml From 8615de9b565b44a3eec7ec19686b259a0105117d Mon Sep 17 00:00:00 2001 From: Tomoya Tanjo Date: Mon, 22 Nov 2021 13:46:23 +0000 Subject: [PATCH 017/127] Fix typo: `$schema` to `$schemas` --- Process.yml | 4 ++-- concepts.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Process.yml b/Process.yml index 65558f4c..1bc0daa0 100644 --- a/Process.yml +++ b/Process.yml @@ -276,8 +276,8 @@ $graph: ` owl:equivalentClass ` and ` owl:subclassOf ` then infer ` owl:subclassOf `. - File format ontologies may be provided in the "$schema" metadata at the - root of the document. If no ontologies are specified in `$schema`, the + File format ontologies may be provided in the "$schemas" metadata at the + root of the document. If no ontologies are specified in `$schemas`, the runtime may perform exact file format matches. - name: contents type: string? diff --git a/concepts.md b/concepts.md index 3aa6c8dc..52e57f76 100644 --- a/concepts.md +++ b/concepts.md @@ -319,7 +319,7 @@ prefix listed in the `$namespaces` section of the document as described in the [Schema Salad specification](SchemaSalad.html#Explicit_context). It is recommended that concepts from schema.org are used whenever possible. -For the `$schema` field we recommend their RDF encoding: http://schema.org/version/latest/schema.rdf +For the `$schemas` field we recommend their RDF encoding: http://schema.org/version/latest/schema.rdf Implementation extensions which modify execution semantics must be [listed in the `requirements` field](#Requirements_and_hints). From 236af6f36c78877effac80bebdf459df9204b473 Mon Sep 17 00:00:00 2001 From: pvanheus Date: Fri, 26 Nov 2021 12:17:49 +0200 Subject: [PATCH 018/127] Clarify parameter reference: null and array length (#64) * Address ambiguity on null and inputs.somearray.length in parameter reference * Clarify that the length field can sometimes apply to a non-array input --- concepts.md | 26 ++++++++------ conformance_tests.yaml | 22 ++++++++++++ tests/length_non_array_input.yml | 5 +++ tests/params_broken_length_of_non_list.cwl | 14 ++++++++ tests/params_broken_null.cwl | 14 ++++++++ tests/params_input_length_non_array.cwl | 40 ++++++++++++++++++++++ 6 files changed, 111 insertions(+), 10 deletions(-) create mode 100644 tests/length_non_array_input.yml create mode 100644 tests/params_broken_length_of_non_list.cwl create mode 100644 tests/params_broken_null.cwl create mode 100644 tests/params_input_length_non_array.cwl diff --git a/concepts.md b/concepts.md index 52e57f76..454469fd 100644 --- a/concepts.md +++ b/concepts.md @@ -510,17 +510,23 @@ or more repeats, and all other characters are literal values. Use the following algorithm to resolve a parameter reference: 1. Match the leading symbol as the key - 2. Look up the key in the parameter context (described below) to get the current value. + 2. If the key is the special value 'null' then the + value of the parameter reference is 'null'. If the key is 'null' it must be the only symbol in the parameter reference. + 3. Look up the key in the parameter context (described below) to get the current value. It is an error if the key is not found in the parameter context. - 3. If there are no subsequent segments, terminate and return current value - 4. Else, match the next segment - 5. Extract the symbol, string, or index from the segment as the key - 6. Look up the key in current value and assign as new current value. If - the key is a symbol or string, the current value must be an object. - If the key is an index, the current value must be an array or string. - It is an error if the key does not match the required type, or the key is not found or out - of range. - 7. Repeat steps 3-6 + 4. If there are no subsequent segments, terminate and return current value + 5. Else, match the next segment + 6. Extract the symbol, string, or index from the segment as the key + 7. Look up the key in current value and assign as new current value. + 1. If the key is a symbol or string, the current value must be an object. + 2. If the key is an index, the current value must be an array or string. + 3. If the next key is the last key and it has the special value 'length' and + the current value is an array, the value of the parameter reference is the + length of the array. If the value 'length' is encountered in other contexts, normal + evaluation rules apply. + 4. It is an error if the key does not match the required type, or the key is not found or out + of range. + 8. Repeat steps 3-8 The root namespace is the parameter context. The following parameters must be provided: diff --git a/conformance_tests.yaml b/conformance_tests.yaml index f59d0e5e..81675aa7 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3399,3 +3399,25 @@ - $import: tests/mixed-versions/test-index.yaml - $import: tests/loadContents/test-index.yaml - $import: tests/iwd/test-index.yaml + +- job: tests/empty.json + tool: tests/params_broken_null.cwl + label: params_broken_null + doc: Test parameter reference that refers to null.something + should_fail: true + tags: [ required, command_line_tool ] + +- job: tests/empty.json + tool: tests/params_broken_length_of_non_list.cwl + doc: Test paramer reference that refers to length of non-array input + should_fail: true + tags: [ required, command_line_tool ] + +- job: tests/length_non_array_input.yml + tool: tests/params_input_length_non_array.cwl + doc: Test 'length' in parameter reference where it does not refer to length of an array input + tags: [ required, command_line_tool ] + output: + output1: 1 + output2: 2 + output3: 3 diff --git a/tests/length_non_array_input.yml b/tests/length_non_array_input.yml new file mode 100644 index 00000000..1caffb3e --- /dev/null +++ b/tests/length_non_array_input.yml @@ -0,0 +1,5 @@ +bar: + length: 2 +baz: + length: + bap: 3 \ No newline at end of file diff --git a/tests/params_broken_length_of_non_list.cwl b/tests/params_broken_length_of_non_list.cwl new file mode 100644 index 00000000..267f3ca9 --- /dev/null +++ b/tests/params_broken_length_of_non_list.cwl @@ -0,0 +1,14 @@ +class: CommandLineTool +cwlVersion: v1.2 +inputs: + bar: + type: Any + default: 0 + +outputs: + output1: + type: Any + outputBinding: + outputEval: $(inputs.bar.length) + +baseCommand: "true" \ No newline at end of file diff --git a/tests/params_broken_null.cwl b/tests/params_broken_null.cwl new file mode 100644 index 00000000..15710f24 --- /dev/null +++ b/tests/params_broken_null.cwl @@ -0,0 +1,14 @@ +class: CommandLineTool +cwlVersion: v1.2 +inputs: + bar: + type: Any + default: "something" + +outputs: + output1: + type: "null" + outputBinding: + outputEval: $(null.something) + +baseCommand: "true" \ No newline at end of file diff --git a/tests/params_input_length_non_array.cwl b/tests/params_input_length_non_array.cwl new file mode 100644 index 00000000..bbe50849 --- /dev/null +++ b/tests/params_input_length_non_array.cwl @@ -0,0 +1,40 @@ +class: CommandLineTool +cwlVersion: v1.2 +inputs: + length: + type: int + default: 1 + bar: + type: + type: record + name: bar_record + fields: + length: + type: int + baz: + type: + type: record + name: baz_record + fields: + length: + type: + type: record + name: length_record + fields: + bap: + type: int + +outputs: + output1: + type: int + outputBinding: + outputEval: $(inputs.length) + output2: + type: int + outputBinding: + outputEval: $(inputs.bar.length) + output3: + type: int + outputBinding: + outputEval: $(inputs.baz.length.bap) +baseCommand: "true" \ No newline at end of file From f7b974083f3c0ed37546b69f167eb509b94e6f99 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Tue, 30 Nov 2021 18:00:29 +0100 Subject: [PATCH 019/127] =?UTF-8?q?=20Environement=20=E2=86=92=20Environme?= =?UTF-8?q?nt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CommandLineTool.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index dd591463..a60c7e57 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -886,7 +886,7 @@ $graph: Using [RRID](https://www.identifiers.org/rrid/) as an example: https://identifiers.org/rrid/RRID:SCR_005476 could be fulfilled using the above mentioned Debian or bioconda - package, a local installation managed by [Environement Modules](http://modules.sourceforge.net/), + package, a local installation managed by [Environment Modules](http://modules.sourceforge.net/), or any other mechanism the platform chooses. IRIs can also be from identifer sources that are discipline specific yet still system independent. As an example, the equivalent [ELIXIR Tools and Data @@ -897,7 +897,7 @@ $graph: links to packaging systems. A site specific IRI can be listed as well. For example, an academic - computing cluster using Environement Modules could list the IRI + computing cluster using Environment Modules could list the IRI `https://hpc.example.edu/modules/bowtie-tbb/1.22` to indicate that `module load bowtie-tbb/1.1.2` should be executed to make available `bowtie` version 1.1.2 compiled with the TBB library prior to running From 381302c00d354a5227340fa7dbc4442a9527ff40 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Mon, 6 Dec 2021 14:30:16 +0100 Subject: [PATCH 020/127] Confirm that File.size is in bytes Courtesy of @nsoranzo --- Process.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Process.yml b/Process.yml index 1bc0daa0..4bdfabec 100644 --- a/Process.yml +++ b/Process.yml @@ -242,7 +242,7 @@ $graph: - "null" - int - long - doc: Optional file size + doc: Optional file size (in bytes) - name: "secondaryFiles" type: - "null" From 60a963508acafee8d6b024dcb9b0eaca255a49d5 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Fri, 10 Dec 2021 11:59:13 +0100 Subject: [PATCH 021/127] Test for literal directory with literal subdirectory. Test idea from @mvdbeek as part of the Galaxy CWL implementation --- conformance_tests.yaml | 11 +++++++++++ .../cat-from-dir-with-literal-file-in-subdir.yaml | 10 ++++++++++ tests/cat4-from-dir.cwl | 14 ++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 tests/cat-from-dir-with-literal-file-in-subdir.yaml create mode 100755 tests/cat4-from-dir.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 81675aa7..f284f83a 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3421,3 +3421,14 @@ output1: 1 output2: 2 output3: 3 + +- tool: tests/cat4-from-dir.cwl + job: tests/cat-from-dir-with-literal-file-in-subdir.yaml + output: + output_file: + checksum: sha1$ef88e689559565999700d6fea7cf7ba306d04360 + class: File + size: 26 + label: directory_literal_with_literal_file_in_subdir_nostdin + doc: Test non-stdin reference to literal File via a nested Directory literal + tags: [ command_line_tool, required ] diff --git a/tests/cat-from-dir-with-literal-file-in-subdir.yaml b/tests/cat-from-dir-with-literal-file-in-subdir.yaml new file mode 100644 index 00000000..e0898693 --- /dev/null +++ b/tests/cat-from-dir-with-literal-file-in-subdir.yaml @@ -0,0 +1,10 @@ +dir1: + class: Directory + basename: cwl + listing: + - class: Directory + basename: subdir + listing: + - class: File + basename: literal.txt + contents: "I'm a File literal; howdy!" diff --git a/tests/cat4-from-dir.cwl b/tests/cat4-from-dir.cwl new file mode 100755 index 00000000..077310cd --- /dev/null +++ b/tests/cat4-from-dir.cwl @@ -0,0 +1,14 @@ +#!/usr/bin/env cwl-runner +class: CommandLineTool +cwlVersion: v1.2 +inputs: + dir1: + type: Directory + inputBinding: + valueFrom: $(self.listing[0].listing[0].path) +outputs: + output_file: + type: File + outputBinding: {glob: output.txt} +baseCommand: cat +stdout: output.txt From 130516aabcae378bdf2d3b080bb1cbfd302fee77 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Wed, 22 Dec 2021 09:04:52 +0100 Subject: [PATCH 022/127] File.location: fix formatting of schemas --- Process.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Process.yml b/Process.yml index 4bdfabec..acddae16 100644 --- a/Process.yml +++ b/Process.yml @@ -70,8 +70,8 @@ $graph: a number of properties that provide metadata about the file. The `location` property of a File is a URI that uniquely identifies the - file. Implementations must support the file:// URI scheme and may support - other schemes such as http://. The value of `location` may also be a + file. Implementations must support the `file://` URI scheme and may support + other schemes such as `http://` and `https://`. The value of `location` may also be a relative reference, in which case it must be resolved relative to the URI of the document it appears in. Alternately to `location`, implementations must also accept the `path` property on File, which must be a filesystem From c0c31c54412619d106e100bfe70a49831a673004 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Wed, 22 Dec 2021 09:23:29 +0100 Subject: [PATCH 023/127] Test that colons are allowed in several places --- conformance_tests.yaml | 35 ++++++++++++++++++++++++++++++++ tests/A:Gln2Cys | 1 + tests/colon:test.cwl | 23 +++++++++++++++++++++ tests/colon:test:job.yaml | 6 ++++++ tests/colon_test_output.cwl | 20 ++++++++++++++++++ tests/colon_test_output_job.yaml | 4 ++++ 6 files changed, 89 insertions(+) create mode 100644 tests/A:Gln2Cys create mode 100755 tests/colon:test.cwl create mode 100644 tests/colon:test:job.yaml create mode 100755 tests/colon_test_output.cwl create mode 100644 tests/colon_test_output_job.yaml diff --git a/conformance_tests.yaml b/conformance_tests.yaml index f284f83a..d8e07aa6 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3432,3 +3432,38 @@ label: directory_literal_with_literal_file_in_subdir_nostdin doc: Test non-stdin reference to literal File via a nested Directory literal tags: [ command_line_tool, required ] + +- label: colon_in_paths + output: + log: + class: File + basename: re:sult + checksum: sha1$d7d6491030bfa0ce17bab3a648e603f2a55bf503 + size: 14 + result: + class: Directory + basename: A:Gln2Cys_result + listing: + - basename: A:Gln2Cys + checksum: sha1$2928c9c6fa02098aee8c31bf44099f3bf8c91013 + class: File + size: 18 + job: tests/colon:test:job.yaml + tool: tests/colon:test.cwl + doc: Confirm that colons are tolerated in input paths, string values, stdout shortcut, and output file & directory names + tags: [ required, command_line_tool ] + +- label: colon_in_output_path + output: + result: + class: Directory + basename: A:Gln2Cys_result + listing: + - basename: hello.txt + checksum: sha1$47a013e660d408619d894b20806b1d5086aab03b + class: File + size: 13 + job: tests/colon_test_output_job.yaml + tool: tests/colon_test_output.cwl + doc: Confirm that colons are tolerated in output directory names + tags: [ required, command_line_tool ] diff --git a/tests/A:Gln2Cys b/tests/A:Gln2Cys new file mode 100644 index 00000000..2bf1c057 --- /dev/null +++ b/tests/A:Gln2Cys @@ -0,0 +1 @@ +Example gene file diff --git a/tests/colon:test.cwl b/tests/colon:test.cwl new file mode 100755 index 00000000..7b675b06 --- /dev/null +++ b/tests/colon:test.cwl @@ -0,0 +1,23 @@ +#!/usr/bin/env cwl-runner +class: CommandLineTool +cwlVersion: v1.2 +hints: + DockerRequirement: + dockerPull: docker.io/bash:4.4 +inputs: + input_file: File + outdir_name: string + +baseCommand: [ bash, -c ] +stdout: re:sult +arguments: + - | + mkdir $(inputs.outdir_name); + cp $(inputs.input_file.path) $(inputs.outdir_name)/; + echo Status: done! +outputs: + log: stdout + result: + type: Directory + outputBinding: + glob: $(inputs.outdir_name) diff --git a/tests/colon:test:job.yaml b/tests/colon:test:job.yaml new file mode 100644 index 00000000..375cb114 --- /dev/null +++ b/tests/colon:test:job.yaml @@ -0,0 +1,6 @@ +input_file: + class: File + location: A%3AGln2Cys # location is a URI, even if it is relative, + # so it needs URI encoding + # (also known as percent escaping) +outdir_name: A:Gln2Cys_result diff --git a/tests/colon_test_output.cwl b/tests/colon_test_output.cwl new file mode 100755 index 00000000..5e84b81f --- /dev/null +++ b/tests/colon_test_output.cwl @@ -0,0 +1,20 @@ +#!/usr/bin/env cwl-runner +class: CommandLineTool +cwlVersion: v1.2 +hints: + DockerRequirement: + dockerPull: docker.io/bash:4.4 +inputs: + input_file: File + outdir_name: string + +baseCommand: [ bash, -c ] +arguments: + - | + mkdir $(inputs.outdir_name); + cp $(inputs.input_file.path) $(inputs.outdir_name)/; +outputs: + result: + type: Directory + outputBinding: + glob: $(inputs.outdir_name) diff --git a/tests/colon_test_output_job.yaml b/tests/colon_test_output_job.yaml new file mode 100644 index 00000000..b1ffa2d6 --- /dev/null +++ b/tests/colon_test_output_job.yaml @@ -0,0 +1,4 @@ +input_file: + class: File + path: hello.txt +outdir_name: A:Gln2Cys_result From 04477a8f4397fbd299d3132b617662501b2930fa Mon Sep 17 00:00:00 2001 From: John Didion Date: Tue, 25 Jan 2022 10:03:17 -0800 Subject: [PATCH 024/127] make workflow output types optional; addresses #146, #147 (#149) * validation warning won't be issued anymore Co-authored-by: Michael R. Crusoe --- tests/conditionals/cond-wf-002.cwl | 2 +- tests/conditionals/cond-wf-002_nojs.cwl | 2 +- tests/conditionals/cond-wf-011.cwl | 2 +- tests/conditionals/cond-wf-011_nojs.cwl | 2 +- tests/conditionals/test-index.yaml | 2 -- 5 files changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/conditionals/cond-wf-002.cwl b/tests/conditionals/cond-wf-002.cwl index 7549a5fb..de1e9793 100644 --- a/tests/conditionals/cond-wf-002.cwl +++ b/tests/conditionals/cond-wf-002.cwl @@ -15,7 +15,7 @@ steps: outputs: out1: - type: string + type: string? outputSource: step1/out1 requirements: diff --git a/tests/conditionals/cond-wf-002_nojs.cwl b/tests/conditionals/cond-wf-002_nojs.cwl index e5ee4b5e..4f3d7da6 100644 --- a/tests/conditionals/cond-wf-002_nojs.cwl +++ b/tests/conditionals/cond-wf-002_nojs.cwl @@ -18,5 +18,5 @@ steps: outputs: out1: - type: string + type: string? outputSource: step1/out1 diff --git a/tests/conditionals/cond-wf-011.cwl b/tests/conditionals/cond-wf-011.cwl index cf99cc85..d05554d4 100644 --- a/tests/conditionals/cond-wf-011.cwl +++ b/tests/conditionals/cond-wf-011.cwl @@ -26,7 +26,7 @@ outputs: type: array items: type: array - items: string + items: [string, 'null'] outputSource: step1/out1 pickValue: all_non_null diff --git a/tests/conditionals/cond-wf-011_nojs.cwl b/tests/conditionals/cond-wf-011_nojs.cwl index 21c3e0e7..deca8cc2 100644 --- a/tests/conditionals/cond-wf-011_nojs.cwl +++ b/tests/conditionals/cond-wf-011_nojs.cwl @@ -36,7 +36,7 @@ outputs: type: array items: type: array - items: string + items: [string, 'null'] outputSource: step1/out1 pickValue: all_non_null diff --git a/tests/conditionals/test-index.yaml b/tests/conditionals/test-index.yaml index 6b7d8c48..d6dfa65e 100644 --- a/tests/conditionals/test-index.yaml +++ b/tests/conditionals/test-index.yaml @@ -23,7 +23,6 @@ - id: cond-3 label: direct_required - doc: Should give validation warning because of required sink tool: cond-wf-002.cwl job: val.1.job.yaml output: @@ -230,7 +229,6 @@ - id: cond-3_nojs label: direct_required_nojs - doc: Should give validation warning because of required sink, no javascript tool: cond-wf-002_nojs.cwl job: val.1.job.yaml output: From abc8c45281bf8ead645e20d14b767bb653698a64 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Wed, 26 Jan 2022 08:36:33 +1300 Subject: [PATCH 025/127] Fix typo s/defualt/default --- concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/concepts.md b/concepts.md index 454469fd..6fecaa1f 100644 --- a/concepts.md +++ b/concepts.md @@ -159,7 +159,7 @@ some_cwl_field: a_complex_type2: field2: foo2 field3: bar2 - a_complex_type3: {} # we accept the defualt values for "field2" and "field3" + a_complex_type3: {} # we accept the default values for "field2" and "field3" ``` Option two specific example using [Workflow](Workflow.html#Workflow).[inputs](Workflow.html#WorkflowInputParameter): From 80b87ae13e2f4c3fb325fea9706e48ad17db0baa Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sun, 6 Feb 2022 00:03:13 +1300 Subject: [PATCH 026/127] s/compatability/compatibility --- Process.yml | 4 ++-- Workflow.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Process.yml b/Process.yml index acddae16..d7c6a933 100644 --- a/Process.yml +++ b/Process.yml @@ -269,7 +269,7 @@ $graph: represents the file format, preferrably defined within an ontology. If no ontology is available, file formats may be tested by exact match. - Reasoning about format compatability must be done by checking that an + Reasoning about format compatibility must be done by checking that an input file format is the same, `owl:equivalentClass` or `rdfs:subClassOf` the format required by the input parameter. `owl:equivalentClass` is transitive with `rdfs:subClassOf`, e.g. if @@ -644,7 +644,7 @@ $graph: jsonldPredicate: "cwl:loadContents" doc: | Use of `loadContents` in `InputBinding` is deprecated. - Preserved for v1.0 backwards compatability. Will be removed in + Preserved for v1.0 backwards compatibility. Will be removed in CWL v2.0. Use `InputParameter.loadContents` instead. - name: IOSchema diff --git a/Workflow.yml b/Workflow.yml index 8d93a881..b8f5acf4 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -148,7 +148,7 @@ $graph: - name: inputBinding type: InputBinding? doc: | - Deprecated. Preserved for v1.0 backwards compatability. Will be removed in + Deprecated. Preserved for v1.0 backwards compatibility. Will be removed in CWL v2.0. Use `WorkflowInputParameter.loadContents` instead. jsonldPredicate: "cwl:inputBinding" From 0a4c51c4f8ad31deb4fbf54dd972a64adc830636 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Fri, 18 Feb 2022 09:00:51 +0100 Subject: [PATCH 027/127] Allow records with defaults to be accepted, also type longs --- conformance_tests.yaml | 17 +++++++++++ tests/paramref_arguments_roundtrip.cwl | 41 ++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 tests/paramref_arguments_roundtrip.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index d8e07aa6..151cac5d 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3467,3 +3467,20 @@ tool: tests/colon_test_output.cwl doc: Confirm that colons are tolerated in output directory names tags: [ required, command_line_tool ] + +- label: record_with_default + output: + same_record: + first: y + second: 23 + third: 2.3 + fourth: 4242424242 + fifth: 4200000000000000000000000000000000000000000 + sixth: + class: File + basename: whale.txt + size: 1111 + checksum: sha1$327fc7aedf4f6b69a42a7c8b808dc5a7aff61376 + tool: tests/paramref_arguments_roundtrip.cwl + doc: Confirm that records with defaults are accepted + tags: [ required, command_line_tool ] diff --git a/tests/paramref_arguments_roundtrip.cwl b/tests/paramref_arguments_roundtrip.cwl new file mode 100644 index 00000000..694adaf8 --- /dev/null +++ b/tests/paramref_arguments_roundtrip.cwl @@ -0,0 +1,41 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.0 +class: CommandLineTool +inputs: + a_record: + type: + - "null" + - type: record + fields: + first: string + second: int + third: float + fourth: long + fifth: double + sixth: File + default: + first: y + second: 23 + third: 2.3 + fourth: 4242424242 + fifth: 4200000000000000000000000000000000000000000 + sixth: + class: File + path: whale.txt +arguments: + - '{' + - '"same_record": $(inputs.a_record)' + - '}' +outputs: + same_record: + type: + type: record + fields: + first: string + second: int + third: float + fourth: long + fifth: double + sixth: File +baseCommand: echo +stdout: cwl.output.json From 5551e596fe90456a5d44483793a65d75d48f6330 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Sat, 19 Feb 2022 13:43:56 +0100 Subject: [PATCH 028/127] Test for outputEval on a record type itself, not its fields --- conformance_tests.yaml | 30 ++++++++++++++++++++++++++ tests/record_outputeval.cwl | 36 ++++++++++++++++++++++++++++++++ tests/record_outputeval_nojs.cwl | 26 +++++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 tests/record_outputeval.cwl create mode 100644 tests/record_outputeval_nojs.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 151cac5d..86f4ee38 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3484,3 +3484,33 @@ tool: tests/paramref_arguments_roundtrip.cwl doc: Confirm that records with defaults are accepted tags: [ required, command_line_tool ] + +- label: record_outputeval + output: + references: + genome_fa: + class: File + basename: GRCm38.primary_assembly.genome.fa + checksum: sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709 + size: 0 + annotation_gtf: + class: File + basename: gencode.vM21.primary_assembly.annotation.gtf + checksum: sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709 + size: 0 + tool: tests/record_outputeval.cwl + doc: Use of outputEval on a record itself, not the fields of the record + tags: [ inline_javascript, command_line_tool ] + +- label: record_outputeval_nojs + output: + references: + annotation_gtf: gencode.vM21.primary_assembly.annotation.gtf + genome_fa: GRCm38.primary_assembly.genome.fa + summary: + class: File + checksum: sha1$c0bf6c4db73d4fc08ee24c7288825c09f9cb3cea + size: 79 + tool: tests/record_outputeval_nojs.cwl + doc: Use of outputEval on a record itself, not the fields of the record (without javascript) + tags: [ required, command_line_tool ] diff --git a/tests/record_outputeval.cwl b/tests/record_outputeval.cwl new file mode 100644 index 00000000..6540c1e1 --- /dev/null +++ b/tests/record_outputeval.cwl @@ -0,0 +1,36 @@ +cwlVersion: v1.2 +class: CommandLineTool +requirements: + InlineJavascriptRequirement: {} + +inputs: + gtf_version: + type: string + default: M21 + organism: + type: string + default: mouse + organism_prefix: + type: string + default: m + +baseCommand: + - bash + - -c +arguments: + - touch GRC$(inputs.organism_prefix)38.primary_assembly.genome.fa ; touch gencode.v$(inputs.gtf_version).primary_assembly.annotation.gtf +outputs: + - id: references + type: + name: References + fields: + - name: genome_fa + type: File + - name: annotation_gtf + type: File + type: record + outputBinding: + outputEval: '$({ "genome_fa": { "class": "File", "path": runtime.outdir+"/"+"GRC" + + inputs.organism_prefix + "38.primary_assembly.genome.fa" }, "annotation_gtf": + { "class": "File", "path": runtime.outdir+"/"+"gencode.v" + inputs.gtf_version + + ".primary_assembly.annotation.gtf" } })' diff --git a/tests/record_outputeval_nojs.cwl b/tests/record_outputeval_nojs.cwl new file mode 100644 index 00000000..b29c6622 --- /dev/null +++ b/tests/record_outputeval_nojs.cwl @@ -0,0 +1,26 @@ +cwlVersion: v1.2 +class: CommandLineTool +inputs: + ref: + type: + type: record + fields: + genome_fa: string + annotation_gtf: string + default: { genome_fa: GRCm38.primary_assembly.genome.fa, + annotation_gtf: gencode.vM21.primary_assembly.annotation.gtf } + +baseCommand: echo +arguments: + - $(inputs.ref.genome_fa) $(inputs.ref.annotation_gtf) +outputs: + references: + type: + type: record + fields: + genome_fa: string + annotation_gtf: string + outputBinding: + outputEval: $(inputs.ref) + summary: + type: stdout From b962666daff50d0e028e15a16dc1d2cef7068662 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Tue, 26 Apr 2022 05:31:46 -0400 Subject: [PATCH 029/127] Add test that changing basename with an ExpressionTool (#158) Test to assert that when used in a command line tool it does actually use the specified basename and not the original file name. --- conformance_tests.yaml | 10 +++++++++- tests/staging-basename/check.cwl | 18 ++++++++++++++++++ tests/staging-basename/rename.cwl | 12 ++++++++++++ tests/staging-basename/wf_ren.cwl | 29 +++++++++++++++++++++++++++++ tests/staging-basename/whale.txt | 1 + 5 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 tests/staging-basename/check.cwl create mode 100644 tests/staging-basename/rename.cwl create mode 100644 tests/staging-basename/wf_ren.cwl create mode 100644 tests/staging-basename/whale.txt diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 86f4ee38..548f329a 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3469,7 +3469,7 @@ tags: [ required, command_line_tool ] - label: record_with_default - output: + output: same_record: first: y second: 23 @@ -3514,3 +3514,11 @@ tool: tests/record_outputeval_nojs.cwl doc: Use of outputEval on a record itself, not the fields of the record (without javascript) tags: [ required, command_line_tool ] + +- label: staging-basename + output: {} + tool: tests/staging-basename/wf_ren.cwl + doc: | + Use of expression tool to change basename of file, then correctly staging + the file using the new name. + tags: [ required, command_line_tool, inline_javascript, expression_tool ] diff --git a/tests/staging-basename/check.cwl b/tests/staging-basename/check.cwl new file mode 100644 index 00000000..da8b5c9f --- /dev/null +++ b/tests/staging-basename/check.cwl @@ -0,0 +1,18 @@ +class: CommandLineTool +cwlVersion: v1.2 +inputs: + p: File + checkname: string +outputs: [] +arguments: + - sh + - "-c" + - | + name=`basename $(inputs.p.path)` + ls -l $(inputs.p.path) + if test $name = $(inputs.checkname) ; then + echo success + else + echo expected basename to be $(inputs.checkname) but was $name + exit 1 + fi diff --git a/tests/staging-basename/rename.cwl b/tests/staging-basename/rename.cwl new file mode 100644 index 00000000..97b33b82 --- /dev/null +++ b/tests/staging-basename/rename.cwl @@ -0,0 +1,12 @@ +class: ExpressionTool +cwlVersion: v1.2 +inputs: + f1: File + newname: string +outputs: + out: File +expression: | + ${ + inputs.f1.basename = inputs.newname; + return {"out": inputs.f1}; + } diff --git a/tests/staging-basename/wf_ren.cwl b/tests/staging-basename/wf_ren.cwl new file mode 100644 index 00000000..d2affceb --- /dev/null +++ b/tests/staging-basename/wf_ren.cwl @@ -0,0 +1,29 @@ +class: Workflow +cwlVersion: v1.2 +inputs: + f1: + type: File + default: + class: File + location: whale.txt + newname: + type: string + default: "badger.txt" +outputs: [] +requirements: + StepInputExpressionRequirement: {} + InlineJavascriptRequirement: {} +steps: + rename: + in: + f1: f1 + newname: newname + run: rename.cwl + out: [out] + + echo: + in: + p: rename/out + checkname: newname + out: [] + run: check.cwl diff --git a/tests/staging-basename/whale.txt b/tests/staging-basename/whale.txt new file mode 100644 index 00000000..eac5bf7c --- /dev/null +++ b/tests/staging-basename/whale.txt @@ -0,0 +1 @@ +whale From d38ef4a9ec7e901a5b450bd131a67e3920fa7452 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Mon, 2 May 2022 18:40:06 +1200 Subject: [PATCH 030/127] Fix a few typos (automatic IDE spellchecker) --- concepts.md | 8 ++++---- invocation.md | 2 +- salad/schema_salad/metaschema/salad.md | 10 +++++----- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/concepts.md b/concepts.md index 3bb77976..6202b77f 100644 --- a/concepts.md +++ b/concepts.md @@ -61,7 +61,7 @@ the CWL specification. ## Data concepts An **object** is a data structure equivalent to the "object" type in JSON, -consisting of a unordered set of name/value pairs (referred to here as +consisting of an unordered set of name/value pairs (referred to here as **fields**) and where the name is a string and the value is a string, number, boolean, array, or object. @@ -105,7 +105,7 @@ changed between versions, for that portion of the execution an implementation must provide runtime enviroment and behavior consistent with the document's declared version. An implementation must not expose a newer feature when executing a document that specifies an -older version that does not not include that feature. +older version that does not include that feature. ### map @@ -115,7 +115,7 @@ Note: This section is non-normative. The above syntax in the CWL specifications means there are two or more ways to write the given value. -Option one is a array and is the most verbose option. +Option one is an array and is the most verbose option. Option one generic example: ``` @@ -421,7 +421,7 @@ of [process requirements](#Requirements_and_hints). ## Generic execution process The generic execution sequence of a CWL process (including workflows -and command line line tools) is as follows. Processes are +and command line tools) is as follows. Processes are modeled as functions that consume an input object and produce an output object. diff --git a/invocation.md b/invocation.md index d319d618..f9b7040a 100644 --- a/invocation.md +++ b/invocation.md @@ -3,7 +3,7 @@ To accommodate the enormous variety in syntax and semantics for input, runtime environment, invocation, and output of arbitrary programs, a CommandLineTool defines an "input binding" that describes how to translate abstract input -parameters to an concrete program invocation, and an "output binding" that +parameters to a concrete program invocation, and an "output binding" that describes how to generate output parameters from program output. ## Input binding diff --git a/salad/schema_salad/metaschema/salad.md b/salad/schema_salad/metaschema/salad.md index 77bfe2d6..aeacdb92 100644 --- a/salad/schema_salad/metaschema/salad.md +++ b/salad/schema_salad/metaschema/salad.md @@ -72,7 +72,7 @@ documentation. ## Introduction to v1.1 -This is the third version of of the Schema Salad specification. It is +This is the third version of the Schema Salad specification. It is developed concurrently with v1.1 of the Common Workflow Language for use in specifying the Common Workflow Language, however Schema Salad is intended to be useful to a broader audience. Compared to the v1.0 schema salad @@ -113,7 +113,7 @@ the behavior of conforming implementations. The terminology used to describe Salad documents is defined in the Concepts section of the specification. The terms defined in the following list are -used in building those definitions and in describing the actions of an +used in building those definitions and in describing the actions of a Salad implementation: **may**: Conforming Salad documents and Salad implementations are permitted but @@ -139,7 +139,7 @@ enable or disable the behavior described. ## Data concepts An **object** is a data structure equivalent to the "object" type in JSON, -consisting of a unordered set of name/value pairs (referred to here as +consisting of an unordered set of name/value pairs (referred to here as **fields**) and where the name is a string and the value is a string, number, boolean, array, or object. @@ -257,14 +257,14 @@ rules: ## Document traversal -To perform document document preprocessing, link validation and schema +To perform document preprocessing, link validation and schema validation, the document must be traversed starting from the fields or array items of the root object or array and recursively visiting each child item which contains an object or arrays. ## Short names -The "short name" of an fully qualified identifier is the portion of +The "short name" of a fully qualified identifier is the portion of the identifier following the final slash `/` of either the fragment identifier following `#` or the path portion, if there is no fragment. Some examples: From f0edcc48f038e5773c562b594cb3c92c99047965 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Mon, 2 May 2022 18:20:13 +1200 Subject: [PATCH 031/127] Remove duplicate test --- conformance_tests.yaml | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 548f329a..e6474210 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -2991,27 +2991,6 @@ tags: [ initial_work_dir, command_line_tool ] id: 230 -# same test as above but keeping it for preserve ids maybe? I don't know - -# there is a reason I added labels before these ids were here :) -- job: tests/initialworkdirrequirement-docker-out-job.json - output: - OUTPUT: - "checksum": "sha1$aeb3d11bdf536511649129f4077d5cda6a324118" - "location": "ref.fasta" - "secondaryFiles": [{ - "checksum": "sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709", - "location": "ref.fasta.fai", - "class": "File", - "size": 0 - }] - "class": "File" - "size": 12010 - tool: tests/initialworkdir-glob-fullpath.cwl - label: initial_workdir_output_glob_duplicate - doc: Test full path glob output of InitialWorkDir (duplicate) - tags: [ initial_work_dir, command_line_tool ] - id: 231 - - job: tests/empty.json should_fail: true tool: tests/glob-path-error.cwl From cef8fb71cefe7de5947c5d0319fa8f3bf3ba56e1 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Tue, 3 May 2022 21:28:46 +1200 Subject: [PATCH 032/127] Use main branch --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0baf3c1..6572d632 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,6 @@ This repo holds the development version of CWL v1.2.1; see https://github.com/co See https://github.com/common-workflow-language/cwl-v1.2/tree/v1.2.0 for the released v1.2 of the Common Workflow Language standards and the history of its development. -You can render this using https://github.com/common-workflow-language/cwl-website/blob/master/website.sh +You can render this using https://github.com/common-workflow-language/cwl-website/blob/main/website.sh You may browse the released v1.2 standards online at https://www.commonwl.org/v1.2 From 5abc3d3d90eb8c59dbbeae640df2af4a97312b2d Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Thu, 5 May 2022 00:11:03 +1200 Subject: [PATCH 033/127] Adding a test to verify that runtime.outdir can be used with output glob --- conformance_tests.yaml | 31 +++++++++++++++++++++++++++++++ tests/runtime-outdir.cwl | 14 ++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 tests/runtime-outdir.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index e6474210..11e417e4 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3501,3 +3501,34 @@ Use of expression tool to change basename of file, then correctly staging the file using the new name. tags: [ required, command_line_tool, inline_javascript, expression_tool ] + +- label: runtime-outdir + output: { + "stuff": { + "class": "Directory", + "listing": [ + { + "basename": "baz.txt", + "checksum": "sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709", + "class": "File", + "size": 0 + }, + { + "basename": "foo", + "class": "Directory", + "listing": [ + { + "basename": "bar.txt", + "checksum": "sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709", + "class": "File", + "size": 0 + } + ] + } + ] + } + } + tool: tests/runtime-outdir.cwl + doc: | + Use of $(runtime.outdir) for outputBinding glob. + tags: [ required, command_line_tool ] diff --git a/tests/runtime-outdir.cwl b/tests/runtime-outdir.cwl new file mode 100644 index 00000000..41bb7b0b --- /dev/null +++ b/tests/runtime-outdir.cwl @@ -0,0 +1,14 @@ +cwlVersion: v1.2 +class: CommandLineTool +baseCommand: [bash, -c] +arguments: + - | + mkdir -p foo + touch baz.txt + touch foo/bar.txt +inputs: [] +outputs: + stuff: + type: Directory + outputBinding: + glob: $(runtime.outdir) From e22b916eb9e6aefe62cf9b0f721b89fce93939bd Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Thu, 5 May 2022 23:23:15 +1200 Subject: [PATCH 034/127] Adding GH Action spell check to the CI --- .github/config/spellcheck.yml | 21 ++++ .github/config/wordlist.txt | 155 ++++++++++++++++++++++++++ .github/workflows/spellcheck.yml | 21 ++++ CODE_OF_CONDUCT.md | 2 +- CONFORMANCE_TESTS.md | 2 +- concepts.md | 6 +- design-documents/conditionals-2019.md | 4 +- 7 files changed, 204 insertions(+), 7 deletions(-) create mode 100644 .github/config/spellcheck.yml create mode 100644 .github/config/wordlist.txt create mode 100644 .github/workflows/spellcheck.yml diff --git a/.github/config/spellcheck.yml b/.github/config/spellcheck.yml new file mode 100644 index 00000000..9f327aea --- /dev/null +++ b/.github/config/spellcheck.yml @@ -0,0 +1,21 @@ +matrix: +- name: Markdown + aspell: + lang: en + ignore-case: true + dictionary: + encoding: utf-8 + wordlists: + - .github/config/wordlist.txt + pipeline: + - pyspelling.filters.markdown: + - pyspelling.filters.html: + comments: true + attributes: + - title + - alt + ignores: + - :matches(code, pre) + sources: + - '**/*.md' + default_encoding: utf-8 diff --git a/.github/config/wordlist.txt b/.github/config/wordlist.txt new file mode 100644 index 00000000..7fdcbafb --- /dev/null +++ b/.github/config/wordlist.txt @@ -0,0 +1,155 @@ +acyclic +amstutz +arvados +auditability +avro +backchannel +backrub +basedir +bnf +bogdan +checkpoint +checkpointing +chilton +cisphobia +classname +commandlinetool +commandlinetools +commonwl +complextype +coreutils +ctbrown +curii +curoverse +cwl +cwltest +cwltool +cwlversion +cyclic +dataflow +dev +dockerrequirement +doubleq +dsl +dusenbery +edu +eg +envvarrequirement +expressionlib +expressiontool +expressiontools +filesystem +freedesktop +gavrilovic +ghose +gitter +gmail +hervé +https +ietf +implementer +implementers +implementor +implementors +initialworkdirrequirement +initialworkdirrequirements +inlinejavascriptrequirement +inplaceupdaterequirement +inputparameter +institut +invocab +iri +jmchilton +json +junit +kaushik +ld +lexicographically +linkmerge +lookahead +maccallum +macos +mebibyte +mebibytes +ménager +metaschema +misgendering +mrc +multipleinputfeaturerequirement +multithreaded +namespace +namespaces +nebojsa +nebojša +nekrutenko +networkaccess +neuro +onlinepubs +opengroup +orcid +osx +outputsource +petermac +pickvalue +posix +pre +preprocess +preprocessed +preprocessing +psu +publically +pvanheus +rdf +recurse +repo +reproducibility +resourcerequirement +routable +runtime +sbgenomics +scatterfeaturerequirement +schemadefrequirement +schemaorg +schemas +secondaryfiles +secondaryfilesdsl +shellcommandrequirement +singleq +softwarepackage +softwarerequirement +soiland +stepinputexpressionrequirement +stian +subdirectory +subprocess +subprocesses +subscope +subscoped +subshell +substep +substring +substrings +subtype +subtypes +subworkflow +subworkflowrequirement +superset +svg +tijanic +tijanić +toc +tooltimelimit +transcode +txt +uc +ucdavis +untrusted +uri +utf +vandewege +virtualenv +walkthrough +wdl +whitespace +xdg +yaml diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml new file mode 100644 index 00000000..58080f8a --- /dev/null +++ b/.github/workflows/spellcheck.yml @@ -0,0 +1,21 @@ +name: Spellcheck Action +on: + push: + branches: [ main ] + pull_request: + branches: [ main, 1.2.1_proposed ] + workflow_dispatch: + +jobs: + build: + # https://github.com/marketplace/actions/github-spellcheck-action + # To run locally, `pip install pyspelling`, followed by + # `pyspelling -c .github/config/spellcheck.yml`. + name: Spellcheck + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - uses rojopolis/spellcheck-github-actions@0.23.0 + name: Spellcheck + with: + config_path: ../config/spellcheck.yml diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 69c811ca..846a6b13 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -43,7 +43,7 @@ except as necessary to protect vulnerable people from intentional abuse. - Publication of non-harassing private communication. The CWL Project prioritizes marginalized people’s safety over privileged -people’s comfort. The CWL Leadeship Team will not act on complaints regarding: +people’s comfort. The CWL Leadership Team will not act on complaints regarding: - ‘Reverse’ -isms, including ‘reverse racism,’ ‘reverse sexism,’ and ‘cisphobia’ - Reasonable communication of boundaries, such as “leave me alone,” “go away,” or diff --git a/CONFORMANCE_TESTS.md b/CONFORMANCE_TESTS.md index cd4d4624..2c20f80a 100644 --- a/CONFORMANCE_TESTS.md +++ b/CONFORMANCE_TESTS.md @@ -184,7 +184,7 @@ Likewise, please do not test the `path` for `class: File` and `class: Directory` To add a new conformance test: 1. Ensure the CWL document you have tests the desired feature or aspect. -2. All `CommandLineTool`s need a software container (via `DockerRequirement`) for better reproducibility, preferrably under `hints`. +2. All `CommandLineTool`s need a software container (via `DockerRequirement`) for better reproducibility, preferably under `hints`. Please limit your container usage to the following: - `dockerPull: docker.io/alpine:latest` - `dockerPull: docker.io/bash:4.4` diff --git a/concepts.md b/concepts.md index 6202b77f..c6141fd8 100644 --- a/concepts.md +++ b/concepts.md @@ -100,9 +100,9 @@ must declare the `cwlVersion` of that document. Implementations must validate against the document's declared version. Implementations should allow workflows to reference documents of both newer and older CWL versions (up to the highest version of CWL supported by that -implementation). Where the runtime enviroment or runtime behavior has +implementation). Where the runtime environment or runtime behavior has changed between versions, for that portion of the execution an -implementation must provide runtime enviroment and behavior consistent +implementation must provide runtime environment and behavior consistent with the document's declared version. An implementation must not expose a newer feature when executing a document that specifies an older version that does not include that feature. @@ -376,7 +376,7 @@ produces output, and then terminates. A **workflow** is a process characterized by multiple subprocess steps, where step outputs are connected to the inputs of downstream steps to -form a directed acylic graph, and independent steps may run concurrently. +form a directed acyclic graph, and independent steps may run concurrently. A **runtime environment** is the actual hardware and software environment when executing a command line tool. It includes, but is not limited to, the diff --git a/design-documents/conditionals-2019.md b/design-documents/conditionals-2019.md index 5b433f42..34f7d691 100644 --- a/design-documents/conditionals-2019.md +++ b/design-documents/conditionals-2019.md @@ -247,7 +247,7 @@ it creates an in-congruence with the existing `linkMerge` operator. Also, during a) the `linkMerge` operator would operate first and b) `pickValue` would not recurse into the lists -This makes this proposed syntax mis-leading, since it suggests that `first_non_null` operates before +This makes this proposed syntax misleading, since it suggests that `first_non_null` operates before `linkMerge`. For these reason it was decided to have the `pickValue` operator sit at the same level as `linkMerge` @@ -317,7 +317,7 @@ workflow developer. On the other hand there may be applications where having to explicitly think about the condition for each case without having recourse to an automatic fallback can remove sources of bugs. -In programing languages `if-else` constructs utilize the concept of a code block +In programming languages `if-else` constructs utilize the concept of a code block and the two halves of the `if-else` or the clauses of a `switch` form a collection of function invocations or commands that are grouped together. From d1007828cd9488cf9e52d0903729a1613ec02ad9 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 7 May 2022 00:31:19 +1200 Subject: [PATCH 035/127] Remove unused test files --- tests/cat3-tool-docker.cwl | 19 -------------- tests/import_schema-def.cwl | 26 ------------------- tests/operation.cwl | 25 ------------------ tests/revsort-abstract.cwl | 52 ------------------------------------- tests/wc-tool-shortcut.cwl | 20 -------------- 5 files changed, 142 deletions(-) delete mode 100755 tests/cat3-tool-docker.cwl delete mode 100644 tests/import_schema-def.cwl delete mode 100644 tests/operation.cwl delete mode 100644 tests/revsort-abstract.cwl delete mode 100755 tests/wc-tool-shortcut.cwl diff --git a/tests/cat3-tool-docker.cwl b/tests/cat3-tool-docker.cwl deleted file mode 100755 index b486e8ce..00000000 --- a/tests/cat3-tool-docker.cwl +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env cwl-runner -class: CommandLineTool -cwlVersion: v1.2 -doc: "Print the contents of a file to stdout using 'cat' running in a docker container." -requirements: - DockerRequirement: - dockerPull: docker.io/debian:stable-slim -inputs: - file1: - type: File - label: Input File - doc: "The file that will be copied using 'cat'" - inputBinding: {position: 1} -outputs: - output_file: - type: File - outputBinding: {glob: output.txt} -baseCommand: cat -stdout: output.txt diff --git a/tests/import_schema-def.cwl b/tests/import_schema-def.cwl deleted file mode 100644 index 039872ee..00000000 --- a/tests/import_schema-def.cwl +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env cwl-runner - -cwlVersion: v1.2 - -class: Workflow - -requirements: - SchemaDefRequirement: - types: - - $import: capture_kit.yml - -inputs: - bam: string - capture_kit: capture_kit.yml#capture_kit - -outputs: - output_bam: - type: File - outputSource: touch_bam/empty_file - -steps: - touch_bam: - run: touch.cwl - in: - name: bam - out: [ empty_file ] diff --git a/tests/operation.cwl b/tests/operation.cwl deleted file mode 100644 index a9e6c5e6..00000000 --- a/tests/operation.cwl +++ /dev/null @@ -1,25 +0,0 @@ -# -# Example of an operation that has not yet been implemented -# -class: Operation -cwlVersion: v1.2 - -# an Operation is a placeholder for a CommandLineTool or -# Workflow to be added later, therefore its documentation -# are very important. -id: reverse -doc: "Reverse each line" - -# The "inputs" array work the same as in CommandLineTool, but do -# not have any inputBinding -inputs: - input: - type: File - -# The "outputs" array defines the structure of the output object, just like -# in CommandLineTool, but without outputBinding -outputs: - output: - type: File - -# There are no "run" or "steps" command (FIXME: Should they be allowed?) diff --git a/tests/revsort-abstract.cwl b/tests/revsort-abstract.cwl deleted file mode 100644 index 9a54ddc6..00000000 --- a/tests/revsort-abstract.cwl +++ /dev/null @@ -1,52 +0,0 @@ -# -# This is a variant of revsort.cwl where the "sorted" -# step has not yet been implemented, but has a placeholder -# Operation. -# -class: Workflow -doc: "Reverse the lines in a document, then sort those lines." -cwlVersion: v1.2 - -inputs: - input: - type: File - doc: "The input file to be processed." - reverse_sort: - type: boolean - default: true - doc: "If true, reverse (decending) sort" - -outputs: - output: - type: File - outputSource: sort/sorted - doc: "The output with the lines reversed and sorted." - -steps: - rev: - in: - input: input - out: [output] - run: revtool.cwl - - sort: - in: - input: rev/output - reverse: reverse_sort - out: [sorted] - run: - class: Operation - id: "sort" - doc: "Sort the lines of the file" - inputs: - input: - type: File - doc: "The input file to be sorted." - reverse: - type: boolean - default: true - doc: "If true, reverse (decending) sort" - outputs: - sorted: - type: File - doc: "The sorted file" diff --git a/tests/wc-tool-shortcut.cwl b/tests/wc-tool-shortcut.cwl deleted file mode 100755 index f157cca3..00000000 --- a/tests/wc-tool-shortcut.cwl +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env cwl-runner - -class: CommandLineTool -cwlVersion: v1.2 - -requirements: - - class: DockerRequirement - dockerPull: docker.io/debian:stable-slim - -inputs: - file1: stdin - -outputs: - output: - type: File - outputBinding: { glob: output } - -baseCommand: [wc] - -stdout: output From 64968dc9064ff0a12df94fc39e1f5a367d024a88 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 7 May 2022 11:04:55 +1200 Subject: [PATCH 036/127] Fix Spellcheck action YAML syntax (mea culpa) --- .github/workflows/spellcheck.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 58080f8a..3924461f 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - - uses rojopolis/spellcheck-github-actions@0.23.0 + - uses: rojopolis/spellcheck-github-actions@0.23.0 name: Spellcheck with: - config_path: ../config/spellcheck.yml + config_path: .github/config/spellcheck.yml From edd90f02afef44b4c3c3c8051dbaeca90cce8c97 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 14 May 2022 13:50:42 +1200 Subject: [PATCH 037/127] Add note about cwl-upgrader in the Workflow changelog --- Workflow.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Workflow.yml b/Workflow.yml index b8f5acf4..1ec95240 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -45,7 +45,7 @@ $graph: should be trivially updatable by changing `cwlVersion`, however CWL documents that relied on previously undefined or underspecified behavior may have slightly different behavior in - v1.2. + v1.2. See note about `cwl-upgrader` in the changelog. ## Changelog @@ -74,7 +74,10 @@ $graph: See also the [CWL Command Line Tool Description, v1.2 changelog](CommandLineTool.html#Changelog). For other changes since CWL v1.0, see the - [CWL Workflow Description, v1.1 changelog](https://www.commonwl.org/v1.1/Workflow.html#Changelog) + [CWL Workflow Description, v1.1 changelog](https://www.commonwl.org/v1.1/Workflow.html#Changelog). + + [`cwl-upgrader`](https://github.com/common-workflow-language/cwl-upgrader) can + be used for upgrading CWL documents from version `draft-3`, `v1.0`, and `v1.1` to `v1.2`. ## Purpose From 99fcaf42f5e35b9e235c93c880af62e436e56e41 Mon Sep 17 00:00:00 2001 From: Tomoya Tanjo Date: Sat, 14 May 2022 07:08:21 +0000 Subject: [PATCH 038/127] Fix tags for conformance tests --- conformance_tests.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 11e417e4..6ebe1a56 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -1173,7 +1173,7 @@ label: directory_input_docker id: 85 doc: Test directory input in Docker - tags: [ required, command_line_tool, shell_command ] + tags: [ command_line_tool, shell_command ] - job: tests/dir3-job.yml output: @@ -2996,7 +2996,7 @@ tool: tests/glob-path-error.cwl label: glob_outside_outputs_fails doc: Test fail trying to glob outside output directory - tags: [ required, command_line_tool, docker ] + tags: [ command_line_tool, docker ] id: 232 - job: tests/empty.json @@ -3105,7 +3105,7 @@ "size": 59 } ] - tags: [ required, command_line_tool, initial_work_dir ] + tags: [ command_line_tool, initial_work_dir, inline_javascript ] id: 238 - doc: Test that array of input files can be staged to directory with basename @@ -3140,7 +3140,7 @@ "size": 59 } ] - tags: [ required, command_line_tool, initial_work_dir ] + tags: [ command_line_tool, initial_work_dir, inline_javascript ] id: 239 - doc: Test that if array of input files are staged to directory with basename and entryname, entryname overrides @@ -3175,7 +3175,7 @@ "size": 59 } ] - tags: [ required, command_line_tool, initial_work_dir ] + tags: [ command_line_tool, initial_work_dir, inline_javascript ] id: 240 - job: tests/empty.json @@ -3326,7 +3326,7 @@ label: optional_numerical_output_returns_0_not_null doc: | Test that optional number output is returned as 0, not null - tags: [ required, inline_javascript, command_line_tool ] + tags: [ inline_javascript, command_line_tool ] id: 253 - job: tests/empty.json @@ -3500,7 +3500,7 @@ doc: | Use of expression tool to change basename of file, then correctly staging the file using the new name. - tags: [ required, command_line_tool, inline_javascript, expression_tool ] + tags: [ command_line_tool, inline_javascript, expression_tool ] - label: runtime-outdir output: { From 3bdc596efb2d604cfa6506fb45dc9e724f31470f Mon Sep 17 00:00:00 2001 From: Tomoya Tanjo Date: Mon, 16 May 2022 11:33:33 +0000 Subject: [PATCH 039/127] Add extra description of `run` field --- Workflow.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Workflow.yml b/Workflow.yml index 1ec95240..8f0e23dc 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -619,7 +619,8 @@ $graph: _type: "@id" subscope: run doc: | - Specifies the process to run. + Specifies the process to run. If `run` is a string, it must be an absolute IRI + or a relative path from the primary document. - name: when type: - "null" From 99ec14b6bb4255dd09c671ca9370b16e0d5a0f51 Mon Sep 17 00:00:00 2001 From: Tomoya Tanjo Date: Fri, 20 May 2022 16:42:59 +0900 Subject: [PATCH 040/127] Fix `-l` to list tests without cwl-runner (#174) --- run_test.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/run_test.sh b/run_test.sh index 068ad011..74ab2cf6 100755 --- a/run_test.sh +++ b/run_test.sh @@ -128,7 +128,9 @@ if [ -n "${SELF}" ]; then exit 0 fi -if ! runner="$(command -v $RUNNER)" ; then +if [ -n "${TEST_L}" ]; then + runner=$RUNNER +elif ! runner="$(command -v $RUNNER)" ; then echo >&2 "$helpmessage" echo >&2 echo >&2 "runner '$RUNNER' not found" @@ -139,9 +141,12 @@ runs=0 failures=0 runtest() { - echo "--- Running CWL Conformance Tests $CWL_VER on $1 ---" - "$1" --version + if [ -z "${TEST_L}" ]; then + echo "--- Running CWL Conformance Tests $CWL_VER on $1 ---" + + "$1" --version + fi runs=$((runs+1)) (COMMAND="cwltest --tool $1 \ From 1d09972e5d92c9cc2c60781478e44ac10a0bef90 Mon Sep 17 00:00:00 2001 From: Tomoya Tanjo Date: Fri, 20 May 2022 12:02:10 +0000 Subject: [PATCH 041/127] Fix tags for workfows --- conformance_tests.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 6ebe1a56..87153bea 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -647,7 +647,7 @@ Test InitialWorkDirRequirement linking input files and capturing secondaryFiles on input and output. Also tests the use of a variety of parameter references and expressions in the secondaryFiles field. - tags: [ initial_work_dir, inline_javascript, command_line_tool ] + tags: [ initial_work_dir, inline_javascript, workflow ] - job: tests/rename-job.json output: @@ -3500,7 +3500,7 @@ doc: | Use of expression tool to change basename of file, then correctly staging the file using the new name. - tags: [ command_line_tool, inline_javascript, expression_tool ] + tags: [ workflow, inline_javascript, expression_tool ] - label: runtime-outdir output: { From 033ed18427380cf532fdd3c0bc5d4b24b2f7e945 Mon Sep 17 00:00:00 2001 From: Tomoya Tanjo Date: Sat, 21 May 2022 10:36:36 +0000 Subject: [PATCH 042/127] Add missing `label` field --- conformance_tests.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 87153bea..57857c15 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -2910,6 +2910,7 @@ } tags: [ resource, command_line_tool, initial_work_dir ] id: 225 + label: initial_work_dir_for_null_and_arrays - job: tests/stage-array-dirs-job.yml tool: tests/stage-array-dirs.cwl @@ -2932,6 +2933,7 @@ } tags: [ resource, command_line_tool, initial_work_dir ] id: 226 + label: initial_work_dir_for_array_dirs - job: tests/env-job3.yaml output: @@ -3011,6 +3013,7 @@ should_fail: true tags: [ command_line_tool ] id: 233 + label: illegal_symlink - job: tests/empty.json tool: tests/symlink-legal.cwl @@ -3023,6 +3026,7 @@ "checksum": "sha1$cd28ec34f3f9425aca544b6332453708e8aaa82a" id: 234 tags: [ command_line_tool ] + label: legal_symlink - job: tests/empty.json tool: tests/inp_update_wf.cwl @@ -3032,6 +3036,7 @@ a: 4 b: 4 id: 235 + label: modify_file_content - job: tests/empty.json tool: tests/inpdir_update_wf.cwl @@ -3054,6 +3059,7 @@ ] } id: 236 + label: modify_directory_content - doc: Test that OutputBinding.glob accepts Directories job: tests/empty.json @@ -3391,6 +3397,7 @@ doc: Test paramer reference that refers to length of non-array input should_fail: true tags: [ required, command_line_tool ] + label: length_for_non_array - job: tests/length_non_array_input.yml tool: tests/params_input_length_non_array.cwl @@ -3400,6 +3407,7 @@ output1: 1 output2: 2 output3: 3 + label: user_defined_length_in_parameter_reference - tool: tests/cat4-from-dir.cwl job: tests/cat-from-dir-with-literal-file-in-subdir.yaml From 9bd46573f11be12659f8e13d1fde3d4e29012e54 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Fri, 27 May 2022 19:59:37 +1200 Subject: [PATCH 043/127] Update links used in concepts --- concepts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/concepts.md b/concepts.md index c6141fd8..fb8b2632 100644 --- a/concepts.md +++ b/concepts.md @@ -297,8 +297,8 @@ which the `id` field is explicitly listed in this specification. ## Document preprocessing An implementation must resolve [$import](SchemaSalad.html#Import) and -[$include](SchemaSalad.html#Import) directives as described in the -[Schema Salad specification](SchemaSalad.html). +[$include](SchemaSalad.html#Include) directives as described in the +[Schema Salad specification](SchemaSalad.html#Document_preprocessing). Another transformation defined in Schema salad is simplification of data type definitions. Type `` ending with `?` should be transformed to `[, "null"]`. From a59b4d3e4a3e5d8b1bfddde606c8be3c0b222cb8 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Tue, 7 Jun 2022 11:23:05 +1200 Subject: [PATCH 044/127] Remove stray backtick --- concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/concepts.md b/concepts.md index fb8b2632..97b89448 100644 --- a/concepts.md +++ b/concepts.md @@ -191,7 +191,7 @@ hints: version: [ "1.0" ] python: {} ``` -` + Sometimes we have a third and even more compact option denoted like this: > type: array<ComplexType> | > map<`key_field`, `field2` | ComplexType> From 29385c0aa18461aa10c00af712c65a4485f59b1d Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Mon, 6 Jun 2022 15:59:29 +1200 Subject: [PATCH 045/127] Add link to Direntry entryname and fix typo --- CommandLineTool.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index a60c7e57..c03634ec 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -1017,8 +1017,8 @@ $graph: Normally files are staged within the designated output directory. However, when running inside containers, files may be staged at - arbitrary locations, see discussion for `Dirent.entryname`. - Together with `DockerRequirement.dockerOutputDirectory` this it + arbitrary locations, see discussion for [`Dirent.entryname`](#Dirent). + Together with `DockerRequirement.dockerOutputDirectory` it is possible to control the locations of both input and output files when running in containers. fields: From 50dfc6bee632bf0918259bff02e5194e4abb0e43 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Fri, 10 Jun 2022 20:26:17 +1200 Subject: [PATCH 046/127] Add new test for chained commands, update the specification wording --- CommandLineTool.yml | 12 ++++++++++-- conformance_tests.yaml | 13 +++++++++++++ invocation.md | 6 +++++- tests/stdout_chained_commands.cwl | 19 +++++++++++++++++++ 4 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 tests/stdout_chained_commands.cwl diff --git a/CommandLineTool.yml b/CommandLineTool.yml index c03634ec..c57db61d 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -567,6 +567,10 @@ $graph: stdout: random_stdout_filenameABCDEFG ``` + If the `CommandLineTool` contains logically chained commands + (e.g. `echo a && echo b`) `stdout` must include the output of + every command. + - name: stderr type: enum @@ -700,6 +704,10 @@ $graph: Capture the command's standard output stream to a file written to the designated output directory. + If the `CommandLineTool` contains logically chained commands + (e.g. `echo a && echo b`) `stdout` must include the output of + every command. + If `stdout` is a string, it specifies the file name to use. If `stdout` is an expression, the expression is evaluated and must @@ -1105,8 +1113,8 @@ $graph: extends: ProcessRequirement doc: | Modify the behavior of CommandLineTool to generate a single string - containing a shell command line. Each item in the argument list must be - joined into a string separated by single spaces and quoted to prevent + containing a shell command line. Each item in the `arguments` list must + be joined into a string separated by single spaces and quoted to prevent intepretation by the shell, unless `CommandLineBinding` for that argument contains `shellQuote: false`. If `shellQuote: false` is specified, the argument is joined into the command string without quoting, which allows diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 57857c15..ed3b4854 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3540,3 +3540,16 @@ doc: | Use of $(runtime.outdir) for outputBinding glob. tags: [ required, command_line_tool ] + +- label: stdout_chained_commands + output: { + "out": "a\nb\n" + } + tool: tests/stdout_chained_commands.cwl + doc: | + Test that chaining two echo calls causes the workflow tool to emit the output to stdout. + This is to confirm that the workflow tool will **not** create an expression such as + `echo a && echo b > out.txt`, but instead will produce the correct `echo a && echo b`, + and capture the output correctly. + tags: [ shell_command, command_line_tool ] + diff --git a/invocation.md b/invocation.md index f9b7040a..d5302914 100644 --- a/invocation.md +++ b/invocation.md @@ -132,7 +132,11 @@ Once the command line is built and the runtime environment is created, the actual tool is executed. The standard error stream and standard output stream may be captured by -platform logging facilities for storage and reporting. +platform logging facilities for storage and reporting. If there are multiple +commands logically chained (e.g. `echo a && echo b`) implementations must +capture the output of all the commands, and not only the output of the last +command (i.e. the following is incorrect `echo a && echo b > captured`, +as the output of `echo a` is not included in `captured`). Tools may be multithreaded or spawn child processes; however, when the parent process exits, the tool is considered finished regardless of whether diff --git a/tests/stdout_chained_commands.cwl b/tests/stdout_chained_commands.cwl new file mode 100644 index 00000000..b0cf25db --- /dev/null +++ b/tests/stdout_chained_commands.cwl @@ -0,0 +1,19 @@ +cwlVersion: v1.2 +class: CommandLineTool +requirements: + - class: ShellCommandRequirement +inputs: [] +outputs: + out: + type: string + outputBinding: + glob: out.txt + loadContents: true + outputEval: $(self[0].contents) +stdout: out.txt +arguments: + - echo + - a + - {valueFrom: '&&', shellQuote: false} + - echo + - b From 34b2117d1b4a197a8a5574c917acfe1158de7067 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Mon, 6 Jun 2022 12:58:03 +1200 Subject: [PATCH 047/127] Update the doc and use "true" as base command for the metadata test --- tests/metadata.cwl | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/tests/metadata.cwl b/tests/metadata.cwl index 72e6b39d..6ab21635 100644 --- a/tests/metadata.cwl +++ b/tests/metadata.cwl @@ -8,7 +8,7 @@ $schemas: cwlVersion: v1.2 class: CommandLineTool -doc: "Print the contents of a file to stdout using 'cat' running in a docker container." +doc: "Test that a command line document with metadata is executed successfully." dct:creator: id: "http://orcid.org/0000-0003-3566-7705" @@ -19,14 +19,6 @@ dct:creator: hints: DockerRequirement: dockerPull: docker.io/debian:stable-slim -inputs: - file1: - type: File - inputBinding: {position: 1} - numbering: - type: boolean? - inputBinding: - position: 0 - prefix: -n +inputs: [] outputs: [] -baseCommand: cat +baseCommand: "true" From f05f8bc63e3c2ef0e44094850e26fe8c16e14600 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Tue, 3 May 2022 21:08:27 +1200 Subject: [PATCH 048/127] Add glossary and clarification on opaque strings and identifiers --- Process.yml | 9 +++++---- concepts.md | 17 ++++++++++++----- invocation.md | 4 ++-- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Process.yml b/Process.yml index d7c6a933..5ec1a575 100644 --- a/Process.yml +++ b/Process.yml @@ -987,10 +987,11 @@ $graph: secondary file from that expression. To work on non-filename-preserving storage systems, portable - tool descriptions should treat `location` as an opaque - identifier and avoid constructing new values from `location`, - but should construct relative references using `basename` or - `nameroot` instead, or propagate `location` from defined inputs. + tool descriptions should treat `location` as an + [opaque identifier](#opaque-strings) and avoid constructing new + values from `location`, but should construct relative references + using `basename` or `nameroot` instead, or propagate `location` + from defined inputs. If a value in `secondaryFiles` is a string that is not an expression, it specifies that the following pattern should be applied to the path diff --git a/concepts.md b/concepts.md index 97b89448..ee57bf1d 100644 --- a/concepts.md +++ b/concepts.md @@ -56,6 +56,13 @@ compatibility. Portable CWL documents should not rely on deprecated behavior. Behavior marked as deprecated may be removed entirely from future revisions of the CWL specification. +## Glossary + +**Opaque strings**: Opaque strings +(or opaque identifiers, opaque values) are nonsensical values that are +swapped out with a real value later in the evaluation process. Workflow +and tool expressions **should not** rely on it nor try to parse it. + # Data model ## Data concepts @@ -538,11 +545,11 @@ be provided: must be 'null'. * `runtime`: An object containing configuration details. Specific to the process type. An implementation may provide - opaque strings for any or all fields of `runtime`. These must be - filled in by the platform after processing the Tool but before actual - execution. Parameter references and expressions may only use the - literal string value of the field and must not perform computation on - the contents, except where noted otherwise. + [opaque strings](#opaque-strings) for any or all fields of `runtime`. + These must be filled in by the platform after processing the Tool but + before actual execution. Parameter references and expressions may only + use the literal string value of the field and must not perform computation + on the contents, except where noted otherwise. If the value of a field has no leading or trailing non-whitespace characters around a parameter reference, the effective value of the field diff --git a/invocation.md b/invocation.md index d5302914..540ae3fb 100644 --- a/invocation.md +++ b/invocation.md @@ -104,8 +104,8 @@ the ability to accept inbound connections. The `runtime` section available in [parameter references](#Parameter_references) and [expressions](#Expressions) contains the following fields. As noted earlier, an implementation may perform deferred resolution of runtime fields by providing -opaque strings for any or all of the following fields; parameter references -and expressions may only use the literal string value of the field and must +[opaque strings](#opaque-strings) for any or all of the following fields; parameter +references and expressions may only use the literal string value of the field and must not perform computation on the contents. * `runtime.outdir`: an absolute path to the designated output directory From 8b7a2d8b360e66b67fc9ef1f49524bc4852edbdd Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Wed, 22 Jun 2022 01:10:52 +1200 Subject: [PATCH 049/127] Mention that we can refer to workflow level inputs in output parameter outputSource (#178) --- Workflow.yml | 7 +++++-- conformance_tests.yaml | 11 ++++++++++- tests/output_reference_workflow_input.cwl | 14 ++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 tests/output_reference_workflow_input.cwl diff --git a/Workflow.yml b/Workflow.yml index 8f0e23dc..884177df 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -225,8 +225,11 @@ $graph: fields: - name: outputSource doc: | - Specifies one or more workflow parameters that supply the value of to - the output parameter. + Specifies one or more names of an output from a workflow step (in the form + `step_name/output_name` with a `/` separator`), or a workflow input name, + that supply their value(s) to the output parameter. + the output parameter. It is valid to reference workflow level inputs + here. jsonldPredicate: "_id": "cwl:outputSource" "_type": "@id" diff --git a/conformance_tests.yaml b/conformance_tests.yaml index ed3b4854..f8e0f975 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3541,6 +3541,15 @@ Use of $(runtime.outdir) for outputBinding glob. tags: [ required, command_line_tool ] +- label: output_reference_workflow_input + output: { + "last": "me" + } + tool: tests/output_reference_workflow_input.cwl + doc: | + Direct use of Workflow level input fields in the outputs. + tags: [ required, workflow ] + - label: stdout_chained_commands output: { "out": "a\nb\n" @@ -3552,4 +3561,4 @@ `echo a && echo b > out.txt`, but instead will produce the correct `echo a && echo b`, and capture the output correctly. tags: [ shell_command, command_line_tool ] - + \ No newline at end of file diff --git a/tests/output_reference_workflow_input.cwl b/tests/output_reference_workflow_input.cwl new file mode 100644 index 00000000..808132aa --- /dev/null +++ b/tests/output_reference_workflow_input.cwl @@ -0,0 +1,14 @@ +cwlVersion: v1.2 +class: Workflow + +inputs: + first: + type: string + default: me + +steps: [] + +outputs: + last: + type: string + outputSource: first From f1f10027fce2b82e34891f4b12c427ffd74bde26 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Sat, 14 May 2022 11:00:06 +1200 Subject: [PATCH 050/127] Add test for SchemaDefRequirement with a workflow and the types containing an $import statement. Used example written by @jeremiahsavage (thanks!) --- conformance_tests.yaml | 13 ++++++++- tests/schemadef_types_with_import-job.json | 22 +++++++++++++++ tests/schemadef_types_with_import-test.bam | 0 tests/schemadef_types_with_import-tool.cwl | 26 ++++++++++++++++++ tests/schemadef_types_with_import-wf.cwl | 25 +++++++++++++++++ .../schemadef_types_with_import_readgroup.yml | 27 +++++++++++++++++++ 6 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 tests/schemadef_types_with_import-job.json create mode 100644 tests/schemadef_types_with_import-test.bam create mode 100644 tests/schemadef_types_with_import-tool.cwl create mode 100644 tests/schemadef_types_with_import-wf.cwl create mode 100644 tests/schemadef_types_with_import_readgroup.yml diff --git a/conformance_tests.yaml b/conformance_tests.yaml index f8e0f975..8e3c8d4a 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3561,4 +3561,15 @@ `echo a && echo b > out.txt`, but instead will produce the correct `echo a && echo b`, and capture the output correctly. tags: [ shell_command, command_line_tool ] - \ No newline at end of file + +- tool: tests/schemadef_types_with_import-wf.cwl + job: tests/schemadef_types_with_import-job.json + output: { + "out": "1970-01-01T00:00:00Z\n" + } + label: schemadef_types_with_import + doc: >- + Test SchemaDefRequirement with a workflow, with the `$import` under types. + It is similar to schemadef-wf, but the `$import` is different. + tags: [ workflow, schema_def ] + diff --git a/tests/schemadef_types_with_import-job.json b/tests/schemadef_types_with_import-job.json new file mode 100644 index 00000000..00af1f47 --- /dev/null +++ b/tests/schemadef_types_with_import-job.json @@ -0,0 +1,22 @@ +{ + "readgroups_bam": + { + "bam": { + "class": "File", + "format": "edam:format_2572", + "location": "schemadef_types_with_import-test.bam" + }, + "readgroup_meta_list": + [ + { + "CN": "UNKNOWN", + "DT": "1970-01-01T00:00:00Z", + "ID": "SRR622461", + "LB": "Illumina NA12878", + "PI": "250", + "PL": "ILLUMINA", + "SM": "NA12878" + } + ] + } +} diff --git a/tests/schemadef_types_with_import-test.bam b/tests/schemadef_types_with_import-test.bam new file mode 100644 index 00000000..e69de29b diff --git a/tests/schemadef_types_with_import-tool.cwl b/tests/schemadef_types_with_import-tool.cwl new file mode 100644 index 00000000..1197249c --- /dev/null +++ b/tests/schemadef_types_with_import-tool.cwl @@ -0,0 +1,26 @@ +#!/usr/bin/env cwl-runner +class: CommandLineTool +cwlVersion: v1.2 + +requirements: + - class: InlineJavascriptRequirement + - class: SchemaDefRequirement + types: + - $import: schemadef_types_with_import_readgroup.yml + +inputs: + - id: message + type: "schemadef_types_with_import_readgroup.yml#readgroups_bam_file" + inputBinding: + valueFrom: $(self.readgroup_meta_list[0]['DT']) + +outputs: + - id: out + type: string + outputBinding: + glob: output.txt + loadContents: true + outputEval: $(self[0].contents) + +stdout: output.txt +baseCommand: echo diff --git a/tests/schemadef_types_with_import-wf.cwl b/tests/schemadef_types_with_import-wf.cwl new file mode 100644 index 00000000..6af93dde --- /dev/null +++ b/tests/schemadef_types_with_import-wf.cwl @@ -0,0 +1,25 @@ +#!/usr/bin/env cwl-runner +# See https://github.com/jeremiahsavage/cwl_schemadef/, thanks to Jeremiah H. Savage. +cwlVersion: v1.2 +class: Workflow + +requirements: + - class: SchemaDefRequirement + types: + - $import: schemadef_types_with_import_readgroup.yml + +inputs: + readgroups_bam: + type: "schemadef_types_with_import_readgroup.yml#readgroups_bam_file" + +steps: + step1: + run: schemadef_types_with_import-tool.cwl + in: + message: readgroups_bam + out: [out] + +outputs: + out: + type: string + outputSource: step1/out diff --git a/tests/schemadef_types_with_import_readgroup.yml b/tests/schemadef_types_with_import_readgroup.yml new file mode 100644 index 00000000..c7ffe8ea --- /dev/null +++ b/tests/schemadef_types_with_import_readgroup.yml @@ -0,0 +1,27 @@ +- name: readgroup_meta + type: record + fields: + - name: CN + type: string + - name: DT + type: string + - name: ID + type: string + - name: LB + type: string + - name: PI + type: string + - name: PL + type: string + - name: SM + type: string + +- name: readgroups_bam_file + type: record + fields: + - name: bam + type: File + - name: readgroup_meta_list + type: + type: array + items: readgroup_meta From 86972f08f5d4e072fb0c6117e14a20648b6fe901 Mon Sep 17 00:00:00 2001 From: Tomoya Tanjo Date: Fri, 24 Jun 2022 00:41:04 +0900 Subject: [PATCH 051/127] Merge pull request #176 from tom-tan/add-record-order-test Add conformance test for sorting record fields (inputBinding for all levels) --- conformance_tests.yaml | 11 ++++++-- tests/record-order-job.json | 10 +++++++ tests/record-order.cwl | 55 +++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 tests/record-order-job.json create mode 100644 tests/record-order.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 8e3c8d4a..b34a0813 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3541,6 +3541,14 @@ Use of $(runtime.outdir) for outputBinding glob. tags: [ required, command_line_tool ] +- tool: tests/record-order.cwl + job: tests/record-order-job.json + output: + args: [-a, -b, '1', -c, '3', -d, -e, '2', -f, '4'] + label: record-order-with-input-bindings + doc: Test sorting arguments at each level (inputBinding for all levels) + tags: [ command_line, required ] + - label: output_reference_workflow_input output: { "last": "me" @@ -3571,5 +3579,4 @@ doc: >- Test SchemaDefRequirement with a workflow, with the `$import` under types. It is similar to schemadef-wf, but the `$import` is different. - tags: [ workflow, schema_def ] - + tags: [ workflow, schema_def ] \ No newline at end of file diff --git a/tests/record-order-job.json b/tests/record-order-job.json new file mode 100644 index 00000000..123c50c7 --- /dev/null +++ b/tests/record-order-job.json @@ -0,0 +1,10 @@ +{ + "a": { + "b": 1, + "c": 3 + }, + "d": { + "e": 2, + "f": 4 + } +} diff --git a/tests/record-order.cwl b/tests/record-order.cwl new file mode 100644 index 00000000..19762da4 --- /dev/null +++ b/tests/record-order.cwl @@ -0,0 +1,55 @@ +class: CommandLineTool +cwlVersion: v1.2 + +baseCommand: python +inputs: + - id: args.py + type: File + default: + class: File + location: args.py + inputBinding: + position: -1 + - id: a + type: + type: record + fields: + - name: b + type: int + inputBinding: + position: 1 + prefix: -b + - name: c + type: int + inputBinding: + position: 3 + prefix: -c + inputBinding: + position: 5 + prefix: -a + - id: d + type: + type: record + fields: + - name: e + type: int + inputBinding: + position: 2 + prefix: -e + - name: f + type: int + inputBinding: + position: 4 + prefix: -f + inputBinding: + position: 6 + prefix: -d +outputs: + - id: args + type: + type: array + items: string + +hints: + - class: DockerRequirement + dockerPull: docker.io/python:3-slim From 6edb7a9967ea098e603faa3fb2ae456587818d10 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Fri, 24 Jun 2022 03:41:43 +1200 Subject: [PATCH 052/127] Add a conformance test for InlineJavascriptRequirement with an input record (#170) --- conformance_tests.yaml | 13 ++++++++++++- tests/js-input-record.cwl | 33 +++++++++++++++++++++++++++++++++ tests/js-input-record.json | 7 +++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 tests/js-input-record.cwl create mode 100644 tests/js-input-record.json diff --git a/conformance_tests.yaml b/conformance_tests.yaml index b34a0813..c00da542 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3570,6 +3570,17 @@ and capture the output correctly. tags: [ shell_command, command_line_tool ] +- label: js-input-record + # The output does not have the last \n due to the -n passed to echo + output: { + "out": "JS\nwith\nrecord" + } + tool: tests/js-input-record.cwl + job: tests/js-input-record.json + doc: | + A test case for JS with an input record. + tags: [ inline_javascript, command_line_tool ] + - tool: tests/schemadef_types_with_import-wf.cwl job: tests/schemadef_types_with_import-job.json output: { @@ -3579,4 +3590,4 @@ doc: >- Test SchemaDefRequirement with a workflow, with the `$import` under types. It is similar to schemadef-wf, but the `$import` is different. - tags: [ workflow, schema_def ] \ No newline at end of file + tags: [ workflow, schema_def ] diff --git a/tests/js-input-record.cwl b/tests/js-input-record.cwl new file mode 100644 index 00000000..80e13174 --- /dev/null +++ b/tests/js-input-record.cwl @@ -0,0 +1,33 @@ +cwlVersion: v1.0 + +class: CommandLineTool + +requirements: + - class: InlineJavascriptRequirement + +baseCommand: ['echo'] + +inputs: + message: + type: + type: record + name: message_object + fields: + text: + type: string + inputBinding: + position: 1 + newlines: + type: boolean? + inputBinding: + position: 0 + prefix: -n + +outputs: + out: + type: string + outputBinding: + glob: output.txt + loadContents: true + outputEval: $(self[0].contents) +stdout: output.txt diff --git a/tests/js-input-record.json b/tests/js-input-record.json new file mode 100644 index 00000000..c006ead6 --- /dev/null +++ b/tests/js-input-record.json @@ -0,0 +1,7 @@ +{ + "message": { + "text": "JS\nwith\nrecord", + "newlines": true + } +} + From d3c77efa03083e13933ad96aa9047b4504ac00db Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Fri, 24 Jun 2022 03:42:52 +1200 Subject: [PATCH 053/127] Add a conformance test for MultipleInputFeatureRequirement on Workflow outputs (#169) --- conformance_tests.yaml | 12 ++++++++ tests/multiple_input_feature_requirement.cwl | 29 ++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 tests/multiple_input_feature_requirement.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index c00da542..1f42d25c 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3570,6 +3570,18 @@ and capture the output correctly. tags: [ shell_command, command_line_tool ] +- label: multiple-input-feature-requirement + output: { + "hello_world_in_two_lines": [ + "hello\n", + "world\n" + ] + } + tool: tests/multiple_input_feature_requirement.cwl + doc: | + MultipleInputFeatureRequirement on workflow outputs. + tags: [ workflow, multiple_input ] + - label: js-input-record # The output does not have the last \n due to the -n passed to echo output: { diff --git a/tests/multiple_input_feature_requirement.cwl b/tests/multiple_input_feature_requirement.cwl new file mode 100644 index 00000000..57b8c681 --- /dev/null +++ b/tests/multiple_input_feature_requirement.cwl @@ -0,0 +1,29 @@ +cwlVersion: v1.2 +class: Workflow + +requirements: + - class: MultipleInputFeatureRequirement + +inputs: [] + +steps: + step1: + run: echo-tool.cwl + in: + in: + default: hello + out: [out] + step2: + run: echo-tool.cwl + in: + in: + default: world + out: [out] + +outputs: + hello_world_in_two_lines: + type: + type: array + items: string + # Only allowed with MultipleInputFeatureRequirement + outputSource: [step1/out, step2/out] From 60523c2d6600ef86e9225f92a161a229bdeb20ae Mon Sep 17 00:00:00 2001 From: Tomoya Tanjo Date: Fri, 24 Jun 2022 01:01:47 +0900 Subject: [PATCH 054/127] Move `label` to `id` (#182) --- conformance_tests.yaml | 794 +++++++-------------- tests/conditionals/test-index.yaml | 132 ++-- tests/iwd/test-index.yaml | 54 +- tests/loadContents/test-index.yaml | 6 +- tests/mixed-versions/test-index.yaml | 16 +- tests/secondaryfiles/test-index.yaml | 4 +- tests/string-interpolation/test-index.yaml | 12 +- 7 files changed, 347 insertions(+), 671 deletions(-) diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 1f42d25c..a04751bb 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -10,8 +10,7 @@ chr20.fa, example_human_Illumina.pe_1.fastq, example_human_Illumina.pe_2.fastq] - label: cl_basic_generation - id: 1 + id: cl_basic_generation doc: General test of command line generation tags: [ required, command_line_tool ] @@ -22,8 +21,7 @@ "-YYY", example_human_Illumina.pe_2.fastq] job: tests/bwa-mem-job.json tool: tests/binding-test.cwl - label: nested_prefixes_arrays - id: 2 + id: nested_prefixes_arrays doc: Test nested prefixes with arrays tags: [ required, command_line_tool ] @@ -33,8 +31,7 @@ '16', map2, --max-seed-hits, '-1', --max-seq-length, '20', --min-seq-length, '10'] job: tests/tmap-job.json tool: tests/tmap-tool.cwl - label: nested_cl_bindings - id: 3 + id: nested_cl_bindings doc: Test nested command line bindings tags: [ schema_def, command_line_tool ] @@ -42,8 +39,7 @@ args: [cat, hello.txt] job: tests/cat-job.json tool: tests/cat1-testcli.cwl - label: cl_optional_inputs_missing - id: 4 + id: cl_optional_inputs_missing doc: Test command line with optional input (missing) tags: [ required, command_line_tool ] @@ -51,8 +47,7 @@ args: [cat, -n, hello.txt] job: tests/cat-n-job.json tool: tests/cat1-testcli.cwl - label: cl_optional_bindings_provided - id: 5 + id: cl_optional_bindings_provided doc: Test command line with optional input (provided) tags: [ required, command_line_tool ] @@ -65,8 +60,7 @@ } job: tests/cat-job.json tool: tests/template-tool.cwl - label: initworkdir_expreng_requirements - id: 6 + id: initworkdir_expreng_requirements doc: Test InitialWorkDirRequirement ExpressionEngineRequirement.engineConfig feature tags: [ initial_work_dir, inline_javascript, command_line_tool ] @@ -78,8 +72,7 @@ location: output.txt size: 13 tool: tests/cat3-tool.cwl - label: stdout_redirect_docker - id: 7 + id: stdout_redirect_docker doc: Test command execution in Docker with stdout redirection tags: [ docker, command_line_tool ] @@ -91,8 +84,7 @@ checksum: sha1$47a013e660d408619d894b20806b1d5086aab03b location: Any size: 13 - label: stdout_redirect_shortcut_docker - id: 8 + id: stdout_redirect_shortcut_docker doc: Test command execution in Docker with shortcut stdout redirection tags: [ docker, command_line_tool ] @@ -104,15 +96,13 @@ location: cat-out size: 13 tool: tests/cat3-tool-mediumcut.cwl - label: stdout_redirect_mediumcut_docker - id: 9 + id: stdout_redirect_mediumcut_docker doc: Test command execution in Docker with mediumcut stdout redirection tags: [ docker, command_line_tool ] - job: tests/empty.json tool: tests/stderr.cwl - label: stderr_redirect - id: 10 + id: stderr_redirect doc: Test command line with stderr redirection output: output_file: @@ -124,8 +114,7 @@ - job: tests/empty.json tool: tests/stderr-shortcut.cwl - label: stderr_redirect_shortcut - id: 11 + id: stderr_redirect_shortcut doc: Test command line with stderr redirection, brief syntax output: output_file: @@ -143,8 +132,7 @@ location: std.err job: tests/empty.json tool: tests/stderr-mediumcut.cwl - label: stderr_redirect_mediumcut - id: 12 + id: stderr_redirect_mediumcut doc: Test command line with stderr redirection, named brief syntax tags: [ shell_command, command_line_tool ] @@ -156,8 +144,7 @@ location: output.txt size: 13 tool: tests/cat4-tool.cwl - label: stdinout_redirect_docker - id: 13 + id: stdinout_redirect_docker doc: Test command execution in Docker with stdin and stdout redirection tags: [ required, command_line_tool ] @@ -165,8 +152,7 @@ tool: tests/null-expression1-tool.cwl output: output: 1 - label: expression_any - id: 14 + id: expression_any doc: Test default usage of Any in expressions. tags: [ inline_javascript, expression_tool ] @@ -174,8 +160,7 @@ tool: tests/null-expression1-tool.cwl output: output: 1 - label: expression_any_null - id: 15 + id: expression_any_null doc: Test explicitly passing null to Any type inputs with default values. tags: [ inline_javascript, expression_tool ] @@ -183,24 +168,21 @@ tool: tests/null-expression1-tool.cwl output: output: 2 - label: expression_any_string - id: 16 + id: expression_any_string doc: Testing the string 'null' does not trip up an Any with a default value. tags: [ inline_javascript, expression_tool ] - job: tests/empty.json tool: tests/null-expression2-tool.cwl should_fail: true - label: expression_any_nodefaultany - id: 17 + id: expression_any_nodefaultany doc: Test Any without defaults cannot be unspecified. tags: [ inline_javascript, expression_tool ] - job: tests/null-expression1-job.json tool: tests/null-expression2-tool.cwl should_fail: true - label: expression_any_null_nodefaultany - id: 18 + id: expression_any_null_nodefaultany doc: Test explicitly passing null to Any type without a default value. tags: [ inline_javascript, expression_tool ] @@ -208,8 +190,7 @@ tool: tests/null-expression2-tool.cwl output: output: 2 - label: expression_any_nullstring_nodefaultany - id: 19 + id: expression_any_nullstring_nodefaultany doc: Testing the string 'null' does not trip up an Any without a default value. tags: [ inline_javascript, expression_tool ] @@ -219,8 +200,7 @@ output1: ["hello", "world"] output2: ["foo", "bar"] output3: hello - label: any_outputSource_compatibility - id: 20 + id: any_outputSource_compatibility doc: Testing Any type compatibility in outputSource tags: [ required, workflow ] @@ -232,40 +212,35 @@ location: output size: 13 tool: tests/cat-tool.cwl - label: stdinout_redirect - id: 21 + id: stdinout_redirect doc: Test command execution in with stdin and stdout redirection tags: [ required, command_line_tool ] - job: tests/parseInt-job.json output: {output: 42} tool: tests/parseInt-tool.cwl - label: expression_parseint - id: 22 + id: expression_parseint doc: Test ExpressionTool with Javascript engine tags: [ inline_javascript, expression_tool ] - job: tests/wc-job.json output: {output: 16} tool: tests/wc2-tool.cwl - label: expression_outputEval - id: 23 + id: expression_outputEval doc: Test outputEval to transform output tags: [ inline_javascript, command_line_tool ] - job: tests/wc-job.json output: {count_output: 16} tool: tests/count-lines1-wf.cwl - label: wf_wc_parseInt - id: 24 + id: wf_wc_parseInt doc: Test two step workflow with imported tools tags: [ inline_javascript, workflow ] - job: tests/wc-job.json output: {count_output: 16} tool: tests/count-lines2-wf.cwl - label: wf_wc_expressiontool - id: 25 + id: wf_wc_expressiontool doc: Test two step workflow with inline tools tags: [ inline_javascript, workflow ] @@ -273,8 +248,7 @@ output: count_output: [16, 1] tool: tests/count-lines3-wf.cwl - label: wf_wc_scatter - id: 26 + id: wf_wc_scatter doc: Test single step workflow with Scatter step tags: [ scatter, inline_javascript, workflow ] @@ -282,8 +256,7 @@ output: count_output: [16, 1] tool: tests/count-lines4-wf.cwl - label: wf_wc_scatter_multiple_merge - id: 27 + id: wf_wc_scatter_multiple_merge doc: >- Test single step workflow with Scatter step and two data links connected to same input, default merge behavior @@ -293,8 +266,7 @@ output: count_output: [32, 2] tool: tests/count-lines6-wf.cwl - label: wf_wc_scatter_multiple_nested - id: 28 + id: wf_wc_scatter_multiple_nested doc: >- Test single step workflow with Scatter step and two data links connected to same input, nested merge behavior @@ -304,8 +276,7 @@ output: count_output: 34 tool: tests/count-lines7-wf.cwl - label: wf_wc_scatter_multiple_flattened - id: 29 + id: wf_wc_scatter_multiple_flattened doc: >- Test single step workflow with Scatter step and two data links connected to same input, flattened merge behavior @@ -315,8 +286,7 @@ output: count_output: 16 tool: tests/count-lines13-wf.cwl - label: wf_wc_nomultiple - id: 30 + id: wf_wc_nomultiple doc: >- Test when step source is a single-item list and there is no linkMerge, then it not wrapped in a list, and that @@ -327,8 +297,7 @@ output: count_output: 16 tool: tests/count-lines19-wf.cwl - label: wf_wc_nomultiple_merge_nested - id: count-lines19-wf + id: wf_wc_nomultiple_merge_nested doc: >- Test when step source is a single-item list and linkMerge is listed, then it is wrapped in a list. @@ -337,24 +306,21 @@ - job: tests/empty.json output: {count_output: 1} tool: tests/count-lines5-wf.cwl - label: wf_input_default_missing - id: 31 + id: wf_input_default_missing doc: Test workflow with default value for input parameter (missing) tags: [ inline_javascript, workflow ] - job: tests/wc-job.json output: {count_output: 16} tool: tests/count-lines5-wf.cwl - label: wf_input_default_provided - id: 32 + id: wf_input_default_provided doc: Test workflow with default value for input parameter (provided) tags: [ inline_javascript, workflow ] - job: tests/empty.json output: {default_output: workflow_default} tool: tests/echo-wf-default.cwl - label: wf_default_tool_default - id: 33 + id: wf_default_tool_default doc: Test that workflow defaults override tool defaults tags: [ required, workflow ] @@ -366,8 +332,7 @@ location: out size: 15 tool: tests/env-tool1.cwl - label: envvar_req - id: 34 + id: envvar_req doc: Test EnvVarRequirement tags: [ env_var, command_line_tool ] @@ -375,8 +340,7 @@ output: out: ["foo one", "foo two", "foo three", "foo four"] tool: tests/scatter-wf1.cwl - label: wf_scatter_single_param - id: 35 + id: wf_scatter_single_param doc: Test workflow scatter with single scatter parameter tags: [ scatter, workflow ] @@ -384,8 +348,7 @@ output: out: [["foo one three", "foo one four"], ["foo two three", "foo two four"]] tool: tests/scatter-wf2.cwl - label: wf_scatter_two_nested_crossproduct - id: 36 + id: wf_scatter_two_nested_crossproduct doc: Test workflow scatter with two scatter parameters and nested_crossproduct join method tags: [ scatter, workflow ] @@ -393,8 +356,7 @@ output: out: ["foo one three", "foo one four", "foo two three", "foo two four"] tool: "tests/scatter-wf3.cwl#main" - label: wf_scatter_two_flat_crossproduct - id: 37 + id: wf_scatter_two_flat_crossproduct doc: Test workflow scatter with two scatter parameters and flat_crossproduct join method tags: [ scatter, workflow ] @@ -402,8 +364,7 @@ output: out: ["foo one three", "foo two four"] tool: "tests/scatter-wf4.cwl#main" - label: wf_scatter_two_dotproduct - id: 38 + id: wf_scatter_two_dotproduct doc: Test workflow scatter with two scatter parameters and dotproduct join method tags: [ scatter, workflow ] @@ -411,8 +372,7 @@ output: out: [] tool: tests/scatter-wf1.cwl - label: wf_scatter_emptylist - id: 39 + id: wf_scatter_emptylist doc: Test workflow scatter with single empty list parameter tags: [ scatter, workflow ] @@ -420,8 +380,7 @@ output: out: [[], []] tool: tests/scatter-wf2.cwl - label: wf_scatter_nested_crossproduct_secondempty - id: 40 + id: wf_scatter_nested_crossproduct_secondempty doc: Test workflow scatter with two scatter parameters and nested_crossproduct join method with second list empty tags: [ scatter, workflow ] @@ -429,8 +388,7 @@ output: out: [] tool: "tests/scatter-wf3.cwl#main" - label: wf_scatter_nested_crossproduct_firstempty - id: 41 + id: wf_scatter_nested_crossproduct_firstempty doc: Test workflow scatter with two scatter parameters and nested_crossproduct join method with first list empty tags: [ scatter, workflow ] @@ -438,8 +396,7 @@ output: out: [] tool: "tests/scatter-wf3.cwl#main" - label: wf_scatter_flat_crossproduct_oneempty - id: 42 + id: wf_scatter_flat_crossproduct_oneempty doc: Test workflow scatter with two scatter parameters, one of which is empty and flat_crossproduct join method tags: [ scatter, workflow ] @@ -447,8 +404,7 @@ output: out: [] tool: "tests/scatter-wf4.cwl#main" - label: wf_scatter_dotproduct_twoempty - id: 43 + id: wf_scatter_dotproduct_twoempty doc: Test workflow scatter with two empty scatter parameters and dotproduct join method tags: [ scatter, workflow ] @@ -456,16 +412,14 @@ job: tests/env-job.json output: {"out": "hello test env\n"} - label: any_input_param - id: 44 + id: any_input_param doc: Test Any type input parameter tags: [ required, command_line_tool ] - job: tests/wc-job.json output: {count_output: 16} tool: tests/count-lines8-wf.cwl - label: nested_workflow - id: 45 + id: nested_workflow doc: Test nested workflow tags: [ subworkflow, workflow, inline_javascript ] @@ -477,8 +431,7 @@ location: out size: 15 tool: tests/env-wf1.cwl - label: requirement_priority - id: 46 + id: requirement_priority doc: Test requirement priority tags: [ env_var, workflow ] @@ -490,8 +443,7 @@ location: out size: 9 tool: tests/env-wf2.cwl - label: requirement_override_hints - id: 47 + id: requirement_override_hints doc: Test requirements override hints tags: [ env_var, workflow ] @@ -503,40 +455,35 @@ location: out size: 9 tool: tests/env-wf3.cwl - label: requirement_workflow_steps - id: 48 + id: requirement_workflow_steps doc: Test requirements on workflow steps tags: [ env_var, workflow ] - job: tests/empty.json output: {count_output: 16} tool: tests/count-lines9-wf.cwl - label: step_input_default_value - id: 49 + id: step_input_default_value doc: Test default value on step input parameter tags: [ inline_javascript, workflow ] - job: tests/empty.json output: {count_output: 16} tool: tests/count-lines11-wf.cwl - label: step_input_default_value_nosource - id: 50 + id: step_input_default_value_nosource doc: Test use default value on step input parameter with empty source tags: [ inline_javascript, workflow ] - job: tests/file1-null.json output: {count_output: 16} tool: tests/count-lines11-wf.cwl - label: step_input_default_value_nullsource - id: 51 + id: step_input_default_value_nullsource doc: Test use default value on step input parameter with null source tags: [ inline_javascript, workflow ] - job: tests/cat-job.json output: {count_output: 1} tool: tests/count-lines11-wf.cwl - label: step_input_default_value_overriden - id: 52 + id: step_input_default_value_overriden doc: Test default value on step input parameter overridden by provided source tags: [ inline_javascript, workflow ] @@ -548,8 +495,7 @@ location: output.txt size: 1111 tool: tests/revsort.cwl - label: wf_simple - id: 53 + id: wf_simple doc: Test simple workflow tags: [ required, workflow ] @@ -561,8 +507,7 @@ location: output.txt size: 13 tool: tests/cat5-tool.cwl - label: hints_unknown_ignored - id: 54 + id: hints_unknown_ignored doc: Test unknown hints are ignored. tags: [ required, command_line_tool ] @@ -641,8 +586,7 @@ "size": 1111 } tool: "tests/search.cwl#main" - label: initial_workdir_secondary_files_expr - id: 55 + id: initial_workdir_secondary_files_expr doc: >- Test InitialWorkDirRequirement linking input files and capturing secondaryFiles on input and output. Also tests the use of a variety of parameter references @@ -657,8 +601,7 @@ location: fish.txt size: 1111 tool: tests/rename.cwl - label: rename - id: 56 + id: rename doc: >- Test InitialWorkDirRequirement with expression in filename. tags: [ initial_work_dir, command_line_tool ] @@ -671,8 +614,7 @@ location: example.conf size: 16 tool: tests/iwdr-entry.cwl - label: initial_workdir_trailingnl - id: 57 + id: initial_workdir_trailingnl doc: Test if trailing newline is present in file entry in InitialWorkDir tags: [ initial_work_dir, command_line_tool ] @@ -680,8 +622,7 @@ output: output: 16 tool: tests/wc4-tool.cwl - label: inline_expressions - id: 58 + id: inline_expressions doc: >- Test inline expressions tags: [ inline_javascript, command_line_tool ] @@ -694,8 +635,7 @@ class: File checksum: "sha1$f12e6cfe70f3253f70b0dbde17c692e7fb0f1e5e" tool: tests/schemadef-tool.cwl - label: schemadef_req_tool_param - id: 59 + id: schemadef_req_tool_param doc: >- Test SchemaDefRequirement definition used in tool parameter tags: [ schema_def, command_line_tool ] @@ -708,8 +648,7 @@ class: File checksum: "sha1$f12e6cfe70f3253f70b0dbde17c692e7fb0f1e5e" tool: tests/schemadef-wf.cwl - label: schemadef_req_wf_param - id: 60 + id: schemadef_req_wf_param doc: >- Test SchemaDefRequirement definition used in workflow parameter tags: [ schema_def, workflow ] @@ -788,8 +727,7 @@ "t28": 3 } tool: tests/params.cwl - label: param_evaluation_noexpr - id: 61 + id: param_evaluation_noexpr doc: Test parameter evaluation, no support for JS expressions tags: [ required, command_line_tool ] @@ -867,8 +805,7 @@ "t28": 3 } tool: tests/params2.cwl - label: param_evaluation_expr - id: 62 + id: param_evaluation_expr doc: >- Test parameter evaluation, with support for JS expressions tags: [ inline_javascript, command_line_tool ] @@ -876,8 +813,7 @@ - output: {} job: tests/cat-job.json tool: tests/metadata.cwl - label: metadata - id: 63 + id: metadata doc: Test metadata tags: [ required, command_line_tool ] @@ -890,8 +826,7 @@ "class": "File" "checksum": "sha1$97fe1b50b4582cebc7d853796ebd62e3e163aa3f" tool: tests/formattest.cwl - label: format_checking - id: 64 + id: format_checking doc: >- Test simple format checking. tags: [ required, command_line_tool ] @@ -905,8 +840,7 @@ "class": "File" "checksum": "sha1$971d88faeda85a796752ecf752b7e2e34f1337ce" tool: tests/formattest2.cwl - label: format_checking_subclass - id: 65 + id: format_checking_subclass doc: >- Test format checking against ontology using subclassOf. tags: [ required, command_line_tool ] @@ -920,8 +854,7 @@ "class": "File" "checksum": "sha1$971d88faeda85a796752ecf752b7e2e34f1337ce" tool: tests/formattest3.cwl - label: format_checking_equivalentclass - id: 66 + id: format_checking_equivalentclass doc: >- Test format checking against ontology using equivalentClass. tags: [ required, command_line_tool ] @@ -935,8 +868,7 @@ size: 13 class: "File" checksum: "sha1$47a013e660d408619d894b20806b1d5086aab03b" - label: output_secondaryfile_optional - id: 67 + id: output_secondaryfile_optional doc: >- Test optional output file and optional secondaryFile on output. tags: [ docker, command_line_tool ] @@ -945,8 +877,7 @@ output: out: "\n" tool: tests/vf-concat.cwl - label: valuefrom_ignored_null - id: 68 + id: valuefrom_ignored_null doc: Test that valueFrom is ignored when the parameter is null tags: [ inline_javascript, command_line_tool ] @@ -954,32 +885,28 @@ output: out: "a string\n" tool: tests/vf-concat.cwl - label: valuefrom_secondexpr_ignored - id: 69 + id: valuefrom_secondexpr_ignored doc: Test that second expression in concatenated valueFrom is not ignored tags: [ inline_javascript, command_line_tool ] - job: tests/step-valuefrom-wf.json output: {count_output: 16} tool: tests/step-valuefrom-wf.cwl - label: valuefrom_wf_step - id: 70 + id: valuefrom_wf_step doc: Test valueFrom on workflow step. tags: [ step_input, inline_javascript, workflow ] - job: tests/step-valuefrom-job.json output: {val: "3\n"} tool: tests/step-valuefrom2-wf.cwl - label: valuefrom_wf_step_multiple - id: 71 + id: valuefrom_wf_step_multiple doc: Test valueFrom on workflow step with multiple sources tags: [ step_input, inline_javascript, multiple_input, workflow ] - job: tests/step-valuefrom-job.json output: {val: "3\n"} tool: tests/step-valuefrom3-wf.cwl - label: valuefrom_wf_step_other - id: 72 + id: valuefrom_wf_step_other doc: Test valueFrom on workflow step referencing other inputs tags: [ step_input, inline_javascript, workflow ] @@ -1000,8 +927,7 @@ } } tool: tests/record-output.cwl - label: record_output_binding - id: 73 + id: record_output_binding doc: Test record type output binding. tags: [ shell_command, command_line_tool ] @@ -1015,8 +941,7 @@ } } tool: tests/test-cwl-out.cwl - label: docker_json_output_path - id: 74 + id: docker_json_output_path doc: >- Test support for reading cwl.output.json when running in a Docker container and just 'path' is provided. @@ -1032,8 +957,7 @@ } } tool: tests/test-cwl-out2.cwl - label: docker_json_output_location - id: 75 + id: docker_json_output_location doc: >- Test support for reading cwl.output.json when running in a Docker container and just 'location' is provided. @@ -1060,8 +984,7 @@ "checksum": "sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709" }] tool: tests/glob-expr-list.cwl - label: multiple_glob_expr_list - id: 76 + id: multiple_glob_expr_list doc: Test support for returning multiple glob patterns from expression tags: [ required, command_line_tool ] @@ -1069,8 +992,7 @@ output: out: ["foo one one", "foo one two", "foo one three", "foo one four"] tool: tests/scatter-valuefrom-wf1.cwl - label: wf_scatter_oneparam_valuefrom - id: 77 + id: wf_scatter_oneparam_valuefrom doc: Test workflow scatter with single scatter parameter and two valueFrom on step input (first and current el) tags: [ scatter, step_input, workflow ] @@ -1078,8 +1000,7 @@ output: out: [["foo one one three", "foo one one four"], ["foo one two three", "foo one two four"]] tool: tests/scatter-valuefrom-wf2.cwl - label: wf_scatter_twoparam_nested_crossproduct_valuefrom - id: 78 + id: wf_scatter_twoparam_nested_crossproduct_valuefrom doc: Test workflow scatter with two scatter parameters and nested_crossproduct join method and valueFrom on step input tags: [ scatter, step_input, workflow ] @@ -1087,8 +1008,7 @@ output: out: ["foo one one three", "foo one one four", "foo one two three", "foo one two four"] tool: "tests/scatter-valuefrom-wf3.cwl#main" - label: wf_scatter_twoparam_flat_crossproduct_valuefrom - id: 79 + id: wf_scatter_twoparam_flat_crossproduct_valuefrom doc: Test workflow scatter with two scatter parameters and flat_crossproduct join method and valueFrom on step input tags: [ scatter, step_input, workflow ] @@ -1096,8 +1016,7 @@ output: out: ["foo one one three", "foo one two four"] tool: "tests/scatter-valuefrom-wf4.cwl#main" - label: wf_scatter_twoparam_dotproduct_valuefrom - id: 80 + id: wf_scatter_twoparam_dotproduct_valuefrom doc: Test workflow scatter with two scatter parameters and dotproduct join method and valueFrom on step input tags: [ scatter, step_input, workflow ] @@ -1105,15 +1024,13 @@ output: out: ["foo one one", "foo two two", "foo three three", "foo four four"] tool: tests/scatter-valuefrom-wf5.cwl - label: wf_scatter_oneparam_valuefrom_twice_current_el - id: 81 + id: wf_scatter_oneparam_valuefrom_twice_current_el doc: Test workflow scatter with single scatter parameter and two valueFrom on step input (current el twice) tags: [ scatter, step_input, workflow ] - job: tests/scatter-valuefrom-job3.json tool: tests/scatter-valuefrom-wf6.cwl - label: wf_scatter_oneparam_valueFrom - id: 82 + id: wf_scatter_oneparam_valueFrom doc: Test valueFrom eval on scattered input parameter output: out_message: [ @@ -1142,8 +1059,7 @@ } } tool: "tests/conflict-wf.cwl#collision" - label: wf_two_inputfiles_namecollision - id: 83 + id: wf_two_inputfiles_namecollision doc: Test workflow two input files with same name. tags: [ required, workflow ] @@ -1156,8 +1072,7 @@ "class": "File" } tool: tests/dir.cwl - label: directory_input_param_ref - id: 84 + id: directory_input_param_ref doc: Test directory input with parameter reference tags: [ shell_command, command_line_tool ] @@ -1170,8 +1085,7 @@ "class": "File" } tool: tests/dir2.cwl - label: directory_input_docker - id: 85 + id: directory_input_docker doc: Test directory input in Docker tags: [ command_line_tool, shell_command ] @@ -1195,8 +1109,7 @@ ], } tool: tests/dir3.cwl - label: directory_output - id: 86 + id: directory_output doc: Test directory output tags: [ required, command_line_tool ] @@ -1210,8 +1123,7 @@ } } tool: tests/dir4.cwl - label: directory_secondaryfiles - id: 87 + id: directory_secondaryfiles doc: Test directories in secondaryFiles tags: [ shell_command, command_line_tool ] @@ -1225,8 +1137,7 @@ } } tool: tests/dir5.cwl - label: dynamic_initial_workdir - id: 88 + id: dynamic_initial_workdir doc: Test dynamic initial work dir tags: [ shell_command, initial_work_dir, command_line_tool ] @@ -1240,8 +1151,7 @@ } } tool: tests/stagefile.cwl - label: writable_stagedfiles - id: 89 + id: writable_stagedfiles doc: Test writable staged files. tags: [ initial_work_dir, command_line_tool ] @@ -1253,8 +1163,7 @@ location: output.txt size: 18 tool: tests/cat3-tool.cwl - label: input_file_literal - id: 90 + id: input_file_literal doc: Test file literal as input tags: [ required, command_line_tool ] @@ -1266,8 +1175,7 @@ class: File size: 0 tool: tests/linkfile.cwl - label: initial_workdir_expr - id: 91 + id: initial_workdir_expr doc: Test expression in InitialWorkDir listing tags: [ initial_work_dir, command_line_tool ] @@ -1279,8 +1187,7 @@ class: File size: 21 tool: tests/nameroot.cwl - label: nameroot_nameext_stdout_expr - id: 92 + id: nameroot_nameext_stdout_expr doc: Test nameroot/nameext expression in arguments, stdout tags: [ required, command_line_tool ] @@ -1293,8 +1200,7 @@ "class": "File" } tool: tests/dir6.cwl - label: input_dir_inputbinding - id: 93 + id: input_dir_inputbinding doc: Test directory input with inputBinding tags: [ shell_command, command_line_tool ] @@ -1306,24 +1212,21 @@ class: File size: 2 tool: tests/nested-array.cwl - label: cl_gen_arrayofarrays - id: 94 + id: cl_gen_arrayofarrays doc: Test command line generation of array-of-arrays tags: [ required, command_line_tool ] - job: tests/empty.json output: {} tool: tests/envvar.cwl - label: env_home_tmpdir - id: 95 + id: env_home_tmpdir doc: Test $HOME and $TMPDIR are set correctly tags: [ shell_command, command_line_tool ] - job: tests/empty.json output: {} tool: tests/envvar2.cwl - label: env_home_tmpdir_docker - id: 96 + id: env_home_tmpdir_docker doc: Test $HOME and $TMPDIR are set correctly in Docker tags: [ shell_command, command_line_tool ] @@ -1336,8 +1239,7 @@ "size": 2 } tool: "tests/js-expr-req-wf.cwl#wf" - label: expressionlib_tool_wf_override - id: 97 + id: expressionlib_tool_wf_override doc: Test that expressionLib requirement of individual tool step overrides expressionLib of workflow. tags: [ inline_javascript, workflow ] @@ -1355,16 +1257,14 @@ "class": "File" "size": 12010 tool: tests/initialworkdirrequirement-docker-out.cwl - label: initial_workdir_output - id: 98 + id: initial_workdir_output doc: Test output of InitialWorkDir tags: [ docker, initial_work_dir, command_line_tool ] - job: tests/wc-job.json output: {count_output: 16} tool: tests/count-lines10-wf.cwl - label: embedded_subworkflow - id: 99 + id: embedded_subworkflow doc: Test embedded subworkflow tags: [ subworkflow, workflow ] @@ -1378,16 +1278,14 @@ } } tool: tests/docker-array-secondaryfiles.cwl - label: filesarray_secondaryfiles - id: 100 + id: filesarray_secondaryfiles doc: Test required, optional and null secondaryFiles on array of files. tags: [ docker, inline_javascript, shell_command, command_line_tool ] - job: tests/docker-array-secondaryfiles-job2.json should_fail: true tool: tests/docker-array-secondaryfiles.cwl - label: filesarray_secondaryfiles2 - id: 101 + id: filesarray_secondaryfiles2 doc: Test required, optional and null secondaryFiles on array of files. tags: [ docker, inline_javascript, shell_command, command_line_tool ] @@ -1413,8 +1311,7 @@ } } tool: tests/dir7.cwl - label: exprtool_directory_literal - id: 102 + id: exprtool_directory_literal doc: Test directory literal output created by ExpressionTool tags: [ inline_javascript, expression_tool ] @@ -1426,8 +1323,7 @@ checksum: "sha1$fea23663b9c8ed71968f86415b5ec091bb111448" size: 19 tool: tests/file-literal-ex.cwl - label: exprtool_file_literal - id: 103 + id: exprtool_file_literal doc: Test file literal output created by ExpressionTool tags: [ inline_javascript, expression_tool ] @@ -1440,8 +1336,7 @@ "size": 0 } tool: tests/docker-output-dir.cwl - label: dockeroutputdir - id: 104 + id: dockeroutputdir doc: Test dockerOutputDirectory tags: [ docker, command_line_tool ] @@ -1453,16 +1348,14 @@ location: out size: 15 tool: tests/imported-hint.cwl - label: hints_import - id: 105 + id: hints_import doc: Test hints with $import tags: [ required, command_line_tool ] - output: {} job: tests/default_path_job.yml tool: tests/default_path.cwl - label: default_path_notfound_warning - id: 106 + id: default_path_notfound_warning doc: Test warning instead of error when default path is not found tags: [ required, command_line_tool ] @@ -1470,8 +1363,7 @@ args: [-A,'2',-B,baz,-C,'10','9','8','7','6','5','4','3','2','1',-D] job: tests/empty.json tool: tests/inline-js.cwl - label: inlinejs_req_expressions - id: 107 + id: inlinejs_req_expressions doc: Test InlineJavascriptRequirement with multiple expressions in the same tool tags: [ inline_javascript, command_line_tool ] @@ -1526,8 +1418,7 @@ "size": 0 } tool: tests/recursive-input-directory.cwl - label: input_dir_recurs_copy_writable - id: 108 + id: input_dir_recurs_copy_writable doc: Test if a writable input directory is recursively copied and writable tags: [ initial_work_dir, shell_command, command_line_tool ] @@ -1535,8 +1426,7 @@ out: "t\n" job: tests/empty.json tool: tests/null-defined.cwl - label: null_missing_params - id: 109 + id: null_missing_params doc: Test that missing parameters are null (not undefined) in expression tags: [ inline_javascript, command_line_tool ] @@ -1544,8 +1434,7 @@ out: "f\n" job: tests/cat-job.json tool: tests/null-defined.cwl - label: param_notnull_expr - id: 110 + id: param_notnull_expr doc: Test that provided parameter is not null in expression tags: [ inline_javascript, command_line_tool ] @@ -1557,8 +1446,7 @@ location: output.txt size: 1111 tool: tests/revsort-packed.cwl#main - label: wf_compound_doc - id: 111 + id: wf_compound_doc doc: Test compound workflow document tags: [ required, workflow ] @@ -1577,16 +1465,14 @@ location: Any path: Any tool: tests/basename-fields-test.cwl - label: nameroot_nameext_generated - id: 112 + id: nameroot_nameext_generated doc: Test that nameroot and nameext are generated from basename at execution time by the runner tags: [ step_input, workflow ] - job: tests/wc-job.json output: {} tool: tests/initialwork-path.cwl - label: initialworkpath_output - id: 113 + id: initialworkpath_output doc: Test that file path in $(inputs) for initialworkdir is in $(outdir). tags: [ initial_work_dir, command_line_tool ] @@ -1594,8 +1480,7 @@ output: count_output: 34 tool: tests/count-lines12-wf.cwl - label: wf_scatter_twopar_oneinput_flattenedmerge - id: 114 + id: wf_scatter_twopar_oneinput_flattenedmerge doc: >- Test single step workflow with Scatter step and two data links connected to same input, flattened merge behavior. Workflow inputs are set as list @@ -1605,8 +1490,7 @@ output: result: 12 tool: tests/sum-wf.cwl - label: wf_multiplesources_multipletypes - id: 115 + id: wf_multiplesources_multipletypes doc: Test step input with multiple sources with multiple types tags: [ step_input, inline_javascript, multiple_input, workflow ] @@ -1626,8 +1510,7 @@ } } tool: tests/shellchar.cwl - label: shelldir_notinterpreted - id: 116 + id: shelldir_notinterpreted doc: "Test that shell directives are not interpreted." tags: [ required, command_line_tool ] @@ -1647,8 +1530,7 @@ } } tool: tests/shellchar2.cwl - label: shelldir_quoted - id: 117 + id: shelldir_quoted doc: "Test that shell directives are quoted." tags: [ shell_command, command_line_tool ] @@ -1669,8 +1551,7 @@ "class": "Directory" } tool: tests/writable-dir.cwl - label: initial_workdir_empty_writable - id: 118 + id: initial_workdir_empty_writable doc: Test empty writable dir with InitialWorkDirRequirement tags: [ inline_javascript, initial_work_dir, command_line_tool ] @@ -1691,15 +1572,13 @@ "class": "Directory" } tool: tests/writable-dir-docker.cwl - label: initial_workdir_empty_writable_docker - id: 119 + id: initial_workdir_empty_writable_docker doc: Test empty writable dir with InitialWorkDirRequirement inside Docker tags: [ inline_javascript, initial_work_dir, command_line_tool ] - job: tests/dynresreq-job.yaml tool: tests/dynresreq.cwl - label: dynamic_resreq_inputs - id: 120 + id: dynamic_resreq_inputs doc: Test dynamic resource reqs referencing inputs output: output: { @@ -1718,15 +1597,13 @@ location: output.txt size: 18 tool: tests/cat3-nodocker.cwl - label: fileliteral_input_docker - id: 121 + id: fileliteral_input_docker doc: Test file literal as input without Docker tags: [ required, command_line_tool ] - doc: Test that OutputBinding.glob is sorted as specified by POSIX - id: 122 job: tests/empty.json - label: outputbinding_glob_sorted + id: outputbinding_glob_sorted tool: tests/glob_test.cwl output: letters: @@ -1761,7 +1638,6 @@ tags: [ required, command_line_tool ] - doc: Test InitialWorkDirRequirement with a nested directory structure from another step - id: 123 job: tests/empty.json output: ya_empty: @@ -1770,7 +1646,7 @@ location: ya size: 0 tool: tests/iwdr_with_nested_dirs.cwl - label: initialworkdir_nesteddir + id: initialworkdir_nesteddir tags: [ initial_work_dir, workflow ] - job: tests/bool-empty-inputbinding-job.json @@ -1779,8 +1655,7 @@ ] } tool: tests/bool-empty-inputbinding.cwl - label: booleanflags_cl_noinputbinding - id: 124 + id: booleanflags_cl_noinputbinding doc: "Test that boolean flags do not appear on command line if inputBinding is empty and not null" tags: [ required, command_line_tool ] @@ -1789,25 +1664,22 @@ "args": [] } tool: tests/stage-unprovided-file.cwl - label: expr_reference_self_noinput - id: 125 + id: expr_reference_self_noinput doc: Test that expression engine does not fail to evaluate reference to self with unprovided input tags: [ required, command_line_tool ] - tool: tests/exit-success.cwl - label: success_codes - id: 126 + id: success_codes doc: Test successCodes job: tests/empty.json output: {} tags: [ required, command_line_tool ] - job: tests/dynresreq-job.yaml - id: 127 doc: Test simple workflow with a dynamic resource requirement tool: tests/dynresreq-workflow.cwl - label: dynamic_resreq_wf + id: dynamic_resreq_wf output: cores: { "location": "output", @@ -1822,15 +1694,13 @@ "args": [] } tool: tests/empty-array-input.cwl - label: cl_empty_array_input - id: 128 + id: cl_empty_array_input doc: "Test that empty array input does not add anything to command line" tags: [ required, command_line_tool ] - job: tests/empty.json tool: tests/steplevel-resreq.cwl - label: resreq_step_overrides_wf - id: 129 + id: resreq_step_overrides_wf doc: Test that ResourceRequirement on a step level redefines requirement on the workflow level output: out: { @@ -1846,15 +1716,13 @@ "args": ["replacementValue"] } tool: tests/valueFrom-constant.cwl - label: valuefrom_constant_overrides_inputs - id: 130 + id: valuefrom_constant_overrides_inputs doc: Test valueFrom with constant value overriding provided array inputs tags: [ required, command_line_tool ] - job: tests/dynresreq-dir-job.yaml tool: tests/dynresreq-dir.cwl - label: dynamic_resreq_filesizes - id: 131 + id: dynamic_resreq_filesizes doc: Test dynamic resource reqs referencing the size of Files inside a Directory output: output: { @@ -1867,8 +1735,7 @@ - job: tests/empty.json tool: tests/pass-unconnected.cwl - label: wf_step_connect_undeclared_param - id: 132 + id: wf_step_connect_undeclared_param doc: >- Test that it is not an error to connect a parameter to a workflow step, even if the parameter doesn't appear in the `run` process @@ -1878,8 +1745,7 @@ - job: tests/empty.json tool: tests/fail-unconnected.cwl - label: wf_step_access_undeclared_param - id: 133 + id: wf_step_access_undeclared_param doc: >- Test that parameters that don't appear in the `run` process inputs are not present in the input object used to run the tool. @@ -1894,8 +1760,7 @@ checksum: "sha1$7d5ca8c0c03e883c56c4eb1ef6f6bb9bccad4d86" size: 8 tool: tests/envvar3.cwl - label: env_home_tmpdir_docker_no_return_code - id: 134 + id: env_home_tmpdir_docker_no_return_code doc: Test $HOME and $TMPDIR are set correctly in Docker without using return code tags: [ shell_command, command_line_tool ] @@ -1903,8 +1768,7 @@ output: out: ["foo one one", "foo one two", "foo one three", "foo one four"] tool: tests/scatter-valuefrom-inputs-wf1.cwl - label: wf_scatter_oneparam_valuefrom_inputs - id: 135 + id: wf_scatter_oneparam_valuefrom_inputs doc: Test workflow scatter with single scatter parameter and two valueFrom using $inputs (first and current el) tags: [ scatter, step_input, workflow ] @@ -1916,8 +1780,7 @@ class: File size: 0 tool: tests/import_schema-def_packed.cwl - label: packed_import_schema - id: 136 + id: packed_import_schema doc: SchemaDefRequirement with $import, and packed tags: [ schema_def, workflow ] @@ -1931,8 +1794,7 @@ } } tool: tests/dir4.cwl - id: 137 - label: job_input_secondary_subdirs + id: job_input_secondary_subdirs doc: Test specifying secondaryFiles in subdirectories of the job input document. tags: [ shell_command, command_line_tool ] @@ -1946,8 +1808,7 @@ } } tool: tests/dir4.cwl - id: 138 - label: job_input_subdir_primary_and_secondary_subdirs + id: job_input_subdir_primary_and_secondary_subdirs doc: Test specifying secondaryFiles in same subdirectory of the job input as the primary input file. tags: [ shell_command, command_line_tool ] @@ -1955,8 +1816,7 @@ output: count_output: [16, 1] tool: tests/count-lines18-wf.cwl - id: 139 - label: scatter_embedded_subworkflow + id: scatter_embedded_subworkflow doc: Test simple scatter over an embedded subworkflow tags: [ workflow, inline_javascript ] @@ -1964,32 +1824,28 @@ output: count_output: [16, 1] tool: tests/count-lines14-wf.cwl - id: 140 - label: scatter_multi_input_embedded_subworkflow + id: scatter_multi_input_embedded_subworkflow doc: Test simple multiple input scatter over an embedded subworkflow tags: [ workflow, scatter, subworkflow, multiple_input, inline_javascript ] - job: tests/wc-job.json output: {count_output: 16} tool: tests/count-lines15-wf.cwl - id: 141 doc: Test twice nested subworkflow - label: workflow_embedded_subworkflow_embedded_subsubworkflow + id: workflow_embedded_subworkflow_embedded_subsubworkflow tags: [ workflow, subworkflow, inline_javascript ] - job: tests/wc-job.json output: {count_output: 16} tool: tests/count-lines16-wf.cwl - id: 142 - label: workflow_embedded_subworkflow_with_tool_and_subsubworkflow + id: workflow_embedded_subworkflow_with_tool_and_subsubworkflow doc: Test subworkflow of mixed depth with tool first tags: [ workflow, subworkflow, inline_javascript ] - job: tests/wc-job.json output: {count_output: 16} tool: tests/count-lines17-wf.cwl - id: 143 - label: workflow_embedded_subworkflow_with_subsubworkflow_and_tool + id: workflow_embedded_subworkflow_with_subsubworkflow_and_tool doc: Test subworkflow of mixed depth with tool after tags: [ workflow, subworkflow, inline_javascript ] @@ -2010,56 +1866,49 @@ } } tool: tests/record-output-wf.cwl - id: 144 - label: workflow_records_inputs_and_outputs + id: workflow_records_inputs_and_outputs doc: Test record type inputs to and outputs from workflows. tags: [ workflow, shell_command ] - job: tests/io-int.json output: {"o": 10} tool: tests/io-int-wf.cwl - id: 145 - label: workflow_integer_input + id: workflow_integer_input doc: Test integer workflow input and outputs tags: [ workflow, inline_javascript, expression_tool ] - job: tests/io-int.json output: {"o": 10} tool: tests/io-int-optional-wf.cwl - id: 146 - label: workflow_integer_input_optional_specified + id: workflow_integer_input_optional_specified doc: Test optional integer workflow inputs (specified) tags: [ workflow, inline_javascript, expression_tool ] - job: tests/empty.json output: {"o": 4} tool: tests/io-int-optional-wf.cwl - id: 147 - label: workflow_integer_input_optional_unspecified + id: workflow_integer_input_optional_unspecified doc: Test optional integer workflow inputs (unspecified) tags: [ workflow, inline_javascript, expression_tool ] - job: tests/io-int.json output: {"o": 10} tool: tests/io-int-default-wf.cwl - id: 148 - label: workflow_integer_input_default_specified + id: workflow_integer_input_default_specified doc: Test default integer workflow inputs (specified) tags: [ workflow, inline_javascript, expression_tool ] - job: tests/empty.json output: {"o": 8} tool: tests/io-int-default-wf.cwl - id: 149 - label: workflow_integer_input_default_unspecified + id: workflow_integer_input_default_unspecified doc: Test default integer workflow inputs (unspecified) tags: [ workflow, inline_javascript, expression_tool ] - job: tests/empty.json output: {"o": 13} tool: tests/io-int-default-tool-and-wf.cwl - id: 150 - label: workflow_integer_input_default_and_tool_integer_input_default + id: workflow_integer_input_default_and_tool_integer_input_default doc: Test default integer tool and workflow inputs (unspecified) tags: [ workflow, inline_javascript, expression_tool ] @@ -2072,8 +1921,7 @@ "checksum": "sha1$327fc7aedf4f6b69a42a7c8b808dc5a7aff61376" }} tool: tests/io-file-default-wf.cwl - id: 151 - label: workflow_file_input_default_unspecified + id: workflow_file_input_default_unspecified doc: Test File input with default unspecified to workflow tags: [ workflow ] @@ -2086,8 +1934,7 @@ "size": 13 }} tool: tests/io-file-default-wf.cwl - id: 152 - label: workflow_file_input_default_specified + id: workflow_file_input_default_specified doc: Test File input with default specified to workflow tags: [ workflow ] @@ -2101,8 +1948,7 @@ "size": 0 }} tool: tests/io-file-or-files.cwl - id: 153 - label: clt_optional_union_input_file_or_files_with_array_of_one_file_provided + id: clt_optional_union_input_file_or_files_with_array_of_one_file_provided doc: Test input union type or File or File array to a tool with one file in array specified. tags: [ command_line_tool, inline_javascript ] @@ -2116,8 +1962,7 @@ "size": 1114 }} tool: tests/io-file-or-files.cwl - id: 154 - label: clt_optional_union_input_file_or_files_with_many_files_provided + id: clt_optional_union_input_file_or_files_with_many_files_provided doc: Test input union type or File or File array to a tool with a few files in array specified. tags: [ command_line_tool, inline_javascript ] @@ -2131,8 +1976,7 @@ "size": 1111 }} tool: tests/io-file-or-files.cwl - id: 155 - label: clt_optional_union_input_file_or_files_with_single_file_provided + id: clt_optional_union_input_file_or_files_with_single_file_provided doc: Test input union type or File or File array to a tool with one file specified. tags: [ command_line_tool, inline_javascript ] @@ -2146,136 +1990,119 @@ "size": 10 }} tool: tests/io-file-or-files.cwl - id: 156 - label: clt_optional_union_input_file_or_files_with_nothing_provided + id: clt_optional_union_input_file_or_files_with_nothing_provided doc: Test input union type or File or File array to a tool with null specified. tags: [ command_line_tool, inline_javascript ] - job: tests/io-any-int.json output: {"t1": 7} tool: tests/io-any-1.cwl - id: 157 - label: clt_any_input_with_integer_provided + id: clt_any_input_with_integer_provided doc: Test Any parameter with integer input to a tool tags: [ command_line_tool, inline_javascript ] - job: tests/io-any-string.json output: {"t1": "7"} tool: tests/io-any-1.cwl - id: 158 - label: clt_any_input_with_string_provided + id: clt_any_input_with_string_provided doc: Test Any parameter with string input to a tool tags: [ command_line_tool, inline_javascript ] - job: tests/io-any-file.json output: {"t1": "File"} tool: tests/io-any-1.cwl - id: 159 - label: clt_any_input_with_file_provided + id: clt_any_input_with_file_provided doc: Test Any parameter with file input to a tool tags: [ command_line_tool, inline_javascript ] - job: tests/io-any-array.json output: {"t1": [1, "moocow"]} tool: tests/io-any-1.cwl - id: 160 - label: clt_any_input_with_mixed_array_provided + id: clt_any_input_with_mixed_array_provided doc: Test Any parameter with array input to a tool tags: [ command_line_tool, inline_javascript ] - job: tests/io-any-record.json output: {"t1": {"moo": 1, "cow": 5}} tool: tests/io-any-1.cwl - id: 161 - label: clt_any_input_with_record_provided + id: clt_any_input_with_record_provided doc: Test Any parameter with record input to a tool tags: [ command_line_tool, inline_javascript ] - job: tests/io-any-int.json output: {"t1": 7} tool: tests/io-any-wf-1.cwl - id: 162 - label: workflow_any_input_with_integer_provided + id: workflow_any_input_with_integer_provided doc: Test Any parameter with integer input to a workflow tags: [ workflow, inline_javascript ] - job: tests/io-any-string.json output: {"t1": "7"} tool: tests/io-any-wf-1.cwl - id: 163 - label: workflow_any_input_with_string_provided + id: workflow_any_input_with_string_provided doc: Test Any parameter with string input to a workflow tags: [ workflow, inline_javascript ] - job: tests/io-any-file.json output: {"t1": "File"} tool: tests/io-any-wf-1.cwl - id: 164 - label: workflow_any_input_with_file_provided + id: workflow_any_input_with_file_provided doc: Test Any parameter with file input to a workflow tags: [ workflow, inline_javascript ] - job: tests/io-any-array.json output: {"t1": [1, "moocow"]} tool: tests/io-any-wf-1.cwl - id: 165 - label: workflow_any_input_with_mixed_array_provided + id: workflow_any_input_with_mixed_array_provided doc: Test Any parameter with array input to a workflow tags: [ workflow, inline_javascript ] - job: tests/io-any-record.json output: {"t1": {"moo": 1, "cow": 5}} tool: tests/io-any-wf-1.cwl - id: 166 - label: workflow_any_input_with_record_provided + id: workflow_any_input_with_record_provided doc: Test Any parameter with record input to a tool tags: [ workflow, inline_javascript ] - job: tests/empty.json output: {"o": "the default value"} tool: tests/io-union-input-default-wf.cwl - id: 167 - label: workflow_union_default_input_unspecified + id: workflow_union_default_input_unspecified doc: Test union type input to workflow with default unspecified tags: [ workflow, inline_javascript, expression_tool ] - job: tests/io-any-file.json output: {"o": "File"} tool: tests/io-union-input-default-wf.cwl - id: 168 - label: workflow_union_default_input_with_file_provided + id: workflow_union_default_input_with_file_provided doc: Test union type input to workflow with default specified as file tags: [ workflow, inline_javascript, expression_tool ] - job: tests/empty.json output: {"val": "moocow\n"} tool: tests/step-valuefrom4-wf.cwl - id: 169 - label: workflowstep_valuefrom_string + id: workflowstep_valuefrom_string doc: Test valueFrom on workflow step from literal (string). tags: [ workflow, step_input ] - job: tests/wc-job.json output: {"val1": "whale.txt\n", "val2": "step1_out\n"} tool: tests/step-valuefrom5-wf.cwl - id: 170 - label: workflowstep_valuefrom_file_basename + id: workflowstep_valuefrom_file_basename doc: Test valueFrom on workflow step using basename. tags: [ workflow, step_input ] - job: tests/output-arrays-int-job.json output: {"o": [0, 1, 2]} tool: tests/output-arrays-int.cwl - id: 171 - label: expression_tool_int_array_output + id: expression_tool_int_array_output doc: Test output arrays in a tool (with ints). tags: [ expression_tool, inline_javascript ] - job: tests/output-arrays-int-job.json output: {"o": 12} tool: tests/output-arrays-int-wf.cwl - id: 172 - label: workflowstep_int_array_input_output + id: workflowstep_int_array_input_output doc: Test output arrays in a workflow (with ints). tags: [ workflow, expression_tool, inline_javascript ] @@ -2297,8 +2124,7 @@ } ]} tool: tests/output-arrays-file-wf.cwl - id: 173 - label: workflow_file_array_output + id: workflow_file_array_output doc: Test output arrays in a workflow (with Files). tags: [ workflow, expression_tool, inline_javascript ] @@ -2312,8 +2138,7 @@ "location": Any }} tool: "tests/docker-run-cmd.cwl" - id: 174 - label: docker_entrypoint + id: docker_entrypoint doc: Test Docker ENTRYPOINT usage tags: [ command_line_tool, docker ] @@ -2327,8 +2152,7 @@ "size": 11 }} tool: "tests/size-expression-tool.cwl" - id: 175 - label: clt_file_size_property_with_empty_file + id: clt_file_size_property_with_empty_file doc: Test use of size in expressions for an empty file tags: [ command_line_tool, inline_javascript ] @@ -2342,24 +2166,21 @@ "size": 31 }} tool: "tests/size-expression-tool.cwl" - id: 176 - label: clt_file_size_property_with_multi_file + id: clt_file_size_property_with_multi_file doc: Test use of size in expressions for a few files tags: [ command_line_tool, inline_javascript ] - job: tests/null-expression-echo-job.json tool: tests/echo-tool.cwl should_fail: true - id: 177 - label: any_without_defaults_unspecified_fails + id: any_without_defaults_unspecified_fails doc: Test Any without defaults, unspecified, should fail. tags: [ command_line_tool, required ] - job: tests/null-expression1-job.json tool: tests/echo-tool.cwl should_fail: true - id: 178 - label: any_without_defaults_specified_fails + id: any_without_defaults_specified_fails doc: Test Any without defaults, specified, should fail. tags: [ command_line_tool, required ] @@ -2370,8 +2191,7 @@ checksum: sha1$3596ea087bfdaf52380eae441077572ed289d657 size: 3 tool: tests/count-lines9-wf-noET.cwl - id: 179 - label: step_input_default_value_noexp + id: step_input_default_value_noexp doc: Test default value on step input parameter, no ExpressionTool tags: [ workflow, required ] @@ -2382,8 +2202,7 @@ checksum: sha1$e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e size: 2 tool: tests/count-lines11-wf-noET.cwl - id: 180 - label: step_input_default_value_overriden_noexp + id: step_input_default_value_overriden_noexp doc: Test default value on step input parameter overridden by provided source, no ExpressionTool tags: [ workflow, required ] @@ -2393,8 +2212,7 @@ class: File checksum: sha1$3596ea087bfdaf52380eae441077572ed289d657 size: 3 - id: 181 - label: nested_workflow_noexp + id: nested_workflow_noexp tool: tests/count-lines8-wf-noET.cwl doc: Test nested workflow, without ExpressionTool tags: [ workflow, subworkflow ] @@ -2405,8 +2223,7 @@ class: File checksum: sha1$ad552e6dc057d1d825bf49df79d6b98eba846ebe size: 3 - id: 182 - label: wf_multiplesources_multipletypes_noexp + id: wf_multiplesources_multipletypes_noexp tool: tests/sum-wf-noET.cwl doc: Test step input with multiple sources with multiple types, without ExpressionTool tags: [ workflow, step_input, inline_javascript, multiple_input ] @@ -2419,8 +2236,7 @@ size: 2 class: File checksum: sha1$7448d8798a4380162d4b56f9b452e2f6f9e24e7a - id: 183 - label: dynamic_resreq_wf_optional_file_default + id: dynamic_resreq_wf_optional_file_default doc: >- Within a workflow, test accessing the size attribute of an optional input File as part of a CommandLineTool's ResourceRequirement calculation. The @@ -2436,8 +2252,7 @@ size: 2 class: File checksum: sha1$7448d8798a4380162d4b56f9b452e2f6f9e24e7a - id: 184 - label: dynamic_resreq_wf_optional_file_step_default + id: dynamic_resreq_wf_optional_file_step_default doc: >- Within a workflow, test accessing the size attribute of an optional input File as part of a CommandLineTool's ResourceRequirement calculation. The @@ -2447,8 +2262,7 @@ - tool: tests/dynresreq-workflow-inputdefault.cwl job: tests/empty.json - id: 185 - label: dynamic_resreq_wf_optional_file_wf_default + id: dynamic_resreq_wf_optional_file_wf_default output: cores: location: output @@ -2463,8 +2277,7 @@ - job: tests/cat-job.json output: {count_output: 1} - id: 186 - label: step_input_default_value_overriden_2nd_step + id: step_input_default_value_overriden_2nd_step tool: tests/count-lines11-extra-step-wf.cwl doc: >- Test default value on step input parameter overridden by provided source. @@ -2477,8 +2290,7 @@ class: File checksum: sha1$e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e size: 2 - id: 187 - label: step_input_default_value_overriden_2nd_step_noexp + id: step_input_default_value_overriden_2nd_step_noexp tool: tests/count-lines11-extra-step-wf-noET.cwl doc: >- Test default value on step input parameter overridden by provided source. @@ -2487,8 +2299,7 @@ - job: tests/empty.json output: {count_output: 16} - id: 188 - label: step_input_default_value_overriden_2nd_step_null + id: step_input_default_value_overriden_2nd_step_null tool: tests/count-lines11-null-step-wf.cwl doc: >- Test default value on step input parameter overridden by provided source. @@ -2501,8 +2312,7 @@ class: File checksum: sha1$3596ea087bfdaf52380eae441077572ed289d657 size: 3 - id: 189 - label: step_input_default_value_overriden_2nd_step_null_noexp + id: step_input_default_value_overriden_2nd_step_null_noexp tool: tests/count-lines11-null-step-wf-noET.cwl doc: >- Test default value on step input parameter overridden by provided source. @@ -2516,8 +2326,7 @@ checksum: sha1$47a013e660d408619d894b20806b1d5086aab03b class: File size: 13 - id: 190 - label: stdin_from_directory_literal_with_local_file + id: stdin_from_directory_literal_with_local_file doc: Pipe to stdin from user provided local File via a Directory literal tags: [ command_line_tool, required ] @@ -2528,8 +2337,7 @@ checksum: sha1$ef88e689559565999700d6fea7cf7ba306d04360 class: File size: 26 - id: 191 - label: stdin_from_directory_literal_with_literal_file + id: stdin_from_directory_literal_with_literal_file doc: Pipe to stdin from literal File via a Directory literal tags: [ command_line_tool, required ] @@ -2540,8 +2348,7 @@ checksum: sha1$ef88e689559565999700d6fea7cf7ba306d04360 class: File size: 26 - id: 192 - label: directory_literal_with_literal_file_nostdin + id: directory_literal_with_literal_file_nostdin doc: Test non-stdin reference to literal File via a Directory literal tags: [ command_line_tool, required ] @@ -2552,16 +2359,14 @@ location: output class: File size: 4 - id: 193 - label: no_inputs_commandlinetool + id: no_inputs_commandlinetool doc: Test CommandLineTool without inputs tags: [ command_line_tool, required ] - tool: tests/no-outputs-tool.cwl job: tests/cat-job.json output: {} - id: 194 - label: no_outputs_commandlinetool + id: no_outputs_commandlinetool doc: Test CommandLineTool without outputs tags: [ command_line_tool, required ] @@ -2572,16 +2377,14 @@ location: output class: File size: 4 - id: 195 - label: no_inputs_workflow + id: no_inputs_workflow doc: Test Workflow without inputs tags: [ workflow, required ] - tool: tests/no-outputs-wf.cwl job: tests/cat-job.json output: {} - id: 196 - label: no_outputs_workflow + id: no_outputs_workflow doc: Test Workflow without outputs tags: [ workflow, required ] @@ -2592,8 +2395,7 @@ class: File checksum: "sha1$2132943d72c39423e0b9425cbc40dfd5bf3e9cb2" size: 39 - id: 197 - label: anonymous_enum_in_array + id: anonymous_enum_in_array doc: Test an anonymous enum inside an array inside a record tags: [command_line_tool, required] @@ -2604,8 +2406,7 @@ class: File checksum: "sha1$f17c7d81f66e1520fca25b96b90eeeae5bbf08b0" size: 39 - id: 198 - label: schema-def_anonymous_enum_in_array + id: schema-def_anonymous_enum_in_array doc: Test an anonymous enum inside an array inside a record, SchemaDefRequirement tags: [command_line_tool, schema_def] @@ -2617,26 +2418,23 @@ location: output size: 1111 tool: tests/cat-tool-shortcut.cwl - label: stdin_shorcut + id: stdin_shorcut doc: Test command execution in with stdin and stdout redirection using stdin shortcut tags: [ command_line_tool, docker ] - id: 199 - job: tests/record-secondaryFiles-job.yml output: {} tool: tests/record-in-secondaryFiles.cwl - label: secondary_files_in_unnamed_records + id: secondary_files_in_unnamed_records doc: Test secondaryFiles on anonymous record fields tags: [ command_line_tool, required ] - id: 200 - job: tests/record-secondaryFiles-job.yml output: {} tool: tests/record-sd-secondaryFiles.cwl - label: secondary_files_in_named_records + id: secondary_files_in_named_records doc: Test secondaryFiles on SchemaDefRequirement record fields tags: [ command_line_tool, schema_def ] - id: 201 - job: tests/empty.json output: { @@ -2688,58 +2486,51 @@ } } tool: tests/record-out-secondaryFiles.cwl - label: secondary_files_in_output_records + id: secondary_files_in_output_records doc: Test secondaryFiles on output record fields tags: [ command_line_tool, required ] - id: 202 - job: tests/record-secondaryFiles-job.yml output: {} tool: tests/record-in-secondaryFiles-wf.cwl - label: secondary_files_workflow_propagation + id: secondary_files_workflow_propagation doc: Test secondaryFiles propagation through workflow tags: [ workflow, required ] - id: 203 - job: tests/record-secondaryFiles-job.yml should_fail: true tool: tests/record-in-secondaryFiles-missing-wf.cwl - label: secondary_files_missing + id: secondary_files_missing doc: Test checking when secondaryFiles are missing tags: [ workflow, required ] - id: 204 - job: tests/record-format-job.yml output: {} tool: tests/record-in-format.cwl - label: input_records_file_entry_with_format + id: input_records_file_entry_with_format doc: Test format on anonymous record fields tags: [ command_line_tool, required ] - id: 205 - job: tests/record-format-job2.yml should_fail: true tool: tests/record-in-format.cwl - label: input_records_file_entry_with_format_and_bad_regular_input_file_format + id: input_records_file_entry_with_format_and_bad_regular_input_file_format doc: Test file format checking on parameter tags: [ command_line_tool, format_checking ] - id: 206 - job: tests/record-format-job3.yml should_fail: true tool: tests/record-in-format.cwl doc: Test file format checking on record field - label: input_records_file_entry_with_format_and_bad_entry_file_format + id: input_records_file_entry_with_format_and_bad_entry_file_format tags: [ command_line_tool, format_checking ] - id: 207 - job: tests/record-format-job4.yml should_fail: true tool: tests/record-in-format.cwl doc: Test file format checking on array item - label: input_records_file_entry_with_format_and_bad_entry_array_file_format + id: input_records_file_entry_with_format_and_bad_entry_array_file_format tags: [ command_line_tool, format_checking ] - id: 208 - job: tests/record-secondaryFiles-job.yml output: { @@ -2761,20 +2552,18 @@ } } tool: tests/record-out-format.cwl - label: record_output_file_entry_format + id: record_output_file_entry_format doc: Test format on output record fields tags: [ command_line_tool, format_checking ] - id: 209 - job: tests/wf-loadContents-job.yml output: { "my_int": 42 } tool: tests/wf-loadContents.cwl - label: workflow_input_inputBinding_loadContents + id: workflow_input_inputBinding_loadContents doc: Test WorkflowInputParameter.inputBinding.loadContents tags: [ workflow, step_input, inline_javascript, expression_tool ] - id: 210 - job: tests/wf-loadContents-job.yml output: { @@ -2782,120 +2571,106 @@ } tool: tests/wf-loadContents2.cwl doc: Test WorkflowInputParameter.loadContents - label: workflow_input_loadContents_without_inputBinding + id: workflow_input_loadContents_without_inputBinding tags: [ workflow, step_input, inline_javascript, expression_tool ] - id: 211 - job: tests/wf-loadContents-job.yml output: { "my_int": 42 } tool: tests/wf-loadContents3.cwl - label: expression_tool_input_loadContents + id: expression_tool_input_loadContents doc: Test loadContents on InputParameter.loadContents (expression) tags: [ workflow, step_input, inline_javascript, expression_tool ] - id: 212 - job: tests/wf-loadContents-job.yml output: { "my_int": 42 } tool: tests/wf-loadContents4.cwl - label: workflow_step_in_loadContents + id: workflow_step_in_loadContents doc: Test WorkflowStepInput.loadContents tags: [ workflow, step_input, inline_javascript, expression_tool ] - id: 213 - job: tests/empty.json should_fail: true tool: tests/timelimit.cwl - label: timelimit_basic + id: timelimit_basic doc: Test that job fails when exceeding time limit tags: [ command_line_tool, timelimit, work_reuse ] - id: 214 - job: tests/empty.json should_fail: true tool: tests/timelimit2.cwl - label: timelimit_invalid + id: timelimit_invalid doc: Test invalid time limit value tags: [ command_line_tool, timelimit ] - id: 215 - job: tests/empty.json output: {} tool: tests/timelimit3.cwl - label: timelimit_zero_unlimited + id: timelimit_zero_unlimited doc: Test zero timelimit means no limit tags: [ command_line_tool, timelimit, work_reuse ] - id: 216 - job: tests/empty.json should_fail: true tool: tests/timelimit4.cwl - label: timelimit_from_expression + id: timelimit_from_expression doc: Test expression in time limit tags: [ command_line_tool, timelimit, inline_javascript, work_reuse ] - id: 217 - job: tests/empty.json output: status: Done tool: tests/timelimit5.cwl - label: timelimit_expressiontool + id: timelimit_expressiontool doc: Test timelimit in expressiontool is ignored tags: [ expression_tool, timelimit, inline_javascript ] - id: 218 - job: tests/empty.json should_fail: true tool: tests/timelimit-wf.cwl - label: timelimit_basic_wf + id: timelimit_basic_wf doc: Test that tool in workflow fails when exceeding time limit tags: [ workflow, timelimit ] - id: 219 - job: tests/empty.json output: o: time passed tool: tests/timelimit2-wf.cwl - label: timelimit_invalid_wf + id: timelimit_invalid_wf doc: Test that workflow level time limit is not applied to workflow execution time tags: [ workflow, timelimit, inline_javascript ] - id: 220 - job: tests/empty.json output: o: time passed tool: tests/timelimit3-wf.cwl - label: timelimit_zero_unlimited_wf + id: timelimit_zero_unlimited_wf doc: Test zero timelimit means no limit in workflow tags: [ workflow, timelimit, inline_javascript, work_reuse ] - id: 221 - job: tests/empty.json should_fail: true tool: tests/timelimit4-wf.cwl - label: timelimit_from_expression_wf + id: timelimit_from_expression_wf doc: Test expression in time limit in workflow tags: [ workflow, timelimit, inline_javascript, work_reuse ] - id: 222 - job: tests/empty.json output: {} tool: tests/networkaccess.cwl doc: Test networkaccess enabled - label: networkaccess + id: networkaccess tags: [ command_line_tool, networkaccess ] - id: 223 - job: tests/empty.json should_fail: true tool: tests/networkaccess2.cwl - label: networkaccess_disabled + id: networkaccess_disabled doc: Test networkaccess is disabled by default tags: [ networkaccess, command_line_tool ] - id: 224 - job: tests/stage-array-job.json tool: tests/stage-array.cwl @@ -2909,8 +2684,7 @@ "size": 32 } tags: [ resource, command_line_tool, initial_work_dir ] - id: 225 - label: initial_work_dir_for_null_and_arrays + id: initial_work_dir_for_null_and_arrays - job: tests/stage-array-dirs-job.yml tool: tests/stage-array-dirs.cwl @@ -2932,8 +2706,7 @@ ] } tags: [ resource, command_line_tool, initial_work_dir ] - id: 226 - label: initial_work_dir_for_array_dirs + id: initial_work_dir_for_array_dirs - job: tests/env-job3.yaml output: @@ -2943,10 +2716,9 @@ location: out size: 15 tool: tests/env-tool3.cwl - label: cwl_requirements_addition + id: cwl_requirements_addition doc: Test requirements in input document via EnvVarRequirement tags: [ command_line_tool, input_object_requirements ] - id: 227 - job: tests/env-job3.yaml output: @@ -2956,10 +2728,9 @@ location: out size: 15 tool: tests/env-tool4.cwl - label: cwl_requirements_override_expression + id: cwl_requirements_override_expression doc: Test conflicting requirements in input document via EnvVarRequirement and expression tags: [ command_line_tool, input_object_requirements ] - id: 228 - job: tests/env-job4.yaml output: @@ -2968,11 +2739,10 @@ checksum: sha1$715e62184492851512a020c36ab7118eca114a59 location: out size: 23 - label: cwl_requirements_override_static + id: cwl_requirements_override_static tool: tests/env-tool3.cwl doc: Test conflicting requirements in input document via EnvVarRequirement tags: [ command_line_tool, input_object_requirements ] - id: 229 - job: tests/initialworkdirrequirement-docker-out-job.json output: @@ -2988,18 +2758,16 @@ "class": "File" "size": 12010 tool: tests/initialworkdir-glob-fullpath.cwl - label: initial_workdir_output_glob + id: initial_workdir_output_glob doc: Test full path glob output of InitialWorkDir tags: [ initial_work_dir, command_line_tool ] - id: 230 - job: tests/empty.json should_fail: true tool: tests/glob-path-error.cwl - label: glob_outside_outputs_fails + id: glob_outside_outputs_fails doc: Test fail trying to glob outside output directory tags: [ command_line_tool, docker ] - id: 232 - job: tests/empty.json tool: tests/symlink-illegal.cwl @@ -3012,8 +2780,7 @@ "checksum": "sha1$cd28ec34f3f9425aca544b6332453708e8aaa82a" should_fail: true tags: [ command_line_tool ] - id: 233 - label: illegal_symlink + id: illegal_symlink - job: tests/empty.json tool: tests/symlink-legal.cwl @@ -3024,9 +2791,8 @@ "size": 27 "basename": "symlink.txt" "checksum": "sha1$cd28ec34f3f9425aca544b6332453708e8aaa82a" - id: 234 tags: [ command_line_tool ] - label: legal_symlink + id: legal_symlink - job: tests/empty.json tool: tests/inp_update_wf.cwl @@ -3035,8 +2801,7 @@ output: a: 4 b: 4 - id: 235 - label: modify_file_content + id: modify_file_content - job: tests/empty.json tool: tests/inpdir_update_wf.cwl @@ -3057,13 +2822,12 @@ "location": "blurb" } ] -} - id: 236 - label: modify_directory_content + } + id: modify_directory_content - doc: Test that OutputBinding.glob accepts Directories job: tests/empty.json - label: outputbinding_glob_directory + id: outputbinding_glob_directory tool: tests/glob_directory.cwl output: directories: @@ -3077,10 +2841,9 @@ class: "Directory" listing: [] tags: [ required, command_line_tool ] - id: 237 - doc: Test that array of input files can be staged to directory with entryname - label: stage_file_array + id: stage_file_array tool: tests/stage_file_array.cwl job: tests/stage_file_array.job.json output: @@ -3112,10 +2875,9 @@ } ] tags: [ command_line_tool, initial_work_dir, inline_javascript ] - id: 238 - doc: Test that array of input files can be staged to directory with basename - label: stage_file_array_basename + id: stage_file_array_basename tool: tests/stage_file_array_basename.cwl job: tests/stage_file_array.job.json output: @@ -3147,10 +2909,9 @@ } ] tags: [ command_line_tool, initial_work_dir, inline_javascript ] - id: 239 - doc: Test that if array of input files are staged to directory with basename and entryname, entryname overrides - label: stage_file_array_entryname_overrides + id: stage_file_array_entryname_overrides tool: tests/stage_file_array_basename_and_entryname.cwl job: tests/stage_file_array.job.json output: @@ -3182,7 +2943,6 @@ } ] tags: [ command_line_tool, initial_work_dir, inline_javascript ] - id: 240 - job: tests/empty.json output: @@ -3191,41 +2951,37 @@ basename: foo checksum: sha1$fa98d6085770a79e44853d575cd3ab40c0f1f4de tool: tests/runtime-paths-distinct.cwl - label: tmpdir_is_not_outdir + id: tmpdir_is_not_outdir doc: Test that runtime.tmpdir is not runtime.outdir tags: [ command_line_tool ] - id: 241 - job: tests/listing-job.yml tool: tests/listing_none1.cwl - label: listing_default_none + id: listing_default_none output: out: true doc: Test that default behavior is 'no_listing' if not specified tags: [ command_line_tool ] - id: 242 - job: tests/listing-job.yml tool: tests/listing_none2.cwl - label: listing_requirement_none + id: listing_requirement_none output: out: true doc: Test that 'listing' is not present when LoadListingRequirement is 'no_listing' tags: [ command_line_tool, load_listing ] - id: 243 - job: tests/listing-job.yml tool: tests/listing_none3.cwl - label: listing_loadListing_none + id: listing_loadListing_none output: out: true doc: Test that 'listing' is not present when loadListing on input parameter is 'no_listing' tags: [ command_line_tool ] - id: 244 - job: tests/listing-job.yml tool: tests/listing_shallow1.cwl - label: listing_requirement_shallow + id: listing_requirement_shallow output: out: true doc: > @@ -3233,11 +2989,10 @@ subdirectory object when LoadListingRequirement is 'shallow_listing' tags: [ command_line_tool, load_listing ] - id: 245 - job: tests/listing-job.yml tool: tests/listing_shallow2.cwl - label: listing_loadListing_shallow + id: listing_loadListing_shallow output: out: true doc: > @@ -3245,11 +3000,10 @@ subdirectory object when loadListing on input parameter loadListing is 'shallow_listing' tags: [ command_line_tool ] - id: 246 - job: tests/listing-job.yml tool: tests/listing_shallow3.cwl - label: listing_outputBinding_loadListing + id: listing_outputBinding_loadListing output: out: { "basename": "file2", @@ -3264,7 +3018,7 @@ - job: tests/listing-job.yml tool: tests/listing_deep1.cwl - label: listing_requirement_deep + id: listing_requirement_deep output: out: true doc: > @@ -3272,11 +3026,10 @@ subdirectory objects when LoadListingRequirement is 'deep_listing' tags: [ command_line_tool, load_listing ] - id: 247 - job: tests/listing-job.yml tool: tests/listing_deep2.cwl - label: listing_loadListing_deep + id: listing_loadListing_deep output: out: true doc: > @@ -3284,60 +3037,54 @@ subdirectory objects when input parameter loadListing is 'deep_listing' tags: [ command_line_tool ] - id: 248 - job: tests/echo-position-expr-job.yml tool: tests/echo-position-expr.cwl - label: inputBinding_position_expr + id: inputBinding_position_expr output: out: "🕺 1 singular sensation!\n" doc: > Test for expression in the InputBinding.position field; also test using emoji in CWL document and tool output tags: [ command_line_tool, required ] - id: 249 - job: tests/empty.json tool: tests/exitcode.cwl - label: outputEval_exitCode + id: outputEval_exitCode output: code: 7 doc: Can access exit code in outputEval tags: [ command_line_tool, required ] - id: 250 - tool: tests/echo-tool-packed.cwl job: tests/env-job.json output: {"out": "hello test env\n"} - label: any_input_param_graph_no_default + id: any_input_param_graph_no_default doc: Test use of $graph without specifying which process to run tags: [ required, command_line_tool ] - id: 251 - tool: tests/echo-tool-packed2.cwl job: tests/env-job.json output: {"out": "hello test env\n"} - label: any_input_param_graph_no_default_hashmain + id: any_input_param_graph_no_default_hashmain doc: > Test use of $graph without specifying which process to run, hash-prefixed "main" tags: [ required, command_line_tool ] - id: 252 - tool: tests/optional-numerical-output-0.cwl job: tests/empty.json output: {"out": 0} - label: optional_numerical_output_returns_0_not_null + id: optional_numerical_output_returns_0_not_null doc: | Test that optional number output is returned as 0, not null tags: [ inline_javascript, command_line_tool ] - id: 253 - job: tests/empty.json tool: tests/cores_float.cwl - label: cores_float + id: cores_float doc: Test float value for coresMin(Max) is rounded up in runtime.cores output: output: { @@ -3347,11 +3094,10 @@ "checksum": "sha1$7448d8798a4380162d4b56f9b452e2f6f9e24e7a" } tags: [ resource, command_line_tool ] - id: 255 - job: tests/empty.json tool: tests/storage_float.cwl - label: storage_float + id: storage_float doc: Test float value for ram/tmpdir/outdir Min(Max) is rounded up output: output: { @@ -3362,11 +3108,10 @@ "size": 12 } tags: [ resource, command_line_tool ] - id: 256 - job: tests/synth-file-job.yml tool: tests/synth-file.cwl - label: cat_synthetic_file + id: cat_synthetic_file doc: Test the generation of a synthetic file with inline contents. output: sequence: { @@ -3375,7 +3120,6 @@ "size": 7 } tags: [ required, command_line_tool ] - id: 257 - $import: tests/string-interpolation/test-index.yaml @@ -3387,7 +3131,7 @@ - job: tests/empty.json tool: tests/params_broken_null.cwl - label: params_broken_null + id: params_broken_null doc: Test parameter reference that refers to null.something should_fail: true tags: [ required, command_line_tool ] @@ -3397,7 +3141,7 @@ doc: Test paramer reference that refers to length of non-array input should_fail: true tags: [ required, command_line_tool ] - label: length_for_non_array + id: length_for_non_array - job: tests/length_non_array_input.yml tool: tests/params_input_length_non_array.cwl @@ -3407,7 +3151,7 @@ output1: 1 output2: 2 output3: 3 - label: user_defined_length_in_parameter_reference + id: user_defined_length_in_parameter_reference - tool: tests/cat4-from-dir.cwl job: tests/cat-from-dir-with-literal-file-in-subdir.yaml @@ -3416,11 +3160,11 @@ checksum: sha1$ef88e689559565999700d6fea7cf7ba306d04360 class: File size: 26 - label: directory_literal_with_literal_file_in_subdir_nostdin + id: directory_literal_with_literal_file_in_subdir_nostdin doc: Test non-stdin reference to literal File via a nested Directory literal tags: [ command_line_tool, required ] -- label: colon_in_paths +- id: colon_in_paths output: log: class: File @@ -3440,7 +3184,7 @@ doc: Confirm that colons are tolerated in input paths, string values, stdout shortcut, and output file & directory names tags: [ required, command_line_tool ] -- label: colon_in_output_path +- id: colon_in_output_path output: result: class: Directory @@ -3455,7 +3199,7 @@ doc: Confirm that colons are tolerated in output directory names tags: [ required, command_line_tool ] -- label: record_with_default +- id: record_with_default output: same_record: first: y @@ -3472,7 +3216,7 @@ doc: Confirm that records with defaults are accepted tags: [ required, command_line_tool ] -- label: record_outputeval +- id: record_outputeval output: references: genome_fa: @@ -3489,7 +3233,7 @@ doc: Use of outputEval on a record itself, not the fields of the record tags: [ inline_javascript, command_line_tool ] -- label: record_outputeval_nojs +- id: record_outputeval_nojs output: references: annotation_gtf: gencode.vM21.primary_assembly.annotation.gtf @@ -3502,7 +3246,7 @@ doc: Use of outputEval on a record itself, not the fields of the record (without javascript) tags: [ required, command_line_tool ] -- label: staging-basename +- id: staging-basename output: {} tool: tests/staging-basename/wf_ren.cwl doc: | @@ -3510,7 +3254,7 @@ the file using the new name. tags: [ workflow, inline_javascript, expression_tool ] -- label: runtime-outdir +- id: runtime-outdir output: { "stuff": { "class": "Directory", diff --git a/tests/conditionals/test-index.yaml b/tests/conditionals/test-index.yaml index d6dfa65e..7d3005bf 100644 --- a/tests/conditionals/test-index.yaml +++ b/tests/conditionals/test-index.yaml @@ -3,8 +3,7 @@ # or # cwltest --test test-index.yaml --tool toil-cwl-runner -- --enable-dev -- id: cond-1 - label: direct_optional_null_result +- id: direct_optional_null_result doc: Simplest conditional pattern (False) tool: cond-wf-001.cwl job: val.1.job.yaml @@ -12,8 +11,7 @@ out1: null tags: [ conditional, inline_javascript, workflow ] -- id: cond-2 - label: direct_optional_nonnull_result +- id: direct_optional_nonnull_result doc: Simplest conditional pattern (True) tool: cond-wf-001.cwl job: val.3.job.yaml @@ -21,16 +19,14 @@ out1: "foo 3" tags: [ conditional, inline_javascript, workflow ] -- id: cond-3 - label: direct_required +- id: direct_required tool: cond-wf-002.cwl job: val.1.job.yaml output: out1: null tags: [ conditional, inline_javascript, workflow ] -- id: cond-4 - label: pass_through_required_false_when +- id: pass_through_required_false_when doc: "Pass through pattern with pickValue: first_non_null; 'when' is false" tool: cond-wf-003.cwl job: val.1.job.yaml @@ -38,8 +34,7 @@ out1: "Direct" tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-5 - label: pass_through_required_true_when +- id: pass_through_required_true_when doc: "pass through pattern with pickvalue: first_non_null; 'when' is true" tool: cond-wf-003.cwl job: val.3.job.yaml @@ -47,8 +42,7 @@ out1: "foo 3" tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-6.0 - label: first_non_null_first_non_null +- id: first_non_null_first_non_null doc: "pickValue: first_non_null first item is non null" tool: cond-wf-003.1.cwl job: val.0.job.yaml @@ -56,16 +50,14 @@ out1: "foo 0" tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-6.1 - label: first_non_null_all_null +- id: first_non_null_all_null doc: "pickValue: first_non_null needs at least one non null" tool: cond-wf-003.1.cwl job: val.1.job.yaml should_fail: True tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-6.2 - label: first_non_null_second_non_null +- id: first_non_null_second_non_null doc: "pickValue: first_non_null second item is non null" tool: cond-wf-003.1.cwl job: val.3.job.yaml @@ -73,8 +65,7 @@ out1: "foo 3" tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-7 - label: pass_through_required_the_only_non_null +- id: pass_through_required_the_only_non_null doc: "pickvalue: the_only_non_null will pass, only for false condition" tool: cond-wf-004.cwl job: val.1.job.yaml @@ -82,24 +73,21 @@ out1: "Direct" tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-8 - label: pass_through_required_fail +- id: pass_through_required_fail doc: "pickValue: the_only_non_null will fail due to multiple non nulls" tool: cond-wf-004.cwl job: val.3.job.yaml should_fail: True tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-9 - label: all_non_null_multi_with_non_array_output +- id: all_non_null_multi_with_non_array_output doc: "pickValue: all_non_null will fail validation" tool: cond-wf-005.cwl job: val.3.job.yaml should_fail: True tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-10 - label: the_only_non_null_single_true +- id: the_only_non_null_single_true doc: "pickValue: the_only_non_null will pass for only one active node" tool: cond-wf-006.cwl job: val.1.job.yaml @@ -107,16 +95,14 @@ out1: "bar 1" tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-11 - label: the_only_non_null_multi_true +- id: the_only_non_null_multi_true doc: "pickValue: the_only_non_null will fail with two active nodes" tool: cond-wf-006.cwl job: val.3.job.yaml should_fail: True tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-12 - label: all_non_null_all_null +- id: all_non_null_all_null doc: "pickValue: all_non_null will produce a list, even if empty" tool: cond-wf-007.cwl job: val.0.job.yaml @@ -124,8 +110,7 @@ out1: [] tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-13 - label: all_non_null_one_non_null +- id: all_non_null_one_non_null doc: "pickValue: all_non_null will produce a list; even if single item list" tool: cond-wf-007.cwl job: val.1.job.yaml @@ -133,8 +118,7 @@ out1: ["bar 1"] tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-14 - label: all_non_null_multi_non_null +- id: all_non_null_multi_non_null doc: "pickValue: all_non_null will produce a list" tool: cond-wf-007.cwl job: val.3.job.yaml @@ -142,8 +126,7 @@ out1: ["foo 3", "bar 3"] tags: [ conditional, inline_javascript, multiple_input, workflow ] -- id: cond-15 - label: condifional_scatter_on_nonscattered_false +- id: condifional_scatter_on_nonscattered_false doc: "Simple scatter: conditional on a non scattered variable (False)" tool: cond-wf-009.cwl job: cond15.job.yaml @@ -151,8 +134,7 @@ out1: [] tags: [ conditional, inline_javascript, scatter, workflow ] -- id: cond-16 - label: condifional_scatter_on_nonscattered_true +- id: condifional_scatter_on_nonscattered_true doc: "Simple scatter: conditional on a non scattered variable (True)" tool: cond-wf-009.cwl job: cond16.job.yaml @@ -160,8 +142,7 @@ out1: ["foo 1", "foo 2", "foo 3", "foo 4", "foo 5", "foo 6"] tags: [ conditional, inline_javascript, scatter, workflow ] -- id: cond-17 - label: scatter_on_scattered_conditional +- id: scatter_on_scattered_conditional doc: "Simple scatter: Add conditional variable to scatter" tool: cond-wf-010.cwl job: val.6.list.job.yaml @@ -169,8 +150,7 @@ out1: ["foo 4", "foo 5", "foo 6"] tags: [ conditional, inline_javascript, scatter, workflow ] -- id: cond-18 - label: conditionals_nested_cross_scatter +- id: conditionals_nested_cross_scatter doc: "nested cross product scatter with condition on one dimension" tool: cond-wf-011.cwl job: cond18.job.yaml @@ -190,16 +170,14 @@ ] tags: [ conditional, inline_javascript, scatter, workflow ] -- id: cond-19 - label: conditionals_non_boolean_fail +- id: conditionals_non_boolean_fail doc: Non-boolean values from "when" should fail tool: cond-wf-012.cwl job: val.1.job.yaml should_fail: True tags: [ conditional, inline_javascript, workflow ] -- id: cond-20 - label: conditionals_multi_scatter +- id: conditionals_multi_scatter doc: "Scatter two steps, flatten result + pickValue" tool: cond-wf-013.cwl job: cond20.job.yaml @@ -209,8 +187,7 @@ "bar 1", "bar 3", "bar 5"] tags: [ conditional, inline_javascript, scatter, multiple, workflow ] -- id: cond-1_njs - label: direct_optional_null_result_nojs +- id: direct_optional_null_result_nojs doc: simplest conditional pattern (true), no javascript tool: cond-wf-001_nojs.cwl job: test-true.yml @@ -218,8 +195,7 @@ out1: "foo 23" tags: [ conditional, workflow ] -- id: cond-2_njs - label: direct_optional_nonnull_result_nojs +- id: direct_optional_nonnull_result_nojs doc: simplest conditional pattern (false), no javascript tool: cond-wf-001_nojs.cwl job: test-false.yml @@ -227,16 +203,14 @@ out1: null tags: [ conditional, workflow ] -- id: cond-3_nojs - label: direct_required_nojs +- id: direct_required_nojs tool: cond-wf-002_nojs.cwl job: val.1.job.yaml output: out1: null tags: [ conditional, workflow ] -- id: cond-4_nojs - label: pass_through_required_false_when_nojs +- id: pass_through_required_false_when_nojs doc: "Pass through pattern with pickValue: first_non_null; 'when' is false'; no javascript" tool: cond-wf-003_nojs.cwl job: test-false.yml @@ -244,8 +218,7 @@ out1: "Direct" tags: [ conditional, multiple_input, workflow ] -- id: cond-5_nojs - label: pass_through_required_true_when_nojs +- id: pass_through_required_true_when_nojs doc: "pass through pattern with pickvalue: first_non_null; 'when' is true'; no javascript" tool: cond-wf-003_nojs.cwl job: test-true.yml @@ -253,8 +226,7 @@ out1: "foo 23" tags: [ conditional, multiple_input, workflow ] -- id: cond-6.0_nojs - label: first_non_null_first_non_null_nojs +- id: first_non_null_first_non_null_nojs doc: "pickValue: first_non_null first item is non null; no javascript" tool: cond-wf-003.1_nojs.cwl job: first-true.yml @@ -262,16 +234,14 @@ out1: "foo 23" tags: [ conditional, multiple_input, workflow ] -- id: cond-6.1_nojs - label: first_non_null_all_null_nojs +- id: first_non_null_all_null_nojs doc: "pickValue: first_non_null needs at least one non null; no javascript" tool: cond-wf-003.1_nojs.cwl job: both-false.yml should_fail: True tags: [ conditional, multiple_input, workflow ] -- id: cond-6.2_nojs - label: first_non_null_second_non_null_nojs +- id: first_non_null_second_non_null_nojs doc: "pickValue: first_non_null second item is non null; no javascript" tool: cond-wf-003.1_nojs.cwl job: second-true.yml @@ -279,8 +249,7 @@ out1: "foo 23" tags: [ conditional, multiple_input, workflow ] -- id: cond-7_nojs - label: pass_through_required_the_only_non_null_nojs +- id: pass_through_required_the_only_non_null_nojs doc: "pickvalue: the_only_non_null will pass, only for false condition; no javascript" tool: cond-wf-004_nojs.cwl job: test-false.yml @@ -288,24 +257,21 @@ out1: "Direct" tags: [ conditional, multiple_input, workflow ] -- id: cond-8_nojs - label: pass_through_required_fail_nojs +- id: pass_through_required_fail_nojs doc: "pickValue: the_only_non_null will fail due to multiple non nulls; no javascript" tool: cond-wf-004_nojs.cwl job: test-true.yml should_fail: True tags: [ conditional, multiple_input, workflow ] -- id: cond-9_nojs - label: all_non_null_multi_with_non_array_output_nojs +- id: all_non_null_multi_with_non_array_output_nojs doc: "pickValue: all_non_null will fail validation; no javascript" tool: cond-wf-005_nojs.cwl job: test-true.yml should_fail: True tags: [ conditional, multiple_input, workflow ] -- id: cond-10_nojs - label: the_only_non_null_single_true_nojs +- id: the_only_non_null_single_true_nojs doc: "pickValue: the_only_non_null will pass for only one active node; no javascript" tool: cond-wf-006_nojs.cwl job: second-true.yml @@ -313,16 +279,14 @@ out1: "bar 23" tags: [ conditional, multiple_input, workflow ] -- id: cond-11_nojs - label: the_only_non_null_multi_true_nojs +- id: the_only_non_null_multi_true_nojs doc: "pickValue: the_only_non_null will fail with two active nodes; no javascript" tool: cond-wf-006_nojs.cwl job: both-true.yml should_fail: True tags: [ conditional, multiple_input, workflow ] -- id: cond-12_nojs - label: all_non_null_all_null_nojs +- id: all_non_null_all_null_nojs doc: "pickValue: all_non_null will produce a list, even if empty; no javascript" tool: cond-wf-007_nojs.cwl job: both-false.yml @@ -330,8 +294,7 @@ out1: [] tags: [ conditional, multiple_input, workflow ] -- id: cond-13_nojs - label: all_non_null_one_non_null_nojs +- id: all_non_null_one_non_null_nojs doc: "pickValue: all_non_null will produce a list; even if single item list; no javascript" tool: cond-wf-007_nojs.cwl job: second-true.yml @@ -339,8 +302,7 @@ out1: ["bar 23"] tags: [ conditional, multiple_input, workflow ] -- id: cond-14_nojs - label: all_non_null_multi_non_null_nojs +- id: all_non_null_multi_non_null_nojs doc: "pickValue: all_non_null will produce a list; no javascript" tool: cond-wf-007_nojs.cwl job: both-true.yml @@ -348,8 +310,7 @@ out1: ["foo 23", "bar 23"] tags: [ conditional, multiple_input, workflow ] -- id: cond-15_nojs - label: condifional_scatter_on_nonscattered_false_nojs +- id: condifional_scatter_on_nonscattered_false_nojs doc: "Simple scatter: conditional on a non scattered variable (False); no javascript" tool: cond-wf-009_nojs.cwl job: test-false.yml @@ -357,8 +318,7 @@ out1: [] tags: [ conditional, scatter, workflow ] -- id: cond-16_nojs - label: condifional_scatter_on_nonscattered_true_nojs +- id: condifional_scatter_on_nonscattered_true_nojs doc: "Simple scatter: conditional on a non scattered variable (True); no javascript" tool: cond-wf-009_nojs.cwl job: test-true.yml @@ -366,8 +326,7 @@ out1: ["foo 1", "foo 2", "foo 3", "foo 4", "foo 5", "foo 6"] tags: [ conditional, scatter, workflow ] -- id: cond-17_nojs - label: scatter_on_scattered_conditional_nojs +- id: scatter_on_scattered_conditional_nojs doc: "Simple scatter: Add conditional variable to scatter; no javascript" tool: cond-wf-010_nojs.cwl job: ../empty.json @@ -375,8 +334,7 @@ out1: ["foo 4", "foo 5", "foo 6"] tags: [ conditional, scatter, workflow ] -- id: cond-18_nojs - label: conditionals_nested_cross_scatter_nojs +- id: conditionals_nested_cross_scatter_nojs doc: "nested cross product scatter with condition on one dimension; no javascript" tool: cond-wf-011_nojs.cwl job: ../empty.json @@ -396,16 +354,14 @@ ] tags: [ conditional, scatter, workflow ] -- id: cond-19_nojs - label: conditionals_non_boolean_fail_nojs +- id: conditionals_non_boolean_fail_nojs doc: Non-boolean values from "when" should fail; no javascript tool: cond-wf-012_nojs.cwl job: ../empty.json should_fail: True tags: [ conditional, workflow ] -- id: cond-20_nojs - label: conditionals_multi_scatter_nojs +- id: conditionals_multi_scatter_nojs doc: "Scatter two steps, flatten result + pickValue; no javascript" tool: cond-wf-013_nojs.cwl job: ../empty.json diff --git a/tests/iwd/test-index.yaml b/tests/iwd/test-index.yaml index 1e1d6e09..f544ce89 100644 --- a/tests/iwd/test-index.yaml +++ b/tests/iwd/test-index.yaml @@ -1,6 +1,5 @@ - job: null - id: iwd-1 - label: iwd-nolimit + id: iwd-nolimit tool: iwd-nolimit.cwl output: "filelist": { @@ -14,8 +13,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: null - id: iwd-2 - label: iwd-jsondump1 + id: iwd-jsondump1 tool: iwd-jsondump1.cwl output: "filelist": { @@ -29,8 +27,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: null - id: iwd-3 - label: iwd-jsondump1-nl + id: iwd-jsondump1-nl tool: iwd-jsondump1-nl.cwl output: "filelist": { @@ -44,8 +41,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: null - id: iwd-4 - label: iwd-jsondump2 + id: iwd-jsondump2 tool: iwd-jsondump2.cwl output: "filelist": { @@ -59,8 +55,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: null - id: iwd-5 - label: iwd-jsondump2-nl + id: iwd-jsondump2-nl tool: iwd-jsondump2-nl.cwl output: "filelist": { @@ -74,8 +69,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: null - id: iwd-6 - label: iwd-jsondump3 + id: iwd-jsondump3 tool: iwd-jsondump3.cwl output: "filelist": { @@ -89,8 +83,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: null - id: iwd-7 - label: iwd-jsondump3-nl + id: iwd-jsondump3-nl tool: iwd-jsondump3-nl.cwl output: "filelist": { @@ -104,8 +97,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: ../loadContents/input.yml - id: iwd-8 - label: iwd-passthrough1 + id: iwd-passthrough1 tool: iwd-passthrough1.cwl output: "filelist": { @@ -119,8 +111,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: ../loadContents/input.yml - id: iwd-9 - label: iwd-passthrough2 + id: iwd-passthrough2 tool: iwd-passthrough2.cwl output: "out": { @@ -134,8 +125,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: ../loadContents/input.yml - id: iwd-10 - label: iwd-passthrough3 + id: iwd-passthrough3 tool: iwd-passthrough3.cwl output: "filelist": { @@ -149,8 +139,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: ../loadContents/input.yml - id: iwd-11 - label: iwd-passthrough4 + id: iwd-passthrough4 tool: iwd-passthrough4.cwl output: "filelist": { @@ -164,8 +153,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: null - id: iwd-12 - label: iwd-fileobjs1 + id: iwd-fileobjs1 tool: iwd-fileobjs1.cwl output: "filelist": { @@ -214,8 +202,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: null - id: iwd-13 - label: iwd-fileobjs2 + id: iwd-fileobjs2 tool: iwd-fileobjs2.cwl output: "filelist": { @@ -264,8 +251,7 @@ tags: [ initial_work_dir, command_line_tool ] - job: ../loadContents/input.yml - id: iwd-14 - label: iwd-container-entryname1 + id: iwd-container-entryname1 tool: iwd-container-entryname1.cwl output: "head": { @@ -279,32 +265,28 @@ tags: [ initial_work_dir, command_line_tool ] - job: ../loadContents/input.yml - id: iwd-15 - label: iwd-container-entryname2 + id: iwd-container-entryname2 tool: iwd-container-entryname2.cwl should_fail: true doc: "Test input mount locations when no container (should fail)" tags: [ initial_work_dir, command_line_tool ] - job: ../loadContents/input.yml - id: iwd-16 - label: iwd-container-entryname3 + id: iwd-container-entryname3 tool: iwd-container-entryname3.cwl should_fail: true doc: "Test input mount locations when container is a hint (should fail)" tags: [ initial_work_dir, command_line_tool ] - job: ../loadContents/input.yml - id: iwd-17 - label: iwd-container-entryname4 + id: iwd-container-entryname4 tool: iwd-container-entryname4.cwl should_fail: true doc: "Must fail if entryname starts with ../" tags: [ initial_work_dir, command_line_tool ] - job: ../loadContents/input.yml - id: iwd-18 - label: iwdr_dir_literal_real_file + id: iwdr_dir_literal_real_file tool: iwdr_dir_literal_real_file.cwl doc: "Test directory literal containing a real file" output: diff --git a/tests/loadContents/test-index.yaml b/tests/loadContents/test-index.yaml index 30b6a76b..db06f883 100644 --- a/tests/loadContents/test-index.yaml +++ b/tests/loadContents/test-index.yaml @@ -1,15 +1,13 @@ - job: null tool: cwloutput-nolimit.cwl - id: cwloutput-nolimit - label: cwloutput_nolimit + id: cwloutput_nolimit output: {$import: compare-output.json} doc: "Test that loading from cwl.output.json isn't limited to 64k" tags: [ command_line_tool ] - job: input.yml tool: loadContents-limit.cwl - id: loadContents-limit - label: loadcontents_limit + id: loadcontents_limit output: {} doc: "Test that loadContents on a file larger than 64k fails" should_fail: true diff --git a/tests/mixed-versions/test-index.yaml b/tests/mixed-versions/test-index.yaml index f8a630e2..13a2bdfb 100644 --- a/tests/mixed-versions/test-index.yaml +++ b/tests/mixed-versions/test-index.yaml @@ -6,28 +6,28 @@ - job: null tool: wf-v10.cwl - label: mixed_version_v10_wf + id: mixed_version_v10_wf output: {} doc: test v1.0 workflow document that runs other versions tags: [ workflow ] - job: null tool: wf-v11.cwl - label: mixed_version_v11_wf + id: mixed_version_v11_wf output: {} doc: test v1.1 workflow document that runs other versions tags: [ workflow ] - job: null tool: wf-v12.cwl - label: mixed_version_v12_wf + id: mixed_version_v12_wf output: {} doc: test v1.2 workflow document that runs other versions tags: [ workflow ] - job: null tool: invalid-tool-v10.cwl - label: invalid_syntax_v10_uses_v12_tool + id: invalid_syntax_v10_uses_v12_tool doc: test tool with v1.2 syntax marked as v1.0 (should fail) should_fail: true tags: [ command_line_tool ] @@ -35,27 +35,27 @@ - job: null tool: invalid-tool-v11.cwl doc: test tool with v1.2 syntax marked as v1.1 (should fail) - label: invalid_syntax_v11_uses_v12_tool + id: invalid_syntax_v11_uses_v12_tool should_fail: true tags: [ command_line_tool ] - job: null tool: invalid-wf-v10.cwl - label: invalid_syntax_v10_uses_v12_workflow + id: invalid_syntax_v10_uses_v12_workflow doc: test wf with v1.2 syntax marked as v1.0 (should fail) should_fail: true tags: [ workflow ] - job: null tool: invalid-wf-v11.cwl - label: invalid_syntax_v11_uses_v12_workflow + id: invalid_syntax_v11_uses_v12_workflow doc: test wf with v1.2 syntax marked as v1.1 (should fail) should_fail: true tags: [ workflow ] - job: null tool: invalid-wf-v12.cwl - label: invalid_syntax_mixed_v12_workflow + id: invalid_syntax_mixed_v12_workflow doc: | test 1.2 wf that includes tools that are marked as v1.0 and v1.1 that contain v1.2 features (should fail) diff --git a/tests/secondaryfiles/test-index.yaml b/tests/secondaryfiles/test-index.yaml index 6ecec1d6..54fb40ef 100644 --- a/tests/secondaryfiles/test-index.yaml +++ b/tests/secondaryfiles/test-index.yaml @@ -1,7 +1,7 @@ - job: rename-inputs.yml tool: rename-inputs.cwl doc: Confirm CommandInputParameter expression can receive a File object - label: command_input_file_expression + id: command_input_file_expression output: output_file: class: File @@ -12,7 +12,7 @@ - tool: rename-outputs.cwl doc: Confirm CommandOutputParameter expression can receive a File object - label: command_output_file_expression + id: command_output_file_expression output: output_file: class: File diff --git a/tests/string-interpolation/test-index.yaml b/tests/string-interpolation/test-index.yaml index 3ebe7330..cc6e2b36 100644 --- a/tests/string-interpolation/test-index.yaml +++ b/tests/string-interpolation/test-index.yaml @@ -1,7 +1,6 @@ # Run with cwltest --test test-index.yaml --tool toil-cwl-runner -- --enable-dev -- id: iwdr-1 - label: continuation +- id: continuation doc: Line continuations in bash scripts should behave correctly tool: bash-line-continuation.cwl output: @@ -13,8 +12,7 @@ } tags: [ inline_javascript, command_line_tool ] -- id: iwdr-2 - label: continuation_expression +- id: continuation_expression doc: Line continuations in bash scripts should always behave correctly tool: bash-line-continuation-with-expression.cwl output: @@ -26,8 +24,7 @@ } tags: [ inline_javascript, command_line_tool ] -- id: iwdr-3 - label: quoting_multiple_backslashes +- id: quoting_multiple_backslashes doc: Test quoting multiple backslashes tool: bash-dollar-quote.cwl output: @@ -39,8 +36,7 @@ } tags: [ inline_javascript, command_line_tool ] -- id: iwdr-4 - label: escaping_expression_no_extra_quotes +- id: escaping_expression_no_extra_quotes doc: Strings returned from JS expressions should not have extra quotes around them tool: js-quote.cwl output: From 350f0ba59fa52ef129e10b827c605e58d2b18d80 Mon Sep 17 00:00:00 2001 From: Iacopo Colonnelli Date: Thu, 23 Jun 2022 19:02:18 +0200 Subject: [PATCH 055/127] Added nested scatter conformance tests (#155) --- conformance_tests.yaml | 1 + .../scatter/dotproduct-dotproduct-scatter.cwl | 86 +++++ tests/scatter/dotproduct-simple-scatter.cwl | 79 +++++ ...crossproduct-flat-crossproduct-scatter.cwl | 86 +++++ .../flat-crossproduct-simple-scatter.cwl | 79 +++++ ...ossproduct-nested-crossproduct-scatter.cwl | 94 ++++++ .../nested-crossproduct-simple-scatter.cwl | 81 +++++ tests/scatter/scatter-job.yml | 4 + tests/scatter/scatter2-job.yml | 5 + tests/scatter/scatter3-job.yml | 5 + tests/scatter/scatter4-job.yml | 6 + tests/scatter/simple-dotproduct-scatter.cwl | 79 +++++ .../simple-flat-crossproduct-scatter.cwl | 79 +++++ .../simple-nested-crossproduct-scatter.cwl | 85 +++++ tests/scatter/simple-simple-scatter.cwl | 72 +++++ tests/scatter/test-index.yaml | 303 ++++++++++++++++++ 16 files changed, 1144 insertions(+) create mode 100644 tests/scatter/dotproduct-dotproduct-scatter.cwl create mode 100644 tests/scatter/dotproduct-simple-scatter.cwl create mode 100644 tests/scatter/flat-crossproduct-flat-crossproduct-scatter.cwl create mode 100644 tests/scatter/flat-crossproduct-simple-scatter.cwl create mode 100644 tests/scatter/nested-crossproduct-nested-crossproduct-scatter.cwl create mode 100644 tests/scatter/nested-crossproduct-simple-scatter.cwl create mode 100644 tests/scatter/scatter-job.yml create mode 100644 tests/scatter/scatter2-job.yml create mode 100644 tests/scatter/scatter3-job.yml create mode 100644 tests/scatter/scatter4-job.yml create mode 100644 tests/scatter/simple-dotproduct-scatter.cwl create mode 100644 tests/scatter/simple-flat-crossproduct-scatter.cwl create mode 100644 tests/scatter/simple-nested-crossproduct-scatter.cwl create mode 100644 tests/scatter/simple-simple-scatter.cwl create mode 100644 tests/scatter/test-index.yaml diff --git a/conformance_tests.yaml b/conformance_tests.yaml index a04751bb..4c26f77e 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3128,6 +3128,7 @@ - $import: tests/mixed-versions/test-index.yaml - $import: tests/loadContents/test-index.yaml - $import: tests/iwd/test-index.yaml +- $import: tests/scatter/test-index.yaml - job: tests/empty.json tool: tests/params_broken_null.cwl diff --git a/tests/scatter/dotproduct-dotproduct-scatter.cwl b/tests/scatter/dotproduct-dotproduct-scatter.cwl new file mode 100644 index 00000000..3ed1a2c6 --- /dev/null +++ b/tests/scatter/dotproduct-dotproduct-scatter.cwl @@ -0,0 +1,86 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +requirements: + InlineJavascriptRequirement: {} + ScatterFeatureRequirement: {} + SubworkflowFeatureRequirement: {} + +inputs: + letters: string[] + letters2: string[] + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + +outputs: + result: + type: + type: array + items: + type: array + items: string + outputSource: scatterletters/alphanum + +steps: + scatterletters: + run: + class: Workflow + inputs: + letter: string + letter2: string + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + outputs: + alphanum: + type: string[] + outputSource: scatternumbers/alphanum + steps: + scatternumbers: + run: + class: ExpressionTool + inputs: + letter: string + letter2: string + number: int + number2: int + start_line: string + end_line: string + outputs: + alphanum: + type: string + expression: > + ${ + return { + 'alphanum': (inputs.start_line + + inputs.number + + inputs.number2 + + inputs.letter + + inputs.letter2 + + inputs.end_line) + }; + } + in: + letter: letter + letter2: letter2 + number: numbers + number2: numbers2 + start_line: start_line + end_line: end_line + scatter: [number, number2] + scatterMethod: dotproduct + out: [alphanum] + in: + letter: letters + letter2: letters2 + numbers: numbers + numbers2: numbers2 + start_line: start_line + end_line: end_line + scatter: [letter, letter2] + scatterMethod: dotproduct + out: [alphanum] diff --git a/tests/scatter/dotproduct-simple-scatter.cwl b/tests/scatter/dotproduct-simple-scatter.cwl new file mode 100644 index 00000000..a6a40044 --- /dev/null +++ b/tests/scatter/dotproduct-simple-scatter.cwl @@ -0,0 +1,79 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +requirements: + InlineJavascriptRequirement: {} + ScatterFeatureRequirement: {} + SubworkflowFeatureRequirement: {} + +inputs: + letters: string[] + letters2: string[] + numbers: int[] + start_line: string + end_line: string + +outputs: + result: + type: + type: array + items: + type: array + items: string + outputSource: scatterletters/alphanum + +steps: + scatterletters: + run: + class: Workflow + inputs: + letter: string + letter2: string + numbers: int[] + start_line: string + end_line: string + outputs: + alphanum: + type: string[] + outputSource: scatternumbers/alphanum + steps: + scatternumbers: + run: + class: ExpressionTool + inputs: + letter: string + letter2: string + number: int + start_line: string + end_line: string + outputs: + alphanum: + type: string + expression: > + ${ + return { + 'alphanum': (inputs.start_line + + inputs.number + + inputs.letter + + inputs.letter2 + + inputs.end_line) + }; + } + in: + letter: letter + letter2: letter2 + number: numbers + start_line: start_line + end_line: end_line + scatter: number + out: [alphanum] + in: + letter: letters + letter2: letters2 + numbers: numbers + start_line: start_line + end_line: end_line + scatter: [letter, letter2] + scatterMethod: dotproduct + out: [alphanum] diff --git a/tests/scatter/flat-crossproduct-flat-crossproduct-scatter.cwl b/tests/scatter/flat-crossproduct-flat-crossproduct-scatter.cwl new file mode 100644 index 00000000..fc477c61 --- /dev/null +++ b/tests/scatter/flat-crossproduct-flat-crossproduct-scatter.cwl @@ -0,0 +1,86 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +requirements: + InlineJavascriptRequirement: {} + ScatterFeatureRequirement: {} + SubworkflowFeatureRequirement: {} + +inputs: + letters: string[] + letters2: string[] + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + +outputs: + result: + type: + type: array + items: + type: array + items: string + outputSource: scatterletters/alphanum + +steps: + scatterletters: + run: + class: Workflow + inputs: + letter: string + letter2: string + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + outputs: + alphanum: + type: string[] + outputSource: scatternumbers/alphanum + steps: + scatternumbers: + run: + class: ExpressionTool + inputs: + letter: string + letter2: string + number: int + number2: int + start_line: string + end_line: string + outputs: + alphanum: + type: string + expression: > + ${ + return { + 'alphanum': (inputs.start_line + + inputs.number + + inputs.number2 + + inputs.letter + + inputs.letter2 + + inputs.end_line) + }; + } + in: + letter: letter + letter2: letter2 + number: numbers + number2: numbers2 + start_line: start_line + end_line: end_line + scatter: [number, number2] + scatterMethod: flat_crossproduct + out: [alphanum] + in: + letter: letters + letter2: letters2 + numbers: numbers + numbers2: numbers2 + start_line: start_line + end_line: end_line + scatter: [letter, letter2] + scatterMethod: flat_crossproduct + out: [alphanum] diff --git a/tests/scatter/flat-crossproduct-simple-scatter.cwl b/tests/scatter/flat-crossproduct-simple-scatter.cwl new file mode 100644 index 00000000..b604f5c5 --- /dev/null +++ b/tests/scatter/flat-crossproduct-simple-scatter.cwl @@ -0,0 +1,79 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +requirements: + InlineJavascriptRequirement: {} + ScatterFeatureRequirement: {} + SubworkflowFeatureRequirement: {} + +inputs: + letters: string[] + letters2: string[] + numbers: int[] + start_line: string + end_line: string + +outputs: + result: + type: + type: array + items: + type: array + items: string + outputSource: scatterletters/alphanum + +steps: + scatterletters: + run: + class: Workflow + inputs: + letter: string + letter2: string + numbers: int[] + start_line: string + end_line: string + outputs: + alphanum: + type: string[] + outputSource: scatternumbers/alphanum + steps: + scatternumbers: + run: + class: ExpressionTool + inputs: + letter: string + letter2: string + number: int + start_line: string + end_line: string + outputs: + alphanum: + type: string + expression: > + ${ + return { + 'alphanum': (inputs.start_line + + inputs.number + + inputs.letter + + inputs.letter2 + + inputs.end_line) + }; + } + in: + letter: letter + letter2: letter2 + number: numbers + start_line: start_line + end_line: end_line + scatter: number + out: [alphanum] + in: + letter: letters + letter2: letters2 + numbers: numbers + start_line: start_line + end_line: end_line + scatter: [letter, letter2] + scatterMethod: flat_crossproduct + out: [alphanum] diff --git a/tests/scatter/nested-crossproduct-nested-crossproduct-scatter.cwl b/tests/scatter/nested-crossproduct-nested-crossproduct-scatter.cwl new file mode 100644 index 00000000..0ec2298e --- /dev/null +++ b/tests/scatter/nested-crossproduct-nested-crossproduct-scatter.cwl @@ -0,0 +1,94 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +requirements: + InlineJavascriptRequirement: {} + ScatterFeatureRequirement: {} + SubworkflowFeatureRequirement: {} + +inputs: + letters: string[] + letters2: string[] + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + +outputs: + result: + type: + type: array + items: + type: array + items: + type: array + items: + type: array + items: string + outputSource: scatterletters/alphanum + +steps: + scatterletters: + run: + class: Workflow + inputs: + letter: string + letter2: string + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + outputs: + alphanum: + type: + type: array + items: + type: array + items: string + outputSource: scatternumbers/alphanum + steps: + scatternumbers: + run: + class: ExpressionTool + inputs: + letter: string + letter2: string + number: int + number2: int + start_line: string + end_line: string + outputs: + alphanum: + type: string + expression: > + ${ + return { + 'alphanum': (inputs.start_line + + inputs.number + + inputs.number2 + + inputs.letter + + inputs.letter2 + + inputs.end_line) + }; + } + in: + letter: letter + letter2: letter2 + number: numbers + number2: numbers2 + start_line: start_line + end_line: end_line + scatter: [number, number2] + scatterMethod: nested_crossproduct + out: [alphanum] + in: + letter: letters + letter2: letters2 + numbers: numbers + numbers2: numbers2 + start_line: start_line + end_line: end_line + scatter: [letter, letter2] + scatterMethod: nested_crossproduct + out: [alphanum] diff --git a/tests/scatter/nested-crossproduct-simple-scatter.cwl b/tests/scatter/nested-crossproduct-simple-scatter.cwl new file mode 100644 index 00000000..e719c879 --- /dev/null +++ b/tests/scatter/nested-crossproduct-simple-scatter.cwl @@ -0,0 +1,81 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +requirements: + InlineJavascriptRequirement: {} + ScatterFeatureRequirement: {} + SubworkflowFeatureRequirement: {} + +inputs: + letters: string[] + letters2: string[] + numbers: int[] + start_line: string + end_line: string + +outputs: + result: + type: + type: array + items: + type: array + items: + type: array + items: string + outputSource: scatterletters/alphanum + +steps: + scatterletters: + run: + class: Workflow + inputs: + letter: string + letter2: string + numbers: int[] + start_line: string + end_line: string + outputs: + alphanum: + type: string[] + outputSource: scatternumbers/alphanum + steps: + scatternumbers: + run: + class: ExpressionTool + inputs: + letter: string + letter2: string + number: int + start_line: string + end_line: string + outputs: + alphanum: + type: string + expression: > + ${ + return { + 'alphanum': (inputs.start_line + + inputs.number + + inputs.letter + + inputs.letter2 + + inputs.end_line) + }; + } + in: + letter: letter + letter2: letter2 + number: numbers + start_line: start_line + end_line: end_line + scatter: number + out: [alphanum] + in: + letter: letters + letter2: letters2 + numbers: numbers + start_line: start_line + end_line: end_line + scatter: [letter, letter2] + scatterMethod: nested_crossproduct + out: [alphanum] diff --git a/tests/scatter/scatter-job.yml b/tests/scatter/scatter-job.yml new file mode 100644 index 00000000..a3e4e213 --- /dev/null +++ b/tests/scatter/scatter-job.yml @@ -0,0 +1,4 @@ +letters: ['a', 'b', 'c', 'd'] +numbers: [1, 2, 3, 4] +start_line: '^' +end_line: '$' diff --git a/tests/scatter/scatter2-job.yml b/tests/scatter/scatter2-job.yml new file mode 100644 index 00000000..8de67fce --- /dev/null +++ b/tests/scatter/scatter2-job.yml @@ -0,0 +1,5 @@ +letters: ['a', 'b', 'c', 'd'] +letters2: ['w', 'x', 'y', 'z'] +numbers: [1, 2, 3, 4] +start_line: '^' +end_line: '$' diff --git a/tests/scatter/scatter3-job.yml b/tests/scatter/scatter3-job.yml new file mode 100644 index 00000000..ad837dbb --- /dev/null +++ b/tests/scatter/scatter3-job.yml @@ -0,0 +1,5 @@ +letters: ['a', 'b', 'c', 'd'] +numbers: [1, 2, 3, 4] +numbers2: [5, 6, 7, 8] +start_line: '^' +end_line: '$' diff --git a/tests/scatter/scatter4-job.yml b/tests/scatter/scatter4-job.yml new file mode 100644 index 00000000..3ffbf290 --- /dev/null +++ b/tests/scatter/scatter4-job.yml @@ -0,0 +1,6 @@ +letters: ['a', 'b', 'c', 'd'] +letters2: ['w', 'x', 'y', 'z'] +numbers: [1, 2, 3, 4] +numbers2: [5, 6, 7, 8] +start_line: '^' +end_line: '$' diff --git a/tests/scatter/simple-dotproduct-scatter.cwl b/tests/scatter/simple-dotproduct-scatter.cwl new file mode 100644 index 00000000..2b3f4f24 --- /dev/null +++ b/tests/scatter/simple-dotproduct-scatter.cwl @@ -0,0 +1,79 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +requirements: + InlineJavascriptRequirement: {} + ScatterFeatureRequirement: {} + SubworkflowFeatureRequirement: {} + +inputs: + letters: string[] + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + +outputs: + result: + type: + type: array + items: + type: array + items: string + outputSource: scatterletters/alphanum + +steps: + scatterletters: + run: + class: Workflow + inputs: + letter: string + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + outputs: + alphanum: + type: string[] + outputSource: scatternumbers/alphanum + steps: + scatternumbers: + run: + class: ExpressionTool + inputs: + letter: string + number: int + number2: int + start_line: string + end_line: string + outputs: + alphanum: + type: string + expression: > + ${ + return { + 'alphanum': (inputs.start_line + + inputs.number + + inputs.number2 + + inputs.letter + + inputs.end_line) + }; + } + in: + letter: letter + number: numbers + number2: numbers2 + start_line: start_line + end_line: end_line + scatter: [number, number2] + scatterMethod: dotproduct + out: [alphanum] + in: + letter: letters + numbers: numbers + numbers2: numbers2 + start_line: start_line + end_line: end_line + scatter: letter + out: [alphanum] diff --git a/tests/scatter/simple-flat-crossproduct-scatter.cwl b/tests/scatter/simple-flat-crossproduct-scatter.cwl new file mode 100644 index 00000000..1066a1f4 --- /dev/null +++ b/tests/scatter/simple-flat-crossproduct-scatter.cwl @@ -0,0 +1,79 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +requirements: + InlineJavascriptRequirement: {} + ScatterFeatureRequirement: {} + SubworkflowFeatureRequirement: {} + +inputs: + letters: string[] + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + +outputs: + result: + type: + type: array + items: + type: array + items: string + outputSource: scatterletters/alphanum + +steps: + scatterletters: + run: + class: Workflow + inputs: + letter: string + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + outputs: + alphanum: + type: string[] + outputSource: scatternumbers/alphanum + steps: + scatternumbers: + run: + class: ExpressionTool + inputs: + letter: string + number: int + number2: int + start_line: string + end_line: string + outputs: + alphanum: + type: string + expression: > + ${ + return { + 'alphanum': (inputs.start_line + + inputs.number + + inputs.number2 + + inputs.letter + + inputs.end_line) + }; + } + in: + letter: letter + number: numbers + number2: numbers2 + start_line: start_line + end_line: end_line + scatter: [number, number2] + scatterMethod: flat_crossproduct + out: [alphanum] + in: + letter: letters + numbers: numbers + numbers2: numbers2 + start_line: start_line + end_line: end_line + scatter: letter + out: [alphanum] diff --git a/tests/scatter/simple-nested-crossproduct-scatter.cwl b/tests/scatter/simple-nested-crossproduct-scatter.cwl new file mode 100644 index 00000000..5c6343de --- /dev/null +++ b/tests/scatter/simple-nested-crossproduct-scatter.cwl @@ -0,0 +1,85 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +requirements: + InlineJavascriptRequirement: {} + ScatterFeatureRequirement: {} + SubworkflowFeatureRequirement: {} + +inputs: + letters: string[] + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + +outputs: + result: + type: + type: array + items: + type: array + items: + type: array + items: string + outputSource: scatterletters/alphanum + +steps: + scatterletters: + run: + class: Workflow + inputs: + letter: string + numbers: int[] + numbers2: int[] + start_line: string + end_line: string + outputs: + alphanum: + type: + type: array + items: + type: array + items: string + outputSource: scatternumbers/alphanum + steps: + scatternumbers: + run: + class: ExpressionTool + inputs: + letter: string + number: int + number2: int + start_line: string + end_line: string + outputs: + alphanum: + type: string + expression: > + ${ + return { + 'alphanum': (inputs.start_line + + inputs.number + + inputs.number2 + + inputs.letter + + inputs.end_line) + }; + } + in: + letter: letter + number: numbers + number2: numbers2 + start_line: start_line + end_line: end_line + scatter: [number, number2] + scatterMethod: nested_crossproduct + out: [alphanum] + in: + letter: letters + numbers: numbers + numbers2: numbers2 + start_line: start_line + end_line: end_line + scatter: letter + out: [alphanum] diff --git a/tests/scatter/simple-simple-scatter.cwl b/tests/scatter/simple-simple-scatter.cwl new file mode 100644 index 00000000..1962b241 --- /dev/null +++ b/tests/scatter/simple-simple-scatter.cwl @@ -0,0 +1,72 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: Workflow + +requirements: + InlineJavascriptRequirement: {} + ScatterFeatureRequirement: {} + SubworkflowFeatureRequirement: {} + +inputs: + letters: string[] + numbers: int[] + start_line: string + end_line: string + +outputs: + result: + type: + type: array + items: + type: array + items: string + outputSource: scatterletters/alphanum + +steps: + scatterletters: + run: + class: Workflow + inputs: + letter: string + numbers: int[] + start_line: string + end_line: string + outputs: + alphanum: + type: string[] + outputSource: scatternumbers/alphanum + steps: + scatternumbers: + run: + class: ExpressionTool + inputs: + letter: string + number: int + start_line: string + end_line: string + outputs: + alphanum: + type: string + expression: > + ${ + return { + 'alphanum': (inputs.start_line + + inputs.number + + inputs.letter + + inputs.end_line) + }; + } + in: + letter: letter + number: numbers + start_line: start_line + end_line: end_line + scatter: number + out: [alphanum] + in: + letter: letters + numbers: numbers + start_line: start_line + end_line: end_line + scatter: letter + out: [alphanum] diff --git a/tests/scatter/test-index.yaml b/tests/scatter/test-index.yaml new file mode 100644 index 00000000..31a9a0af --- /dev/null +++ b/tests/scatter/test-index.yaml @@ -0,0 +1,303 @@ +- job: scatter-job.yml + id: scatter-1 + label: simple-simple-scatter + tool: simple-simple-scatter.cwl + output: + "result": [ + [ "^1a$", "^2a$", "^3a$", "^4a$" ], + [ "^1b$", "^2b$", "^3b$", "^4b$" ], + [ "^1c$", "^2c$", "^3c$", "^4c$" ], + [ "^1d$", "^2d$", "^3d$", "^4d$" ] + ] + doc: "Two level nested scatter" + tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] + +- job: scatter2-job.yml + id: scatter-2 + label: dotproduct-simple-scatter + tool: dotproduct-simple-scatter.cwl + output: + "result": [ + [ "^1aw$", "^2aw$", "^3aw$", "^4aw$" ], + [ "^1bx$", "^2bx$", "^3bx$", "^4bx$" ], + [ "^1cy$", "^2cy$", "^3cy$", "^4cy$" ], + [ "^1dz$", "^2dz$", "^3dz$", "^4dz$" ] + ] + doc: "Two level nested scatter: external dotproduct and internal simple" + tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] + +- job: scatter3-job.yml + id: scatter-3 + label: simple-dotproduct-scatter + tool: simple-dotproduct-scatter.cwl + output: + "result": [ + [ "^15a$", "^26a$", "^37a$", "^48a$" ], + [ "^15b$", "^26b$", "^37b$", "^48b$" ], + [ "^15c$", "^26c$", "^37c$", "^48c$" ], + [ "^15d$", "^26d$", "^37d$", "^48d$" ] + ] + doc: "Two level nested scatter: external simple and internal dotproduct" + tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] + +- job: scatter4-job.yml + id: scatter-4 + label: dotproduct-dotproduct-scatter + tool: dotproduct-dotproduct-scatter.cwl + output: + "result": [ + [ "^15aw$", "^26aw$", "^37aw$", "^48aw$" ], + [ "^15bx$", "^26bx$", "^37bx$", "^48bx$" ], + [ "^15cy$", "^26cy$", "^37cy$", "^48cy$" ], + [ "^15dz$", "^26dz$", "^37dz$", "^48dz$" ] + ] + doc: "Two level nested scatter: external dotproduct and internal dotproduct" + tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] + +- job: scatter2-job.yml + id: scatter-5 + label: flat-crossproduct-simple-scatter + tool: flat-crossproduct-simple-scatter.cwl + output: + "result": [ + [ "^1aw$", "^2aw$", "^3aw$", "^4aw$" ], + [ "^1ax$", "^2ax$", "^3ax$", "^4ax$" ], + [ "^1ay$", "^2ay$", "^3ay$", "^4ay$" ], + [ "^1az$", "^2az$", "^3az$", "^4az$" ], + [ "^1bw$", "^2bw$", "^3bw$", "^4bw$" ], + [ "^1bx$", "^2bx$", "^3bx$", "^4bx$" ], + [ "^1by$", "^2by$", "^3by$", "^4by$" ], + [ "^1bz$", "^2bz$", "^3bz$", "^4bz$" ], + [ "^1cw$", "^2cw$", "^3cw$", "^4cw$" ], + [ "^1cx$", "^2cx$", "^3cx$", "^4cx$" ], + [ "^1cy$", "^2cy$", "^3cy$", "^4cy$" ], + [ "^1cz$", "^2cz$", "^3cz$", "^4cz$" ], + [ "^1dw$", "^2dw$", "^3dw$", "^4dw$" ], + [ "^1dx$", "^2dx$", "^3dx$", "^4dx$" ], + [ "^1dy$", "^2dy$", "^3dy$", "^4dy$" ], + [ "^1dz$", "^2dz$", "^3dz$", "^4dz$" ] + ] + doc: "Two level nested scatter: external flat_crossproduct and internal simple" + tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] + +- job: scatter3-job.yml + id: scatter-6 + label: simple-flat-crossproduct-scatter + tool: simple-flat-crossproduct-scatter.cwl + output: + "result": [ + [ "^15a$", "^16a$", "^17a$", "^18a$", "^25a$", "^26a$", "^27a$", "^28a$", "^35a$", "^36a$", "^37a$", "^38a$", "^45a$", "^46a$", "^47a$", "^48a$" ], + [ "^15b$", "^16b$", "^17b$", "^18b$", "^25b$", "^26b$", "^27b$", "^28b$", "^35b$", "^36b$", "^37b$", "^38b$", "^45b$", "^46b$", "^47b$", "^48b$" ], + [ "^15c$", "^16c$", "^17c$", "^18c$", "^25c$", "^26c$", "^27c$", "^28c$", "^35c$", "^36c$", "^37c$", "^38c$", "^45c$", "^46c$", "^47c$", "^48c$" ], + [ "^15d$", "^16d$", "^17d$", "^18d$", "^25d$", "^26d$", "^27d$", "^28d$", "^35d$", "^36d$", "^37d$", "^38d$", "^45d$", "^46d$", "^47d$", "^48d$" ] + ] + doc: "Two level nested scatter: external simple and internal flat_crossproduct" + tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] + +- job: scatter4-job.yml + id: scatter-7 + label: flat-crossproduct-flat-crossproduct-scatter + tool: flat-crossproduct-flat-crossproduct-scatter.cwl + output: + "result": [ + [ "^15aw$", "^16aw$", "^17aw$", "^18aw$", "^25aw$", "^26aw$", "^27aw$", "^28aw$", "^35aw$", "^36aw$", "^37aw$", "^38aw$", "^45aw$", "^46aw$", "^47aw$", "^48aw$" ], + [ "^15ax$", "^16ax$", "^17ax$", "^18ax$", "^25ax$", "^26ax$", "^27ax$", "^28ax$", "^35ax$", "^36ax$", "^37ax$", "^38ax$", "^45ax$", "^46ax$", "^47ax$", "^48ax$" ], + [ "^15ay$", "^16ay$", "^17ay$", "^18ay$", "^25ay$", "^26ay$", "^27ay$", "^28ay$", "^35ay$", "^36ay$", "^37ay$", "^38ay$", "^45ay$", "^46ay$", "^47ay$", "^48ay$" ], + [ "^15az$", "^16az$", "^17az$", "^18az$", "^25az$", "^26az$", "^27az$", "^28az$", "^35az$", "^36az$", "^37az$", "^38az$", "^45az$", "^46az$", "^47az$", "^48az$" ], + [ "^15bw$", "^16bw$", "^17bw$", "^18bw$", "^25bw$", "^26bw$", "^27bw$", "^28bw$", "^35bw$", "^36bw$", "^37bw$", "^38bw$", "^45bw$", "^46bw$", "^47bw$", "^48bw$" ], + [ "^15bx$", "^16bx$", "^17bx$", "^18bx$", "^25bx$", "^26bx$", "^27bx$", "^28bx$", "^35bx$", "^36bx$", "^37bx$", "^38bx$", "^45bx$", "^46bx$", "^47bx$", "^48bx$" ], + [ "^15by$", "^16by$", "^17by$", "^18by$", "^25by$", "^26by$", "^27by$", "^28by$", "^35by$", "^36by$", "^37by$", "^38by$", "^45by$", "^46by$", "^47by$", "^48by$" ], + [ "^15bz$", "^16bz$", "^17bz$", "^18bz$", "^25bz$", "^26bz$", "^27bz$", "^28bz$", "^35bz$", "^36bz$", "^37bz$", "^38bz$", "^45bz$", "^46bz$", "^47bz$", "^48bz$" ], + [ "^15cw$", "^16cw$", "^17cw$", "^18cw$", "^25cw$", "^26cw$", "^27cw$", "^28cw$", "^35cw$", "^36cw$", "^37cw$", "^38cw$", "^45cw$", "^46cw$", "^47cw$", "^48cw$" ], + [ "^15cx$", "^16cx$", "^17cx$", "^18cx$", "^25cx$", "^26cx$", "^27cx$", "^28cx$", "^35cx$", "^36cx$", "^37cx$", "^38cx$", "^45cx$", "^46cx$", "^47cx$", "^48cx$" ], + [ "^15cy$", "^16cy$", "^17cy$", "^18cy$", "^25cy$", "^26cy$", "^27cy$", "^28cy$", "^35cy$", "^36cy$", "^37cy$", "^38cy$", "^45cy$", "^46cy$", "^47cy$", "^48cy$" ], + [ "^15cz$", "^16cz$", "^17cz$", "^18cz$", "^25cz$", "^26cz$", "^27cz$", "^28cz$", "^35cz$", "^36cz$", "^37cz$", "^38cz$", "^45cz$", "^46cz$", "^47cz$", "^48cz$" ], + [ "^15dw$", "^16dw$", "^17dw$", "^18dw$", "^25dw$", "^26dw$", "^27dw$", "^28dw$", "^35dw$", "^36dw$", "^37dw$", "^38dw$", "^45dw$", "^46dw$", "^47dw$", "^48dw$" ], + [ "^15dx$", "^16dx$", "^17dx$", "^18dx$", "^25dx$", "^26dx$", "^27dx$", "^28dx$", "^35dx$", "^36dx$", "^37dx$", "^38dx$", "^45dx$", "^46dx$", "^47dx$", "^48dx$" ], + [ "^15dy$", "^16dy$", "^17dy$", "^18dy$", "^25dy$", "^26dy$", "^27dy$", "^28dy$", "^35dy$", "^36dy$", "^37dy$", "^38dy$", "^45dy$", "^46dy$", "^47dy$", "^48dy$" ], + [ "^15dz$", "^16dz$", "^17dz$", "^18dz$", "^25dz$", "^26dz$", "^27dz$", "^28dz$", "^35dz$", "^36dz$", "^37dz$", "^38dz$", "^45dz$", "^46dz$", "^47dz$", "^48dz$" ] + ] + doc: "Two level nested scatter: external flat_crossproduct and internal flat_crossproduct" + tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] + +- job: scatter2-job.yml + id: scatter-8 + label: nested-crossproduct-simple-scatter + tool: nested-crossproduct-simple-scatter.cwl + output: + "result": [ + [ + [ "^1aw$", "^2aw$", "^3aw$", "^4aw$" ], + [ "^1ax$", "^2ax$", "^3ax$", "^4ax$" ], + [ "^1ay$", "^2ay$", "^3ay$", "^4ay$" ], + [ "^1az$", "^2az$", "^3az$", "^4az$" ] + ], + [ + [ "^1bw$", "^2bw$", "^3bw$", "^4bw$" ], + [ "^1bx$", "^2bx$", "^3bx$", "^4bx$" ], + [ "^1by$", "^2by$", "^3by$", "^4by$" ], + [ "^1bz$", "^2bz$", "^3bz$", "^4bz$" ] + ], + [ + [ "^1cw$", "^2cw$", "^3cw$", "^4cw$" ], + [ "^1cx$", "^2cx$", "^3cx$", "^4cx$" ], + [ "^1cy$", "^2cy$", "^3cy$", "^4cy$" ], + [ "^1cz$", "^2cz$", "^3cz$", "^4cz$" ] + ], + [ + [ "^1dw$", "^2dw$", "^3dw$", "^4dw$" ], + [ "^1dx$", "^2dx$", "^3dx$", "^4dx$" ], + [ "^1dy$", "^2dy$", "^3dy$", "^4dy$" ], + [ "^1dz$", "^2dz$", "^3dz$", "^4dz$" ] + ] + ] + doc: "Two level nested scatter: external nested_crossproduct and internal simple" + tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] + +- job: scatter3-job.yml + id: scatter-9 + label: simple-nested-crossproduct-scatter + tool: simple-nested-crossproduct-scatter.cwl + output: + "result": [ + [ + [ "^15a$", "^16a$", "^17a$", "^18a$" ], + [ "^25a$", "^26a$", "^27a$", "^28a$" ], + [ "^35a$", "^36a$", "^37a$", "^38a$" ], + [ "^45a$", "^46a$", "^47a$", "^48a$" ] + ], + [ + [ "^15b$", "^16b$", "^17b$", "^18b$" ], + [ "^25b$", "^26b$", "^27b$", "^28b$" ], + [ "^35b$", "^36b$", "^37b$", "^38b$" ], + [ "^45b$", "^46b$", "^47b$", "^48b$" ] + ], + [ + [ "^15c$", "^16c$", "^17c$", "^18c$" ], + [ "^25c$", "^26c$", "^27c$", "^28c$" ], + [ "^35c$", "^36c$", "^37c$", "^38c$" ], + [ "^45c$", "^46c$", "^47c$", "^48c$" ] + ], + [ + [ "^15d$", "^16d$", "^17d$", "^18d$" ], + [ "^25d$", "^26d$", "^27d$", "^28d$" ], + [ "^35d$", "^36d$", "^37d$", "^38d$" ], + [ "^45d$", "^46d$", "^47d$", "^48d$" ] + ] + ] + doc: "Two level nested scatter: external simple and internal nested_crossproduct" + tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] + +- job: scatter4-job.yml + id: scatter-10 + label: nested-crossproduct-nested-crossproduct-scatter + tool: nested-crossproduct-nested-crossproduct-scatter.cwl + output: + "result": [ + [ + [ + [ "^15aw$", "^16aw$", "^17aw$", "^18aw$" ], + [ "^25aw$", "^26aw$", "^27aw$", "^28aw$" ], + [ "^35aw$", "^36aw$", "^37aw$", "^38aw$" ], + [ "^45aw$", "^46aw$", "^47aw$", "^48aw$" ] + ], + [ + [ "^15ax$", "^16ax$", "^17ax$", "^18ax$" ], + [ "^25ax$", "^26ax$", "^27ax$", "^28ax$" ], + [ "^35ax$", "^36ax$", "^37ax$", "^38ax$" ], + [ "^45ax$", "^46ax$", "^47ax$", "^48ax$" ] + ], + [ + [ "^15ay$", "^16ay$", "^17ay$", "^18ay$" ], + [ "^25ay$", "^26ay$", "^27ay$", "^28ay$" ], + [ "^35ay$", "^36ay$", "^37ay$", "^38ay$" ], + [ "^45ay$", "^46ay$", "^47ay$", "^48ay$" ] + ], + [ + [ "^15az$", "^16az$", "^17az$", "^18az$" ], + [ "^25az$", "^26az$", "^27az$", "^28az$" ], + [ "^35az$", "^36az$", "^37az$", "^38az$" ], + [ "^45az$", "^46az$", "^47az$", "^48az$" ] + ] + ], + [ + [ + [ "^15bw$", "^16bw$", "^17bw$", "^18bw$" ], + [ "^25bw$", "^26bw$", "^27bw$", "^28bw$" ], + [ "^35bw$", "^36bw$", "^37bw$", "^38bw$" ], + [ "^45bw$", "^46bw$", "^47bw$", "^48bw$" ] + ], + [ + [ "^15bx$", "^16bx$", "^17bx$", "^18bx$" ], + [ "^25bx$", "^26bx$", "^27bx$", "^28bx$" ], + [ "^35bx$", "^36bx$", "^37bx$", "^38bx$" ], + [ "^45bx$", "^46bx$", "^47bx$", "^48bx$" ] + ], + [ + [ "^15by$", "^16by$", "^17by$", "^18by$" ], + [ "^25by$", "^26by$", "^27by$", "^28by$" ], + [ "^35by$", "^36by$", "^37by$", "^38by$" ], + [ "^45by$", "^46by$", "^47by$", "^48by$" ] + ], + [ + [ "^15bz$", "^16bz$", "^17bz$", "^18bz$" ], + [ "^25bz$", "^26bz$", "^27bz$", "^28bz$" ], + [ "^35bz$", "^36bz$", "^37bz$", "^38bz$" ], + [ "^45bz$", "^46bz$", "^47bz$", "^48bz$" ] + ] + ], + [ + [ + [ "^15cw$", "^16cw$", "^17cw$", "^18cw$" ], + [ "^25cw$", "^26cw$", "^27cw$", "^28cw$" ], + [ "^35cw$", "^36cw$", "^37cw$", "^38cw$" ], + [ "^45cw$", "^46cw$", "^47cw$", "^48cw$" ] + ], + [ + [ "^15cx$", "^16cx$", "^17cx$", "^18cx$" ], + [ "^25cx$", "^26cx$", "^27cx$", "^28cx$" ], + [ "^35cx$", "^36cx$", "^37cx$", "^38cx$" ], + [ "^45cx$", "^46cx$", "^47cx$", "^48cx$" ] + ], + [ + [ "^15cy$", "^16cy$", "^17cy$", "^18cy$" ], + [ "^25cy$", "^26cy$", "^27cy$", "^28cy$" ], + [ "^35cy$", "^36cy$", "^37cy$", "^38cy$" ], + [ "^45cy$", "^46cy$", "^47cy$", "^48cy$" ] + ], + [ + [ "^15cz$", "^16cz$", "^17cz$", "^18cz$" ], + [ "^25cz$", "^26cz$", "^27cz$", "^28cz$" ], + [ "^35cz$", "^36cz$", "^37cz$", "^38cz$" ], + [ "^45cz$", "^46cz$", "^47cz$", "^48cz$" ] + ] + ], + [ + [ + [ "^15dw$", "^16dw$", "^17dw$", "^18dw$" ], + [ "^25dw$", "^26dw$", "^27dw$", "^28dw$" ], + [ "^35dw$", "^36dw$", "^37dw$", "^38dw$" ], + [ "^45dw$", "^46dw$", "^47dw$", "^48dw$" ] + ], + [ + [ "^15dx$", "^16dx$", "^17dx$", "^18dx$" ], + [ "^25dx$", "^26dx$", "^27dx$", "^28dx$" ], + [ "^35dx$", "^36dx$", "^37dx$", "^38dx$" ], + [ "^45dx$", "^46dx$", "^47dx$", "^48dx$" ] + ], + [ + [ "^15dy$", "^16dy$", "^17dy$", "^18dy$" ], + [ "^25dy$", "^26dy$", "^27dy$", "^28dy$" ], + [ "^35dy$", "^36dy$", "^37dy$", "^38dy$" ], + [ "^45dy$", "^46dy$", "^47dy$", "^48dy$" ] + ], + [ + [ "^15dz$", "^16dz$", "^17dz$", "^18dz$" ], + [ "^25dz$", "^26dz$", "^27dz$", "^28dz$" ], + [ "^35dz$", "^36dz$", "^37dz$", "^38dz$" ], + [ "^45dz$", "^46dz$", "^47dz$", "^48dz$" ] + ] + ] + ] + doc: "Two level nested scatter: external nested_crossproduct and internal nested_crossproduct" + tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] From 8c52930afd0fb4f474ae18d9ff76920d65bb4528 Mon Sep 17 00:00:00 2001 From: Gertjan De Mulder Date: Sun, 17 Jul 2022 20:25:41 +0200 Subject: [PATCH 056/127] typos (#194) Co-authored-by: Michael R. Crusoe <1330696+mr-c@users.noreply.github.com> --- Process.yml | 2 +- Workflow.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Process.yml b/Process.yml index 5ec1a575..a204d661 100644 --- a/Process.yml +++ b/Process.yml @@ -341,7 +341,7 @@ $graph: the same Directory. When executing a CommandLineTool, Directories must be recursively staged - first and have local values of `path` assigend. + first and have local values of `path` assigned. Directory objects in CommandLineTool output must provide either a `location` URI or a `path` property in the context of the tool execution diff --git a/Workflow.yml b/Workflow.yml index 884177df..02cfd719 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -441,7 +441,7 @@ $graph: this input parameter. If `valueFrom` is a parameter reference or expression, it must be - evaluated to yield the actual value to be assiged to the input field. + evaluated to yield the actual value to be assigned to the input field. The `self` value in the parameter reference or expression must be 1. `null` if there is no `source` field From 6f15395c3a9c574d7dfb82b2fb19939ceb0d5822 Mon Sep 17 00:00:00 2001 From: "Bruno P. Kinoshita" Date: Fri, 29 Jul 2022 03:15:37 +1200 Subject: [PATCH 057/127] Clarify process id field ($graph only) (#166) --- Process.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Process.yml b/Process.yml index a204d661..f0613af7 100644 --- a/Process.yml +++ b/Process.yml @@ -799,6 +799,14 @@ $graph: directly executed. fields: + - name: id + type: string? + jsonldPredicate: "@id" + doc: | + The unique identifier for this object. + + Only useful for `$graph` at `Process` level. Should not be exposed + to users in graphical or terminal user interfaces. - name: inputs type: type: array From e15d7b77ceecc503382561d04eaf1fc140d80f12 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Wed, 31 Aug 2022 13:13:50 -0400 Subject: [PATCH 058/127] Schema fixes/clarifications that came up working on codegen (#196) --- Process.yml | 11 +++++++++-- Workflow.yml | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Process.yml b/Process.yml index f0613af7..d5b66790 100644 --- a/Process.yml +++ b/Process.yml @@ -759,7 +759,11 @@ $graph: extends: [Parameter, InputFormat, LoadContents] fields: - name: default - type: Any? + type: + - "null" + - File + - Directory + - Any jsonldPredicate: _id: sld:default noLinkCheck: true @@ -852,7 +856,10 @@ $graph: error and the implementation must not attempt to run the process, unless overridden at user option. - name: hints - type: Any[]? + type: + - "null" + - type: array + items: [ProcessRequirement, Any] doc: | Declares hints applying to either the runtime environment or the workflow engine that may be helpful in executing this process. It is diff --git a/Workflow.yml b/Workflow.yml index 02cfd719..b1464bb4 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -225,7 +225,7 @@ $graph: fields: - name: outputSource doc: | - Specifies one or more names of an output from a workflow step (in the form + Specifies one or more names of an output from a workflow step (in the form `step_name/output_name` with a `/` separator`), or a workflow input name, that supply their value(s) to the output parameter. the output parameter. It is valid to reference workflow level inputs @@ -233,7 +233,7 @@ $graph: jsonldPredicate: "_id": "cwl:outputSource" "_type": "@id" - refScope: 0 + refScope: 1 type: - string? - string[]? From f8f4dfec16db31046237c77efdbc57162ee3afd4 Mon Sep 17 00:00:00 2001 From: Tomoya Tanjo Date: Tue, 6 Sep 2022 23:59:10 +0900 Subject: [PATCH 059/127] Add inheritable process requirements for CLT (#198) --- concepts.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/concepts.md b/concepts.md index ee57bf1d..f408726f 100644 --- a/concepts.md +++ b/concepts.md @@ -470,7 +470,8 @@ Requirements specified in a parent Workflow are inherited by step processes if they are valid for that step. If the substep is a CommandLineTool only the `InlineJavascriptRequirement`, `SchemaDefRequirement`, `DockerRequirement`, `SoftwareRequirement`, `InitialWorkDirRequirement`, `EnvVarRequirement`, -`ShellCommandRequirement`, `ResourceRequirement` are valid. +`ShellCommandRequirement`, `ResourceRequirement`, `LoadListingRequirement`, +`WorkReuse`, `NetworkAccess`, `InplaceUpdateRequirement`, `ToolTimeLimit` are valid. *As good practice, it is best to have process requirements be self-contained, such that each process can run successfully by itself.* From 5332d8c0d27ac91c81c729804c4714b7350888d7 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Wed, 7 Sep 2022 11:02:56 -0400 Subject: [PATCH 060/127] Add tests for relative reference in cwl.output.json (#199) Co-authored-by: Michael R. Crusoe <1330696+mr-c@users.noreply.github.com> --- conformance_tests.yaml | 32 +++++++++++++++++++++++++++++++- invocation.md | 30 +++++++++++++++++++++++++----- tests/test-cwl-out3.cwl | 18 ++++++++++++++++++ tests/test-cwl-out4.cwl | 18 ++++++++++++++++++ 4 files changed, 92 insertions(+), 6 deletions(-) create mode 100644 tests/test-cwl-out3.cwl create mode 100644 tests/test-cwl-out4.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 4c26f77e..f664711e 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -963,6 +963,36 @@ and just 'location' is provided. tags: [ shell_command, command_line_tool ] +- job: tests/empty.json + output: { + "foo": { + "location": "foo", + "class": "File", + "checksum": "sha1$f1d2d2f924e986ac86fdf7b36c94bcdf32beec15", + "size": 4 + } + } + tool: tests/test-cwl-out3.cwl + id: json_output_path_relative + doc: >- + Test support for reading cwl.output.json where 'path' is relative path in output dir. + tags: [ shell_command, command_line_tool ] + +- job: tests/empty.json + output: { + "foo": { + "location": "foo", + "class": "File", + "checksum": "sha1$f1d2d2f924e986ac86fdf7b36c94bcdf32beec15", + "size": 4 + } + } + tool: tests/test-cwl-out4.cwl + id: json_output_location_relative + doc: >- + Test support for reading cwl.output.json where 'location' is relative reference to output dir. + tags: [ shell_command, command_line_tool ] + - job: tests/abc.json output: files: [{ @@ -3314,7 +3344,7 @@ `echo a && echo b > out.txt`, but instead will produce the correct `echo a && echo b`, and capture the output correctly. tags: [ shell_command, command_line_tool ] - + - label: multiple-input-feature-requirement output: { "hello_world_in_two_lines": [ diff --git a/invocation.md b/invocation.md index 540ae3fb..f4e5293b 100644 --- a/invocation.md +++ b/invocation.md @@ -156,9 +156,29 @@ The exit code of the process is available to expressions in ## Output binding -If the output directory contains a file named "cwl.output.json", that file -must be loaded and used as the output object. Otherwise, the output object -must be generated by walking the parameters listed in `outputs` and -applying output bindings to the tool output. Output bindings are -associated with output parameters using the `outputBinding` field. See +If the output directory contains a file named "cwl.output.json", that +file must be loaded and used as the output object. In this case, the +output object should still be type-checked against the `outputs` +section, but `outputBinding` is ignored. + +For Files and Directories, if the value of `path` is a relative path +pattern (does not begin with a slash '/') then it is resolved relative +to the output directory. If the value of the "path" is an absolute +path pattern (it does begin with a slash '/') then it must refer to a +path within the output directory. It is an error for "path" to refer +outside the output directory. + +Similarly, if a File or Directory "cwl.output.json" contains +`location`, it is resolved as relative reference URI with a base URI +representing the output directory. If `location` contains some other +absolute URI with a scheme supported by the implementation, the +implementation may choose to accept it. + +If both `path` and `location` are provided on a File or Directory in +"cwl.output.json", `path` takes precedence. + +If there is no "cwl.output.json", the output object must be generated +by walking the parameters listed in `outputs` and applying output +bindings to the tool output. Output bindings are associated with +output parameters using the `outputBinding` field. See [`CommandOutputBinding`](#CommandOutputBinding) for details. diff --git a/tests/test-cwl-out3.cwl b/tests/test-cwl-out3.cwl new file mode 100644 index 00000000..528854ac --- /dev/null +++ b/tests/test-cwl-out3.cwl @@ -0,0 +1,18 @@ +class: CommandLineTool +cwlVersion: v1.2 +requirements: + - class: ShellCommandRequirement +hints: + DockerRequirement: + dockerPull: docker.io/debian:stable-slim + +inputs: [] + +outputs: + - id: foo + type: File + +arguments: + - valueFrom: > + echo foo > foo && echo '{"foo": {"path": "foo", "class": "File"} }' > cwl.output.json + shellQuote: false diff --git a/tests/test-cwl-out4.cwl b/tests/test-cwl-out4.cwl new file mode 100644 index 00000000..de6ca3a0 --- /dev/null +++ b/tests/test-cwl-out4.cwl @@ -0,0 +1,18 @@ +class: CommandLineTool +cwlVersion: v1.2 +requirements: + - class: ShellCommandRequirement +hints: + DockerRequirement: + dockerPull: docker.io/debian:stable-slim + +inputs: [] + +outputs: + - id: foo + type: File + +arguments: + - valueFrom: > + echo foo > foo && echo '{"foo": {"location": "foo", "class": "File"} }' > cwl.output.json + shellQuote: false From 9b091ed7e0bef98b3312e9478c52b89ba25792de Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Sun, 11 Sep 2022 15:24:42 -0400 Subject: [PATCH 061/127] Add File/Directory to WorkflowStepInput 'default' (#201) --- Workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Workflow.yml b/Workflow.yml index b1464bb4..63511613 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -419,7 +419,7 @@ $graph: fields: - name: default - type: ["null", Any] + type: ["null", File, Directory, Any] doc: | The default value for this parameter to use if either there is no `source` field, or the value produced by the `source` is `null`. The From f0f9bc2ae01c7336f94037a1447ed5c2db08edf1 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Thu, 20 Oct 2022 04:52:03 -0400 Subject: [PATCH 062/127] test case for hash marks in file names (#159) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add --relax-path-checks to cwltool * finish label→id migration Co-authored-by: Michael R. Crusoe <1330696+mr-c@users.noreply.github.com> --- .github/workflows/cwltool.yml | 2 +- CONFORMANCE_TESTS.md | 19 ++++++++----------- conformance_tests.yaml | 32 +++++++++++++++++++++++--------- tests/octo.yml | 7 +++++++ tests/octothorpe/item #1.txt | 1 + tests/scatter/test-index.yaml | 30 ++++++++++-------------------- 6 files changed, 50 insertions(+), 41 deletions(-) create mode 100644 tests/octo.yml create mode 100644 tests/octothorpe/item #1.txt diff --git a/.github/workflows/cwltool.yml b/.github/workflows/cwltool.yml index 3ec4ac6e..3e0608a6 100644 --- a/.github/workflows/cwltool.yml +++ b/.github/workflows/cwltool.yml @@ -26,4 +26,4 @@ jobs: run: pip install cwltest cwltool - name: Run tests against the reference runner - run: ./run_test.sh RUNNER=cwltool EXTRA=--parallel -j$(nproc) + run: ./run_test.sh RUNNER=cwltool "EXTRA=--parallel --relax-path-checks" -j$(nproc) diff --git a/CONFORMANCE_TESTS.md b/CONFORMANCE_TESTS.md index 2c20f80a..1769be6c 100644 --- a/CONFORMANCE_TESTS.md +++ b/CONFORMANCE_TESTS.md @@ -57,15 +57,16 @@ Can be mixed with the other test selectors: `-n5-7,15 -N6` == only runs the 5th, `-s{test_names}` -Run the specific tests according to their `label`s. `{test_names}` is a comma separated list of -test labels. `-scl_optional_bindings_provided,stdout_redirect_docker,expression_any_null` +Run the specific tests according to their `id`s. `{test_names}` is a comma separated list of +test identifiers (the `id` field). `-scl_optional_bindings_provided,stdout_redirect_docker,expression_any_null` achieves the same effect as `-n5-7,15 -N6` and it will still work if the tests are re-ordered. `-S{test_names}` -Excludes specific tests according to their `label`s. `{test_names}` is a comma separated list of -test labels. `--tags shell_command -Sstderr_redirect_shortcut` will run all test with `expression_tool` -in their `tags` list except the test with the label `stderr_redirect_shortcut`. +Excludes specific tests according to their `id`s. `{test_names}` is a comma separated list of +test identifiers (the `id` field). `--tags shell_command -Sstderr_redirect_shortcut` +will run all tests with `expression_tool` in their `tags` list except the test +with the `id` of `stderr_redirect_shortcut`. ### Misc @@ -125,7 +126,7 @@ The conformance test file is a YAML document: a list of key-value pairs. We will use this single entry to explain the format ``` yaml - doc: Test command line with optional input (missing) - label: cl_optional_inputs_missing + id: cl_optional_inputs_missing tool: tests/cat1-testcli.cwl job: tests/cat-job.json output: @@ -135,7 +136,7 @@ We will use this single entry to explain the format - `doc`: A unique, single-line sentence that explain what is being tested. Will be printed at test execution time, so please don't make it too long! Additional documentation can go as comments in the CWL document itself. -- `label`: a short list of underscore (`_`) separated words that succinctly identifies and explains the test. +- `id`: a short list of underscore (`_`) separated words that succinctly identifies and explains the test. - `tool` the path to the CWL document to run - `job`: the CWL input object in YAML/JSON format. If there are no inputs then use `tests/empty.json`. - `output` [the CWL output object expected.](#output-matching) @@ -155,10 +156,6 @@ Example: [`- $import: tests/string-interpolation/test-index.yaml`](https://githu adds all the entries in [`tests/string-interpolation/test-index.yaml`](https://github.com/common-workflow-language/cwl-v1.2/blob/main/tests/string-interpolation/test-index.yaml) as entries in the main conformance test file. -You may also see references to an `id` field. Don't add them for new tests, -[we are migrating off of the `id` field](common-workflow-language/cwltest#110) to -rely only on the `label`s. - ## Output matching In each test entry there is an `output` field that contains a mapping of the expected outputs names and their values. diff --git a/conformance_tests.yaml b/conformance_tests.yaml index f664711e..f6bfd92e 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -1,7 +1,6 @@ -# every "id" must be unique -# every "label" must be unique and have no spaces +# every "id" must be unique and have no spaces # every "doc" must be unique -# "label" and "doc" should be meaningful +# "id" and "doc" should be meaningful - job: tests/bwa-mem-job.json tool: tests/bwa-mem-tool.cwl @@ -3320,11 +3319,11 @@ job: tests/record-order-job.json output: args: [-a, -b, '1', -c, '3', -d, -e, '2', -f, '4'] - label: record-order-with-input-bindings + id: record_order_with_input_bindings doc: Test sorting arguments at each level (inputBinding for all levels) tags: [ command_line, required ] -- label: output_reference_workflow_input +- id: output_reference_workflow_input output: { "last": "me" } @@ -3333,7 +3332,7 @@ Direct use of Workflow level input fields in the outputs. tags: [ required, workflow ] -- label: stdout_chained_commands +- id: stdout_chained_commands output: { "out": "a\nb\n" } @@ -3345,7 +3344,7 @@ and capture the output correctly. tags: [ shell_command, command_line_tool ] -- label: multiple-input-feature-requirement +- id: multiple-input-feature-requirement output: { "hello_world_in_two_lines": [ "hello\n", @@ -3357,7 +3356,7 @@ MultipleInputFeatureRequirement on workflow outputs. tags: [ workflow, multiple_input ] -- label: js-input-record +- id: js-input-record # The output does not have the last \n due to the -n passed to echo output: { "out": "JS\nwith\nrecord" @@ -3373,8 +3372,23 @@ output: { "out": "1970-01-01T00:00:00Z\n" } - label: schemadef_types_with_import + id: schemadef_types_with_import doc: >- Test SchemaDefRequirement with a workflow, with the `$import` under types. It is similar to schemadef-wf, but the `$import` is different. tags: [ workflow, schema_def ] + +- id: filename_with_hash_mark + tool: tests/cat-tool.cwl + job: tests/octo.yml + doc: Test for correct handling of URL-quoting in filename to refer to filename containing a hash mark + output: { + "output": { + "basename": "output", + "checksum": "sha1$06b0c59808c236447d065db8f7d2a60de0a805bf", + "class": "File", + "location": "output", + "size": 8 + } + } + tags: [ required, command_line_tool ] diff --git a/tests/octo.yml b/tests/octo.yml new file mode 100644 index 00000000..1537126a --- /dev/null +++ b/tests/octo.yml @@ -0,0 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: Apache-2.0 + +file1: + class: File + location: "octothorpe/item %231.txt" diff --git a/tests/octothorpe/item #1.txt b/tests/octothorpe/item #1.txt new file mode 100644 index 00000000..c164c0e6 --- /dev/null +++ b/tests/octothorpe/item #1.txt @@ -0,0 +1 @@ +item #1 diff --git a/tests/scatter/test-index.yaml b/tests/scatter/test-index.yaml index 31a9a0af..968048d8 100644 --- a/tests/scatter/test-index.yaml +++ b/tests/scatter/test-index.yaml @@ -1,6 +1,5 @@ - job: scatter-job.yml - id: scatter-1 - label: simple-simple-scatter + id: simple_simple_scatter tool: simple-simple-scatter.cwl output: "result": [ @@ -13,8 +12,7 @@ tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] - job: scatter2-job.yml - id: scatter-2 - label: dotproduct-simple-scatter + id: dotproduct_simple_scatter tool: dotproduct-simple-scatter.cwl output: "result": [ @@ -27,8 +25,7 @@ tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] - job: scatter3-job.yml - id: scatter-3 - label: simple-dotproduct-scatter + id: simple_dotproduct_scatter tool: simple-dotproduct-scatter.cwl output: "result": [ @@ -41,8 +38,7 @@ tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] - job: scatter4-job.yml - id: scatter-4 - label: dotproduct-dotproduct-scatter + id: dotproduct_dotproduct_scatter tool: dotproduct-dotproduct-scatter.cwl output: "result": [ @@ -55,8 +51,7 @@ tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] - job: scatter2-job.yml - id: scatter-5 - label: flat-crossproduct-simple-scatter + id: flat_crossproduct_simple_scatter tool: flat-crossproduct-simple-scatter.cwl output: "result": [ @@ -81,8 +76,7 @@ tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] - job: scatter3-job.yml - id: scatter-6 - label: simple-flat-crossproduct-scatter + id: simple_flat_crossproduct_scatter tool: simple-flat-crossproduct-scatter.cwl output: "result": [ @@ -95,8 +89,7 @@ tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] - job: scatter4-job.yml - id: scatter-7 - label: flat-crossproduct-flat-crossproduct-scatter + id: flat_crossproduct_flat_crossproduct_scatter tool: flat-crossproduct-flat-crossproduct-scatter.cwl output: "result": [ @@ -121,8 +114,7 @@ tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] - job: scatter2-job.yml - id: scatter-8 - label: nested-crossproduct-simple-scatter + id: nested_crossproduct_simple_scatter tool: nested-crossproduct-simple-scatter.cwl output: "result": [ @@ -155,8 +147,7 @@ tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] - job: scatter3-job.yml - id: scatter-9 - label: simple-nested-crossproduct-scatter + id: simple_nested_crossproduct_scatter tool: simple-nested-crossproduct-scatter.cwl output: "result": [ @@ -189,8 +180,7 @@ tags: [ workflow, subworkflow, scatter, inline_javascript, expression_tool ] - job: scatter4-job.yml - id: scatter-10 - label: nested-crossproduct-nested-crossproduct-scatter + id: nested_crossproduct_nested_crossproduct_scatter tool: nested-crossproduct-nested-crossproduct-scatter.cwl output: "result": [ From f916947ba7da599ec5726233b5bde7f0a95e01f9 Mon Sep 17 00:00:00 2001 From: Francis Charette-Migneault Date: Wed, 2 Nov 2022 12:59:43 -0400 Subject: [PATCH 063/127] fix typos spotted across docs (#205) Co-authored-by: Michael R. Crusoe <1330696+mr-c@users.noreply.github.com> --- CommandLineTool.yml | 32 ++++++++++++++++---------------- Process.yml | 20 ++++++++++---------- Workflow.yml | 10 +++++----- concepts.md | 2 +- invocation.md | 4 ++-- 5 files changed, 34 insertions(+), 34 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index c57db61d..8770b6db 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -104,7 +104,7 @@ $graph: where these approaches are application or platform specific it creates a significant barrier to reproducibility and portability, as methods developed for one platform must be manually ported to be used on new - platforms. Similarly it creates redundant work, as wrappers for popular + platforms. Similarly, it creates redundant work, as wrappers for popular tools must be rewritten for each application or platform in use. The Common Workflow Language Command Line Tool Description is designed to @@ -143,7 +143,7 @@ $graph: doc: | When listed under `inputBinding` in the input schema, the term - "value" refers to the the corresponding value in the input object. For + "value" refers to the corresponding value in the input object. For binding objects listed in `CommandLineTool.arguments`, the term "value" refers to the effective value after evaluating `valueFrom`. @@ -168,7 +168,7 @@ $graph: - **array**: If `itemSeparator` is specified, add `prefix` and the join the array into a single string with `itemSeparator` separating the - items. Otherwise first add `prefix`, then recursively process + items. Otherwise, first add `prefix`, then recursively process individual elements. If the array is empty, it does not add anything to command line. @@ -203,7 +203,7 @@ $graph: type: string? doc: | Join the array elements into a single string with the elements - separated by by `itemSeparator`. + separated by `itemSeparator`. - name: valueFrom type: - "null" @@ -310,7 +310,7 @@ $graph: element. The exit code of the process is available in the expression as `runtime.exitCode`. - Additionally if `loadContents` is true, the file must be a + Additionally, if `loadContents` is true, the file must be a UTF-8 text file 64 KiB or smaller, and the implementation must read the entire contents of the file (or file array) and place it in the `contents` field of the File object for use in @@ -457,7 +457,7 @@ $graph: - name: inputBinding type: CommandLineBinding? doc: | - Describes how to turns the input parameters of a process into + Describes how to turn the input parameters of a process into command line arguments. jsonldPredicate: "cwl:inputBinding" @@ -745,7 +745,7 @@ $graph: extends: ProcessRequirement doc: | Indicates that a workflow component should be run in a - [Docker](http://docker.com) or Docker-compatible (such as + [Docker](https://docker.com) or Docker-compatible (such as [Singularity](https://www.sylabs.io/) and [udocker](https://github.com/indigo-dc/udocker)) container environment and specifies how to fetch or build the image. @@ -815,7 +815,7 @@ $graph: `dockerPull: ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2` - name: dockerLoad type: string? - doc: "Specify a HTTP URL from which to download a Docker image using `docker load`." + doc: "Specify an HTTP URL from which to download a Docker image using `docker load`." - name: dockerFile type: string? doc: "Supply the contents of a Dockerfile which will be built using `docker build`." @@ -881,7 +881,7 @@ $graph: One or more [IRI](https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier)s identifying resources for installing or enabling the software named in the `package` field. Implementations may provide resolvers which map - these software identifer IRIs to some configuration action; or they can + these software identifier IRIs to some configuration action; or they can use only the name from the `package` field on a best effort basis. For example, the IRI https://packages.debian.org/bowtie could @@ -893,15 +893,15 @@ $graph: software installation or selection mechanism. Using [RRID](https://www.identifiers.org/rrid/) as an example: https://identifiers.org/rrid/RRID:SCR_005476 - could be fulfilled using the above mentioned Debian or bioconda - package, a local installation managed by [Environment Modules](http://modules.sourceforge.net/), + could be fulfilled using the above-mentioned Debian or bioconda + package, a local installation managed by [Environment Modules](https://modules.sourceforge.net/), or any other mechanism the platform chooses. IRIs can also be from - identifer sources that are discipline specific yet still system + identifier sources that are discipline specific yet still system independent. As an example, the equivalent [ELIXIR Tools and Data Service Registry](https://bio.tools) IRI to the previous RRID example is https://bio.tools/tool/bowtie2/version/2.2.8. If supported by a given registry, implementations are encouraged to - query these system independent sofware identifier IRIs directly for + query these system independent software identifier IRIs directly for links to packaging systems. A site specific IRI can be listed as well. For example, an academic @@ -1293,7 +1293,7 @@ $graph: For implementations that support reusing output from past work (on the assumption that same code and same input produce same results), control whether to enable or disable the reuse behavior - for a particular tool or step (to accomodate situations where that + for a particular tool or step (to accommodate situations where that assumption is incorrect). A reused step is not executed but instead returns the same output as the original execution. @@ -1332,7 +1332,7 @@ $graph: may apply their own security policies to restrict what is accessible by the tool. - Enabling network access does not imply a publically routable IP + Enabling network access does not imply a publicly routable IP address or the ability to accept inbound connections. fields: @@ -1369,7 +1369,7 @@ $graph: read-only in every step. Workflow steps which modify a file must produce the modified file - as output. Downstream steps which futher process the file must + as output. Downstream steps which further process the file must use the output of previous steps, and not refer to a common input (this is necessary for both ordering and correctness). diff --git a/Process.yml b/Process.yml index d5b66790..f4489005 100644 --- a/Process.yml +++ b/Process.yml @@ -82,7 +82,7 @@ $graph: If no `location` or `path` is specified, a file object must specify `contents` with the UTF-8 text content of the file. This is a "file literal". File literals do not correspond to external resources, but are - created on disk with `contents` with when needed for a executing a tool. + created on disk with `contents` with when needed for executing a tool. Where appropriate, expressions can return file literals to define new files on a runtime. The maximum size of `contents` is 64 kilobytes. @@ -168,7 +168,7 @@ $graph: executed. This field must be set by the implementation. The final path component must match the value of `basename`. This field must not be used in any other context. The command line tool being - executed must be able to to access the file at `path` using the POSIX + executed must be able to access the file at `path` using the POSIX `open(2)` syscall. As a special case, if the `path` field is provided but the `location` @@ -216,7 +216,7 @@ $graph: doc: | The basename root such that `nameroot + nameext == basename`, and `nameext` is empty or begins with a period and contains at most one - period. For the purposess of path splitting leading periods on the + period. For the purposes of path splitting leading periods on the basename are ignored; a basename of `.cshrc` will have a nameroot of `.cshrc`. @@ -235,7 +235,7 @@ $graph: - name: checksum type: string? doc: | - Optional hash code for validating file integrity. Currently must be in the form + Optional hash code for validating file integrity. Currently, must be in the form "sha1$ + hexadecimal string" using the SHA-1 algorithm. - name: size type: @@ -266,7 +266,7 @@ $graph: identity: true doc: | The format of the file: this must be an IRI of a concept node that - represents the file format, preferrably defined within an ontology. + represents the file format, preferably defined within an ontology. If no ontology is available, file formats may be tested by exact match. Reasoning about format compatibility must be done by checking that an @@ -289,7 +289,7 @@ $graph: `location` field. When the file is staged as input to CommandLineTool, the value of `contents` must be written to a file. - If `contents` is set as a result of an Javascript expression, + If `contents` is set as a result of a Javascript expression, an `entry` in `InitialWorkDirRequirement`, or read in from `cwl.output.json`, there is no specified upper limit on the size of `contents`. Implementations may have practical limits @@ -392,7 +392,7 @@ $graph: The local path where the Directory is made available prior to executing a CommandLineTool. This must be set by the implementation. This field must not be used in any other context. The command line tool being - executed must be able to to access the directory at `path` using the POSIX + executed must be able to access the directory at `path` using the POSIX `opendir(2)` syscall. If the `path` contains [POSIX shell metacharacters](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02) @@ -591,7 +591,7 @@ $graph: This must be one or more IRIs of concept nodes that represents file formats which are allowed as input to this - parameter, preferrably defined within an ontology. If no ontology is + parameter, preferably defined within an ontology. If no ontology is available, file formats may be tested by exact match. @@ -888,7 +888,7 @@ $graph: CommandLineTool, Workflow, or ExpressionTool. If provided, then this must be an IRI of a concept node that - represents the type of operation, preferrably defined within an ontology. + represents the type of operation, preferably defined within an ontology. For example, in the domain of bioinformatics, one can use an IRI from the EDAM Ontology's [Operation concept nodes](http://edamontology.org/operation_0004), @@ -903,7 +903,7 @@ $graph: doc: | Indicates that the workflow platform must support inline Javascript expressions. If this requirement is not present, the workflow platform must not perform expression - interpolatation. + interpolation. fields: - name: class type: diff --git a/Workflow.yml b/Workflow.yml index 63511613..e2569250 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -312,7 +312,7 @@ $graph: workflow inputs, or the outputs of other workflows steps) with the input parameters of the process specified by the `run` field. Only input parameters declared by the target process will be passed through at runtime to the process - though additonal parameters may be specified (for use within `valueFrom` + though additional parameters may be specified (for use within `valueFrom` expressions for instance) - unconnected or unused parameters do not represent an error condition. @@ -361,7 +361,7 @@ $graph: # Picking non-null values among inbound data links - If present, `pickValue` specifies how to picking non-null values among inbound data links. + If present, `pickValue` specifies how to pick non-null values among inbound data links. `pickValue` is evaluated 1. Once all source values from upstream step or parameters are available. @@ -373,7 +373,7 @@ $graph: steps may be connected to a single input (`source` is a list), and skipped steps produce null values. - Static type checkers should check for type consistency after infering what the type + Static type checkers should check for type consistency after inferring what the type will be after `pickValue` is applied, just as they do currently for `linkMerge`. * **first_non_null** @@ -556,7 +556,7 @@ $graph: Conditionals in CWL are an optional feature and are not required to be implemented by all consumers of CWL documents. An implementation that does not support conditionals must return a - fatal error when attempting execute a workflow that uses + fatal error when attempting to execute a workflow that uses conditional constructs the implementation does not support. # Subworkflows @@ -726,7 +726,7 @@ $graph: - name: steps doc: | The individual steps that make up the workflow. Each step is executed when all of its - input data links are fufilled. An implementation may choose to execute + input data links are fulfilled. An implementation may choose to execute the steps in a different order than listed and/or execute steps concurrently, provided that dependencies between steps are met. type: diff --git a/concepts.md b/concepts.md index f408726f..f76b1be8 100644 --- a/concepts.md +++ b/concepts.md @@ -347,7 +347,7 @@ subworkflow steps, and so on. Embedded process objects may optionally include `id` fields. A "$graph" document does not have a process object at the root. -Instead there is a [`$graph`](SchemaSalad.html#Document_graph) field +Instead, there is a [`$graph`](SchemaSalad.html#Document_graph) field which consists of a list of process objects. Each process object must have an `id` field. Workflow `run` fields cross-reference other processes in the document `$graph` using the `id` of the process diff --git a/invocation.md b/invocation.md index f4e5293b..a50e3410 100644 --- a/invocation.md +++ b/invocation.md @@ -70,7 +70,7 @@ For compatibility, files may be written to the **system temporary directory** which must be located at `/tmp`. Because the system temporary directory may be shared with other processes on the system, files placed in the system temporary directory are not guaranteed to be deleted automatically. A tool -must not use the system temporary directory as a backchannel communication with +must not use the system temporary directory as a back-channel communication with other tools. It is valid for the system temporary directory to be the same as the designated temporary directory. @@ -98,7 +98,7 @@ systems. An implementation may forbid the tool from directly accessing network resources. Correct tools must not assume any network access unless they have the 'networkAccess' field of a ['NetworkAccess'](#NetworkAccess) requirement set -to `true` but even then this does not imply a publically routable IP address or +to `true` but even then this does not imply a publicly routable IP address or the ability to accept inbound connections. The `runtime` section available in [parameter references](#Parameter_references) From e1205d56c926c3b532b68c43e6a7a2e86eff87c2 Mon Sep 17 00:00:00 2001 From: Francis Charette-Migneault Date: Sat, 5 Nov 2022 14:02:40 -0400 Subject: [PATCH 064/127] add missing newlines in code samples (#207) --- salad/schema_salad/metaschema/map_res_proc.yml | 2 +- salad/schema_salad/metaschema/map_res_src.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/salad/schema_salad/metaschema/map_res_proc.yml b/salad/schema_salad/metaschema/map_res_proc.yml index 52e9c220..704c7bbb 100644 --- a/salad/schema_salad/metaschema/map_res_proc.yml +++ b/salad/schema_salad/metaschema/map_res_proc.yml @@ -9,4 +9,4 @@ "key": "shaggy" } ] -} \ No newline at end of file +} diff --git a/salad/schema_salad/metaschema/map_res_src.yml b/salad/schema_salad/metaschema/map_res_src.yml index 9df0c356..e6e3e0bd 100644 --- a/salad/schema_salad/metaschema/map_res_src.yml +++ b/salad/schema_salad/metaschema/map_res_src.yml @@ -5,4 +5,4 @@ }, "fred": "daphne" } -} \ No newline at end of file +} From ebb9aa628675a6976982ad0e9af87e77a4d4ded3 Mon Sep 17 00:00:00 2001 From: Francis Charette-Migneault Date: Sat, 5 Nov 2022 14:03:06 -0400 Subject: [PATCH 065/127] fix over-indented list interpreted as code + typo (#208) --- salad/schema_salad/metaschema/vocab_res.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/salad/schema_salad/metaschema/vocab_res.yml b/salad/schema_salad/metaschema/vocab_res.yml index 726bef00..b9d5f53b 100644 --- a/salad/schema_salad/metaschema/vocab_res.yml +++ b/salad/schema_salad/metaschema/vocab_res.yml @@ -1,16 +1,16 @@ - | ## Vocabulary resolution - The schema may designate one or more vocabulary fields which use - terms defined in the vocabulary. The vocabulary are the short - names of all the identifiers in the schema. Processing must - resolve vocabulary fields to either vocabulary terms or absolute - URIs by first applying the link resolution rules defined above, - then applying the following additional rule: - - * If a reference URI is a vocabulary field, and there is a vocabulary - term which maps to the resolved URI, the reference must be replace with - the vocabulary term. + The schema may designate one or more vocabulary fields which use + terms defined in the vocabulary. The vocabulary are the short + names of all the identifiers in the schema. Processing must + resolve vocabulary fields to either vocabulary terms or absolute + URIs by first applying the link resolution rules defined above, + then applying the following additional rule: + + * If a reference URI is a vocabulary field, and there is a vocabulary + term which maps to the resolved URI, the reference must be replaced with + the vocabulary term. ### Vocabulary resolution example From 5951b8f51264bcfa4123a5773df1e57364e5ef0c Mon Sep 17 00:00:00 2001 From: Francis Charette-Migneault Date: Mon, 7 Nov 2022 09:52:37 -0500 Subject: [PATCH 066/127] add code format to parameter references table definitions (fixes https://github.com/common-workflow-language/cwl-v1.2/issues/206) (#209) --- concepts.md | 46 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/concepts.md b/concepts.md index f76b1be8..5fe77008 100644 --- a/concepts.md +++ b/concepts.md @@ -499,21 +499,45 @@ references use the following subset of syntax, but they are designed to not require a Javascript engine for evaluation. In the following [BNF grammar](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form), -character classes and grammar rules are denoted in '{}', '-' denotes -exclusion from a character class, '(())' denotes grouping, '|' denotes -alternates, trailing '*' denotes zero or more repeats, '+' denote one +character classes and grammar rules are denoted in `{}`, `-` denotes +exclusion from a character class, `(())` denotes grouping, `|` denotes +alternates, trailing `*` denotes zero or more repeats, `+` denotes one or more repeats, and all other characters are literal values. -

+

- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
symbol:: {Unicode alphanumeric}+
singleq:: [' (( {character - { | \ ' \} } ))* ']
doubleq:: [" (( {character - { | \ " \} } ))* "]
index:: [ {decimal digit}+ ]
segment:: . {symbol} | {singleq} | {doubleq} | {index}
parameter reference::$( {symbol} {segment}*)
symbol::={Unicode alphanumeric}+
singleq::=[' (( {character - { | \ ' \} } ))* ']
doubleq::=[" (( {character - { | \ " \} } ))* "]
index::=[ {decimal digit}+ ]
segment::=. {symbol} | {singleq} | {doubleq} | {index}
parameter reference::=( {symbol} {segment}*)
-

+
Use the following algorithm to resolve a parameter reference: From 59c3beab8354f1baf6b22fabcbb630c725eccc24 Mon Sep 17 00:00:00 2001 From: "lgtm-com[bot]" <43144390+lgtm-com[bot]@users.noreply.github.com> Date: Thu, 10 Nov 2022 14:53:30 +0000 Subject: [PATCH 067/127] Add CodeQL workflow for GitHub code scanning (#211) Co-authored-by: LGTM Migrator --- .github/workflows/codeql.yml | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/codeql.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 00000000..eda2af6b --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,42 @@ +name: "CodeQL" + +on: + push: + branches: [ "1.2.1_proposed", "main" ] + pull_request: + branches: [ "1.2.1_proposed" ] + schedule: + - cron: "32 15 * * 5" + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ javascript, python ] + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + queries: +security-and-quality + + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + if: ${{ matrix.language == 'javascript' || matrix.language == 'python' }} + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{ matrix.language }}" From e4bb3bf634be70226281fe5e6d77e1b5d241c3f1 Mon Sep 17 00:00:00 2001 From: Francis Charette-Migneault Date: Fri, 2 Dec 2022 02:47:14 -0500 Subject: [PATCH 068/127] fix typo in ResourceRequirement.coresMin description (#214) --- CommandLineTool.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index 8770b6db..2bcc22ec 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -1193,7 +1193,7 @@ $graph: do not exceed the capacity of the node. Processes sharing a core must have the same level of isolation - (typically a container or VM) that they would normally. + (typically a container or VM) that they would normally have. The reported number of CPU cores reserved for the process, which is available to expressions on the CommandLineTool as From ad6f77c648ae9f0eaa2fd53ba7032b0523e12de8 Mon Sep 17 00:00:00 2001 From: Francis Charette-Migneault Date: Sun, 4 Dec 2022 05:00:47 -0500 Subject: [PATCH 069/127] fix workflow scatter typos (#215) --- Workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Workflow.yml b/Workflow.yml index e2569250..c285158d 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -506,7 +506,7 @@ $graph: The `scatter` field specifies one or more input parameters which will be scattered. An input parameter may be listed more than once. The declared - type of each input parameter is implicitly becomes an array of items of the + type of each input parameter implicitly becomes an array of items of the input parameter type. If a parameter is listed more than once, it becomes a nested array. As a result, upstream parameters which are connected to scattered parameters must be arrays. From f6172e5a0b22b00024907a285bc3da049dde889d Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Thu, 29 Dec 2022 10:08:23 +0100 Subject: [PATCH 070/127] Two tests were accidently still specifying v1.0 (#217) --- CONFORMANCE_TESTS.md | 10 ++++++---- tests/js-input-record.cwl | 2 +- tests/paramref_arguments_roundtrip.cwl | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CONFORMANCE_TESTS.md b/CONFORMANCE_TESTS.md index 1769be6c..22628704 100644 --- a/CONFORMANCE_TESTS.md +++ b/CONFORMANCE_TESTS.md @@ -181,7 +181,9 @@ Likewise, please do not test the `path` for `class: File` and `class: Directory` To add a new conformance test: 1. Ensure the CWL document you have tests the desired feature or aspect. -2. All `CommandLineTool`s need a software container (via `DockerRequirement`) for better reproducibility, preferably under `hints`. +2. The `cwlVersion` should be the latest version (`cwlVersion: v1.2`), unless + testing the mixing of versions as in the `tests/mixed-versions` directory. +3. All `CommandLineTool`s need a software container (via `DockerRequirement`) for better reproducibility, preferably under `hints`. Please limit your container usage to the following: - `dockerPull: docker.io/alpine:latest` - `dockerPull: docker.io/bash:4.4` @@ -189,9 +191,9 @@ To add a new conformance test: - `dockerPull: docker.io/python:3-slim` 4. Run your test using the CWL reference runner (`cwltool`) or another CWL runner that shows the correct behavior to collect the output, or confirm that validation/execution fails as expected -3. Add the CWL document and output object to the subdirectory `tests` in this repository. -4. Fill out a new entry in [conformance_tests.yaml](conformance_tests.yaml) following the [format of the conformance test file](#format-of-the-conformance-test-file) -5. Send a pull request to [current staging branch for the next revision of the CWL standards](https://github.com/common-workflow-language/cwl-v1.2/tree/1.2.1_proposed) +5. Add the CWL document and output object to the subdirectory `tests` in this repository. +6. Fill out a new entry in [conformance_tests.yaml](conformance_tests.yaml) following the [format of the conformance test file](#format-of-the-conformance-test-file) +7. Send a pull request to [current staging branch for the next revision of the CWL standards](https://github.com/common-workflow-language/cwl-v1.2/tree/1.2.1_proposed) with your changes ## Tags for conformance tests diff --git a/tests/js-input-record.cwl b/tests/js-input-record.cwl index 80e13174..1e656aea 100644 --- a/tests/js-input-record.cwl +++ b/tests/js-input-record.cwl @@ -1,4 +1,4 @@ -cwlVersion: v1.0 +cwlVersion: v1.2 class: CommandLineTool diff --git a/tests/paramref_arguments_roundtrip.cwl b/tests/paramref_arguments_roundtrip.cwl index 694adaf8..7d2a5fd7 100644 --- a/tests/paramref_arguments_roundtrip.cwl +++ b/tests/paramref_arguments_roundtrip.cwl @@ -1,5 +1,5 @@ #!/usr/bin/env cwl-runner -cwlVersion: v1.0 +cwlVersion: v1.2 class: CommandLineTool inputs: a_record: From f79146f6b59884ecbe6445ab3cb2b8a374b0ee64 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Wed, 25 Jan 2023 09:37:53 -0500 Subject: [PATCH 071/127] Increase the timeout in the time limit test When using singularity on a FUSE mount, the container startup time can exceed a 3 second timeout resulting in incorrect results. This PR increases the timeout in the test to 8 seconds. --- tests/timelimit-wf.cwl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/timelimit-wf.cwl b/tests/timelimit-wf.cwl index a244af42..2c15f127 100644 --- a/tests/timelimit-wf.cwl +++ b/tests/timelimit-wf.cwl @@ -4,7 +4,7 @@ cwlVersion: v1.2 requirements: ToolTimeLimit: - timelimit: 3 + timelimit: 8 inputs: i: @@ -22,7 +22,7 @@ steps: out: [o] run: class: CommandLineTool - baseCommand: ["sleep", "10"] + baseCommand: ["sleep", "16"] inputs: i: type: int? @@ -31,4 +31,3 @@ steps: type: string? outputBinding: outputEval: $(runtime.outdir) - From bcf1d89cca1b424468099cc05f21a440f531bdd6 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Mon, 13 Feb 2023 10:04:43 +0100 Subject: [PATCH 072/127] Create dependabot.yml --- .github/dependabot.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..90e05c40 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "github-actions" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" From fd53d9d00187451d3c666309b7841c18c864a4c5 Mon Sep 17 00:00:00 2001 From: GlassOfWhiskey Date: Sun, 12 Feb 2023 23:47:38 +0100 Subject: [PATCH 073/127] Added conformance tests for File and Directory glob Check that an error is thrown if `File` and `Directory` types are not correctly specified. --- conformance_tests.yaml | 48 ++++++++++++++++++++++++++++++++ tests/capture-dirs.cwl | 16 +++++++++++ tests/capture-files-and-dirs.cwl | 18 ++++++++++++ tests/capture-files.cwl | 16 +++++++++++ 4 files changed, 98 insertions(+) create mode 100644 tests/capture-dirs.cwl create mode 100644 tests/capture-files-and-dirs.cwl create mode 100644 tests/capture-files.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index f6bfd92e..db5d78a5 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3392,3 +3392,51 @@ } } tags: [ required, command_line_tool ] + +- id: capture_files + tool: tests/capture-files.cwl + job: tests/dir-job.yml + doc: Test that a type error is raised if directories are returned by glob evaluation when type is File + should_fail: true + tags: [ required, command_line_tool ] + +- id: capture_dirs + tool: tests/capture-dirs.cwl + job: tests/dir-job.yml + doc: Test that a type error is raised if files are returned by glob evaluation when type is Directory + should_fail: true + tags: [ required, command_line_tool ] + +- id: capture_files_and_dirs + tool: tests/capture-files-and-dirs.cwl + job: tests/dir-job.yml + doc: Test that both files and directories are captured by glob evaluation when type is [Directory, File] + output: { + "result": [ + { + "basename": "a", + "checksum": "sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709", + "class": "File", + "size": 0 + }, + { + "basename": "b", + "checksum": "sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709", + "class": "File", + "size": 0 + }, + { + "basename": "c", + "class": "Directory", + "listing": [ + { + "basename": "d", + "checksum": "sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709", + "class": "File", + "size": 0 + } + ] + } + ] + } + tags: [ required, command_line_tool ] \ No newline at end of file diff --git a/tests/capture-dirs.cwl b/tests/capture-dirs.cwl new file mode 100644 index 00000000..e76e784f --- /dev/null +++ b/tests/capture-dirs.cwl @@ -0,0 +1,16 @@ +cwlVersion: v1.2 +class: CommandLineTool +baseCommand: [cp, -r] +arguments: + - position: 2 + valueFrom: $(runtime.outdir) +inputs: + indir: + type: Directory + inputBinding: + position: 1 +outputs: + result: + type: Directory[] + outputBinding: + glob: $(inputs.indir.basename)/* diff --git a/tests/capture-files-and-dirs.cwl b/tests/capture-files-and-dirs.cwl new file mode 100644 index 00000000..43d47b1b --- /dev/null +++ b/tests/capture-files-and-dirs.cwl @@ -0,0 +1,18 @@ +cwlVersion: v1.2 +class: CommandLineTool +baseCommand: [cp, -r] +arguments: + - position: 2 + valueFrom: $(runtime.outdir) +inputs: + indir: + type: Directory + inputBinding: + position: 1 +outputs: + result: + type: + type: array + items: [File, Directory] + outputBinding: + glob: $(inputs.indir.basename)/* diff --git a/tests/capture-files.cwl b/tests/capture-files.cwl new file mode 100644 index 00000000..dcaf6c75 --- /dev/null +++ b/tests/capture-files.cwl @@ -0,0 +1,16 @@ +cwlVersion: v1.2 +class: CommandLineTool +baseCommand: [cp, -r] +arguments: + - position: 2 + valueFrom: $(runtime.outdir) +inputs: + indir: + type: Directory + inputBinding: + position: 1 +outputs: + result: + type: File[] + outputBinding: + glob: $(inputs.indir.basename)/* From 83c7208b12c0ff8b789ad514e5e034b43d85ed5c Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 13 Feb 2023 09:51:33 +0100 Subject: [PATCH 074/127] add hyperlinks to intent definition --- Process.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Process.yml b/Process.yml index f4489005..de9d6613 100644 --- a/Process.yml +++ b/Process.yml @@ -884,8 +884,9 @@ $graph: identity: true doc: | An identifier for the type of computational operation, of this Process. - Especially useful for "class: Operation", but can also be used for - CommandLineTool, Workflow, or ExpressionTool. + Especially useful for [`Operation`](Workflow.html#Operation), but can also be used for + [`CommandLineTool`](CommandLineTool.html#CommandLineTool), + [`Workflow`](Workflow.html#Workflow), or [ExpressionTool](Workflow.html#ExpressionTool). If provided, then this must be an IRI of a concept node that represents the type of operation, preferably defined within an ontology. From 020e70d6a1fc277bbd16854924e85a30c5ab7b54 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 09:11:37 +0000 Subject: [PATCH 075/127] Bump rojopolis/spellcheck-github-actions from 0.23.0 to 0.29.0 Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions) from 0.23.0 to 0.29.0. - [Release notes](https://github.com/rojopolis/spellcheck-github-actions/releases) - [Changelog](https://github.com/rojopolis/spellcheck-github-actions/blob/master/CHANGELOG.md) - [Commits](https://github.com/rojopolis/spellcheck-github-actions/compare/0.23.0...0.29.0) --- updated-dependencies: - dependency-name: rojopolis/spellcheck-github-actions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/spellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 3924461f..3d875d93 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - - uses: rojopolis/spellcheck-github-actions@0.23.0 + - uses: rojopolis/spellcheck-github-actions@0.29.0 name: Spellcheck with: config_path: .github/config/spellcheck.yml From c15357ad9ca6ad0cd7e8cb604614874c4fc5648b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 09:18:21 +0000 Subject: [PATCH 076/127] Bump actions/setup-python from 2 to 4 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 4. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v2...v4) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- .github/workflows/cwltool.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e4226c00..247ce9c1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 + - uses: actions/setup-python@v4 with: python-version: '3.8.x' diff --git a/.github/workflows/cwltool.yml b/.github/workflows/cwltool.yml index 3e0608a6..832c6be6 100644 --- a/.github/workflows/cwltool.yml +++ b/.github/workflows/cwltool.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 + - uses: actions/setup-python@v4 with: python-version: '3.9.x' From d1c2e2caed991ac51510cec9efe68e843d4ded5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 09:18:12 +0000 Subject: [PATCH 077/127] Bump actions/checkout from 2 to 3 Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- .github/workflows/cwltool.yml | 2 +- .github/workflows/spellcheck.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 247ce9c1..a14110c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: diff --git a/.github/workflows/cwltool.yml b/.github/workflows/cwltool.yml index 832c6be6..8b918086 100644 --- a/.github/workflows/cwltool.yml +++ b/.github/workflows/cwltool.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 3d875d93..03e2ed86 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -14,7 +14,7 @@ jobs: name: Spellcheck runs-on: ubuntu-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v3 - uses: rojopolis/spellcheck-github-actions@0.29.0 name: Spellcheck with: From 7052da7d85b2108ec7cdc6449b9cb5cb9dae74fe Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 13 Feb 2023 11:33:48 +0100 Subject: [PATCH 078/127] ci: use cwltest pytest plugin for better speed --- .github/workflows/ci.yml | 2 +- .github/workflows/cwltool.yml | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a14110c3..e73e8ae2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: python-version: '3.8.x' - name: Setup prerequirements - run: pip install cwltest schema-salad[pycodegen] + run: pip install cwltest 'schema-salad[pycodegen]' - name: Download schema for conformance_tests.yaml run: curl -LO https://raw.githubusercontent.com/common-workflow-language/cwltest/main/cwltest/cwltest-schema.yml diff --git a/.github/workflows/cwltool.yml b/.github/workflows/cwltool.yml index 8b918086..820f385f 100644 --- a/.github/workflows/cwltool.yml +++ b/.github/workflows/cwltool.yml @@ -14,7 +14,8 @@ on: jobs: test_with_cwltool: runs-on: ubuntu-latest - + env: + CWLTOOL_OPTIONS: "--parallel --relax-path-checks" steps: - uses: actions/checkout@v3 @@ -23,7 +24,13 @@ jobs: python-version: '3.9.x' - name: Setup prerequirements - run: pip install cwltest cwltool - + run: pip install "cwltest>=2.3" pytest-xdist "cwltool>=3.1.20230213100550" + + - name: Copy in cwltool-specific configuration for the cwltest pytest plugin + run: cp "$(python -c 'from cwltool.tests.util import get_data; print(get_data("tests/cwl-conformance/cwltool-conftest.py"))')" conftest.py + + - name: Copy conformance test index to .cwltest.yaml + run: cp conformance_tests.yaml conformance_tests.cwltest.yaml + - name: Run tests against the reference runner - run: ./run_test.sh RUNNER=cwltool "EXTRA=--parallel --relax-path-checks" -j$(nproc) + run: python -m pytest conformance_tests.cwltest.yaml -n auto -rs From bd5d12f96a88099dc1e33da961cdd8e75e890e81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 02:50:42 +0000 Subject: [PATCH 079/127] Bump rojopolis/spellcheck-github-actions from 0.29.0 to 0.30.0 Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions) from 0.29.0 to 0.30.0. - [Release notes](https://github.com/rojopolis/spellcheck-github-actions/releases) - [Changelog](https://github.com/rojopolis/spellcheck-github-actions/blob/master/CHANGELOG.md) - [Commits](https://github.com/rojopolis/spellcheck-github-actions/compare/0.29.0...0.30.0) --- updated-dependencies: - dependency-name: rojopolis/spellcheck-github-actions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/spellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 03e2ed86..22c86f50 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: rojopolis/spellcheck-github-actions@0.29.0 + - uses: rojopolis/spellcheck-github-actions@0.30.0 name: Spellcheck with: config_path: .github/config/spellcheck.yml From 5411b8cad173121641b23ba9a0da2cf36e6df2d6 Mon Sep 17 00:00:00 2001 From: GlassOfWhiskey Date: Fri, 3 Mar 2023 16:32:50 +0100 Subject: [PATCH 080/127] Fixed MacOS X compatibility for wc-tool --- tests/wc-tool.cwl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/wc-tool.cwl b/tests/wc-tool.cwl index ed9852d8..a0ba09b3 100755 --- a/tests/wc-tool.cwl +++ b/tests/wc-tool.cwl @@ -11,7 +11,7 @@ outputs: type: File outputBinding: { glob: output } -baseCommand: [wc, -l] +baseCommand: [sed, -n, $=] stdin: $(inputs.file1.path) stdout: output From e136888310d3edebf1969b47bd8f7ae790de7120 Mon Sep 17 00:00:00 2001 From: GlassOfWhiskey Date: Sat, 4 Mar 2023 18:21:19 +0100 Subject: [PATCH 081/127] Document that ExpressionTool outputs are always valid Up to CWL v1.2, type-checking never occurs for ExpressionTool output objects in the reference implementation. Therefore, it must be explicitly stated in the specification. The goal is then to fix this behaviour in CWL >= v1.3. --- Workflow.yml | 2 ++ concepts.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Workflow.yml b/Workflow.yml index c285158d..1e2f0c34 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -120,6 +120,8 @@ $graph: typeDSL: True doc: | Specify valid types of data that may be assigned to this parameter. + Note that this field just acts as a hint, as the outputs of an + ExpressionTool process are always considered valid. - name: WorkflowInputParameter diff --git a/concepts.md b/concepts.md index 5fe77008..99f795fc 100644 --- a/concepts.md +++ b/concepts.md @@ -445,7 +445,7 @@ a [`cwl:tool`](#Executing_CWL_documents_as_scripts) entry) or by any other means 1. Perform any further setup required by the specific process type. 1. Execute the process. 1. Capture results of process execution into the output object. -1. Validate the output object against the `outputs` schema for the process. +1. Validate the output object against the `outputs` schema for the process (with the exception of ExpressionTool outputs, which are always considered valid). 1. Report the output object to the process caller. ## Requirements and hints From 192bb3211f1cae8ca4ba459793dc4c0dc5a2a94d Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 17 Apr 2023 18:34:16 +0200 Subject: [PATCH 082/127] add render script --- cwlsite-v1.2-only-job.yaml | 8 ++++++++ render.bash | 11 +++++++++++ 2 files changed, 19 insertions(+) create mode 100755 cwlsite-v1.2-only-job.yaml create mode 100644 render.bash diff --git a/cwlsite-v1.2-only-job.yaml b/cwlsite-v1.2-only-job.yaml new file mode 100755 index 00000000..cfac5560 --- /dev/null +++ b/cwlsite-v1.2-only-job.yaml @@ -0,0 +1,8 @@ +#!/usr/bin/env cwl-runner +cwl:tool: cwlsite.cwl +jekyll-site: {class: Directory, location: ../content} +rnaseq-training: {class: Directory, location: ../rnaseq-training} +render: +- {$import: cwlsite-v1.2-job.yaml} +schemas: +- {$import: cwlsite-v1.2-schemas.yaml} diff --git a/render.bash b/render.bash new file mode 100644 index 00000000..2282ed8b --- /dev/null +++ b/render.bash @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +if [[ -z "$WORKSPACE" ]] ; then + WORKSPACE=$PWD/temp/ +fi +mkdir -p $WORKSPACE +git clone https://github.com/common-workflow-language/cwl-website.git $WORKSPACE/cwl-website +CURDIR=$PWD +pushd $WORKSPACE/cwl-website ; ln -s $CURDIR v1.2 ; popd +cp cwlsite-v1.2-only-job.yaml $WORKSPACE/cwl-website/site/ +mkdir -p render +cwltool $@ --cache $WORKSPACE/cache --outdir $PWD/render --relax-path-checks $WORKSPACE/cwl-website/site/cwlsite.cwl $WORKSPACE/cwl-website/site/cwlsite-v1.2-only-job.yaml From 2bb40f502f62e1769c4e6b6eaa5e02b366c6b828 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 17 Apr 2023 18:49:49 +0200 Subject: [PATCH 083/127] install cwltool when rendering --- requirements.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..f5c7cc13 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +cwltool From a75fbcb98c0816c82ab8e48f8c6fe5fed9d8344f Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 17 Apr 2023 18:56:28 +0200 Subject: [PATCH 084/127] also lockfile --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index f5c7cc13..764ef123 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ cwltool +lockfile From e8508f8a399807b6d4611f86101ca4279105b690 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 17 Apr 2023 18:57:58 +0200 Subject: [PATCH 085/127] render: skip docker --- render.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/render.bash b/render.bash index 2282ed8b..a1d49dd6 100644 --- a/render.bash +++ b/render.bash @@ -8,4 +8,4 @@ CURDIR=$PWD pushd $WORKSPACE/cwl-website ; ln -s $CURDIR v1.2 ; popd cp cwlsite-v1.2-only-job.yaml $WORKSPACE/cwl-website/site/ mkdir -p render -cwltool $@ --cache $WORKSPACE/cache --outdir $PWD/render --relax-path-checks $WORKSPACE/cwl-website/site/cwlsite.cwl $WORKSPACE/cwl-website/site/cwlsite-v1.2-only-job.yaml +cwltool $@ --no-container --cache $WORKSPACE/cache --outdir $PWD/render --relax-path-checks $WORKSPACE/cwl-website/site/cwlsite.cwl $WORKSPACE/cwl-website/site/cwlsite-v1.2-only-job.yaml From c928c987aa53832e0e0c117861105379d4bfa601 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Tue, 18 Apr 2023 07:51:47 +0200 Subject: [PATCH 086/127] render: re-use git checkout --- render.bash | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/render.bash b/render.bash index a1d49dd6..05bf4852 100644 --- a/render.bash +++ b/render.bash @@ -3,7 +3,13 @@ if [[ -z "$WORKSPACE" ]] ; then WORKSPACE=$PWD/temp/ fi mkdir -p $WORKSPACE -git clone https://github.com/common-workflow-language/cwl-website.git $WORKSPACE/cwl-website +repo=https://github.com/common-workflow-language/cwl-website \ +bn=$(basename $repo) +if [[ -d $bn ]] ; then + (cd $bn && git fetch origin && git reset --hard origin/main) +else + git clone $repo && pushd $bn; git checkout main ; git show --no-patch ; popd +fi CURDIR=$PWD pushd $WORKSPACE/cwl-website ; ln -s $CURDIR v1.2 ; popd cp cwlsite-v1.2-only-job.yaml $WORKSPACE/cwl-website/site/ From 92d0acdcba8fdc33f8ba6e6b7bd0563b2982faaa Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Wed, 19 Apr 2023 11:19:26 +0200 Subject: [PATCH 087/127] official IANA media types for CWL documents Fixes: #232 --- .github/config/wordlist.txt | 1 + concepts.md | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/.github/config/wordlist.txt b/.github/config/wordlist.txt index 7fdcbafb..9cc077e6 100644 --- a/.github/config/wordlist.txt +++ b/.github/config/wordlist.txt @@ -46,6 +46,7 @@ gitter gmail hervé https +iana ietf implementer implementers diff --git a/concepts.md b/concepts.md index 99f795fc..6219c447 100644 --- a/concepts.md +++ b/concepts.md @@ -102,6 +102,13 @@ preprocessing steps described in the An implementation may formally validate the structure of a CWL document using SALAD schemas located at https://github.com/common-workflow-language/cwl-v1.2/ +The official IANA media-type for CWL documents is [`application/cwl`](https://www.iana.org/assignments/media-types/application/cwl) +for either JSON or YAML format. For JSON formatted CWL documents, +[`application/cwl+json`](https://www.iana.org/assignments/media-types/application/cwl+json) +can be used. For specifying a YAML formatted CWL document, one can use +`application/cwl+yaml` but that is not an official IANA media-type yet; as of +2023-04-19 the `+yaml` suffix has yet to be approved. + CWL documents commonly reference other CWL documents. Each document must declare the `cwlVersion` of that document. Implementations must validate against the document's declared version. Implementations From 37a44af8227542dad1b66c903552ee7352ded8a5 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Wed, 19 Apr 2023 12:56:57 +0200 Subject: [PATCH 088/127] spelling: check YAML docs --- .github/config/spellcheck.yml | 3 +- .github/config/wordlist.txt | 141 +++++++++++++++++++++++++++++++++- CODE_OF_CONDUCT.md | 3 +- CommandLineTool.yml | 2 +- 4 files changed, 144 insertions(+), 5 deletions(-) diff --git a/.github/config/spellcheck.yml b/.github/config/spellcheck.yml index 9f327aea..8377b135 100644 --- a/.github/config/spellcheck.yml +++ b/.github/config/spellcheck.yml @@ -17,5 +17,6 @@ matrix: ignores: - :matches(code, pre) sources: - - '**/*.md' + - '!env*/**|**/*.md' + - '!env*/**|!tests/**|*.yml' default_encoding: utf-8 diff --git a/.github/config/wordlist.txt b/.github/config/wordlist.txt index 9cc077e6..1f979e4c 100644 --- a/.github/config/wordlist.txt +++ b/.github/config/wordlist.txt @@ -1,49 +1,107 @@ acyclic amstutz +arrayschema arvados auditability avro backchannel backrub +basecommand basedir +basename +basetypesdoc +bioconda +bioinformatics bnf bogdan +bowtie +changelog checkpoint checkpointing +checksums chilton cisphobia classname +cmd +commandinputarrayschema +commandinputenumschema +commandinputparameter +commandinputrecordfield +commandinputrecordschema +commandinputschema +commandlinebindable +commandlinebinding commandlinetool +commandlinetooldoc commandlinetools +commandoutputarrayschema +commandoutputbinding +commandoutputenumschema +commandoutputparameter +commandoutputrecordfield +commandoutputrecordschema commonwl +contrib complextype +coresMin coreutils +cpus +crossproduct +cryptographic ctbrown curii -curoverse cwl cwltest cwltool +cwltype cwlversion cyclic dataflow dev +dirent +docafter +docchild +dockerfile +dockerimport +dockerload +dockeroutputdirectory +dockerpull dockerrequirement +documentroot +docparent +doi +dotproduct doubleq dsl dusenbery edu eg +enablereuse +entryname +enum +enumschema +entrypoint +envdef +environmentdef +envname +envvalue envvarrequirement expressionlib +expressionplaceholder expressiontool +expressiontooloutputparameter expressiontools +fieldbase +filenameABCDEFG filesystem freedesktop gavrilovic +geoscience ghose gitter +globbing gmail +gunzip hervé https iana @@ -55,24 +113,48 @@ implementors initialworkdirrequirement initialworkdirrequirements inlinejavascriptrequirement +inplaceupdate inplaceupdaterequirement +inputarrayschema +inputenumschema +inputbinding +inputformat +inputrecordfield +inputrecordschema inputparameter +inputschema institut +interoperable invocab +ioschema +ipv iri +itemseparator jmchilton json +jsonldpredicate junit kaushik +kib ld lexicographically linkmerge +linkmergemethod +loadcontents +loadlisting +loadlistingenum +loadlistingrequirement +localhost lookahead +loopback maccallum macos +mappredicate +mapsubject mebibyte mebibytes ménager +metacharacters metaschema misgendering mrc @@ -85,43 +167,79 @@ nebojša nekrutenko networkaccess neuro +nolinkcheck onlinepubs opengroup +operationinputparameter +operationoutputparameter orcid osx +outputarrayschema +outputbinding +outputenumschema +outputeval +outputformat +outputschema outputsource +outputparameter +outputrecordfield +outputrecordschema +pathname petermac pickvalue +pickvaluemethod posix pre preprocess preprocessed preprocessing +primitivetype +processrequirement psu publically pvanheus rdf +rdfs +recordfield +recordschema recurse +refscope repo reproducibility +resolvers resourcerequirement routable +rrid runtime +saladversion sbgenomics scatterfeaturerequirement +scattermethod schemadefrequirement schemaorg schemas +scr secondaryfiles +secondaryfileschema secondaryfilesdsl +semver shellcommandrequirement singleq +sld +specializeto +specializefrom softwarepackage softwarerequirement soiland +stderr +stdin +stdout stepinputexpressionrequirement stian +streamable +subdirectories subdirectory +subnet subprocess subprocesses subscope @@ -133,24 +251,45 @@ substrings subtype subtypes subworkflow +subworkflows +subworkflowfeaturerequirement subworkflowrequirement superset svg +symlink +tbb +testcase tijanic tijanić +timelimit toc tooltimelimit transcode txt +typedef +typedsl uc ucdavis +udocker +underspecified untrusted +updatable uri utf +valuefrom vandewege virtualenv +virtualized walkthrough wdl whitespace +workflowdoc +workflowinputparameter +workflowoutputparameter +workflowstep +workflowstepinput +workflowstepoutput +workreuse xdg yaml +yml diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 846a6b13..4f041893 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -102,7 +102,6 @@ As a stop gap measure until a more formal governance structure is adopted, the following individuals make up the leadership of the CWL Project: Peter Amstutz, John Chilton, Michael R. Crusoe, and Nebojša Tijanić. -To report an issue with anyone on the team you can escalate to Ward Vandewege - (Curoverse) ward@curoverse.com, Anton Nekrutenko (Galaxy) +To report an issue with anyone on the team you can escalate to Anton Nekrutenko (Galaxy) anton AT bx DOT psu DOT edu, C. Titus Brown (UC Davis) ctbrown@ucdavis.edu, or Brandi Davis-Dusenbery (Seven Bridges Genomics) brandi@sbgenomics.com. diff --git a/CommandLineTool.yml b/CommandLineTool.yml index 2bcc22ec..b2a1af8e 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -1115,7 +1115,7 @@ $graph: Modify the behavior of CommandLineTool to generate a single string containing a shell command line. Each item in the `arguments` list must be joined into a string separated by single spaces and quoted to prevent - intepretation by the shell, unless `CommandLineBinding` for that argument + interpretation by the shell, unless `CommandLineBinding` for that argument contains `shellQuote: false`. If `shellQuote: false` is specified, the argument is joined into the command string without quoting, which allows the use of shell metacharacters such as `|` for pipes. From 979accf044199459a06ebbf33445c3fd7278ba0d Mon Sep 17 00:00:00 2001 From: GlassOfWhiskey Date: Mon, 17 Apr 2023 23:02:19 +0200 Subject: [PATCH 089/127] Fixes #193 --- tests/iwd/iwd-passthrough5.cwl | 17 +++++++++++++++++ tests/iwd/iwd-subdir-job.yml | 3 +++ tests/iwd/iwd-subdir-tool.cwl | 17 +++++++++++++++++ tests/iwd/iwd-subdir-wf.cwl | 19 +++++++++++++++++++ tests/iwd/test-index.yaml | 21 +++++++++++++++++++++ 5 files changed, 77 insertions(+) create mode 100644 tests/iwd/iwd-passthrough5.cwl create mode 100644 tests/iwd/iwd-subdir-job.yml create mode 100644 tests/iwd/iwd-subdir-tool.cwl create mode 100644 tests/iwd/iwd-subdir-wf.cwl diff --git a/tests/iwd/iwd-passthrough5.cwl b/tests/iwd/iwd-passthrough5.cwl new file mode 100644 index 00000000..1335c55b --- /dev/null +++ b/tests/iwd/iwd-passthrough5.cwl @@ -0,0 +1,17 @@ +class: CommandLineTool +cwlVersion: v1.2 +doc: Given a directory, emit it unchanged +requirements: + InitialWorkDirRequirement: + listing: + - entry: $(inputs.testdir) + writable: false +inputs: + testdir: + type: Directory +outputs: + testdir: + type: Directory + outputBinding: + glob: $(inputs.testdir.basename) +baseCommand: "true" diff --git a/tests/iwd/iwd-subdir-job.yml b/tests/iwd/iwd-subdir-job.yml new file mode 100644 index 00000000..50c36e8f --- /dev/null +++ b/tests/iwd/iwd-subdir-job.yml @@ -0,0 +1,3 @@ +testdir: + class: Directory + path: ../testdir diff --git a/tests/iwd/iwd-subdir-tool.cwl b/tests/iwd/iwd-subdir-tool.cwl new file mode 100644 index 00000000..8d6a3d28 --- /dev/null +++ b/tests/iwd/iwd-subdir-tool.cwl @@ -0,0 +1,17 @@ +class: CommandLineTool +cwlVersion: v1.2 +doc: Given an input directory, emit a subdirectory as output +requirements: + InitialWorkDirRequirement: + listing: + - entry: $(inputs.testdir) + writable: false +inputs: + testdir: + type: Directory +outputs: + testdir: + type: Directory + outputBinding: + glob: testdir/c +baseCommand: "true" diff --git a/tests/iwd/iwd-subdir-wf.cwl b/tests/iwd/iwd-subdir-wf.cwl new file mode 100644 index 00000000..b5d99883 --- /dev/null +++ b/tests/iwd/iwd-subdir-wf.cwl @@ -0,0 +1,19 @@ +class: Workflow +cwlVersion: v1.2 +inputs: + testdir: Directory +outputs: + out: + type: Directory + outputSource: step2/testdir +steps: + step1: + run: iwd-subdir-tool.cwl + in: + testdir: testdir + out: [testdir] + step2: + run: iwd-passthrough5.cwl + in: + testdir: step1/testdir + out: [testdir] diff --git a/tests/iwd/test-index.yaml b/tests/iwd/test-index.yaml index f544ce89..d39f4747 100644 --- a/tests/iwd/test-index.yaml +++ b/tests/iwd/test-index.yaml @@ -297,3 +297,24 @@ "checksum": "sha1$57f77b36009332d236b52b4beca77301b503b27c" "size": 268866 tags: [ initial_work_dir, command_line_tool ] + +- job: iwd-subdir-job.yml + id: iwd-subdir + tool: iwd-subdir-wf.cwl + doc: "Test emitting a subdirectory from initial workdir" + output: + "out": { + "location": "c", + "basename": "c", + "class": "Directory", + "listing": [ + { + "location": "d", + "basename": "d", + "class": "File", + "checksum": "sha1$da39a3ee5e6b4b0d3255bfef95601890afd80709", + "size": 0 + } + ] + } + tags: [ initial_work_dir, command_line_tool, workflow ] From 63d47845604a83b9ef3ae5a6324b9b9931df8160 Mon Sep 17 00:00:00 2001 From: GlassOfWhiskey Date: Fri, 21 Apr 2023 21:47:57 +0200 Subject: [PATCH 090/127] Substitute URI with IRI in docs --- Process.yml | 14 +++++++------- concepts.md | 2 -- invocation.md | 4 ++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/Process.yml b/Process.yml index de9d6613..41d24a2d 100644 --- a/Process.yml +++ b/Process.yml @@ -69,10 +69,10 @@ $graph: Files are represented as objects with `class` of `File`. File objects have a number of properties that provide metadata about the file. - The `location` property of a File is a URI that uniquely identifies the - file. Implementations must support the `file://` URI scheme and may support + The `location` property of a File is a IRI that uniquely identifies the + file. Implementations must support the `file://` IRI scheme and may support other schemes such as `http://` and `https://`. The value of `location` may also be a - relative reference, in which case it must be resolved relative to the URI + relative reference, in which case it must be resolved relative to the IRI of the document it appears in. Alternately to `location`, implementations must also accept the `path` property on File, which must be a filesystem path available on the same host as the CWL runner (for inputs) or the @@ -115,7 +115,7 @@ $graph: modified by `outputEval`. Alternately, if the file `cwl.output.json` is present in the output, `outputBinding` is ignored. - File objects in the output must provide either a `location` URI or a `path` + File objects in the output must provide either a `location` IRI or a `path` property in the context of the tool execution runtime (local to the compute node, or within the executing container). @@ -314,8 +314,8 @@ $graph: Directories are represented as objects with `class` of `Directory`. Directory objects have a number of properties that provide metadata about the directory. - The `location` property of a Directory is a URI that uniquely identifies - the directory. Implementations must support the file:// URI scheme and may + The `location` property of a Directory is a IRI that uniquely identifies + the directory. Implementations must support the file:// IRI scheme and may support other schemes such as http://. Alternately to `location`, implementations must also accept the `path` property on Directory, which must be a filesystem path available on the same host as the CWL runner (for @@ -344,7 +344,7 @@ $graph: first and have local values of `path` assigned. Directory objects in CommandLineTool output must provide either a - `location` URI or a `path` property in the context of the tool execution + `location` IRI or a `path` property in the context of the tool execution runtime (local to the compute node, or within the executing container). An ExpressionTool may forward file references from input to output by using diff --git a/concepts.md b/concepts.md index 6219c447..760751d1 100644 --- a/concepts.md +++ b/concepts.md @@ -8,8 +8,6 @@ **Avro**: https://avro.apache.org/docs/1.8.1/spec.html -**Uniform Resource Identifier (URI) Generic Syntax**: https://tools.ietf.org/html/rfc3986) - **Internationalized Resource Identifiers (IRIs)**: https://tools.ietf.org/html/rfc3987 diff --git a/invocation.md b/invocation.md index a50e3410..8f7e8d73 100644 --- a/invocation.md +++ b/invocation.md @@ -169,9 +169,9 @@ path within the output directory. It is an error for "path" to refer outside the output directory. Similarly, if a File or Directory "cwl.output.json" contains -`location`, it is resolved as relative reference URI with a base URI +`location`, it is resolved as relative reference IRI with a base IRI representing the output directory. If `location` contains some other -absolute URI with a scheme supported by the implementation, the +absolute IRI with a scheme supported by the implementation, the implementation may choose to accept it. If both `path` and `location` are provided on a File or Directory in From 4f9b34615f4a495b5bd5d4e59fcd90582f2e5332 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 8 May 2023 17:16:41 +0200 Subject: [PATCH 091/127] Add tests for decimal representation of very big and very small numbers Closes: #240 --- conformance_tests.yaml | 23 +++++++++++++++- tests/floats_small_and_large.cwl | 39 +++++++++++++++++++++++++++ tests/floats_small_and_large_nojs.cwl | 32 ++++++++++++++++++++++ 3 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 tests/floats_small_and_large.cwl create mode 100644 tests/floats_small_and_large_nojs.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index b3749bff..03891766 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3168,7 +3168,7 @@ - job: tests/empty.json tool: tests/params_broken_length_of_non_list.cwl - doc: Test paramer reference that refers to length of non-array input + doc: Test paramater reference that refers to length of non-array input should_fail: true tags: [ required, command_line_tool ] id: length_for_non_array @@ -3440,3 +3440,24 @@ ] } tags: [ required, command_line_tool ] + +- id: very_big_and_very_floats + doc: Confirm that very big and very small numbers are represented using decimals, not scientific notation + tool: tests/floats_small_and_large.cwl + job: tests/empty.json + output: { "result": "0.00001 0.0000123 123000 1230000" } + tags: [ inline_javascript, command_line_tool ] + +- id: very_big_and_very_floats_nojs + doc: Confirm that very big and very small numbers are represented using decimals, not scientific notation + tool: tests/floats_small_and_large_nojs.cwl + job: tests/empty.json + output: { + "result": { + "basename": "dump", + "class": "File", + "checksum": "sha1$8a3913a553b8f29d47b99c1f4b0f6c2ee833cdc2", + "size": 32 + } + } + tags: [ required, command_line_tool ] diff --git a/tests/floats_small_and_large.cwl b/tests/floats_small_and_large.cwl new file mode 100644 index 00000000..43432736 --- /dev/null +++ b/tests/floats_small_and_large.cwl @@ -0,0 +1,39 @@ +cwlVersion: v1.0 +class: CommandLineTool +baseCommand: echo +requirements: + InlineJavascriptRequirement: {} + +inputs: + annotation_prokka_evalue: + type: float + default: 0.00001 + inputBinding: {} + + annotation_prokka_evalue2: + type: float + default: 1.23e-05 + inputBinding: {} + + annotation_prokka_evalue3: + type: float + default: 1.23e5 + inputBinding: {} + + annotation_prokka_evalue4: + type: float + default: 1230000 + inputBinding: {} + + +arguments: [ -n ] + +stdout: dump + +outputs: + result: + type: string + outputBinding: + glob: dump + loadContents: true + outputEval: $(self[0].contents) diff --git a/tests/floats_small_and_large_nojs.cwl b/tests/floats_small_and_large_nojs.cwl new file mode 100644 index 00000000..2f8aa808 --- /dev/null +++ b/tests/floats_small_and_large_nojs.cwl @@ -0,0 +1,32 @@ +cwlVersion: v1.0 +class: CommandLineTool +baseCommand: echo + +inputs: + annotation_prokka_evalue: + type: float + default: 0.00001 + inputBinding: {} + + annotation_prokka_evalue2: + type: float + default: 1.23e-05 + inputBinding: {} + + annotation_prokka_evalue3: + type: float + default: 1.23e5 + inputBinding: {} + + annotation_prokka_evalue4: + type: float + default: 1230000 + inputBinding: {} + + +arguments: [ -n ] + +stdout: dump + +outputs: + result: stdout From cbbf9824f9f5ec098cf24d1e21c809ef39d10c68 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 8 May 2023 17:28:38 +0200 Subject: [PATCH 092/127] ci: add codespell check --- .github/config/wordlist.txt | 1 - .github/workflows/spellcheck.yml | 10 +++++++--- conformance_tests.yaml | 2 +- tests/revsort-packed.cwl | 2 +- tests/revsort.cwl | 2 +- tests/sorttool.cwl | 2 +- 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/config/wordlist.txt b/.github/config/wordlist.txt index 1f979e4c..1a09c8ca 100644 --- a/.github/config/wordlist.txt +++ b/.github/config/wordlist.txt @@ -196,7 +196,6 @@ preprocessing primitivetype processrequirement psu -publically pvanheus rdf rdfs diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 22c86f50..32644368 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -8,14 +8,18 @@ on: jobs: build: - # https://github.com/marketplace/actions/github-spellcheck-action - # To run locally, `pip install pyspelling`, followed by - # `pyspelling -c .github/config/spellcheck.yml`. name: Spellcheck runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 + - name: Codespell with annotations + uses: codespell-project/actions-codespell@v1.0 + with: + skip: tests/EDAM.owl,tests/foaf.rdf,tests/underscore.js - uses: rojopolis/spellcheck-github-actions@0.30.0 name: Spellcheck + # https://github.com/marketplace/actions/github-spellcheck-action + # To run locally, `pip install pyspelling`, followed by + # `pyspelling -c .github/config/spellcheck.yml`. with: config_path: .github/config/spellcheck.yml diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 03891766..42a92557 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3168,7 +3168,7 @@ - job: tests/empty.json tool: tests/params_broken_length_of_non_list.cwl - doc: Test paramater reference that refers to length of non-array input + doc: Test parameter reference that refers to length of non-array input should_fail: true tags: [ required, command_line_tool ] id: length_for_non_array diff --git a/tests/revsort-packed.cwl b/tests/revsort-packed.cwl index ccaed394..eedebe20 100644 --- a/tests/revsort-packed.cwl +++ b/tests/revsort-packed.cwl @@ -19,7 +19,7 @@ { "type": "boolean", "default": true, - "doc": "If true, reverse (decending) sort", + "doc": "If true, reverse (descending) sort", "id": "#main/reverse_sort" } ], diff --git a/tests/revsort.cwl b/tests/revsort.cwl index 7f2cb286..afcb45c9 100644 --- a/tests/revsort.cwl +++ b/tests/revsort.cwl @@ -26,7 +26,7 @@ inputs: reverse_sort: type: boolean default: true - doc: "If true, reverse (decending) sort" + doc: "If true, reverse (descending) sort" # The "outputs" array defines the structure of the output object that describes # the outputs of the workflow. diff --git a/tests/sorttool.cwl b/tests/sorttool.cwl index e8c5dd48..e03bc30f 100644 --- a/tests/sorttool.cwl +++ b/tests/sorttool.cwl @@ -6,7 +6,7 @@ cwlVersion: v1.2 # This example is similar to the previous one, with an additional input # parameter called "reverse". It is a boolean parameter, which is -# intepreted as a command line flag. The value of "prefix" is used for +# interpreted as a command line flag. The value of "prefix" is used for # flag to put on the command line if "reverse" is true, if "reverse" is # false, no flag is added. # From 3d01afe326cf050ec271e6fecebfa90551fcbfa4 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 8 May 2023 17:35:55 +0200 Subject: [PATCH 093/127] sync metaschema --- .github/workflows/spellcheck.yml | 2 +- .../metaschema/field_name_schema.yml | 1 + .../metaschema/ident_res_schema.yml | 1 + .../schema_salad/metaschema/import_include.md | 39 +++++++++++++++++-- salad/schema_salad/metaschema/link_res.yml | 2 +- salad/schema_salad/metaschema/metaschema.yml | 8 ++-- .../metaschema/metaschema_base.yml | 12 ++++-- salad/schema_salad/metaschema/salad.md | 27 +++++++++---- salad/schema_salad/metaschema/typedsl_res.yml | 2 +- 9 files changed, 74 insertions(+), 20 deletions(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 32644368..3177e44d 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -15,7 +15,7 @@ jobs: - name: Codespell with annotations uses: codespell-project/actions-codespell@v1.0 with: - skip: tests/EDAM.owl,tests/foaf.rdf,tests/underscore.js + skip: EDAM.owl,foaf.rdf,underscore.js,CODE_OF_CONDUCT.md - uses: rojopolis/spellcheck-github-actions@0.30.0 name: Spellcheck # https://github.com/marketplace/actions/github-spellcheck-action diff --git a/salad/schema_salad/metaschema/field_name_schema.yml b/salad/schema_salad/metaschema/field_name_schema.yml index 5089c4b6..a4942386 100644 --- a/salad/schema_salad/metaschema/field_name_schema.yml +++ b/salad/schema_salad/metaschema/field_name_schema.yml @@ -5,6 +5,7 @@ "$graph": [{ "name": "ExampleType", "type": "record", + "documentRoot": true, "fields": [{ "name": "base", "type": "string", diff --git a/salad/schema_salad/metaschema/ident_res_schema.yml b/salad/schema_salad/metaschema/ident_res_schema.yml index 704116d9..9e4a28b6 100644 --- a/salad/schema_salad/metaschema/ident_res_schema.yml +++ b/salad/schema_salad/metaschema/ident_res_schema.yml @@ -5,6 +5,7 @@ "$graph": [{ "name": "ExampleType", "type": "record", + "documentRoot": true, "fields": [{ "name": "id", "type": "string", diff --git a/salad/schema_salad/metaschema/import_include.md b/salad/schema_salad/metaschema/import_include.md index 84397f7a..980240e9 100644 --- a/salad/schema_salad/metaschema/import_include.md +++ b/salad/schema_salad/metaschema/import_include.md @@ -16,8 +16,9 @@ document must be the URI used to retrieve the imported document. If the `$import` URI includes a document fragment, the fragment must be excluded from the base URI used to preprocess the imported document. -Once loaded and processed, the `$import` node is replaced in the document -structure by the object or array yielded from the import operation. +If the `$import` node is in an array and the import operation yields an array, +it is flattened to the parent array. Otherwise the `$import` node is replaced +in the document structure by the object or array yielded from the import operation. URIs may reference document fragments which refer to specific an object in the target document. This indicates that the `$import` node must be @@ -26,7 +27,7 @@ replaced by only the object with the appropriate fragment identifier. It is a fatal error if an import directive refers to an external resource or resource fragment which does not exist or is not accessible. -### Import example +### Import example: replacing the `$import` node import.json: ``` @@ -60,6 +61,38 @@ This becomes: } ``` +### Import example: flattening the `$import`ed array + +import.json: +``` +[ "hello", "world" ] +``` + +parent.json: +``` +{ + "form": [ + "bar", + { + "$import": "import.json" + } + ] +} + +``` + +This becomes: + +``` +{ + "form": [ + "bar", + "hello", + "world" + ] +} +``` + ## Include During preprocessing traversal, an implementation must resolve `$include` diff --git a/salad/schema_salad/metaschema/link_res.yml b/salad/schema_salad/metaschema/link_res.yml index a8e698ea..4ce36fb4 100644 --- a/salad/schema_salad/metaschema/link_res.yml +++ b/salad/schema_salad/metaschema/link_res.yml @@ -2,7 +2,7 @@ ## Link resolution The schema may designate one or more fields as link fields that reference other - objects. Processing must resolve links to either absolute URIs using the + objects. Processing must resolve links to absolute URIs using the following rules: * If a reference URI is prefixed with `#` it is a relative diff --git a/salad/schema_salad/metaschema/metaschema.yml b/salad/schema_salad/metaschema/metaschema.yml index 3340c227..de0b0931 100644 --- a/salad/schema_salad/metaschema/metaschema.yml +++ b/salad/schema_salad/metaschema/metaschema.yml @@ -154,7 +154,7 @@ $graph: then finally `#foo`. The first valid URI in the search order shall be used as the fully resolved value of the identifier. The value of the refScope field is the specified number of levels from the containing - identifer scope before starting the search, so if `refScope: 2` then + identifier scope before starting the search, so if `refScope: 2` then "baz" and "bar" must be stripped to get the base `#foo` and search `#foo/foo` and the `#foo`. The last scope searched must be the top level scope before determining if the identifier cannot be resolved. @@ -309,7 +309,8 @@ $graph: type: boolean? doc: | If true, this record is abstract and may be used as a base for other - records, but is not valid on its own. + records, but is not valid on its own. Inherited fields may be + re-specified to narrow their type. - name: extends type: @@ -321,7 +322,7 @@ $graph: refScope: 1 doc: | Indicates that this record inherits fields from one or more base records. - + Inherited fields may be re-specified to narrow their type. - name: specialize type: - SpecializeDef[]? @@ -368,6 +369,7 @@ $graph: doc: "Must be `documentation`" type: type: enum + name: Documentation_name symbols: - "sld:documentation" jsonldPredicate: diff --git a/salad/schema_salad/metaschema/metaschema_base.yml b/salad/schema_salad/metaschema/metaschema_base.yml index 5bcbe492..5a37a33a 100644 --- a/salad/schema_salad/metaschema/metaschema_base.yml +++ b/salad/schema_salad/metaschema/metaschema_base.yml @@ -39,8 +39,9 @@ $graph: - "xsd:string" doc: - | - Salad data types are based on Avro schema declarations. Refer to the - [Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for + Names of salad data types (based on Avro schema declarations). + + Refer to the [Avro schema declaration documentation](https://avro.apache.org/docs/current/spec.html#schemas) for detailed information. - "null: no value" - "boolean: a binary value" @@ -100,6 +101,7 @@ $graph: doc: "Must be `record`" type: type: enum + name: Record_name symbols: - "sld:record" jsonldPredicate: @@ -125,6 +127,7 @@ $graph: doc: "Must be `enum`" type: type: enum + name: Enum_name symbols: - "sld:enum" jsonldPredicate: @@ -132,6 +135,9 @@ $graph: _type: "@vocab" typeDSL: true refScope: 2 + name: + type: string? + jsonldPredicate: "@id" symbols: type: string[] jsonldPredicate: @@ -148,6 +154,7 @@ $graph: doc: "Must be `array`" type: type: enum + name: Array_name symbols: - "sld:array" jsonldPredicate: @@ -173,5 +180,4 @@ $graph: _id: "sld:items" _type: "@vocab" refScope: 2 - typeDSL: True doc: "Defines the type of the array elements." diff --git a/salad/schema_salad/metaschema/salad.md b/salad/schema_salad/metaschema/salad.md index aeacdb92..119259d6 100644 --- a/salad/schema_salad/metaschema/salad.md +++ b/salad/schema_salad/metaschema/salad.md @@ -2,13 +2,14 @@ Author: -* Peter Amstutz , Arvados Project, Curii Corporation +* Peter Amstutz , Curii Corporation Contributors: * The developers of Apache Avro * The developers of JSON-LD * Nebojša Tijanić , Seven Bridges Genomics +* Michael R. Crusoe, ELIXIR-DE # Abstract @@ -72,7 +73,7 @@ documentation. ## Introduction to v1.1 -This is the third version of the Schema Salad specification. It is +This is the third version of of the Schema Salad specification. It is developed concurrently with v1.1 of the Common Workflow Language for use in specifying the Common Workflow Language, however Schema Salad is intended to be useful to a broader audience. Compared to the v1.0 schema salad @@ -86,6 +87,13 @@ specification, the following changes have been made: is poorly documented, not included in conformance testing, and not widely supported. +## Introduction to v1.2 + +This is the fourth version of the Schema Salad specification. It was created to +ease the development of extensions to CWL v1.2. The only change is that +inherited records can narrow the types of fields if those fields are re-specified +with a matching jsonldPredicate. + ## References to Other Specifications **Javascript Object Notation (JSON)**: http://json.org @@ -113,7 +121,7 @@ the behavior of conforming implementations. The terminology used to describe Salad documents is defined in the Concepts section of the specification. The terms defined in the following list are -used in building those definitions and in describing the actions of a +used in building those definitions and in describing the actions of an Salad implementation: **may**: Conforming Salad documents and Salad implementations are permitted but @@ -139,7 +147,7 @@ enable or disable the behavior described. ## Data concepts An **object** is a data structure equivalent to the "object" type in JSON, -consisting of an unordered set of name/value pairs (referred to here as +consisting of a unordered set of name/value pairs (referred to here as **fields**) and where the name is a string and the value is a string, number, boolean, array, or object. @@ -248,8 +256,11 @@ rules: field. * If the value of `jsonldPredicate` is an object, and that - object contains the field `_type` with the value `@id`, the field is a - link field subject to [link validation](#Link_validation). + object contains the field `_type` with the value `@id`, the + field is a link field. If the field `jsonldPredicate` also + has the field `identity` with the value `true`, the field is + resolved with [identifier resolution](#Identifier_resolution). + Otherwise it is resolved with [link resolution](#Link_resolution). * If the value of `jsonldPredicate` is an object which contains the field `_type` with the value `@vocab`, the field value is subject to @@ -257,14 +268,14 @@ rules: ## Document traversal -To perform document preprocessing, link validation and schema +To perform document document preprocessing, link validation and schema validation, the document must be traversed starting from the fields or array items of the root object or array and recursively visiting each child item which contains an object or arrays. ## Short names -The "short name" of a fully qualified identifier is the portion of +The "short name" of an fully qualified identifier is the portion of the identifier following the final slash `/` of either the fragment identifier following `#` or the path portion, if there is no fragment. Some examples: diff --git a/salad/schema_salad/metaschema/typedsl_res.yml b/salad/schema_salad/metaschema/typedsl_res.yml index c30c60be..de5d62ba 100644 --- a/salad/schema_salad/metaschema/typedsl_res.yml +++ b/salad/schema_salad/metaschema/typedsl_res.yml @@ -5,7 +5,7 @@ following micro-DSL for schema salad types: * If the type ends with a question mark `?`, the question mark is stripped off and the type is expanded to a union with `null` - * If the type ends with square brackets `[]` it is expanded to an array with items of the preceeding type symbol + * If the type ends with square brackets `[]` it is expanded to an array with items of the preceding type symbol * The type may end with both `[]?` to indicate it is an optional array. * Identifier resolution is applied after type DSL expansion. From 146f6fb744295805be9480589bc79521e6a877c2 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Tue, 9 May 2023 19:54:05 +0200 Subject: [PATCH 094/127] typos --- salad/schema_salad/metaschema/salad.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/salad/schema_salad/metaschema/salad.md b/salad/schema_salad/metaschema/salad.md index 119259d6..ad9daf3c 100644 --- a/salad/schema_salad/metaschema/salad.md +++ b/salad/schema_salad/metaschema/salad.md @@ -73,7 +73,7 @@ documentation. ## Introduction to v1.1 -This is the third version of of the Schema Salad specification. It is +This is the third version of the Schema Salad specification. It is developed concurrently with v1.1 of the Common Workflow Language for use in specifying the Common Workflow Language, however Schema Salad is intended to be useful to a broader audience. Compared to the v1.0 schema salad @@ -121,7 +121,7 @@ the behavior of conforming implementations. The terminology used to describe Salad documents is defined in the Concepts section of the specification. The terms defined in the following list are -used in building those definitions and in describing the actions of an +used in building those definitions and in describing the actions of a Salad implementation: **may**: Conforming Salad documents and Salad implementations are permitted but @@ -268,14 +268,14 @@ rules: ## Document traversal -To perform document document preprocessing, link validation and schema +To perform document preprocessing, link validation and schema validation, the document must be traversed starting from the fields or array items of the root object or array and recursively visiting each child item which contains an object or arrays. ## Short names -The "short name" of an fully qualified identifier is the portion of +The "short name" of a fully qualified identifier is the portion of the identifier following the final slash `/` of either the fragment identifier following `#` or the path portion, if there is no fragment. Some examples: From ad91c844b5adfef514c059af364e20afc935e598 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Wed, 10 May 2023 21:31:00 +0200 Subject: [PATCH 095/127] Fix typo {} vs () As reported at https://cwl.discourse.group/t/a-typo-on-commandlinetool-specification-stdin-example/797 --- CommandLineTool.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index b2a1af8e..2defcdfd 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -517,7 +517,7 @@ $graph: type: File streamable: true - stdin: ${inputs.an_input_name.path} + stdin: $(inputs.an_input_name.path) ``` - name: stdout From 3eeddca0678425b9535350bbce2f6e71652cdb69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Jun 2023 08:21:44 +0000 Subject: [PATCH 096/127] Bump rojopolis/spellcheck-github-actions from 0.30.0 to 0.32.0 Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions) from 0.30.0 to 0.32.0. - [Release notes](https://github.com/rojopolis/spellcheck-github-actions/releases) - [Changelog](https://github.com/rojopolis/spellcheck-github-actions/blob/master/CHANGELOG.md) - [Commits](https://github.com/rojopolis/spellcheck-github-actions/compare/0.30.0...0.32.0) --- updated-dependencies: - dependency-name: rojopolis/spellcheck-github-actions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/spellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 3177e44d..086b63cb 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -16,7 +16,7 @@ jobs: uses: codespell-project/actions-codespell@v1.0 with: skip: EDAM.owl,foaf.rdf,underscore.js,CODE_OF_CONDUCT.md - - uses: rojopolis/spellcheck-github-actions@0.30.0 + - uses: rojopolis/spellcheck-github-actions@0.32.0 name: Spellcheck # https://github.com/marketplace/actions/github-spellcheck-action # To run locally, `pip install pyspelling`, followed by From 152928679dc18e8c0b5bb770893a10bf1429216c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 May 2023 02:02:38 +0000 Subject: [PATCH 097/127] Bump codespell-project/actions-codespell from 1.0 to 2.0 Bumps [codespell-project/actions-codespell](https://github.com/codespell-project/actions-codespell) from 1.0 to 2.0. - [Release notes](https://github.com/codespell-project/actions-codespell/releases) - [Commits](https://github.com/codespell-project/actions-codespell/compare/v1.0...v2.0) --- updated-dependencies: - dependency-name: codespell-project/actions-codespell dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/spellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 086b63cb..410404ef 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Codespell with annotations - uses: codespell-project/actions-codespell@v1.0 + uses: codespell-project/actions-codespell@v2.0 with: skip: EDAM.owl,foaf.rdf,underscore.js,CODE_OF_CONDUCT.md - uses: rojopolis/spellcheck-github-actions@0.32.0 From 2a06a421251bfa4b79251c27ff11e719b02f7d1c Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Mon, 15 May 2023 09:39:52 +0200 Subject: [PATCH 098/127] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 764ef123..14f65510 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ +urllib3<2 cwltool lockfile From f64fec060aefcb723f86b7ee09cadc5dd2963445 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Sat, 3 Jun 2023 09:19:11 +0100 Subject: [PATCH 099/127] Update requirements.txt --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 14f65510..e1d38dee 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -urllib3<2 cwltool -lockfile + + From 4a715dd348cd6fcb03f8002cc13048e5ce02c721 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Mon, 5 Jun 2023 09:37:56 +0100 Subject: [PATCH 100/127] All loadContents tests are required Fixes #122 --- tests/loadContents/test-index.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/loadContents/test-index.yaml b/tests/loadContents/test-index.yaml index db06f883..bb42b063 100644 --- a/tests/loadContents/test-index.yaml +++ b/tests/loadContents/test-index.yaml @@ -3,7 +3,7 @@ id: cwloutput_nolimit output: {$import: compare-output.json} doc: "Test that loading from cwl.output.json isn't limited to 64k" - tags: [ command_line_tool ] + tags: [ command_line_tool, required ] - job: input.yml tool: loadContents-limit.cwl @@ -11,4 +11,4 @@ output: {} doc: "Test that loadContents on a file larger than 64k fails" should_fail: true - tags: [ command_line_tool ] + tags: [ command_line_tool, required ] From d50fad00eedb071ef7372a0f471e6fc1155addcc Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" <1330696+mr-c@users.noreply.github.com> Date: Mon, 5 Jun 2023 11:11:26 +0100 Subject: [PATCH 101/127] default_with_falsey_value (#48) --- conformance_tests.yaml | 12 +++++++++ tests/default_with_falsey_value.cwl | 39 +++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 tests/default_with_falsey_value.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 42a92557..ffc56074 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3461,3 +3461,15 @@ } } tags: [ required, command_line_tool ] + +- id: default_with_falsey_value + job: tests/empty.json + tool: tests/default_with_falsey_value.cwl + doc: Confirms that "false"-like (but not 'null') values override any default + output: + out: + class: File + basename: file.txt + size: 14 + checksum: sha1$0074b1841ab5103cc0442f739d9fb41a33b602ee + tags: [ step_input, workflow ] \ No newline at end of file diff --git a/tests/default_with_falsey_value.cwl b/tests/default_with_falsey_value.cwl new file mode 100644 index 00000000..28ea09fc --- /dev/null +++ b/tests/default_with_falsey_value.cwl @@ -0,0 +1,39 @@ +cwlVersion: v1.0 +class: Workflow + +doc: reproduces https://github.com/DataBiosphere/toil/issues/3141 + +requirements: + StepInputExpressionRequirement: {} + +inputs: + input_bool: + type: boolean + default: False + +outputs: + out: + type: File + outputSource: echo/out + +steps: + echo: + run: + cwlVersion: v1.0 + class: CommandLineTool + baseCommand: echo + inputs: + str: + type: string + default: "UNDEFINED" + inputBinding: + position: 1 + outputs: + out: stdout + stdout: file.txt + in: + str: + source: input_bool + valueFrom: self is $(self) + out: + - out From c9d4ade6dd3725197b81ba30046fdcbae9f8002a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Jun 2023 09:32:01 +0200 Subject: [PATCH 102/127] Bump rojopolis/spellcheck-github-actions from 0.32.0 to 0.33.0 (#257) Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions) from 0.32.0 to 0.33.0. - [Release notes](https://github.com/rojopolis/spellcheck-github-actions/releases) - [Changelog](https://github.com/rojopolis/spellcheck-github-actions/blob/master/CHANGELOG.md) - [Commits](https://github.com/rojopolis/spellcheck-github-actions/compare/0.32.0...0.33.0) --- updated-dependencies: - dependency-name: rojopolis/spellcheck-github-actions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/spellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 410404ef..ef6a44f0 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -16,7 +16,7 @@ jobs: uses: codespell-project/actions-codespell@v2.0 with: skip: EDAM.owl,foaf.rdf,underscore.js,CODE_OF_CONDUCT.md - - uses: rojopolis/spellcheck-github-actions@0.32.0 + - uses: rojopolis/spellcheck-github-actions@0.33.0 name: Spellcheck # https://github.com/marketplace/actions/github-spellcheck-action # To run locally, `pip install pyspelling`, followed by From c2ac7e32b1cfc83f2513bdcddd9c528cc572d719 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Mon, 10 Jul 2023 17:27:34 -0400 Subject: [PATCH 103/127] Increase the time limits of this test and add a note. (#260) * Increase the time limits of this test and add a note. * typo fix --------- Co-authored-by: Michael R. Crusoe <1330696+mr-c@users.noreply.github.com> --- tests/timelimit2-wf.cwl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tests/timelimit2-wf.cwl b/tests/timelimit2-wf.cwl index 9abafe5c..b90a5d0c 100644 --- a/tests/timelimit2-wf.cwl +++ b/tests/timelimit2-wf.cwl @@ -2,9 +2,20 @@ class: Workflow cwlVersion: v1.2 +doc: | + The entire test should take ~24 seconds. Test that the 20 second + time limit applies to each step individually (so 1st step has 20 + seconds and the 2nd step has 20 seconds). So this 20 second time + limit should not cause the workflow to fail. + + The timing on this test was updated from shorter values to + accommodate the startup time of certain container runners, the + previous timelimit of 5 seconds was too short, which is why it is + now 20 seconds. + requirements: ToolTimeLimit: - timelimit: 5 + timelimit: 20 InlineJavascriptRequirement: {} inputs: @@ -23,7 +34,7 @@ steps: out: [o] run: class: CommandLineTool - baseCommand: ["sleep", "3"] + baseCommand: ["sleep", "12"] inputs: i: type: string? @@ -38,7 +49,7 @@ steps: out: [o] run: class: CommandLineTool - baseCommand: ["sleep", "3"] + baseCommand: ["sleep", "12"] inputs: i: type: string? From 53ea13c81ca1a617d303c1a07a778dba67535ffd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 16:13:47 +0900 Subject: [PATCH 104/127] Bump rojopolis/spellcheck-github-actions from 0.33.0 to 0.33.1 (#261) Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions) from 0.33.0 to 0.33.1. - [Release notes](https://github.com/rojopolis/spellcheck-github-actions/releases) - [Changelog](https://github.com/rojopolis/spellcheck-github-actions/blob/master/CHANGELOG.md) - [Commits](https://github.com/rojopolis/spellcheck-github-actions/compare/0.33.0...0.33.1) --- updated-dependencies: - dependency-name: rojopolis/spellcheck-github-actions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/spellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index ef6a44f0..496f84c1 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -16,7 +16,7 @@ jobs: uses: codespell-project/actions-codespell@v2.0 with: skip: EDAM.owl,foaf.rdf,underscore.js,CODE_OF_CONDUCT.md - - uses: rojopolis/spellcheck-github-actions@0.33.0 + - uses: rojopolis/spellcheck-github-actions@0.33.1 name: Spellcheck # https://github.com/marketplace/actions/github-spellcheck-action # To run locally, `pip install pyspelling`, followed by From dc098f0471c1f28bc57532b9a25b429c656fd945 Mon Sep 17 00:00:00 2001 From: Francis Charette Migneault Date: Tue, 13 Jun 2023 17:49:18 -0400 Subject: [PATCH 105/127] fix run_tests indents + gitignore IDE/python files --- .gitignore | 11 +++++++++++ run_test.sh | 24 ++++++++++++------------ 2 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..2a25de39 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +## IDE +.idea/ +.vscode/ + +## Python +*.py[cod] +*.egg[s] +*.egg-info +*egg[s] +__pycache__ +.python_history diff --git a/run_test.sh b/run_test.sh index 74ab2cf6..dc427273 100755 --- a/run_test.sh +++ b/run_test.sh @@ -1,7 +1,7 @@ #!/bin/bash func() { - helpmessage=$(cat) + helpmessage=$(cat) } func < Date: Tue, 13 Jun 2023 19:27:32 -0400 Subject: [PATCH 106/127] add CWL JSON schema + 'json_schema_invalid' tag (closes https://github.com/common-workflow-language/cwl-v1.2/issues/253) + validation tests (2 failed related to https://github.com/common-workflow-language/cwl-v1.2/issues/251) --- .github/workflows/ci.yml | 5 + conformance_tests.yaml | 4 +- json-schema/cwl.yaml | 2236 ++++++++++++++++++++++++++ requirements-jsonschema-test.txt | 3 + tests/json_schema/test_cwl_schema.py | 182 +++ tests/loadContents/test-index.yaml | 2 +- tests/mixed-versions/test-index.yaml | 4 +- 7 files changed, 2431 insertions(+), 5 deletions(-) create mode 100644 json-schema/cwl.yaml create mode 100644 requirements-jsonschema-test.txt create mode 100644 tests/json_schema/test_cwl_schema.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e73e8ae2..850136b5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,3 +35,8 @@ jobs: - name: Validate CWL documents run: ./run_test.sh --self + + - name: Validate JSON schema document + run: | + pip install -r ./requirements-jsonschema-test.txt + pytest tests/json_schema diff --git a/conformance_tests.yaml b/conformance_tests.yaml index ffc56074..3f4c38d7 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -2633,7 +2633,7 @@ tool: tests/timelimit2.cwl id: timelimit_invalid doc: Test invalid time limit value - tags: [ command_line_tool, timelimit ] + tags: [ command_line_tool, timelimit, json_schema_invalid ] - job: tests/empty.json output: {} @@ -3472,4 +3472,4 @@ basename: file.txt size: 14 checksum: sha1$0074b1841ab5103cc0442f739d9fb41a33b602ee - tags: [ step_input, workflow ] \ No newline at end of file + tags: [ step_input, workflow ] diff --git a/json-schema/cwl.yaml b/json-schema/cwl.yaml new file mode 100644 index 00000000..237ec211 --- /dev/null +++ b/json-schema/cwl.yaml @@ -0,0 +1,2236 @@ +$schema: "http://json-schema.org/draft-07/schema#" +$author: "Francis Charette-Migneault " +$id: "https://raw.githubusercontent.com/common-workflow-language/cwl-v1.2/1.2.1_proposed/json-schema/cwl.yaml" + +$defs: + CWL: + oneOf: + - $ref: '#/$defs/CWLAtomic' + - $ref: '#/$defs/CWLGraph' + - $ref: '#/$defs/CWLWorkflow' + CWLKeywordList: + type: array + title: KeywordList + description: Keywords applied to the process for search and categorization purposes. + items: + type: string + title: keyword + minLength: 1 + CWLTextPatternID: + $comment: | + Identifier with text pattern that can allow additional non-ASCII characters depending on regex implementation. + The identifier allows a '#' or a relative 'sub/part#ref' prefix, to support references to other definitions + in the CWL document, such as when using 'SchemaDefRequirement'. + + JSON spec regex does not include '\w' in its default subset to allow all word-like unicode characters + (see reference: https://json-schema.org/understanding-json-schema/reference/regular_expressions.html). + + Since support is implementation specific, add both the ASCII-only and '\w' representation simultaneously + and let the parser reading this document apply whichever is more relevant or supported + (see discussion: https://github.com/common-workflow-language/cwl-v1.2/pull/256#discussion_r1234037814). + # TODO: implement specific characters supported by CWL + # (https://github.com/common-workflow-language/common-workflow-language/issues/429) + pattern: '^([A-Za-z0-9\w]+(/[A-Za-z0-9\w]+)*)?[#.]?[A-Za-z0-9\w]+(?:[-_.][A-Za-z0-9\w]+)*$' + type: string + description: Generic identifier name pattern. + CWLIdentifier: + anyOf: + - type: string + title: UUID + description: Unique identifier. + format: uuid + pattern: '^[a-f0-9]{8}(?:-?[a-f0-9]{4}){3}-?[a-f0-9]{12}$' + - $ref: '#/$defs/CWLTextPatternID' + title: CWLIdentifier + description: Reference to the process identifier. + CWLIntent: + type: array + title: CWLIntent + items: + type: string + title: item + description: | + Identifier URL to a concept for the type of computational operation accomplished by this process + (see example operations: http://edamontology.org/operation_0004). + format: url + pattern: '^((?:http|ftp)s?://)?(?!.*//.*$)(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+(?:[A-Za-z]{2,6}\.?|[A-Za-z0-9-]{2,}\.?)|localhost|\[[a-f0-9:]+\]|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::\d+)?(?:/?|[/?]\S+)$' + CWLImport: + description: | + Represents an '$import' directive that should point toward another compatible CWL file to import where specified. + The contents of the imported file should be relevant contextually where it is being imported. + $comment: | + The schema validation of the CWL will not itself perform the '$import' to resolve and validate its contents. + Therefore, the complete schema will not be validated entirely, and could still be partially malformed. + To ensure proper and exhaustive validation of a CWL definition with this schema, all '$import' directives + should be resolved and extended beforehand. + type: object + properties: + '$import': + type: string + required: + - '$import' + additionalProperties: false + CWLRequirements: + title: CWLRequirements + description: Explicit requirement to execute the application package. + oneOf: + - $ref: '#/$defs/CWLRequirementsMap' + - $ref: '#/$defs/CWLRequirementsList' + CWLRequirementsMap: + title: CWLRequirementsMap + type: object + properties: + cwltool:CUDARequirement: + $ref: '#/$defs/cwltool:CUDARequirement' + DockerRequirement: + $ref: '#/$defs/DockerRequirement' + SoftwareRequirement: + $ref: '#/$defs/SoftwareRequirement' + ShellCommandRequirement: + $ref: '#/$defs/ShellCommandRequirement' + EnvVarRequirement: + $ref: '#/$defs/EnvVarRequirement' + SchemaDefRequirement: + $ref: '#/$defs/SchemaDefRequirement' + InitialWorkDirRequirement: + $ref: '#/$defs/InitialWorkDirRequirement' + InlineJavascriptRequirement: + $ref: '#/$defs/InlineJavascriptRequirement' + InplaceUpdateRequirement: + $ref: '#/$defs/InplaceUpdateRequirement' + LoadListingRequirement: + $ref: '#/$defs/LoadListingRequirement' + NetworkAccess: + $comment: Not 'NetworkAccessRequirement' + $ref: '#/$defs/NetworkAccessRequirement' + ResourceRequirement: + $ref: '#/$defs/ResourceRequirement' + ScatterFeatureRequirement: + $ref: '#/$defs/ScatterFeatureRequirement' + ToolTimeLimit: + $comment: Not 'ToolTimeLimitRequirement'. + $ref: '#/$defs/ToolTimeLimitRequirement' + WorkReuse: + $comment: Not 'WorkReuseRequirement'. + $ref: '#/$defs/WorkReuseRequirement' + MultipleInputFeatureRequirement: + $ref: '#/$defs/MultipleInputFeatureRequirement' + StepInputExpressionRequirement: + $ref: '#/$defs/StepInputExpressionRequirement' + SubworkflowFeatureRequirement: + $ref: '#/$defs/SubworkflowFeatureRequirement' + additionalProperties: false + DockerRequirement: + type: object + title: DockerRequirement + properties: + class: + type: string + enum: + - DockerRequirement + dockerPull: + type: string + title: Docker pull reference + description: Reference package that will be retrieved and executed by CWL. + example: docker-registry.host.com/namespace/image:1.2.3 + dockerImport: + type: string + dockerLoad: + type: string + dockerFile: + type: string + dockerImageId: + type: string + dockerOutputDirectory: + type: string + oneOf: + - required: [dockerPull] + - required: [dockerImport] + - required: [dockerLoad] + - required: [dockerFile] + additionalProperties: false + InitialWorkDirListing: + title: InitialWorkDirListing + oneOf: + - $ref: '#/$defs/CWLExpression' + - type: array + title: InitialWorkDirListingItems + items: + oneOf: + - type: 'null' + - $ref: '#/$defs/CWLExpression' + - $ref: '#/$defs/DirectoryListingDirent' + - $ref: '#/$defs/DirectoryListingFileOrDirectory' + - type: array + items: + $ref: '#/$defs/DirectoryListingFileOrDirectory' + DirectoryListingFileOrDirectory: + type: object + properties: + class: + type: string + enum: + - File + - Directory + location: + type: string + checksum: + $ref: '#/$defs/Checksum' + size: + type: integer + minimum: 0 + required: + - class + - location + additionalProperties: false + DirectoryListingDirent: + $comment: Called 'Dirent' in documentation. + type: object + title: DirectoryListingDirent + properties: + entry: + $ref: '#/$defs/CWLExpression' + entryname: + $ref: '#/$defs/CWLExpression' + writable: + type: boolean + required: + - entry + additionalProperties: false + InitialWorkDirRequirement: + type: object + title: InitialWorkDirRequirement + properties: + class: + type: string + enum: + - InitialWorkDirRequirement + listing: + $ref: '#/$defs/InitialWorkDirListing' + required: + - listing + additionalProperties: false + InlineJavascriptLibObject: + type: object + properties: + '$include': + type: string + required: + - '$include' + additionalProperties: false + InlineJavascriptLibItem: + oneOf: + - type: string + - $ref: '#/$defs/InlineJavascriptLibObject' + InlineJavascriptLibraries: + type: array + title: InlineJavascriptLibraries + description: | + Additional code fragments that will also be inserted before executing the expression code. + Allows for function definitions that may be called from CWL expressions. + items: + title: exp_lib + $ref: '#/$defs/InlineJavascriptLibItem' + InlineJavascriptRequirement: + type: object + title: InlineJavascriptRequirement + description: | + Indicates that the workflow platform must support inline Javascript expressions. + + If this requirement is not present, the workflow platform must not perform expression interpolation + (see also: https://www.commonwl.org/v1.2/CommandLineTool.html#InlineJavascriptRequirement). + properties: + class: + type: string + enum: + - InlineJavascriptRequirement + expressionLib: + $ref: '#/$defs/InlineJavascriptLibraries' + required: + - expressionLib + additionalProperties: false + InplaceUpdateRequirement: + type: object + title: InplaceUpdateRequirement + description: | + If 'inplaceUpdate' is true, then an implementation supporting this feature may permit tools to directly + update files with 'writable: true' in 'InitialWorkDirRequirement'. That is, as an optimization, + files may be destructively modified in place as opposed to copied and updated + (see also: https://www.commonwl.org/v1.2/CommandLineTool.html#InplaceUpdateRequirement). + properties: + class: + type: string + enum: + - InplaceUpdateRequirement + inplaceUpdate: + type: boolean + title: inplaceUpdate + required: + - inplaceUpdate + additionalProperties: false + LoadListingEnum: + type: string + title: LoadListingEnum + enum: + - no_listing + - shallow_listing + - deep_listing + LoadListingRequirement: + type: object + title: LoadListingRequirement + description: | + Specify the desired behavior for loading the listing field of a 'Directory' object for use by expressions + (see also: https://www.commonwl.org/v1.2/CommandLineTool.html#LoadListingRequirement). + properties: + class: + type: string + enum: + - LoadListingRequirement + loadListing: + $ref: '#/$defs/LoadListingEnum' + required: + - loadListing + additionalProperties: false + NetworkAccess: + title: NetworkAccess + description: Indicate whether a process requires outgoing IPv4/IPv6 network access. + example: true + oneOf: + - type: boolean + - $ref: '#/$defs/CWLExpression' + NetworkAccessRequirement: + type: object + title: NetworkAccessRequirement + properties: + class: + type: string + $comment: Not 'NetworkAccessRequirement' + enum: + - NetworkAccess + networkAccess: + $ref: '#/$defs/NetworkAccess' + required: + - networkAccess + additionalProperties: false + CWLExpression: + $comment: | + Whenever this option is applicable for a parameter, any other 'normal' string should not be specified. + For JSON schema validation, there is no easy way to distinguish them unless using complicated string patterns. + type: string + title: CWLExpression + description: | + When combined with 'InlineJavascriptRequirement', this field allows runtime parameter references + (see also: https://www.commonwl.org/v1.2/CommandLineTool.html#Expression). + ResourceQuantityOrFractional: + description: An item quantity that can also represent a proportion of use by resources. + $comment: | + Technically should be minimum=1, but fractional for scheduling algorithms are allowed. + There is no way to distinguish between float/long simultaneously in JSON schema (multi-match oneOf). + Therefore, only validate that it is greater than zero. + type: number + exclusiveMinimum: 0 + default: 1 + ResourceCoresMinimum: + oneOf: + - $ref: '#/$defs/ResourceQuantityOrFractional' + - $ref: '#/$defs/CWLExpression' + title: ResourceCoresMinimum + summary: Minimum reserved number of CPU cores. + description: | + Minimum reserved number of CPU cores. + + May be a fractional value to indicate to a scheduling algorithm that one core can be allocated to + multiple jobs. For example, a value of 0.25 indicates that up to 4 jobs + may run in parallel on 1 core. A value of 1.25 means that up to 3 jobs + can run on a 4 core system (4/1.25 ~ 3). + + Processes can only share a core allocation if the sum of each of their 'ramMax', 'tmpdirMax', and + 'outdirMax' requests also do not exceed the capacity of the node. + + Processes sharing a core must have the same level of isolation (typically a container + or VM) that they would normally have. + + The reported number of CPU cores reserved for the process, which is available to expressions + on the 'CommandLineTool' as 'runtime.cores', must be a non-zero integer, and may be calculated by + rounding up the cores request to the next whole number. + + Scheduling systems may allocate fractional CPU resources by setting quotas or scheduling weights. + Scheduling systems that do not support fractional CPUs may round up the request to the next whole number. + default: 1 + ResourceCoresMaximum: + oneOf: + - $ref: '#/$defs/ResourceQuantityOrFractional' + - $ref: '#/$defs/CWLExpression' + title: ResourceCoresMaximum + summary: Maximum reserved number of CPU cores. + description: | + Maximum reserved number of CPU cores. + See 'coresMin' for discussion about fractional CPU requests. + ResourceRAMMinimum: + oneOf: + - $ref: '#/$defs/ResourceQuantityOrFractional' + - $ref: '#/$defs/CWLExpression' + title: ResourceRAMMinimum + summary: Minimum reserved RAM in mebibytes. + description: | + Minimum reserved RAM in mebibytes (2**20). + + May be a fractional value. If so, the actual RAM request must be rounded up + to the next whole number. + + The reported amount of RAM reserved for the process, which is available to + expressions on the 'CommandLineTool' as 'runtime.ram', must be a non-zero integer. + default: 256 + ResourceRAMMaximum: + oneOf: + - $ref: '#/$defs/ResourceQuantityOrFractional' + - $ref: '#/$defs/CWLExpression' + title: ResourceRAMMaximum + summary: Maximum reserved RAM in mebibytes. + description: | + Maximum reserved RAM in mebibytes (2**20). + See 'ramMin' for discussion about fractional RAM requests. + ResourceTmpDirMinimum: + oneOf: + - $ref: '#/$defs/ResourceQuantityOrFractional' + - $ref: '#/$defs/CWLExpression' + title: ResourceTmpDirMinimum + summary: Minimum reserved filesystem based storage for the designated temporary + directory in mebibytes. + description: | + Minimum reserved filesystem based storage for the designated temporary + directory in mebibytes (2**20). + + May be a fractional value. If so, the actual storage request must be rounded + up to the next whole number. + + The reported amount of storage reserved for the process, which is available + to expressions on the 'CommandLineTool' as 'runtime.tmpdirSize', must be a non-zero integer. + default: 1024 + ResourceTmpDirMaximum: + oneOf: + - $ref: '#/$defs/ResourceQuantityOrFractional' + - $ref: '#/$defs/CWLExpression' + title: ResourceTmpDirMaximum + summary: Maximum reserved filesystem based storage for the designated temporary directory in mebibytes. + description: | + Maximum reserved filesystem based storage for the designated temporary directory in mebibytes (2**20). + See 'tmpdirMin' for discussion about fractional storage requests. + ResourceOutDirMinimum: + oneOf: + - $ref: '#/$defs/ResourceQuantityOrFractional' + - $ref: '#/$defs/CWLExpression' + title: ResourceOutDirMinimum + summary: Minimum reserved filesystem based storage for the designated output + directory in mebibytes. + description: | + Minimum reserved filesystem based storage for the designated output + directory in mebibytes (2**20). + + May be a fractional value. If so, the actual storage request must be rounded + up to the next whole number. + + The reported amount of storage reserved for the process, which is available + to expressions on the 'CommandLineTool' as 'runtime.outdirSize', must be a non-zero integer. + default: 1024 + ResourceOutDirMaximum: + oneOf: + - $ref: '#/$defs/ResourceQuantityOrFractional' + - $ref: '#/$defs/CWLExpression' + title: ResourceOutDirMaximum + summary: Maximum reserved filesystem based storage for the designated output + directory in mebibytes. + description: | + Maximum reserved filesystem based storage for the designated output + directory in mebibytes (2**20). + See 'outdirMin' for discussion about fractional storage requests. + default: 1 + ResourceRequirement: + type: object + title: ResourceRequirement + description: | + Specify basic hardware resource requirements + (see also: https://www.commonwl.org/v1.2/CommandLineTool.html#ResourceRequirement). + properties: + class: + type: string + enum: + - ResourceRequirement + coresMin: + $ref: '#/$defs/ResourceCoresMinimum' + coresMax: + $ref: '#/$defs/ResourceCoresMaximum' + ramMin: + $ref: '#/$defs/ResourceRAMMinimum' + ramMax: + $ref: '#/$defs/ResourceRAMMaximum' + tmpdirMin: + $ref: '#/$defs/ResourceTmpDirMinimum' + tmpdirMax: + $ref: '#/$defs/ResourceTmpDirMaximum' + outdirMin: + $ref: '#/$defs/ResourceOutDirMinimum' + outdirMax: + $ref: '#/$defs/ResourceOutDirMaximum' + additionalProperties: false + Scatter: + oneOf: + - $ref: '#/$defs/CWLTextPatternID' + - $ref: '#/$defs/IdentifierArray' + title: Scatter + description: | + The scatter field specifies one or more input parameters which will be scattered. + + An input parameter may be listed more than once. The declared type of each + input parameter implicitly becomes an array of items of the input parameter type. + If a parameter is listed more than once, it becomes a nested array. As a result, + upstream parameters which are connected to scattered parameters must be arrays. + + All output parameter types are also implicitly wrapped in arrays. Each job + in the scatter results in an entry in the output array. + + If any scattered parameter runtime value is an empty array, all outputs are + set to empty arrays and no work is done for the step, according to applicable scattering rules. + IdentifierArray: + type: array + title: IdentifierArray + items: + $ref: '#/$defs/CWLTextPatternID' + minItems: 1 + ScatterFeatureRequirement: + type: object + title: ScatterFeatureRequirement + description: | + A 'scatter' operation specifies that the associated Workflow step should execute separately over a list of + input elements. Each job making up a scatter operation is independent and may be executed concurrently + (see also: https://www.commonwl.org/v1.2/Workflow.html#WorkflowStep). + $comment: Fields 'scatter' and 'scatterMethod' at the root of a 'WorkflowStep', not within the requirement. + properties: + class: + type: string + description: CWL requirement class specification. + enum: + - ScatterFeatureRequirement + additionalProperties: false + MultipleInputFeatureRequirement: + type: object + title: MultipleInputFeatureRequirement + description: | + Indicates that the 'Workflow' must support multiple inbound data links listed in the 'source' + field of 'WorkflowStepInput'. + properties: + class: + type: string + description: CWL requirement class specification. + enum: + - MultipleInputFeatureRequirement + additionalProperties: false + StepInputExpressionRequirement: + type: object + title: StepInputExpressionRequirement + description: Indicates that the 'Workflow' must support the 'valueFrom' field of 'WorkflowStepInput'. + properties: + class: + type: string + description: CWL requirement class specification. + enum: + - StepInputExpressionRequirement + additionalProperties: false + SubworkflowFeatureRequirement: + type: object + title: SubworkflowFeatureRequirement + description: Indicates that the 'Workflow' must support nested workflows in the 'run' field of 'WorkflowStep'. + properties: + class: + type: string + description: CWL requirement class specification. + enum: + - SubworkflowFeatureRequirement + additionalProperties: false + CWLFileOnlyParameters: + type: object + properties: + secondaryFiles: + $ref: '#/$defs/CWLTypeRecordSecondaryFiles' + streamable: + type: boolean + format: + $ref: '#/$defs/CWLFormat' + loadContents: + type: boolean + CWLFileOnlyParametersConditional: + description: Parameters that are only valid when 'type' or 'items' evaluates to 'File'. + $comment: | + Explicitly disallow these parameters when non-File type is detected. + Otherwise, validate their schema definitions according to what is permitted. + type: object + if: + properties: + oneOf: + - $comment: Single required or optional 'File'. + type: + enum: + - File + - File? + - File[] + - File[]? + - $comment: Array of required or optional 'File'. + type: + const: array + items: + oneOf: + - type: + - const: File + - const: File? + - type: array + contains: + type: + - const: File + - const: File? + then: + $ref: '#/$defs/CWLFileOnlyParameters' + else: + not: + properties: + secondaryFiles: {} + streamable: {} + format: {} + loadContents: {} + CWLDirectoryOnlyParameters: + type: object + properties: + loadListing: + $ref: '#/$defs/LoadListingEnum' + CWLDirectoryOnlyParametersConditional: + description: Parameters that are only valid when 'type' or 'items' evaluates to 'Directory'. + $comment: | + Explicitly disallow these parameters when non-Directory type is detected. + Otherwise, validate their schema definitions according to what is permitted. + type: object + if: + properties: + oneOf: + - $comment: Single required or optional 'Directory'. + type: + enum: + - Directory + - Directory? + - Directory[] + - Directory[]? + - $comment: Array of required or optional 'Directory'. + type: + const: array + items: + oneOf: + - type: + - const: Directory + - const: Directory? + - type: array + contains: + type: + - const: Directory + - const: Directory? + then: + $ref: '#/$defs/CWLDirectoryOnlyParameters' + else: + not: + properties: + loadListing: {} + CWLTypeRecordSecondaryFileSchema: + type: object + properties: + pattern: + $comment: Either an expression or the regex pattern directly. + $ref: '#/$defs/CWLExpression' + required: + oneOf: + - type: boolean + - $ref: '#/$defs/CWLExpression' + required: + - pattern + additionalProperties: false + CWLTypeRecordSecondaryFiles: + oneOf: + - $comment: Either an expression or the regex pattern directly. + $ref: '#/$defs/CWLExpression' + - $ref: '#/$defs/CWLTypeRecordSecondaryFileSchema' + - type: array + items: + $comment: Either an expression or the regex pattern directly. + $ref: '#/$defs/CWLExpression' + - type: array + items: + $ref: '#/$defs/CWLTypeRecordSecondaryFileSchema' + CWLTypeRecordFieldDefBase: + type: object + properties: + name: + $comment: | + Required if list item. Otherwise, optional since it is the mapping key. + This requirement is defined in 'CWLTypeRecordFieldsItem' to allow reuse of this schema. + type: string + type: + $ref: '#/$defs/CWLType' + required: + - type + CWLTypeRecordFieldDef: + allOf: + - $ref: '#/$defs/CWLTypeRecordFieldDefBase' + - $ref: '#/$defs/CWLFileOnlyParametersConditional' + - $ref: '#/$defs/CWLDirectoryOnlyParametersConditional' + CWLTypeRecordFieldsMap: + type: object + additionalProperties: + oneOf: + - $ref: '#/$defs/CWLType' + - $ref: '#/$defs/CWLTypeRecordFieldDef' + CWLTypeRecordFieldsItem: + allOf: + - $ref: '#/$defs/CWLTypeRecordFieldDef' + - required: + - name + CWLTypeRecordFieldsList: + type: array + items: + $ref: '#/$defs/CWLTypeRecordFieldsItem' + CWLTypeRecordFields: + oneOf: + - $ref: '#/$defs/CWLTypeRecordFieldsMap' + - $ref: '#/$defs/CWLTypeRecordFieldsList' + CWLTypeRecordSchema: + type: object + properties: + type: + type: string + enum: + - record + fields: + $ref: '#/$defs/CWLTypeRecordFields' + name: + type: string + required: + - type + CWLTypeRecordArray: + type: object + properties: + type: + type: string + enum: + - array + items: + $ref: '#/$defs/CWLType' + required: + - type + - items + SchemaDefRequirement: + type: object + properties: + class: + type: string + enum: + - SchemaDefRequirement + types: + type: array + items: + oneOf: + - $ref: '#/$defs/CWLTypeEnum' + - $ref: '#/$defs/CWLTypeRecordSchema' + - $ref: '#/$defs/CWLTypeRecordArray' + - $ref: '#/$defs/CWLImport' + required: + - types + additionalProperties: false + SoftwarePackageSpecs: + type: array + items: + type: string + SoftwarePackage: + type: object + properties: + package: + type: string + version: + type: array + items: + type: string + specs: + type: array + items: + $ref: '#/$defs/ReferenceURL' + required: + - package + additionalProperties: false + SoftwareRequirement: + type: object + properties: + class: + type: string + enum: + - SoftwareRequirement + packages: + oneOf: + - type: array + items: + $ref: '#/$defs/SoftwarePackage' + - type: object + description: Mapping of 'package' name to its specifications. + additionalProperties: + oneOf: + - $ref: '#/$defs/SoftwarePackageSpecs' + - $ref: '#/$defs/SoftwarePackage' + required: + - packages + additionalProperties: false + ShellCommandRequirement: + type: object + properties: + class: + type: string + enum: + - ShellCommandRequirement + additionalProperties: false + EnvironmentDef: + type: object + properties: + envName: + type: string + minLength: 1 + envValue: + type: + $ref: '#/$defs/CWLExpression' + required: + - envName + - envValue + additionalProperties: false + EnvVarRequirement: + type: object + properties: + class: + type: string + enum: + - EnvVarRequirement + envDef: + oneOf: + - type: array + items: + $ref: '#/$defs/EnvironmentDef' + - type: object + description: Mapping of 'envName' to environment value or definition. + additionalProperties: + oneOf: + - description: The 'envValue' specified directly + $ref: '#/$defs/CWLExpression' + - $ref: '#/$defs/EnvironmentDef' + required: + - envDef + additionalProperties: false + TimeLimitValue: + oneOf: + - type: number + minimum: 0.0 + - $ref: '#/$defs/CWLExpression' + title: TimeLimitValue + description: | + The time limit, in seconds. + + A time limit of zero means no time limit. + Negative time limits are an error. + ToolTimeLimitRequirement: + type: object + title: ToolTimeLimitRequirement + description: | + Set an upper limit on the execution time of a CommandLineTool. + + A CommandLineTool whose execution duration exceeds the time limit may be preemptively + terminated and considered failed. May also be used by batch systems to make scheduling decisions. + + The execution duration excludes external operations, such as staging of files, + pulling a docker image etc., and only counts wall-time for the execution of the command line itself. + properties: + class: + type: string + $comment: not 'ToolTimeLimitRequirement' + enum: + - ToolTimeLimit + timelimit: + $ref: '#/$defs/TimeLimitValue' + required: + - timelimit + additionalProperties: false + EnableReuseValue: + oneOf: + - type: boolean + - $ref: '#/$defs/CWLExpression' + title: EnableReuseValue + description: | + Indicates if reuse is enabled for this tool. + + Can be an expression when combined with 'InlineJavascriptRequirement' + (see also: https://www.commonwl.org/v1.2/CommandLineTool.html#Expression). + WorkReuseRequirement: + type: object + title: WorkReuseRequirement + description: | + For implementations that support reusing output from past work + (on the assumption that same code and same input produce same results), + control whether to enable or disable the reuse behavior for a particular tool + or step (to accommodate situations where that assumption is incorrect). + + A reused step is not executed but instead returns the same output as the original execution. + + If 'WorkReuse' is not specified, correct tools should assume it is enabled by default. + properties: + class: + type: string + $comment: Not 'WorkReuseRequirement'. + enum: + - WorkReuse + enableReuse: + $ref: '#/$defs/EnableReuseValue' + required: + - enableReuse + additionalProperties: false + UnknownRequirement: + type: object + description: Generic schema to allow alternative CWL requirements/hints not explicitly defined in schemas. + properties: + class: + type: string + title: Requirement Class Identifier + description: CWL requirement class specification. + example: UnknownRequirement + not: + enum: + - cwltool:CUDARequirement + - DockerRequirement + - SoftwareRequirement + - ShellCommandRequirement + - EnvVarRequirement + - SchemaDefRequirement + - InitialWorkDirRequirement + - InlineJavascriptRequirement + - InplaceUpdateRequirement + - LoadListingRequirement + - NetworkAccess + - ResourceRequirement + - ScatterFeatureRequirement + - ToolTimeLimit + - WorkReuse + - MultipleInputFeatureRequirement + - StepInputExpressionRequirement + - SubworkflowFeatureRequirement + additionalProperties: {} + CWLRequirementsList: + type: array + title: CWLRequirementsList + items: + oneOf: + - allOf: + - $comment: | + When using the list representation, 'class' is required to indicate which one is being represented. + When using the mapping representation, 'class' is optional since it's the key, but it must match by name. + required: + - class + - $ref: '#/$defs/CWLRequirementsItem' + - $ref: '#/$defs/CWLImport' + CWLRequirementsItem: + title: CWLRequirementsItem + $comment: | + For any new items added, ensure they are added under 'class' of 'UnknownRequirement' as well. + Otherwise, insufficiently restrictive classes could cause multiple matches, failing the 'oneOf' condition. + oneOf: + - $ref: '#/$defs/cwltool:CUDARequirement' + - $ref: '#/$defs/DockerRequirement' + - $ref: '#/$defs/SoftwareRequirement' + - $ref: '#/$defs/ShellCommandRequirement' + - $ref: '#/$defs/EnvVarRequirement' + - $ref: '#/$defs/SchemaDefRequirement' + - $ref: '#/$defs/InitialWorkDirRequirement' + - $ref: '#/$defs/InlineJavascriptRequirement' + - $ref: '#/$defs/InplaceUpdateRequirement' + - $ref: '#/$defs/LoadListingRequirement' + - $ref: '#/$defs/NetworkAccessRequirement' + - $ref: '#/$defs/ResourceRequirement' + - $ref: '#/$defs/ScatterFeatureRequirement' + - $ref: '#/$defs/ToolTimeLimitRequirement' + - $ref: '#/$defs/WorkReuseRequirement' + - $ref: '#/$defs/MultipleInputFeatureRequirement' + - $ref: '#/$defs/StepInputExpressionRequirement' + - $ref: '#/$defs/SubworkflowFeatureRequirement' + ScatterMethod: + type: string + title: scatterMethod + description: | + If 'scatter' declares more than one input parameter, 'scatterMethod' + describes how to decompose the input into a discrete set of jobs. + + - dotproduct: specifies that each of the input arrays are aligned and + one element taken from each array to construct each job. It is an + error if all input arrays are not the same length. + + - nested_crossproduct: specifies the Cartesian product of the inputs, producing + a job for every combination of the scattered inputs. The output must be nested + arrays for each level of scattering, in the order that the input arrays + are listed in the 'scatter' field. + + - flat_crossproduct: specifies the Cartesian product of the inputs, producing a + job for every combination of the scattered inputs. The output arrays must be + flattened to a single level, but otherwise listed in the order that the input + arrays are listed in the 'scatter' field. + default: dotproduct + enum: + - dotproduct + - nested_crossproduct + - flat_crossproduct + required: + - timelimit + - class + additionalProperties: false + CWLHints: + oneOf: + - $ref: '#/$defs/CWLHintsMap' + - $ref: '#/$defs/CWLHintsList' + title: CWLHints + description: Non-failing additional hints that can help resolve extra requirements. + CWLHintsMapExtras: + type: object + properties: + BuiltinRequirement: + $ref: '#/$defs/BuiltinRequirement' + OGCAPIRequirement: + $ref: '#/$defs/OGCAPIRequirement' + WPS1Requirement: + $ref: '#/$defs/WPS1Requirement' + additionalProperties: + $ref: '#/$defs/UnknownRequirement' + CWLHintsMap: + title: CWLHintsMap + anyOf: + - $ref: '#/$defs/CWLRequirementsMap' + - $ref: '#/$defs/CWLHintsMapExtras' + BuiltinRequirement: + type: object + title: BuiltinRequirement + description: | + Hint indicating that the Application Package corresponds to a + builtin process of this instance. (note: can only be an 'hint' + as it is unofficial CWL specification). + properties: + class: + type: string + enum: + - BuiltinRequirement + process: + $comment: Builtin process identifier. + $ref: '#/$defs/CWLTextPatternID' + required: + - process + - class + additionalProperties: false + CUDAComputeCapability: + oneOf: + - type: string + title: CUDA compute capability + description: The compute capability supported by the GPU hardware. + pattern: '^\d+\.\d+$' + - $ref: '#/$defs/CUDAComputeCapabilityArray' + title: CUDA compute capability + description: | + The compute capability supported by the GPU hardware. + + * If this is a single value, it defines only the minimum compute capability. + GPUs with higher capability are also accepted. + * If it is an array value, then only select GPUs with compute capabilities that explicitly + appear in the array. + See https://docs.nvidia.com/deploy/cuda-compatibility/#faq and + https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html#cuda-compute-capability + for details. + CUDAComputeCapabilityArray: + type: array + title: CUDAComputeCapabilityArray + items: + type: string + title: CUDA compute capability + description: The compute capability supported by the GPU hardware. + pattern: '^\d+\.\d+$' + minItems: 1 + cwltool:CUDARequirement: + type: object + title: cwltool:CUDARequirement + properties: + class: + type: string + enum: + - cwltool:CUDARequirement + cudaVersionMin: + type: string + title: CUDA version minimum + description: | + The minimum CUDA version required to run the software. This corresponds to a CUDA SDK release. + + When run in a container, the container image should provide the CUDA runtime, + and the host driver is injected into the container. In this case, because CUDA drivers + are backwards compatible, it is possible to use an older SDK with a newer driver across major versions. + + See https://docs.nvidia.com/deploy/cuda-compatibility/ for details. + example: '11.4' + pattern: '^\d+\.\d+$' + cudaComputeCapability: + $ref: '#/$defs/CUDAComputeCapability' + cudaDeviceCountMin: + type: integer + title: CUDA device count minimum + description: The minimum amount of devices required. + default: 1 + example: 1 + minimum: 1 + cudaDeviceCountMax: + type: integer + title: CUDA device count maximum + description: The maximum amount of devices required. + default: 1 + example: 8 + minimum: 1 + required: + - cudaVersionMin + - cudaComputeCapability + additionalProperties: false + OGCAPIRequirement: + type: object + title: OGCAPIRequirement + description: | + Hint indicating that the Application Package corresponds to an + OGC API - Processes provider that should be remotely executed and monitored + by this instance. (note: can only be an 'hint' as it is unofficial CWL specification). + properties: + class: + type: string + enum: + - OGCAPIRequirement + process: + description: Process location. + $ref: '#/$defs/ReferenceURL' + required: + - process + additionalProperties: false + WPS1Requirement: + type: object + title: WPS1Requirement + description: | + Hint indicating that the Application Package corresponds to a + WPS-1 provider process that should be remotely executed and monitored by this + instance. (note: can only be an ''hint'' as it is unofficial CWL specification). + properties: + class: + type: string + enum: + - WPS1Requirement + process: + $comment: Process identifier of the remote WPS provider. + $ref: '#/$defs/CWLTextPatternID' + provider: + description: WPS provider endpoint. + $ref: '#/$defs/ReferenceURL' + required: + - process + - provider + additionalProperties: false + CWLHintsList: + type: array + title: CWLHintsList + items: + oneOf: + - allOf: + - $comment: | + When using the list representation, 'class' is required to indicate which one is being represented. + When using the mapping representation, 'class' is optional since it's the key, but it must match by name. + required: + - class + - $ref: '#/$defs/CWLHintsItem' + - $ref: '#/$defs/CWLImport' + CWLHintsItemExtras: + oneOf: + - $ref: '#/$defs/BuiltinRequirement' + - $ref: '#/$defs/OGCAPIRequirement' + - $ref: '#/$defs/WPS1Requirement' + - $ref: '#/$defs/UnknownRequirement' + CWLHintsItem: + title: CWLHintsItem + $comment: | + For any new items added, ensure they are added under 'class' of 'UnknownRequirement' as well. + Otherwise, insufficiently restrictive classes could cause multiple matches, failing the 'oneOf' condition. + oneOf: + - $ref: '#/$defs/CWLRequirementsItem' + - $ref: '#/$defs/CWLHintsItemExtras' + CWLCommand: + oneOf: + - type: string + title: String command. + - $ref: '#/$defs/CommandParts' + title: CWLCommand + description: | + Command called in the docker image or on shell according to requirements + and hints specifications. Can be omitted if already defined in the docker + image. + CommandParts: + type: array + title: Command Parts + items: + type: string + title: cmd + additionalProperties: false + CWLArguments: + type: array + title: CWLArguments + description: Base arguments passed to the command. + items: + oneOf: + - type: string + - $ref: '#/$defs/InputBinding' + CWLInputStdInDefinition: + description: | + Indicates that the value passed to this CWL input will be redirected to the standard input stream of the command. + Can be defined for only one input and must not be combined with 'stdin' at the root of the CWL document. + type: string + enum: + - stdin + CWLInputStdInObjectType: + type: object + properties: + type: + $ref: '#/$defs/CWLInputStdInDefinition' + required: + - type + CWLInputStdIn: + oneOf: + - $ref: '#/$defs/CWLInputStdInDefinition' + - $ref: '#/$defs/CWLInputStdInObjectType' + CWLOutputStdOutDefinition: + description: | + Indicates that the data pushed to the standard output stream by the command will be redirected to this CWL output. + Can be defined for only one output. If combined with 'stdout' at the root of the CWL document, that definition + will indicate the desired name of the output file where the output stream will be written to. A random name will + be applied for the file of this output unless otherwise specified. + type: string + enum: + - stdout + CWLOutputStdOutObjectType: + type: object + properties: + type: + $ref: '#/$defs/CWLOutputStdOutDefinition' + required: + - type + CWLOutputStdOut: + oneOf: + - $ref: '#/$defs/CWLOutputStdOutDefinition' + - $ref: '#/$defs/CWLOutputStdOutObjectType' + CWLOutputStdErrDefinition: + description: | + Indicates that the data pushed to the standard error stream by the command will be redirected to this CWL output. + Can be defined for only one output. If combined with 'stderr' at the root of the CWL document, that definition + will indicate the desired name of the output file where the error stream will be written to. A random name will + be applied for the file of this output unless otherwise specified. + type: string + enum: + - stderr + CWLOutputStdErrObjectType: + type: object + properties: + type: + $ref: '#/$defs/CWLOutputStdErrDefinition' + required: + - type + CWLOutputStdErr: + oneOf: + - $ref: '#/$defs/CWLOutputStdErrDefinition' + - $ref: '#/$defs/CWLOutputStdErrObjectType' + CWLInputsDefinition: + oneOf: + - $ref: '#/$defs/CWLInputList' + - $comment: Avoid 'oneOf' conflict of generic mapping key strings as input identifier matching against '$import'. + allOf: + - $ref: '#/$defs/CWLInputMap' + - not: + $ref: '#/$defs/CWLImport' + - $ref: '#/$defs/CWLImport' + title: CWLInputsDefinition + description: All inputs available to the Application Package. + CWLInputList: + type: array + title: CWLInputList + description: Package inputs defined as items. + items: + $ref: '#/$defs/CWLInputItem' + CWLFormat: + oneOf: + - $ref: '#/$defs/CWLExpression' + - type: array + items: + $ref: '#/$defs/CWLExpression' + CWLType: + oneOf: + - $ref: '#/$defs/CWLTypeBase' + - $ref: '#/$defs/CWLTypeList' + title: CWL Type + CWLTypeDefinition: + type: string + title: CWL type string definition + summary: CWL type string definition. + description: Field type definition. + enum: + - 'null' + - Any + - Any[] + - Directory + - Directory? + - Directory[] + - Directory[]? + - File + - File? + - File[] + - File[]? + - boolean + - boolean? + - boolean[] + - boolean[]? + - double + - double? + - double[] + - double[]? + - enum? + - enum[] + - enum[]? + - float + - float? + - float[] + - float[]? + - int + - int? + - int[] + - int[]? + - integer + - integer? + - integer[] + - integer[]? + - long + - long? + - long[] + - long[]? + - string + - string? + - string[] + - string[]? + CWLTypeBase: + oneOf: + - $ref: '#/$defs/CWLTypeDefinition' + - $ref: '#/$defs/CWLTypeArray' + - $ref: '#/$defs/CWLTypeEnum' + - $ref: '#/$defs/CWLTypeRecordRef' + - $ref: '#/$defs/CWLTypeRecordSchema' + title: CWLTypeBase + CWLTypeArray: + type: object + title: CWLTypeArray + summary: CWL type as list of items. + properties: + type: + type: string + title: type + example: array + enum: + - array + items: + $ref: '#/$defs/CWLType' + required: + - type + - items + additionalProperties: {} + CWLTypeSymbols: + type: array + title: CWLTypeSymbols + summary: Allowed values composing the enum. + items: + $ref: '#/$defs/CWLTypeSymbolValues' + CWLTypeSymbolValues: + oneOf: + - type: number + - type: string + title: CWLTypeSymbolValues + CWLTypeEnum: + type: object + title: CWLTypeEnum + summary: CWL type as enum of values. + properties: + type: + type: string + title: type + example: enum + enum: + - enum + symbols: + $ref: '#/$defs/CWLTypeSymbols' + required: + - type + - symbols + additionalProperties: {} + CWLTypeRecordRef: + description: | + An IRI with minimally a '{Record}' identifier to look for a schema definition locally or remotely. + + The identifier resolution is performed accordingly to the specified reference and as described in + https://www.commonwl.org/v1.2/SchemaSalad.html#Identifier_resolution. + $comment: Avoid 'oneOf' conflict of valid strings between this CWL record reference and the generic CWL types. + allOf: + - not: + $ref: '#/$defs/CWLTypeDefinition' + - not: + $ref: '#/$defs/CWLInputStdInDefinition' + - not: + $ref: '#/$defs/CWLOutputStdOutDefinition' + - not: + $ref: '#/$defs/CWLOutputStdErrDefinition' + - $ref: '#/$defs/CWLTypeRecordRefPattern' + CWLTypeRecordRefPattern: + type: string + format: url + pattern: '^(((?:http|ftp)s?:\/\/)?(?!.*\/\/.*$)(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+(?:[A-Za-z]{2,6}\.?|[A-Za-z0-9-]{2,}\.?)|localhost|\[[a-f0-9:]+\]|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::\d+)?(?:\/?|[\/?]\S+))?(?:[A-Za-z0-9\w\-.\/]+)?\#?[A-Za-z0-9\w\-.]+$' + CWLTypeList: + type: array + title: CWLTypeList + summary: Combination of allowed CWL types. + items: + $ref: '#/$defs/CWLTypeBase' + CWLDefault: + title: CWLDefault + description: Default value of input if not provided for task execution. + oneOf: + - $ref: '#/$defs/AnyLiteralType' + - $ref: '#/$defs/AnyLiteralList' + - $ref: '#/$defs/CWLDefaultLocation' + - $ref: '#/$defs/CWLDefaultObject' + - type: array + items: + $ref: '#/$defs/CWLDefaultObject' + CWLDefaultTypedConditional: + $comment: | + Validate that the 'default' value, if specified, is of same type as the CWL 'type'. + This avoids over-accepting anything that does not match the intended type. + However, validation limits itself to data literals and arrays. + Nested type and multi-type definitions will validate against 'Any'. + allOf: + - $comment: Object structure with minimally 'type' and 'default'. Otherwise, no point to continue testing. + type: object + properties: + type: + $ref: '#/$defs/AnyType' + default: + $ref: '#/$defs/AnyType' + required: + - type + - $comment: Explicit null. + if: + properties: + type: + const: 'null' + then: + properties: + default: + type: 'null' + - $comment: Required string. + if: + properties: + type: + const: string + then: + properties: + default: + type: string + - $comment: Optional string. + if: + properties: + type: + const: string? + then: + properties: + default: + type: + - string + - 'null' + - $comment: Required boolean. + if: + properties: + type: + const: boolean + then: + properties: + default: + type: boolean + - $comment: Optional boolean. + if: + properties: + type: + enum: + - double? + - float? + - int? + - integer? + - long? + then: + properties: + default: + type: + - number + - 'null' + - $comment: Required numeric. + if: + properties: + type: + enum: + - double + - float + - int + - integer + - long + then: + properties: + default: + type: number + - $comment: Optional numeric. + if: + properties: + type: + enum: + - double? + - float? + - int? + - integer? + - long? + then: + properties: + default: + type: + - number + - 'null' + - $comment: Required enum. + if: + properties: + type: + const: enum + symbols: + $ref: '#/$defs/CWLTypeSymbols' + then: + properties: + default: + type: + $ref: '#/$defs/CWLTypeSymbolValues' + - $comment: Optional enum. + if: + properties: + type: + const: enum? + symbols: + $ref: '#/$defs/CWLTypeSymbols' + then: + properties: + default: + oneOf: + - $ref: '#/$defs/CWLTypeSymbolValues' + - type: 'null' + - $comment: Required File or Directory. + if: + properties: + type: + enum: + - Directory + - File + then: + properties: + default: + $ref: '#/$defs/CWLDefaultLocation' + - $comment: Optional File or Directory. + if: + properties: + type: + enum: + - Directory? + - File? + then: + properties: + default: + oneOf: + - $ref: '#/$defs/CWLDefaultLocation' + - type: 'null' + - $comment: Required array of string. + if: + oneOf: + - properties: + type: + const: string[] + - properties: + type: + const: array + items: + const: string + then: + properties: + default: + type: array + items: + type: string + - $comment: Required array of boolean. + if: + oneOf: + - properties: + type: + const: boolean[] + - properties: + type: + const: array + items: + const: boolean + then: + properties: + default: + type: array + items: + type: boolean + - $comment: Required array of numeric. + if: + oneOf: + - properties: + type: + enum: + - double[] + - float[] + - int[] + - integer[] + - long[] + - properties: + type: + const: array + items: + enum: + - double + - float + - int + - integer + - long + then: + properties: + default: + type: array + items: + type: number + - $comment: Required anything (single). + if: + properties: + type: + const: Any + then: + properties: + default: + $comment: Match anything. + $ref: '#/$defs/AnyType' + - $comment: Required array of anything. + if: + properties: + type: + const: Any[] + then: + properties: + default: + $comment: Match anything as long as under array. + type: array + items: + $ref: '#/$defs/AnyType' + AnyType: + type: + - boolean + - number + - string + - array + - object + AnyLiteralType: + oneOf: + - type: number + - type: boolean + - type: string + AnyLiteralList: + type: array + title: AnyLiteralList + items: + $ref: '#/$defs/AnyLiteralType' + Checksum: + $comment: | + Minimal pattern check to know which hash algorithm to apply, + but don't check too harshly for the rest (length, allowed characters, etc.). + type: string + pattern: '^[a-z0-9\-]+\$[\w\-.]+$' + ReferenceURL: + type: string + format: url + pattern: '^((?:http|ftp)s?:\/\/)?(?!.*\/\/.*$)(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+(?:[A-Za-z]{2,6}\.?|[A-Za-z0-9-]{2,}\.?)|localhost|\[[a-f0-9:]+\]|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::\d+)?(?:\/?|[/?]\S+)$' + CWLDefaultLocation: + type: object + properties: + class: + type: string + enum: + - File + - Directory + path: + type: string + location: + type: string + basename: + type: string + nameroot: + type: string + required: + - class + oneOf: + - required: + - path + - required: + - location + additionalProperties: false + CWLDefaultObject: + type: object + not: + $comment: Avoid false-positive match of default File or Directory location definition. + properties: + class: + type: string + enum: + - File + - Directory + additionalProperties: {} + InputBinding: + type: object + title: Input Binding + description: Defines how to specify the input for the command. + properties: + prefix: + type: string + position: + oneOf: + - type: integer + - $ref: '#/$defs/CWLExpression' + valueFrom: + $ref: '#/$defs/CWLExpression' + itemSeparator: + type: string + shellQuote: + type: boolean + additionalProperties: false + CWLInputItemBase: + type: object + properties: + type: + oneOf: + - $ref: '#/$defs/CWLType' + - $ref: '#/$defs/CWLInputStdIn' + inputBinding: + $ref: '#/$defs/InputBinding' + id: + description: Identifier of the CWL input. + $ref: '#/$defs/CWLIdentifier' + required: + - type + - id + additionalProperties: { } + CWLInputItem: + title: Input + description: | + Input specification. Note that multiple formats are supported and + not all specification variants or parameters are presented here. Please refer + to official CWL documentation for more details (https://www.commonwl.org). + allOf: + - $ref: '#/$defs/CWLInputItemBase' + - $ref: '#/$defs/CWLDefaultTypedConditional' + - $ref: '#/$defs/CWLDocumentation' + CWLInputObjectBase: + type: object + properties: + type: + $ref: '#/$defs/CWLType' + inputBinding: + $ref: '#/$defs/InputBinding' + additionalProperties: { } + required: + - type + additionalProperties: { } + CWLInputObject: + title: CWLInputObject + summary: CWL type definition with parameters. + allOf: + - $ref: '#/$defs/CWLInputObjectBase' + - $ref: '#/$defs/CWLDefaultTypedConditional' + - $ref: '#/$defs/CWLDocumentation' + CWLInputMap: + type: object + title: CWLInputMap + description: Package inputs defined as mapping. + properties: {} + required: [] + additionalProperties: + oneOf: + - $ref: '#/$defs/CWLType' + - $ref: '#/$defs/CWLInputObject' + - $ref: '#/$defs/CWLInputStdIn' + - $ref: '#/$defs/CWLImport' + CWLOutputsDefinition: + oneOf: + - $ref: '#/$defs/CWLOutputList' + - $comment: Avoid 'oneOf' conflict of generic mapping key strings as output identifier matching against '$import'. + allOf: + - $ref: '#/$defs/CWLOutputMap' + - not: + $ref: '#/$defs/CWLImport' + - $ref: '#/$defs/CWLImport' + title: CWLOutputsDefinition + description: All outputs produced by the Application Package. + CWLOutputList: + type: array + title: CWLOutputList + description: Package outputs defined as items. + items: + $ref: '#/$defs/CWLOutputItem' + OutputBinding: + type: object + title: OutputBinding + description: Defines how to retrieve the output result from the command. + properties: + glob: + description: Glob pattern to find the output on disk or mounted docker volume. + oneOf: + - $ref: '#/$defs/CWLExpression' + - type: array + items: + $ref: '#/$defs/CWLExpression' + additionalProperties: {} + CWLOutputItem: + type: object + title: CWLOutputItem + description: | + Output specification. Note that multiple formats are supported + and not all specification variants or parameters are presented here. Please + refer to official CWL documentation for more details (https://www.commonwl.org). + properties: + type: + oneOf: + - $ref: '#/$defs/CWLType' + - $ref: '#/$defs/CWLOutputStdOut' + - $ref: '#/$defs/CWLOutputStdErr' + outputBinding: + $ref: '#/$defs/OutputBinding' + id: + description: Identifier of the CWL output. + $ref: '#/$defs/CWLIdentifier' + required: + - type + - id + additionalProperties: {} + CWLOutputObjectBase: + type: object + title: CWLOutputObject + summary: CWL type definition with parameters. + properties: + type: + $ref: '#/$defs/CWLType' + outputBinding: + $ref: '#/$defs/OutputBinding' + required: + - type + additionalProperties: {} + CWLOutputObject: + allOf: + - $ref: '#/$defs/CWLDocumentation' + - $ref: '#/$defs/CWLOutputObjectBase' + CWLOutputMap: + type: object + title: CWLOutputMap + description: Package outputs defined as mapping. + properties: {} + required: [] + additionalProperties: + oneOf: + - $ref: '#/$defs/CWLType' + - $ref: '#/$defs/CWLOutputObject' + - $ref: '#/$defs/CWLOutputStdOut' + - $ref: '#/$defs/CWLOutputStdErr' + - $ref: '#/$defs/CWLImport' + CWLScatter: + oneOf: + - $ref: '#/$defs/CWLIdentifier' + - $ref: '#/$defs/CWLScatterMulti' + title: CWLScatter + description: | + One or more input identifier of an application step within a Workflow + were an array-based input to that Workflow should be scattered across multiple + instances of the step application. + CWLScatterMulti: + type: array + title: CWLScatterMulti + items: + $ref: '#/$defs/CWLIdentifier' + CWLScatterMethod: + type: string + title: scatterMethod + description: | + Describes how to decompose the scattered input into a discrete + set of jobs. When 'dotproduct', specifies that each of the input arrays + are aligned and one element taken from each array to construct each job. + It is an error if all input arrays are of different length. When 'nested_crossproduct', + specifies the Cartesian product of the inputs, producing a job for every + combination of the scattered inputs. The output must be nested arrays + for each level of scattering, in the order that the input arrays are listed + in the scatter field. When 'flat_crossproduct', specifies the Cartesian + product of the inputs, producing a job for every combination of the scattered + inputs. The output arrays must be flattened to a single level, but otherwise + listed in the order that the input arrays are listed in the scatter field. + enum: + - dotproduct + - nested_crossproduct + - flat_crossproduct + CWLWorkflowStepScatter: + type: object + properties: + scatter: + $ref: '#/$defs/Scatter' + scatterMethod: + $ref: '#/$defs/ScatterMethod' + CWLWorkflowStepRun: + description: Nested CWL definition to run as Workflow step. + oneOf: + - description: File or URL reference to a CWL tool definition. + type: string + - description: Nested CWL tool definition for the step. + $ref: '#/$defs/CWLAtomicNested' + - description: Nested CWL Workflow definition for the step. + $ref: '#/$defs/CWLWorkflowNested' + CWLWorkflowStepWhen: + description: Condition to execute a step that must evaluate to a boolean-like value. + $ref: '#/$defs/CWLExpression' + LinkMergeMethod: + type: string + enum: + - merge_nested + - merge_flattened + CWLWorkflowStepInputBase: + type: object + properties: + source: + oneOf: + - type: string + - type: array + items: + type: string + linkMerge: + $ref: '#/$defs/LinkMergeMethod' + valueFrom: + $ref: '#/$defs/CWLExpression' + CWLWorkflowStepInputDefault: + $comment: | + CWL 'type' is not specified at this level for step inputs + (it is provided by the mapped input of the nested tool instead). + Therefore, cannot validate against 'CWLDefaultTypedConditional'. + type: object + properties: + default: + $ref: '#/$defs/CWLDefault' + CWLWorkflowStepInput: + allOf: + - $ref: '#/$defs/CWLWorkflowStepInputBase' + - $ref: '#/$defs/CWLWorkflowStepInputDefault' + CWLWorkflowStepInputId: + type: object + properties: + id: + $ref: '#/$defs/CWLIdentifier' + required: + - id + CWLWorkflowStepInItem: + allOf: + - $ref: '#/$defs/CWLWorkflowStepInputId' + - $ref: '#/$defs/CWLWorkflowStepInputBase' + - $ref: '#/$defs/CWLWorkflowStepInputDefault' + CWLWorkflowStepInList: + type: array + items: + $ref: '#/$defs/CWLWorkflowStepInItem' + CWLWorkflowStepInMap: + type: object + additionalProperties: + oneOf: + - type: string + - type: array + items: + type: string + - $ref: '#/$defs/CWLWorkflowStepInput' + CWLWorkflowStepIn: + description: Mapping of Workflow step inputs to nested CWL tool definitions inputs or outputs. + oneOf: + - $ref: '#/$defs/CWLWorkflowStepInMap' + - $ref: '#/$defs/CWLWorkflowStepInList' + CWLWorkflowStepOutId: + type: object + properties: + id: + $ref: '#/$defs/CWLIdentifier' + required: + - id + additionalProperties: false + CWLWorkflowStepOut: + description: Mapping of Workflow step inputs to nested CWL tool definitions inputs or outputs. + type: array + items: + oneOf: + - $ref: '#/$defs/CWLIdentifier' + - $ref: '#/$defs/CWLWorkflowStepOutId' + CWLWorkflowStepDefinition: + type: object + properties: + in: + $ref: '#/$defs/CWLWorkflowStepIn' + run: + $ref: '#/$defs/CWLWorkflowStepRun' + when: + $ref: '#/$defs/CWLWorkflowStepWhen' + out: + $ref: '#/$defs/CWLWorkflowStepOut' + required: + - in + - run + - out + CWLWorkflowStepObject: + allOf: + - $ref: '#/$defs/CWLWorkflowStepDefinition' + - $ref: '#/$defs/CWLWorkflowStepScatter' + CWLWorkflowStepItem: + allOf: + - $ref: '#/$defs/CWLWorkflowStepId' + - $ref: '#/$defs/CWLWorkflowStepObject' + CWLWorkflowStepId: + type: object + properties: + id: + $ref: '#/$defs/CWLIdentifier' + required: + - id + CWLWorkflowStepMap: + type: object + additionalProperties: + $ref: '#/$defs/CWLWorkflowStepObject' + CWLWorkflowStepList: + type: array + items: + $ref: '#/$defs/CWLWorkflowStepItem' + CWLWorkflowClass: + type: object + properties: + class: + type: string + enum: + - Workflow + CWLWorkflowSteps: + oneOf: + - $ref: '#/$defs/CWLWorkflowStepMap' + - $ref: '#/$defs/CWLWorkflowStepList' + CWLWorkflowBase: + type: object + properties: + steps: + $ref: '#/$defs/CWLWorkflowSteps' + inputs: + $ref: '#/$defs/CWLInputsDefinition' + outputs: + $ref: '#/$defs/CWLOutputsDefinition' + requirements: + $comment: Technically a different subset, but lots of redefinitions to be done. + $ref: '#/$defs/CWLRequirements' + hints: + $comment: Technically a different subset, but lots of redefinitions to be done. + $ref: '#/$defs/CWLHints' + CWLWorkflowNested: + $comment: Same as 'CWLWorkflow', but 'cwlVersion' not repeated (only at root). + allOf: + - $ref: '#/$defs/CWLMetadata' + - $ref: '#/$defs/CWLDocumentation' + - $ref: '#/$defs/CWLWorkflowClass' + - $ref: '#/$defs/CWLWorkflowBase' + CWLWorkflow: + allOf: + - $ref: '#/$defs/CWLVersion' + - $ref: '#/$defs/CWLMetadata' + - $ref: '#/$defs/CWLDocumentation' + - $ref: '#/$defs/CWLWorkflowClass' + - $ref: '#/$defs/CWLWorkflowBase' + CWLVersion: + type: object + properties: + clwVersion: + type: string + title: cwlVersion + description: CWL version of the described application package. + pattern: '^v\d+(\.\d+(\.\d+)*)*$' + required: + - cwlVersion + CWLAtomic: + allOf: + - $ref: '#/$defs/CWLVersion' + - $ref: '#/$defs/CWLMetadata' + - $ref: '#/$defs/CWLDocumentation' + - $ref: '#/$defs/CWLAtomicBase' + CWLAtomicNested: + $comment: Same as 'CWLAtomic', but 'cwlVersion' not repeated (only at root). + allOf: + - $ref: '#/$defs/CWLMetadata' + - $ref: '#/$defs/CWLDocumentation' + - $ref: '#/$defs/CWLAtomicBase' + CWLAtomicBase: + type: object + title: CWL atomic definition + description: Direct CWL definition instead of the graph representation. + properties: + id: + $ref: '#/$defs/CWLIdentifier' + class: + type: string + title: Class + description: CWL class specification. This is used to differentiate between + single Application Package (AP)definitions and Workflow that chains multiple + packages. + enum: + - CommandLineTool + - ExpressionTool + intent: + $ref: '#/$defs/CWLIntent' + requirements: + $ref: '#/$defs/CWLRequirements' + hints: + $ref: '#/$defs/CWLHints' + baseCommand: + $ref: '#/$defs/CWLCommand' + arguments: + $ref: '#/$defs/CWLArguments' + inputs: + $ref: '#/$defs/CWLInputsDefinition' + outputs: + $ref: '#/$defs/CWLOutputsDefinition' + stdin: + description: | + Source of the input stream. + Typically, an expression referring to an existing file name or an input of the CWL document. + $ref: '#/$defs/CWLExpression' + stdout: + description: | + Destination of the output stream. + Typically, an expression referring to a desired file name or provided by a CWL input reference. + $ref: '#/$defs/CWLExpression' + stderr: + description: | + Destination of the error stream. + Typically, an expression referring to a desired file name or provided by a CWL input reference. + $ref: '#/$defs/CWLExpression' + scatter: + $ref: '#/$defs/CWLScatter' + scatterMethod: + $ref: '#/$defs/CWLScatterMethod' + required: + - class + - inputs + - outputs + CWLGraphList: + type: array + title: CWLGraphList + description: Graph definition that defines *exactly one* CWL application package + represented as list. Multiple definitions simultaneously deployed is NOT supported + currently. + items: + $ref: '#/$defs/CWLGraphItem' + maxItems: 1 + minItems: 1 + CWLGraphItem: + allOf: + - $ref: '#/$defs/CWLMetadata' + - $ref: '#/$defs/CWLDocumentation' + - $ref: '#/$defs/CWLGraphItemBase' + CWLGraphItemBase: + type: object + title: CWLGraphItem + properties: + class: + type: string + title: Class + description: CWL class specification. This is used to differentiate between + single Application Package (AP)definitions and Workflow that chains multiple + packages. + enum: + - CommandLineTool + - ExpressionTool + - Workflow + id: + $ref: '#/$defs/CWLIdentifier' + intent: + $ref: '#/$defs/CWLIntent' + requirements: + $ref: '#/$defs/CWLRequirements' + hints: + $ref: '#/$defs/CWLHints' + baseCommand: + $ref: '#/$defs/CWLCommand' + arguments: + $ref: '#/$defs/CWLArguments' + inputs: + $ref: '#/$defs/CWLInputsDefinition' + outputs: + $ref: '#/$defs/CWLOutputsDefinition' + scatter: + $ref: '#/$defs/CWLScatter' + scatterMethod: + $ref: '#/$defs/CWLScatterMethod' + required: + - class + - id + - inputs + - outputs + additionalProperties: {} + CWLGraphBase: + type: object + properties: + $graph: + $ref: '#/$defs/CWLGraphList' + required: + - $graph + additionalProperties: {} + CWLGraph: + title: CWLGraph + allOf: + - $ref: '#/$defs/CWLVersion' + - $ref: '#/$defs/CWLMetadata' + - $ref: '#/$defs/CWLDocumentation' + - $ref: '#/$defs/CWLGraphBase' + CWLDocumentation: + type: object + properties: + label: + type: string + doc: + oneOf: + - type: string + - type: array + items: + type: string + CWLMetadata: + type: object + properties: + s:keywords: + $ref: '#/$defs/CWLKeywordList' + version: + type: string + title: version + description: "Version of the process." + example: "1.2.3" + pattern: '^\d+(\.\d+(\.\d+(\.[A-Za-z0-9\-_]+)*)*)*$' diff --git a/requirements-jsonschema-test.txt b/requirements-jsonschema-test.txt new file mode 100644 index 00000000..f6ad2c48 --- /dev/null +++ b/requirements-jsonschema-test.txt @@ -0,0 +1,3 @@ +jsonschema +pytest +requests diff --git a/tests/json_schema/test_cwl_schema.py b/tests/json_schema/test_cwl_schema.py new file mode 100644 index 00000000..2194e46a --- /dev/null +++ b/tests/json_schema/test_cwl_schema.py @@ -0,0 +1,182 @@ +import logging +import os +import posixpath +from functools import lru_cache +from typing import Dict, List, Optional, Tuple, Type, TypedDict, Union, cast +from typing_extensions import NotRequired, TypeAlias, TypeGuard +from urllib.parse import urljoin, urlparse + +import jsonschema +import requests +import pytest +from jsonschema.protocols import Validator +from jsonschema.exceptions import ValidationError, best_match + +# WARNING: do not use 'pyyaml' (import yaml), it does invalid parsing of some scientific number representations +# see 'Numbers in scientific notation without dot are parsed as string' (https://github.com/yaml/pyyaml/issues/173) +# builtin 'json' and 'simplejson' also have this issue (https://github.com/common-workflow-language/cwl-v1.2/issues/252) +from ruamel import yaml +from ruamel.yaml.scanner import ScannerError + +# https://raw.githubusercontent.com/common-workflow-language/cwl-v1.2/1.2.1_proposed/conformance_tests.yaml +CONFORMANCE_TESTS_FILE = os.path.join(os.path.dirname(__file__), "../../conformance_tests.yaml") +# https://raw.githubusercontent.com/common-workflow-language/cwl-v1.2/1.2.1_proposed/json-schema/cwl.yaml +CWL_JSON_SCHEMA_FILE = os.path.join(os.path.dirname(__file__), "../../json-schema/cwl.yaml") +CWL_JSON_SCHEMA_REF = f"{CWL_JSON_SCHEMA_FILE}#/$defs/CWL" + +LOGGER = logging.getLogger(__name__) + +# pylint: disable=C0103,invalid-name +Number = Union[int, float] +ValueType = Union[str, Number, bool] +AnyValueType = Optional[ValueType] +# add more levels of explicit definitions than necessary to simulate JSON recursive structure better than 'Any' +# amount of repeated equivalent definition makes typing analysis 'work well enough' for most use cases +_JSON: TypeAlias = "JSON" +_JsonObjectItemAlias: TypeAlias = "_JsonObjectItem" +_JsonListItemAlias: TypeAlias = "_JsonListItem" +_JsonObjectItem = Dict[str, Union[AnyValueType, _JSON, _JsonObjectItemAlias, _JsonListItemAlias]] +_JsonListItem = List[Union[AnyValueType, _JSON, _JsonObjectItem, _JsonListItemAlias]] +_JsonItem = Union[AnyValueType, _JSON, _JsonObjectItem, _JsonListItem] +JSON = Union[Dict[str, Union[_JSON, _JsonItem]], List[Union[_JSON, _JsonItem]], AnyValueType] + +ConformanceTestDef = TypedDict( + "ConformanceTestDef", + { + "id": str, + "doc": str, + "tags": List[str], # should contain 'json_schema_invalid' to XFAIL schema validation tests + "tool": str, + "job": NotRequired[str], # not used, for running the actual CWL + "output": JSON, # not used, output of CWL execution + "should_fail": NotRequired[bool], # indicates failure as "execute failing", but potentially still valid CWL + } +) + + +@lru_cache(maxsize=None) +def is_remote_file(file_location: str) -> TypeGuard[str]: + """ + Parses to file location to figure out if it is remotely available or a local path. + """ + cwl_file_path_or_url = file_location.replace("file://", "") + scheme = urlparse(cwl_file_path_or_url).scheme + return scheme != "" and not posixpath.ismount(f"{scheme}:") # windows partition + + +@lru_cache(maxsize=None) +def load_file(file_path: str, text: bool = False) -> Union[JSON, str]: + """ + Load :term:`JSON` or :term:`YAML` file contents from local path or remote URL. + + If URL, get the content and validate it by loading, otherwise load file directly. + + :param file_path: Local path or URL endpoint where file to load is located. + :param text: load contents as plain text rather than parsing it from :term:`JSON`/:term:`YAML`. + :returns: loaded contents either parsed and converted to Python objects or as plain text. + :raises ValueError: if YAML or JSON cannot be parsed or loaded from location. + """ + try: + if is_remote_file(file_path): + headers = {"Accept": "text/plain"} + resp = requests.get(file_path, headers=headers) + if resp.status_code != 200: + raise ValueError("Loading error: [%s]", file_path) + return resp.content if text else yaml.safe_load(resp.content) + with open(file_path, mode="r", encoding="utf-8") as f: + return f.read() if text else yaml.safe_load(f) + except OSError as exc: + LOGGER.debug("Loading error: %s", exc, exc_info=exc) + raise + except ScannerError as exc: # pragma: no cover + LOGGER.debug("Parsing error: %s", exc, exc_info=exc) + raise ValueError("Failed parsing file content as JSON or YAML.") + + +def resolve_ref(schema_file: str) -> Tuple[str, JSON, JSON]: + schema_path = [] + if "#" in schema_file: + schema_file, schema_ref = schema_file.split("#", 1) + schema_path = [ref for ref in schema_ref.split("/") if ref] + schema_base = schema = load_file(schema_file) + if schema_path: + for part in schema_path: + schema = schema[part] + # ensure local schema can find relative $ref, since the provided reference can be a sub-schema (with "#/...") + schema_uri = f"file://{schema_file}" if schema_file.startswith("/") else schema_file + return schema_uri, schema_base, schema + + +def load_conformance_tests(test_file: str) -> List[ConformanceTestDef]: + conformance_tests = load_file(test_file) + assert isinstance(conformance_tests, list) + assert all(isinstance(conf_test, dict) for conf_test in conformance_tests) + test_base = os.path.dirname(test_file) + all_conf_test = [] + for conf_test in conformance_tests: + if "$import" in conf_test: + conf_path = urljoin(f"{test_base}/", conf_test["$import"]) + conf_test = load_conformance_tests(conf_path) + all_conf_test.extend(conf_test) + continue + for ref in ["job", "tool"]: + if ref not in conf_test: + continue + if not urlparse(conf_test[ref]).scheme: + conf_test[ref] = urljoin(f"{test_base}/", conf_test[ref]) + conf_test.setdefault("doc", "") + all_conf_test.append(conf_test) + return all_conf_test + + +@pytest.mark.parametrize( + "conformance_test", + load_conformance_tests(CONFORMANCE_TESTS_FILE) +) +def test_conformance(conformance_test: ConformanceTestDef, request: pytest.FixtureRequest) -> None: + LOGGER.debug( + "Testing [%s] (%s) with [%s]", + conformance_test["id"], + conformance_test["doc"], + conformance_test["tool"], + ) + + # if the tool CWL is a '$graph' with a reference in the IRI (tool-path.cwl#nested), ignore the nested reference + # this is because the main 'CWL' JSON schema expect 'cwlVersion' at the root of all documents + # if we test the nested tool directly against 'CWL', JSON schema will fail immediately + # also, we evaluate more test cases if we always consider the full sample tool + instance_file = conformance_test["tool"].rsplit("#")[0] + instance = load_file(instance_file) + instance_xfail = "json_schema_invalid" in conformance_test.get("tags", []) + request.applymarker(pytest.mark.xfail(reason="Test tagged with 'json_schema_invalid'.", condition=instance_xfail)) + + schema_uri, schema_base, schema_test = resolve_ref(CWL_JSON_SCHEMA_REF) + validator: Type[Validator] = jsonschema.validators.validator_for(schema_base) + validator.resolver = jsonschema.RefResolver(base_uri=schema_uri, referrer=schema_base) + + try: + # similar to 'validate()' call that raises directly, but obtain the error for more context + # useful to get more context for 'oneOf' cases that only show "is not valid under any of the given schemas" + schema_validator = validator(schema_base).evolve(schema=schema_test) + errors = list(schema_validator.iter_errors(instance)) + if errors: + if len(errors) == 1 and "oneOf" in errors[0].schema: + error = errors[0] + error.message += "\n\nFor each case under oneOf:\n" + "\n".join( + f"- {err.message}" + if not err.message.endswith("is not valid under any of the given schemas") + else f"- all invalid under oneOf {err.validator_value}" + for err in error.context + ) + raise error + main_error = cast( + ValidationError, + best_match(errors), # what 'validate()' normally does using 'iter_errors()' + ) + raise main_error + except Exception as exc: + test_id = conformance_test["id"] + test_doc = conformance_test["doc"] + raise AssertionError( + f"Failed [{test_id}] ({instance_file}) tool validation for [{test_doc}]." + ) from exc diff --git a/tests/loadContents/test-index.yaml b/tests/loadContents/test-index.yaml index bb42b063..4ae7b344 100644 --- a/tests/loadContents/test-index.yaml +++ b/tests/loadContents/test-index.yaml @@ -11,4 +11,4 @@ output: {} doc: "Test that loadContents on a file larger than 64k fails" should_fail: true - tags: [ command_line_tool, required ] + tags: [ command_line_tool, required, json_schema_invalid ] diff --git a/tests/mixed-versions/test-index.yaml b/tests/mixed-versions/test-index.yaml index 13a2bdfb..88ad4d0f 100644 --- a/tests/mixed-versions/test-index.yaml +++ b/tests/mixed-versions/test-index.yaml @@ -30,14 +30,14 @@ id: invalid_syntax_v10_uses_v12_tool doc: test tool with v1.2 syntax marked as v1.0 (should fail) should_fail: true - tags: [ command_line_tool ] + tags: [ command_line_tool, json_schema_invalid ] - job: null tool: invalid-tool-v11.cwl doc: test tool with v1.2 syntax marked as v1.1 (should fail) id: invalid_syntax_v11_uses_v12_tool should_fail: true - tags: [ command_line_tool ] + tags: [ command_line_tool, json_schema_invalid ] - job: null tool: invalid-wf-v10.cwl From 1ce723639dd2299b9dda8204516c739a0337a8f3 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Sat, 22 Jul 2023 12:58:07 +0200 Subject: [PATCH 107/127] changelog for 7b4b85...350f0b --- CommandLineTool.yml | 150 +++++++++++++++++- Workflow.yml | 56 +++++++ .../schema_salad/metaschema/import_include.md | 1 + salad/schema_salad/metaschema/salad.md | 17 ++ 4 files changed, 222 insertions(+), 2 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index 2defcdfd..13d705d2 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -37,10 +37,156 @@ $graph: - {$include: intro.md} - | + ## Introduction to the CWL Command Line Tool draft standard v1.2.1 + + This specification represents the latest development draft from the + CWL project. There are no new features nor behavior changes in CWL v1.2.1 + as compared to CWL v1.2. v1.2.1 fixes only typos, adds clarifications, + and adds additional conformance tests. Some changes to the schema defining + CWL have been changed to aid the auto-generation of libraries for the reading + and writing of CWL documents. + + Do not write `cwlVersion: v1.2.1`, that is not a valid version of the CWL + syntax. + + See also the [Schema-Salad v1.2.1 changelog](SchemaSalad.html#Changelog_for_v1.2.1) + + ## Changelog for v1.2.1 + + * The schema for `Requirement`s has changed to enable faster parsing by + autogenerated libraries. The `class` field is now a static enum with a + single permissible value instead of a generic string (for example: + `class: DockerRequirement` for a `DockerRequirement` hint or requirement.) + This allows for autogenerated CWL parsers to recognize any requirement + immediatelly instead of having to check for matching field names and + valid values, as was done previously. + * Likewise, the schema for `CommandLineTool` has changed to enable faster parsing by + autogenerated libraries. The `class` field is now a static enum with a + single permissible value (`class: CommandLineTool`) instead of a generic + string. + This allows for autogenerated CWL parsers to recognize any `CommandLineTool` + immediatelly instead of having to check for matching field names and + valid values, as was done previously. + * The schema for the `CommandLineBinding.position` field now has an explicit + default value of `0`. Previously this was only expression textually in + the description of that field. + * The schema for the `File.streamable` field now has an explicit default + value of `false` to match the textual description. + + Note: Other fields like `ResourceRequirement.coresMin`, `.coresMax`, + `.ramMin`, `.ramMax`, `.tmpdirMin`, `.tmpdirMax` have not had defaults + set in the schema so that parsers can discriminate easily between a + value not provided and the default value (`0`). + * Everywhere the schema allows a value of type `long` we also explictly + allow a value of type `int`. By JSON rules this is implicit, but by + making it explicit we aid autogenerated CWL libraries especially in + languages such as Java. + * The [difference between `$()` and `${}`](#Expressions_(Optional)) were + clarified. We now make more explicit that `${...}` evaluates to + `(function() { ... })()`. + * The publisher of this document is now explictly named; it is the + [Common Workflow Language project](https://www.commonwl.org), a member + project of [Software Freedom Conservancy](https://sfconservancy.org/). + * The [Parameter References](#Parameter_references) section has been updated + to clarify ambiguity on `null` and array `.length`. Three conformance tests to + verify this were added as well (`params_broken_null`, `length_for_non_array`, + `user_defined_length_in_parameter_reference`). + * It is now explicit in the description of the `size` field of a + [`File`](#File) object that `size` is measured in bytes, as was already + stated in the introduction to the `File` object description. + * The concept of "opaque identifier(s)"/"opaque strings" as mentioned in the + [`SecondaryFileSchema`](#SecondaryFileSchema), [Parameter References](#Parameter_references), + and [Runtime Environment](#Runtime_environment) sections is now defined + in the newly added [glossary](#Glossary): they are nonsensical values + that are swapped out with a real value later in the evaluation process. + Workflow and tool expressions **should not** rely on it nor try to parse it. + + ### Updated Conformance Tests for v1.2.1 + * Conformance tests are now refered to by their textual identifiers (`id`). Previously + this was the `label` field. Tests without a `label`/`id` have been give + one. + * `tests/loadContents/cwloutput-nolimit.cwl`: Made explicit that + `bigstring` is an additional output as generated by the existing + `mkfilelist.py` script's use of [`cwl.output.json`](#Output_binding). + * The number of different software containers used in the conformance tests + has been reduced to four. See [the list in the CONFORMANCE_TESTS.md instructions](https://github.com/common-workflow-language/cwl-v1.2/blob/1.2.1_proposed/CONFORMANCE_TESTS.md#writing-a-new-conformance-test). + * `tests/secondaryfiles/rename-inputs.cwl` has been simplified by changing + it to reference another input parameter instead of using `self`. The + behavior of processing secondary files patterns in order and being able + to reference earlier ones later is not part of CWL v1.2. + + This doesn't exactly replicate the previous behavior, because it introduces + a new input parameter, however it does demonstrate the ability to rename + a file and have it staged as a secondary file without having to use + `InitialWorkDirRequirement`. + * `tests/conditionals/cond-wf-002.cwl`, `tests/conditionals/cond-wf-002_nojs.cwl`, + `tests/conditionals/cond-wf-002_nojs.cwl`, `tests/conditionals/cond-wf-011_nojs.cwl`: + Marked the outputs as optional to remove ambiguity for these conditional + `when` tests; allowing conformant CWL runners to be more strict in their + interpretation of the typing rules, if they choose so. + * `directory_input_docker` was incorrectly marked as required, it is optional + unless the feature `ShellCommandRequirement` is stated as being supported. + * `glob_outside_outputs_fails` was incorrectly marked as required, it is + optional unlewss the feature `DockerRequirement` is stated as being supported. + * `stage_file_array` was incorrectly marked as required, it is optional + unless both the features `InlineJavascriptRequirement` and `DockerRequirement` + are stated as being supported. + * `stage_file_array_basename` and `stage_file_array_entryname_overrides` were + both incorrectly marked as required, they are optional unless the feature + `InitialWorkDirRequirement` and `InlineJavascriptRequirement` are both + stated as being supported. + * `optional_numerical_output_returns_0_not_null` was incorrectly marked as + required, it is optional unless `InlineJavascriptRequirement` is stated + as being supported. + * Made it explicit that if a `CommandLineTool` contains logically chained + commands (e.g. `echo a && echo b`) then the `stdout` File/object must + include the output of every command. The `stdout_chained_commands` mandatory + conformance test was added to verify this. + * `metadata`: The description and content of this test has been updated to + be more focused on the metadata present in the CWL file. + + ### New Mandatory Conformance Tests for v1.2.1 + * `params_broken_null`: Test parameter reference that refers to + `null.something`. + * `length_for_non_array`: Test parameter reference that refers to length + of non-array input. + * `user_defined_length_in_parameter_reference`: Test 'length' in a parameter + reference where it does not refer to length of an array input. + * `directory_literal_with_literal_file_in_subdir_nostdin`: Test non-`stdin` + reference to literal `File` via a nested `Directory` literal. + * `colon_in_paths`: Confirm that colons are tolerated in input paths, + string values, stdout shortcut, and output file & directory names. + * `colon_in_output_path`: Confirm that colons are tolerated in output + directory names. + * `record_with_default`: Confirm that records with defaults are accepted. + * `record_outputeval_nojs`: Use of `outputEval` on a record itself, not + the fields of the record (without javascript). An equivalent test with + `InlineJavascriptRequirement` was added as well: `record_outputeval`. + * `runtime-outdir`: Test use of `$(runtime.outdir)` for `outputBinding.glob`. + * `stdout_chained_commands`: Test that chaining two `echo` calls causes + the workflow runner to emit the combined output to `stdout`. This is to + confirm that the workflow runner will **not** create an expression such as + `echo a && echo b > out.txt`, but instead will produce the correct + `echo a && echo b`, and capture the output correctly. + * `record_order_with_input_bindings`: Test sorting arguments at each level + (`inputBinding` for all levels). + + ### New Optional Conformance Tests for v1.2.1 + + #### `InlineJavaScriptRequirement` + * `record_outputeval`: Use of `outputEval` on a record itself, not + the fields of the record. + * `staging-basename`: Use of an `ExpressionTool` to change `basename` of + file, then correctly staging the file using the new name. + * `js-input-record`: A test case for JavaScript with an input record. + + #### `MultipleInputFeatureRequirement` + * `multiple-input-feature-requirement`: MultipleInputFeatureRequirement on + workflow outputs. + ## Introduction to the CWL Command Line Tool standard v1.2 - This specification represents the latest development release from the - CWL group. Since the v1.1 release, v1.2 introduces the + Since the v1.1 release, v1.2 introduces the following updates to the CWL Command Line Tool standard. Documents should use `cwlVersion: v1.2` to make use of new syntax and features introduced in v1.2. Existing v1.1 documents diff --git a/Workflow.yml b/Workflow.yml index 1e2f0c34..faf01795 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -34,6 +34,62 @@ $graph: - {$include: intro.md} - | + ## Introduction to the CWL Workflow draft standard v1.2.1 + + This specification represents the latest development draft from the + CWL project. There are no new features nor behavior changes in CWL v1.2.1 + as compared to CWL v1.2. v1.2.1 fixes only typos, adds clarifications, + and adds additional conformance tests. Some changes to the schema defining + CWL have been changed to aid the auto-generation of libraries for the reading + and writing of CWL documents. + + Do not write `cwlVersion: v1.2.1`, that is not a valid version of the CWL + syntax. + + See also the [CommandLineTool v1.2.1 changelog](CommandLineTool.html#Changelog_for_v1.2.1) + and the [Schema-Salad v1.2.1 changelog](SchemaSalad.html#Changelog_for_v1.2.1). + + ## Changelog for v1.2.1 + + * The `Workflow.run` field description now explicitly states that it can + be either a string referencing an external document or an embedded Process. + This was previously only stated indirectly. + * The `outputSource` field of [`WorkflowOutputParameter`](#WorkflowOutputParameter) + now explictly states that workflow inputs can be referenced. The + mandatory conformance test `output_reference_workflow_input` has been + added to confirm this. + + ### New Mandatory Conformance tests for v1.2.1 + * `output_reference_workflow_input`: Test direct use of `Workflow` level + input fields in the outputs. + + ### New Optional Conformance Tests for v1.2.1 + + #### SchemaDefRequirement + * `schemadef_types_with_import`: Test `SchemaDefRequirement` with a + workflow, with the `$import` under types. It is similar to `schemadef-wf`, + but the `$import` is different. + + #### ScatterFeatureRequirement + * `simple_simple_scatter`: Two level nested scatter. + * `dotproduct_simple_scatter`: Two level nested scatter: external + dotproduct and internal simple. + * `simple_dotproduct_scatter`: Two level nested scatter: external simple + and internal dotproduct. + * `dotproduct_dotproduct_scatter`: Two level nested scatter: external + dotproduct and internal dotproduct. + * `flat_crossproduct_simple_scatter`: Two level nested scatter: external + flat_crossproduct and internal simple. + * `simple_flat_crossproduct_scatter`: Two level nested scatter: external + simple and internal flat_crossproduct. + * `flat_crossproduct_flat_crossproduct_scatter`: Two level nested scatter: + external flat_crossproduct and internal flat_crossproduct. + * `nested_crossproduct_simple_scatter`: Two level nested scatter: external + nested_crossproduct and internal simple. + * `simple_nested_crossproduct_scatter`: Two level nested scatter: external + simple and internal nested_crossproduct. + * `nested_crossproduct_nested_crossproduct_scatter`: Two level nested scatter: + external nested_crossproduct and internal nested_crossproduct. ## Introduction to CWL Workflow standard v1.2 diff --git a/salad/schema_salad/metaschema/import_include.md b/salad/schema_salad/metaschema/import_include.md index 980240e9..1d5cd56b 100644 --- a/salad/schema_salad/metaschema/import_include.md +++ b/salad/schema_salad/metaschema/import_include.md @@ -27,6 +27,7 @@ replaced by only the object with the appropriate fragment identifier. It is a fatal error if an import directive refers to an external resource or resource fragment which does not exist or is not accessible. + ### Import example: replacing the `$import` node import.json: diff --git a/salad/schema_salad/metaschema/salad.md b/salad/schema_salad/metaschema/salad.md index ad9daf3c..1d9d7fba 100644 --- a/salad/schema_salad/metaschema/salad.md +++ b/salad/schema_salad/metaschema/salad.md @@ -94,6 +94,23 @@ ease the development of extensions to CWL v1.2. The only change is that inherited records can narrow the types of fields if those fields are re-specified with a matching jsonldPredicate. +### Changelog for v1.2.1 + +There are no new features nor behavior changes in Schema Salad v1.2.1 +as compared to Schema-Salad v1.2. Schema Sald v1.2.1 only fixes typos and adds +clarifications. + +* The `salad` directory's contents have been trimmed to the bare necessities. + The `salad/README.rst` has been refreshed from the [upstream repository](https://github.com/common-workflow-language/schema_salad/). +* The [existing behviour of `$import`](#Import) has been clarified. + If the `$import` node is in an array and the import operation yields an + array, it is flattened to the parent array. Otherwise the `$import` + node is replaced in the document structure by the object or array yielded + from the import operation. An [example](#import_example) + has been added to illustrate this better. +* A pair of missing brackets was added to the [Type DSL Example](#Type_DSL_example)'s + example input. + ## References to Other Specifications **Javascript Object Notation (JSON)**: http://json.org From 93517422f191eb99ac1d2c2333548c93de481a6b Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Sun, 23 Jul 2023 10:26:06 +0200 Subject: [PATCH 108/127] json_output_{path,location}_relative: remove need for ShellCommandRequirement --- CommandLineTool.yml | 2 ++ conformance_tests.yaml | 4 ++-- tests/test-cwl-out3.cwl | 12 +++++++----- tests/test-cwl-out4.cwl | 17 +++++++++++------ 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index 13d705d2..b4336b6a 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -170,6 +170,8 @@ $graph: `echo a && echo b`, and capture the output correctly. * `record_order_with_input_bindings`: Test sorting arguments at each level (`inputBinding` for all levels). + * `json_output_path_relative`: Test support for reading cwl.output.json + where 'path' is relative path in output dir. ### New Optional Conformance Tests for v1.2.1 diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 3f4c38d7..b4948178 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -975,7 +975,7 @@ id: json_output_path_relative doc: >- Test support for reading cwl.output.json where 'path' is relative path in output dir. - tags: [ shell_command, command_line_tool ] + tags: [ required, command_line_tool ] - job: tests/empty.json output: { @@ -990,7 +990,7 @@ id: json_output_location_relative doc: >- Test support for reading cwl.output.json where 'location' is relative reference to output dir. - tags: [ shell_command, command_line_tool ] + tags: [ required, command_line_tool ] - job: tests/abc.json output: diff --git a/tests/test-cwl-out3.cwl b/tests/test-cwl-out3.cwl index 528854ac..5cf49623 100644 --- a/tests/test-cwl-out3.cwl +++ b/tests/test-cwl-out3.cwl @@ -1,18 +1,20 @@ class: CommandLineTool cwlVersion: v1.2 -requirements: - - class: ShellCommandRequirement hints: DockerRequirement: dockerPull: docker.io/debian:stable-slim +baseCommand: sh + inputs: [] outputs: - id: foo type: File +stdout: cwl.output.json + arguments: - - valueFrom: > - echo foo > foo && echo '{"foo": {"path": "foo", "class": "File"} }' > cwl.output.json - shellQuote: false + - -c + - | + echo foo > foo && echo '{"foo": {"path": "foo", "class": "File"} }' diff --git a/tests/test-cwl-out4.cwl b/tests/test-cwl-out4.cwl index de6ca3a0..7d79cc2c 100644 --- a/tests/test-cwl-out4.cwl +++ b/tests/test-cwl-out4.cwl @@ -1,18 +1,23 @@ class: CommandLineTool cwlVersion: v1.2 -requirements: - - class: ShellCommandRequirement + hints: DockerRequirement: dockerPull: docker.io/debian:stable-slim inputs: [] +baseCommand: sh + +arguments: + - -c + - | + echo foo > foo && echo '{"foo": {"location": "foo", "class": "File"} }' + +stdout: cwl.output.json + outputs: - id: foo type: File -arguments: - - valueFrom: > - echo foo > foo && echo '{"foo": {"location": "foo", "class": "File"} }' > cwl.output.json - shellQuote: false + From 180486e629970c8174f3e872c516b58148e1d80a Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Sun, 23 Jul 2023 12:16:20 +0200 Subject: [PATCH 109/127] changelog 350f0b...1612321 --- .github/config/wordlist.txt | 9 ++ CommandLineTool.yml | 140 +++++++++++++----- Workflow.yml | 120 ++++++++++++++- concepts.md | 2 +- .../schema_salad/metaschema/import_include.md | 2 +- salad/schema_salad/metaschema/salad.md | 15 +- 6 files changed, 240 insertions(+), 48 deletions(-) diff --git a/.github/config/wordlist.txt b/.github/config/wordlist.txt index 1a09c8ca..039d4ab0 100644 --- a/.github/config/wordlist.txt +++ b/.github/config/wordlist.txt @@ -3,6 +3,7 @@ amstutz arrayschema arvados auditability +autogenerated avro backchannel backrub @@ -16,6 +17,7 @@ bnf bogdan bowtie changelog +charette checkpoint checkpointing checksums @@ -41,6 +43,7 @@ commandoutputparameter commandoutputrecordfield commandoutputrecordschema commonwl +conformant contrib complextype coresMin @@ -57,6 +60,7 @@ cwltype cwlversion cyclic dataflow +deserialize dev dirent docafter @@ -156,6 +160,7 @@ mebibytes ménager metacharacters metaschema +migneault misgendering mrc multipleinputfeaturerequirement @@ -168,6 +173,7 @@ nekrutenko networkaccess neuro nolinkcheck +ogc onlinepubs opengroup operationinputparameter @@ -184,6 +190,7 @@ outputsource outputparameter outputrecordfield outputrecordschema +parsers pathname petermac pickvalue @@ -267,6 +274,8 @@ transcode txt typedef typedsl +undeploy +unserialized uc ucdavis udocker diff --git a/CommandLineTool.yml b/CommandLineTool.yml index b4336b6a..37053cd6 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -52,39 +52,27 @@ $graph: See also the [Schema-Salad v1.2.1 changelog](SchemaSalad.html#Changelog_for_v1.2.1) ## Changelog for v1.2.1 - - * The schema for `Requirement`s has changed to enable faster parsing by - autogenerated libraries. The `class` field is now a static enum with a - single permissible value instead of a generic string (for example: - `class: DockerRequirement` for a `DockerRequirement` hint or requirement.) - This allows for autogenerated CWL parsers to recognize any requirement - immediatelly instead of having to check for matching field names and - valid values, as was done previously. - * Likewise, the schema for `CommandLineTool` has changed to enable faster parsing by - autogenerated libraries. The `class` field is now a static enum with a - single permissible value (`class: CommandLineTool`) instead of a generic - string. - This allows for autogenerated CWL parsers to recognize any `CommandLineTool` - immediatelly instead of having to check for matching field names and - valid values, as was done previously. - * The schema for the `CommandLineBinding.position` field now has an explicit - default value of `0`. Previously this was only expression textually in - the description of that field. - * The schema for the `File.streamable` field now has an explicit default - value of `false` to match the textual description. - - Note: Other fields like `ResourceRequirement.coresMin`, `.coresMax`, - `.ramMin`, `.ramMax`, `.tmpdirMin`, `.tmpdirMax` have not had defaults - set in the schema so that parsers can discriminate easily between a - value not provided and the default value (`0`). - * Everywhere the schema allows a value of type `long` we also explictly - allow a value of type `int`. By JSON rules this is implicit, but by - making it explicit we aid autogenerated CWL libraries especially in - languages such as Java. + * CWL has been assigned an official IANA Media Type of [`application/cwl`](https://www.iana.org/assignments/media-types/application/cwl) + for either JSON or YAML format. For JSON formatted CWL documents, [`application/cwl+json`](https://www.iana.org/assignments/media-types/application/cwl+json) + has also been assigned and can be used. For specifying a YAML formatted + CWL document, one can use `application/cwl+yaml` but that is not an official + IANA media-type yet; as of 2023-07-23 the `+yaml` suffix has yet to be approved. + The above has been documented in the [Syntax](#Syntax) section. + * There is now an unofficial [JSON Schema for CWL documents](https://github.com/common-workflow-language/cwl-v1.2/blob/1.2.1_proposed/json-schema/cwl.yaml), + donated by Francis Charette-Migneault. This schema captures much, but not + all, of the potential complexity of CWL documents. It was created for + the [draft](https://docs.ogc.org/DRAFTS/20-044.html) + [OGC API - Processes - Part 2: Deploy, Replace, Undeploy](http://www.opengis.net/doc/IS/ogcapi-processes-2/1.0) + standard. + To support the testing of this unofficial JSON Schema for CWL, some of + the `should_fail: true` tests have had the label `json_schema_invalid` + added. + * For consistency, all references to `URI`s have been replaced with `IRI`s + (Internationalized Resource Identifiers). * The [difference between `$()` and `${}`](#Expressions_(Optional)) were clarified. We now make more explicit that `${...}` evaluates to `(function() { ... })()`. - * The publisher of this document is now explictly named; it is the + * The publisher of this document is now explicitly named; it is the [Common Workflow Language project](https://www.commonwl.org), a member project of [Software Freedom Conservancy](https://sfconservancy.org/). * The [Parameter References](#Parameter_references) section has been updated @@ -100,9 +88,70 @@ $graph: in the newly added [glossary](#Glossary): they are nonsensical values that are swapped out with a real value later in the evaluation process. Workflow and tool expressions **should not** rely on it nor try to parse it. + * The purpose and valid circumstances for using `CommandLineTool.id` has + been made more explicit: It is a unique identifier for that CommandLineTool; + Only useful for `CommandLineTool`s in a `$graph`. This `id` value should + not be exposed to users in graphical or terminal user interfaces. + * How `cwl.output.json` is used to perform [output binding](#Output_binding) + has been clarified, especially with regard to any `path` and `location` + fields for `File` and `Directory` objects referenced within. Two new + conformance tests (`json_output_path_relative`, `json_output_location_relative`) + have been added to verify these clarifications. + * The [BNF grammar description of CWL Parameter References](#Parameter_references) + has been reformatted so that symbols get `code formatting`. `::` is + replaced with `::=` (meaning that the symbol on the left must be + replaced with the expression on the right). + * The example expansion of the [`stdin` shortcut](#stdin) erroneously used + `${ }` instead of `$( )`; this has been corrected. + + ### Clarifications to the schema in CWL v1.2.1 to aid autogenerated libraries + Many different CWL parsers are autogenerated from the official CWL schema + by using [`schema-salad --codegen`](https://schema-salad.readthedocs.io/en/latest/#codegen-examples). + + In CWL v1.2.1 we made many clarifications to the schema to enable faster + parsing; or to produce better results for end users. These changes do not change + the CWL syntax or its meaning; we are just now modeling it better. + + * The schema for `Requirement`s has changed to enable faster parsing by + autogenerated libraries. The `class` field is now a static enum with a + single permissible value instead of a generic string (for example: + `class: DockerRequirement` for a `DockerRequirement` hint or requirement.) + This allows for autogenerated CWL parsers to recognize any requirement + immediately instead of having to check for matching field names and + valid values, as was done previously. + * Likewise, the schema for `CommandLineTool`; the `class` field is now a + static enum with a single permissible value (`class: CommandLineTool`) + instead of a generic string. + * The schema for the `CommandLineBinding.position` field now has an explicit + default value of `0`. Previously this was only expression textually in + the description of that field. + * The schema for the `File.streamable` field now has an explicit default + value of `false` to match the textual description. + + Note: Other fields like `ResourceRequirement.coresMin`, `.coresMax`, + `.ramMin`, `.ramMax`, `.tmpdirMin`, `.tmpdirMax` have not had defaults + set in the schema so that parsers can discriminate easily between a + value not provided and the default value (`0`). + * Everywhere the schema allows a value of type `long` we also explicitly + allow a value of type `int`: [`File.size`](#File), [`ResourceRequirement`](#ResourceRequirement)`.coresMin`, + `ResourceRequirement.coresMax`, `ResourceRequirement.ramMin`, `ResourceRequirement.ramMax`, + `ResourceRequirement.tmpdirMin`, `ResourceRequirement.tmpdirMax`, `ResourceRequirement.outdirMin`, + `ResourceRequirement.outdirMax`, and [`ToolTimeLimit.timelimt`](#ToolTimeLimit). + + By JSON rules this is implicit, but by making it explicit we aid + autogenerated CWL libraries especially in languages such as Java. + * The schema for the `default` field of [CommandInputParameter](#CommandInputParameter) + has been expanded from `Any?` to `["null", File, Directory, Any]` + so that autogenerated CWL libraries will deserialize any 'File' or 'Directory' + objects automatically for the user. + * The schema for the `hints` field of `CommandLineTool` has been expanded + from: `Any[]?` to `["null", { type: array, items: [ ProcessRequirement, Any] } ]`. + This allows autogenerated CWL parsers to deserialize any of the standard + CWL hints instead of forcing the users of those parsers to convert the + unserialized hints to normal objects themselves. ### Updated Conformance Tests for v1.2.1 - * Conformance tests are now refered to by their textual identifiers (`id`). Previously + * Conformance tests are now referred to by their textual identifiers (`id`). Previously this was the `label` field. Tests without a `label`/`id` have been give one. * `tests/loadContents/cwloutput-nolimit.cwl`: Made explicit that @@ -119,15 +168,10 @@ $graph: a new input parameter, however it does demonstrate the ability to rename a file and have it staged as a secondary file without having to use `InitialWorkDirRequirement`. - * `tests/conditionals/cond-wf-002.cwl`, `tests/conditionals/cond-wf-002_nojs.cwl`, - `tests/conditionals/cond-wf-002_nojs.cwl`, `tests/conditionals/cond-wf-011_nojs.cwl`: - Marked the outputs as optional to remove ambiguity for these conditional - `when` tests; allowing conformant CWL runners to be more strict in their - interpretation of the typing rules, if they choose so. * `directory_input_docker` was incorrectly marked as required, it is optional unless the feature `ShellCommandRequirement` is stated as being supported. * `glob_outside_outputs_fails` was incorrectly marked as required, it is - optional unlewss the feature `DockerRequirement` is stated as being supported. + optional unless the feature `DockerRequirement` is stated as being supported. * `stage_file_array` was incorrectly marked as required, it is optional unless both the features `InlineJavascriptRequirement` and `DockerRequirement` are stated as being supported. @@ -138,6 +182,8 @@ $graph: * `optional_numerical_output_returns_0_not_null` was incorrectly marked as required, it is optional unless `InlineJavascriptRequirement` is stated as being supported. + * `cwloutput_nolimit` and `loadcontents_limit` were incorrectly marked as + optional; this has been corrected as both are required. * Made it explicit that if a `CommandLineTool` contains logically chained commands (e.g. `echo a && echo b`) then the `stdout` File/object must include the output of every command. The `stdout_chained_commands` mandatory @@ -172,6 +218,19 @@ $graph: (`inputBinding` for all levels). * `json_output_path_relative`: Test support for reading cwl.output.json where 'path' is relative path in output dir. + * `json_output_location_relative`: Test support for reading cwl.output.json + where 'location' is relative reference to output dir. + * `filename_with_hash_mark`: Test for correct handling of URL-quoting in + a filename to refer to filename containing a hash mark. + * `capture_files`: Test that a type error is raised if directories are + returned by `glob` evaluation when type is `File`. + * `capture_dirs`: Test that a type error is raised if files are returned + by `glob` evaluation when type is `Directory`. + * `capture_files_and_dirs`: Test that both files and directories are + captured by `glob` evaluation when type is `[Directory, File]`. + * `very_big_and_very_floats_nojs`: Confirm that very big and very small + numbers are represented on the command line using decimals, not + scientific notation. ### New Optional Conformance Tests for v1.2.1 @@ -181,11 +240,18 @@ $graph: * `staging-basename`: Use of an `ExpressionTool` to change `basename` of file, then correctly staging the file using the new name. * `js-input-record`: A test case for JavaScript with an input record. + * `very_big_and_very_floats`: Confirm that very big and very small + numbers are represented on the command line using decimals, not + scientific notation. #### `MultipleInputFeatureRequirement` * `multiple-input-feature-requirement`: MultipleInputFeatureRequirement on workflow outputs. + #### `InitialWorkDirRequirement` + * `iwd-subdir`: Test emitting a subdirectory from the initial working + directory. + ## Introduction to the CWL Command Line Tool standard v1.2 Since the v1.1 release, v1.2 introduces the diff --git a/Workflow.yml b/Workflow.yml index faf01795..5a2676b8 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -51,13 +51,117 @@ $graph: ## Changelog for v1.2.1 - * The `Workflow.run` field description now explicitly states that it can - be either a string referencing an external document or an embedded Process. - This was previously only stated indirectly. + * CWL has been assigned an official IANA Media Type of [`application/cwl`](https://www.iana.org/assignments/media-types/application/cwl) + for either JSON or YAML format. For JSON formatted CWL documents, [`application/cwl+json`](https://www.iana.org/assignments/media-types/application/cwl+json) + has also been assigned and can be used. For specifying a YAML formatted + CWL document, one can use `application/cwl+yaml` but that is not an official + IANA media-type yet; as of 2023-07-23 the `+yaml` suffix has yet to be approved. + The above has been documented in the [Syntax](#Syntax) section. + * There is now an unofficial [JSON Schema for CWL documents](https://github.com/common-workflow-language/cwl-v1.2/blob/1.2.1_proposed/json-schema/cwl.yaml), + donated by Francis Charette-Migneault. This schema captures much, but not + all, of the potential complexity of CWL documents. It was created for + the [draft](https://docs.ogc.org/DRAFTS/20-044.html) + [OGC API - Processes - Part 2: Deploy, Replace, Undeploy](http://www.opengis.net/doc/IS/ogcapi-processes-2/1.0) + standard. + To support the testing of this unofficial JSON Schema for CWL, some of + the `should_fail: true` tests have had the label `json_schema_invalid` + added. + * For consistency, all references to `URI`s have been replaced with `IRI`s + (Internationalized Resource Identifiers). + * The [`WorkflowStep.run`](#WorkflowStep) field description now explicitly + states that it can be either a string referencing an external document + or an embedded Process. This was previously only stated indirectly. * The `outputSource` field of [`WorkflowOutputParameter`](#WorkflowOutputParameter) - now explictly states that workflow inputs can be referenced. The + now explicitly states that workflow inputs can be referenced. The mandatory conformance test `output_reference_workflow_input` has been added to confirm this. + * The example list of [process requirements](#Requirements_and_hints) that + can be inherited from a parent `Workflow` by a `CommandLineTool` was + incomplete in CWL v1.2; `LoadListingRequirement`, `WorkReuse`, + `NetworkAccess`, `InplaceUpdateRequirement`, `ToolTimeLimit` are also + valid. + * The [BNF grammar description of CWL Parameter References](#Parameter_references) + has been reformatted so that symbols get `code formatting`. + * In CWL v1.2, the [outputs of `ExpressionTool`s](#ExpressionToolOutputParameter) + are never type-checked due to a long-standing bug in the CWL reference + implementation. This has been made explicit along with the plan to fix + this oversight in CWL v1.3. + * The purpose and valid circumstances for using `Workflow.id`, `ExpressionTool.id`, + or `Operation.id` has been made more explicit: It is a unique identifier for that Process; + Only useful for when those are in a `$graph`. This `id` value should + not be exposed to users in graphical or terminal user interfaces. + + ### Clarifications to the schema in CWL v1.2.1 to aid autogenerated libraries + Many CWL parsing/generating libraries are autogenerated from the official schema + for various programming languages by using [`schema-salad --codegen`](https://schema-salad.readthedocs.io/en/latest/#codegen-examples). + + In CWL v1.2.1 we made many clarifications to the schema to enable faster + parsing; or to produce better results for end users. These changes do not change + the CWL syntax or its meaning; we are just now modeling it better. + + * The schema for `Requirement`s has changed to enable faster parsing by + autogenerated libraries. The `class` field is now a static enum with a + single permissible value instead of a generic string (for example: + `class: SubworkflowFeatureRequirement` for a `SubworkflowFeatureRequirement` hint or requirement.) + This allows for autogenerated CWL parsers to recognize any requirement + immediately instead of having to check for matching field names and + valid values, as was done previously. + * Likewise, the schema for `Workflow`, `ExpressionTool`, and `Operation` + has also been changed to enable faster parsing; the `class` field is now a + static enum with a single permissible value (`class: Workflow`, + `class: ExpressionTool`, `class: Operation`) instead of a generic string. + * The schema for the `hints` field of `Workflow`, `ExpressionTool`, and `Operation` + has been expanded from: `Any[]?` to `["null", { type: array, items: [ ProcessRequirement, Any] } ]`. + This allows autogenerated CWL parsers to deserialize any of the standard + CWL hints instead of forcing the users of those parsers to convert the + unserialized hints to normal objects themselves. + * The schema for [`WorkflowOutputParameter.outputSource`](#WorkflowOutputParameter) + had the wrong [`refScope`](SchemaSalad.html#JsonldPredicate) of `0` instead + of `1`; This will correctly remove the `id` of the workflow itself when + searching for the source of this output. + * Everywhere the schema allows a value of type `long` we also explicitly + allow a value of type `int`: [`File.size`](#File), [`ToolTimeLimit.timelimt`](#ToolTimeLimit). + By JSON rules this is implicit, but by making it explicit we aid + autogenerated CWL libraries especially in languages such as Java. + * The schema for the `default` field of [WorkflowInputParameter](#WorkflowInputParameter), + [WorkflowStepInput](#WorkflowStepInput), and [OperationInputParameter](#WorkflowStepInput) + has been expanded from `Any?` to `["null", File, Directory, Any]` so that + autogenerated CWL libraries will deserialize any `File` or `Directory` + objects automatically for the user. + * The schema for the `hints` field of `Workflow`, `ExpressionTool`, and `Operation` + has been expanded from: `Any[]?` to `["null", { type: array, items: [ ProcessRequirement, Any] } ]`. + This allows autogenerated CWL parsers to deserialize any of the standard + CWL hints instead of forcing the users of those parsers to convert the + unserialized hints to normal objects themselves. + + ### Updated Conformance Tests for v1.2.1 + * Conformance tests are now referred to by their textual identifiers (`id`). + Previously this was the `label` field. Tests without a `label`/`id` have + been given one. + * `direct_required`, `direct_required_nojs`, `conditionals_nested_cross_scatter`, + `conditionals_nested_cross_scatter_nojs`: Marked the workflow outputs as + optional to remove ambiguity for these conditional `when` tests; + allowing conformant CWL runners to be more strict in their interpretation + of the typing rules, if they choose so. + * `timelimit_basic_wf`: The timeout has been increased from three seconds + to eight seconds to accommodate some runners who count container startup + time in the total. + * `timelimit_invalid_wf`: The timing on this test was updated from shorter + values to accommodate the startup time of certain container runners, the + previous timelimit of 5 seconds was too short, which is why it is now + 20 seconds. + * The file `tests/wc-tool.cwl` was adapted to produce the same results on + BSD systems (like macOS) as GNU/Linux systems. This improved + compatibility for the following tests: + `nested_workflow_noexp`, `wf_wc_parseInt`, `nested_workflow`, `embedded_subworkflow`, + `step_input_default_value_overriden_2nd_step_noexp`, `step_input_default_value_overriden_2nd_step`, + `step_input_default_value_overriden_2nd_step_null_noexp`, `step_input_default_value_overriden_2nd_step_null`, + `step_input_default_value_overriden_noexp`, `step_input_default_value_nosource`, + `step_input_default_value_nullsource`, `step_input_default_value_overriden`, + `scatter_multi_input_embedded_subworkflow`, `workflow_embedded_subworkflow_embedded_subsubworkflow`, + `workflow_embedded_subworkflow_with_tool_and_subsubworkflow`, `workflow_embedded_subworkflow_with_subsubworkflow_and_tool`, + `scatter_embedded_subworkflow`, `step_input_default_value_noexp`, + `step_input_default_value`, `valuefrom_wf_step`. ### New Mandatory Conformance tests for v1.2.1 * `output_reference_workflow_input`: Test direct use of `Workflow` level @@ -65,12 +169,12 @@ $graph: ### New Optional Conformance Tests for v1.2.1 - #### SchemaDefRequirement + #### `SchemaDefRequirement` * `schemadef_types_with_import`: Test `SchemaDefRequirement` with a workflow, with the `$import` under types. It is similar to `schemadef-wf`, but the `$import` is different. - #### ScatterFeatureRequirement + #### `ScatterFeatureRequirement` * `simple_simple_scatter`: Two level nested scatter. * `dotproduct_simple_scatter`: Two level nested scatter: external dotproduct and internal simple. @@ -91,6 +195,10 @@ $graph: * `nested_crossproduct_nested_crossproduct_scatter`: Two level nested scatter: external nested_crossproduct and internal nested_crossproduct. + #### `StepInputExpressionRequirement` + * `default_with_falsey_value`: Confirms that "false"-like (but not 'null') + values override any default. + ## Introduction to CWL Workflow standard v1.2 This specification represents the latest stable release from the diff --git a/concepts.md b/concepts.md index 760751d1..39933399 100644 --- a/concepts.md +++ b/concepts.md @@ -105,7 +105,7 @@ for either JSON or YAML format. For JSON formatted CWL documents, [`application/cwl+json`](https://www.iana.org/assignments/media-types/application/cwl+json) can be used. For specifying a YAML formatted CWL document, one can use `application/cwl+yaml` but that is not an official IANA media-type yet; as of -2023-04-19 the `+yaml` suffix has yet to be approved. +2023-07-23 the `+yaml` suffix has yet to be approved. CWL documents commonly reference other CWL documents. Each document must declare the `cwlVersion` of that document. Implementations must diff --git a/salad/schema_salad/metaschema/import_include.md b/salad/schema_salad/metaschema/import_include.md index 1d5cd56b..6d3b9319 100644 --- a/salad/schema_salad/metaschema/import_include.md +++ b/salad/schema_salad/metaschema/import_include.md @@ -27,7 +27,6 @@ replaced by only the object with the appropriate fragment identifier. It is a fatal error if an import directive refers to an external resource or resource fragment which does not exist or is not accessible. - ### Import example: replacing the `$import` node import.json: @@ -62,6 +61,7 @@ This becomes: } ``` + ### Import example: flattening the `$import`ed array import.json: diff --git a/salad/schema_salad/metaschema/salad.md b/salad/schema_salad/metaschema/salad.md index 1d9d7fba..d1aa8ddc 100644 --- a/salad/schema_salad/metaschema/salad.md +++ b/salad/schema_salad/metaschema/salad.md @@ -97,19 +97,28 @@ with a matching jsonldPredicate. ### Changelog for v1.2.1 There are no new features nor behavior changes in Schema Salad v1.2.1 -as compared to Schema-Salad v1.2. Schema Sald v1.2.1 only fixes typos and adds +as compared to Schema-Salad v1.2. Schema Salad v1.2.1 only fixes typos and adds clarifications. * The `salad` directory's contents have been trimmed to the bare necessities. The `salad/README.rst` has been refreshed from the [upstream repository](https://github.com/common-workflow-language/schema_salad/). -* The [existing behviour of `$import`](#Import) has been clarified. +* The [existing behaviour of `$import`](#Import) has been clarified. If the `$import` node is in an array and the import operation yields an array, it is flattened to the parent array. Otherwise the `$import` node is replaced in the document structure by the object or array yielded - from the import operation. An [example](#import_example) + from the import operation. An [additional example](#import_example2) has been added to illustrate this better. * A pair of missing brackets was added to the [Type DSL Example](#Type_DSL_example)'s example input. +* Missing newlines have been added to the [identifier map example](#Identifier_map_example)'s + example source and example result. +* [Inherited fields in Salad types](#SaladRecordSchema) may be re-specified + to narrow their type and/or to override the `doc` field. +* Clarify that fields with `jsonldPredicate: { _type: "@id" }` indicate that the + field is a [link fields](#SaladRecordSchema) and that if the `jsonldPredicate` + also has the field `identity` with the value `true`, then field is + resolved with [identifier resolution](#Identifier_resolution). + Otherwise the field is resolved with [link resolution](#Link_resolution). ## References to Other Specifications From fa6d28f2bc34cb434561c0693105667d15aeed6e Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 24 Jul 2023 16:24:18 +0200 Subject: [PATCH 110/127] address review comments --- CommandLineTool.yml | 15 +++++++++------ Workflow.yml | 13 ++++++++----- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index 37053cd6..f091c66b 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -46,8 +46,11 @@ $graph: CWL have been changed to aid the auto-generation of libraries for the reading and writing of CWL documents. - Do not write `cwlVersion: v1.2.1`, that is not a valid version of the CWL - syntax. + Do not write `cwlVersion: v1.2.1`, nor `cwlVersion: v1.2.0`. The syntax + meaning of all terms in CWL `1.2.x is the same. However, when reporting + results from running the CWL conformance tests, please do report all + three components; for example "99% of CWL v1.2.0 required tests" or + "100% of CWL v1.2.1 required tests". See also the [Schema-Salad v1.2.1 changelog](SchemaSalad.html#Changelog_for_v1.2.1) @@ -151,9 +154,9 @@ $graph: unserialized hints to normal objects themselves. ### Updated Conformance Tests for v1.2.1 - * Conformance tests are now referred to by their textual identifiers (`id`). Previously - this was the `label` field. Tests without a `label`/`id` have been give - one. + * Conformance tests are now referred to by their textual identifiers (`id`). + Previously this was the `label` field. Tests without a `label`/`id` + have been given one. * `tests/loadContents/cwloutput-nolimit.cwl`: Made explicit that `bigstring` is an additional output as generated by the existing `mkfilelist.py` script's use of [`cwl.output.json`](#Output_binding). @@ -245,7 +248,7 @@ $graph: scientific notation. #### `MultipleInputFeatureRequirement` - * `multiple-input-feature-requirement`: MultipleInputFeatureRequirement on + * `multiple-input-feature-requirement`: `MultipleInputFeatureRequirement` on workflow outputs. #### `InitialWorkDirRequirement` diff --git a/Workflow.yml b/Workflow.yml index 5a2676b8..01b3b7c3 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -43,8 +43,11 @@ $graph: CWL have been changed to aid the auto-generation of libraries for the reading and writing of CWL documents. - Do not write `cwlVersion: v1.2.1`, that is not a valid version of the CWL - syntax. + Do not write `cwlVersion: v1.2.1`, nor `cwlVersion: v1.2.0`. The syntax + meaning of all terms in CWL `1.2.x is the same. However, when reporting + results from running the CWL conformance tests, please do report all + three components; for example "99% of CWL v1.2.0 required tests" or + "100% of CWL v1.2.1 required tests". See also the [CommandLineTool v1.2.1 changelog](CommandLineTool.html#Changelog_for_v1.2.1) and the [Schema-Salad v1.2.1 changelog](SchemaSalad.html#Changelog_for_v1.2.1). @@ -87,9 +90,9 @@ $graph: implementation. This has been made explicit along with the plan to fix this oversight in CWL v1.3. * The purpose and valid circumstances for using `Workflow.id`, `ExpressionTool.id`, - or `Operation.id` has been made more explicit: It is a unique identifier for that Process; - Only useful for when those are in a `$graph`. This `id` value should - not be exposed to users in graphical or terminal user interfaces. + or `Operation.id` have been made more explicit: It is a unique identifier + for that Process; Only useful for when those are in a `$graph`. This `id` + value should not be exposed to users in graphical or terminal user interfaces. ### Clarifications to the schema in CWL v1.2.1 to aid autogenerated libraries Many CWL parsing/generating libraries are autogenerated from the official schema From f368628a9c1817de694b9cf690f8b733a4018f46 Mon Sep 17 00:00:00 2001 From: jdidion Date: Wed, 3 Feb 2021 12:15:03 -0500 Subject: [PATCH 111/127] add conformance test for nested types in SchemaDefRequirement Co-authored-by: Michael R. Crusoe --- conformance_tests.yaml | 8 ++++++++ tests/nested_types.cwl | 33 +++++++++++++++++++++++++++++++++ tests/nested_types.yaml | 5 +++++ 3 files changed, 46 insertions(+) create mode 100644 tests/nested_types.cwl create mode 100644 tests/nested_types.yaml diff --git a/conformance_tests.yaml b/conformance_tests.yaml index b4948178..87f063c6 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3473,3 +3473,11 @@ size: 14 checksum: sha1$0074b1841ab5103cc0442f739d9fb41a33b602ee tags: [ step_input, workflow ] + +- id: nested_types + job: tests/nested_types.yaml + tool: tests/nested_types.cwl + doc: demonstrate usage of nested types + output: + their_name: "Foo Bar" + tags: [ require, command_line_tool ] diff --git a/tests/nested_types.cwl b/tests/nested_types.cwl new file mode 100644 index 00000000..940d417f --- /dev/null +++ b/tests/nested_types.cwl @@ -0,0 +1,33 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: CommandLineTool + +requirements: + SchemaDefRequirement: + types: + - name: name + type: record + fields: + - name: first + type: string + - name: last + type: string + - name: person + type: record + fields: + - name: name + type: name + - name: age + type: int +inputs: + my_person: person + +outputs: + their_name: string + +baseCommand: echo + +stdout: cwl.output.json + +arguments: + - '{"their_name": "$(inputs.my_person.name.first) $(inputs.my_person.name.last)" }' diff --git a/tests/nested_types.yaml b/tests/nested_types.yaml new file mode 100644 index 00000000..a94af4aa --- /dev/null +++ b/tests/nested_types.yaml @@ -0,0 +1,5 @@ +my_person: + name: + first: Foo + last: Bar + age: 42 From 5f84b9aa39392aa8d0c6ee8dd082daab6d6f93af Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 17 Aug 2023 10:38:01 +0200 Subject: [PATCH 112/127] remove last references to Python 2 --- tests/args.py | 2 +- tests/cat1-testcli.cwl | 2 +- tests/index.py | 2 +- tests/search.py | 6 ++---- tests/subdirsecondaries/index.py | 2 +- tests/tmap-tool.cwl | 2 +- 6 files changed, 7 insertions(+), 9 deletions(-) diff --git a/tests/args.py b/tests/args.py index 1baf6a09..4e29cc99 100755 --- a/tests/args.py +++ b/tests/args.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import sys import json import os diff --git a/tests/cat1-testcli.cwl b/tests/cat1-testcli.cwl index b82ffbed..5e533c0a 100755 --- a/tests/cat1-testcli.cwl +++ b/tests/cat1-testcli.cwl @@ -6,7 +6,7 @@ "hints": [ { "class": "DockerRequirement", - "dockerPull": "python:2-slim" + "dockerPull": "python:3-slim" } ], "inputs": [ diff --git a/tests/index.py b/tests/index.py index a54edf93..3f63f025 100755 --- a/tests/index.py +++ b/tests/index.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # Toy program to generate inverted index of word to line. # Takes input text file on stdin and prints output index on stdout. diff --git a/tests/search.py b/tests/search.py index d402bc7c..378d6b43 100755 --- a/tests/search.py +++ b/tests/search.py @@ -1,10 +1,8 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Toy program to search inverted index and print out each line the term # appears. -from __future__ import print_function - import sys mainfile = sys.argv[1] @@ -23,5 +21,5 @@ for l in main: linenum += 1 if linenum in n: - print(linenum, l.rstrip()) + print(f"{linenum} {l.rstrip()}") break diff --git a/tests/subdirsecondaries/index.py b/tests/subdirsecondaries/index.py index 77918b5e..46608d23 100755 --- a/tests/subdirsecondaries/index.py +++ b/tests/subdirsecondaries/index.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 # Toy program to generate inverted index of word to line. # Takes input text file on stdin and prints output index on stdout. diff --git a/tests/tmap-tool.cwl b/tests/tmap-tool.cwl index 58f75391..0446d321 100755 --- a/tests/tmap-tool.cwl +++ b/tests/tmap-tool.cwl @@ -6,7 +6,7 @@ "hints": [ { "class": "DockerRequirement", - "dockerPull": "python:2-slim" + "dockerPull": "python:3-slim" } ], "inputs": [ From df6fd28b7ce6c821453ddca31515f73503deae84 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 17 Aug 2023 10:40:51 +0200 Subject: [PATCH 113/127] add explicit docker repository where missing As per CONFORMANCE_TESTS.md guidelines --- tests/cat1-testcli.cwl | 2 +- tests/import_schema-def_packed.cwl | 2 +- tests/revsort-packed.cwl | 2 +- tests/tmap-tool.cwl | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/cat1-testcli.cwl b/tests/cat1-testcli.cwl index 5e533c0a..d817a95a 100755 --- a/tests/cat1-testcli.cwl +++ b/tests/cat1-testcli.cwl @@ -6,7 +6,7 @@ "hints": [ { "class": "DockerRequirement", - "dockerPull": "python:3-slim" + "dockerPull": "docker.io/python:3-slim" } ], "inputs": [ diff --git a/tests/import_schema-def_packed.cwl b/tests/import_schema-def_packed.cwl index 0757ace6..bd5fea13 100644 --- a/tests/import_schema-def_packed.cwl +++ b/tests/import_schema-def_packed.cwl @@ -80,7 +80,7 @@ "id": "#touch.cwl", "hints": [ { - "dockerPull": "debian:stretch-slim", + "dockerPull": "docker.io/debian:stable-slim", "class": "DockerRequirement" } ] diff --git a/tests/revsort-packed.cwl b/tests/revsort-packed.cwl index eedebe20..4b1014ba 100644 --- a/tests/revsort-packed.cwl +++ b/tests/revsort-packed.cwl @@ -7,7 +7,7 @@ "hints": [ { "class": "DockerRequirement", - "dockerPull": "debian:stretch-slim" + "dockerPull": "docker.io/debian:stable-slim" } ], "inputs": [ diff --git a/tests/tmap-tool.cwl b/tests/tmap-tool.cwl index 0446d321..35fd986c 100755 --- a/tests/tmap-tool.cwl +++ b/tests/tmap-tool.cwl @@ -6,7 +6,7 @@ "hints": [ { "class": "DockerRequirement", - "dockerPull": "python:3-slim" + "dockerPull": "docker.io/python:3-slim" } ], "inputs": [ From 01f2ee6e79a70fa84a194f2bca561c700a6570a1 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 17 Aug 2023 11:12:16 +0200 Subject: [PATCH 114/127] test for parameter references in CommandLineTool.arguments Fixes: https://github.com/common-workflow-language/common-workflow-language/pull/706 --- conformance_tests.yaml | 44 ++++++++++++++++ tests/paramref_arguments_inputs.cwl | 72 ++++++++++++++++++++++++++ tests/paramref_arguments_roundtrip.cwl | 0 tests/paramref_arguments_runtime.cwl | 24 +++++++++ tests/paramref_arguments_self.cwl | 16 ++++++ 5 files changed, 156 insertions(+) create mode 100644 tests/paramref_arguments_inputs.cwl mode change 100644 => 100755 tests/paramref_arguments_roundtrip.cwl create mode 100755 tests/paramref_arguments_runtime.cwl create mode 100755 tests/paramref_arguments_self.cwl diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 87f063c6..5580bd5e 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3481,3 +3481,47 @@ output: their_name: "Foo Bar" tags: [ require, command_line_tool ] + +- id: paramref_arguments_runtime + job: tests/empty.json + tool: tests/paramref_arguments_runtime.cwl + doc: confirm that $runtime is available to parameter references in arguments + tags: [ required, command_line_tool ] + output: + runtime: + cores: Any + outdir: Any + outdirSize: Any + ram: Any + tmpdir: Any + tmpdirSize: Any + +- id: paramref_arguments_self + tool: tests/paramref_arguments_self.cwl + job: tests/empty.json + doc: confirm that $self is available and set to null in arguments + tags: [ required, command_line_tool ] + output: + self: null + +- id: paramref_arguments_inputs + job: tests/empty.json + tool: tests/paramref_arguments_inputs.cwl + doc: confirm that $inputs is available to parameter references in arguments + tags: [ required, command_line_tool ] + output: + result: + a_double: 1000000000000000000000000000000000000000000 + a_float: 4.2 + a_long: 4147483647 + a_string: z + a_string_array: [ a, b, c ] + a_true: true + an_array_of_doubles: [ 1000000000000000000000000000000000000000000, -1000000000000000000000000000000000000000000 ] + an_array_of_falses: [ false, false, false ] + an_array_of_floats: [ 2.3, 4.2 ] + an_array_of_ints: [ 42, 23 ] + an_array_of_longs: [ 4147483647, -4147483647 ] + an_array_of_mixed_booleans: [ false, true, false ] + an_array_of_trues: [ true, true, true ] + an_int: 42 diff --git a/tests/paramref_arguments_inputs.cwl b/tests/paramref_arguments_inputs.cwl new file mode 100644 index 00000000..9c0f7e70 --- /dev/null +++ b/tests/paramref_arguments_inputs.cwl @@ -0,0 +1,72 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: CommandLineTool + +inputs: + a_string: + type: string + default: z + a_string_array: + type: string[] + default: [a, b, c] + a_true: + type: boolean + default: true + an_array_of_trues: + type: boolean[] + default: [true, true, true] + an_array_of_falses: + type: boolean[] + default: [false, false, false] + an_array_of_mixed_booleans: + type: boolean[] + default: [false, true, false] + an_int: + type: int + default: 42 + an_array_of_ints: + type: int[] + default: [42, 23] + a_long: + type: long + default: 4147483647 + an_array_of_longs: + type: long[] + default: [4147483647, -4147483647] + a_float: + type: float + default: 4.2 + an_array_of_floats: + type: float[] + default: [2.3, 4.2] + a_double: + type: double + default: 1000000000000000000000000000000000000000000 + an_array_of_doubles: + type: double[] + default: + - 1000000000000000000000000000000000000000000 + - -1000000000000000000000000000000000000000000 +arguments: + - '{"result":$(inputs)}' +outputs: + result: + type: + type: record + fields: + a_string: string + a_string_array: string[] + a_true: boolean + an_array_of_trues: boolean[] + an_array_of_falses: boolean[] + an_array_of_mixed_booleans: boolean[] + an_int: int + an_array_of_ints: int[] + a_long: long + an_array_of_longs: long[] + a_float: float + an_array_of_floats: float[] + a_double: double + an_array_of_doubles: double[] +baseCommand: echo +stdout: cwl.output.json diff --git a/tests/paramref_arguments_roundtrip.cwl b/tests/paramref_arguments_roundtrip.cwl old mode 100644 new mode 100755 diff --git a/tests/paramref_arguments_runtime.cwl b/tests/paramref_arguments_runtime.cwl new file mode 100755 index 00000000..be9daf75 --- /dev/null +++ b/tests/paramref_arguments_runtime.cwl @@ -0,0 +1,24 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 +class: CommandLineTool + +baseCommand: echo + +inputs: [] + +arguments: + - '{"runtime":$(runtime)}' + +stdout: cwl.output.json + +outputs: + runtime: + type: + type: record + fields: + cores: long + outdir: string + outdirSize: long + ram: long + tmpdir: string + tmpdirSize: long diff --git a/tests/paramref_arguments_self.cwl b/tests/paramref_arguments_self.cwl new file mode 100755 index 00000000..31324736 --- /dev/null +++ b/tests/paramref_arguments_self.cwl @@ -0,0 +1,16 @@ +#!/usr/bin/env cwl-runner +cwlVersion: v1.2 + +class: CommandLineTool + +baseCommand: echo + +inputs: [] + +arguments: + - '{"self":$(self)}' + +stdout: cwl.output.json + +outputs: + self: Any? From 63d914b129acf7157fbaa6bd84ee5cef922ee338 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 21 Aug 2023 17:26:05 +0200 Subject: [PATCH 115/127] gh-actions: split out JSON schema validation --- .github/workflows/ci.yml | 10 ++++++++++ requirements-jsonschema-test.txt | 1 + 2 files changed, 11 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 850136b5..53094d0f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,6 +36,16 @@ jobs: - name: Validate CWL documents run: ./run_test.sh --self + validate_json: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + python-version: '3.8.x' + - name: Validate JSON schema document run: | pip install -r ./requirements-jsonschema-test.txt diff --git a/requirements-jsonschema-test.txt b/requirements-jsonschema-test.txt index f6ad2c48..eb7ad7dc 100644 --- a/requirements-jsonschema-test.txt +++ b/requirements-jsonschema-test.txt @@ -1,3 +1,4 @@ jsonschema pytest requests +typing_extensions From c6c9be66ffacfadfb69301fa277d746872359af6 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 28 Aug 2023 17:28:20 +0200 Subject: [PATCH 116/127] update the changelogs through 01f2ee6. --- CommandLineTool.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index f091c66b..cdb29b61 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -193,6 +193,9 @@ $graph: conformance test was added to verify this. * `metadata`: The description and content of this test has been updated to be more focused on the metadata present in the CWL file. + * The final references to Python 2 have been updated to Python 3. + * A few conformance tests had `dockerPull`s without a registry specified. + This has been fixed. ### New Mandatory Conformance Tests for v1.2.1 * `params_broken_null`: Test parameter reference that refers to @@ -234,6 +237,12 @@ $graph: * `very_big_and_very_floats_nojs`: Confirm that very big and very small numbers are represented on the command line using decimals, not scientific notation. + * `paramref_arguments_runtime`: confirm that the `runtime` object is + available to parameter references in arguments. + * `paramref_arguments_self`: confirm that the `self` object is available + and set to `null` in arguments. + * `paramref_arguments_inputs`: confirm that the `inputs` object is + available to parameter references in arguments. ### New Optional Conformance Tests for v1.2.1 From 1aa4a878988036a6480772a106e9dffeb8902702 Mon Sep 17 00:00:00 2001 From: Francis Charette Migneault Date: Mon, 28 Aug 2023 18:46:38 -0400 Subject: [PATCH 117/127] add missing Any? and Any[]? CWL types to JSON schema --- json-schema/cwl.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/json-schema/cwl.yaml b/json-schema/cwl.yaml index 237ec211..7ba8c34e 100644 --- a/json-schema/cwl.yaml +++ b/json-schema/cwl.yaml @@ -1278,10 +1278,15 @@ $defs: title: CWL type string definition summary: CWL type string definition. description: Field type definition. + $comment: | + Note that 'Any' is equivalent to any of the non-null types. + Therefore, a nullable 'Any' explicitly specified by 'Any?' or its array-nullable form 'Any[]?' are not equivalent. enum: - 'null' - Any + - Any? - Any[] + - Any[]? - Directory - Directory? - Directory[] From c0cc7bbf42ebce9a28b818cdab5fb4ea409a5703 Mon Sep 17 00:00:00 2001 From: Francis Charette Migneault Date: Mon, 28 Aug 2023 18:55:14 -0400 Subject: [PATCH 118/127] add missing ruamel.yaml package for JSON schema tests --- requirements-jsonschema-test.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements-jsonschema-test.txt b/requirements-jsonschema-test.txt index eb7ad7dc..d9d4c290 100644 --- a/requirements-jsonschema-test.txt +++ b/requirements-jsonschema-test.txt @@ -1,4 +1,5 @@ jsonschema pytest requests +ruamel.yaml typing_extensions From a4e0aa4690b54b9eca2a9c216118a589e022527e Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 7 Sep 2023 12:37:27 +0200 Subject: [PATCH 119/127] tests: conditionals: add 2 missing doc strings --- tests/conditionals/test-index.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/conditionals/test-index.yaml b/tests/conditionals/test-index.yaml index 7d3005bf..cee57e9b 100644 --- a/tests/conditionals/test-index.yaml +++ b/tests/conditionals/test-index.yaml @@ -20,6 +20,7 @@ tags: [ conditional, inline_javascript, workflow ] - id: direct_required + doc: Conditional using intermediate WorkflowStep.in input tool: cond-wf-002.cwl job: val.1.job.yaml output: @@ -204,6 +205,7 @@ tags: [ conditional, workflow ] - id: direct_required_nojs + doc: Conditional using intermediate WorkflowStep.in input; no javascript tool: cond-wf-002_nojs.cwl job: val.1.job.yaml output: From 5f4a24cfd46aa9072d8418733b61a42261365b7b Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 7 Sep 2023 13:24:32 +0200 Subject: [PATCH 120/127] record_order_with_input_bindings had wrong tag --- conformance_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conformance_tests.yaml b/conformance_tests.yaml index 5580bd5e..8d397d7f 100644 --- a/conformance_tests.yaml +++ b/conformance_tests.yaml @@ -3321,7 +3321,7 @@ args: [-a, -b, '1', -c, '3', -d, -e, '2', -f, '4'] id: record_order_with_input_bindings doc: Test sorting arguments at each level (inputBinding for all levels) - tags: [ command_line, required ] + tags: [ command_line_tool, required ] - id: output_reference_workflow_input output: { From 31bda22357987171f02ae6513fcc26e011e6afed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 01:39:22 +0000 Subject: [PATCH 121/127] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 4 ++-- .github/workflows/codeql.yml | 2 +- .github/workflows/cwltool.yml | 2 +- .github/workflows/spellcheck.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53094d0f..b15c8f89 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-python@v4 with: @@ -40,7 +40,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-python@v4 with: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index eda2af6b..1371e44b 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize CodeQL uses: github/codeql-action/init@v2 diff --git a/.github/workflows/cwltool.yml b/.github/workflows/cwltool.yml index 820f385f..996c9710 100644 --- a/.github/workflows/cwltool.yml +++ b/.github/workflows/cwltool.yml @@ -17,7 +17,7 @@ jobs: env: CWLTOOL_OPTIONS: "--parallel --relax-path-checks" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-python@v4 with: diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 496f84c1..849fb6d6 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -11,7 +11,7 @@ jobs: name: Spellcheck runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Codespell with annotations uses: codespell-project/actions-codespell@v2.0 with: From cf52780e07191e4f903638d895dde62865203506 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Oct 2023 01:20:49 +0000 Subject: [PATCH 122/127] Bump rojopolis/spellcheck-github-actions from 0.33.1 to 0.34.0 Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions) from 0.33.1 to 0.34.0. - [Release notes](https://github.com/rojopolis/spellcheck-github-actions/releases) - [Changelog](https://github.com/rojopolis/spellcheck-github-actions/blob/master/CHANGELOG.md) - [Commits](https://github.com/rojopolis/spellcheck-github-actions/compare/0.33.1...0.34.0) --- updated-dependencies: - dependency-name: rojopolis/spellcheck-github-actions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/spellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 849fb6d6..9d471d45 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -16,7 +16,7 @@ jobs: uses: codespell-project/actions-codespell@v2.0 with: skip: EDAM.owl,foaf.rdf,underscore.js,CODE_OF_CONDUCT.md - - uses: rojopolis/spellcheck-github-actions@0.33.1 + - uses: rojopolis/spellcheck-github-actions@0.34.0 name: Spellcheck # https://github.com/marketplace/actions/github-spellcheck-action # To run locally, `pip install pyspelling`, followed by From bd9e228b796051aa27db18be5a0aea77c36a4c1c Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 30 Oct 2023 21:09:12 +0100 Subject: [PATCH 123/127] address review comments Co-authored-by: Peter Amstutz --- CommandLineTool.yml | 18 ++++++++---------- Workflow.yml | 16 +++++++--------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/CommandLineTool.yml b/CommandLineTool.yml index cdb29b61..9b2bd30e 100644 --- a/CommandLineTool.yml +++ b/CommandLineTool.yml @@ -37,19 +37,17 @@ $graph: - {$include: intro.md} - | - ## Introduction to the CWL Command Line Tool draft standard v1.2.1 + ## Introduction to the CWL Command Line Tool standard v1.2.1 - This specification represents the latest development draft from the - CWL project. There are no new features nor behavior changes in CWL v1.2.1 - as compared to CWL v1.2. v1.2.1 fixes only typos, adds clarifications, + There are no new features nor behavior changes in CWL v1.2.1 + as compared to CWL v1.2.0. v1.2.1 fixes only typos, adds clarifications, and adds additional conformance tests. Some changes to the schema defining - CWL have been changed to aid the auto-generation of libraries for the reading - and writing of CWL documents. + CWL are to aid the auto-generation of libraries for the reading and + writing of CWL documents. - Do not write `cwlVersion: v1.2.1`, nor `cwlVersion: v1.2.0`. The syntax - meaning of all terms in CWL `1.2.x is the same. However, when reporting - results from running the CWL conformance tests, please do report all - three components; for example "99% of CWL v1.2.0 required tests" or + Documents should continue to specify `cwlVersion: v1.2`. However, when + reporting results from running the CWL conformance tests, please do report + all three components; for example "99% of CWL v1.2.0 required tests" or "100% of CWL v1.2.1 required tests". See also the [Schema-Salad v1.2.1 changelog](SchemaSalad.html#Changelog_for_v1.2.1) diff --git a/Workflow.yml b/Workflow.yml index 01b3b7c3..88a7df6f 100644 --- a/Workflow.yml +++ b/Workflow.yml @@ -34,19 +34,17 @@ $graph: - {$include: intro.md} - | - ## Introduction to the CWL Workflow draft standard v1.2.1 + ## Introduction to the CWL Workflow standard v1.2.1 - This specification represents the latest development draft from the - CWL project. There are no new features nor behavior changes in CWL v1.2.1 - as compared to CWL v1.2. v1.2.1 fixes only typos, adds clarifications, + There are no new features nor behavior changes in CWL v1.2.1 + as compared to CWL v1.2.0. v1.2.1 fixes only typos, adds clarifications, and adds additional conformance tests. Some changes to the schema defining - CWL have been changed to aid the auto-generation of libraries for the reading + CWL have been made to aid the auto-generation of libraries for the reading and writing of CWL documents. - Do not write `cwlVersion: v1.2.1`, nor `cwlVersion: v1.2.0`. The syntax - meaning of all terms in CWL `1.2.x is the same. However, when reporting - results from running the CWL conformance tests, please do report all - three components; for example "99% of CWL v1.2.0 required tests" or + Documents should continue to specify `cwlVersion: v1.2`. However, when + reporting results from running the CWL conformance tests, please do report + all three components; for example "99% of CWL v1.2.0 required tests" or "100% of CWL v1.2.1 required tests". See also the [CommandLineTool v1.2.1 changelog](CommandLineTool.html#Changelog_for_v1.2.1) From 28803b04552ce89be8449935bc47cce83ac55aed Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 30 Oct 2023 21:13:14 +0100 Subject: [PATCH 124/127] spelling fix --- concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/concepts.md b/concepts.md index 39933399..77a1aa2d 100644 --- a/concepts.md +++ b/concepts.md @@ -292,7 +292,7 @@ Note: The `map<…>` (compact) versions are optional for users, the verbose opti always allowed, but for presentation reasons option 3 and 2 may be preferred by human readers. Consumers of CWL must support all three options. -The normative explanation for these variations, aimed at implementors, is in the +The normative explanation for these variations, aimed at implementers, is in the [Schema Salad specification](SchemaSalad.html#Identifier_maps). ## Identifiers From 0d538a0dbc5518f3c6083ce4571926f65cb84f76 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Mon, 30 Oct 2023 21:38:55 +0100 Subject: [PATCH 125/127] json tests: adapt to newer ruamel.yaml --- tests/json_schema/test_cwl_schema.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/json_schema/test_cwl_schema.py b/tests/json_schema/test_cwl_schema.py index 2194e46a..18522a60 100644 --- a/tests/json_schema/test_cwl_schema.py +++ b/tests/json_schema/test_cwl_schema.py @@ -15,7 +15,7 @@ # WARNING: do not use 'pyyaml' (import yaml), it does invalid parsing of some scientific number representations # see 'Numbers in scientific notation without dot are parsed as string' (https://github.com/yaml/pyyaml/issues/173) # builtin 'json' and 'simplejson' also have this issue (https://github.com/common-workflow-language/cwl-v1.2/issues/252) -from ruamel import yaml +from ruamel.yaml import YAML from ruamel.yaml.scanner import ScannerError # https://raw.githubusercontent.com/common-workflow-language/cwl-v1.2/1.2.1_proposed/conformance_tests.yaml @@ -76,15 +76,16 @@ def load_file(file_path: str, text: bool = False) -> Union[JSON, str]: :returns: loaded contents either parsed and converted to Python objects or as plain text. :raises ValueError: if YAML or JSON cannot be parsed or loaded from location. """ + yaml = YAML(typ='safe', pure=True) try: if is_remote_file(file_path): headers = {"Accept": "text/plain"} resp = requests.get(file_path, headers=headers) if resp.status_code != 200: raise ValueError("Loading error: [%s]", file_path) - return resp.content if text else yaml.safe_load(resp.content) + return resp.content if text else yaml.load(resp.content) with open(file_path, mode="r", encoding="utf-8") as f: - return f.read() if text else yaml.safe_load(f) + return f.read() if text else yaml.load(f) except OSError as exc: LOGGER.debug("Loading error: %s", exc, exc_info=exc) raise From 1606e546e887629af23d7a804607c9b2de8b721a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Nov 2023 01:23:27 +0000 Subject: [PATCH 126/127] Bump rojopolis/spellcheck-github-actions from 0.34.0 to 0.35.0 Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions) from 0.34.0 to 0.35.0. - [Release notes](https://github.com/rojopolis/spellcheck-github-actions/releases) - [Changelog](https://github.com/rojopolis/spellcheck-github-actions/blob/master/CHANGELOG.md) - [Commits](https://github.com/rojopolis/spellcheck-github-actions/compare/0.34.0...0.35.0) --- updated-dependencies: - dependency-name: rojopolis/spellcheck-github-actions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/spellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 9d471d45..fa75922b 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -16,7 +16,7 @@ jobs: uses: codespell-project/actions-codespell@v2.0 with: skip: EDAM.owl,foaf.rdf,underscore.js,CODE_OF_CONDUCT.md - - uses: rojopolis/spellcheck-github-actions@0.34.0 + - uses: rojopolis/spellcheck-github-actions@0.35.0 name: Spellcheck # https://github.com/marketplace/actions/github-spellcheck-action # To run locally, `pip install pyspelling`, followed by From 504ccbec3225384f6b31e9013e197f946879ca55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 01:23:18 +0000 Subject: [PATCH 127/127] Bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 4 ++-- .github/workflows/cwltool.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b15c8f89..0928beaf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: '3.8.x' @@ -42,7 +42,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: '3.8.x' diff --git a/.github/workflows/cwltool.yml b/.github/workflows/cwltool.yml index 996c9710..0ba800de 100644 --- a/.github/workflows/cwltool.yml +++ b/.github/workflows/cwltool.yml @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: '3.9.x'