# Journal Paper Toolkit

> 学术文献端到端工作流：PubMed 主题检索 + 本地 2026 JCR 影响因子/分区筛选 + academic-search 跨库扩展 + ScanSci PDF 批量下载。当用户要「查文献并按 IF 筛选」「下载 PDF」 「做系统综述」「扩展 Semantic Scholar/OpenAlex 检索」时使用。触发词：文献检索、影响因子筛选、 JCR 分区、批量下载 PDF、ScanSci、academic-search、journal-paper-toolkit、PubMed IF。

- Skill: `caijipython/journal-paper-toolkit` (Agent Skill, multi-file: 16 files)
- Install (CLI): `npx skillmds@latest add caijipython/journal-paper-toolkit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/caijipython/journal-paper-toolkit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: caijipython (https://skillmd.com/u/caijipython)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/caijipython/journal-paper-toolkit

---


# Journal Paper Toolkit

将三个能力串联为一条 Agent 可执行流水线：

| 阶段 | 工具 | 职责 |
|------|------|------|
| ① 影响因子表 | `convert_jcr_xls.py` / `build_journal_index.py` | 从用户 JCR Excel 生成本地索引（约 2.2 万 SCI 期刊） |
| ② PubMed + IF 筛选 | `search_pubmed.py` | 主题检索、年份/类型过滤、按 IF/分区硬筛、导出 MD/CSV/BibTeX/DOI |
| ③ 跨库扩展 | **academic-search** skill | Semantic Scholar、OpenAlex、Crossref、Unpaywall、系统综述/PRISMA |
| ④ PDF 清单 | `make_pdf_manifest.py` | 合并 IF 信息，生成可审计的 PDF 下载 manifest |
| ⑤ PDF 下载 | **ScanSci PDF** CLI | OA → 出版商 API → 机构登录 → 批量落盘 |

技能根目录：`~/.cursor/skills/journal-paper-toolkit`（或本仓库 `journal-paper-toolkit/`）

## 前置安装

```powershell
# 复制到 Cursor skills 目录
Copy-Item -Recurse journal-paper-toolkit "$env:USERPROFILE\.cursor\skills\journal-paper-toolkit"

pip install -r journal-paper-toolkit/requirements.txt
pip install "scansci-pdf[cloakbrowser]"
scansci-pdf check

# academic-search（若未安装）
npx skills add ustc-ai4science/academic-search -g -y
```

JCR 数据源（用户本地，不提交 Git）：

```
C:\Users\MI\Desktop\副本2026SCI期刊影响因子.xls
```

## 一键流水线

```powershell
cd journal-paper-toolkit

# 完整流程：初始化 JCR -> PubMed 检索 -> 生成 manifest -> 准备 ScanSci 批次
python scripts/run_pipeline.py run-all `
  --terms "air pollution" "childhood asthma" `
  --mode AND `
  --year-from 2020 --year-to 2026 `
  --min-if 5 `
  --quartile Q1 `
  --max 30 `
  --work-dir ../work
```

输出在 `work/`：

- `litsearch_results/results.md` — 排序表格
- `litsearch_results/dois.txt` — DOI 列表
- `pdf_manifest.csv` — PDF 下载清单（含 IF/分区）
- `scansci_batch/doi_batch.txt` — 供 ScanSci 批量下载

## 分步执行

### 阶段 0：准备影响因子表

```powershell
python scripts/run_pipeline.py init --work-dir ../work
```

或分别运行：

```powershell
python scripts/convert_jcr_xls.py "C:\Users\MI\Desktop\副本2026SCI期刊影响因子.xls"
python scripts/build_journal_index.py --input "C:\Users\MI\Desktop\副本2026SCI期刊影响因子.xls" --output ../work/journal_index.json
```

### 阶段 1：PubMed 检索 + IF 筛选

先与用户确认：主题词、年份、研究类型、**IF 门槛**（不限 / IF≥5 / IF≥10 / 仅 Q1）。

```powershell
python scripts/search_pubmed.py `
  --terms "air pollution" "childhood asthma" `
  --mode AND `
  --year-from 2020 --year-to 2026 `
  --types review meta-analysis `
  --min-if 5 `
  --quartile Q1 `
  --max 80 `
  --email "your@email.com" `
  --out-dir "../work/litsearch_results"
```

**筛选规则**：指定 `--min-if` 或 `--quartile` 时，不在 JCR 表中的期刊会被剔除。

### 阶段 2：跨库扩展（academic-search）

当 PubMed + IF 筛选结果不足，或需要引用数/OA 状态时：

1. 读取 `~/.cursor/skills/academic-search/SKILL.md`
2. 在 Semantic Scholar / OpenAlex 扩展 query（2–3 个互补 query）
3. 用 DOI/PMID 与阶段 1 结果去重合并
4. 将新 DOI 追加到 manifest 或 `dois.txt`

### 阶段 3：生成 PDF 下载清单

```powershell
python scripts/run_pipeline.py manifest --work-dir ../work
```

### 阶段 4：批量下载 PDF（ScanSci PDF）

```powershell
python scripts/run_pipeline.py batch --work-dir ../work
python scripts/run_pipeline.py download --work-dir ../work --output D:\papers
```

或直接：

```powershell
scansci-pdf batch "../work/scansci_batch/doi_batch.txt" --output "D:\papers"
```

机构访问（按需）：

```powershell
scansci-pdf elsevier-setup --api-key YOUR_KEY
scansci-pdf login --url https://www.sciencedirect.com/
```

## 典型 Agent 工作流

### A. 「找 IF>5 的队列研究并下载」

1. `run_pipeline.py init`
2. `run_pipeline.py search --terms ... --min-if 5 --types cohort`
3. 展示 `results.md` 给用户确认
4. `run_pipeline.py manifest` → `batch` → `download`

### B. 「扩展检索 + 引用排序 + 下载」

1. academic-search 在 S2/OpenAlex 扩展并导出 DOI
2. 与 PubMed 结果按 DOI 去重
3. `make_pdf_manifest.py` 用 JCR 表做 IF 后筛
4. ScanSci 批量下载

### C. 「系统综述 / PRISMA」

1. academic-search 主导检索与筛选记录
2. 本 toolkit 的 JCR 表用于期刊质量分层
3. ScanSci 下载纳入文献全文

## 配置清单

| 项 | 必填 | 说明 |
|----|------|------|
| NCBI Email | 建议 | `--email` 或环境变量 `NCBI_EMAIL` |
| NCBI API Key | 否 | 提速，环境变量 `NCBI_API_KEY` |
| JCR Excel | 是（首次） | 桌面 `副本2026SCI期刊影响因子.xls` |
| S2 API Key | 建议 | academic-search 跨库检索 |
| ScanSci | 下载时需要 | `pip install scansci-pdf` |
| Elsevier API | 否 | ScienceDirect 全文加速 |

## 外部仓库

- [academic-search](https://github.com/ustc-ai4science/academic-search) — Cursor Agent 学术检索
- [scansci-pdf](https://github.com/Rimagination/scansci-pdf) — PDF 下载 CLI / MCP

## 边界说明

- **academic-search**：只下载合法开放获取 PDF，生成 manifest。
- **scansci-pdf**：多源下载（含机构登录、Sci-Hub 等），由用户自行承担合规责任。
- 批量下载前应先向用户展示 manifest 并确认。

