Agent skill

Drug Screening Docking

by InternScience in InternScience/scp

Comprehensive drug screening pipeline from molecular filtering through QED/ADMET criteria to protein-ligand docking, identifying promising drug candidates.

MITAuto-check passedResearch & Science

Install Drug Screening Docking

skills CLI
$ npx skills add InternScience/scp --skill drug-screening-docking -a claude-code

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

GitHub CLI
$ gh skill install InternScience/scp drug-screening-docking --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/InternScience/scp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/drug-screening-docking .claude/skills/drug-screening-docking && 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
drug-screening-docking
GitHub stars
169
Used in
1 other repo
Token cost
~2k tokens
SKILL.md length
274 words
Files
1
Skills in repo
73
Repo updated
First seen
Licence
MIT

At a glance

Comprehensive drug screening pipeline from molecular filtering through QED/ADMET criteria to protein-ligand docking, identifying promising drug candidates.

  • Works in 2 steps: MCP Server Definition → Drug Screening and Docking Workflow
  • Tasks that involve Drug discovery and cheminformatics
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Tasks that involve Protein structure and design

What it does

Drug Screening Docking is an agent skill from InternScience/scp. Comprehensive drug screening pipeline from molecular filtering through QED/ADMET criteria to protein-ligand docking, identifying promising drug candidates.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Research & Science, covering Drug discovery and cheminformatics and Protein structure and design. The licence is MIT.

When your agent uses it

  • Tasks that involve Drug discovery and cheminformatics
  • Tasks that involve Protein structure and design

Example prompts

  • “/drug-screening-docking”

Requirements

  • Python 3

Workflow steps

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

  1. MCP Server Definition
  2. Drug Screening and Docking Workflow

What it can do on your machine

Read from SKILL.md and the folder at commit cea5398. 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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are 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

Drug Screening Docking loads about 2k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 274 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~45
When it runs · the whole SKILL.md, loaded when a task matches
~2k

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from InternScience/scp at commit cea5398, republished under its MIT licence (© InternScience). 274 words, ~1,966 tokens.

