Ever wondered about how Nextflow plugins work? Join us for this walk through tutorial, as Ben Sherman guides Phil Ewels to create and publish a plugin from scratch. Right from the first line of code to creating a release and publishing the plugin.
Nextflow plugins have been getting more attention lately and we’ve been getting a lot of questions in the community. There is better documentation and resources planned, but in the mean time we hope that this can be a useful guide for anyone curious in how they work, and interested in getting started.
This podcast episode is quite different to normal. Rather than an interview or a discussion, it’s more of a tutorial. It’ll work best if you follow the video, though hopefully it’s still useful with just sound.
We’d love to hear what you think of it! After this we will be back to our usual routine in the podcast, but we’d love to hear what you thought of this taster!
Links to resources used / mentioned in this episode:
- Nextflow Documentation: Plugins
- Example plugin used as a base: nextflow-io/nf-hello
- Phil’s plugin created during recording: ewels/channels-demo
- Provenance reporting plugin: nextflow-io/nf-prov
- Schema validation plugin: nextflow-io/nf-schema
Time stamps:
00:00:00Welcome00:03:27Nextflow docs00:08:34Starting by forking nf-hello00:10:32Overview of project files00:17:13Trying a first compile00:18:12Different publishing methods00:19:54nf-boost local publish method00:23:05Trying the new compile00:24:00Running locally with the plugin00:27:32Looking at the nf-hello plugin code00:39:29Deleting files we don't need00:42:34Finding event names in the Nextflow source00:47:46Writing some custom functions00:49:41Testing our new code00:51:51Modifying the test pipeline to create files00:54:14Coding up the JSON output00:59:20Looking at nf-prov code for BCO files01:05:30Testing JSON output01:09:39Automatic work dir cleanup / nf-boost01:12:17Publishing a release on GitHub01:19:07Custom plugin repositories01:26:47Publishing for all Nextflow users01:29:52Conclusion and end
