Skip to main content

Java QEPest but written in Python

Project description

pythonQEPest

pythonQEPest PyPI Version

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

Features

  • Calculate pesticide scores for herbicidal, insecticidal, and fungicidal activity
  • Command-line interface (CLI)
  • Graphical User Interface (GUI)
  • Support for JSON and TXT output formats

Pre-built binaries

Download ready-to-use executables from Releases:

Platform Download
Windows CLI main.exe
Windows GUI gui.exe

Installation

pip install pythonQEPest

Or from source:

git clone https://github.com/PonyLianna/pythonQEPest.git
cd pythonQEPest
poetry install

With GUI support

pip install pythonQEPest[gui]
# or
poetry install --extras ui

Quick Start

CLI

pythonqepest -i data.txt -o result.txt
pythonqepest --input data.txt --format json
pythonqepest -v  # show version

GUI

pythonqepest-gui
# or
python -m pythonQEPest.gui.gui

Python API

from 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]

Input Format

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

Output Format

TXT (default output for CLI)

Name	QEF	QEH	QEI
mol1	0.6224	0.8511	0.5339
mol2	0.7310	0.9750	0.6913

JSON

[
  {"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}
]

Configuration

Custom Coefficients

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)

Custom Normalisers

from pythonQEPest import QEPest
from pythonQEPest.dto.normalisation.Normaliser import Normaliser

qepest = QEPest(normalisers={"herb": Normaliser(...), ...})

CLI Options

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 -

Development

Run tests

poetry run pytest

Build

# CLI executable
poetry run poe build-simple

# GUI executable
poetry run poe build-gui

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pythonqepest-2.0.0a3.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pythonqepest-2.0.0a3-py3-none-any.whl (36.0 kB view details)

Uploaded Python 3

File details

Details for the file pythonqepest-2.0.0a3.tar.gz.

File metadata

  • Download URL: pythonqepest-2.0.0a3.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pythonqepest-2.0.0a3.tar.gz
Algorithm Hash digest
SHA256 c0b78942bb583a88d6cc8bc65d5361839b6fe047dafeb09949cd36943aa150c0
MD5 b7c9342b47b3cfd89831382cac17f8e3
BLAKE2b-256 b651be2c8434d05a3d5c0979761a878d99879b30b6cd81b853ff7c7dff1a7b61

See more details on using hashes here.

File details

Details for the file pythonqepest-2.0.0a3-py3-none-any.whl.

File metadata

  • Download URL: pythonqepest-2.0.0a3-py3-none-any.whl
  • Upload date:
  • Size: 36.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pythonqepest-2.0.0a3-py3-none-any.whl
Algorithm Hash digest
SHA256 a80bcae30e45d6521ea782d94579d2dc76f5f34eea29e6303252e4976afd2d4d
MD5 881ffd4cb6d8b0ea9389c9b2cf16f955
BLAKE2b-256 b2c0ffbd87248f6d9b6a073bed2398d167406daddbd55e39538bad6a0694ceac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page