[ blog · tutorial ]11 min read

ربط ClinicalTrials.gov v2 + openFDA + ChEMBL في نقطة نهاية واحدة لاستخبارات الأدوية نظيفة الترخيص

Sarah Choyنُشر في 3 مايو 2026قراءة 11 دقائق
ربط ClinicalTrials.gov v2 + openFDA + ChEMBL في نقطة نهاية واحدة لاستخبارات الأدوية نظيفة الترخيص

فِرَق البحث والتطوير في الأدوية، وشركات الذكاء الاصطناعي الطبية الناشئة، وفِرَق اليقظة الدوائية تريد جميعها الشيء نفسه: نقطة نهاية واحدة تسحب التجارب والملصقات والأحداث الضارة والفعالية الحيوية بطريقة نظيفة الترخيص. إليك المعمارية العاملة، مع الأبواب الخفيّة التي فاجأت الفِرَق في الإنتاج.

الخلاصة

  • ClinicalTrials.gov v2 (REST + JSON) استبدل النسخة v1 القديمة في 2024 — المخطّط أنظف لكن الترقيم، والحقول الاختياري، والانحراف التاريخي يوقع المتكاملين الجدد.
  • openFDA يغطّي ملصقات الأدوية (SPL)، وتقارير الأحداث الضارة FAERS، وبيانات السحب من السوق، مجانًا؛ محدود المعدّل بـ 240 req/min بلا مصادقة، و120k/day بمفتاح.
  • ChEMBL يمنحك الفعالية الحيوية (IC50, Ki, Kd, EC50)، والأهداف، والمقايسات — البُعد البنيوي/الآلية الذي تفتقر إليه قواعد البيانات الأخرى.
  • ترخيص DrugBank التجاري هو الفخّ: الاستخدام الأكاديمي مسموح؛ وأيّ منتج، حتى SaaS صغير، يقع تحت شروط الترخيص التجاري التي لا يقرؤها معظم البُناة حتى يصلهم إخطار قانوني.
  • API Pick Clinical Search يلفّ ClinicalTrials، وopenFDA، وChEMBL، وصيدلة DrugBank في نقطة نهاية POST واحدة — 30 رصيدًا للنداء، نظيف الترخيص، والدفع عند النجاح فقط.

شكل المشكلة

ثلاثة جماهير ينتهي بهم الأمر إلى الحاجة لخطّ بيانات الأدوية نفسه تقريبًا، لأسباب مختلفة:

  • فِرَق البحث والتطوير الحيوي الدوائي وإعادة توظيف الأدوية تريد بيانات الفعالية الحيوية (ChEMBL)، وتاريخ التجارب (ClinicalTrials.gov)، وإشارات الأحداث الضارة (FAERS) مدموجةً لتقييم مرشّح.
  • الشركات الناشئة في الذكاء الاصطناعي الطبي التي تبني روبوتات دردشة أو طبقات دعم القرار السريري تحتاج إلى ملصقات الأدوية (openFDA SPL) وبيانات التجارب مدموجةً لتأسيس إجابات نموذج اللغة على مصادر تنظيمية.
  • فِرَق اليقظة الدوائية تريد FAERS إضافةً إلى حقول ملصق الدواء المنظَّمة إضافةً إلى معلومات الآلية من ChEMBL/DrugBank لتقييم معقولية الإشارة.

كلّ من هذه الجماهير ينتهي بربط أربع قواعد بيانات معًا: ClinicalTrials.gov، وopenFDA، وChEMBL، وDrugBank. لكل قاعدة بيانات مخطّطها الخاص، وحدود معدّلها، وشروط ترخيصها. DrugBank هي التي تعضّ — فبند الاستخدام التجاري يوقع الفِرَق التي دمجتها أثناء التطوير دون قراءة الترخيص، وإرسال إخطار قانوني لمؤسّسي SaaS الصغار أمر حقيقي.

