Hello,
Can someone explain to a biologist how plugin development works? I have read the developers section in docs.qiime2, but I require more hand-holding. There is an existing script for a plugin which achieves 90% of what I need. My goal is to add functionality to that script (with developer’s blessing).
The two pressing questions I have are:
- How are data and parameters being passed into the plugins?
When I read scripts which underpin the plugin of interest, I can’t seem to find the point of data and parameter entry.
- How do people troubleshoot their code? Normally, I use print statements to check the progress of a workflow, but I can’t get that to work in QIIME.
1 Like
Hey there @A_Bennett!
We actually have a separate documentation site for plugin development:
https://dev.qiime2.org
What plugin and/or action are you interested in contributing to?
Check out Actions — QIIME 2 Developer Documentation documentation for more details. The TLDR is you define a QIIME 2 plugin, register actions on that plugin, and define the inputs, outputs, and parameters of that action. The last step is registering a particular function to run as part of that action's definition - there are definitely a few moving parts here, so if you still have questions after reviewing the docs above, let us know.
Same as you - print statement, breakpoints, etc. My guess is if it didn't work, there might be two separate issues:
- Did you install the plugin in development mode in your development environments?
pip install -e .
usually does the trick. Check out Quickstart — QIIME 2 Developer Documentation documentation for a brief example.
- If you're running those commands via q2cli, you'll need to also pass the
--verbose
flag to the command to make sure everything is printed to stdout.
Keep us posted!
2 Likes