MultiQC: summarize analysis results for multiple tools and samples in a single report
Authors/Creators
Description
MultiQC v1.23
Bug fixes, integration of pytest and mypy, and one new module.
From the user perspective, this is mostly a maintenance release, containing several important bugfixes, plus minor improvements and a new module - Glimpse.
For developers, there are two significant additions to the CI workflow:
- pytest, along with unit tests covering the core library,
- and mypy, along with ensuring that the core codebase is fully type-annotated.
The core unit tests are located in the multiqc/tests folder, and the module tests are
located in the corresponding multiqc/modules/*/tests subfolders.
The CI workflows
are refactored to separate the integration tests and the unit tests, to improve the
granularity and parallelization. The tests are discovered and executed with pytest,
and the coverage is reported by codecov.
The multiqc/tests subfolder has several test files that cover most of the core library.
It also has a test_modules_run.py
tests that checks that every module didn't crash when being run on the corresponding data
in test-data, and added something into the report.
That is somewhat of a blanket test for modules, that doesn't check if the modules logic
worked correctly. For that reason, the users are encouraged to write more comprehensive
tests that take the specific module logic into account, and place them in
multiqc/modules/*/tests. For some initial examples, consider checking:
- The samtools flagstat
test that verifies some logic in the
flagstatsubmodule of thesamtoolsmodule; - The picard tools test that checks that every submodule for each Picard tool worked correctly.
Other changes & fixes
Fixes
- Custom content"
- Re-enabling the
software_versionmodule section (#2670) - When
--no-ansiis set, disable colors inrich_clicktoo (#2678) - Support CWD path filters (
./path/...) in config (#2676) - Fix writing report to stdout with
--filename stdout, log to stderr (#2672) - Interactive use:
Updates
- Run mypy on core library (#2665)
- Add tests for plot export (#2682)
- Add tests for command line use, including for passing
TMPDIR(#2677) - Custom content: allow hash-fenced table columns (#2649)
- Software versions: parse for sorting, but preserve the original strings (#2671)
- Allow both table-level and column-level custom plot config for table (#2662)
New modules
- Glimpse (#2492)
Module fixes
- Fix parsing kraken vs. bracken: respect
num_linesin search patterns (#2657) - Fix the
bbmap/qchistsearch pattern (#2661)
Module updates
- Picard HsMetrics: support any custom X coverage metrics (#2663)
- Samtools coverage: avoid hard crash for invalid file contents (#2664)
Refactoring
- Abstract code related to temporary directory creation into a separate module (#2675)
Infrastructure
- Use pull-request labels and milestones for changelog generation (#2691)
Notes
Files
MultiQC/MultiQC-v1.23.zip
Files
(6.0 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:baebc8c40b5c2152ac9a8966f471c105
|
6.0 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/MultiQC/MultiQC/tree/v1.23 (URL)