本文へ移動
cccskills
無料GitHub で公開

denovo-design

De novo molecule generation for drug discovery. Scaffold-based analog enumeration, fragment growing/linking, structure-based design, multi-objective optimization, and drug-likeness filtering.

インストール方法を見る

含まれるファイル(6)

  • SKILL.md7.8 KB
  • scripts/filter.py15.8 KB
  • scripts/generate_analogs.py19.6 KB
  • scripts/generate_fragments.py20.8 KB
  • scripts/generate_sbdd.py27.2 KB
  • scripts/optimize.py23.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

De Novo Molecule Design

Overview

De novo design is the computational generation of novel molecular structures with desired properties, without starting from known active compounds. This skill provides a complete toolkit for generating drug candidates through multiple complementary strategies: scaffold-based analog enumeration, fragment-based design, structure-based design (SBDD), multi-objective optimization, and drug-likeness filtering.

All generation strategies produce molecules with computed physicochemical properties and similarity metrics, enabling rapid prioritization. The scripts are designed for CPU-first execution using RDKit as the core cheminformatics engine, with optional GPU acceleration noted where applicable.

When to Use This Skill

Use this skill when you need to:

  • Explore chemical space around a known lead compound by generating analogs with R-group enumeration, bioisosteric replacements, or random mutations
  • Design molecules from fragments by growing, linking, or merging fragment hits from screening campaigns
  • Generate molecules for a protein target using pocket shape complementarity or pharmacophore constraints
  • Optimize a set of hits against multiple objectives (QED, LogP, synthetic accessibility, molecular weight) through iterative refinement
  • Filter compound libraries for drug-likeness using Lipinski, Veber, PAINS, Brenk alerts, lead-like, fragment-like, or beyond Rule of Five criteria
  • Enumerate focused libraries for virtual screening or synthesis planning

Installation

pip install rdkit-pypi datamol numpy pandas

Optional (for enhanced fragment design and structure-based approaches):

pip install scipy

For structure-based design with PDB parsing:

pip install biopython

Choosing the Right Strategy

ScenarioScriptStrategy
Have a lead compound, want analogsgenerate_analogs.pyR-group, bioisostere, mutate
Have fragment screening hitsgenerate_fragments.pygrow, link, merge
Have a protein structure / pocketgenerate_sbdd.pyshape, pharmacophore
Have hits, need property optimizationoptimize.pymulti-objective iterative
Have a library, need filteringfilter.pylipinski, veber, pains, etc.

Core Workflows

1. Analog Generation

Generate structural analogs of a lead compound using three complementary strategies.

# Generate 50 analogs using all strategies
python scripts/generate_analogs.py --smiles "c1ccc(NC(=O)c2ccccc2)cc1" --output analogs.csv --num 50 --strategy all

# Only bioisosteric replacements
python scripts/generate_analogs.py --smiles "c1ccc(NC(=O)c2ccccc2)cc1" --output analogs.csv --strategy bioisostere

# Only R-group enumeration
python scripts/generate_analogs.py --smiles "c1ccc(NC(=O)c2ccccc2)cc1" --output analogs.csv --strategy rgroup

Strategies:

  • R-group enumeration: Identifies aromatic and sp3 carbon positions, enumerates common substituents (methyl, ethyl, halides, CF3, OMe, NH2, OH, CN, etc.)
  • Bioisosteric replacement: Swaps functional groups using a curated dictionary (COOH to tetrazole, phenyl to thienyl, amide to sulfonamide, ester to oxadiazole, etc.)
  • Random mutation: Fragment-based random modifications to the molecular graph

Output CSV includes: id, smiles, mw, logp, qed, tanimoto_to_parent, strategy.

2. Fragment-Based Design

Build drug-like molecules from fragment hits.

# Grow a fragment by adding substituents
python scripts/generate_fragments.py --fragments "c1cc[nH]c1" --mode grow --output grown.csv --num 50

# Link two fragments
python scripts/generate_fragments.py --fragments "c1cc[nH]c1,c1ccccc1O" --mode link --output linked.csv --num 50

# Merge fragment pharmacophores
python scripts/generate_fragments.py --fragments "c1cc[nH]c1,c1ccccc1O" --mode merge --output merged.csv --num 50

Modes:

  • Grow: Adds substituents at attachment points on a single fragment
  • Link: Connects two fragments with linkers (alkyl chains, amides, ethers, piperazines, etc.)
  • Merge: Combines pharmacophoric features of two fragments into hybrid molecules

3. Structure-Based Design (SBDD)

Generate molecules complementary to a protein binding pocket.

# Shape-based design from a PDB file
python scripts/generate_sbdd.py --protein target.pdb --pocket-residues "ASP189,SER195,HIS57" --method shape --output sbdd_hits.csv --num 100

# Pharmacophore-based design
python scripts/generate_sbdd.py --protein target.pdb --pocket-residues auto --method pharmacophore --output sbdd_hits.csv --num 100

