In the following sections general details regarding the usage and administation of MegaQC are provided.

MegaQC Commandline Interface


Welcome to the MegaQC command line interface.

See below for the available commands - for example,

to start the MegaQC server, use the command: megaqc run




Show the flask version


Show all registered routes with endpoints and methods.

megaqc routes [OPTIONS]


-s, --sort <sort>

Method to sort routes by. “match” is the order that Flask will match routes when dispatching a request.




Show HEAD and OPTIONS methods.


Run a local development server.

This server is for development purposes only. It does not provide the stability, security, or performance of production WSGI servers.

The reloader and debugger are enabled by default if FLASK_ENV=development or FLASK_DEBUG=1.

megaqc run [OPTIONS]


-h, --host <host>

The interface to bind to.

-p, --port <port>

The port to bind to.

--cert <cert>

Specify a certificate file to use HTTPS.

--key <key>

The key file to use when specifying a certificate.

--reload, --no-reload

Enable or disable the reloader. By default the reloader is active if debug is enabled.

--debugger, --no-debugger

Enable or disable the debugger. By default the debugger is active if debug is enabled.

--eager-loading, --lazy-loader

Enable or disable eager loading. By default eager loading is enabled if the reloader is disabled.

--with-threads, --without-threads

Enable or disable multithreading.

--extra-files <extra_files>

Extra files that trigger a reload on change. Multiple paths are separated by ‘:’.


Run an interactive Python shell in the context of a given Flask application. The application will populate the default namespace of this shell according to it’s configuration.

This is useful for executing small snippets of management code without having to manually configure the application.

megaqc shell [OPTIONS]

MegaQC Usage: Setup

Submitting data

Before you can do anything useful in MegaQC, you need to submit some data to the database. You do this by configuring and then running MultiQC.

MultiQC configuration

MultiQC needs a couple of configuration variables to know how to send data to MegaQC. To find these, log into MegaQC and use the navigation dropdown to get to the MultiQC Configuration page. Copy the specified text into ~/.multiqc_config.yaml.

Note that this megaqc_access_token is specific to your MegaQC user, so shouldn’t be shared (it’s effectively a password). All data uploaded using that token will be attributed to your user.

Running MultiQC

Once configured, run MultiQC as you would normally. You should see a couple of additional log messages under the megaqc namespace as follows:

$ multiqc .

[INFO   ]         multiqc : This is MultiQC v1.3
[INFO   ]         multiqc : Template    : default
[INFO   ]         multiqc : Searching './'
Searching 63 files..  [####################################]  100%
[INFO   ]  feature_counts : Found 6 reports
[INFO   ]            star : Found 6 reports
[INFO   ]        cutadapt : Found 6 reports
[INFO   ]    fastq_screen : Found 6 reports
[INFO   ]          fastqc : Found 6 reports
[INFO   ]         multiqc : Compressing plot data
[INFO   ]          megaqc : Sending data to MegaQC
[INFO   ]          megaqc : Data upload successful
[INFO   ]         multiqc : Report      : multiqc_report.html
[INFO   ]         multiqc : Data        : multiqc_data
[INFO   ]         multiqc : MultiQC complete

NB: You need MultiQC v1.3 or later for MegaQC integration to work.

MegaQC Usage: Administration

Initial setup

Once you have your MegaQC server up and running, load up the address in your web browser. The MegaQC installation creates an empty database without any registered users. The first user to register will automatically be an administrator, so make sure that you immediately register!

User administration

Admins have access to a page in the navigation called Administration Panel where you can create, delete and reset passwords for other MegaQC users.