问题
我如何指定一份工作的要求/依赖?
我应该为软件需求提供什么级别的详细信息?
目标
学习如何编写软件需求描述。
学习如何使用SciCrunch检索所需的工具/版本的唯一标识符。
通常,工具描述将针对软件的特定版本编写。为了让其他人更容易使用您的描述,您可以在提示部分包括一个SoftwareRequirement字段。这也可以帮助避免混淆描述是为哪个版本的工具编写的。
cwlVersion: v1.0
class: CommandLineTool
label: "InterProScan: protein sequence classifier"
doc: |
Version 5.21-60 can be downloaded here:
https://github.com/ebi-pf-team/interproscan/wiki/HowToDownload
Documentation on how to run InterProScan 5 can be found here:
https://github.com/ebi-pf-team/interproscan/wiki/HowToRun
requirements:
ResourceRequirement:
ramMin: 10240
coresMin: 3
SchemaDefRequirement:
types:
- $import: InterProScan-apps.yml
hints:
SoftwareRequirement:
packages:
interproscan:
specs: [ "https://identifiers.org/rrid/RRID:SCR_005829" ]
version: [ "5.21-60" ]
inputs:
proteinFile:
type: File
inputBinding:
prefix: --input
applications:
type: InterProScan-apps.yml#apps[]?
inputBinding:
itemSeparator: ','
prefix: --applications
baseCommand: interproscan.sh
arguments:
- valueFrom: $(inputs.proteinFile.nameroot).i5_annotations
prefix: --outfile
- valueFrom: TSV
prefix: --formats
- --disable-precalc
- --goterms
- --pathways
- valueFrom: $(runtime.tmpdir)
prefix: --tempdir
outputs:
i5Annotations:
type: File
format: iana:text/tab-separated-values
outputBinding:
glob: $(inputs.proteinFile.nameroot).i5_annotations
$namespaces:
iana: https://www.iana.org/assignments/media-types/
s: https://schema.org/
$schemas:
- http://schema.org/version/9.0/schemaorg-current-http.rdf
s:license: https://spdx.org/licenses/Apache-2.0
s:copyrightHolder: "EMBL - European Bioinformatics Institute"
本例中对软件的要求为InterProScan version 5.21-60。
hints:
SoftwareRequirement:
packages:
interproscan:
specs: [ "https://identifiers.org/rrid/RRID:SCR_005829" ]
version: [ "5.21-60" ]
根据您的CWL运行程序,这些提示可用于在作业运行之前检查所需的软件是否安装并可用。要使用参考实现启用这些检查,请使用依赖项解析器配置。
除了版本号外,工具的唯一资源标识符(URI)也以rid的形式给出。可以在SciCrunch注册表中查找rrid中的资源,该注册表提供了一个门户,用于一致地查找、跟踪和引用科学资源。如果您想指定一个工具作为软件需求,在SciCrunch上搜索这个工具,并使用注册表中指定的rid。(如果你想添加一个工具到SciCrunch,请遵循本教程。)您可以使用这个rid在您的需求描述的specs字段中引用该工具(通过identifiers.org)。其他好的选择(按偏好顺序)包括主要工具引用的DOI和工具的URL。