Agent skill

Adme Property Predictor

by aipoch in aipoch/medical-research-skills

Analyze data with adme-property-predictor using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.

MITAuto-check passedData & Analytics

Install Adme Property Predictor

skills CLI
$ npx skills add aipoch/medical-research-skills --skill adme-property-predictor -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aipoch/medical-research-skills adme-property-predictor --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aipoch/medical-research-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'scientific-skills/Data Analysis/adme-property-predictor' .claude/skills/adme-property-predictor && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
adme-property-predictor
GitHub stars
1.9k
Token cost
~7k tokens
SKILL.md length
2,749 words
Files
5 (incl. scripts, references)
Skills in repo
578
Repo updated
First seen
Licence
MIT

At a glance

Analyze data with adme-property-predictor using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.

  • Works in 6 steps: Absorption (A) Prediction → Distribution (D) Prediction → Metabolism (M) Prediction → …
  • Tasks that involve Data analysis
  • SKILL.md covers When to Use, Key Features, Dependencies and Example Usage, plus 19 more sections
  • Runs Python scripts from its folder; calls python

What it does

Adme Property Predictor is an agent skill from aipoch/medical-research-skills. Analyze data with adme-property-predictor using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.

Its SKILL.md is about 7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `adme-property-predictor_audit_result_v2.json`, `references/runtime_checklist.md` and `scripts/main.py`).

It sits in Data & Analytics, covering Data analysis and Structured output and tool calling. The repository describes itself as: Hundreds of agent skills for medical research, including protocol design, data analysis, evidence insights, and academic writing. The licence is MIT.

When your agent uses it

  • Tasks that involve Data analysis
  • Tasks that involve Structured output and tool calling

Example prompts

  • “/adme-property-predictor”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Absorption (A) Prediction
  2. Distribution (D) Prediction
  3. Metabolism (M) Prediction
  4. Excretion (E) Prediction
  5. Integrated Drug-Likeness Scoring
  6. Batch Processing and Library Screening

What it can do on your machine

Read from SKILL.md and the folder at commit 686e09d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Adme Property Predictor loads about 7k tokens when it runs, and up to ~7.1k if it reads all its reference files. Until then it costs about 44 tokens; SKILL.md has 2,749 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~44
When it runs · the whole SKILL.md, loaded when a task matches
~7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from aipoch/medical-research-skills at commit 686e09d, republished under its MIT licence (© aipoch). 2,749 words, ~7,004 tokens.

Download SKILL.mdSave it as .claude/skills/adme-property-predictor/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
adme-property-predictor
description
Analyze data with `adme-property-predictor` using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.
license
MIT
author
AIPOCH

Source: https://github.com/aipoch/medical-research-skills

ADME Property Predictor

When to Use

  • Use this skill when the task needs 1. Confirm the user objective, required inputs, and non-negotiable constraints before doing detailed work. 2. Validate that the request matches the documented scope and stop early if the task would require unsupported as.
  • Use this skill for data analysis tasks that require explicit assumptions, bounded scope, and a reproducible output format.
  • Use this skill when you need a documented fallback path for missing inputs, execution errors, or partial evidence.

Key Features

  • Scope-focused workflow aligned to: Analyze data with adme-property-predictor using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.
  • Packaged executable path(s): scripts/main.py.
  • Reference material available in references/ for task-specific guidance.
  • Structured execution path designed to keep outputs consistent and reviewable.

Dependencies

  • Python: 3.10+. Repository baseline for current packaged skills.
  • dataclasses: unspecified. Declared in requirements.txt.
  • rdkit: unspecified. Declared in requirements.txt.

Example Usage

bash
cd "20260318/scientific-skills/Data Analytics/adme-property-predictor"
python -m py_compile scripts/main.py
python scripts/main.py --help

Example run plan:

  1. Confirm the user input, output path, and any required config values.
  2. Edit the in-file CONFIG block or documented parameters if the script uses fixed settings.
  3. Run python scripts/main.py with the validated inputs.
  4. Review the generated output and return the final artifact with any assumptions called out.

Implementation Details

See ## Workflow above for related details.

  • Execution model: validate the request, choose the packaged workflow, and produce a bounded deliverable.
  • Input controls: confirm the source files, scope limits, output format, and acceptance criteria before running any script.
  • Primary implementation surface: scripts/main.py.
  • Reference guidance: references/ contains supporting rules, prompts, or checklists.
  • Parameters to clarify first: input path, output path, scope filters, thresholds, and any domain-specific constraints.
  • Output discipline: keep results reproducible, identify assumptions explicitly, and avoid undocumented side effects.

