Web-based UI visualisation tool for ChemBFN method
Important:
For the security concerning, it is not recommended to use this application as a public service. When deploying on a local host as a shared application, it is better to install this application in a container or VM, to prevent this application from accessing the Internet, and to limit the premissions of read, create, and delete loacal files and directories.
1. Install
$ pip install -U chembfn_webui
2. Place model files
- Place customised vocabulary files (plain text .txt format) under
chembfn_webui/model/vocab. - Place base model files (pretrained model in .pt format) under
chembfn_webui/model/base_model. - Group standalone model files (
model.pt, optionalmlp.pt) and configuration file (config.json) in one folder for each model and place these folders underchembfn_webui/model/standalone_model. - Group LoRA model files (
lora.pt, optionalmlp.pt) and configuration file (config.json) in one folder for each model and place these folders underchembfn_webui/model/lora.
For example,
├───chembfn_webui
├───bin
├───cache
├───lib
└───model
├───base_model
| └───zinc15_190m.pt
├───lora
│ └───csd_ees
│ ├───lora.pt
| ├───mlp.pt
| └───config.json
├───standalone_model
│ ├───guacamol
│ | ├───model.pt
│ | └───config.json
│ └───qm9
| ├───model.pt
| ├───mlp.pt
| └───config.json
└───vocab
└───moses_selfies_vocab.txt
Note:
The file
config.jsonis automatically saved by CLI toolMadmolprovided inbayesianflow-for-chempackage. If you train models via Python API, you need to manually create that file for your models by filling in the tempate:{ "padding_index": 0, "start_index": 1, "end_index": 2, "padding_strategy": "static", "padding_length": PADDING_LENGTH, "label": [LABEL_NAME_I, LABEL_NAME_II, ...], "name": JOB_NAME }The configureation file for base models can be downloaded here.
If placed correctly, all these files can be seen in the "model explorer" tab.
You can use an external folder to host the models if it follows the same structure as
chembfn_webui/model. See the next section for the method.
3. Launch the program
I. launch the web-UI
$ chembfn
II. launch the web in a public link
$ chembfn --public
III. use an external directory to hold the model files (Linux and MacOS)
$ CHEMBFN_WEBUI_MODEL_DIR={YOUR/MODEL/DIR} chembfn
IV. use an external directory to hold the model files (Windows)
# if you use CMD
> set CHEMBFN_WEBUI_MODEL_DIR={YOUR/MODEL/DIR} & chembfn
# if you use PowerShell
> $env:CHEMBFN_WEBUI_MODEL_DIR="{YOUR/MODEL/DIR}" & chembfn
V. use an external directory to hold the model files (Notebook, Google Colab)
import os
os.environ["CHEMBFN_WEBUI_MODEL_DIR"] = "{YOUR/MODEL/DIR}"
!chembfn --public
VI. create an empty folder to hold the model files
$ chembfn --create_model_dir {YOUR/MODEL/DIR}
A structured folder YOUR/MODEL/DIR/model will be created.
4. Write the prompt
- Leave prompt blank for unconditional generation.
- For standalone models, key in objective values in the format of
[a,b,c,...]to pass the values to the model. - Key in
<name:A>or<name:A>:[a,b,c,...]to select LoRA parameter and pass the objective values if necessary, wherenameis the LoRA model name andAis the LoRA scaling. You can easily select a LoRA model by clicking the model name in "LoRA models" tab as well. - You can stack several LoRA models together to form an ensemble model by prompt like
<name1:A1>:[a1,b1,c1,...];<name2:A2>:[a2,b2,...];.... Note that hereA1,A2, etc are contributions of each model to the ensemble.
5. Advanced control
Under "advanced control" tab
- You can control semi-autoregressive behaviours by key in
Ffor switching off SAR,Tfor switching on SAR, and prompt likeF,F,T,...to individually control the SAR in an ensemble model. - You can add unwanted tokens, e.g.,
[Cu],p,[Si]. - You can customise the result preprocessing function, e.g., the model output a reaction SMILES "CCI.C[O-]>>COCC" which couldn't be recognised by RDKit; you can pass
lambda x: x.split(">>")[-1]to force the program only looking at the products.
6. Generate molecules
Click "RUN" then here you go! If error occured, please check your prompts and settings.
Where to obtain the models?
- Pretrained models: https://huggingface.co/suenoomozawa/ChemBFN
- ChemBFN source code: https://github.com/Augus1999/bayesian-flow-network-for-chemistry
- ChemBFN document: https://augus1999.github.io/bayesian-flow-network-for-chemistry/
- ChemBFN package: https://pypi.org/project/bayesianflow-for-chem/
Metadata
Release files for chembfn-webui 2.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chembfn_webui-2.2.1.tar.gz | 76.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chembfn_webui-2.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 147.1 kB
Release files / chembfn_webui-2.2.1.tar.gz
| Download URL | chembfn_webui-2.2.1.tar.gz |
|---|---|
| Size | 76.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eb51b73d6fe90d3ce76176bd270fbab808b6e64e39bcbc41708c50bf5427341b
|
|
BLAKE2b-256 checksum How to use checksums |
10fc53c41bb46c4585bcd2c71bd77e20887a436a76dcc4c082fd26f8a0201514
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / chembfn_webui-2.2.1-py3-none-any.whl
| Download URL | chembfn_webui-2.2.1-py3-none-any.whl |
|---|---|
| Size | 71.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
762d99e135faa8283312580b242afec7d579b96dba19b8b9e908da3bf0e1c8f9
|
|
BLAKE2b-256 checksum How to use checksums |
055ac54be518d3ce9c9338730e98e49c8720be9ce36ab16a4ecf5e9aa61d4646
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|