Revue Systématique de la Littérature en Bioinformatique
Objectif
Transformer un article de recherche brut en anglais en un ensemble de supports de révision standardisés et de haute qualité en chinois : rapport Word de lecture approfondie avec chaque figure principale intégrée et expliquée, diapositives PPT pour partage en réunion, et article de vulgarisation optionnel. Conçu pour les chercheurs en bioinformatique ayant besoin d'une interprétation reproductible et approfondie de la littérature.
Quand l'Utiliser
Déclenchez cette compétence lorsque l'utilisateur fournit un article scientifique au format PDF (ou demande de réviser un article spécifique) et souhaite obtenir :
- Rapport Word de lecture approfondie (analyse structurée en 10 sections)
- Extraction des figures — extraire chaque figure principale du PDF sous forme d'image et l'expliquer une par une
- Diaporama PPT pour partage en réunion de groupe
- Article de vulgarisation pour un compte WeChat Officiel
- Tout ce qui précède (pipeline complet)
Expressions typiques de l'utilisateur :
- "解读这篇论文" / "解析这篇文章"
- "帮我做个文献精读"
- "把每张主图提取出来讲解" / "每张Figure都要配图解读"
- "生成Word解读 + PPT"
- "整理成科普文章"
Prérequis
Environnement Python
Toute version de Python >= 3.9 convient. Utilisez l'interpréteur fourni avec votre environnement d'exécution d'agent, ou votre propre environnement virtuel.
Installez les dépendances (une seule fois) :
pip install pdfplumber pymupdf python-docx python-pptx
Si PyPI est lent (courant en Chine continentale), utilisez un miroir domestique :
pip install pymupdf -i https://mirrors.cloud.tencent.com/pypi/simple
pymupdf(PyMuPDF) est nécessaire pour l'extraction des figures — il fournit à la fois le rendu des pages et l'inspection des coordonnées du texte/graphique.pdfplumberest utilisé pour l'extraction du texte brut.python-docx/python-pptxgénèrent les livrables.
Convention de Structure de Projet
Chaque article possède un dossier indépendant sous la racine de l'espace de travail :
NN_YYYY-Journal-Topic/
Original_Paper.pdf
Journal_YYYY_Topic_LiteratureReview.docx
Journal_YYYY_Topic_ArticleSharing.pptx
full_text.txt (texte extrait, intermédiaire)
figures/ (PNG des figures principales extraites, intermédiaire)
fig1.png, fig2.png, ...
captions.json (numéro de figure -> légende/page/bbox)
Topic_PopularScience.html (optionnel, pour WeChat OA)
NN: numéro de séquence zéro-paddé (01, 02, 03...)YYYY: année de publicationJournal: nom abrégé de la revue (Nature, Cell, Science...)Topic: description courte en chinois du sujet
Workflow
Étape 1 : Configuration et Extraction du Texte du PDF
- Créez le dossier de sortie en suivant la convention de nommage ci-dessus
- Copiez le PDF source dans le nouveau dossier
- Exécutez
scripts/extract_pdf_text.pypour extraire le texte complet :Cela produitpython scripts/extract_pdf_text.py "<pdf_path>" "<output_txt_path>"full_text.txtavec le texte extrait délimité par page.
Étape 2 : Extraire les Figures Principales du PDF
Exécutez scripts/extract_figures.py pour extraire chaque figure principale en PNG haute résolution (300 DPI par défaut) :
python scripts/extract_figures.py "<pdf_path>" --out "<paper_folder>/figures" --dpi 300
- Ajoutez
--include-edpour extraire également les figures de Données Étendues / Supplémentaires. - Le script localise les légendes ("Fig. 1", "Figure 1", "图1"), détermine l'étendue de la colonne, fusionne les graphiques au-dessus de la légende et rend la région.
- Variantes de mise en page déjà gérées (vérifiées sur les PDFs Nature / Cancer Cell) :
- légende sous l'illustration (la plus courante) ;
- légende à côté de l'illustration (légende en haut de colonne, figure dans l'autre colonne) ;
- légende au-dessus de l'illustration ;
- "légende sur la page suivante" de Cell Press : illustration sur la page N-1, légende en haut de la page N — le script détecte qu'aucun graphique ne se trouve au-dessus de la légende et rend automatiquement l'illustration de la page précédente (
status: prev-page). - bannière de revue : la barre de couleur pleine largeur de Cell Press / Cancer Cell en haut de page est filtrée (
status: abovene devrait jamais la contenir).
- Si une figure contient encore un en-tête, augmentez
--header-frac(par exemple0.13pour Cancer Cell / Cell Genomics, valeur par défaut0.055pour Nature). - Protection contre l'absorption du corps du texte : en mode "légende à côté de l'illustration", une figure peut empiéter sur le paragraphe de texte situé en dessous. Les blocs de texte ne sont absorbés que lorsqu'ils sont compacts (hauteur courte ou largeur étroite) et ≤ 4 lignes, et en mode
besideuniquement lorsqu'ils commencent au niveau ou en dessous du bord inférieur du graphique. Si une figure se termine encore par un paragraphe de prose, c'est la règle à resserrer. - Sortie :
figures/figN.png+figures/captions.json(texte de légende, page, caption_page, bbox, statut d'extraction par figure). - Vérifiez toujours les PNG extraits en les visualisant (ViewImage) : vérifiez que chaque image est la figure complète (tous les panneaux, non recadrée, sans texte mélangé). Si une figure est mal recadrée, re-rendez cette région manuellement avec PyMuPDF en utilisant le bbox de
captions.jsoncomme point de départ. N'intégrez PAS une image défectueuse en silence.
Étape 3 : Lecture Approfondie de l'Article
Lisez le texte extrait par segments (200 lignes par lecture). Pour CHAQUE figure principale, visualisez également le PNG extrait pour comprendre les panneaux et la mise en page. Concentrez-vous sur l'extraction :
- Titre, auteurs, revue, DOI, date de publication
- Résumé et résultats clés
- Toutes les Figures (numéro, titre, panneaux, ce que chacune montre) — recoupez la légende dans
captions.jsonavec l'image réelle - Méthodes (plateformes de séquençage, outils logiciels, algorithmes, paramètres)
- Informations sur les échantillons (taille de la cohorte, types de tissus, types de séquençage)
- Résultats clés et signification statistique
- Limitations mentionnées par les auteurs
Étape 4 : Générer le Rapport Word de Lecture Approfondie
Suivez la structure en 10 sections définie dans references/word_structure.md.
Utilisez scripts/generate_word_report.py comme modèle. Copiez-le dans le dossier de l'article (par exemple generate_word_report.py), remplacez le bloc CONTENU par l'analyse réelle, et exécutez-le avec le chemin de sortie :
python generate_word_report.py "<paper_folder>/Journal_YYYY_Topic_LiteratureReview.docx"
Le script démontre :
- Création de document python-docx avec titres stylisés
- Formatage de tableaux pour les informations de base et la terminologie
- Listes à puces pour les pipelines d'analyse
- Boîtes d'appel colorées pour les résultats clés
add_figure_block(): intègre chaque PNG de figure extraite + légende + analyse en 4 parties (研究问题 / 方法 / 关键结果 / 解读)
La section 7 (Contenu Principal de Recherche) DOIT intégrer les images des figures extraites (figures/figN.png) — une image par figure, chacune suivie de son analyse par figure. Les chemins d'images et les légendes proviennent de figures/ et captions.json.
Règles de formatage clés :
- Les titres utilisent les styles Heading 1/2/3 avec un formatage personnalisé
- Les tableaux utilisent "Light Grid Accent 1" plus un remplissage d'en-tête sombre explicite (
shade_cell(cell, "1A3A5C")) — le style intégré laisse la ligne d'en-tête non remplie lorsque du texte blanc est appliqué, rendant l'en-tête invisible dans Word - Les figures sont ajustées à une largeur de 15,5 cm avec une hauteur maximale d'environ 18,5 cm (respect des proportions, via PIL). Un Manhattan à 4 panneaux en portrait à pleine largeur de page (plus de 21 cm de haut) dépasse la page et est coupé en bas — plafonnez toujours la hauteur
- Tableaux de plus d'une page :
keep_rows_together(table)marque la ligne d'en-tête commew:tblHeader(se répète sur chaque page) et chaque ligne commew:cantSplit, de sorte qu'un tableau ne se coupe jamais au milieu d'une ligne ni ne perde son en-tête - Les termes techniques conservent l'abréviation anglaise, suivie de l'explication en chinois
- Aucune fabrication de données : les éléments incertains sont marqués avec "需确认"
- Vérifiez la sortie en exportant au format PDF (Word COM
SaveAs(..., 17)) et en visualisant 2 à 3 pages : ligne d'en-tête visible, figures complètes, aucun débordement
Étape 5 : Générer des Diapositives PPT de Partage
Suivez la structure des diapositives définie dans references/ppt_structure.md.
Utilisez scripts/generate_ppt_slides.py comme modèle :
python scripts/generate_ppt_slides.py
Le script démontre :
- Création de diapositives python-pptx avec mises en page personnalisées
- Design minimaliste de style Nature/Cell (fond blanc, texte sombre)
- Diapositives par figure : intégrer le
figures/figN.pngextrait sur la diapositive, puis titre de la figure → question de recherche → méthodes → résultats → signification - Dernière diapositive avec Résultats Clés + Impact Scientifique
Étape 6 : Générer un Article de Vulgarisation (Optionnel)
Lorsque l'utilisateur souhaite un article pour WeChat OA, écrivez un fichier HTML avec :
- CSS en ligne (WeChat supprime les balises
<style>) - Conception mobile-first (largeur maximale : 680px)
- Communication scientifique axée sur les métaphores
- Fiches de données, tableaux comparatifs, chronologies
- Toutes les données doivent provenir de l'article original, aucune fabrication
Consultez references/popular_science_style.md pour un guide d'écriture détaillé.
Étape 7 : Contrôle Qualité
Vérifiez :
- Tous les termes techniques ont une abréviation anglaise + explication
- Toutes les Figures sont couvertes à la fois dans le Word et le PPT
- Chaque figure principale dans le rapport Word a son image intégrée vérifiée (panneaux complets, aucun recadrage, aucun texte étranger)
- Aucune donnée fabriquée ou conclusion spéculative
- Le pipeline d'analyse est complet (logiciel → algorithme → entrée/sortie)
- Les valeurs statistiques correspondent à l'article original
Principes d'Interprétation
Suivez references/interpretation_principles.md pour tout le contenu généré. Règles fondamentales :
- Conservez les abréviations anglaises — ne les traduisez PAS simplement en chinois
- Expliquez les principes techniques — pas seulement quoi, mais pourquoi et comment
- En profondeur — répondez "pourquoi cette méthode ?", "que montrent les données ?", "qu'est-ce que cela signifie ?"
- Public cible : ingénieurs en bioinformatique, chercheurs en génomique
- Aucune fabrication — informations incertaines marquées comme "需确认"
Référence des Fichiers
| Fichier | Objectif |
|---|---|
scripts/extract_pdf_text.py | Extraire le texte complet du PDF avec pdfplumber |
scripts/extract_figures.py | Extraire les figures principales en PNG haute résolution + manifeste captions.json (PyMuPDF) |
scripts/generate_word_report.py | Script modèle pour la génération de documents Word (incl. intégration de figures) |
scripts/generate_ppt_slides.py | Script modèle pour la génération de diapositives PPT |
references/word_structure.md | Spécification de la structure du rapport Word en 10 sections (incl. format de bloc par figure) |
references/ppt_structure.md | Spécification de la structure des diapositives PPT |
references/interpretation_principles.md | Principes et règles d'interprétation IA |
references/popular_science_style.md | Guide d'écriture pour article de vulgarisation |