إليك المعمارية التي نوصي بها، بما في ذلك مسار بديل نظيف الترخيص يتجنّب فخّ DrugBank.

المصادر الأربعة، فقرة لكلٍّ منها

ClinicalTrials.gov v2

المكتبة الوطنية الأمريكية للطب. السجلّ القاطع للتجارب السريرية المسجَّلة أمريكيًا والمعيار العالمي الفعلي. أُطلِقت v2 في 2024 — REST + JSON، لتحلّ محلّ CSV/XML في v1 القديمة. مجانية، محدودة المعدّل (10 req/sec). التوثيق على clinicaltrials.gov/data-api/api. نقاط القوة: موثوقة، شاملة، بلا مشكلات ترخيص. نقاط الضعف: تفرّق الحقول الاختيارية للدراسات الأقدم، واحتكاك هجرة المخطّط للفِرَق التي ما زالت على v1.

openFDA

API عام تديره FDA. يغطّي ملصقات الأدوية (SPL — Structured Product Labels)، وFAERS (نظام الإبلاغ عن الأحداث الضارة)، وبيانات السحب من السوق، ومكافئات الأغذية/الأجهزة. مجاني، محدود المعدّل بـ 240 req/min بلا مصادقة و120,000 req/day بمفتاح API. نقاط القوة: مصدر تنظيمي موثوق، بيانات منظَّمة، تغطية واسعة. نقاط الضعف: تحليل SPL يتطلّب فهم اصطلاحات HL7؛ وإزالة التكرار في FAERS مشكلة المستخدم.

ChEMBL

EBI / EMBL-EBI. قاعدة بيانات فعالية حيوية مُنسَّقة — قياسات IC50, Ki, Kd, EC50 عبر المركّبات والأهداف والمقايسات. مجانية، REST + JSON، بلا صداع حدود معدّل عند الحجم المعتدل. نقاط القوة: بيانات بنيوية وآلية لا يغطّيها سواها. نقاط الضعف: التركيز بحثيّ الدرجة؛ والتعيينات العلاجية/السريرية جزئية.

DrugBank

نشأت من جامعة ألبرتا، وأصبحت الآن تجارية. تعيينات الدواء-الهدف، والصيدلة، وتفاعلات الدواء-الدواء، وتعدّد الأدوية. الاستخدام الأكاديمي مجاني؛ والاستخدام التجاري يتطلّب ترخيصًا مدفوعًا. ينطبق الترخيص على أيّ منتج تجاري، بما في ذلك أدوات SaaS المجانية — اقرأ الشروط قبل التكامل.

بحث دلالي عبر ClinicalTrials.gov، وملصقات أدوية FDA، وفعالية ChEMBL الحيوية، وبيانات صيدلة DrugBank الوصفية التي نرخّصها. JSON يدخل / JSON يخرج، 30 رصيدًا للنداء (نحو $0.03)، والفوترة عند النجاح فقط. الإخراج متّسق مع شروط البيانات التنظيمية والبنيوية؛ بلا فخّ ترخيص تجاري للمستخدمين النهائيين.

جنبًا إلى جنب

لقطة وقت الكتابة. تأكّد من حدود المعدّل والترخيص الحالية قبل التكامل التجاري.
ClinicalTrials.gov v2openFDAChEMBLDrugBankAPI Pick Clinical
التغطيةسجلّ التجاربالملصقات + FAERS + السحب من السوقالفعالية الحيوية، الأهداف، المقايساتالأدوية + الأهداف + التفاعلاتالأربعة جميعًا، دلاليًا
الصيغةREST + JSONREST + JSONREST + JSONREST + JSON / تفريغات SQLJSON، قصاصات مُشكَّلة مسبقًا
حدّ المعدّل10 req/sec240/min بلا مصادقة، 120k/day بمفتاحسخيّحسب طبقة الترخيصلكل نداء (لا لكل مستخدم)
الترخيصملكية عامةملكية عامةCC-BY-SAأكاديمي مجاني / تجاري مدفوعشروط خدمة API Pick
أفضل ملاءمةبروتوكولات التجارب، تمييز الرُّعاةالملصقات التنظيمية، إشارات الأحداث الضارةآليّ / بنيويتفاعلات الدواء-الدواء، تعدّد الأدويةاسترجاع لوكلاء الذكاء الاصطناعي على الكلّ