Quick Check

Use this command to verify that the packaged script entry point can be parsed before deeper execution.

bash
python -m py_compile scripts/main.py

Audit-Ready Commands

Use these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths.

bash
python -m py_compile scripts/main.py

# Example invocation: python scripts/main.py --help

# Example invocation: python scripts/main.py --input "Audit validation sample with explicit symptoms, history, assessment, and next-step plan." --format json

Workflow

  1. Confirm the user objective, required inputs, and non-negotiable constraints before doing detailed work.
  2. Validate that the request matches the documented scope and stop early if the task would require unsupported assumptions.
  3. Use the packaged script path or the documented reasoning path with only the inputs that are actually available.
  4. Return a structured result that separates assumptions, deliverables, risks, and unresolved items.
  5. If execution fails or inputs are incomplete, switch to the fallback path and state exactly what blocked full completion.

Overview

Comprehensive pharmacokinetic prediction tool that assesses drug-likeness and ADME properties of small molecules using validated cheminformatics models, molecular descriptors, and structure-property relationships.

Key Capabilities:

  • Multi-Property Prediction: Absorption, Distribution, Metabolism, Excretion
  • Drug-Likeness Scoring: Lipinski's Rule of 5, Veber rules, QED score
  • Batch Processing: Analyze compound libraries efficiently
  • Structure-Based Insights: Identify liability hotspots and optimization opportunities
  • Comparative Analysis: Rank candidates by predicted PK profile

Integration with Other Skills

Upstream Skills:

  • chemical-structure-converter: Convert between SMILES, InChI, MOL formats
  • lipinski-rule-filter: Initial rule-based drug-likeness screening
  • chemical-structure-converter: Generate 3D conformers for structure-based predictions
  • smiles-de-salter: Remove salt counterions before analysis

Downstream Skills:

  • drug-candidate-evaluator: Multi-parameter optimization including ADME
  • toxicity-structure-alert: Assess safety alongside ADME
  • target-novelty-scorer: Evaluate target uniqueness for selected candidates
  • biotech-pitch-deck-narrative: Create investor materials with PK data

Complete Workflow:

Chemical Structure Converter (prepare structures) → 
  Lipinski Rule Filter (initial filtering) → 
    ADME Property Predictor (this skill, detailed PK) → 
      Drug Candidate Evaluator (integrated scoring) → 
        Toxicity Structure Alert (safety check)

Core Capabilities

1. Absorption (A) Prediction

Predict intestinal absorption, solubility, and permeability:

python
from scripts.adme_predictor import ADMEPredictor

predictor = ADMEPredictor()

# Predict absorption properties
absorption = predictor.predict_absorption(
    smiles="CC(=O)Oc1ccccc1C(=O)O",  # Aspirin
    properties=["all"]  # or specific: ["hia", "caco2", "solubility"]
)

print(absorption.summary())

Predicted Properties:

PropertyModelUnitsInterpretation
HIAML + physicochemical%Human intestinal absorption; >80% good
Caco-2QSPR10⁻⁶ cm/sPermeability; >70 high, <25 low
SolubilityQSPRmg/mLAqueous solubility; >0.1 mg/mL acceptable
LogSQSPRunitlessIntrinsic solubility; >-4 acceptable
Lipinski PassRule-basedbooleanPasses all 5 rules
Veber PassRule-basedbooleanPSA <140, rotatable bonds <10

Best Practices:

  • ✅ Consider HIA and solubility together (high HIA but low solubility = dissolution-limited)
  • ✅ Caco-2 good for oral absorption prediction; poor for BBB penetration
  • ✅ Use both rule-based (Lipinski) and ML-based predictions for consensus
  • ✅ Check solubility at physiological pH (not just intrinsic)

Common Issues and Solutions:

Issue: Lipinski pass but poor solubility

  • Symptom: "Passes Rule of 5 but LogS = -5"
  • Solution: Lipinski checks MW and LogP, not solubility directly; use explicit solubility prediction

Issue: Caco-2 predicts high absorption but HIA low

  • Symptom: "Caco-2 = 85 (high) but HIA = 60%"
  • Solution: Models have different training sets; Caco-2 is in vitro, HIA in vivo; HIA generally more reliable
