Skip to content
Web application to collect and visualise data across multiple MultiQC runs.
Python HTML JavaScript CSS Dockerfile PLpgSQL Shell
Branch: master
Clone or download
ewels Merge pull request #80 from TMiguelT/custom-date
Allow custom dates on upload
Latest commit 1a0b625 May 27, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Clarify psycopq2 dependency for psycopq2 >= 2.8 Apr 18, 2019
logo Update the dark-background MegaQC logo Sep 28, 2018
megaqc Use the megaqc format instead of ISO 😢 May 27, 2019
scripts Renamed MEGAQC_DEBUG to FLASK_DEBUG and tidied config profiles Oct 9, 2018
tests Try to remove flask-assets (unused). Aug 22, 2017
uploads ensure upload directory is created Apr 25, 2018
.travis.yml Updated logo. Messed around with the installation requirements. Oct 18, 2017
Dockerfile Docker: don't try to use non-existent requirements-prod.txt Oct 8, 2018
LICENSE initial commit. Mar 7, 2017 Add uploads directory to for installation Apr 20, 2018
requirements.txt remove old requirements.txt refs Jun 19, 2018 Docker: don't try to use non-existent requirements-prod.txt Oct 8, 2018


A web application to collect and visualise data from multiple MultiQC reports.

Docker Build Status Gitter

Current Status: "Pretty unstable"

As of mid-October 2017, MegaQC has all basic functionality. We've made the repo public, but please bear in mind that it is still under heavy development and changes are being made on a daily basis. It's safe to assume that the database structure is still at risk and that you shouldn't yet trust it to be stable. However, we'd love your help in testing, bug finding and development!

MegaQC is a web application that you can install and run on your own network. It collects and visualises data parsed by MultiQC across multiple runs.

Once MegaQC is installed and running, simply configure MultiQC to automatically save data to the website every time it runs (find instructions in the running MegaQC website). Users of your group or facility can then replicate MultiQC plots and explore different data fields. Data distributions, timelines and comparisons can all be explored.

The MegaQC homepage looks something like this:

MegaQC homepage

If you're not sure what MultiQC is yet, check out the main MultiQC website and GitHub repo first.


MegaQC has been written in Python using the Flask web framework. MegaQC is designed to be very simple to get up and running for basic testing and evaluation, yet super easy to configure for a high performance production installation.

Testing MegaQC

By default, MegaQC installs with configuration to use the Flask development server and a SQLite database. This allows a very simple pure-Python installation where you can get up and running almost immediately.

MegaQC is much slower in this testing mode than with a proper production installation, so don't be too quick to judge it as being slow!

If you would like the development version instead, the command is:

pip install --upgrade --force-reinstall git+

Once installed, run the server with the following command:

megaqc run


The flask server is single-threaded, meaning that only one person can load a page or a plot at a time. The SQLite database works using flat files on the disk and much slower than fully fledged SQL databases. As such, it should not be used in production and will run slowly during testing.

MegaQC in production

Once happy with MegaQC, you can should run it in production will a multi-threaded server application and high performance database. MegaQC is designed to be simply run with Postgres SQL and Gunicorn server, however you're not tied to these - the site is written with SQL-Alchemy and should work with most SQL database types and Flask works with most server architectures.

MegaQC comes with instructions for how to run an installation for Gunicorn + Apache with Postgres SQL. It also comes with a Docker container for super-fast setup (note that all data will be lost if the docker container is stopped by default).

Please see the docs for full instructions for each method.

Contributions & Support

Contributions and suggestions for new features are welcome, as are bug reports! Please create a new issue for any of these, including example reports where possible.

There is a chat room for the package hosted on Gitter where you can discuss things with the package author and other developers:

If in doubt, feel free to get in touch with the main author directly: @ewels (


  • Project lead and main author: @ewels
  • Primary backend developer and database guru: @Galithil

See all contributors on GitHub.

You can’t perform that action at this time.