Methods:

  • Shape-based (CPU): Generates molecules complementing the pocket shape using fragment assembly
  • Pharmacophore (CPU): Defines pharmacophore features from pocket residues and generates matching molecules

Note: For production SBDD, consider GPU-accelerated methods like DiffSBDD or Pocket2Mol. This script provides a CPU-based starting point.

4. Multi-Objective Optimization

Iteratively optimize a set of compounds against multiple property objectives.

# Optimize for QED and LogP with constraints
python scripts/optimize.py --input hits.csv --objectives qed,logp,sa --constraints "mw<500,logp<5,qed>0.5" --output optimized.csv --num-iterations 3

The optimizer runs iterative cycles: generate analogs, compute properties, filter by constraints, rank by multi-objective score, select top compounds for the next round.

5. Drug-Likeness Filtering

Apply standard medicinal chemistry filters to compound libraries.

# Apply Lipinski and PAINS filters
python scripts/filter.py --input library.csv --output filtered.csv --filters lipinski,pains

# Apply all available filters
python scripts/filter.py --input library.csv --output filtered.csv --filters lipinski,veber,qed,pains,brenk,leadlike,fragmentlike,bro5

# Custom thresholds
python scripts/filter.py --input library.csv --output filtered.csv --filters qed,pains --qed-threshold 0.6 --sa-threshold 5.0

Available filters:

  • Lipinski Ro5: MW <= 500, LogP <= 5, HBD <= 5, HBA <= 10
  • Veber: RotBonds <= 10, TPSA <= 140
  • QED: Quantitative drug-likeness score above threshold
  • PAINS: Pan-assay interference compounds (RDKit FilterCatalog)
  • Brenk: Structural alerts for reactive/toxic groups
  • Lead-like: MW 200-350, LogP -1 to 3
  • Fragment-like (Ro3): MW <= 300, LogP <= 3, HBD <= 3, HBA <= 3
  • bRo5: Beyond Rule of Five for natural product-like space (MW 500-1000, LogP -2 to 10)
  • SA score: Synthetic accessibility (1 = easy, 10 = hard)

Tips

  • Start broad, then narrow: Use generate_analogs.py with --strategy all first, then filter with filter.py, then optimize survivors with optimize.py.
  • Fragment merging is powerful: If you have multiple fragment hits from an FBDD campaign, merging can produce leads that retain key interactions from both fragments.
  • Combine SBDD with filtering: Structure-based hits often need medicinal chemistry optimization. Pipe SBDD output through filter.py and optimize.py.
  • Check synthetic accessibility: Always include SA score in your analysis. A beautiful molecule is useless if it cannot be synthesized. Use --sa-threshold 5.0 or lower for practical compounds.
  • Deduplicate early: All generation scripts deduplicate by canonical SMILES, but if you combine outputs from multiple runs, deduplicate again before downstream analysis.
  • Property distributions matter: Look at the property distribution summaries printed by each script. Bimodal distributions or outliers can indicate issues with the generation strategy.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Simplest distributed training API. 4 lines to add distributed support to any PyTorch script. Unified API for DeepSpeed/FSDP/Megatron/DDP. Automatic device placement, mixed precision (FP16/BF16/FP8). Interactive config, single launch command. HuggingFace ecosystem standard.

日本語の概要は準備中です。原文の説明を表示しています。

huang-sh/DeepScience42026年7月15日 更新

ADMET property prediction for drug candidates. Full pharmacokinetic panel (Caco-2, PPB, clearance, CYP), toxicity (hERG, AMES, DILI), drug-likeness (Lipinski, QED), using RDKit descriptors and TDC models.

日本語の概要は準備中です。原文の説明を表示しています。

huang-sh/DeepScience42026年7月15日 更新

Interpretable ADMET analysis with mechanistic reasoning. Maps liabilities to structural causes and biological pathways. Based on CoTox (Park 2025) and DrugR (Liu 2026).

日本語の概要は準備中です。原文の説明を表示しています。

huang-sh/DeepScience42026年7月15日 更新

aeon

無料

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

日本語の概要は準備中です。原文の説明を表示しています。

huang-sh/DeepScience42026年7月15日 更新

arboreto

無料

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

日本語の概要は準備中です。原文の説明を表示しています。

huang-sh/DeepScience42026年7月15日 更新

astropy

無料

Comprehensive Python library for astronomy and astrophysics. This skill should be used when working with astronomical data including celestial coordinates, physical units, FITS files, cosmological calculations, time systems, tables, world coordinate systems (WCS), and astronomical data analysis. Use when tasks involve coordinate transformations, unit conversions, FITS file manipulation, cosmological distance calculations, time scale conversions, or astronomical data processing.

日本語の概要は準備中です。原文の説明を表示しています。

huang-sh/DeepScience42026年7月15日 更新

huang-sh のスキルをすべて見る

このスキルの問題を報告する