2. Distribution (D) Prediction

Predict tissue distribution, protein binding, and brain penetration:

python

# Predict distribution properties
distribution = predictor.predict_distribution(
    smiles="CC(=O)Oc1ccccc1C(=O)O",
    properties=["vd", "ppb", "bbb"]
)

# Access specific predictions
vd = distribution.volume_of_distribution
bbb = distribution.blood_brain_barrier
ppb = distribution.plasma_protein_binding

Predicted Properties:

PropertyModelUnitsInterpretation
VdQSPRL/kgVolume of distribution; 0.1-10 typical
PPBML%Plasma protein binding; >90% high, <50% low
BBBLogBBunitlessBrain penetration; >0.3 penetrant
fuCalculatedfractionFree (unbound) fraction; 1 - PPB/100

Best Practices:

  • ✅ High PPB (>90%) may require higher doses but longer half-life
  • ✅ Low Vd (<0.3) = mainly in plasma; high Vd (>3) = extensive tissue distribution
  • ✅ BBB penetration critical for CNS drugs; avoid for peripherally-acting drugs
  • ✅ fu (free fraction) drives pharmacological activity, not total concentration

Common Issues and Solutions:

Issue: BBB predictions unreliable for certain chemotypes

  • Symptom: "BBB model gives conflicting predictions for peptides"
  • Solution: Models trained on small molecules; use specialized BBB predictors for peptides, macrocycles

Issue: PPB overestimated for acidic drugs

  • Symptom: "PPB predicted 95% but experimental is 70%"
  • Solution: Some models biased toward neutral/basic compounds; check model training set overlap
3. Metabolism (M) Prediction

Predict metabolic stability, CYP interactions, and liability sites:

python

# Predict metabolism properties
metabolism = predictor.predict_metabolism(
    smiles="CC(=O)Oc1ccccc1C(=O)O",
    include_site_prediction=True
)

# Check CYP interactions
cyp_profile = metabolism.cyp_profile
stability = metabolism.metabolic_stability

Predicted Properties:

PropertyModelOutputInterpretation
CYP InhibitionMLIC50 or classPotential DDI; <1 μM high risk
CYP SubstrateClassificationBoolean/ProbabilityMetabolized by specific CYP
StabilityMLT1/2 or classMicrosomal/ hepatocyte stability
Liability SitesReactivity modelsAtom indicesSoft spots for metabolism
MAO SubstrateClassificationBooleanMonoamine oxidase substrate

Best Practices:

  • ✅ Screen for CYP3A4 inhibition early (most common DDI)
  • ✅ Check if compound is CYP substrate (for polymorphism concerns)
  • ✅ Identify metabolic hotspots for structural blocking
  • ✅ Consider species differences (human vs rodent metabolism)

Common Issues and Solutions:

Issue: False negatives for time-dependent inhibition (TDI)

  • Symptom: "No CYP inhibition predicted but TDI observed experimentally"
  • Solution: Standard models predict reversible inhibition; use specialized TDI predictors

Issue: Metabolic site prediction shows multiple hotspots

  • Symptom: "5 different atoms flagged as metabolic liabilities"
  • Solution: Prioritize by reactivity score; consider blocking highest-risk site first
4. Excretion (E) Prediction

Predict clearance routes and elimination kinetics:

python

# Predict excretion properties
excretion = predictor.predict_excretion(
    smiles="CC(=O)Oc1ccccc1C(=O)O",
    properties=["clearance", "half_life", "route"]
)

# Access predictions
clearance = excretion.clearance_ml_min_kg
t12 = excretion.half_life_hours
route = excretion.primary_route

Predicted Properties:

PropertyModelUnitsInterpretation
CLQSPRmL/min/kgClearance; <5 low, 5-15 moderate, >15 high
T1/2QSPRhoursHalf-life; 2-8h typical for oral drugs
RouteClassificationrenal/biliary/mixedPrimary excretion pathway
LogDQSPRunitlessDistribution coefficient; affects clearance

Best Practices:

  • ✅ Half-life determines dosing frequency (T1/2 × 5 = time to steady state)
  • ✅ Renal clearance predictable for polar compounds; hepatic less predictable
  • ✅ High clearance (>15) may require high doses or prodrug approach
  • ✅ Very long T1/2 (>24h) good for adherence but risk accumulation

Common Issues and Solutions:

