AgeXtend
Introduction
AgeXtend is a multimodal, bioactivity-based, and mechanism-backed Explainable AI Predictor for geroprotectors. AgeXtend supports 2 distinct work packages: Predictor and Browser. The first work package, Predictor, involves a bioactivity-based classifier for predicting geroprotective compounds, coupled with an explainability module providing mechanistic insights into biological processes behind the predictions, a toxicity module to evaluate their toxicity in the biological context, and finally, a target module that suggests protein targets of the putative geroprotective compounds. The second work package, Browser, allows the user to explore through the 20 pre-screened databases specifically curated for these functionalities.
License Key
AgeXtend 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 AgeXtend’s Colab notebook
Environment Setup (done using requirement.txt)
Major dependencies
Minor dependencies
- os
- scikit-learn (v1.2.1)
- xgboost (v1.5.1)
- pandas (v1.4.3)
- numpy (v>=1.20.3)
- tqdm
- joblib (v1.1.1)
- matplotlib (v>=3.2.2)
- seaborn (v0.11.2)
- importlib
- importlib-resources (v5.7.1)
Quick setup
The file requirement.txt will be used for the environment setup and by running the following command.
$ pip install -r requirement.txt
How to use AgeXtend?
Installation using pip
$ pip install -i https://pypi.org/simple/AgeXtend
License activation (One time)
To apply for the license click here
>>> from AgeXtend import Predictor
Activate AgeXtend license
>>> Predictor.license('license key') #Example: Predictor.license('KKKVFZ41111WF6RTQ')
Work Packages
AgeXtend supports 2 distinct work packages:
- Predictor
- Browser
Predictor
Prediction and Explainability Module
Predicts the anti-aging potential for the input SMILES:
>>> from AgeXtend import Predictor
Prepare a list of canonical SMILES (Open Babel generated) strings
>>> smiles = ['ClCC=C', 'C=CCOC(=O)CC(C)C']
Create an AgeXtend type object to featurize the query compounds (i.e. list of canonical SMILES)
>>> agex_obj = Predictor.featurize(smiles)
Use the AgeXtend object for predictions
>>> output = Predictor.predict(agex_obj)
Get the list of resulting data frames that are part of the rest of the modules
>>> output.keys()
dict_keys(['Anti_Aging_Prediction', 'Explainability_Status', 'Explainability_Probabilities'])
Note: Explainability_Probabilities will be empty by default unless selected otherwise by supplying additional arguments.
Get the result of a specific output data frame
>>> output['Explainability_Status']
Sub Explainability and Target Module
Additional arguments:
AgeXtend also supports the following modules along with the Prediction and Explainability modules, which can be chosen using the boolean option (True)
| Parameter Name | Description | Type | Default value | Output (If True) |
|---|---|---|---|---|
| probs | Probabilities of Explainability and/or Toxicity Module | boolean | False | Explainability_Probabilities / Explainability_Toxicity_Probabilities |
| HC | Run Toxicity Module (Health Check) | boolean | False | Explainability_Toxicity_Status |
| TS | Sub Explainability Level Tanimoto Similarity Test | boolean | False | Explainability_response |
| BDL | BindingDB Target Information and Druggability (Lipinski Rule) | boolean | False | Druggability_and_Potential_Targets |
Example
>>> output = Predictor.predict(agex_obj, TS=True)
>>> output.keys()
dict_keys(['Anti_Aging_Prediction', 'Explainability_Status', 'Explainability_Probabilities', 'Explainability_response'])
>>> output = Predictor.predict(agex_obj, HC=True, BDL=True)
>>> output.keys()
dict_keys(['Anti_Aging_Prediction', 'Explainability_Toxicity_Status', 'Explainability_Toxicity_Probabilities', 'Druggability_and_Potential_Targets'])
Efficient Bulk Prediction / Custom AgeXtend Database
Predictor module also provides functionalities for efficient bulk data prediction
>>> Predictor.bulk_predict(input=smiles_list)
Or user can also use pre-calculated AgeXtend type object as input
>>> agex_obj = Predictor.featurize(smiles_list)
>>> Predictor.bulk_predict(input=agex_obj)
Additional arguments:
| Parameter Name | Description | Type | Default value |
|---|---|---|---|
| outfolder | Output Database type folder name | string | AgeXtendDB |
| chunksize | Number of predictions input per iteration for faster job completion | Integer | 10000 |
Note The output folder of Bulk prediction function can be used as a Custom database for input in AgeXtend Browser module
Browser
To explore the AgeXtend pre-complied predictions of various databases:
>>> from AgeXtend import Browser
Use Open Babel to Generate Canonical SMILES format of the query compound as input
>>> Browser.search(query='OC(=O)CCCc1c[nH]c2c1cccc2', output='/path/to/output/folder/')
Unzip the AgeXtendBrowserOut.zip file to visualize/print the generated report (HTML format)
Note: the report file (AgeXtend_BrowserOut.html) must be in the same folder with the images folder
Additional arguments:
AgeXtend also supports the use of locally complied Predictor module outputs (Folder containing CSV format outputs)
| Parameter Name | Description | Default Database |
|---|---|---|
| path | Path to the AgeXtend pre-complied prediction database | gutMGene |
Example
>>> Browser.search(path='/path/to/Database/Folder/', query='OC(=O)CCCc1c[nH]c2c1cccc2', output='/path/to/output/folder/')
Pre-complied AgeXtend Prediction Databases
| DB Name | DB version | FTP size | FTP link |
|---|---|---|---|
| FOODB | Pre-release 1.0 | 63M | http://agextend.ahujalab.iiitd.edu.in:8080/FOODB/ |
| HMDB | v5.0 | 231M | http://agextend.ahujalab.iiitd.edu.in:8080/HMDB/ |
| IMPPAT | v2.0 | 4K | http://agextend.ahujalab.iiitd.edu.in:8080/IMPPAT/ |
| AfroDB | - | 756K | http://agextend.ahujalab.iiitd.edu.in:8080/AfroDB/ |
| AgingAtlas | v1.0 | 748K | http://agextend.ahujalab.iiitd.edu.in:8080/AgingAtlas/ |
| Chembridge | - | 788K | http://agextend.ahujalab.iiitd.edu.in:8080/Chembridge/ |
| ChemdivBBlocks | - | 39M | http://agextend.ahujalab.iiitd.edu.in:8080/ChemdivBBlocks/ |
| CMNPD | v1.0 | 20M | http://agextend.ahujalab.iiitd.edu.in:8080/CMNPD/ |
| DDPD | - | 4K | http://agextend.ahujalab.iiitd.edu.in:8080/DDPD/ |
| ECMDB | v2.0 | 4K | http://agextend.ahujalab.iiitd.edu.in:8080/ECMDB/ |
| RepoHub | release-3/24/2020 | 3.9M | http://agextend.ahujalab.iiitd.edu.in:8080/RepoHub/ |
Release files for AgeXtend 0.0.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 | |
|---|---|---|---|
| agextend-0.0.2.tar.gz | 87.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| AgeXtend-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 175.9 MB
Release files / agextend-0.0.2.tar.gz
| Download URL | agextend-0.0.2.tar.gz |
|---|---|
| Size | 87.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
376d2ac5b901aafd14c3e041c567569a215bbddb2660dec3072aba8c37688f6c
|
|
BLAKE2b-256 checksum How to use checksums |
fad4f09b0bdfdfaa2dc415e61d2554c3d3840fde0544189eb8a6a96bf5457518
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.8.13
|
Release files / AgeXtend-0.0.2-py3-none-any.whl
| Download URL | AgeXtend-0.0.2-py3-none-any.whl |
|---|---|
| Size | 88.7 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
14b6100595289dfb7e552f0bb00a52131f93e0a29c08ac1645fe8196f3a2ef66
|
|
BLAKE2b-256 checksum How to use checksums |
304134a3d81283a30d1fd60079315669c60e353c563f7a11d1b3bb02e782f4b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.8.13
|