common-workflow-language / common-workflow-language/common-workflow-language
CWL Metadata: Origins/Copyrights/Developers/Publications and more
- Dominant language
- Common Workflow Language
- Stars
- 1.5k
- Forks
- 193
- PR merge metrics
- No merged PRs in 30d
Description
CWL allows to describe tools/pipelines/workflows and enhances reproducibility. Hoverer, describing is not only about how to run or technical info about execution environment but also about what this tool is supposed to do from the science perspective. Almost all tools have been published and have homepages and/or community behind them as well as developers/maintainers... And I think all this info should be a part of CWL file. It will not affect execution of the tool but will definitely help to find who created the original tool and CWL description, why it works for these biological data, what insight it produces, etc .
There are some already existing ontologies/specifications:
- "earl": "http://www.w3.org/ns/earl#"
- "duv": "http://www.w3.org/TR/vocab-duv/"
- "foaf": [friend of a friend](http://xmlns.com/foaf/0.1/)
- "doap": [Description of a Project](http://usefulinc.com/ns/doap)
- "adms": [Asset Description Metadata Schema - Application Profile(ADMS-AP)](http://purl.org/adms/)
- "admssw": [Asset Description Metadata Schema for Software (ADMS.SW)](http://purl.org/adms/sw/)
that can be used to provide this info in CWL file. I took the specs from Debian packaging system http://packages.qa.debian.org/packagename which has a corresponding RDF/XML
http://packages.qa.debian.org/b/bowtie.rdf.
So this is one example of what I propose:
``` yaml
"@context":
"foaf": "http://xmlns.com/foaf/0.1/"
"doap": "http://usefulinc.com/ns/doap"
"adms": "http://purl.org/adms/"
"admssw": "http://purl.org/adms/sw/"
adms:Asset
admssw:SoftwareProject
doap:name: "STAR"
doap:description: >
Aligns RNA-seq reads to a reference genome using uncompressed suffix arrays.
STAR has a potential for accurately aligning long (several kilobases) reads that are
emerging from the third-generation sequencing technologies.
doap:homepage: "https://github.com/alexdobin/STAR"
doap:repository:
- doap:GitRepository:
doap:location: "https://github.com/alexdobin/STAR.git"
doap:release:
- doap:revision: "2.5.0a"
doap:license: "GPL"
doap:category: "commandline tool"
doap:programming-language: "C++"
foaf:Organization:
- foaf:name: "Cold Spring Harbor Laboratory, Cold Spring Harbor, NY, USA"
foaf:publications:
- foaf:title: "(Dobin et al., 2013) STAR: ultrafast universal RNA-seq aligner. Bioinformatics."
foaf:homepage: "http://www.ncbi.nlm.nih.gov/pubmed/23104886"
doap:developer:
- foaf:Person:
foaf:name: "Alexander Dobin"
foaf:mbox: "mailto:dobin at cshl.edu"
foaf:fundedBy: "This work was funded by NHGRI (NIH) grant U54HG004557"
adms:AssetDistribution
doap:name: "STAR.cwl"
doap:specification: "http://common-workflow-language.github.io/draft-3/"
doap:release: "cwl:draft-3.dev2"
doap:homepage: "https://github.com/common-workflow-language/workflows/blob/master/tools/STAR.cwl"
doap:repository:
- doap:GitRepository:
doap:location: "https://github.com/common-workflow-language/workflows"
doap:maintainer:
foaf:Person:
foaf:name: "Andrey Kartashov"
foaf:Organization:
- foaf:name: "Cincinnati Children's Hospital Medical Center"
```
Some other examples:
https://github.com/common-workflow-language/workflows/blob/master/tools/STAR.cwl
https://github.com/common-workflow-language/workflows/blob/master/tools/bedtools-genomecov.cwl
https://github.com/common-workflow-language/workflows/blob/master/tools/samtools-index.cwl
I used "adms:Asset" as a global term for the metadata; it has to include information about the original tool "admssw:SoftwareProject" and about the CWL description itself "adms:AssetDistribution". For the original tool I have information about the author/developer "doap:developer:" and a list of publications "foaf:publications", etc. Please check [samtools](https://github.com/common-workflow-language/workflows/blob/master/tools/samtools-index.cwl) for additional fields I used.
Finally, those examples are for tools, but we need similar stuff for the pipelines/workflows the vocabularies above can be used.
So here are some questions to discuss:
- Should this information be included in the CWL?
- If yes then are those vocabularies sufficient/optimal?
- In the above examples are the terms used correctly?
- What else should we add? History/hierarchy?
- To what degree providing these metadata should be mandatory for storing these files in the CWL repository, e.g. dockstore?
Contributor guide
No contributing guide indexed for this repository
Research direction
Review the linked examples tools/STAR.cwl, tools/bedtools-genomecov.cwl, and tools/samtools-index.cwl alongside the listed EARL, DUV, FOAF, DOAP, ADMS, and ADMS.SW specifications. Determine whether the proposed metadata belongs in CWL, which terms are valid, and what repository requirements would follow; done means the project has an agreed metadata model and scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- xml, yaml
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100