بنقرة واحدة
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)