Kover is an out-of-core implementation of rule-based machine learning algorithms that has been tailored for genomic biomarker discovery. It produces highly interpretable models, based on k-mers, that explicitly highlight genotype-to-phenotype associations.
Given groups of phenotipically distinct individuals represented by their genomes, Kover seeks an intelligible model that
accurately discriminates them. The obtained models are arrangements of rules that capture
the presence or absence of k-mers.
For example, when applied to 462 C. difficile isolates divided into
two groups: resistant or sensitive to Azithromycin, Kover found that the
following model is a good predictor of resistance to this drug:
For more examples, please see the following articles:
Drouin, A., Letarte, G., Raymond, F., Marchand, M., Corbeil, J., & Laviolette, F. (2019). Interpretable genotype-to-phenotype classifiers with performance guarantees. Scientific Reports, 9(1), 4071. [PDF]
Drouin, A., Giguère, S., Déraspe, M., Marchand, M., Tyers, M., Loo, V. G., Bourgault, A. M., Laviolette, F. & Corbeil, J. (2016). Predictive computational phenotyping and biomarker discovery using reference-free genome comparisons. BMC Genomics, 17(1), 754. [PDF]
Survey of features
Kover currently implements two learning algorithms: 1) Set Covering Machines, 2) Classification Trees. Both algorithms are trained out-of-core, i.e., without loading the entire dataset into the computer’s memory. The implementations are fast and rely on data compression and atomic CPU instructions to accelerate computations.
We provide tight theoretical performance guarantees on the accuracy of the learned models and use them to accelerate learning through a model selection strategy called bound selection.
A command line interface is provided. It consists in two main modules, kover dataset and kover learn. Kover dataset provides data manipulation utilities and kover learn is an interface to the machine learning algorithms.
Kover is open-source software released under the GPLv3 licence.
To get started, take a look at the following pages:
- A brief introduction to machine learning