GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - MultiQC/example-plugin: A miniature example of a MultiQC plugin.

BranchesTags
Open more actions menu

Latest commit

 

History

9 Commits
9 Commits

Folders and files

NameName
Last commit message
Last commit date
example_plugin
example_plugin
 
 
test_data
test_data
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
pyproject.toml
pyproject.toml
 
 
setup.py
setup.py
 
 

Repository files navigation

Example MultiQC Plugin

This example repository contains example code to help you get started with writing your own MultiQC plugin.

It should be used in addition to the main MultiQC documentation: https://docs.seqera.io/multiqc/

If you have any questions, please get in touch on the community forum: https://community.seqera.io/multiqc

Nextflow Logo


When to write a plugin

This example plugin contains both custom code and a MultiQC module for parsing content into reports.

MultiQC modules can either be written as part of the core MultiQC program, or in a stand-alone plugin. If your module is for a publicly available tool, please add it to the main program and contribute your code via a pull request (see the contributing instructions).

If your module is for something very niche, which no-one else can use, then it's best to write it as part of a custom plugin. The process is almost identical, though it keeps the code bases separate.

Overview of files

  • pyproject.toml
    • Where the plugin hooks are defined. This is where you tell MultiQC where to find your code.
    • This file also defines how your plugin should be installed, including required python packages.
  • example_plugin/
    • Installable Python packages are typically put into a directory with the same name.
  • example_plugin/__init__.py
    • Python packages need an __init__.py file in every directory. Here, these are mostly empty (except the one in the my_example folder, which contains a shortcut to make the import statement shorter).
    • If you prefer, you can put all code in these files and just reference the directory name only.
  • example_plugin/cli.py
    • Additional command line parameters to add to MultiQC
  • example_plugin/custom_code.py
    • File to hold custom functions that can tie into the main MultiQC execution flow.
    • In this file, we define some new config defaults, including the search patterns used by the example module
  • example_plugin/modules/my_example/
    • This folder contains a minimal MultiQC module which will execute along with all other MultiQC modules (as defined by the setup.py hook).

Usage

To use this code, you need to install MultiQC and then your code. For example:

pip install MultiQC
pip install .

Use pip install -e . if you're actively working on the code - then you don't need to rerun the installation every time you make an edit (though you still do if you change anything in pyproject.toml).

Disabling the plugin

In this example plugin, I have defined a single additional command line flag - --disable-example-plugin. When specified, it sets a new MultiQC config value to True. This is checked in every plugin function; the function then returns early if it's True.

In this way, we can effectively disable the plugin code and allow native MultiQC execution. Note that a similar approach could be used to enable a custom plugin or feature.

About

A miniature example of a MultiQC plugin.

seqera.io/multiqc/

Topics

example-projectmultiqcmultiqc-pluginnext-generation-sequencingngspluginpythonquality-control

Resources

Readme
MIT license
Activity
Custom properties

Stars

8 stars

Watchers

1 watching

Forks

6 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.