Issue: Clearance predictions highly variable

  • Symptom: "Same compound, different models give CL = 5 vs 20 mL/min/kg"
  • Solution: Allometry-based methods unreliable for novel scaffolds; use average of multiple models

Issue: Route prediction contradicts structure

  • Symptom: "Highly polar compound predicted biliary, expected renal"
  • Solution: Check LogP/LogD; polar compounds (<0) usually renal; neutral/lipophilic (>1) usually hepatic
5. Integrated Drug-Likeness Scoring

Overall assessment combining all ADME properties:

python

# Generate comprehensive drug-likeness score
druglikeness = predictor.calculate_druglikeness(
    smiles="CC(=O)Oc1ccccc1C(=O)O",
    methods=["qed", "muegge", "golden_triangle"]
)

# Multi-parameter optimization
mpo_score = predictor.mpo_score(
    smiles="CC(=O)Oc1ccccc1C(=O)O",
    target_profile={"hia": >80, "bbb": <0.3, "t12": "2-8h"}
)

Scoring Methods:

MethodDescriptionRangeGood Score
QEDQuantitative Estimation of Drug-likeness0-1>0.6
MueggeBioavailability score0-6>4
MPOMulti-Parameter Optimization0-10>6

Best Practices:

  • ✅ Use QED as quick overall metric; MPO for property-weighted scoring
  • ✅ Don't rely solely on drug-likeness; efficacy and safety equally important
  • ✅ Compare to marketed drugs in same class for context
  • ✅ Track drug-likeness trends during optimization (should improve)

Common Issues and Solutions:

Issue: Drug-likeness score conflicts with project needs

  • Symptom: "CNS drug has low QED (0.5) because high LogP needed for BBB"
  • Solution: Drug-likeness rules biased toward oral drugs; use category-specific models (CNS, oncology, etc.)
6. Batch Processing and Library Screening

Analyze compound libraries efficiently:

python

# Batch process library
results = predictor.batch_predict(
    input_file="library.smi",  # SMILES file
    properties=["all"],
    output_format="csv",
    n_workers=4  # Parallel processing
)

# Filter by criteria
filtered = results.filter(
    lipinski_pass=True,
    hia__gt=80,
    t12__between=(2, 8)
)

# Rank by multi-parameter score
ranked = results.rank(by="mpo_score", ascending=False)

Best Practices:

  • ✅ Process in batches of 1000-10000 for memory efficiency
  • ✅ Save intermediate results (crash recovery)
  • ✅ Apply filters sequentially (Lipinski first, then detailed ADME)
  • ✅ Check property distributions to identify outliers

Common Issues and Solutions:

Issue: Batch processing runs out of memory

  • Symptom: "Killed: Out of memory" with 50K compounds
  • Solution: Process in chunks; use generators instead of loading all into RAM

Issue: Some compounds fail prediction

  • Symptom: "30% of library returns NaN"
  • Solution: Check for invalid SMILES, unusual atoms, or molecules outside training set domain

Complete Workflow Example

From SMILES to prioritized candidates:

text

# Step 1: Predict ADME for single compound

# Example invocation: python scripts/main.py \
  --smiles "CC(=O)Oc1ccccc1C(=O)O" \
  --properties all \
  --output aspirin_adme.json

# Step 2: Batch process compound library

# Example invocation: python scripts/main.py \
  --input library.smi \
  --properties absorption,distribution \
  --format csv \
  --output library_adme.csv

# Step 3: Filter and rank

# Example invocation: python scripts/main.py \
  --input library_adme.csv \
  --filter "lipinski_pass=True,hia>80" \
  --rank-by qed \
  --top-n 100 \
  --output top_candidates.csv

Python API Usage:

python
from scripts.adme_predictor import ADMEPredictor
from scripts.batch_processor import BatchProcessor

# Initialize
predictor = ADMEPredictor()
batch = BatchProcessor()

# Single compound analysis
aspirin = predictor.predict_all("CC(=O)Oc1ccccc1C(=O)O")
print(f"HIA: {aspirin.absorption.hia}%")
print(f"Half-life: {aspirin.excretion.t12} hours")

# Batch screening
results = batch.process(
    input_file="library.smi",
    predictor=predictor,
    properties=["absorption", "distribution"],
    n_workers=4
)

# Filter good candidates
good_candidates = results[
    (results.lipinski_pass == True) &
    (results.hia > 80) &
    (results.bbb < 0.3) &
    (results.t12.between(2, 8))
]

