This source did not publish a separate summary. Review SKILL.md before using the skill.
SKILL.md
Drug-Target Interaction Prediction
A skill for computational prediction of drug-target interactions (DTI), covering molecular docking, machine learning-based binding affinity prediction, compound library screening, and target identification using cheminformatics and structural biology tools.
Drug-Target Interaction Databases
Key Data Resources
Database
Content
Access
ChEMBL
2.4M compounds, 15M bioactivities
REST API, SQL dump
BindingDB
2.8M binding data points
Bulk download, REST API
DrugBank
15,000+ drug entries with targets
Academic license
PDB (Protein Data Bank)
220,000+ 3D structures
Free download, REST API
UniProt
250M+ protein sequences
Free, REST API
STITCH
Chemical-protein interactions
Free academic access
Fetching Bioactivity Data
from chembl_webresource_client.new_client import new_client
def get_target_bioactivities(target_chembl_id: str,
activity_type: str = "IC50",
max_nm: float = 10000) -> list[dict]:
"""
Retrieve bioactivity data for a protein target from ChEMBL.
Returns compounds with measured binding/inhibition values.
"""
activity = new_client.activity
results = activity.filter(
target_chembl_id=target_chembl_id,
standard_type=activity_type,
standard_relation="=",
standard_units="nM",
).only([
"molecule_chembl_id", "canonical_smiles",
"standard_value", "standard_type",
"pchembl_value", "assay_description",
])
filtered = []
for r in results:
if r.get("standard_value") and float(r["standard_value"]) <= max_nm:
filtered.append({
"molecule_id": r["molecule_chembl_id"],
"smiles": r["canonical_smiles"],
"activity_type": r["standard_type"],
"value_nM": float(r["standard_value"]),
"pchembl": float(r["pchembl_value"]) if r.get("pchembl_value") else None,
})
return filtered