[ blog · tutorial ]11 min read

ClinicalTrials.gov v2 + openFDA + ChEMBL'i Lisans Açısından Temiz Bir İlaç İstihbaratı Endpoint'ine Bağlamak

Sarah ChoyYayımlanma tarihi: 3 Mayıs 202611 dk okuma
ClinicalTrials.gov v2 + openFDA + ChEMBL'i Lisans Açısından Temiz Bir İlaç İstihbaratı Endpoint'ine Bağlamak

İlaç Ar-Ge'si, tıbbi yapay zeka girişimleri ve farmakovijilans ekipleri aynı şeyi ister: araştırmaları, etiketleri, advers olayları ve biyoaktiviteyi lisans açısından temiz bir şekilde çeken tek bir endpoint. İşte üretimde ekipleri şaşırtan tuzak kapılarıyla birlikte çalışan mimari.

Özet

  • ClinicalTrials.gov v2 (REST + JSON) 2024'te eski v1'in yerini aldı — şema daha temiz, ama sayfalama, isteğe bağlı alanlar ve tarihsel kayma yeni entegrasyoncuları hazırlıksız yakalıyor.
  • openFDA ilaç etiketlerini (SPL), FAERS advers olay raporlarını ve geri çağırma verilerini ücretsiz kapsıyor; kimlik doğrulamasız 240 istek/dk, anahtarla 120 bin/gün ile sınırlı.
  • ChEMBL size biyoaktivite (IC50, Ki, Kd, EC50), hedefler ve tahliller sağlar — diğer veri tabanlarında eksik olan yapısal / mekanistik boyut.
  • DrugBank'in ticari lisansı asıl tuzaktır: akademik kullanıma izin verilir; herhangi bir ürün, küçük bir SaaS bile, çoğu geliştiricinin bir bildirim gelene kadar okumadığı ticari lisans şartlarına girer.
  • API Pick Clinical Search; ClinicalTrials'ı, openFDA'yı, ChEMBL'i ve DrugBank farmakolojisini tek bir POST endpoint'inde toplar — çağrı başına 30 kredi, lisans açısından temiz, yalnızca başarıda ücretlendirilir.

Sorunun şekli

Üç kitle, farklı nedenlerle, sonunda aşağı yukarı aynı ilaç verisi hattına ihtiyaç duyar:

  • Biyofarma Ar-Ge ve ilaç yeniden konumlandırma ekipleri bir adayı değerlendirmek için biyoaktivite verisini (ChEMBL), araştırma geçmişini (ClinicalTrials.gov) ve advers olay sinyallerini (FAERS) birlikte ister.
  • Tıbbi yapay zeka girişimleri, sohbet botları veya klinik karar desteği katmanları kuranlar, LLM yanıtlarını düzenleyici kaynaklara dayandırmak için ilaç etiketlerine (openFDA SPL) ve birleştirilmiş araştırma verilerine ihtiyaç duyar.
  • Farmakovijilans ekipleri sinyal makullüğünü değerlendirmek için FAERS'i, artı ilaç etiketi yapılandırılmış alanlarını, artı ChEMBL/DrugBank'ten mekanizma bilgisini ister.

Bu kitlelerin her biri sonunda dört veri tabanını birbirine bağlar: ClinicalTrials.gov, openFDA, ChEMBL ve DrugBank. Her veri tabanının kendi şeması, hız limitleri ve lisans şartları vardır. Isıran DrugBank'tir — ticari kullanım maddesi, lisansı okumadan geliştirme aşamasında entegre eden ekipleri yakalar ve küçük SaaS kurucularına bildirim gönderilmesi gerçek bir şeydir.

İşte önerdiğimiz mimari, DrugBank tuzağından kaçınan lisans açısından temiz bir alternatif yol dahil.

Dört kaynak, her biri için birer paragraf

ClinicalTrials.gov v2

