# PythonProject-PubMedIF **Repository Path**: liu-changL/python-project-pub-med-if ## Basic Information - **Project Name**: PythonProject-PubMedIF - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-29 - **Last Updated**: 2026-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PubMed 纯生信分析文章 — IF 标注与全景分析工具 基于 PubMed 检索的近 5 年纯生物信息学分析文章,自动完成 **影响因子 (IF) 批量标注** 和 **可视化分析报告生成**。 ## 解决什么问题 PubMed 导出的 CSV 数据不包含期刊影响因子。直接爬取会触发封禁,手动查 1900+ 个期刊的 IF 不现实。 本项目通过 **本地 JCR 数据库 + OpenAlex API 补充** 的方式,零爬虫风险地为 18,000+ 篇文章自动标注 IF,匹配率 93.6%。 ## 功能概览 ``` file/*.csv ──→ merge_and_add_IF.py ──→ merged_pubmed_with_IF.xlsx │ extract_data.py │ generate_report.py ──→ HTML 全景分析报告 ``` ### 1. IF 批量标注 (`merge_and_add_IF.py`) - 合并多个 PubMed CSV 文件,按 PMID 去重 - **Phase 1** — `impact_factor` 本地 JCR 数据库直接匹配(覆盖 91.4%) - **Phase 2** — 去除期刊名括号后缀后模糊匹配 - **Phase 2.5** — SQL 精确匹配短名称期刊(如 BMJ) - **Phase 3** — OpenAlex API 补充查询剩余期刊的 `2yr_mean_citedness` - 输出 Excel(三个 Sheet:主数据 / IF 对照表 / 未匹配期刊) ### 2. 数据分析 (`extract_data.py`) 从合并后的 Excel 中提取全维度分析数据: - 年度发文趋势、JCR 分区分布、IF 区间分布 - 10 大研究方法分布及 CAGR 复合年增长率 - 10 大疾病领域分布及平均 IF - 方法 x 疾病交叉热力图 - 标题高频关键词 - IF>=10 高分文章的方法学/疾病/技术组合深度分析 ### 3. HTML 全景报告 (`generate_report.py`) 生成自包含的 HTML 报告(纯黑主题,Chart.js 图表),包含 5 个分析维度: | 页签 | 内容 | |------|------| | **高分文章深度解析** | IF>=10 文章的方法学排名、疾病领域、技术组合套路、Top 20 逐篇标签解析、发力方向建议 | | **研究全景** | 检索策略、年度趋势、方法分布、CAGR 增长分析、方法学趋势折线图 | | **影响力分析** | IF 分布直方图、JCR 分区饼图、各方法平均 IF 及四分位范围、疾病领域 IF | | **期刊与主题** | Top 20 期刊排名、标题词云、方法 x 疾病热力图 | | **IF 1-15 文章推荐** | 按整数 IF 区间各精选 10 篇代表性文章,含 PubMed/DOI 链接 | ## 快速开始 ### 环境要求 - Python 3.10+ - 依赖包:`pandas`, `openpyxl`, `requests`, `impact_factor` ### 安装 ```bash pip install pandas openpyxl requests impact_factor ``` ### 运行 ```bash # Step 1: 合并 CSV 并标注 IF python merge_and_add_IF.py # Step 2: 提取分析数据 python extract_data.py # Step 3: 生成 HTML 报告 python generate_report.py ``` 输出文件在 `output/` 目录下。 ## 检索策略 ``` (bioinformatics analysis[Title] OR transcriptome analysis[Title] OR network pharmacology[Title] OR mendelian randomization[Title] OR WGCNA[Title] OR TCGA[Title]) AND (cancer OR disease OR prognosis OR biomarker) AND ("last 5 years"[PDat]) NOT Review[pt] ``` ## IF 数据来源 | 来源 | 说明 | 覆盖率 | |------|------|--------| | `impact_factor` 内置 JCR 数据库 | 本地 SQLite,支持期刊缩写/ISSN/NLM ID 查询 | 91.4% | | OpenAlex API | 免费开放 API,提供 `2yr_mean_citedness`(与 JCR IF 计算方法相同) | +1.0% | | 未匹配 | 主要为中文期刊、已撤刊期刊(Hindawi)、预印本平台 | 7.6% | ## 项目结构 ``` PythonProject-PubMedIF/ ├── file/ # PubMed 导出的原始 CSV 文件 │ ├── csv-bioinforma-set.csv │ ├── csv-bioinforma-set (1).csv │ └── csv-bioinforma-set (2).csv ├── output/ # 输出目录 │ ├── merged_pubmed_with_IF.xlsx # 合并+IF标注后的 Excel │ ├── PubMed_Bioinformatics_Report.html # HTML 全景分析报告 │ ├── report_data.json # 报告中间数据 │ └── recommendation_data.json # 推荐文章数据 ├── merge_and_add_IF.py # IF 批量标注脚本 ├── extract_data.py # 数据分析提取脚本 ├── generate_report.py # HTML 报告生成脚本 └── README.md ``` ## 关键发现 - **Mendelian Randomization** 占总发文量 45.1%,CAGR 75.8%,是当前最热方向 - 但高分(IF>=10)文章中,**TCGA 数据挖掘**(均 IF 31.3)和**分子亚型分类**(均 IF 25.8)的影响力远高于 MR - **Single-cell + Transcriptome** 和 **Causal Inference + MR** 是最常见的高分技术组合 - 中位 IF 仅 3.3,绝大多数文章发表在 IF 2-5 区间