medchem

Medicinal chemistry filters for compound triage. Apply drug-likeness rules (Lipinski, Veber, CNS), structural alert catalogs (PAINS, NIBR, ChEMBL), complexity metrics, and the medchem query language for library filtering.

Install

Hot:20

Download and extract to your skills directory

Copy command and send to AI Agent for auto-install:

Download and install this skill https://openskills.cc/api/download?slug=k-dense-ai-skills-medchem&locale=en&source=copy

Medchem - Molecular Filtering and Compound Library Screening Tool in Drug Discovery

Skills Overview


Medchem is a specialized Python molecular filtering library that helps drug discovery researchers efficiently screen and prioritize compound libraries using similarity rules from the literature, structural alert catalogues, and complexity thresholds.

Use Cases

1. Initial Screening and Triplicate (Triaging) of Compound Libraries


In the early stages of drug discovery, researchers need to quickly identify drug-like candidate molecules from large numbers of compounds. Medchem offers classic rules—including Lipinski’s rule of five, Veber’s rule, CNS MPO, and more—that allow simultaneous evaluation of drug-likeness for thousands of molecules, while also detecting structural alerts such as PAINS and NIBR. This helps build a high-quality screening library.

2. Screening for Lead Optimization Candidates


After obtaining preliminary hit compounds, Medchem can assess a lead compound’s optimization potential using lead-like rules, complexity metrics, and functional group detection. Researchers can combine drug similarity rules, structural alert filtering, and complexity analysis to ensure that molecules entering the optimization stage have good physicochemical properties and drug-likeness potential.

3. Post-Processing of High-Throughput Virtual Screening Results


After completing virtual screening, Medchem’s query language enables researchers to construct complex multi-criteria filters—for example: “satisfies Lipinski’s rules, contains no PAINS structures, and has TPSA ≤ 90 Ų.” It then quickly extracts candidate molecules meeting multiple criteria from tens of thousands to millions of virtual screening results.

Core Features

1. Literature-Derived Drug Similarity Rules


Medchem includes well-known rules from medicinal chemistry, such as Lipinski’s rule of five, Veber’s rule, Oprea lead-like rules, and CNS Multi-Parameter Optimization (MPO). These rules are based on statistical characteristics of marketed drugs and clinical candidates, enabling rapid assessment of a molecule’s drug-likeness, oral absorption potential, and central nervous system penetration capability. It supports both single-molecule evaluation and batch parallel processing. Results are returned as a pandas DataFrame for easy integration into existing workflows.

2. Structural Alerts and Problem Pattern Detection


It provides ChEMBL-derived common alert filters, Novartis NIBR screening set rules, PAINS (pan-assay interference compounds) and named catalogues such as Brenk. These filters can identify chemical structures known to cause false positives, toxicity, or synthetic difficulties. NIBR filters also include severity scoring, helping researchers flexibly adjust filtering thresholds according to project needs. All filters return detailed matched atom positions and alert types, facilitating structure–activity relationship analysis.

3. Compound Complexity Analysis and Query Language


Based on precomputed percentile thresholds from the ZINC-15 database, Medchem can evaluate a molecule’s relative complexity (e.g., Bertz, SAS, QED, etc.). More importantly, its query language supports multi-condition filtering combining rules, alerts, properties, and chemical substructures. For example:
MATCHRULE("rule_of_cns") AND NOT HASALERT("pains") AND HASPROP("tpsa", <=, 90)
This allows researchers to build tailored screening strategies based on specific project requirements.

Frequently Asked Questions

What are drug similarity rules? Why do we need them?


Drug similarity rules are empirical guidelines derived from statistical analysis of marketed drugs and clinical candidates. The most famous is Lipinski’s rule of five, which summarizes the typical ranges of molecular weight, logP, hydrogen bond donor, and acceptor counts for compounds with good oral absorption. These rules help researchers prioritize molecules with drug-likeness potential from vast compound libraries, reducing the risk of failure in later development stages. However, note that many marketed drugs (especially natural products and drugs acting on specific targets) may violate these rules, so the rules should be treated as guidance rather than absolute standards.

How do I filter PAINS molecules using medchem?


PAINS (pan-assay interference compound structures) refer to chemical patterns that are prone to producing false positives in biological assays. Filtering PAINS molecules with medchem is straightforward: use
mc.functional.alert_filter(mols=mol_list, alerts=["pains"], n_jobs=-1)
to obtain a boolean array, where True indicates the molecule does not contain PAINS structures. You can also use mc.structural.CommonAlertsFilters() to retrieve a detailed results DataFrame, including exact matched alert locations and types. It is recommended to combine PAINS filtering with other rules (such as Lipinski’s rule of five) to build a more comprehensive screening strategy.

What are best practices for compound library screening?


Compound library screening should be layered and iterative:
1) Apply fast basic rules in the first layer (e.g., Lipinski’s rule of five) to remove molecules that clearly fail drug-likeness criteria.
2) In the second layer, use structural alert filters (PAINS, NIBR) to eliminate known problem patterns.
3) In the third layer, apply more refined filtering based on specific project needs—such as property requirements for particular target classes (CNS drugs require specific logP and TPSA ranges) or synthetic feasibility assessments.

After each screening layer, keep detailed filtering logs and exclusion reasons to support later auditing and rule optimization. Remember, filtering is meant for prioritization rather than absolute elimination, and borderline cases are worth manual review.