Expected Output Files:

output/
├── aspirin_adme.json           # Single compound detailed results
├── library_adme.csv            # Batch screening results
├── top_candidates.csv          # Filtered and ranked candidates

Quality Checklist

Pre-Prediction Checks:

  • SMILES string is valid and canonical
  • Salt forms removed (if analyzing parent compound)
  • Tautomeric state appropriate for physiological pH
  • Stereochemistry specified (if relevant for activity)

During Prediction:

  • Compound within model applicability domain (check similarity to training set)
  • No unusual atoms or functional groups (models trained on typical drug-like space)
  • MW in range 100-800 Da (outside range predictions less reliable)
  • Predictions complete (no missing values for critical properties)

Post-Prediction Verification:

  • Drug-likeness scores in reasonable range (sanity check)
  • Individual properties internally consistent (e.g., high LogP predicts low solubility)
  • CRITICAL: Comparison to experimental data if available (validate model for chemotype)
  • Rankings align with medicinal chemistry intuition

Before Making Decisions:

  • CRITICAL: Predictions are NOT experimental data; use for prioritization only
  • Multiple orthogonal models give consistent results
  • Structural alerts checked (toxicity, reactivity)
  • Top candidates selected for experimental validation
  • Documentation of model versions and confidence intervals

For Regulatory Submissions:

  • Model validation documented (training set, test set performance)
  • Applicability domain clearly defined
  • Prediction uncertainty quantified
  • Experimental confirmation for key predictions

Common Pitfalls

Over-Reliance Issues:

  • ❌ Treating predictions as experimental facts → Poor decision making

    • ✅ Use predictions for prioritization; experimental validation required for lead optimization
  • ❌ Single model dependency → Miss model-specific biases

    • ✅ Compare multiple models; consensus predictions more reliable
  • ❌ Ignoring prediction confidence → False sense of certainty

    • ✅ Check confidence intervals; low confidence predictions need higher scrutiny

Input Issues:

  • ❌ Invalid or non-canonical SMILES → Wrong compound analyzed

    • ✅ Validate SMILES before prediction; use canonical forms
  • ❌ Analyzing salt forms → Properties skewed by counterion

    • ✅ Remove salts using smiles-de-salter; analyze free base/acid
  • ❌ Ignoring stereochemistry → Inaccurate predictions for chiral drugs

    • ✅ Specify stereochemistry explicitly; use 3D descriptors if available

Interpretation Issues:

  • ❌ Focusing on single property → Miss overall profile

    • ✅ Consider all ADME properties; use integrated scores like QED or MPO
  • ❌ Rigid cutoff application → Discard good candidates

    • ✅ Use cutoffs as guidelines; consider project-specific needs
  • ❌ Ignoring property correlations → Unrealistic optimization

    • ✅ Recognize trade-offs (e.g., increasing LogP improves BBB but reduces solubility)

Domain Issues:

  • ❌ Applying to biologics → Completely inappropriate

    • ✅ These models for small molecules only; use specialized tools for biologics
  • ❌ Extrapolating beyond training set → Unreliable predictions

    • ✅ Check applicability domain; novel scaffolds need experimental validation

Workflow Issues:

  • ❌ No experimental validation → Continue with false leads

    • ✅ Always validate top predictions experimentally
  • ❌ Not documenting model versions → Irreproducible results

    • ✅ Record software version, model versions, prediction dates
Show full SKILL.md (1,020 more words)Show less

Troubleshooting

Problem: All predictions show "out of domain" warning

  • Symptoms: "Compound outside training set" for entire library
  • Causes: Library contains unusual chemotypes (peptidomimetics, macrocycles, etc.)
  • Solutions:
    • Use specialized models for non-traditional chemotypes
    • Check if input format correct (SMILES vs InChI)
    • Verify no strange atoms (metals, silicon, etc.)

Problem: Extreme predictions (negative solubility, >100% absorption)

  • Symptoms: "LogS = -15" or "HIA = 150%"
  • Causes: Model extrapolation errors; invalid input structures
  • Solutions:
    • Check input structure validity
    • Cap extreme values at physiologically plausible limits
    • Flag for manual review if outside typical ranges

Problem: Batch processing extremely slow

  • Symptoms: "100 compounds taking 30 minutes"
  • Causes: Single-threaded execution; complex models
  • Solutions:
    • Enable parallel processing (--n-workers 4)
    • Use faster models for initial screening (QSAR vs ML)
    • Pre-filter with rule-based methods (Lipinski) before detailed ADME

