Tools: Command to make RO Crate from workflow

Created on 22 Jul 2020  路  5Comments  路  Source: nf-core/tools

An emerging standard for describing workflows is the RO Crate object: https://github.com/workflowhub-eu/about/wiki/Workflow-RO-Crate

There is a new python library for creating and manipulating these: https://github.com/researchobject/ro-crate-py

It would be nice to add this to nf-core/tools and make a new subcommand that can automatically make an RO Crate for any given Nextflow pipeline.

Once we have this functionality, we can potentially automate listing on WorkflowHub.eu for each release using GitHub Actions.

command line tools

Most helpful comment

As a first step you may want to consider just simply adding a ro-crate-metadata.json file in the root of each nf-core workflow repository (you could even hand-craft it). Not sure if this would duplicate any metadata you already express elsewhere...

Then, assuming you want everything in the repository to be in the RO-Crate, you can then get a valid, zipped RO-Crate through GitHub's "Download ZIP" button.
image

All 5 comments

As a first step you may want to consider just simply adding a ro-crate-metadata.json file in the root of each nf-core workflow repository (you could even hand-craft it). Not sure if this would duplicate any metadata you already express elsewhere...

Then, assuming you want everything in the repository to be in the RO-Crate, you can then get a valid, zipped RO-Crate through GitHub's "Download ZIP" button.
image

Oh nice, thanks for the tip @fbacall! Do you have any examples of what this file looks like?

I'm pretty sure that all of the metadata it contains will be duplicated. But if we have some kind of tool to generate it then we can automate this and check that it's up to date with a linting CI test.

I don't suppose it's possible to put this file anywhere other than the root directory? (Guessing not by your comment about downloading the whole repo). We are collecting so many root-level config files, it makes it difficult for newcomers to see which files are the important ones...

I heard you were talking about Sarek :+1:

Oh nice, thanks for the tip @fbacall! Do you have any examples of what this file looks like?

Example: https://gist.github.com/fbacall/9750806cf702cacbd6bec46dd9187db1

I don't suppose it's possible to put this file anywhere other than the root directory? (Guessing not by your comment about downloading the whole repo). We are collecting so many root-level config files, it makes it difficult for newcomers to see which files are the important ones...

Sadly not, according to the spec. Understood about config-bloat. If, like you said, you have enough metadata held elsewhere to generate the RO-Crate metadata, then it probably does make more sense to just generate the whole RO-Crate in a GitHub action linked to a release.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ggabernet picture ggabernet  路  5Comments

orzechoj picture orzechoj  路  3Comments

apeltzer picture apeltzer  路  5Comments

drpatelh picture drpatelh  路  4Comments

apeltzer picture apeltzer  路  4Comments