US National Library of Medicine. ABD'de kayıtlı klinik araştırmalar için kesin kayıt defteri ve fiili küresel standart. v2 2024'te yayınlandı — REST + JSON, eski v1 CSV/XML'in yerine geçti. Ücretsiz, hız limitli (10 istek/sn). Dokümantasyon clinicaltrials.gov/data-api/api adresinde. Güçlü yönleri: yetkili, kapsamlı, lisans sorunu yok. Zayıf yönleri: eski çalışmalarda isteğe bağlı alanların seyrekliği, hâlâ v1'de olan ekipler için şema geçiş sürtünmesi.

openFDA

FDA tarafından işletilen kamuya açık API. İlaç etiketlerini (SPL — Structured Product Labels), FAERS'i (Adverse Event Reporting System), geri çağırma verilerini ve gıda/cihaz eşdeğerlerini kapsar. Ücretsiz, kimlik doğrulamasız 240 istek/dk ve bir API anahtarıyla 120.000 istek/gün ile sınırlı. Güçlü yönleri: yetkili düzenleyici kaynak, yapılandırılmış veri, geniş kapsam. Zayıf yönleri: SPL ayrıştırması HL7 kurallarını anlamayı gerektirir; FAERS tekilleştirmesi kullanıcının sorunudur.

ChEMBL

EBI / EMBL-EBI. Küratörlü biyoaktivite veri tabanı — bileşikler, hedefler ve tahliller genelinde IC50, Ki, Kd, EC50 ölçümleri. Ücretsiz, REST + JSON, orta hacimde hız limiti baş ağrısı yok. Güçlü yönleri: başka hiçbir şeyin kapsamadığı yapısal ve mekanistik veri. Zayıf yönleri: odak araştırma düzeyindedir; terapötik/klinik eşlemeler kısmidir.

DrugBank

University of Alberta kökenli, artık ticari. İlaç-hedef eşlemeleri, farmakoloji, ilaç-ilaç etkileşimleri, polifarmakoloji. Akademik kullanım ücretsizdir; ticari kullanım ücretli bir lisans gerektirir. Lisans, ücretsiz SaaS araçları dahil herhangi bir ticari ürün için geçerlidir — entegre etmeden önce şartları okuyun.

API Pick Clinical Search (lisans açısından temiz alternatif)

Lisansladığımız ClinicalTrials.gov, FDA ilaç etiketleri, ChEMBL biyoaktivitesi ve DrugBank farmakoloji meta verileri genelinde anlamsal arama. JSON girer / JSON çıkar, çağrı başına 30 kredi (~$0,03), yalnızca başarıda faturalandırma. Çıktı düzenleyici ve yapısal veri şartlarıyla tutarlıdır; son kullanıcılar için ticari lisans tuzağı yoktur.

Yan yana

Yazım anındaki anlık görüntü. Ticari entegrasyondan önce güncel hız limitlerini ve lisanslamayı doğrulayın.
ClinicalTrials.gov v2openFDAChEMBLDrugBankAPI Pick Clinical
KapsamAraştırma kayıt defteriEtiketler + FAERS + geri çağırmalarBiyoaktivite, hedefler, tahlillerİlaçlar + hedefler + etkileşimlerDördü de, anlamsal
BiçimREST + JSONREST + JSONREST + JSONREST + JSON / SQL dökümleriJSON, önceden biçimlenmiş parçacıklar
Hız limiti10 istek/snkimlik doğrulamasız 240/dk, anahtarla 120 bin/günCömertLisans katmanına bağlıÇağrı başına (kullanıcı başına yok)
LisansKamu malıKamu malıCC-BY-SAAkademik ücretsiz / ticari ücretliAPI Pick TOS
En iyi uyumAraştırma protokolleri, sponsor ayrıştırmaDüzenleyici etiketler, AO sinyalleriMekanistik / yapısalİlaç-ilaç etkileşimleri, polifarm.Hepsinin üzerinde yapay zeka ajanı getirme

Çalışan kod: her kaynak

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: ilaç etiketi + FAERS sinyali

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: hedef biyoaktivitesi

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}")

API Pick Clinical Search: tek çağrı, tüm kaynaklar

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.

Üretimde ortaya çıkan üç örüntü

1. İlaç yeniden konumlandırma taraması