Problem: Inconsistent predictions across runs

  • Symptoms: "Same compound, different predictions on re-run"
  • Causes: Random seed issues; stochastic models
  • Solutions:
    • Set random seeds for reproducibility
    • Use deterministic models when consistency critical
    • Average multiple predictions if stochastic models necessary

Problem: Properties contradict each other

  • Symptoms: "High LogP (4.5) but predicted very soluble"
  • Causes: Model inconsistencies; prediction errors
  • Solutions:
    • Check input structure (tautomeric form matters for both)
    • Lipophilic compounds (LogP > 3) typically have poor solubility
    • Use thermodynamic cycle checks if available

Problem: Cannot process certain file formats

  • Symptoms: "Error: Unsupported format" for SDF or MOL files
  • Causes: Format limitations; parser issues
  • Solutions:
    • Convert to SMILES using chemical-structure-converter
    • Check file encoding (UTF-8 vs Latin-1)
    • Verify structure validity with external tools

References

Available in references/ directory:

  • lipinski_rules.md - Detailed explanation of Rule of 5 and variants
  • qsar_models.md - Technical documentation of predictive models
  • adme_databases.md - Experimental ADME data sources for validation
  • property_ranges.md - Acceptable ranges for marketed drugs by class
  • model_validation.md - Validation statistics and applicability domains
  • cheminformatics_basics.md - Introduction to molecular descriptors

Scripts

Located in scripts/ directory:

  • main.py - CLI interface for ADME prediction
  • adme_predictor.py - Core prediction engine
  • absorption.py - Absorption property models
  • distribution.py - Distribution property models
  • metabolism.py - Metabolism prediction models
  • excretion.py - Excretion and clearance models
  • druglikeness.py - QED, MPO, and other scoring functions
  • batch_processor.py - Library screening and parallel processing
  • validator.py - Input validation and applicability domain checking

Performance and Resources

Prediction Speed:

TaskTimeHardware
Single compound0.5-2 secCPU
100 compounds30-60 secCPU
1000 compounds5-10 minCPU
1000 compounds2-3 min4-core parallel
10,000 compounds30-60 min4-core parallel

System Requirements:

  • RAM: 4 GB minimum; 8 GB for large libraries (>10K compounds)
  • Storage: 100 MB for models and dependencies
  • CPU: Multi-core recommended for batch processing
  • No GPU required: All models CPU-based

Optimization Tips:

  • Process libraries in batches of 5000-10000
  • Use rule-based filters (Lipinski) before expensive ML predictions
  • Cache results to avoid re-prediction
  • Parallel processing scales nearly linearly up to 8 cores

Limitations

  • Small Molecules Only: Models trained on drugs with MW 100-800 Da; unreliable for larger compounds
  • pH 7.4 Assumption: Most models predict properties at physiological pH
  • Human-Specific: Predictions for human PK; animal models may differ
  • Healthy Subject Assumption: Does not account for disease states, drug interactions
  • Single Compound: Does not predict formulation effects, salt form impact
  • Static Models: Do not account for induction, inhibition, or time-dependent changes
  • Training Set Bias: Underperforms for novel scaffolds not in training data
  • Qualitative Only: For Go/No-Go decisions; not for precise quantitative predictions
  • No Toxicity: ADME only; use separate tools for safety assessment

Model Accuracy (Typical):

  • LogP: R² = 0.85-0.95 (very good)
  • Solubility: R² = 0.65-0.80 (moderate)
  • HIA: Accuracy = 75-85% (good)
  • BBB: Accuracy = 70-80% (moderate)
  • Metabolic stability: R² = 0.60-0.75 (moderate)
  • T1/2: R² = 0.50-0.65 (challenging)

Version History

  • v1.0.0 (Current): Initial release with 20+ ADME endpoints, QED scoring, batch processing
  • Planned: Integration with PK simulation, population variability modeling, formulation effects

⚠️ CRITICAL DISCLAIMER: These predictions are computational estimates for prioritization and guidance only. They do NOT replace experimental ADME studies required for regulatory submissions or clinical decision-making. Always validate predictions with appropriate in vitro and in vivo assays before advancing compounds.

Parameters

