Skip to content

IDEA-XL/qikpropservice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

codecov

MolSSI QikProp As A Service

A repository for serving QikProp v3 as a webservice and API access point.

This version of QikProp has been provided by William L. Jorgensen and hosted as a service by the Molecular Sciences Software Institute (MolSSI). To report a problem or suggest improvements, please open an issue on the Project GitHub. Additional features and options will be added over time.

There are two main components for this project:

  • A web application where data can be uploaded in the form, and provides the endpoint for the API
  • A standalone API wrapper for CLI calls to the service hosted through the web app

Please visit each subproject's folder and to see the documentation for each one.

Webapp Front End

The web application and service can be found at https://qikprop.molssi.org.

CLI and Python Library

The CLI tool and Python Library are downloadable through PyPI or Conda-Forge

conda install -c conda-forge qikpropservice

OR

pip install qikpropservice

Library usage

from pathlib import Path
from apiwrapper.qikpropservice import qikprop_as_a_service, qikprop_reasonable

# Batch mode: returns a map of Path -> QikProp property dictionary (parsed in memory)
result = qikprop_as_a_service(["*.mol"], fast=True)
for path, properties in result["results"].items():
    print(path, properties["QPlogPo/w"])

# Single molecule screening: accepts .mol/.sdf path or SMILES string
is_reasonable = qikprop_reasonable(Path("candidate.mol"))
print(is_reasonable)

Interpreting the results

The wrapper now streams the tarball output from the service directly into memory, extracts QP.CSV, and converts the rows into a flat dictionary. The values are compared against the recommended ranges from the QikProp user manual (see Table 4). Those ranges are captured in assets/qikprop_ref.csv and applied automatically when you call apiwrapper.qikpropservice.qplib.evaluate_against_qikprop_criteria.

Any property that violates the recommended bounds is reported as a human-readable string (for strict mode). By default, the helper runs in quick mode, which simply fails if the submitted structure reports any Lipinski Rule-of-Five violations (RuleOfFive > 0). Switch to strict mode by passing mode="strict" to qikprop_reasonable or evaluate_against_qikprop_criteria if you need the full Table 4 evaluation.

SMILES support: If you provide a SMILES string to qikprop_reasonable, the function will try to build a temporary .mol file via RDKit. Install RDKit or provide a structure file directly if SMILES parsing is unavailable in your environment.

CLI behaviour change

qikprop_as_a_service no longer writes *.qpout.tar.gz files to disk by default. Instead, it returns parsed results so you can immediately inspect properties or apply screening logic. If you still need the raw tarball, use QikpropAsAService.get_result() and supply a filename.

About

qikprop service

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors