Python implementation of QEPest (Quantitative Estimation of Pesticide), a program for scoring molecules as herbicides (QEH), insecticides (QEI), and fungicides (QEF).
Originally published in: J Cheminform - QEPest Original Program Link is here
- Calculate pesticide scores for herbicidal, insecticidal, and fungicidal activity
- Command-line interface (CLI)
- Graphical User Interface (GUI)
- Support for JSON and TXT output formats
Download ready-to-use executables from Releases:
| Platform | Download |
|---|---|
| Windows CLI | main.exe |
| Windows GUI | gui.exe |
pip install pythonQEPestOr from source:
git clone https://github.com/PonyLianna/pythonQEPest.git
cd pythonQEPest
poetry installpip install pythonQEPest[gui]
# or
poetry install --extras uipythonqepest -i data.txt -o result.txt
pythonqepest --input data.txt --format json
pythonqepest -v # show versionpythonqepest-gui
# or
python -m pythonQEPest.gui.guifrom pythonQEPest import QEPest, QEPestInput
# Create input data
qepest = QEPest()
qepest.initialize_coefficients()
qepest.initialize_normalisers()
# From individual values
inp = QEPestInput(
name="mol1",
mol_weight=240.2127,
log_p=3.2392,
hbond_acceptors=5,
hbond_donors=1,
rotatable_bonds=4,
aromatic_rings=1
)
result = qepest.compute_params(inp)
print(result.name) # mol1
print(result.data.qe_herb) # 0.8511
print(result.data.qe_insect) # 0.5339
print(result.data.qe_fung) # 0.6224
# Convert to array
print(result.to_array()) # ["mol1", 0.6224, 0.8511, 0.5339]The input file should be a tab-separated text file with the following columns:
| Column | Description |
|---|---|
| Name | Molecule name |
| MW | Molecular weight (g/mol) |
| LogP | Hydrophobicity (octanol-water partition coefficient) |
| HBA | Number of hydrogen bond acceptors |
| HBD | Number of hydrogen bond donors |
| RB | Number of rotatable bonds |
| arR | Number of aromatic rings |
Example data.txt:
Name MW LogP HBA HBD RB arR
mol1 240.2127 3.2392 5 1 4 1
mol2 249.091 3.0273 3 1 5 1
mol3 308.354 2.1086 1 0 7 1
Name QEF QEH QEI
mol1 0.6224 0.8511 0.5339
mol2 0.7310 0.9750 0.6913
[
{"name": "mol1", "qe_fung": 0.6224, "qe_herb": 0.8511, "qe_insect": 0.5339},
{"name": "mol2", "qe_fung": 0.731, "qe_herb": 0.975, "qe_insect": 0.6913}
]from pythonQEPest import QEPest
custom_coefficients = {
"herb": [
(70.77, 283.0, 84.97, -1.185),
(93.81, 3.077, 1.434, 0.6164),
# ... 6 tuples total
],
"insect": [...],
"fung": [...]
}
qepest = QEPest(coefficients=custom_coefficients)from pythonQEPest import QEPest
from pythonQEPest.dto.normalisation.Normaliser import Normaliser
qepest = QEPest(normalisers={"herb": Normaliser(...), ...})| Option | Description | Default |
|---|---|---|
-i, --input |
Input file path | data.txt |
-o, --output |
Output file path | data.out.txt |
-f, --format |
Output format (json, txt) | txt |
-v, --version |
Show version | - |
poetry run pytest# CLI executable
poetry run poe build-simple
# GUI executable
poetry run poe build-gui