ParameterTypeDefaultDescription
--smilesstrRequiredSMILES string of the molecule
--propertiesstr["all"]Specific properties to calculate
--formatstr"json"Output format
--inputstrRequiredInput CSV file with SMILES column
--outputstrRequiredOutput file for results

Output Requirements

Every final response should make these items explicit when they are relevant:

  • Objective or requested deliverable
  • Inputs used and assumptions introduced
  • Workflow or decision path
  • Core result, recommendation, or artifact
  • Constraints, risks, caveats, or validation needs
  • Unresolved items and next-step checks

Error Handling

  • If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
  • If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment.
  • If scripts/main.py fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback.
  • Do not fabricate files, citations, data, search results, or execution outcomes.

Input Validation

This skill accepts requests that match the documented purpose of adme-property-predictor and include enough context to complete the workflow safely.

Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:

adme-property-predictor only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.

Response Template

Use the following fixed structure for non-trivial requests:

  1. Objective
  2. Inputs Received
  3. Assumptions
  4. Workflow
  5. Deliverable
  6. Risks and Limits
  7. Next Checks

If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.

Inputs to Collect

  • Required inputs: the user goal, the primary data or source file, and the requested output format.
  • Optional inputs: output directory, formatting preferences, and validation constraints.
  • If a required input is unavailable, return a short clarification request before continuing.

Output Contract

  • Return a short summary, the main deliverables, and any assumptions that materially affect interpretation.
  • If execution is partial, label what succeeded, what failed, and the next safe recovery step.
  • Keep the final answer within the documented scope of the skill.

Validation and Safety Rules

  • Validate identifiers, file paths, and user-provided parameters before execution.
  • Do not fabricate results, metrics, citations, or downstream conclusions.
  • Use safe fallback behavior when dependencies, credentials, or required inputs are missing.
  • Surface any execution failure with a concise diagnosis and recovery path.

© aipoch, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references) in scientific-skills/Data Analysis/adme-property-predictor of aipoch/medical-research-skills.

  • SKILL.md
  • adme-property-predictor_audit_result_v2.json
  • references/runtime_checklist.md
  • requirements.txt
  • scripts/main.py

Open the folder on GitHubat commit 686e09d

Compare with similar skills

Adme Property Predictor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Adme Property Predictor compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Adme Property Predictor this skillaipoch/medical-research-skills1.9k—~7kAutomated safety check: PassMIT
E2b Code Interpreteragent-sandbox/agent-sandbox218—~2.3kAutomated safety check: PassApache-2.0
Python Data AnalysisA-EVO-Lab/a-evolve809—~476Automated safety check: PassNone
Amazon Opensearch Serviceaws/agent-toolkit-for-aws2.8k—~2.4kAutomated safety check: PassApache-2.0
Asr Data Analysisfranklee16/academic-research-skills2231 repos~902Automated safety check: PassNone
Exploratory Data Analysisspacering-net/codeg3.9k14 repos~3.6kAutomated safety check: PassMIT

Similar skills

  • E2b Code Interpreter

    agent-sandbox/agent-sandbox

    Execute code in E2B sandboxes and integrate with LLMs for tool calling.

    218 GitHub stars~2.3k tokensUpdated 20 days ago
    AI & LLM EngineeringAuto-check passed
  • Python Data Analysis

    A-EVO-Lab/a-evolve

    Best practices for multi-step Python tasks including data analysis, HuggingFace datasets, token counting, and any task requiring state across multiple python() calls.

    809 GitHub stars~476 tokensUpdated 1 mo ago
    Data & AnalyticsAuto-check passed
  • Amazon Opensearch Service

    aws/agent-toolkit-for-aws

    Official

    Guides migration, provisioning, search, log-analytics, trace-analytics, and Agentic AI Assistant workflows for Amazon OpenSearch Service and Serverless across six capabilities — migration…

    2.8k GitHub stars~2.4k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Asr Data Analysis

    franklee16/academic-research-skills

    A skill your agent uses when executing and reporting the analysis for an American Sociological Review (ASR) manuscript so it survives expert masked review — honest uncertainty, robustness, and…

    223 GitHub starsUsed in 1 repo~902 tokens
    Data & AnalyticsAuto-check passed
  • Exploratory Data Analysis

    spacering-net/codeg

    Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats.

    3.9k GitHub starsUsed in 14 repos~3.6k tokens
    Data & AnalyticsAuto-check passed
  • Excel and CSV Data Analysis

    bytedance/deer-flow

    Analyzes uploaded Excel and CSV files with SQL through DuckDB, producing schema inspections, statistical summaries and exports to CSV, JSON or Markdown.

    84k GitHub starsUsed in 4 repos~2.2k tokens
    Data & AnalyticsAuto-check passed