Onaylı bir ilaç alın. Mekanizmasını (ChEMBL hedefleri), mevcut endikasyonlarını (openFDA etiketi) ve yeni endikasyonlarda onu test eden araştırmaları (ClinicalTrials.gov) çekin. Yeni endikasyondaki güvenlik sinyalleri için FAERS ile çapraz referans alın. Ajan dört parçanın hepsini bir araya getirir ve bir farmakoloğun zamanına değer adayları ortaya çıkarır.

2. Farmakovijilans sinyal triyajı

Saatlik bir cron, bir ilaç izleme listesi için yeni FAERS raporlarını çeker. Veri tabanının geri kalanına karşı Reporting Odds Ratio hesaplayın. ROR > 2 olup %95 GA'sı 1'i dışlayan herhangi bir sinyali işaretleyin. Kullanım endikasyonunun etiket içi mi yoksa etiket dışı mı olduğunu kontrol etmek için ClinicalTrials.gov ile eşleştirin. Çıktı: ekibin sabah incelemesi için önceliklendirilmiş bir liste — haberler için sabah brifingi örüntüsüne benzer.

3. Yapay zeka tıbbi asistanının dayanaklandırılması

Asistanın verdiği ilaçla ilgili herhangi bir yanıt için, openFDA etiketini çekin ve yetkili gerçek dayanak olarak kullanın. FDA etiket bölümünü açıkça alıntılayın. Etiket getirilemediğinde dozla ilgili soruları yanıtlamayı reddedin. Bu, Birleşik Krallık içtihat hukuku yazısındaki alıntıya dayalı dayanaklandırma örüntüsünün tıbba uygulanmış hâlidir — riskler daha da yüksek olarak.

DrugBank tuzağı

Yeniden vurgulamaya değer. DrugBank'in akademik lisansı iyi bilinir, ama şartları, verileri kullanan herhangi bir şey için birine para tahsil ettiğiniz anda değişir — kullanıcılarını daha sonra ücretliye dönüştürmeyi amaçladığınız ücretsiz bir ürün dahil. Birkaç küçük SaaS kurucusu, gelen kutularına bir bildirim düştükten sonra bunu zor yoldan keşfetti.

İki temiz yol:

  • Ticari lisansı ödeyin. Standart fiyatlandırma şeffaf değildir; pazarlık yapmayı bekleyin. Fon almış olgun ürünler için doğru cevap budur, çünkü DrugBank'in ilaç-ilaç etkileşim verisiyle boy ölçüşmek zordur.
  • Erken aşamalar için lisans açısından temiz alternatifler kullanın. ChEMBL mekanistik verinin çoğunu kapsar. RxNorm + DailyMed (NIH) ilaç adı normalleştirmesini ve etiketleri kapsar. FAERS advers olayları kapsar. Bu birleşim, DrugBank'e özgü bazı verileri (zengin etkileşim tabloları, polifarmakoloji) kaçırır ama çoğu erken aşama ürün için yeterlidir. API Pick Clinical Search lisans açısından temiz alt kümeyi sizin için sarmalar.

Bunun genelleştiği yer

'Dört kamuya açık veri tabanını hız limiti yönetimi ve lisans disipliniyle birbirine bağla' örüntüsü birçok düzenlemeye tabi dikeyde ortaya çıkar — finansal başvurular (SEC + kazanç dökümleri + hisse istatistikleri), patentler (USPTO + EPO + WIPO + JPO + KIPO + CNIPA), hukuk (Find Case Law + legislation.gov.uk + yabancı eşdeğerleri). İlaç verisi versiyonu, esas olarak lisans zemininin daha çekişmeli olması nedeniyle sıra dışıdır. Diğer her eksen — şema çeşitliliği, hız limitleri, tekilleştirme, kaynaklar arası tanımlayıcı eşleme — genelleşir.

Lisans açısından temiz ilaç verisi kaynakları genelinde tek çağrılık bilgi getirme için, API Pick Clinical Search bağlantı işini yapar. Daha derin entegrasyonlar için (tam SPL ayrıştırması, FAERS sinyal hesaplaması, ChEMBL hedef ağaçları) yine de her kaynağa doğrudan gidersiniz. Hattın her parçası için doğru soyutlama düzeyini seçin.

