Developing with QIIME 2 📖

Hi all,
I'm very excited to announce the availability of Developing with QIIME 2 (DWQ2), a new Jupyter Book that you can find at https://develop.qiime2.org.

DWQ2 replaces and expands on the old QIIME 2 Developer Documentation (previously available at https://dev.qiime2.org). The most notable new content is the Plugin Development Tutorial, which provides hands-on instruction for creating a QIIME 2 plugin. This begins with the creation of a plugin from a new cookiecutter template, and then walks through adding functionality in a series of sections. To help get you started, I've also created a 10-minute video that introduces DWQ2, and then walks through building a new QIIME 2 plugin from template.

DWQ2 is still a work in progress, and new content is continuously being added. I'd love any feedback on it (DM on the forum is ideal), and I am open to requests for new content.

Happy plugin developing!

16 Likes

An off-topic reply has been split into a new topic: question on visualizers and distribution of plugins

Please keep replies on-topic in the future.

Hi all,
There have been some exciting updates to Developing with QIIME 2 (DWQ2) since I last posted about it. The highlights are that the Plugin Developer API documentation has been expanded and reorganized (thanks to @ebolyen for writing and @cherman2 for reviewing the content!), and the cookiecutter template now templates installation instructions targeting the developer's choice of release or development versions of the amplicon, metagenome, or tiny QIIME 2 distributions.

Within the next couple of weeks there will be new content added on how to use QIIME 2's parsl-based parallel computing framework to add parallel support to your Pipeline actions, and how to wrap R-based functionality in a QIIME 2 plugin. Before too much longer, you can also expect some new video content illustrating how to add a new format for importing and how to write a simple visualizer, as well as a tutorial illustrating how to use the QIIME 2 Software Development Kit to build QIIME 2 interfaces.

As always, reach out if you have feedback on DWQ2 (DM'ing me on the forum is best for that), or if you have questions about developing QIIME 2 plugins (posting to the Developer Discussion category is best for that).

Enjoy!

9 Likes

Hi all,
There's been another round of updates to Developing with QIIME 2 that I'd like to share.

First, we now have two new Plugin Development How-to guides, both written by @lizgehret. The first, Facilitating installation of your plugin for users provides recommendations on creating conda environments that you can provide to your users which will allow them to install your plugin(s) with a single conda command, just as if they were installing one of the distributions (tiny, amplicon, or metagenome) that my lab maintains. The second, Automate testing of your plugin, describes how to configure GitHub Actions for continuous integration testing of your plugin, and for weekly automated builds against the most recent QIIME 2 development environments. Thanks @lizgehret for this content!

The other big addition is a new section in the Plugin Development tutorial, which adds a Pipeline to the tutorial plugin (q2-dwq2) with parallel computing support. This introduces the concept of split-apply-combine for parallel computing workflows, and applies it in the context of a new Pipeline that performs a BLAST-like search. When I apply this on my laptop using 5 processors, I see a nice speedup in the processing of a small amount of real sequence data. This can be seen when comparing the data provenance of Visualizations resulting from the two runs:

This same approach would enable splitting jobs across more processors on a single computer, or across multiple nodes on a cloud or HPC system, depending on your users' parsl configuration.

There's lots more still to come! Next up will be a tutorial section on integrating metadata in your QIIME 2 Actions, and how to wrap R-based functionality in a QIIME 2 plugin. Then I'll be switching gears for a bit to work on the user documentation refactor.

Oh, and we have some new stickers!

|258px;x265px;

If you're learning from Developing with QIIME 2, or supporting users or developers on the QIIME 2 Forum, and want a sticker, send me a DM with some info on what you're doing and your physical address and I'll get one out to you. (I'll do my best for folks outside the USA, but it will just depend on my shipping costs.)

Happy developing!

9 Likes