More from aipoch/medical-research-skills

All 578 skills in this repo
  • Academic Poster Generator

    aipoch/medical-research-skills

    Complete workflow for generating academic research posters from PDF literature; use when you need to extract paper content from PDFs and produce a LaTeX-based poster…

    1.9k GitHub stars~2.2k tokensUpdated 23 days ago
    Auto-check passed
  • Diagnostic Study Quality Assessment Quadas

    aipoch/medical-research-skills

    Analyzes clinical diagnostic accuracy studies for bias using the QUADAS-2 tool.

    1.9k GitHub stars~1.4k tokensUpdated 23 days ago
    Auto-check passed
  • Exploratory Data Analysis

    aipoch/medical-research-skills

    Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats.

    1.9k GitHub stars~3.7k tokensUpdated 23 days ago
    Auto-check passed
  • Iso Certification

    aipoch/medical-research-skills

    A toolkit for preparing ISO 13485:2016 certification documentation for medical device QMS.

    1.9k GitHub stars~1.8k tokensUpdated 23 days ago
    Auto-check passed
  • Journal Skills

    aipoch/medical-research-skills

    Recommends target journals for manuscript submission by analyzing the paper topic/abstract and the journal distribution of similar PubMed literature; use when users ask for journal…

    1.9k GitHub stars~1.7k tokensUpdated 23 days ago
    Auto-check passed
  • Latex Posters

    aipoch/medical-research-skills

    Creates academic-poster writing packages for LaTeX using beamerposter, tikzposter, or baposter.

    1.9k GitHub stars~1.3k tokensUpdated 23 days ago
    Auto-check passed

Questions about Adme Property Predictor

What does Adme Property Predictor do?

Analyze data with adme-property-predictor using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation. Adme Property Predictor is an agent skill from aipoch/medical-research-skills. Analyze data with adme-property-predictor using a reproducible workflow, explicit validation, and structured outputs for review-ready interpretation.

When should I use Adme Property Predictor?

Adme Property Predictor fits situations like: tasks that involve Data analysis; tasks that involve Structured output and tool calling.

How do I install Adme Property Predictor in Claude Code?

Run `npx skills add aipoch/medical-research-skills --skill adme-property-predictor -a claude-code`. Or copy the skill folder (scientific-skills/Data Analysis/adme-property-predictor in aipoch/medical-research-skills) into .claude/skills/adme-property-predictor in your project. Claude Code loads it when a task matches its description.

How do I install Adme Property Predictor in Codex?

Run `npx skills add aipoch/medical-research-skills --skill adme-property-predictor -a codex`. Or copy the skill folder (scientific-skills/Data Analysis/adme-property-predictor in aipoch/medical-research-skills) into .agents/skills/adme-property-predictor in your project. Codex loads it when a task matches its description.

Can I use Adme Property Predictor in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aipoch/medical-research-skills --skill adme-property-predictor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/adme-property-predictor, .gemini/skills/adme-property-predictor, .github/skills/adme-property-predictor and .opencode/skills/adme-property-predictor in your project.

What does Adme Property Predictor need to run?

Going by SKILL.md and its folder, Adme Property Predictor needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.

Does Adme Property Predictor access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Adme Property Predictor safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Adme Property Predictor use?

Adme Property Predictor is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Adme Property Predictor use?

About 7k tokens (SKILL.md is roughly 28k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 136 tokens, read only when the agent opens those files.

What are the alternatives to Adme Property Predictor?

Skills that share tags, products or a category with Adme Property Predictor: E2b Code Interpreter (agent-sandbox/agent-sandbox, 218 stars), Python Data Analysis (A-EVO-Lab/a-evolve, 809 stars), Amazon Opensearch Service (aws/agent-toolkit-for-aws, 2.8k stars) and Asr Data Analysis (franklee16/academic-research-skills, 223 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Adme Property Predictor?

aipoch (a GitHub organization) maintains it in aipoch/medical-research-skills, which has 1,937 GitHub stars. The repository holds 578 skills in this directory. The repository was last updated on September 17, 2026.

Source: aipoch/medical-research-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.