كود عامل: كل مصدر

ClinicalTrials.gov v2

import requests

# Trials for a specific condition + intervention
r = requests.get(
    "https://clinicaltrials.gov/api/v2/studies",
    params={
        "query.cond": "non-small cell lung cancer",
        "query.intr": "pembrolizumab",
        "filter.overallStatus": "RECRUITING",
        "pageSize": 25,
        "format": "json",
    },
)
studies = r.json()["studies"]
for s in studies[:3]:
    proto = s["protocolSection"]
    nct = proto["identificationModule"]["nctId"]
    title = proto["identificationModule"]["briefTitle"]
    sponsor = proto["sponsorCollaboratorsModule"]["leadSponsor"]["name"]
    print(f"{nct}: {title} (sponsor: {sponsor})")

openFDA: ملصق الدواء + إشارة FAERS

import requests
from collections import Counter

# Drug label lookup
r = requests.get(
    "https://api.fda.gov/drug/label.json",
    params={"search": "openfda.brand_name:Lipitor", "limit": 1},
).json()
label = r["results"][0]
print("Indications:", label.get("indications_and_usage", ["—"])[0][:200])

# FAERS — most reported adverse events for atorvastatin
r = requests.get(
    "https://api.fda.gov/drug/event.json",
    params={
        "search": 'patient.drug.medicinalproduct:"ATORVASTATIN CALCIUM"',
        "count": "patient.reaction.reactionmeddrapt.exact",
        "limit": 10,
    },
).json()
print("Top reported reactions:")
for r_ in r["results"]:
    print(f"  {r_['term']}: {r_['count']}")

ChEMBL: الفعالية الحيوية للهدف

import requests

# Target search → activity for a specific target
r = requests.get(
    "https://www.ebi.ac.uk/chembl/api/data/activity.json",
    params={
        "target_chembl_id": "CHEMBL204",      # PD-L1
        "standard_type": "IC50",
        "limit": 25,
    },
).json()
for a in r["activities"][:5]:
    cid = a["molecule_chembl_id"]
    val = a["standard_value"]
    unit = a["standard_units"]
    print(f"{cid}: IC50 = {val} {unit}")
import requests

r = requests.post(
    "https://www.apipick.com/api/search/clinical",
    headers={"x-api-key": "pk_yourkey"},
    json={"query": "PD-L1 inhibitors in NSCLC trials and adverse events"},
)
for hit in r.json()["results"][:5]:
    print(hit["title"], "→", hit["url"], f"(source: {hit.get('source')})")
# Returns ranked semantic matches across trials + labels + bioactivity.
# 30 credits per call, only on HTTP 200.

ثلاثة أنماط تظهر في الإنتاج

1. فحص إعادة توظيف الأدوية

خذ دواءً مُعتمَدًا. اسحب آليته (أهداف ChEMBL)، ودواعيه الحالية (ملصق openFDA)، وأيّ تجارب تختبره في دواعٍ جديدة (ClinicalTrials.gov). قارِنه مع FAERS بحثًا عن إشارات سلامة في الدواعي الجديدة. يجمع الوكيل القطع الأربع جميعها ويُظهِر المرشّحين الذين يستحقّون وقت عالِم صيدلة.

2. فرز إشارات اليقظة الدوائية

