一键导入
literature-explorer
生命科学领域学术文献探索与可视化;基于 Europe PMC 数据源;支持高级检索、PMC过滤、并行多检索;支持 PMCID/PMID/DOI 混合批量提取;生成美化的 HTML 可视化报告
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
生命科学领域学术文献探索与可视化;基于 Europe PMC 数据源;支持高级检索、PMC过滤、并行多检索;支持 PMCID/PMID/DOI 混合批量提取;生成美化的 HTML 可视化报告
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
分析 Python 项目的代码品位 — 6 维度评分(极简度/一致性/可读性/防御性/工程化/Agent Engineering),输出诊断 + 处方 + SVG 雷达图报告
Awwwards 设计灵感侦察 — 按奖项/分类/技术栈/UI元素/配色采集前端设计参考
行为驱动开发(BDD)流程助手
Python 代码冗余检测清单
活文档维护
优雅编码与重构规范
| name | literature-explorer |
| description | 生命科学领域学术文献探索与可视化;基于 Europe PMC 数据源;支持高级检索、PMC过滤、并行多检索;支持 PMCID/PMID/DOI 混合批量提取;生成美化的 HTML 可视化报告 |
| dependency | {"python":["requests>=2.31.0"]} |
--use-europepmc):适合临床医学、药学、生物医学等临床领域pubmed pmc[sb] 过滤器)--include-no-fulltext 参数"Neoplasms"[MeSH](主题词)、"Neoplasms/drug therapy"[MeSH](副主题词)2016:2026[pd] 年份限制(根据当前年份动态计算)[pd] 字段限定,格式为 起始年:结束年[pd]NOT conference NOT proceedings 过滤pubmed pmc[sb] 过滤器,确保 100% 可下载# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
# 或 venv\Scripts\activate # Windows
# 安装依赖
pip install requests>=2.31.0
links.json:包含文献信息和 PDF 链接的 JSON 文件pdf_links.txt:纯文本格式的 PDF 下载链接列表literature_report.html:美化的 HTML 报告,展示文献列表和链接标准流程:
理解需求并整理关键词
构建多组检索式
datetime.now().year 获取系统时间,自动计算年份范围2016:2026[pd]NOT conference NOT proceedings 专注于期刊论文"Neoplasms/drug therapy"[MeSH] AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]("Neoplasms"[MeSH] OR "Diabetes Mellitus"[MeSH]) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]("cancer OR tumor OR neoplasm") AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]title: 字段限定)
title:"specific term" AND pubmed pmc[sb] 2016:2026[pd]("topic1"[MeSH] OR "topic2"[MeSH]) AND pubmed pmc[sb] NOT conference NOT proceedings NOT review 2016:2026[pd]获取 PDF 链接
get_pdf_links.py 搜索文献并获取 PDF 下载链接NOT conference NOT proceedings 排除会议论文pubmed pmc[sb]python scripts/get_pdf_links.py --search "(cancer OR tumor) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]" --limit 100 --output links.json
python scripts/get_pdf_links.py --search-multi "(cancer OR tumor) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]";"(Alzheimer OR dementia) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]" --limit 50 --max-workers 3 --output links.json
links.json 包含文献信息和 PDF 链接提取 PDF 下载链接
extract_pdf_links.py 提取 PDF 下载链接python scripts/extract_pdf_links.py --json links.json --output pdf_links.txt
输出:pdf_links.txt 包含所有可用的 HTTP 下载链接,用户可以自行选择下载方式(如 wget、IDM 等)
生成美化的 HTML 报告
generate_html_report.py 脚本直接从 links.json 生成 HTML 报告python scripts/generate_html_report.py --json links.json --output literature_report.html
验证结果
可选分支:
links.json(文献元数据)、pdf_links.txt(下载链接)、literature_report.html(美化的 HTML 报告)pubmed pmc[sb] 过滤器可确保 100% 可下载NOT conference NOT proceedings 过滤会议论文,专注于期刊论文;如需检索会议论文,可移除此过滤2016:2026[pd] 格式的年份限制--search "检索关键词"(使用 OR 连接,排除会议,默认添加近10年时间限制)、--limit 100(默认数量)、--output links.json(输出文件)python scripts/get_pdf_links.py --search "(machine learning OR deep learning) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]" --limit 100 --output links.json
输出:links.json 包含 100 篇近10年(2016-2026)内有全文下载链接的期刊论文(已排除会议论文和无全文文献)--search-multi(多个检索式,分号;分隔,均包含近10年限制)、--limit 50(每个检索的数量)、--max-workers 3(检索并发数)、--output links.json(输出文件)python scripts/get_pdf_links.py --search-multi "(cancer OR tumor) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]";"(Alzheimer OR dementia) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]";"(diabetes OR hyperglycemia) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]" --limit 50 --max-workers 3 --output links.json
输出:links.json 包含合并并去重后近10年内有全文下载链接的期刊论文(已排除会议论文和无全文文献)--json links.json(JSON 文件)、--output pdf_links.txt(输出文件)python scripts/extract_pdf_links.py --json links.json --output pdf_links.txt
输出:pdf_links.txt 包含所有可用的 HTTP 下载链接--title 参数指定研究主题 + 文献检索报告 或直接使用 研究主题 + 相关文献"杂交物种形成文献检索报告""分子进化与群体遗传学相关文献""基因编辑技术在作物育种中的应用研究"Hybridization → 杂交Speciation → 物种形成Evolution, Molecular → 分子进化Genetics, Population → 群体遗传学# 默认主题:modern(2025 Earth Organic 设计,蓝绿色系,适合在线浏览)
python scripts/generate_html_report.py --json links.json --output literature_report.html --theme modern
# AI 生成中文标题(推荐)
python scripts/generate_html_report.py --json links.json --output literature_report.html --title "杂交物种形成文献检索报告"
# 学术主题:academic(黑白配色,适合打印)
python scripts/generate_html_report.py --json links.json --output literature_report.html --theme academic
# 深色主题:dark(护眼配色,适合夜间阅读)
python scripts/generate_html_report.py --json links.json --output literature_report.html --theme dark
--json links.json:输入的文献 JSON 文件(必需)--output literature_report.html:输出的 HTML 文件(默认:literature_report.html)--theme modern/academic/dark:配色主题(默认:modern)--title "中文标题":AI 生成的中文研究主题标题(强烈推荐)literature_report.html 可直接在浏览器中打开--search "检索式"(根据主题调整)、--limit(数量)、--output(输出文件)# 使用 MeSH 术语检索基因编辑相关文献
python scripts/get_pdf_links.py --search "\"Gene Editing\"[MeSH] AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]" --limit 100 --output links.json
输出:links.json 包含基因编辑相关期刊论文--identifiers(标识符列表,逗号分隔)、--output pdf_links.txt(输出文件)python scripts/extract_pdf_links.py --identifiers "PMC5764346,38238491,10.1186/s13059-020-02147-0" --output pdf_links.txt
输出:pdf_links.txt 包含所有可用的 HTTP 下载链接--search(包含自定义年份限制的检索式)、--limit(数量)、--output(输出文件)python scripts/get_pdf_links.py --search "(machine learning OR AI) AND pubmed pmc[sb] 2021:2026[pd]" --limit 100 --output links.json
--search "MeSH 术语"(使用 [MeSH] 字段)、--limit 100、--output links.json"Neoplasms/drug therapy"[MeSH] 自动扩展为所有癌症药物治疗相关文献,包含同义词、下位词("cancer OR tumor" AND treatment) 只检索包含特定关键词的文献,可能遗漏相关文献# 检索癌症药物治疗相关文献(MeSH 自动扩展)
python scripts/get_pdf_links.py --search "\"Neoplasms/drug therapy\"[MeSH] AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]" --limit 100 --output links.json
输出:links.json 包含所有癌症药物治疗的期刊论文(MeSH 自动扩展,覆盖全面)--search-multi(多个 MeSH 检索式)、--limit 50(每个检索的数量)、--max-workers 3(并发数)# 同时检索癌症、糖尿病、阿尔茨海默病的药物治疗文献
python scripts/get_pdf_links.py --search-multi "\"Neoplasms/drug therapy\"[MeSH] AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]";\"Diabetes Mellitus/drug therapy\"[MeSH] AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]";\"Alzheimer Disease/drug therapy\"[MeSH] AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]" --limit 50 --max-workers 3 --output links.json
输出:links.json 包含三种疾病的药物治疗期刊论文(MeSH 精确检索,自动合并去重)NOT conference NOT proceedings 过滤--search(不包含会议排除的检索式)、--limit(数量)、--output(输出文件)python scripts/get_pdf_links.py --search "(machine learning OR AI) AND pubmed pmc[sb] 2016:2026[pd]" --limit 100 --output links.json
根据全文和摘要的可用性自动分组排序,优先展示最有价值的文献:
详细主题说明:参见「示例 4:生成美化的 HTML 报告」,包含 3 种配色方案(modern/academic/dark)的完整介绍。
支持从 CSV 文件批量提取下载链接:
python scripts/extract_pdf_links.py --csv identifiers.csv --column pmcid --output pdf_links.txt
--include-no-fulltext 参数--include-no-fulltext(包含无全文文献)、--search 或 --search-multi(检索式)# 单次检索,包含无全文文献
python scripts/get_pdf_links.py --search "(machine learning OR deep learning) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]" --limit 100 --include-no-fulltext --output all_links.json
# 多检索,包含无全文文献
python scripts/get_pdf_links.py --search-multi "(cancer OR tumor) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]";"(Alzheimer OR dementia) AND pubmed pmc[sb] NOT conference NOT proceedings 2016:2026[pd]" --limit 50 --max-workers 3 --include-no-fulltext --output all_links.json
输出:all_links.json 包含所有检索到的文献(包括没有全文链接的)根据影响因子、引用次数、发表日期等维度对文献排序(需要在 HTML 报告中实现)
问题说明:许多生物学术语在非生物医学领域中存在歧义,导致检索结果包含无关文献。
| 术语 | 生物学含义 | 歧义(非生物学) | 影响 |
|---|---|---|---|
speciation | 物种形成 | 化学形态(chemical speciation) | 混入化学/材料文献 |
hybridization | 杂交/杂交物种形成 | 细胞杂交、分子杂交 | 混入癌症/细胞生物学文献 |
evolution | 进化 | 演变、算法进化 | 混入计算机科学文献 |
策略 1:精确短语搜索(推荐用于核心概念)
使用双引号进行精确短语搜索,避免术语歧义:
# 杂交物种形成(最精确)
python scripts/get_pdf_links.py --search '"hybrid speciation"' --limit 100 --output links.json
# 测试结果相关性:100%
# 示例文献:
# - "Hybrid fertility and the rarity of homoploid hybrid speciation"
# - "Reticulate and Hybrid Speciation is Promoted by Environmental Instability"
策略 2:上下文感知搜索(推荐用于宽泛主题)
结合多个相关术语构建上下文,提高检索精度:
# 物种形成 + 进化语境
python scripts/get_pdf_links.py --search 'speciation AND (evolution OR "gene flow" OR introgression)' --limit 100 --output links.json
# 测试结果相关性:70-80%
# 示例文献:
# - "The latitudinal speciation gradient in freshwater fishes"
# - "Shared and Unique Patterns of Genomic Differentiation and Introgression Between Japanese Stickleback Species"
策略 3:字段限定搜索(推荐用于精确检索)
限定检索字段,缩小检索范围:
# 标题字段限定(更精确)
python scripts/get_pdf_links.py --search 'speciation[Title] AND (evolution[Title] OR genetic[Title])' --limit 100 --output links.json
# MeSH 字段限定(生物医学领域)
python scripts/get_pdf_links.py --search '"Evolution, Molecular"[MeSH] AND pubmed pmc[sb]' --limit 100 --output links.json
策略 4:排除式检索(推荐用于过滤无关文献)
使用 NOT 操作符排除非生物学领域的文献:
# 排除化学/材料科学
python scripts/get_pdf_links.py --search 'speciation NOT (chemistry OR material OR "chemical speciation")' --limit 100 --output links.json
# 排除临床/细胞生物学(保留进化生物学)
python scripts/get_pdf_links.py --search 'hybridization NOT (cell OR "in vitro" OR cancer)' --limit 100 --output links.json
| 领域 | 推荐数据源 | 原因 |
|---|---|---|
| 进化生物学 | PubMed(默认) | Europe PMC 偏向临床医学,"hybridization" 返回细胞杂交而非物种杂交 |
| 生态学 | PubMed(默认) | 更广泛的生物学覆盖,不限于生物医学 |
| 临床医学 | Europe PMC(--use-europepmc) | 更精准的临床医学文献 |
| 药学 | Europe PMC(--use-europepmc) | 专注于药物开发和临床试验 |
# 进化生物学 - 使用 PubMed(默认)
python scripts/get_pdf_links.py --search '"hybrid speciation"' --limit 100 --output links.json
# 临床医学 - 使用 Europe PMC
python scripts/get_pdf_links.py --search 'cancer immunotherapy' --use-europepmc --limit 100 --output links.json
以下检索策略已通过实际测试验证:
| 检索式 | 相关性 | 有全文占比 | 备注 |
|---|---|---|---|
"hybrid speciation" | 100% | 56.7% (17/30) | 推荐用于杂交物种形成 |
speciation AND (evolution OR introgression) | 70-80% | 40% (12/30) | 推荐用于宽泛主题 |
speciation[Title] | 25% | 33% (10/30) | 不推荐(术语歧义严重) |
是否检索核心概念(如"杂交物种形成")?
├─ 是 → 使用精确短语搜索:"hybrid speciation"
└─ 否 → 是否检索宽泛主题?
├─ 是 → 使用上下文感知:speciation AND (evolution OR introgression)
└─ 否 → 是否需要极高精度?
├─ 是 → 使用字段限定:term[Title] OR term[MeSH]
└─ 否 → 使用排除式:term NOT (unrelated_terms)