PubMed-Datenbank
Verwenden Sie diese Fähigkeit, wenn eine Aufgabe biomedizinische Literatur aus PubMed benötigt und keine allgemeine Websuche.
Wann verwenden
- Durchsuchen von MEDLINE oder lebenswissenschaftlicher Literatur.
- Erstellen von PubMed-Abfragen mit MeSH-Begriffen, Feld-Tags, Daten oder Artikeltypen.
- Nachschlagen von PMIDs, Abstracts, Publikationsmetadaten oder verwandten Zitaten.
- Durchführen von systematischen Suchdurchläufen, die wiederholbare Suchstrings benötigen.
- Nutzung der NCBI E-Utilities direkt aus Python, der Shell oder einem anderen HTTP-Client.
Abfragekonstruktion
Beginnen Sie mit der Forschungsfrage, teilen Sie sie in Konzepte auf und kombinieren Sie diese dann mit booleschen Operatoren.
Konzept_1 UND Konzept_2 UND Filter
Synonym_a ODER Synonym_b
NICHT Ausschlussbegriff
Nützliche PubMed-Feld-Tags:
[ti]: Titel[ab]: Abstract[tiab]: Titel oder Abstract[au]: Autor[ta]: Zeitschriftentitel-Abkürzung[mh]: MeSH-Begriff[majr]: Haupt-MeSH-Thema[pt]: Publikationstyp[dp]: Veröffentlichungsdatum[la]: Sprache
Beispiele:
Diabetes mellitus[mh] UND Behandlung[tiab] UND systematische Übersicht[pt] UND 2023:2026[dp]
(Metformin[nm] ODER Insulin[nm]) UND Diabetes mellitus, Typ 2[mh] UND randomisierte kontrollierte Studie[pt]
Smith ja[au] UND Krebs[tiab] UND 2026[dp] UND english[la]
MeSH und Unterüberschriften
Bevorzugen Sie MeSH, wenn das Konzept einen stabilen kontrollierten Vokabularbegriff hat. Kombinieren Sie MeSH mit Begriffen aus Titel/Abstract, wenn das Thema neu ist oder die Terminologie variiert.
Die korrekte Syntax für Unterüberschriften setzt die Unterüberschrift vor das Feld-Tag:
Diabetes mellitus, Typ 2/Arzneimitteltherapie[mh]
Herz-Kreislauf-Erkrankungen/Prävention & Kontrolle[mh]
Verwenden Sie [majr] nur, wenn das Thema zentral für den Artikel sein muss. Dies kann die Präzision verbessern, aber möglicherweise relevante Arbeiten übersehen.
Filter
Publikationstypen:
klinische Studie[pt]Meta-Analyse[pt]randomisierte kontrollierte Studie[pt]Übersicht[pt]systematische Übersicht[pt]Leitlinie[pt]
Datumsfilter:
2026[dp]
2020:2026[dp]
2026/03/15[dp]
Verfügbarkeitsfilter:
freier Volltext[sb]
hatAbstract[text]
E-Utilities-Workflow
NCBI E-Utilities unterstützen wiederholbare API-Workflows:
esearch.fcgi: Suchen und PMIDs zurückgeben.esummary.fcgi: Leichte Artikel-Metadaten zurückgeben.efetch.fcgi: Abstracts oder vollständige Datensätze in XML, MEDLINE oder Text abrufen.elink.fcgi: Verwandte Artikel und verlinkte Ressourcen finden.
Verwenden Sie eine E-Mail-Adresse und einen API-Key für Produktionsskripte. Speichern Sie API-Keys in Umgebungsvariablen, niemals in committeten Dateien oder im Befehlsverlauf.
import os
import time
import requests
BASE = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils"
def esearch(query: str, retmax: int = 20) -> list[str]:
params = {
"db": "pubmed",
"term": query,
"retmode": "json",
"retmax": retmax,
"tool": "ecc-pubmed-search",
"email": os.environ.get("NCBI_EMAIL", ""),
}
api_key = os.environ.get("NCBI_API_KEY")
if api_key:
params["api_key"] = api_key
response = requests.get(f"{BASE}/esearch.fcgi", params=params, timeout=30)
response.raise_for_status()
time.sleep(0.35)
return response.json()["esearchresult"]["idlist"]
pmids = esearch("Hypertonie[mh] UND randomisierte kontrollierte Studie[pt] UND 2024:2026[dp]")
print(pmids)
Für Stapelverarbeitungen bevorzugen Sie die Parameter des NCBI-Verlaufsservers (usehistory=y, WebEnv, query_key) anstatt sehr langer PMID-Listen über URLs zu übergeben.
Ausgabedisziplin
Für jeden Suchdurchlauf notieren Sie:
- genauen Suchstring
- durchsuchte Datenbank
- Suchdatum
- verwendete Filter
- Anzahl der Ergebnisse
- Exportformat
- etwaige manuelle Ausschlüsse
Beispiel:
| Datenbank | Suchdatum | Abfrage | Filter | Ergebnisse |
| --- | --- | --- | --- | ---: |
| PubMed | 2026-05-11 | `Sichelzellenkrankheit[mh] UND CRISPR[tiab]` | 2020:2026[dp], Englisch | 42 |
Überprüfungs-Checkliste
- Sind die Feld-Tags gültige PubMed-Tags?
- Sind MeSH-Begriffe für neuere Themen mit Freitext-Synonymen kombiniert?
- Ist der Datumsbereich explizit und angemessen?
- Enthält das Suchprotokoll genügend Details, um die Abfrage zu reproduzieren?
- Werden API-Keys aus der Umgebung geladen?
- Ruft der HTTP-Code
raise_for_status()auf oder behandelt er auf andere Weise Nicht-200-Antworten vor dem Parsen? - Werden Rate-Limits eingehalten?