バイオインフォマティクス文献系統的レビュー
目的
生の英文研究論文PDFを、標準化された高品質な中国語レビュー資料一式に変換します。全メインフィギュアを埋め込んで解説したWord深読レポート、PPT共有スライド、オプションの科学普及記事を生成します。再現可能で深層的な文献解釈を必要とするバイオインフォマティクス研究者向けに設計されています。
使用タイミング
ユーザーが科学論文PDFを提供した場合(または特定の論文のレビューを依頼した場合)にトリガーし、以下のいずれかを希望する場合に使用します。
- Word深読レポート(10セクション構造化分析)
- フィギュア抽出 — PDFからすべてのメインフィギュアを画像として抽出し、1つずつ解説
- PPTグループミーティング共有資料
- 微信公式アカウント向け科学普及記事
- 上記すべて(完全パイプライン)
典型的なユーザーフレーズ:
- "解读这篇论文" / "解析这篇文章"
- "帮我做个文献精读"
- "把每张主图提取出来讲解" / "每张Figure都要配图解读"
- "生成Word解读 + PPT"
- "整理成科普文章"
前提条件
Python環境
Python >= 3.9 であれば動作します。エージェントランタイムに付属のインタープリタ、または独自の仮想環境を使用してください。
依存関係をインストール(一度だけ実行):
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 (オプション、微信OA用)
NN: ゼロ埋めシーケンス番号 (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を追加すると、Extended Data / Supplementaryフィギュアも抽出します。- スクリプトはキャプション("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、デフォルトは0.055Nature用)。 - 本文吸収ガード: "caption beside artwork" モードでは、フィギュアがその下に流れる本文段落に食い込む可能性があります。テキストブロックは、コンパクト(高さが短いか幅が狭い)かつ 4行以下の場合にのみ吸収され、
besideモードでは、グラフィックの下端以上で開始する場合にのみ吸収されます。フィギュアの最後に散文の段落が残っている場合、このルールを厳しくする必要があります。 - 出力:
figures/figN.png+figures/captions.json(キャプションテキスト、ページ、caption_page、bbox、フィギュアごとの抽出ステータス)。 - 抽出されたPNGを常に確認(ViewImageで確認):各画像が完全なフィギュアであること(すべてのパネル、切り抜きなし、本文テキストの混入なし)を確認します。フィギュアの切り抜きが不適切な場合は、
captions.jsonのbboxを開始点として、PyMuPDFを使用してその領域を手動で再レンダリングします。壊れた画像を黙って埋め込まないでください。
ステップ 3: 論文の深読
抽出されたテキストをセグメント(1回の読み取りあたり200行)で読みます。各メインフィギュアについて、抽出されたPNGも表示してパネルとレイアウトを理解します。以下の抽出に焦点を当てます:
- タイトル、著者、ジャーナル、DOI、出版日
- アブストラクトと主要な発見
- すべてのFigures(番号、タイトル、パネル、それぞれが示す内容) —
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)を必ず埋め込む必要があります — フィギュアごとに1枚の画像、それぞれにフィギュアごとの分析を続けます。画像パスとキャプションは figures/ と captions.json から取得します。
主要な書式ルール:
- 見出しは Heading 1/2/3 スタイルを使用し、カスタム書式を設定します
- 表は「Light Grid Accent 1」に加え、明示的な暗色ヘッダー塗りつぶし(
shade_cell(cell, "1A3A5C"))を使用します — 組み込みスタイルでは、白いテキストを適用してもヘッダー行が塗りつぶされず、Wordでヘッダーが見えなくなります - フィギュアのサイズは幅 15.5 cm、最大高さ約 18.5 cm に合わせます(アスペクト比を維持、PILを使用)。縦長の4パネルManhattanプロットをページ幅いっぱい(高さ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をスライドに埋め込み、次に Figure タイトル → 研究課題 → 手法 → 結果 → 意義 - 最終的な主要発見と科学的影響のスライド
ステップ 6: 科学普及記事の生成(オプション)
ユーザーが微信OA記事を希望する場合、以下の内容でHTMLファイルを作成します:
- インラインCSS(微信は
<style>タグを削除します) - モバイルファーストデザイン(max-width: 680px)
- 比喩を活用した科学コミュニケーション
- データカード、比較表、タイムライン
- すべてのデータは元の論文から取得し、捏造しない
詳細な執筆ガイドは references/popular_science_style.md を参照してください。
ステップ 7: 品質チェック
以下を確認します:
- すべての技術用語に英語の略語と説明があること
- すべてのFiguresが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 | 科学普及記事の執筆ガイド |