Revisión Sistemática de Literatura en Bioinformática
Propósito
Transformar un artículo de investigación en inglés en PDF en un conjunto de materiales de revisión estandarizados y de alta calidad en chino: un informe de lectura profunda en Word con cada figura principal incrustada y explicada, diapositivas para compartir en presentaciones y, opcionalmente, un artículo de divulgación científica. Diseñado para investigadores en bioinformática que necesitan una interpretación de la literatura reproducible y en profundidad.
Cuándo Usarlo
Activar cuando el usuario proporcione un PDF de artículo científico (o pida revisar un artículo específico) y quiera cualquiera de los siguientes:
- Informe de lectura profunda en Word (análisis estructurado de 10 secciones)
- Extracción de figuras: extraer cada figura principal del PDF como imagen y explicarlas una por una
- Material para compartir en presentaciones de grupo
- Artículo de divulgación científica para cuentas oficiales de WeChat
- Todo lo anterior (pipeline completo)
Frases típicas del usuario:
- "解读这篇论文" / "解析这篇文章"
- "帮我做个文献精读"
- "把每张主图提取出来讲解" / "每张Figure都要配图解读"
- "生成Word解读 + PPT"
- "整理成科普文章"
Requisitos Previos
Entorno de Python
Cualquier Python >= 3.9 funciona. Use el intérprete que venga con el entorno de ejecución de su agente, o su propio virtualenv.
Instale las dependencias (una sola vez):
pip install pdfplumber pymupdf python-docx python-pptx
Si PyPI es lento (común en China continental), use un espejo doméstico:
pip install pymupdf -i https://mirrors.cloud.tencent.com/pypi/simple
pymupdf(PyMuPDF) es necesario para la extracción de figuras: proporciona tanto el renderizado de páginas como la inspección de texto/gráficos a nivel de coordenadas.pdfplumberse usa para la extracción de texto plano.python-docx/python-pptxgeneran los entregables.
Convención de Estructura del Proyecto
Cada artículo tiene una carpeta independiente bajo la raíz del espacio de trabajo:
NN_YYYY-Journal-Topic/
Original_Paper.pdf
Journal_YYYY_Topic_LiteratureReview.docx
Journal_YYYY_Topic_ArticleSharing.pptx
full_text.txt (texto extraído, intermedio)
figures/ (PNG de figuras principales extraídas, intermedio)
fig1.png, fig2.png, ...
captions.json (número de figura -> pie de página/bbox/manifiesto)
Topic_PopularScience.html (opcional, para cuentas oficiales de WeChat)
NN: número de secuencia rellenado con ceros (01, 02, 03...)YYYY: año de publicaciónJournal: nombre abreviado de la revista (Nature, Cell, Science...)Topic: descripción corta del tema en chino
Flujo de Trabajo
Paso 1: Configuración y Extracción de Texto del PDF
- Cree la carpeta de salida siguiendo la convención de nomenclatura anterior
- Copie el PDF fuente en la nueva carpeta
- Ejecute
scripts/extract_pdf_text.pypara extraer el texto completo:Esto producepython scripts/extract_pdf_text.py "<pdf_path>" "<output_txt_path>"full_text.txtcon el texto extraído delimitado por páginas.
Paso 2: Extraer Figuras Principales del PDF
Ejecute scripts/extract_figures.py para extraer cada figura principal como un PNG de alta resolución (300 DPI por defecto):
python scripts/extract_figures.py "<pdf_path>" --out "<paper_folder>/figures" --dpi 300
- Añada
--include-edpara extraer también figuras de Datos Extendidos / Suplementarias. - El script localiza los pies de figura ("Fig. 1", "Figure 1", "图1"), determina el ancho de la columna, une los gráficos sobre el pie de figura y renderiza la región.
- Variantes de diseño ya manejadas (verificado en PDFs de Nature / Cancer Cell):
- pie de figura debajo del arte (más común);
- pie de figura al lado del arte (pie de figura en la parte superior de la columna, figura en la otra columna);
- pie de figura encima del arte;
- "Leyenda en la página siguiente" de Cell Press: arte en la página N-1, pie de figura en la parte superior de la página N: el script detecta que no hay gráficos sobre el pie de figura y renderiza automáticamente el arte de la página anterior (
status: prev-page). - Banner de la revista: la barra de color de ancho completo de Cell Press / Cancer Cell en la parte superior de la página se filtra (
status: abovenunca debería contenerla).
- Si una figura aún contiene un encabezado, aumente
--header-frac(ej.0.13para Cancer Cell / Cell Genomics, predeterminado0.055para Nature). - Protección contra absorción de texto del cuerpo: en el modo "pie de figura al lado del arte", una figura puede sangrar en el párrafo del cuerpo que fluye debajo de ella. Los bloques de texto solo se absorben cuando son compactos (altura corta o ancho estrecho) y ≤ 4 líneas, y en modo
besidesolo cuando comienzan en o por debajo del borde inferior del gráfico. Si una figura aún termina con un párrafo de prosa, esta es la regla a ajustar. - Salida:
figures/figN.png+figures/captions.json(texto del pie de figura, página, caption_page, bbox, estado de extracción por figura). - Verifique siempre los PNG extraídos visualizándolos (ViewImage): compruebe que cada imagen sea la figura completa (todos los paneles, sin recortes, sin texto del cuerpo mezclado). Si una figura está mal recortada, vuelva a renderizar esa región manualmente con PyMuPDF usando el bbox de
captions.jsoncomo punto de partida. NO incruste una imagen defectuosa en silencio.
Paso 3: Lectura Profunda del Artículo
Lea el texto extraído en segmentos (200 líneas por lectura). Para CADA figura principal, vea también el PNG extraído para comprender los paneles y el diseño. Concéntrese en extraer:
- Título, autores, revista, DOI, fecha de publicación
- Resumen y hallazgos clave
- Todas las Figuras (número, título, paneles, qué muestra cada una): verifique el pie de figura en
captions.jsoncontra la imagen real - Métodos (plataformas de secuenciación, herramientas de software, algoritmos, parámetros)
- Información de la muestra (tamaño de la cohorte, tipos de tejido, tipos de secuenciación)
- Resultados clave y significación estadística
- Limitaciones mencionadas por los autores
Paso 4: Generar el Informe de Lectura Profunda en Word
Siga la estructura de 10 secciones definida en references/word_structure.md.
Use scripts/generate_word_report.py como plantilla. Cópielo en la carpeta del artículo (ej. generate_word_report.py), reemplace el bloque CONTENT con el análisis real y ejecútelo con la ruta de salida:
python generate_word_report.py "<paper_folder>/Journal_YYYY_Topic_LiteratureReview.docx"
El script demuestra:
- Creación de documentos python-docx con encabezados con estilo
- Formato de tabla para información básica y terminología
- Listas con viñetas para pipelines de análisis
- Cuadros de llamada de color para hallazgos clave
add_figure_block(): incrusta cada PNG de figura extraída + pie de figura + análisis de 4 partes (研究问题 / 方法 / 关键结果 / 解读)
La Sección 7 (Contenido Principal de la Investigación) DEBE incrustar las imágenes de figuras extraídas (figures/figN.png) — una imagen por figura, cada una seguida de su análisis por figura. Las rutas de las imágenes y los pies de figura provienen de figures/ y captions.json.
Reglas clave de formato:
- Los encabezados usan estilos Título 1/2/3 con formato personalizado
- Las tablas usan "Cuadrícula clara Énfasis 1" más un relleno de encabezado oscuro explícito (
shade_cell(cell, "1A3A5C")) — el estilo integrado deja la fila de encabezado sin relleno cuando se aplica texto blanco, lo que hace que el encabezado sea invisible en Word - Las figuras se ajustan a un ancho de 15.5 cm con una altura máxima de ~18.5 cm (con conciencia de aspecto, a través de PIL). Un Manhattan de 4 paneles en orientación vertical a ancho de página completo (más de 21 cm de alto) se desborda de la página y se recorta en la parte inferior: limite siempre la altura
- Tablas de más de una página:
keep_rows_together(table)marca la fila de encabezado comow:tblHeader(se repite en cada página) y cada fila comow:cantSplit, por lo que una tabla nunca se rompe a mitad de fila o pierde su encabezado - Los términos técnicos mantienen la abreviatura en inglés, seguida de la explicación en chino
- Sin fabricación de datos: los elementos inciertos se marcan con "需确认"
- Verifique la salida exportando a PDF (Word COM
SaveAs(..., 17)) y visualizando 2–3 páginas: fila de encabezado visible, figuras completas, sin desbordamiento
Paso 5: Generar Diapositivas para Compartir en PPT
Siga la estructura de diapositivas definida en references/ppt_structure.md.
Use scripts/generate_ppt_slides.py como plantilla:
python scripts/generate_ppt_slides.py
El script demuestra:
- Creación de diapositivas python-pptx con diseños personalizados
- Diseño minimalista estilo Nature/Cell (fondo blanco, texto oscuro)
- Diapositivas por Figura: incruste el
figures/figN.pngextraído en la diapositiva, luego Título de la figura → pregunta de investigación → métodos → resultados → significado - Diapositiva final de Hallazgos Clave + Impacto Científico
Paso 6: Generar Artículo de Divulgación Científica (Opcional)
Cuando el usuario quiera un artículo para cuentas oficiales de WeChat, escriba un archivo HTML con:
- CSS en línea (WeChat elimina las etiquetas
<style>) - Diseño adaptable a móviles (ancho máximo: 680px)
- Comunicación científica impulsada por metáforas
- Tarjetas de datos, tablas comparativas, líneas de tiempo
- Todos los datos deben provenir del artículo original, sin fabricación
Consulte references/popular_science_style.md para obtener una guía de escritura detallada.
Paso 7: Control de Calidad
Verifique:
- Todos los términos técnicos tienen abreviatura en inglés + explicación
- Todas las Figuras están cubiertas tanto en Word como en PPT
- Cada figura principal en el informe de Word tiene su imagen incrustada verificada (paneles completos, sin recortes, sin texto del cuerpo extraviado)
- Sin datos fabricados ni conclusiones especulativas
- El pipeline de análisis está completo (software → algoritmo → entrada/salida)
- Los valores estadísticos coinciden con el artículo original
Principios de Interpretación
Siga references/interpretation_principles.md para todo el contenido generado. Reglas centrales:
- Mantenga las abreviaturas en inglés — NO las traduzca simplemente al chino
- Explique los principios técnicos — no solo qué, sino por qué y cómo
- En profundidad — responda "¿por qué este método?", "¿qué muestran los datos?", "¿qué significa?"
- Público objetivo: ingenieros en bioinformática, investigadores en genómica
- Sin fabricación — la información incierta se marca como "需确认"
Referencia de Archivos
| Archivo | Propósito |
|---|---|
scripts/extract_pdf_text.py | Extraer texto completo del PDF usando pdfplumber |
scripts/extract_figures.py | Extraer figuras principales como PNG de alta resolución + manifiesto captions.json (PyMuPDF) |
scripts/generate_word_report.py | Script de plantilla para la generación de documentos de Word (incluye incrustación de figuras) |
scripts/generate_ppt_slides.py | Script de plantilla para la generación de diapositivas PPT |
references/word_structure.md | Especificación de la estructura del informe de Word de 10 secciones (incluye formato de bloque por figura) |
references/ppt_structure.md | Especificación de la estructura de las diapositivas PPT |
references/interpretation_principles.md | Principios y reglas de interpretación para la IA |
references/popular_science_style.md | Guía de escritura para artículos de divulgación científica |