مهمّة cron كل ساعة تسحب تقارير FAERS الجديدة لقائمة مراقبة من الأدوية. احسب نسبة أرجحية الإبلاغ مقابل بقية قاعدة البيانات. علّم أيّ إشارات حيث ROR > 2 مع فاصل ثقة 95% يستثني 1. قارِنها مع ClinicalTrials.gov للتحقّق ممّا إذا كانت دواعي الاستخدام ضمن الملصق أو خارجه. أخرِج قائمة مرتّبة لمراجعة الفريق الصباحية — على غرار نمط الإيجاز الصباحي للأخبار.

3. تأسيس المساعد الطبي بالذكاء الاصطناعي

لأيّ إجابة متعلّقة بدواء يقدّمها المساعد، اسحب ملصق openFDA واستخدمه حقيقةً مرجعيةً موثوقة. استشهد بقسم ملصق FDA صراحةً. ارفض الإجابة عن الأسئلة المتعلّقة بالجرعة عندما لا يمكن استرجاع الملصق. هذا هو النمط المؤسَّس على الاستشهاد من تدوينة السوابق القضائية البريطانية مطبَّقًا على الطب — برهانات أعلى.

فخّ DrugBank

يستحقّ إعادة التأكيد. ترخيص DrugBank الأكاديمي معروف جيدًا لكن شروطه تتحوّل لحظة أن تتقاضى من أيّ أحد مالًا مقابل أيّ شيء يستخدم البيانات — بما في ذلك منتج مجاني تنوي تحويل مستخدميه إلى مدفوعين لاحقًا. اكتشف عدّة مؤسّسي SaaS صغار هذا بالطريقة الصعبة بعد أن وصل إخطار إلى صناديق بريدهم.

مساران نظيفان:

  • ادفع الترخيص التجاري. التسعير القياسي غامض؛ توقّع التفاوض. للمنتجات الناضجة المموَّلة هذا هو الجواب الصحيح لأن بيانات تفاعل الدواء-الدواء في DrugBank يصعب مضاهاتها.
  • استخدم بدائل نظيفة الترخيص للمراحل المبكّرة. ChEMBL يغطّي معظم البيانات الآلية. RxNorm + DailyMed (NIH) يغطّيان تطبيع أسماء الأدوية والملصقات. FAERS يغطّي الأحداث الضارة. تفوّت المجموعة بعض البيانات الخاصّة بـ DrugBank (جداول التفاعل الغنية، تعدّد الأدوية) لكنها تكفي لمعظم المنتجات المبكّرة. API Pick Clinical Search يلفّ المجموعة الفرعية نظيفة الترخيص نيابةً عنك.

أين يُعمَّم هذا

نمط 'اربط أربع قواعد بيانات عامة معًا مع معالجة حدود المعدّل وانضباط الترخيص' يظهر في كثير من العموديات المنظَّمة — الملفّات المالية (SEC + نصوص مكالمات الأرباح + إحصاءات الأسهم)، والبراءات (USPTO + EPO + WIPO + JPO + KIPO + CNIPA)، والقانون (Find Case Law + legislation.gov.uk + المكافئات الأجنبية). نسخة بيانات الأدوية غير اعتيادية أساسًا لأن الأساس الترخيصي أكثر إثارة للخلاف. كلّ محور آخر — تنوّع المخطّطات، وحدود المعدّل، وإزالة التكرار، وتعيين المعرّفات عبر المصادر — يُعمَّم.

للاسترجاع بنداء واحد عبر مصادر بيانات الأدوية نظيفة الترخيص، API Pick Clinical Search يقوم بالربط. وللتكاملات الأعمق (تحليل SPL الكامل، وحساب إشارة FAERS، وأشجار أهداف ChEMBL)، ما زلت تذهب إلى كل مصدر مباشرةً. اختر مستوى التجريد الصحيح لكل جزء من خطّ الأنابيب.

الأسئلة الشائعة

ما الذي تغيّر في ClinicalTrials.gov v2 ويكسر خطوط الأنابيب؟

