Systematische Literaturübersicht in der Bioinformatik
Zweck
Transformiere eine rohe englische Forschungspublikation (PDF) in einen Satz standardisierter, hochwertiger chinesischer Überblicksmaterialien: Word-Tiefenlesebericht mit jeder Hauptabbildung eingebettet und erklärt, PPT-Folien für die Weitergabe und optional einen populärwissenschaftlichen Artikel. Entwickelt für Bioinformatik-Forscher, die eine reproduzierbare, tiefgehende Literaturinterpretation benötigen.
Wann verwenden
Auslösen, wenn der Benutzer eine wissenschaftliche PDF-Publikation bereitstellt (oder bittet, eine bestimmte Arbeit zu überprüfen) und eines der folgenden wünscht:
- Word-Tiefenlesebericht (10-teilige strukturierte Analyse)
- Abbildungsextraktion — jede Hauptabbildung aus dem PDF als Bild extrahieren und einzeln erklären
- PPT-Material für Gruppenbesprechungen
- Populärwissenschaftlicher Artikel für den WeChat Official Account
- Alle oben genannten (vollständige Pipeline)
Typische Benutzerphrasen:
- "解读这篇论文" / "解析这篇文章"
- "帮我做个文献精读"
- "把每张主图提取出来讲解" / "每张Figure都要配图解读"
- "生成Word解读 + PPT"
- "整理成科普文章"
Voraussetzungen
Python-Umgebung
Jedes Python >= 3.9 funktioniert. Verwende den Interpreter, der mit der Agentenlaufzeit ausgeliefert wird, oder deine eigene virtualenv.
Installiere die Abhängigkeiten (einmalig):
pip install pdfplumber pymupdf python-docx python-pptx
Wenn PyPI langsam ist (häufig in Festlandchina), verwende einen heimischen Spiegel:
pip install pymupdf -i https://mirrors.cloud.tencent.com/pypi/simple
pymupdf(PyMuPDF) wird für die Abbildungsextraktion benötigt — es bietet sowohl Seitenrendering als auch Text-/Grafikinspektion auf Koordinatenebene.pdfplumberwird für die Text-Extraktion verwendet.python-docx/python-pptxgenerieren die Ausgaben.
Projektstruktur-Konvention
Jede Arbeit erhält einen unabhängigen Ordner unter dem Workspace-Stammverzeichnis:
NN_YYYY-Journal-Thema/
Original_Paper.pdf
Journal_YYYY_Thema_LiteratureReview.docx
Journal_YYYY_Thema_ArticleSharing.pptx
full_text.txt (extrahierter Text, Zwischenschritt)
figures/ (extrahierte Hauptabbildungen als PNG, Zwischenschritt)
fig1.png, fig2.png, ...
captions.json (Abbildungsnummer -> Beschriftung/Seite/BBox-Manifest)
Thema_PopularScience.html (optional, für WeChat OA)
NN: null-padded Sequenznummer (01, 02, 03...)YYYY: VeröffentlichungsjahrJournal: abgekürzter Zeitschriftenname (Nature, Cell, Science...)Thema: kurze chinesische Themenbeschreibung
Workflow
Schritt 1: Einrichtung & PDF-Text-Extraktion
- Erstelle einen Ausgabeordner gemäß der obigen Namenskonvention
- Kopiere die Quell-PDF in den neuen Ordner
- Führe
scripts/extract_pdf_text.pyaus, um den vollständigen Text zu extrahieren:Dies erzeugtpython scripts/extract_pdf_text.py "<pdf_path>" "<output_txt_path>"full_text.txtmit seitengetrenntem extrahiertem Text.
Schritt 2: Extrahiere Hauptabbildungen aus dem PDF
Führe scripts/extract_figures.py aus, um jede Hauptabbildung als
hochauflösendes PNG (Standard 300 DPI) zu extrahieren:
python scripts/extract_figures.py "<pdf_path>" --out "<paper_folder>/figures" --dpi 300
- Füge
--include-edhinzu, um auch Extended Data / Supplementary-Abbildungen zu extrahieren. - Das Skript lokalisiert Beschriftungen ("Fig. 1", "Figure 1", "图1"), bestimmt die Spaltenbreite, vereinigt die Grafiken oberhalb der Beschriftung und rendert die Region.
- Layout-Varianten bereits behandelt (getestet mit Nature / Cancer Cell PDFs):
- Beschriftung unterhalb der Grafik (am häufigsten);
- Beschriftung neben der Grafik (Beschriftung am Spaltenanfang, Abbildung in der anderen Spalte);
- Beschriftung oberhalb der Grafik;
- Cell Press "Legende auf nächster Seite": Grafik auf Seite N-1, Beschriftung am
Anfang von Seite N — das Skript erkennt, dass sich keine Grafiken über der Beschriftung
befinden, und rendert automatisch die Grafik der vorherigen Seite (
status: prev-page). - Journal-Banner: Der ganzseitige Cell Press / Cancer Cell Farbbalken am
Seitenanfang wird herausgefiltert (
status: abovesollte ihn nie enthalten).
- Wenn eine Abbildung immer noch einen Header enthält, erhöhe
--header-frac(z. B.0.13für Cancer Cell / Cell Genomics, Standard0.055für Nature). - Schutz vor Absorption von Fließtext: Im Modus "Beschriftung neben der Grafik" kann eine
Abbildung in den darunter fließenden Textabsatz übergehen. Textblöcke werden nur absorbiert,
wenn sie kompakt sind (geringe Höhe oder schmale Breite) und ≤ 4 Zeilen, und im Modus
besidenur, wenn sie auf oder oberhalb der Unterkante der Grafik beginnen. Wenn eine Abbildung immer noch mit einem Textabsatz endet, ist dies die Regel, die zu verschärfen ist. - Ausgabe:
figures/figN.png+figures/captions.json(Beschriftungstext, Seite, Beschriftungsseite, Bbox, Extraktionsstatus pro Abbildung). - Überprüfe die extrahierten PNGs immer, indem du sie anzeigst (ViewImage): überprüfe jedes
Bild auf Vollständigkeit (alle Panels, nicht beschnitten, kein Fließtext eingemischt). Wenn eine
Abbildung falsch beschnitten ist, rendere diese Region manuell mit PyMuPDF
und verwende die Bbox aus
captions.jsonals Ausgangspunkt. Bette KEIN beschädigtes Bild stillschweigend ein.
Schritt 3: Tiefenlesen der Arbeit
Lies den extrahierten Text in Abschnitten (200 Zeilen pro Lesedurchgang). Für JEDE Hauptabbildung zeige auch das extrahierte PNG an, um Panels und Layout zu verstehen. Konzentriere dich auf die Extraktion von:
- Titel, Autoren, Zeitschrift, DOI, Veröffentlichungsdatum
- Zusammenfassung und wichtigste Erkenntnisse
- Alle Abbildungen (Nummer, Titel, Panels, was jede zeigt) — vergleiche die
Beschriftung in
captions.jsonmit dem tatsächlichen Bild - Methoden (Sequenzierungsplattformen, Software-Tools, Algorithmen, Parameter)
- Probeninformationen (Kohortengröße, Gewebetypen, Sequenzierungsarten)
- Wichtigste Ergebnisse und statistische Signifikanz
- Vom Autor erwähnte Einschränkungen
Schritt 4: Generiere Word-Tiefenlesebericht
Befolge die 10-teilige Struktur, die in references/word_structure.md definiert ist.
Verwende scripts/generate_word_report.py als Vorlage. Kopiere es in den Arbeitsordner
(z. B. generate_word_report.py), ersetze den CONTENT-Block mit der tatsächlichen
Analyse und führe es mit dem Ausgabepfad aus:
python generate_word_report.py "<paper_folder>/Journal_YYYY_Thema_LiteratureReview.docx"
Das Skript demonstriert:
- python-docx-Dokumenterstellung mit formatierten Überschriften
- Tabellenformatierung für grundlegende Informationen und Terminologie
- Aufzählungslisten für Analyse-Pipelines
- Farbige Hervorhebungsboxen für wichtigste Erkenntnisse
add_figure_block(): Bettet jedes extrahierte Abbildungs-PNG + Beschriftung + 4-teilige Analyse ein (Forschungsfrage / Methode / Schlüsselergebnisse / Interpretation)
Abschnitt 7 (Hauptforschungsinhalt) MUSS die extrahierten Abbildungsbilder
(figures/figN.png) enthalten — ein Bild pro Abbildung, jeweils gefolgt von seiner
Analyse pro Abbildung. Bildpfade und Beschriftungen stammen aus figures/ und captions.json.
Wichtige Formatierungsregeln:
- Überschriften verwenden die Stile Heading 1/2/3 mit benutzerdefinierter Formatierung
- Tabellen verwenden "Light Grid Accent 1" plus eine explizite dunkle Kopfzeilenfüllung
(
shade_cell(cell, "1A3A5C")) — der integrierte Stil lässt die Kopfzeile unfüllt, wenn weißer Text angewendet wird, was die Kopfzeile in Word unsichtbar macht - Abbildungen werden auf Breite 15,5 cm mit einer maximalen Höhe von ~18,5 cm skaliert (seitenverhältnistreu, über PIL). Ein hochformatiges 4-Panel-Manhattan-Diagramm mit voller Seitenbreite (21+ cm hoch) überläuft die Seite und wird unten abgeschnitten — begrenze die Höhe immer
- Tabellen länger als eine Seite:
keep_rows_together(table)markiert die Kopfzeile alsw:tblHeader(wiederholt sich auf jeder Seite) und jede Zeile alsw:cantSplit, so dass eine Tabelle niemals mitten in der Zeile umbricht oder ihre Kopfzeile verliert - Fachbegriffe behalten die englische Abkürzung, gefolgt von der chinesischen Erklärung
- Keine Datenfabrikation: unsichere Elemente mit "需确认" markieren
- Überprüfe die Ausgabe, indem du sie als PDF exportierst (Word COM
SaveAs(..., 17)) und 2–3 Seiten ansiehst: Kopfzeile sichtbar, Abbildungen vollständig, kein Überlauf
Schritt 5: Generiere PPT-Folien für die Weitergabe
Befolge die in references/ppt_structure.md definierte Folienstruktur.
Verwende scripts/generate_ppt_slides.py als Vorlage:
python scripts/generate_ppt_slides.py
Das Skript demonstriert:
- python-pptx-Folienerstellung mit benutzerdefinierten Layouts
- Nature/Cell-artiges minimalistisches Design (weißer Hintergrund, dunkler Text)
- Pro-Abbildungs-Folien: Bette das extrahierte
figures/figN.pngauf der Folie ein, dann Abbildungstitel → Forschungsfrage → Methoden → Ergebnisse → Signifikanz - Abschließende Folie „Wichtigste Erkenntnisse + Wissenschaftliche Auswirkungen"
Schritt 6: Generiere populärwissenschaftlichen Artikel (Optional)
Wenn der Benutzer einen WeChat OA-Artikel wünscht, schreibe eine HTML-Datei mit:
- Inline-CSS (WeChat entfernt
<style>-Tags) - Mobile-First-Design (max-width: 680px)
- Metapherngetriebene Wissenschaftskommunikation
- Datenkarten, Vergleichstabellen, Zeitstrahlen
- Alle Daten müssen aus der Originalarbeit stammen, keine Erfindung
Siehe references/popular_science_style.md für einen detaillierten Schreibleitfaden.
Schritt 7: Qualitätskontrolle
Überprüfe:
- Alle technischen Begriffe haben eine englische Abkürzung + Erklärung
- Alle Abbildungen sind sowohl im Word- als auch im PPT-Bericht abgedeckt
- Jede Hauptabbildung im Word-Bericht hat ihr eingebettetes Bild überprüft (vollständige Panels, kein Zuschnitt, kein störender Fließtext)
- Keine fabrizierten Daten oder spekulativen Schlussfolgerungen
- Die Analyse-Pipeline ist vollständig (Software → Algorithmus → Ein-/Ausgabe)
- Statistische Werte stimmen mit der Originalarbeit überein
Interpretationsprinzipien
Befolge references/interpretation_principles.md für alle generierten Inhalte. Kernregeln:
- Behalte englische Abkürzungen bei — übersetze sie NICHT einfach ins Chinesische
- Erkläre technische Prinzipien — nicht nur was, sondern warum und wie
- Tiefenorientiert — beantworte "warum diese Methode?", "was zeigen die Daten?", "was bedeutet es?"
- Zielgruppe: Bioinformatik-Ingenieure, Genomik-Forscher
- Keine Fabrikation — unsichere Informationen als "需确认" markieren
Dateireferenz
| Datei | Zweck |
|---|---|
scripts/extract_pdf_text.py | Extrahiere vollständigen Text aus PDF mit pdfplumber |
scripts/extract_figures.py | Extrahiere Hauptabbildungen als hochauflösende PNGs + captions.json-Manifest (PyMuPDF) |
scripts/generate_word_report.py | Vorlagenskript für die Word-Dokumenterstellung (inkl. Abbildungseinbettung) |
scripts/generate_ppt_slides.py | Vorlagenskript für die PPT-Folienerstellung |
references/word_structure.md | Spezifikation der 10-teiligen Word-Berichtsstruktur (inkl. Format pro Abbildungsblock) |
references/ppt_structure.md | Spezifikation der PPT-Folienstruktur |
references/interpretation_principles.md | KI-Interpretationsprinzipien und -regeln |
references/popular_science_style.md | Schreibleitfaden für populärwissenschaftliche Artikel |