QSARmil - molecular multi-instance machine learning
Multi-conformer modeling edition
QSARmil builds Quantitative Structure-Activity Relationship (QSAR) models by representing each molecule as a bag of instances and applying multi-instance machine learning to it. In this edition, instances are molecular 3D conformers. Representing molecules as bags of fragments, tautomers, or mixture components is planned, but not yet implemented - see below for what’s ready today.
Ready to use:
3D conformer generation (RDKit ETKDG embedding + UFF optimization)
3D descriptor calculation (RDKit and MolFeat descriptors)
Multi-instance learning models (via milearn) and consensus model search (via qsarcons)
Regression and binary classification tasks are currently supported
Under development:
Fragment-based modeling
Tautomer-based modeling
Mixture-based modeling
Installation
Option 1 - one-line install from scratch with conda:
conda env create -f environment.yml && conda activate qsarmil
Option 2 - install into an existing environment:
pip install qsarmil
Beginner usage
For a predefined pipeline that takes zero QSAR/MIL knowledge and zero setup: hand it your training data and get predictions for new molecules back.
from qsarmil.modelling.meta import MultiConformerRegressor
smiles_train = [
"CC(C)Cc1ccc(cc1)C(C)C(=O)O",
"COc1ccc2cc(ccc2c1)C(C)C(=O)O",
"OC(=O)Cc1ccccc1Nc1c(Cl)cccc1Cl",
"COc1ccc2c(c1)c(CC(=O)O)c(C)n2C(=O)c1ccc(Cl)cc1",
"OC(=O)C(C)c1cccc(c1)C(=O)c1ccccc1",
]
y_train = [5.2, 5.9, 6.1, 7.0, 5.6]
smiles_test = ["CC(C(=O)O)Oc1cccc(c1)-c1ccccc1", "CC(C(=O)O)c1ccc(cc1)-c1ccc(F)cc1"]
# train and predict in one call - there's no separate save/load step
model = MultiConformerRegressor(num_conf=10, hopt=True, verbose=True)
y_pred = model.train_predict(smiles_train, y_train, smiles_test)
Use MultiConformerRegressor for continuous properties and MultiConformerClassifier for binary classification. See the full walkthrough in 01_Beginner_Easy_Start.ipynb.
Professional usage
Modify or build your own modeling pipeline by combining QSARmil’s individual modules (conformer generator, descriptor calculator, multi-instance methods, etc.) directly. See 02_Professional_Pipeline_Customization.ipynb for the details.
Tutorials
01_Beginner_Easy_Start.ipynb - the predefined, zero-configuration pipeline.
02_Professional_Pipeline_Customization.ipynb - building a custom pipeline from individual modules.
03_Key_Instance_Detection.ipynb - identifying which conformers drive a prediction.
Documentation
Full documentation is available at QSARmil docs.
Metadata
Release files for qsarmil 1.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qsarmil-1.0.7.tar.gz | 26.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qsarmil-1.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.4 kB
Release files / qsarmil-1.0.7.tar.gz
| Download URL | qsarmil-1.0.7.tar.gz |
|---|---|
| Size | 26.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8c7d7c2023356721fc84c7a916b3e733a1ed786f07b5b98847bf394d799f8101
|
|
BLAKE2b-256 checksum How to use checksums |
d9f4bdae1e408c39bc4dfa0291f1aea93ae8d98ff369536ecb3b9010760c01a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.
Transparency logRelease files / qsarmil-1.0.7-py3-none-any.whl
| Download URL | qsarmil-1.0.7-py3-none-any.whl |
|---|---|
| Size | 33.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e2bd2e078b4a999f90a8104c6eff398b6f8fd12704a38ada274c1c87c107767c
|
|
BLAKE2b-256 checksum How to use checksums |
ed8438fd4796fc3727a74e919440d2e1a823e8e9636f22a5e2814d4fe2d9f257
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.
Transparency log