Sıkça Sorulan Sorular

ClinicalTrials.gov v2'de hatları bozan ne değişti?

Üç şey. (1) Endpoint yapısı — v2, v1'in CSV/XML'i yerine REST + JSON. (2) Alan adları — yeni protocolSection sarmalayıcısı ve snake_case'ten camelCase'e geçiş en yaygın yeniden düzenleme. (3) İsteğe bağlı alan doldurulması — 'mevcut' olarak belgelenen birçok alan, özellikle eski çalışmalarda seyrek doldurulmuştur. Geçiş genellikle 2-3 gün, artı sınır durum çalışmaları ortaya çıktıkça bir haftalık hata düzeltme sürer.

DrugBank lisanslamasının olayı ne?

DrugBank akademik ve kişisel araştırma için ücretsizdir. Herhangi bir ticari kullanım — ücretsiz bir SaaS ürünü, bir girişimin MVP'si veya ücretli bir danışmanlıkta kullanılan bir araç dahil — DrugBank'in ticari lisans şartlarına girer. Thinklab'in birkaç yıl önceki 'Sounding the alarm on DrugBank's new license' yazısı hâlâ konunun kanonik metnidir. Birçok geliştirici, bir ürünü yayınladıkları anda lisansın geçerli olacağını fark etmeden DrugBank'i geliştirme aşamasında entegre eder. Entegre etmeden önce şartları okuyun veya lisans açısından temiz bir alternatif kullanın.

Temel farmakovijilans sinyal tespitini nasıl yaparım?

Standart orantısızlık ölçümleri — Reporting Odds Ratio (ROR), Proportional Reporting Ratio (PRR), Bayesçi BCPNN — FAERS advers olay veri tabanı üzerinde. vigipy gibi açık kaynaklı kütüphaneler bunları uygular. Tuzak, FAERS tekilleştirmesidir: birçok rapor, aynı vakanın farklı taraflarca yapılmış mükerrer bildirimleridir; DSÖ'nün VigiMatch'i gibi kütüphaneler bunu ele alır ama bedelini ödersiniz. Çoğu tıbbi yapay zeka kullanım senaryosu için, openFDA'nın FAERS endpoint'i artı basit bir ROR hesabı, araştırmaya değer sinyalleri ortaya çıkarmak için yeterlidir.

API Pick Clinical Search HIPAA uyumlu mu?

Sardığımız veri kaynakları (ClinicalTrials.gov, openFDA, ChEMBL, DrugBank farmakoloji meta verileri) korunan sağlık bilgisi içermez — araştırma protokollerini, ilaç etiketlerini, advers olay toplamlarını ve yapısal/biyoaktivite verilerini kapsarlar. HIPAA uyumluluğu PHI için geçerlidir ve bu, dizinimizde bulunmaz. Eğer PHI ile ilgilenen bir alt ürün (örn. hasta kayıtları üzerinde klinik karar desteği) geliştiriyorsanız, bunu ayrıca ele almanız gerekecektir. Endpoint'imizden akan veriler kamuya açık düzenleyici verilerle tutarlıdır.

Bunun çıktısı klinik kararlar için kullanılabilir mi?

Hayır. Herhangi bir bilgi getirme API'sinin çıktısı bilgilendirme amaçlıdır; tıbbi tavsiye veya klinik karar desteği teşkil etmez. Verileri nitelikli personeli — bir eczacıyı, hekimi, düzenleyici uzmanı — desteklemek için kullanın, onların yerini almak için değil. Bu, API Pick Clinical Search için ve bu alandaki diğer tüm API'ler için geçerlidir.

Bu makalede kullanılan API'ler

Sarah Choy
Yazan
Sarah Choy
CEO, API Pick

Sarah Choy, API Pick'in CEO'sudur. Yapay zeka ajanları ve LLM iş akışları için üretime hazır API'ler geliştirme üzerine yazılar yazar.