생명정보학 논문 체계적 리뷰
목적
영어 연구 논문 PDF를 표준화된 고품질 중국어 리뷰 자료 제품군으로 변환합니다: 각 주요 그림이 포함되고 설명된 Word 심층 독해 보고서, PPT 발표 슬라이드, 선택적 인기 과학 글. 재현 가능하고 깊이 있는 문헌 해석이 필요한 생명정보학 연구자를 위해 설계되었습니다.
사용 시기
사용자가 과학 논문 PDF를 제공하거나 특정 논문 리뷰를 요청하고 다음 중 하나를 원할 때 사용합니다:
- Word 심층 독해 보고서 (10개 섹션 구조화 분석)
- 그림 추출 — PDF에서 모든 주요 그림을 이미지로 추출하여 하나씩 설명
- PPT 팀 미팅 발표 자료
- WeChat 공식 계정용 인기 과학 글
- 위 모든 항목 (전체 파이프라인)
일반적인 사용자 요청:
- "이 논문 해석해 줘" / "이 글 분석해 줘"
- "문헌 심층 분석 도와줘"
- "각 주요 그림 추출해서 설명해 줘"
- "Word 해석 보고서 + PPT 생성해 줘"
- "인기 과학 글로 정리해 줘"
전제 조건
Python 환경
Python >= 3.9면 모두 작동합니다. 에이전트 런타임에 포함된 인터프리터나 자체 virtualenv를 사용하세요.
의존성 설치 (일회성):
pip install pdfplumber pymupdf python-docx python-pptx
PyPI 속도가 느린 경우 (중국 본토에서 흔함), 국내 미러 사용:
pip install pymupdf -i https://mirrors.cloud.tencent.com/pypi/simple
pymupdf(PyMuPDF)는 그림 추출에 필수적입니다 — 페이지 렌더링과 좌표 수준의 텍스트/그래픽 검사를 모두 제공합니다.pdfplumber는 일반 텍스트 추출에 사용됩니다.python-docx/python-pptx는 결과물을 생성합니다.
프로젝트 구조 규칙
각 논문은 워크스페이스 루트 아래에 독립적인 폴더를 갖습니다:
NN_YYYY-Journal-Topic/
Original_Paper.pdf
Journal_YYYY_Topic_LiteratureReview.docx
Journal_YYYY_Topic_ArticleSharing.pptx
full_text.txt (추출된 텍스트, 중간 파일)
figures/ (추출된 주요 그림 PNG, 중간 파일)
fig1.png, fig2.png, ...
captions.json (그림 번호 -> 캡션/페이지/bbox 매니페스트)
Topic_PopularScience.html (선택 사항, WeChat OA용)
NN: 0으로 채워진 시퀀스 번호 (01, 02, 03...)YYYY: 출판 연도Journal: 약칭된 저널 이름 (Nature, Cell, Science...)Topic: 짧은 중국어 주제 설명
워크플로우
단계 1: 설정 및 PDF 텍스트 추출
- 위 명명 규칙에 따라 출력 폴더 생성
- 소스 PDF를 새 폴더에 복사
scripts/extract_pdf_text.py를 실행하여 전체 텍스트 추출:이 명령은 페이지별로 구분된 추출 텍스트와 함께python scripts/extract_pdf_text.py "<pdf_path>" "<output_txt_path>"full_text.txt를 생성합니다.
단계 2: PDF에서 주요 그림 추출
scripts/extract_figures.py를 실행하여 각 주요 그림을 고해상도 PNG(기본 300 DPI)로 추출합니다:
python scripts/extract_figures.py "<pdf_path>" --out "<paper_folder>/figures" --dpi 300
--include-ed를 추가하여 확장 데이터/보충 그림도 추출합니다.- 스크립트는 캡션 ("Fig. 1", "Figure 1", "图1")을 찾아 열 범위를 결정하고, 캡션 위의 그래픽을 결합하여 해당 영역을 렌더링합니다.
- 레이아웃 변형 이미 처리됨 (Nature / Cancer Cell PDF에서 검증 완료):
- 캡션이 그림 아래에 있는 경우 (가장 일반적);
- 캡션이 그림 옆에 있는 경우 (캡션은 열 상단, 그림은 다른 열);
- 캡션이 그림 위에 있는 경우;
- Cell Press "범례가 다음 페이지에 있는" 경우: 그림은 N-1 페이지, 캡션은 N 페이지 상단 — 스크립트는 캡션 위에 그래픽이 없는 것을 감지하고 이전 페이지의 그림을 자동으로 렌더링합니다 (
status: prev-page). - 저널 배너: 페이지 상단의 전체 너비 Cell Press / Cancer Cell 컬러 바는 필터링됩니다 (
status: above에 포함되지 않음).
- 그림에 여전히 헤더가 포함된 경우
--header-frac를 높입니다 (예: Cancer Cell / Cell Genomics의 경우0.13, Nature의 경우 기본값0.055). - 본문 텍스트 흡수 방지: "캡션이 그림 옆에 있는" 모드에서는 그림이 그 아래로 흐르는 본문 단락과 겹칠 수 있습니다. 텍스트 블록은 컴팩트한 경우(짧은 높이 또는 좁은 너비) 그리고 ≤ 4줄인 경우에만 흡수되며,
beside모드에서는 그래픽 하단 가장자리 이상에서 시작하는 경우에만 흡수됩니다. 그림 끝에 여전히 산문 단락이 포함되어 있다면 이 규칙을 강화해야 합니다. - 출력:
figures/figN.png+figures/captions.json(그림별 캡션 텍스트, 페이지, caption_page, bbox, 추출 상태). - 추출된 PNG를 항상 확인 (ViewImage 사용): 각 이미지가 완전한 그림(모든 패널, 잘리지 않음, 본문 텍스트 혼입 없음)인지 확인합니다. 그림이 잘못 잘린 경우
captions.json의 bbox를 시작점으로 PyMuPDF를 사용하여 해당 영역을 수동으로 다시 렌더링합니다. 깨진 이미지를 자동으로 포함하지 마십시오.
단계 3: 논문 심층 읽기
추출된 텍스트를 세그먼트(읽기당 200줄)로 읽습니다. 각 주요 그림에 대해 추출된 PNG도 확인하여 패널과 레이아웃을 이해합니다. 추출에 집중할 내용:
- 제목, 저자, 저널, DOI, 출판일
- 초록 및 주요 발견
- 모든 그림 (번호, 제목, 패널, 각각이 보여주는 내용) —
captions.json의 캡션을 실제 이미지와 교차 확인 - 방법 (시퀀싱 플랫폼, 소프트웨어 도구, 알고리즘, 파라미터)
- 샘플 정보 (코호트 크기, 조직 유형, 시퀀싱 유형)
- 주요 결과 및 통계적 유의성
- 저자가 언급한 한계점
단계 4: Word 심층 독해 보고서 생성
references/word_structure.md에 정의된 10개 섹션 구조를 따릅니다.
템플릿으로 scripts/generate_word_report.py를 사용합니다. 이를 논문 폴더에 복사하고 (예: generate_word_report.py), CONTENT 블록을 실제 분석 내용으로 바꾼 후 출력 경로로 실행합니다:
python generate_word_report.py "<paper_folder>/Journal_YYYY_Topic_LiteratureReview.docx"
스크립트는 다음을 보여줍니다:
- 스타일이 지정된 제목이 있는 python-docx 문서 생성
- 기본 정보 및 용어를 위한 테이블 서식
- 분석 파이프라인을 위한 글머리 기호 목록
- 주요 발견을 위한 색상 강조 상자
add_figure_block(): 각 추출된 그림 PNG + 캡션 + 4부분 분석(연구 질문 / 방법 / 주요 결과 / 해석)을 포함
섹션 7 (주요 연구 내용)에는 추출된 그림 이미지(figures/figN.png)를 반드시 포함해야 합니다 — 그림당 하나의 이미지, 각각 그림별 분석이 뒤따릅니다. 이미지 경로와 캡션은 figures/와 captions.json에서 가져옵니다.
주요 서식 규칙:
- 제목은 Heading 1/2/3 스타일을 사용하여 사용자 정의 서식 적용
- 테이블은 "Light Grid Accent 1" 더하기 명시적인 어두운 헤더 채우기(
shade_cell(cell, "1A3A5C"))를 사용합니다 — 기본 제공 스타일은 흰색 텍스트가 적용될 때 헤더 행을 채우지 않아 Word에서 헤더가 보이지 않게 됩니다 - 그림은 너비 15.5cm, 최대 높이 ~18.5cm로 맞춰집니다 (PIL을 통해 종횡비 유지). 세로 4패널 맨해튼 플롯을 전체 페이지 너비(21cm 이상 높이)로 표시하면 페이지를 넘어 아래쪽이 잘립니다 — 항상 높이를 제한하세요
- 한 페이지보다 긴 테이블:
keep_rows_together(table)은 헤더 행을w:tblHeader로 표시(모든 페이지에서 반복)하고 모든 행을w:cantSplit으로 표시하여 테이블이 행 중간에 끊기거나 헤더를 잃지 않도록 합니다 - 기술 용어는 영어 약어를 유지하고 중국어 설명을 덧붙입니다
- 데이터 조작 금지: 불확실한 항목은 "需确认"으로 표시
- PDF로 내보내기(Word COM
SaveAs(..., 17))를 통해 출력을 확인하고 2~3페이지를 봅니다: 헤더 행 표시, 그림 완전성, 오버플로우 없음
단계 5: PPT 발표 슬라이드 생성
references/ppt_structure.md에 정의된 슬라이드 구조를 따릅니다.
템플릿으로 scripts/generate_ppt_slides.py를 사용합니다:
python scripts/generate_ppt_slides.py
스크립트는 다음을 보여줍니다:
- 사용자 정의 레이아웃을 사용한 python-pptx 슬라이드 생성
- Nature/Cell 스타일의 미니멀리스트 디자인 (흰색 배경, 어두운 텍스트)
- 그림별 슬라이드: 슬라이드에 추출된
figures/figN.png을 포함하고, 그림 제목 → 연구 질문 → 방법 → 결과 → 의의 순서로 구성 - 최종 주요 발견 + 과학적 영향 슬라이드
단계 6: 인기 과학 글 생성 (선택 사항)
사용자가 WeChat OA 글을 원할 경우, 다음을 포함한 HTML 파일을 작성합니다:
- 인라인 CSS (WeChat은
<style>태그를 제거함) - 모바일 우선 디자인 (max-width: 680px)
- 은유 기반 과학 커뮤니케이션
- 데이터 카드, 비교 테이블, 타임라인
- 모든 데이터는 원본 논문에서 가져와야 하며, 조작 금지
자세한 작성 가이드는 references/popular_science_style.md를 참조하세요.
단계 7: 품질 검사
확인:
- 모든 기술 용어에 영어 약어 + 설명 포함
- 모든 그림이 Word와 PPT 모두에 포함
- Word 보고서의 각 주요 그림에 포함된 이미지가 검증됨 (완전한 패널, 잘림 없음, 본문 텍스트 혼입 없음)
- 조작된 데이터나 추측성 결론 없음
- 분석 파이프라인이 완전함 (소프트웨어 → 알고리즘 → 입력/출력)
- 통계 값이 원본 논문과 일치
해석 원칙
모든 생성된 콘텐츠에 대해 references/interpretation_principles.md를 따릅니다. 핵심 규칙:
- 영어 약어 유지 — 단순히 중국어로 번역하지 마십시오
- 기술 원리 설명 — 무엇뿐만 아니라 왜, 어떻게인지 설명
- 깊이 우선 — "왜 이 방법인가?", "데이터가 무엇을 보여주는가?", "그것이 무엇을 의미하는가?"에 답변
- 대상 독자: 생명정보학 엔지니어, 유전체학 연구자
- 조작 금지 — 불확실한 정보는 "需确认"으로 표시
파일 참조
| 파일 | 목적 |
|---|---|
scripts/extract_pdf_text.py | pdfplumber를 사용하여 PDF에서 전체 텍스트 추출 |
scripts/extract_figures.py | 주요 그림을 고해상도 PNG + captions.json 매니페스트로 추출 (PyMuPDF) |
scripts/generate_word_report.py | Word 문서 생성용 템플릿 스크립트 (그림 포함 기능 포함) |
scripts/generate_ppt_slides.py | PPT 슬라이드 생성용 템플릿 스크립트 |
references/word_structure.md | 10개 섹션 Word 보고서 구조 명세 (그림별 블록 형식 포함) |
references/ppt_structure.md | PPT 슬라이드 구조 명세 |
references/interpretation_principles.md | AI 해석 원칙 및 규칙 |
references/popular_science_style.md | 인기 과학 글 작성 가이드 |