Community연구 & 데이터 분석github.com

btrainee/literature-review-skill

생명정보학 논문 심층 분석 스킬. 과학 논문 PDF를 분석하여 Word 심층 독해 보고서, Nature/Cell 스타일 PPT, 인기 과학 글 등을 생성합니다.

literature-review-skill란 무엇인가요?

이 스킬은 생명정보학, 유전체학, 종양학 분야의 과학 논문 PDF를 입력받아 표준화된 고품질 리뷰 자료 제품군으로 변환합니다. 주요 기능으로는 PyMuPDF를 이용한 본문 텍스트 추출 및 모든 주요 그림을 고해상도 PNG로 추출하는 그림 추출, 10개 섹션으로 구성된 Word 심층 독해 보고서 생성(각 그림 포함 및 분석: 연구 질문/방법/주요 결과/해석), Nature/Cell 스타일의 PPT 발표 자료 생성, 그리고 선택적으로 WeChat 공식 계정용 인기 과학 글 작성을 포함합니다. 이 스킬은 PDF 파싱부터 그림 추출, 심층 읽기, 구조화된 분석, 문서 생성에 이르는 전체 워크플로우를 다루며, 생명정보학 연구자들이 재현 가능하고 깊이 있는 문헌 해석을 수행할 수 있도록 돕습니다. Python 환경에서 pdfplumber, PyMuPDF, python-docx, python-pptx 라이브러리를 사용하며, 각 논문마다 독립적인 폴더 구조를 생성하여 결과물을 체계적으로 관리합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/btrainee/literature-review-skill/tree/HEAD

Installed? Explore more 연구 & 데이터 분석 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

생명정보학 논문 체계적 리뷰

목적

영어 연구 논문 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 텍스트 추출

  1. 위 명명 규칙에 따라 출력 폴더 생성
  2. 소스 PDF를 새 폴더에 복사
  3. 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를 따릅니다. 핵심 규칙:

  1. 영어 약어 유지 — 단순히 중국어로 번역하지 마십시오
  2. 기술 원리 설명 — 무엇뿐만 아니라 왜, 어떻게인지 설명
  3. 깊이 우선 — "왜 이 방법인가?", "데이터가 무엇을 보여주는가?", "그것이 무엇을 의미하는가?"에 답변
  4. 대상 독자: 생명정보학 엔지니어, 유전체학 연구자
  5. 조작 금지 — 불확실한 정보는 "需确认"으로 표시

파일 참조

파일목적
scripts/extract_pdf_text.pypdfplumber를 사용하여 PDF에서 전체 텍스트 추출
scripts/extract_figures.py주요 그림을 고해상도 PNG + captions.json 매니페스트로 추출 (PyMuPDF)
scripts/generate_word_report.pyWord 문서 생성용 템플릿 스크립트 (그림 포함 기능 포함)
scripts/generate_ppt_slides.pyPPT 슬라이드 생성용 템플릿 스크립트
references/word_structure.md10개 섹션 Word 보고서 구조 명세 (그림별 블록 형식 포함)
references/ppt_structure.mdPPT 슬라이드 구조 명세
references/interpretation_principles.mdAI 해석 원칙 및 규칙
references/popular_science_style.md인기 과학 글 작성 가이드

관련 스킬