Metabokiller offers a novel, machine learning-based approach that accurately recognizes carcinogens by quantitatively assessing their chemical composition as well as potential to induce proliferation, oxidative stress, genomic instability, alterations in epigenetic signatures, and activation of anti-apoptotic pathways, and therefore, obviates the absolute need for bonafide (non)carcinogens for training model. Concomitant with the carcinogenicity prediction, it also reveals the contribution of the aforementioned biochemical processes in carcinogenicity, thereby making the proposed approach highly interpretable.
The only strong dependency for this resource is RDKit which can be installed in a local Conda environment.
$ conda create -c conda-forge -n my-rdkit-env rdkit
$ conda activate my-rdkit-env
Metabokiller is free for academic institutions, however, for commercial utilization a commercial license key is required. Users (academic/commercial) may apply for a valid "License Key" here.
You can also generate your own predictions using Metabokiller’s Colab notebook
Major dependencies
The installation procedure takes less than 5 minutes.
$ pip install signaturizer
$ pip install lime
Minor dependencies
$ pip install Metabokiller
>>> from Metabokiller import mk_predictor as mk
Activate metabokiller license
>>> mk.license('license key') #Example: mk.license('KKKVFZ41111WF6RTQ')
To apply for the license click here
To get predictions for individual carcinogenic properties:
>>> from Metabokiller import mk_predictor as mk
Prepare a list of canonical SMILES (Openbabel generated) strings
>>> smiles = ['ClCC=C', 'C=CCOC(=O)CC(C)C']
Run predictions on any of the carcinogenic property of interest (e.g. epigenetic modifications)
>>> mk.Epigenetics(smiles)
Save the result as Pandas dataframe
result = mk.Epigenetics(smiles)
- Epigenetic Alterations
>>> mk.Epigenetics()
- Oxidative stress
>>> mk.Oxidative()
- Electrophilic Property
>>> mk.Electrophile()
- Genomic Instability
>>> mk.GInstability()
- Pro-proliferative response
>>> mk.Proliferation()
- Anti-apoptotic response
>>> mk.Apoptosis()
>>> from Metabokiller import EnsembleMK
Prepare a list of canonical SMILES (Openbabel generated) strings
>>> smiles = ['ClCC=C', 'C=CCOC(=O)CC(C)C']
Run predictions for all available carcinogenic properties
>>> EnsembleMK.predict(smiles)
Save the result as Pandas dataframe
>>> result = EnsembleMK.predict(smiles)
The biochemical property-focused Metabokiller, by the virtue of its construction, offers interpretability by implementing Local Interpretable Model-agnostic Explanations (LIME). An algorithm that provides interpretability with respect to carcinogen-specific biochemical properties for each SMILES provided.
>>> result,explanation = EnsembleMK.predict(['ClCC=C', 'C=CCOC(=O)CC(C)C'],explainability=True)
# getting output from the explainability object
>>> from matplotlib.backends.backend_pdf import PdfPages
>>> from matplotlib import pyplot as plt
>>> pdf = PdfPages("Ensmble-Result.pdf")
>>> for fig in explanation:
... fig.savefig(pdf, format='pdf')
>>> pdf.close()