Download SKILL.mdSave it as .claude/skills/drug-screening-docking/SKILL.md (or your agent's skills folder).
name
drug-screening-docking
description
Comprehensive drug screening pipeline from molecular filtering through QED/ADMET criteria to protein-ligand docking, identifying promising drug candidates.
license
MIT license
metadata.skill-author
PJLab

Drug Screening and Molecular Docking Workflow

Usage

1. MCP Server Definition
python
import json
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession

class DrugSDAClient:
    def __init__(self, server_url: str):
        self.server_url = server_url
        self.session = None

    async def connect(self):
        print(f"server url: {self.server_url}")
        try:
            self.transport = streamablehttp_client(
                url=self.server_url,
                headers={"SCP-HUB-API-KEY": "<your-api-key>"}
            )
            self.read, self.write, self.get_session_id = await self.transport.__aenter__()

            self.session_ctx = ClientSession(self.read, self.write)
            self.session = await self.session_ctx.__aenter__()

            await self.session.initialize()
            session_id = self.get_session_id()

            print(f"✓ connect success")
            return True

        except Exception as e:
            print(f"✗ connect failure: {e}")
            import traceback
            traceback.print_exc()
            return False

    async def disconnect(self):
        try:
            if self.session:
                await self.session_ctx.__aexit__(None, None, None)
            if hasattr(self, 'transport'):
                await self.transport.__aexit__(None, None, None)
            print("✓ already disconnect")
        except Exception as e:
            print(f"✗ disconnect error: {e}")

    def parse_result(self, result):
        try:
            if hasattr(result, 'content') and result.content:
                content = result.content[0]
                if hasattr(content, 'text'):
                    return json.loads(content.text)
            return str(result)
        except Exception as e:
            return {"error": f"parse error: {e}", "raw": str(result)}
2. Drug Screening and Docking Workflow

This workflow screens candidate molecules using drug-likeness and ADMET criteria, then performs molecular docking with a target protein to identify promising drug candidates.

Workflow Steps:

  1. Calculate QED Scores - Assess drug-likeness using Quantitative Estimate of Drug-likeness
  2. Predict ADMET Properties - Calculate LD50 toxicity prediction
  3. Filter Molecules - Apply criteria (QED ≥ 0.6 and LD50 ≥ 3.0)
  4. Retrieve Protein Structure - Download target protein from RCSB PDB
  5. Extract Main Chain - Isolate primary protein chain
  6. Fix Protein Structure - Repair PDB file using PDBFixer
  7. Identify Binding Pocket - Locate binding site using Fpocket
  8. Convert Ligand Format - Convert SMILES to PDBQT format
  9. Convert Protein Format - Convert protein PDB to PDBQT
  10. Perform Molecular Docking - Dock ligands and calculate binding affinity
  11. Filter by Affinity - Select molecules with affinity ≤ -7.0 kcal/mol

Implementation:

python
## Initialize clients for both Tool and Model servers
tool_client = DrugSDAClient("https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool")
model_client = DrugSDAClient("https://scp.intern-ai.org.cn/api/v1/mcp/3/DrugSDA-Model")

if not await tool_client.connect() or not await model_client.connect():
    print("connection failed")
    return

## Input: List of candidate SMILES strings
smiles_list = ['O=C(Nc1cccc2c1CCCC2)N1CCc2c([nH]c3ccccc23)C1c1cccc(F)c1F', ...]

## Step 1: Calculate QED scores
result = await tool_client.session.call_tool(
    "calculate_mol_drug_chemistry",
    arguments={"smiles_list": smiles_list}
)
QED_result = tool_client.parse_result(result)["metrics"]

## Step 2: Predict ADMET properties (LD50)
result = await model_client.session.call_tool(
    "pred_molecule_admet",
    arguments={"smiles_list": smiles_list}
)
LD50_result = model_client.parse_result(result)["admet_preds"]

## Step 3: Filter molecules by QED and LD50 criteria
select_smiles_list = []
for i in range(len(smiles_list)):
    QED = QED_result[i]["qed"]
    LD50 = LD50_result[i]["LD50_Zhu"]
    if QED >= 0.6 and LD50 >= 3.0:
        select_smiles_list.append(smiles_list[i])

## Step 4: Retrieve protein structure by PDB code
pdb_code = "6vkv"
result = await tool_client.session.call_tool(
    "retrieve_protein_data_by_pdbcode",
    arguments={"pdb_code": pdb_code}
)
pdb_path = tool_client.parse_result(result)["pdb_path"]

## Step 5: Extract main chain
result = await tool_client.session.call_tool(
    "save_main_chain_pdb",
    arguments={"pdb_file": pdb_path, "main_chain_id": ""}
)
pdb_path = tool_client.parse_result(result)["out_file"]

## Step 6: Fix PDB file for docking
result = await tool_client.session.call_tool(
    "fix_pdb_dock",
    arguments={"pdb_file_path": pdb_path}
)
pdb_path = tool_client.parse_result(result)["fix_pdb_file_path"]

## Step 7: Identify binding pocket
result = await model_client.session.call_tool(
    "run_fpocket",
    arguments={"pdb_path": pdb_path}
)
best_pocket = tool_client.parse_result(result)["pockets"][0]

## Step 8: Convert SMILES to PDBQT format
result = await tool_client.session.call_tool(
    "convert_smiles_to_other_format",
    arguments={"inputs": select_smiles_list, "target_format": "pdbqt"}
)
ligand_paths = [x["output_file"] for x in tool_client.parse_result(result)["convert_results"]]

## Step 9: Convert protein PDB to PDBQT
result = await tool_client.session.call_tool(
    "convert_pdb_to_pdbqt_dock",
    arguments={"input_pdb_path": pdb_path}
)
receptor_path = tool_client.parse_result(result)["output_file"]

## Step 10: Perform molecular docking
result = await model_client.session.call_tool(
    "quick_molecule_docking",
    arguments={
        "receptor_path": receptor_path,
        "ligand_paths": ligand_paths,
        "center_x": best_pocket["center_x"],
        "center_y": best_pocket["center_y"],
        "center_z": best_pocket["center_z"],
        "size_x": best_pocket["size_x"],
        "size_y": best_pocket["size_y"],
        "size_z": best_pocket["size_z"]
    }
)
docking_results = model_client.parse_result(result)["docking_results"]

## Step 11: Filter by binding affinity
final_smiles_list = []
for item in docking_results:
    if item['affinity'] <= -7.0:
        final_smiles_list.append(select_smiles_list[item['index']])

print(f"Final candidates: {final_smiles_list}")

await tool_client.disconnect()
await model_client.disconnect()
Tool Descriptions

DrugSDA-Tool Server Tools:

  • calculate_mol_drug_chemistry: Compute QED score and Lipinski's Rule of Five violations
  • retrieve_protein_data_by_pdbcode: Download protein structure from RCSB PDB
  • save_main_chain_pdb: Extract main protein chain
  • fix_pdb_dock: Repair PDB file using PDBFixer
  • convert_smiles_to_other_format: Convert SMILES to various formats (PDBQT, SDF, etc.)
  • convert_pdb_to_pdbqt_dock: Convert PDB to PDBQT format for docking

DrugSDA-Model Server Tools:

  • pred_molecule_admet: Predict ADMET properties including LD50 toxicity
  • run_fpocket: Identify protein binding pockets
  • quick_molecule_docking: Perform AutoDock Vina molecular docking
Input/Output

Input:

  • smiles_list: List of SMILES strings representing candidate molecules
  • pdb_code: PDB code of target protein structure

Output:

  • final_smiles_list: SMILES strings of molecules with QED ≥ 0.6, LD50 ≥ 3.0, and binding affinity ≤ -7.0 kcal/mol
Filtering Criteria
  • QED Threshold: ≥ 0.6 (drug-likeness)
  • LD50 Threshold: ≥ 3.0 (toxicity)
  • Affinity Threshold: ≤ -7.0 kcal/mol (binding strength)

Adjust these thresholds based on your specific requirements.

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

Files

Just SKILL.md in skills/drug-screening-docking of InternScience/scp.

Open the folder on GitHubat commit cea5398

Used in 2 other repositories

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in InternScience/scp, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Drug Screening Docking 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.

Drug Screening Docking compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Drug Screening Docking this skillInternScience/scp1691 repos~2kAutomated safety check: PassMIT
DiffDock Molecular DockingK-Dense-AI/scientific-agent-skills48k1 repos~3kAutomated safety check: NotesMIT
Biopipelineslocbp-uzh/biopipelines109—~2.4kAutomated safety check: PassMIT
Pdb Databasedavila7/claude-code-templates32k9 repos~2.3kAutomated safety check: PassMIT
Tooluniverseynulihao/AgentSkillOS6172 repos~2.5kAutomated safety check: PassNone
Chai1JimLiu/science-skills2274 repos~1.2kAutomated safety check: PassApache-2.0

Similar skills

  • DiffDock Molecular Docking

    K-Dense-AI/scientific-agent-skills

    Predicts how small molecules bind to a protein with DiffDock, covering batch docking, pose ranking by confidence and checks on the results; not for binding affinity.

    48k GitHub starsUsed in 1 repo~3k tokens
    Research & ScienceAuto-check: notes
  • Biopipelines

    locbp-uzh/biopipelines

    Design and run computational protein and ligand workflows on a GPU: binder and enzyme design, de novo backbone generation, inverse folding and sequence redesign, structure prediction, protein-ligand…

    109 GitHub stars~2.4k tokensUpdated 8 days ago
    Research & ScienceAuto-check passed
  • Pdb Database

    davila7/claude-code-templates

    Access RCSB PDB for 3D protein/nucleic acid structures. An agent skill from davila7/claude-code-templates.

    32k GitHub starsUsed in 9 repos~2.3k tokens
    Research & ScienceAuto-check passed
  • Tooluniverse

    ynulihao/AgentSkillOS

    A skill your agent uses when working with scientific research tools and workflows across bioinformatics, cheminformatics, genomics, structural biology, proteomics, and drug discovery.

    617 GitHub starsUsed in 2 repos~2.5k tokens
    Research & ScienceAuto-check passed
  • Chai1

    JimLiu/science-skills

    Structure prediction for protein, nucleic-acid, and small-molecule complexes with the Chai-1 foundation model (Chai Discovery 2024, github.com/chaidiscovery/chai-lab).

    227 GitHub starsUsed in 4 repos~1.2k tokens
    Research & ScienceAuto-check passed
  • Mdanalysis Trajectory

    jaechang-hits/SciAgent-Skills

    Analyze MD trajectories from GROMACS, AMBER, NAMD, CHARMM, LAMMPS.

    371 GitHub starsUsed in 1 repo~3.6k tokens
    Research & ScienceAuto-check passed

More from InternScience/scp

All 73 skills in this repo
  • Given an rsID, query multiple databases (dbSNP, FAVOR, GWAS Catalog, ClinVar, gnomAD, PharmGKB, ClinGen) for comprehensive annotation.

    169 GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed
  • Calculate atmospheric parameters including Coriolis parameter, geostrophic wind, heat index, potential temperature, and dewpoint for meteorology and climate science.

    169 GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed
  • Biomedical Web Search

    InternScience/scp

    Search biomedical literature and web content using Tavily search engine for research and clinical information.

    169 GitHub starsUsed in 1 repo~598 tokens
    Auto-check passed
  • Calculate buoyancy forces and acceleration for fluid mechanics and hydrodynamics analysis.

    169 GitHub starsUsed in 1 repo~540 tokens
    Auto-check passed
  • Capacitance Calculation

    InternScience/scp

    Calculate electrical capacitance from geometric parameters and dielectric properties for circuit design.

    169 GitHub starsUsed in 1 repo~537 tokens
    Auto-check passed
  • Chembl Molecule Search

    InternScience/scp

    Search ChEMBL database for molecule information by name to retrieve bioactivity data and chemical structures.

    169 GitHub starsUsed in 1 repo~757 tokens
    Auto-check passed

Questions about Drug Screening Docking

What does Drug Screening Docking do?

Comprehensive drug screening pipeline from molecular filtering through QED/ADMET criteria to protein-ligand docking, identifying promising drug candidates. Drug Screening Docking is an agent skill from InternScience/scp. Comprehensive drug screening pipeline from molecular filtering through QED/ADMET criteria to protein-ligand docking, identifying promising drug candidates.

When should I use Drug Screening Docking?

Drug Screening Docking fits situations like: tasks that involve Drug discovery and cheminformatics; tasks that involve Protein structure and design.

How do I install Drug Screening Docking in Claude Code?

Run `npx skills add InternScience/scp --skill drug-screening-docking -a claude-code`. Or copy the skill folder (skills/drug-screening-docking in InternScience/scp) into .claude/skills/drug-screening-docking in your project. Claude Code loads it when a task matches its description.

How do I install Drug Screening Docking in Codex?

Run `npx skills add InternScience/scp --skill drug-screening-docking -a codex`. Or copy the skill folder (skills/drug-screening-docking in InternScience/scp) into .agents/skills/drug-screening-docking in your project. Codex loads it when a task matches its description.

Can I use Drug Screening Docking 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 InternScience/scp --skill drug-screening-docking -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/drug-screening-docking, .gemini/skills/drug-screening-docking, .github/skills/drug-screening-docking and .opencode/skills/drug-screening-docking in your project.

What does Drug Screening Docking need to run?

SKILL.md names no scripts, command-line tools or credentials: Drug Screening Docking is instructions for the agent only. Our summary lists: Python 3.

Does Drug Screening Docking 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 Drug Screening Docking 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. Review the folder before installing.

What licence does Drug Screening Docking use?

Drug Screening Docking 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 Drug Screening Docking use?

About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Drug Screening Docking?

Skills that share tags, products or a category with Drug Screening Docking: DiffDock Molecular Docking (K-Dense-AI/scientific-agent-skills, 48k stars), Biopipelines (locbp-uzh/biopipelines, 109 stars), Pdb Database (davila7/claude-code-templates, 32k stars) and Tooluniverse (ynulihao/AgentSkillOS, 617 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Drug Screening Docking?

InternScience (a GitHub organization) maintains it in InternScience/scp, which has 169 GitHub stars. The repository holds 73 skills in this directory. The repository was last updated on June 3, 2026.

Source: InternScience/scp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.