MiGenPro - Microbial Genome Processing Toolkit
MiGenPro: A flexible linked data framework for phenotype-genotype prediction of microbial traits using machine learning.
Functionalities
- Genome annotation based on taxonomy identifiers.
- Data formatting and cleaning for microbial genome datasets.
- Conversion of raw query data into structured feature and phenotype matrices.
- Advanced filtering options to remove low-frequency features or phenotypes.
- Parallel processing support for efficient handling of large datasets.
- Easy training and prediction with machine learning models on microbial characteristics.
Quickstart
Installation with pip in a special conda environment
conda create -n migenpro -c bioconda ;
conda activate migenpro ;
pip install -i https://test.pypi.org/simple/ migenpro
Run the workflow from phenotype graph to phenotype prediction using the following command:
migenpro --df --gq --ml --annotation \
--sapp_jar ./binaries/SAPP-2.0.jar \
--phenotype_query_file sparql_phenotype:demo_gram.sparql \
--phenotype_hdt_file ./data/bacdive.hdt \
--genome_query_file sparql_genome:DomainCopyNumber.sparql \
--abs_frequency 1 \
--threads 20 \
--sampling_type SMOTEN \
The --param_grids flag can be used to optimise the parameters of the machine learning models.
An example json file is available at: tests/resources/param_grid.json
The individual steps:
- Querying phenotype graphs
- Annotating genomes
- Querying the annotated genomes
- Training machine learning models
- Predicting phenotypes with existing models
- Feature importance analysis
- Summarising the results
1. Querying phenotype graphs
migenpro --df \
--phenotype_query_file sparql_phenotype:demo_gram.sparql \
--phenotype_hdt_file ./output/bacdive.hdt \
--abs_frequency 1 \
--sapp_jar binaries/SAPP-2.0.jar \
--output ./output/
2. Annotating genomes
Genome annotation is done by default using the workflow: https://workflowhub.eu/workflows/1170/
this can be changed using the --cwl_file flag with a workflow of your choice granted that it takes a fasta file as input.
You can speed up this process with the --threads flag.
migenpro --annotation \
--genome_query_file sparql_genome:DomainCopyNumber.sparql \
--sapp_jar ./binaries/SAPP-2.0.jar
3. Querying the annotated genomes
migenpro --gq \
--genome_query_file path/to/genome_query_file.sparql \
--sapp_jar binaries/SAPP-2.0.jar \
--output ./output/
4. Training machine learning models
We will now use the default parameters for training the models.
If you wish to optimise the parameters you can do this using the --param_grids flag.
To modify training settings you can use the
migenpro --ml \
--feature_matrix ./output/feature_matrix.tsv \
--phenotype_matrix ./output/phenotype_matrix.tsv \
--output ./output/
5. Predicting phenotypes with existing models
You can do this through the docker container or from the source code.
- You will need to obtain a protein domain matrix of the desired genomes you can do this using the java code.
- For ease of use we will use the python scripts that were made with the following command. The default output directory is "output/mloutput" if desired you can change this using the --output [output_directory_location]
migenpro --ml \
--feature_matrix ./output/feature_matrix.tsv \
--phenotype_matrix ./output/phenotype_matrix.tsv \
--output ./output/
6. Feature importance analysis
migenpro --fi \
--models path/to/models \
--feature_matrix path/to/features.tsv \
--phenotype_matrix path/to/phenotype.tsv \
--output ./output/
7. Summarising the results
Wait for the script to finish and retrieve the results of your prediction from the output directory. There the predictions are given in the following format:
| Genome | Phenotype | Prediction | Confidence |
|---|---|---|---|
| GCA123 | Temperature | mesophilic | 0.96 |
migenpro --summarise \
--output ./output/
Contributing
Pull the git repo:
git pull git@gitlab.com:pig-paradigm/migenpro.git
cd migenpro
Installing the needed dependencies.
A pip requirements.txt file is located in the installation directory which you can install using the following command.
conda create -n migenpro python=3.12.5 --file installation/requirements.txt
Recreating the results from the study
The files needed to recreate our results are located on https://zenodo.org/records/16995284.
Apply the steps from this tutorial namely the /data_visualisation/construct_all_graphs_from_summaries.ipynb to recreate the graphs.
Metadata
Release files for migenpro 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| migenpro-0.1.2.tar.gz | 45.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| migenpro-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 100.2 kB
Release files / migenpro-0.1.2.tar.gz
| Download URL | migenpro-0.1.2.tar.gz |
|---|---|
| Size | 45.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c556f95fa8db7cdc9f589376889b22bb5049c93fd1b17bc16d712f99fa75ab5
|
|
BLAKE2b-256 checksum How to use checksums |
d575eda6f5f2f38b4aed6235afedde75f6276a720bc73e5942e78f52ef185ce4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / migenpro-0.1.2-py3-none-any.whl
| Download URL | migenpro-0.1.2-py3-none-any.whl |
|---|---|
| Size | 54.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fed52c2d43a791d20720d405f0737ac281f55f86b14f5ec5ae2b66bcc31c7fad
|
|
BLAKE2b-256 checksum How to use checksums |
be1788e715081791dc056b6c18ef5f8b9b4e21a484bfca0c92d18a16d21bb3bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|