ثلاثة أمور. (1) بنية نقطة النهاية — v2 هي REST + JSON بدلًا من CSV/XML في v1. (2) أسماء الحقول — غلاف protocolSection الجديد والتحوّل من snake_case إلى camelCase هما أشيع إعادة هيكلة. (3) تعبئة الحقول الاختيارية — كثير من الحقول الموثَّقة كـ 'متاحة' مُعبّأة بشكل متفرّق، خاصةً للدراسات الأقدم. تستغرق الهجرة عادةً 2-3 أيام إضافةً إلى أسبوع من إصلاح العلل مع ظهور دراسات الحالات الحدّية.

ما قصّة ترخيص DrugBank؟

DrugBank مجاني للبحث الأكاديمي والشخصي. أيّ استخدام تجاري — بما في ذلك منتج SaaS مجاني، أو MVP لشركة ناشئة، أو أداة مستخدمة في استشارات مدفوعة — يقع تحت شروط الترخيص التجاري لـ DrugBank. ما زالت تدوينة Thinklab 'Sounding the alarm on DrugBank's new license' من بضع سنوات هي المرجع القياسي. كثير من البُناة يدمجون DrugBank أثناء التطوير دون إدراك أن الترخيص يسري لحظة شحنهم لمنتج. اقرأ الشروط قبل التكامل، أو استخدم بديلًا نظيف الترخيص.

كيف أقوم بكشف إشارات اليقظة الدوائية الأساسي؟

مقاييس عدم التناسب القياسية — نسبة أرجحية الإبلاغ (ROR)، ونسبة الإبلاغ النسبية (PRR)، وBCPNN البايزي — على قاعدة بيانات الأحداث الضارة FAERS. مكتبات مفتوحة المصدر مثل vigipy تنفّذ هذه. الفخّ هو إزالة التكرار في FAERS: كثير من التقارير ملفّات مكرّرة للحالة نفسها من أطراف مختلفة؛ مكتبات مثل VigiMatch التابعة لمنظمة الصحة العالمية تتعامل مع هذا لكن بثمن. لمعظم حالات الذكاء الاصطناعي الطبي، نقطة نهاية FAERS من openFDA إضافةً إلى حساب ROR بسيط تكفي لإظهار الإشارات التي تستحقّ التحقيق.

هل API Pick Clinical Search متوافق مع HIPAA؟

مصادر البيانات التي نلفّها (ClinicalTrials.gov، وopenFDA، وChEMBL، وبيانات صيدلة DrugBank الوصفية) لا تحتوي على معلومات صحية محميّة — فهي تغطّي بروتوكولات التجارب، وملصقات الأدوية، وتجميعات الأحداث الضارة، والبيانات البنيوية/الفعالية الحيوية. الامتثال لـ HIPAA يسري على المعلومات الصحية المحميّة (PHI) التي لا تظهر في فهرسنا. إن كنت تبني منتجًا لاحقًا يتعامل مع PHI (مثل دعم القرار السريري على سجلّات المرضى)، فستحتاج إلى التعامل مع ذلك بشكل منفصل. البيانات التي تتدفّق عبر نقطة نهايتنا متّسقة مع بيانات التنظيم العامة.

هل يمكن استخدام الإخراج من هذا في القرارات السريرية؟

لا. الإخراج من أيّ API استرجاع هو معلوماتي؛ ولا يشكّل نصيحة طبية أو دعمًا للقرار السريري. استخدم البيانات لدعم الكوادر المؤهَّلة — صيدلي، طبيب، مختصّ تنظيمي — لا لاستبدالهم. ينطبق هذا على API Pick Clinical Search وعلى أيّ API آخر في هذا المجال.

الواجهات البرمجية المستخدمة في هذا المقال

Sarah Choy
بقلم
Sarah Choy
CEO, API Pick

سارة تشوي هي الرئيسة التنفيذية لشركة API Pick. تكتب عن بناء واجهات برمجية جاهزة للإنتاج لوكلاء الذكاء الاصطناعي وسير عمل نماذج اللغة.