MolALKit: A Toolkit for Active Learning in Molecular Data.
Project description
MolALKit: A Toolkit for Active Learning in Molecular Data.
This software package serves as a robust toolkit designed for the active learning of molecular data.
Installation
Check the GPU and CUDA requirements at mgktools for marginalized graph kernel model. Non-CUDA installation is not supported.
Python 3.12, CUDA12.4, and GCC11.2 are recommended.
Minimum installation
pip install git+https://gitlab.com/Xiangyan93/graphdot.git@v0.8.2 molalkit
Support Chemprop
pip install torch==2.6.0 --index-url https://download.pytorch.org/whl/cu124
pip install git+https://github.com/Xiangyan93/chemprop4molalkit.git@v0.0.0
Support GraphGPS
pip install torch-scatter torch-sparse torch-geometric pytorch-lightning yacs torchmetrics performer-pytorch ogb git+https://github.com/Xiangyan93/graphgps4molalkit.git@v0.0.0 -f https://data.pyg.org/whl/torch-2.6.0+cu124.html
Support MolFormer
pip install transformers pytorch-fast-transformers git+https://github.com/Xiangyan93/molformer4molalkit.git@v0.0.0
APEX_CPP_EXT=1 APEX_CUDA_EXT=1 pip install -v --no-build-isolation git+https://github.com/NVIDIA/apex.git
Then download pretrained model at https://github.com/IBM/molformer.
QuickStart
GPU is required to support graph kernel. It will take about 10 minutes to set up the environment and run the demo.
Data
MolALKit currently supports active learning exclusively for single-task datasets, which can be either classification or regression tasks.
Custom Dataset
The data file must be in CSV format with a header row, structured as follows:
smiles,p_np
[Cl].CC(C)NCC(O)COc1cccc2ccccc12,1
C(=O)(OC(C)(C)C)CCCc1ccc(cc1)N(CCCl)CCCl,1
...
The following arguments are required to run the active learning
--data_path <dataset.csv> --smiles_columns <smiles> --targets_columns <target> --task_type <classification/regression>
Public Dataset
The toolkit incorporates several popular public datasets, such as MoleculeNet and TDC, which can be used directly --data_public <dataset name>.
Here is the list of available datasets:
from molalkit.data.datasets import AVAILABLE_DATASETS
print(AVAILABLE_DATASETS)
ActiveLearning/Validation Split
Our code supports several methods of splitting data into an active learning set and a validation set. The active learning is used for active learning and the validation set is used for evaluating the performance of the active learning model.
- random The data will be split randomly.
- scaffold_order With this approach, the data is split based on molecular scaffolds, ensuring that the same scaffold never appears in both the active learning and validation sets. The scaffold containing the most molecules is placed in the active learning set. This method aligns with the implementation in DeepChem and is independent of random seeds.
- scaffold_random In this method, the placement of scaffolds in either the active learning set or the validation set is done randomly. This split is dependent on random seeds and introduces an element of randomness into the scaffold split.
The following arguments are required for data split:
--split_type <random/scaffold_order/scaffold_random> --split_sizes <active learning set ratio> <validation set ratio> --seed <random seed>
Machine Learning Model
The machine learning model used in this package is described in a json config file. Here is the list of built-in machine learning models:
from molalkit.models.configs import AVAILABLE_MODELS
print(AVAILABLE_MODELS)
The model config files are placed in molalkit/models/configs. The following arguments are required for choosing machine learning models:
--model_configs <model_config_file>
First Example
Here's an example of running active learning using MolALKit with the BACE dataset, a 50:50 scaffold split, and Random Forest as the machine learning model:
molalkit_run --data_public bace --metrics roc_auc mcc accuracy precision recall f1_score --model_configs RandomForest_Morgan_Config --split_type scaffold_order --split_sizes 0.5 0.5 --evaluate_stride 10 --seed 0 --save_dir bace --init_size 2 --select_method explorative --s_batch_size 1 --max_iter 100
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file molalkit-1.0.0.tar.gz.
File metadata
- Download URL: molalkit-1.0.0.tar.gz
- Upload date:
- Size: 2.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b43ec76d9fa5f27661eeca361a1f9ea288300bdec33649f9775472fe241f06d7
|
|
| MD5 |
96bb540dd816c309be7852b0b9bde851
|
|
| BLAKE2b-256 |
594ebe82d9570dfcbb1256f3493c0f404968f2e3ee9e235ec1f824ebec12fcf2
|
File details
Details for the file molalkit-1.0.0-py3-none-any.whl.
File metadata
- Download URL: molalkit-1.0.0-py3-none-any.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
940282bece957cc9a6819cce5323da180b943051c586de064d85e36f2b74d4f8
|
|
| MD5 |
5a0107ad5d4a6a617dc5c5e5552422f7
|
|
| BLAKE2b-256 |
8aaf62fd2ffd523ce759e56641ff35b93d90a6e6614cb220ad63c8a3ebc6c3e7
|