[IMPORTANT: The user has invoked the "paper-recommender" skill, indicating they want you to follow its instructions. The full skill content is loaded below.]
---
name: paper-recommender
description: "每日定时推送高质量论文推荐 — PubMed检索 → Hermes+Claude双重评估 → 仅推最优1篇 → HTML深度解读"
version: 2.4.0
author: Hermes
tags: [PubMed, 论文推荐, Claude评估, 文献解读, 科研]
---
# 📚 每日论文推荐工作流 (Paper Recommender)
## 职责
根据用户的6个研究兴趣方向,每日定时从PubMed检索近期高质量论文,经过Hermes+Claude双重评估后,**只选最优的1篇**,下载PDF+提取原图,制作公众号风格的HTML深度解读文件并推送。
## 用户研究方向
1. 帕金森病(PD) / GZR18 / α-synuclein
2. 神经炎症 / 小胶质细胞 / 星形胶质细胞
3. 细胞死亡方式 (Mitoxyperiosis / 铁死亡 / 焦亡 / 泛素化降解)
4. 外泌体 / 细胞外囊泡 / 神经退行性疾病
5. 脑缺血 / 脑卒中 / 神经保护
6. 生信分析 / 单细胞测序 / 多组学
## ⚡ 用户核心课题(跨所有方向的超优先主题)
**博一课题**:Warburg乳酸 → PCAF介导RhoA K118/K162乳酸化 → RhoA持续激活 → 线粒体远离质膜 → 拮抗mitoxyperiosis
所有方向的论文推荐,只要与以下关键词相关的论文**自动获得更高优先级**,应优先于同评分不相关的论文推送:
- Mitoxyperiosis / 线粒体-质膜接触 / 新型细胞死亡
- 乳酸化修饰(Kla) / PCAF / p300 / 组蛋白乳酸化
- RhoA信号 / 细胞骨架重排 / 小G蛋白修饰
- Warburg效应 / 肿瘤代谢 / LDHA抑制
- 糖酵解 / 乳酸代谢 / 肿瘤免疫代谢
- 禁食疗法 / 卡路里限制 / 联合免疫治疗
- 代谢组学 / 能量代谢 / 肿瘤微环境
评估论文时,额外增加一个维度:**"课题借鉴价值"** — 这篇论文中有什么技术、概念、实验设计可以直接复用到用户的mitoxyperiosis-乳酸化课题?
## 定时推送安排
| 时间 | 主题 | 关键词 |
|:----:|------|--------|
| 08:00 | PD/帕金森病 | Parkinson's disease, α-synuclein, MPTP, dopamine neuron |
| 11:00 | 神经炎症/胶质细胞 | neuroinflammation, microglia, astrocyte, NLRP3 |
| 13:00 | 细胞死亡/信号通路 | cell death, mitoxyperiosis, ferroptosis, ubiquitination |
| 15:00 | 外泌体/细胞通讯 | exosome, extracellular vesicle, neural, brain |
| 17:00 | 脑缺血/神经保护 | cerebral ischemia, stroke, neuroprotection, MCAO |
| 19:00 | 生信/前沿技术 | single-cell, multi-omics, bioinformatics, spatial transcriptomics |
## ⚠️ 已知工具陷阱
### 文件系统隔离(重要!)
`execute_code` 运行在沙箱环境中,**不能直接访问** `terminal` 工具写入 `/tmp/` 或 `$HOME/` 的文件。反之亦然。
- ❌ 错误做法:terminal写入`/tmp/fig1_b64.txt`,然后用execute_code的`open()`读取 → 文件不存在
- ✅ 正确做法1:所有数据处理在terminal中完成(Python脚本通过`python script.py`执行)
- ✅ 正确做法2:将数据处理写成`.py`文件写入磁盘,再用terminal(`python path/to/script.py`)执行
### 大文件HTML生成
当HTML嵌入base64图片时(5张Nature原图 ≈ 4MB),`write_file`会因大小限制失败。
- ❌ 不要直接用write_file写4MB+的HTML
- ✅ 策略:写一个Python builder脚本到磁盘(`write_file → build_html.py`),然后`terminal("python build_html.py")`执行它
### Claude CLI 长提示词超时陷阱
claude -p 传入大段文本时容易超时(exit code 124,返回空),特别是在Windows git-bash环境。
- ❌ 一次性传入4篇论文的完整摘要+评估指令 → 超时
- ✅ 策略1:将评估指令简化,每篇论文控制到1-3句关键信息;或拆分为多次调用分别评估单篇
- ✅ 策略2:用 `head -N` 或 `tail -N` 截断输出(如 `claude -p "评估..." 2>&1 | head -60`),防止Claude生成过长内容导致超时。即使Claude内部未完成,前60行通常已包含评分结果
### Cell Press PII清理模式(重要!)
PubMed esummary返回的PII含括号和连字符(如 `S0896-6273(26)00386-7`),CDN URL需要去掉这些字符:
- ❌ `tr -d '()'` → 只去除括号,留下连字符 → CDN返回404
- ✅ `tr -d '()-'` → 同时去除括号和连字符 → CDN返回200
- 详见 `references/figure-download-patterns.md` 中的修正实例
### Windows Python路径陷阱
在 Windows git-bash 中,Python 脚本不识别 MSYS 路径格式(`/c/Users/...`):
- ❌ `open("/c/Users/forgase/fig1_b64.txt")` → FileNotFoundError
- ✅ `open("C:/Users/forgase/fig1_b64.txt")` — 正斜杠在 Windows Python 中可识别
- 同理,`python3` 命令在 Windows 上可能被应用执行别名拦截 → 始终使用 `python`
## 执行流程(完整版)
### Step 1: PubMed检索 — 两阶段策略
**执行位置:terminal 而非 execute_code**
PubMed API调用应在 `terminal` 中通过 `python -c "..."` 或写脚本后执行。`terminal` 中的 Python 连接更稳定,且结果可被后续terminal命令使用(写入文件、管道传递)。避免在 `execute_code` 中做PubMed检索——沙箱环境的网络连接可能不稳定,且JSON结果无法跨沙箱传递给terminal。
**日期范围两种方式(方式B更可靠)**:
```python
# 方式A: mindate/maxdate 参数(有时返回0结果,不可靠)
params = {
'db': 'pubmed', 'term': query,
'mindate': '<3个月前>', 'maxdate': '<今天>',
'datetype': 'pdat', 'retmax': 15, 'retmode': 'json'
}
# 方式B: [dp] 查询语法(推荐,已验证可靠)
query = '(ferroptosis[Title/Abstract] OR ...) AND ("2026/03/01"[dp] : "2026/06/12"[dp])'
params = {
'db': 'pubmed', 'term': query,
'retmax': 15, 'retmode': 'json'
}
```
`dp` (Date - Publication) 语法格式:`"YYYY/MM/DD"[dp] : "YYYY/MM/DD"[dp]`。日期之间需要空格+冒号+空格。此方式不受 `mindate/maxdate` 参数兼容性问题影响。
详见 `references/pubmed-API-patterns.md` 第4节。
**阶段A — 主题搜索**:用关键词搜该方向近期论文
**阶段B — 高IF期刊过滤**:用主题词 + `("Nature"[Journal] OR "Cell"[Journal] OR ...)` 格式搜
⚠️ 关键陷阱:
- `sort=date` 被PubMed忽略(返回warning),不要用
- 期刊名必须用 `"全称"[Journal]` 格式,裸词会被翻译为MeSH词条
- 复杂查询在curl中容易URL编码失败,优先用Python
- PubMed JSON返回的ID列表键名为小写 `idlist`,不是 `IdList`(驼峰)
### Step 2: 获取论文详情并初筛
```python
import urllib.request, json, time
# 获取元数据
url = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=<PMIDs>&retmode=json'
# 获取摘要
url = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=<PMIDs>&retmode=xml'
```
**初筛硬性门槛**(必须同时满足):
1. IF > 10 或领域顶刊
2. 2026年3月后发表
3. 与用户研究方向直接相关
4. 原创研究(pubtype不含Review)
5. 非 News & Views / Letter / 编辑评论
6. **有作者(推荐用 efetch XML 确认,而非 esummary 的 hascreator 字段)**
- `esummary`的`hascreator`字段有时不可靠:已验证所有高IF期刊论文均返回`hascreator='N'`(即使是多作者原创研究)。
- 改用 efetch XML:统计`<Author>`标签数(`len(re.findall(r'<Author>', xml_text))`),大于0即有作者。
- 若只能用 esummary:不要仅因`hascreator='N'`排除——结合`pubtype`和`HasAbstract`综合判断。
### Step 3: Claude Code深度评估(Hermes + Claude 双重评判)
将经过初筛的候选论文交给 Claude Code 严格评估:
```
claude -p "严格评估以下论文,从5个维度各评1-10分..."
```
**5维度评分**:
1. **逻辑完整性** (1-10):完整正反验证(gain+loss of function)、KO/KI模型
2. **方法学水平** (1-10):前沿技术(单细胞测序、冷冻电镜、活细胞成像、TurboID等)
3. **创新性** (1-10):新概念/新机制/新方法,首次报道
4. **可借鉴性** (1-10):实验设计是否值得用户在自己的课题中参考 **← 这是最关键的维度**
5. **临床转化潜力** (1-10):体内验证或治疗意义
### Step 4: 唯一推荐(核心规则)
- Claude评分 < 30分(平均<6分)或任何单维度 < 5分 → **不推荐**,跳过
- 多个候选都达标 → **只选最优的1篇**,不要让用户选
- Hermes再次确认质量 + 相关性 + 可借鉴性 → 只有双方都确认才通过
- **如果这篇研究方向不匹配(如planarian flatworm研究),即使评分高也不能推**
### Step 5: 下载PDF + 提取Figure图片
**PDF下载**:
- Nature系列: `https://www.nature.com/articles/{article_id}.pdf`(已验证:Nature, Nat Neurosci, Nat Med, Nat Commun均可下载)
- Cell Press/Elsevier: PDF有ScienceDirect防护,通常无法通过curl下载
- 所有期刊的Figure图片可通过CDN下载(详见`references/figure-download-patterns.md`)
- 注意:部分期刊有付费墙,PDF可能无法下载,此时跳过PDF但继续下载Figure图片
### Nature系列PDF下载注意
- Nature系列: `https://www.nature.com/articles/{article_id}.pdf`(已验证:Nature, Nat Neurosci, Nat Med可下载真实PDF)
- **Nat Commun PDF可能为HTML**:`file`命令检查下载文件,若为"HTML document"则非真实PDF(反爬重定向)。不影响Figure图片下载(CDN独立于PDF)。
- Cell Press/Elsevier: PDF有ScienceDirect防护,通常无法通过curl下载
**Figure提取(Nature系列通用模式 — 已验证 Nature, Nat Neurosci, Nat Med, Nat Commun)**:
```bash
# 1. 从HTML中提取所有figure图片URL(通用模式,匹配所有s415XX系列期刊)
curl -s -L -H "User-Agent: Mozilla/5.0" "https://www.nature.com/articles/{article_id}" \
| grep -oP 'https://media\.springernature\.com/[^"'"'"'<>]+s415\d\d[^"'"'"'<>]*\.(?:png|jpg|webp)' \
| sort -u
# 2. 暴力枚举法(推荐,因为url模式固定—不依赖HTML解析)
for fig in 1 2 3 4 5 6 7; do
url="https://media.springernature.com/lw1200/springer-static/image/art%3A10.1038%2F${ARTICLE_ID}/MediaObjects/${JOURNAL_ID}_${YEAR}_${ARTICLE_NUM}_Fig${fig}_HTML.png"
code=$(curl -s -o /dev/null -w "%{http_code}" -L "$url" -H "User-Agent: Mozilla/5.0")
if [ "$code" != "404" ]; then
curl -s -L "$url" -H "User-Agent: Mozilla/5.0" | base64 -w 0 > "/c/Users/forgase/fig${fig}_b64.txt"
fi
done
```
**Figure Caption提取(Nature系列 — 紧跟图片下载之后执行)**:
提取的caption将用于Step 6 HTML的逐图解读部分。
```bash
curl -s -L -H "User-Agent: Mozilla/5.0" "https://www.nature.com/articles/${ARTICLE_ID}" \
| python -c "
import sys, re
html = sys.stdin.read()
figs = re.findall(r'<fig[^>]*>.*?<figcaption[^>]*>(.*?)</figcaption>', html, re.DOTALL)
for i, fig in enumerate(figs):
clean = re.sub(r'<[^>]+>', '', fig).strip()
print(f'{i+1}|{clean}')
"
```
然后将captions嵌入Python builder脚本中的字典变量。
⚠️ **预印本降级策略**:若上述命令输出为空,检查文章页是否有"unedited version"或"preprint"标记。
此时Figure图片仍可通过CDN下载,但caption需手动构建。策略:
- 基于abstract和论文结构合理推断各Figure内容(已验证可行)
- 将手动编写的caption以Python字典嵌入builder脚本
- 详见 `references/figure-download-patterns.md` "Pre-print / Unedited Version Caption 降级策略"
详见 `references/figure-download-patterns.md` 中的"Figure Caption Extraction"节。
**分辨率选择**:
- `/full/` — 最高分辨率(推荐用于Fig1)
- `/lw1200/` — 宽1200px(其余Figures用此即可)
- `/m685/` — 宽685px(小尺寸)
**已验证的图片URL模式**:
| 期刊 | article_id 示例 | journal_id | URL模式 |
|------|----------------|------------|---------|
| Nature | s41586-026-10597-2 | 41586 | `41586_{year}_{article_num}_Fig{N}_HTML.png` |
| Nat Neurosci | s41593-026-02317-w | 41593 | `41593_{year}_{article_num}_Fig{N}_HTML.png` |
| Nat Med | s41591-026-04393-8 | 41591 | `41591_{year}_{article_num}_Fig{N}_HTML.png` |
| Nat Commun | s41467-026-73538-7 | 41467 | `41467_{year}_{article_num}_Fig{N}_HTML.png` |
- article_num 提取规则:从DOI中提取期刊ID后的倒数第二段(年份后的数字段),去前导零。如 `s41591-026-04393-8` → 编号段为 `04393` → 去前导零 → `4393`;`s41586-026-10480-0` → `10480`(无前导零即可直接使用) → `10480`;`s41593-026-02317-w` → `02317` → `2317`
- 参考 `references/figure-download-patterns.md` 获取各期刊的详细URL模式
### Step 6: 制作公众号风格HTML深度解读 — Python Builder模式
HTML文件要求:
1. 所有图片用base64 data URI嵌入,不使用file://协议
2. 仿公众号排版(简洁卡片风格)
3. 每条结果配"复现建议"(🔬 复现建议:...)
4. 包含论文原图 + 逐图解读 + 文章小结
5. 保存到桌面,文件命名规范:`{主题关键词}_文献解读.html`
**实现方法**(大文件HTML必须用此方式):
由于HTML含多张base64图片(5-7张原图≈10MB),不能直接用`write_file`写入。
```python
# 1. 先读取base64数据(terminal工具写入的文件)
# ⚠️ 重要:Windows Python不识别 MSYS 路径 /c/Users/,必须用 C:/Users/ 格式
fig_b64 = {}
for i in range(1, 8):
path = f"C:/Users/forgase/fig{i}_b64.txt"
if os.path.exists(path):
with open(path, "r") as f:
fig_b64[f"fig{i}"] = f.read().strip()
# 2. 构建HTML字符串(用f-string嵌入base64)
html = f'''...<img src="data:image/png;base64,{fig_b64['fig1']}">...'''
# 3. 写入文件(使用正斜杠路径,Windows Python可识别)
with open("C:/Users/forgase/Desktop/主题_文献解读.html", "w", encoding="utf-8") as f:
f.write(html)
```
**流程总结**(4步):
1. terminal中`curl | base64 -w 0 > /c/Users/forgase/fig{N}_b64.txt` 下载所有图片(保存到用户目录,/tmp/在沙箱中不可用)
2. 用`write_file`将Python builder脚本写入磁盘(不含base64数据,仅模板)
3. terminal中执行该Python脚本(`python C:/Users/forgase/build_html.py` — 读取base64文件 + 构建完整HTML + 写入桌面)
4. 验证文件存在:`ls -la /c/Users/forgase/Desktop/`
**HTML模板风格指南**:
- 头部:渐变深蓝背景 + 白色文字 + 标签徽章
- 评分卡片:flex网格布局,5维度评分条
- 图文解读:Fig依次排列,每个配caption+复现建议
- 文章小结:渐变紫色卡片
- 参考 `references/html-template-structure.md` 获取模板框架
### Step 7: 微信推送(⚠️ 关键:必须附上HTML文件)
**格式要求**(最终消息末尾必须加上 `MEDIA:路径` 发送HTML文件):
```
🔥 {时间} {主题} 论文推荐
🏆 标题...
📅 日期 | 📰 期刊
⭐ Claude评分:X/50
💡 推荐理由:...
MEDIA:C:\Users\forgase\Desktop\{文件名}.html
```
**如果当天没有好论文**:
```
📭 {时间} {主题}
今天这个方向没有找到特别适合你的论文,下次继续关注。
```
**⚠️ 不做这个动作等于白做**:最终推送消息的末尾必须包含 `MEDIA:C:\Users\forgase\Desktop\{文件名}.html` 这一行,这样微信才会把HTML文件当作附件发送给用户。只发文字说"已生成"用户收不到文件。
## 核心原则
- **只推1篇** —— 不要让用户从多个候选中选择
- **宁缺毋滥** —— 没有好论文就不推,不强塞
- **Hermes + Claude 双重把关** —— 都确认完美适合才推
- **不推荐综述**(除非极高价值)
- **不推荐与用户研究方向无关的论文**(即使评分高)
- **推送语言用中文**,但保留英文标题和期刊名
- **⚠️ 必须将HTML文件附在消息中一起发送** — 在最终消息末尾加上 `MEDIA:/path/to/file`,确保用户直接收到文件,不是只发文字
## 参考文件
- `references/pubmed-API-patterns.md` — PubMed E-utilities API详细笔记
- `references/figure-download-patterns.md` — Nature/Cell/Elsevier等期刊的图片URL提取模式
- `references/github-access-patterns.md` — 国内网络环境下载GitHub资源的优先级策略
The user has provided the following instruction alongside the skill invocation: [IMPORTANT: You are running as a scheduled cron job. DELIVERY: Your final response will be automatically delivered to the user — do NOT use send_message or try to deliver the output yourself. Just produce your report/output as your final response and the system handles the rest. SILENT: If there is genuinely nothing new to report, respond with exactly "[SILENT]" (nothing else) to suppress delivery. Never combine [SILENT] with content — either report your findings normally, or say [SILENT] and nothing more.]
你是Hermes,用户的科研助手。加载 paper-recommender skill。
**今日任务**:搜索神经炎症/胶质细胞方向论文,经过Hermes+Claude双重评判后**只推最优的1篇**,做成HTML深度解读并**必须在消息末尾用MEDIA:路径附上HTML文件**。
**主题关键词**:neuroinflammation, microglia, astrocyte, NLRP3, neuro-immune
**⚠️ 额外关注以下交叉领域(与用户博一课题相关,同评分时优先推送)**:
- 肿瘤免疫 / 巨噬细胞 / LPS / TLR4信号与神经炎症的交叉
- 乳酸代谢对胶质细胞功能的调控
- 禁食 / 代谢应激对神经炎症的影响
- 小胶质细胞中的糖酵解转换(Warburg-like)与炎症表型
- 乳酸化修饰在小胶质细胞/星形胶质细胞中的功能
日期范围:最近3个月内发表
期刊要求:IF > 10 或领域顶刊
遵循 paper-recommender skill 的完整6步流程。
**⚠️ 必须:最终微信消息末尾加上 `MEDIA:C:\Users\forgase\Desktop\{文件名}.html`**
论文推荐-11-神经炎症 · Jun 13 11:06
2026-06-13 11:00 · 45 条 · deepseek-v4-flash
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"success": true, "name": "paper-recommender", "description": "每日定时推送高质量论文推荐 — PubMed检索 → Hermes+Claude双重评估 → 仅推最优1篇 → HTML深度解读", "tags": ["PubMed", "论文推荐", "Claude评估", "文献解读", "科研"], "related_skills": [], "content": "---\nname: paper-recommender\ndescription: \"每日定时推送高质量论文推荐 — PubMed检索 → Hermes+Claude双重评估 → 仅推最优1篇 → HTML深度解读\"\nversion: 2.4.0\nauthor: Hermes\ntags: [PubMed, 论文推荐, Claude评估, 文献解读, 科研]\n---\n\n# 📚 每日论文推荐工作流 (Paper Recommender)\n\n## 职责\n根据用户的6个研究兴趣方向,每日定时从PubMed检索近期高质量论文,经过Hermes+Claude双重评估后,**只选最优的1篇**,下载PDF+提取原图,制作公众号风格的HTML深度解读文件并推送。\n\n## 用户研究方向\n1. 帕金森病(PD) / GZR18 / α-synuclein\n2. 神经炎症 / 小胶质细胞 / 星形胶质细胞\n3. 细胞死亡方式 (Mitoxyperiosis / 铁死亡 / 焦亡 / 泛素化降解)\n4. 外泌体 / 细胞外囊泡 / 神经退行性疾病\n5. 脑缺血 / 脑卒中 / 神经保护\n6. 生信分析 / 单细胞测序 / 多组学\n\n## ⚡ 用户核心课题(跨所有方向的超优先主题)\n**博一课题**:Warburg乳酸 → PCAF介导RhoA K118/K162乳酸化 → RhoA持续激活 → 线粒体远离质膜 → 拮抗mitoxyperiosis\n\n所有方向的论文推荐,只要与以下关键词相关的论文**自动获得更高优先级**,应优先于同评分不相关的论文推送:\n- Mitoxyperiosis / 线粒体-质膜接触 / 新型细胞死亡\n- 乳酸化修饰(Kla) / PCAF / p300 / 组蛋白乳酸化\n- RhoA信号 / 细胞骨架重排 / 小G蛋白修饰\n- Warburg效应 / 肿瘤代谢 / LDHA抑制\n- 糖酵解 / 乳酸代谢 / 肿瘤免疫代谢\n- 禁食疗法 / 卡路里限制 / 联合免疫治疗\n- 代谢组学 / 能量代谢 / 肿瘤微环境\n\n评估论文时,额外增加一个维度:**\"课题借鉴价值\"** — 这篇论文中有什么技术、概念、实验设计可以直接复用到用户的mitoxyperiosis-乳酸化课题?\n\n## 定时推送安排\n\n| 时间 | 主题 | 关键词 |\n|:----:|------|--------|\n| 08:00 | PD/帕金森病 | Parkinson's disease, α-synuclein, MPTP, dopamine neuron |\n| 11:00 | 神经炎症/胶质细胞 | neuroinflammation, microglia, astrocyte, NLRP3 |\n| 13:00 | 细胞死亡/信号通路 | cell death, mitoxyperiosis, ferroptosis, ubiquitination |\n| 15:00 | 外泌体/细胞通讯 | exosome, extracellular vesicle, neural, brain |\n| 17:00 | 脑缺血/神经保护 | cerebral ischemia, stroke, neuroprotection, MCAO |\n| 19:00 | 生信/前沿技术 | single-cell, multi-omics, bioinformatics, spatial transcriptomics |\n\n## ⚠️ 已知工具陷阱\n\n### 文件系统隔离(重要!)\n`execute_code` 运行在沙箱环境中,**不能直接访问** `terminal` 工具写入 `/tmp/` 或 `$HOME/` 的文件。反之亦然。\n- ❌ 错误做法:terminal写入`/tmp/fig1_b64.txt`,然后用execute_code的`open()`读取 → 文件不存在\n- ✅ 正确做法1:所有数据处理在terminal中完成(Python脚本通过`python script.py`执行)\n- ✅ 正确做法2:将数据处理写成`.py`文件写入磁盘,再用terminal(`python path/to/script.py`)执行\n\n### 大文件HTML生成\n当HTML嵌入base64图片时(5张Nature原图 ≈ 4MB),`write_file`会因大小限制失败。\n- ❌ 不要直接用write_file写4MB+的HTML\n- ✅ 策略:写一个Python builder脚本到磁盘(`write_file → build_html.py`),然后`terminal(\"python build_html.py\")`执行它\n\n### Claude CLI 长提示词超时陷阱\nclaude -p 传入大段文本时容易超时(exit code 124,返回空),特别是在Windows git-bash环境。\n- ❌ 一次性传入4篇论文的完整摘要+评估指令 → 超时\n- ✅ 策略1:将评估指令简化,每篇论文控制到1-3句关键信息;或拆分为多次调用分别评估单篇\n- ✅ 策略2:用 `head -N` 或 `tail -N` 截断输出(如 `claude -p \"评估...\" 2>&1 | head -60`),防止Claude生成过长内容导致超时。即使Claude内部未完成,前60行通常已包含评分结果\n\n### Cell Press PII清理模式(重要!)\nPubMed esummary返回的PII含括号和连字符(如 `S0896-6273(26)00386-7`),CDN URL需要去掉这些字符:\n- ❌ `tr -d '()'` → 只去除括号,留下连字符 → CDN返回404\n- ✅ `tr -d '()-'` → 同时去除括号和连字符 → CDN返回200\n- 详见 `references/figure-download-patterns.md` 中的修正实例\n\n### Windows Python路径陷阱\n在 Windows git-bash 中,Python 脚本不识别 MSYS 路径格式(`/c/Users/...`):\n- ❌ `open(\"/c/Users/forgase/fig1_b64.txt\")` → FileNotFoundError\n- ✅ `open(\"C:/Users/forgase/fig1_b64.txt\")` — 正斜杠在 Windows Python 中可识别\n- 同理,`python3` 命令在 Windows 上可能被应用执行别名拦截 → 始终使用 `python`\n\n## 执行流程(完整版)\n\n### Step 1: PubMed检索 — 两阶段策略\n\n**执行位置:terminal 而非 execute_code**\nPubMed API调用应在 `terminal` 中通过 `python -c \"...\"` 或写脚本后执行。`terminal` 中的 Python 连接更稳定,且结果可被后续terminal命令使用(写入文件、管道传递)。避免在 `execute_code` 中做PubMed检索——沙箱环境的网络连接可能不稳定,且JSON结果无法跨沙箱传递给terminal。\n\n**日期范围两种方式(方式B更可靠)**:\n```python\n# 方式A: mindate/maxdate 参数(有时返回0结果,不可靠)\nparams = {\n 'db': 'pubmed', 'term': query,\n 'mindate': '<3个月前>', 'maxdate': '<今天>',\n 'datetype': 'pdat', 'retmax': 15, 'retmode': 'json'\n}\n\n# 方式B: [dp] 查询语法(推荐,已验证可靠)\nquery = '(ferroptosis[Title/Abstract] OR ...) AND (\"2026/03/01\"[dp] : \"2026/06/12\"[dp])'\nparams = {\n 'db': 'pubmed', 'term': query,\n 'retmax': 15, 'retmode': 'json'\n}\n```\n`dp` (Date - Publication) 语法格式:`\"YYYY/MM/DD\"[dp] : \"YYYY/MM/DD\"[dp]`。日期之间需要空格+冒号+空格。此方式不受 `mindate/maxdate` 参数兼容性问题影响。\n详见 `references/pubmed-API-patterns.md` 第4节。\n\n**阶段A — 主题搜索**:用关键词搜该方向近期论文\n**阶段B — 高IF期刊过滤**:用主题词 + `(\"Nature\"[Journal] OR \"Cell\"[Journal] OR ...)` 格式搜\n\n⚠️ 关键陷阱:\n- `sort=date` 被PubMed忽略(返回warning),不要用\n- 期刊名必须用 `\"全称\"[Journal]` 格式,裸词会被翻译为MeSH词条\n- 复杂查询在curl中容易URL编码失败,优先用Python\n- PubMed JSON返回的ID列表键名为小写 `idlist`,不是 `IdList`(驼峰)\n\n### Step 2: 获取论文详情并初筛\n\n```python\nimport urllib.request, json, time\n\n# 获取元数据\nurl = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=<PMIDs>&retmode=json'\n# 获取摘要\nurl = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=<PMIDs>&retmode=xml'\n```\n\n**初筛硬性门槛**(必须同时满足):\n1. IF > 10 或领域顶刊\n2. 2026年3月后发表\n3. 与用户研究方向直接相关\n4. 原创研究(pubtype不含Review)\n5. 非 News & Views / Letter / 编辑评论\n6. **有作者(推荐用 efetch XML 确认,而非 esummary 的 hascreator 字段)**\n - `esummary`的`hascreator`字段有时不可靠:已验证所有高IF期刊论文均返回`hascreator='N'`(即使是多作者原创研究)。\n - 改用 efetch XML:统计`<Author>`标签数(`len(re.findall(r'<Author>', xml_text))`),大于0即有作者。\n - 若只能用 esummary:不要仅因`hascreator='N'`排除——结合`pubtype`和`HasAbstract`综合判断。\n\n### Step 3: Claude Code深度评估(Hermes + Claude 双重评判)\n\n将经过初筛的候选论文交给 Claude Code 严格评估:\n```\nclaude -p \"严格评估以下论文,从5个维度各评1-10分...\"\n```\n\n**5维度评分**:\n1. **逻辑完整性** (1-10):完整正反验证(gain+loss of function)、KO/KI模型\n2. **方法学水平** (1-10):前沿技术(单细胞测序、冷冻电镜、活细胞成像、TurboID等)\n3. **创新性** (1-10):新概念/新机制/新方法,首次报道\n4. **可借鉴性** (1-10):实验设计是否值得用户在自己的课题中参考 **← 这是最关键的维度**\n5. **临床转化潜力** (1-10):体内验证或治疗意义\n\n### Step 4: 唯一推荐(核心规则)\n\n- Claude评分 < 30分(平均<6分)或任何单维度 < 5分 → **不推荐**,跳过\n- 多个候选都达标 → **只选最优的1篇**,不要让用户选\n- Hermes再次确认质量 + 相关性 + 可借鉴性 → 只有双方都确认才通过\n- **如果这篇研究方向不匹配(如planarian flatworm研究),即使评分高也不能推**\n\n### Step 5: 下载PDF + 提取Figure图片\n\n**PDF下载**:\n- Nature系列: `https://www.nature.com/articles/{article_id}.pdf`(已验证:Nature, Nat Neurosci, Nat Med, Nat Commun均可下载)\n- Cell Press/Elsevier: PDF有ScienceDirect防护,通常无法通过curl下载\n- 所有期刊的Figure图片可通过CDN下载(详见`references/figure-download-patterns.md`)\n- 注意:部分期刊有付费墙,PDF可能无法下载,此时跳过PDF但继续下载Figure图片\n\n### Nature系列PDF下载注意\n- Nature系列: `https://www.nature.com/articles/{article_id}.pdf`(已验证:Nature, Nat Neurosci, Nat Med可下载真实PDF)\n- **Nat Commun PDF可能为HTML**:`file`命令检查下载文件,若为\"HTML document\"则非真实PDF(反爬重定向)。不影响Figure图片下载(CDN独立于PDF)。\n- Cell Press/Elsevier: PDF有ScienceDirect防护,通常无法通过curl下载\n\n**Figure提取(Nature系列通用模式 — 已验证 Nature, Nat Neurosci, Nat Med, Nat Commun)**:\n```bash\n# 1. 从HTML中提取所有figure图片URL(通用模式,匹配所有s415XX系列期刊)\ncurl -s -L -H \"User-Agent: Mozilla/5.0\" \"https://www.nature.com/articles/{article_id}\" \\\n | grep -oP 'https://media\\.springernature\\.com/[^\"'\"'\"'<>]+s415\\d\\d[^\"'\"'\"'<>]*\\.(?:png|jpg|webp)' \\\n | sort -u\n\n# 2. 暴力枚举法(推荐,因为url模式固定—不依赖HTML解析)\nfor fig in 1 2 3 4 5 6 7; do\n url=\"https://media.springernature.com/lw1200/springer-static/image/art%3A10.1038%2F${ARTICLE_ID}/MediaObjects/${JOURNAL_ID}_${YEAR}_${ARTICLE_NUM}_Fig${fig}_HTML.png\"\n code=$(curl -s -o /dev/null -w \"%{http_code}\" -L \"$url\" -H \"User-Agent: Mozilla/5.0\")\n if [ \"$code\" != \"404\" ]; then\n curl -s -L \"$url\" -H \"User-Agent: Mozilla/5.0\" | base64 -w 0 > \"/c/Users/forgase/fig${fig}_b64.txt\"\n fi\ndone\n```\n\n**Figure Caption提取(Nature系列 — 紧跟图片下载之后执行)**:\n提取的caption将用于Step 6 HTML的逐图解读部分。\n```bash\ncurl -s -L -H \"User-Agent: Mozilla/5.0\" \"https://www.nature.com/articles/${ARTICLE_ID}\" \\\n | python -c \"\nimport sys, re\nhtml = sys.stdin.read()\nfigs = re.findall(r'<fig[^>]*>.*?<figcaption[^>]*>(.*?)</figcaption>', html, re.DOTALL)\nfor i, fig in enumerate(figs):\n clean = re.sub(r'<[^>]+>', '', fig).strip()\n print(f'{i+1}|{clean}')\n\"\n```\n然后将captions嵌入Python builder脚本中的字典变量。\n\n⚠️ **预印本降级策略**:若上述命令输出为空,检查文章页是否有\"unedited version\"或\"preprint\"标记。\n此时Figure图片仍可通过CDN下载,但caption需手动构建。策略:\n- 基于abstract和论文结构合理推断各Figure内容(已验证可行)\n- 将手动编写的caption以Python字典嵌入builder脚本\n- 详见 `references/figure-download-patterns.md` \"Pre-print / Unedited Version Caption 降级策略\"\n详见 `references/figure-download-patterns.md` 中的\"Figure Caption Extraction\"节。\n\n**分辨率选择**:\n- `/full/` — 最高分辨率(推荐用于Fig1)\n- `/lw1200/` — 宽1200px(其余Figures用此即可)\n- `/m685/` — 宽685px(小尺寸)\n\n**已验证的图片URL模式**:\n| 期刊 | article_id 示例 | journal_id | URL模式 |\n|------|----------------|------------|---------|\n| Nature | s41586-026-10597-2 | 41586 | `41586_{year}_{article_num}_Fig{N}_HTML.png` |\n| Nat Neurosci | s41593-026-02317-w | 41593 | `41593_{year}_{article_num}_Fig{N}_HTML.png` |\n| Nat Med | s41591-026-04393-8 | 41591 | `41591_{year}_{article_num}_Fig{N}_HTML.png` |\n| Nat Commun | s41467-026-73538-7 | 41467 | `41467_{year}_{article_num}_Fig{N}_HTML.png` |\n\n- article_num 提取规则:从DOI中提取期刊ID后的倒数第二段(年份后的数字段),去前导零。如 `s41591-026-04393-8` → 编号段为 `04393` → 去前导零 → `4393`;`s41586-026-10480-0` → `10480`(无前导零即可直接使用) → `10480`;`s41593-026-02317-w` → `02317` → `2317`\n- 参考 `references/figure-download-patterns.md` 获取各期刊的详细URL模式\n\n### Step 6: 制作公众号风格HTML深度解读 — Python Builder模式\n\nHTML文件要求:\n1. 所有图片用base64 data URI嵌入,不使用file://协议\n2. 仿公众号排版(简洁卡片风格)\n3. 每条结果配\"复现建议\"(🔬 复现建议:...)\n4. 包含论文原图 + 逐图解读 + 文章小结\n5. 保存到桌面,文件命名规范:`{主题关键词}_文献解读.html`\n\n**实现方法**(大文件HTML必须用此方式):\n由于HTML含多张base64图片(5-7张原图≈10MB),不能直接用`write_file`写入。\n```python\n# 1. 先读取base64数据(terminal工具写入的文件)\n# ⚠️ 重要:Windows Python不识别 MSYS 路径 /c/Users/,必须用 C:/Users/ 格式\nfig_b64 = {}\nfor i in range(1, 8):\n path = f\"C:/Users/forgase/fig{i}_b64.txt\"\n if os.path.exists(path):\n with open(path, \"r\") as f:\n fig_b64[f\"fig{i}\"] = f.read().strip()\n\n# 2. 构建HTML字符串(用f-string嵌入base64)\nhtml = f'''...<img src=\"data:image/png;base64,{fig_b64['fig1']}\">...'''\n\n# 3. 写入文件(使用正斜杠路径,Windows Python可识别)\nwith open(\"C:/Users/forgase/Desktop/主题_文献解读.html\", \"w\", encoding=\"utf-8\") as f:\n f.write(html)\n```\n\n**流程总结**(4步):\n1. terminal中`curl | base64 -w 0 > /c/Users/forgase/fig{N}_b64.txt` 下载所有图片(保存到用户目录,/tmp/在沙箱中不可用)\n2. 用`write_file`将Python builder脚本写入磁盘(不含base64数据,仅模板)\n3. terminal中执行该Python脚本(`python C:/Users/forgase/build_html.py` — 读取base64文件 + 构建完整HTML + 写入桌面)\n4. 验证文件存在:`ls -la /c/Users/forgase/Desktop/`\n\n**HTML模板风格指南**:\n- 头部:渐变深蓝背景 + 白色文字 + 标签徽章\n- 评分卡片:flex网格布局,5维度评分条\n- 图文解读:Fig依次排列,每个配caption+复现建议\n- 文章小结:渐变紫色卡片\n- 参考 `references/html-template-structure.md` 获取模板框架\n\n### Step 7: 微信推送(⚠️ 关键:必须附上HTML文件)\n\n**格式要求**(最终消息末尾必须加上 `MEDIA:路径` 发送HTML文件):\n```\n🔥 {时间} {主题} 论文推荐\n\n🏆 标题...\n📅 日期 | 📰 期刊\n⭐ Claude评分:X/50\n💡 推荐理由:...\n\nMEDIA:C:\\Users\\forgase\\Desktop\\{文件名}.html\n```\n\n**如果当天没有好论文**:\n```\n📭 {时间} {主题}\n今天这个方向没有找到特别适合你的论文,下次继续关注。\n```\n\n**⚠️ 不做这个动作等于白做**:最终推送消息的末尾必须包含 `MEDIA:C:\\Users\\forgase\\Desktop\\{文件名}.html` 这一行,这样微信才会把HTML文件当作附件发送给用户。只发文字说\"已生成\"用户收不到文件。\n\n## 核心原则\n- **只推1篇** —— 不要让用户从多个候选中选择\n- **宁缺毋滥** —— 没有好论文就不推,不强塞\n- **Hermes + Claude 双重把关** —— 都确认完美适合才推\n- **不推荐综述**(除非极高价值)\n- **不推荐与用户研究方向无关的论文**(即使评分高)\n- **推送语言用中文**,但保留英文标题和期刊名\n- **⚠️ 必须将HTML文件附在消息中一起发送** — 在最终消息末尾加上 `MEDIA:/path/to/file`,确保用户直接收到文件,不是只发文字\n\n## 参考文件\n- `references/pubmed-API-patterns.md` — PubMed E-utilities API详细笔记\n- `references/figure-download-patterns.md` — Nature/Cell/Elsevier等期刊的图片URL提取模式\n- `references/github-access-patterns.md` — 国内网络环境下载GitHub资源的优先级策略\n", "path": "productivity\\paper-recommender\\SKILL.md", "skill_dir": "C:\\Users\\forgase\\AppData\\Local\\hermes\\skills\\productivity\\paper-recommender", "linked_files": {"references": ["references\\figure-download-patterns.md", "references\\github-access-patterns.md", "references\\html-template-structure.md", "references\\pubmed-API-patterns.md", "references\\user-project-context.md"]}, "usage_hint": "To view linked files, call skill_view(name, file_path) where file_path is e.g. 'references/api.md' or 'assets/config.yaml'", "required_environment_variables": [], "required_commands": [], "missing_required_environment_variables": [], "missing_credential_files": [], "missing_required_commands": [], "setup_needed": false, "setup_skipped": false, "readiness_status": "available"}
tool · 2026-06-13 11:06
{"success": true, "name": "paper-recommender", "file": "references/pubmed-API-patterns.md", "content": "# PubMed E-utilities API 实战笔记\n\n## 搜索API (esearch)\n\n### 基础结构\n```\nbase: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi\nparams:\n db=pubmed\n term=<查询表达式>\n mindate/maxdate — 日期范围\n datetype=pdat (publication date)\n retmax=N — 最大返回数\n retmode=json\n```\n\n### 已验证的关键查询模式\n\n**1. 主题搜索 + 高影响因子期刊过滤**\n```python\nquery = 'Parkinson AND (\"Nat Neurosci\"[Journal] OR \"Neuron\"[Journal] OR \"Nat Med\"[Journal])'\n```\n- 期刊名必须用 `\"全称\"[Journal]` 格式\n- 不加 `[Journal]` 标签时,`Neuron` 被翻译为 MeSH 的 neurons(神经元)\n- `Brain` 被翻译为 MeSH 的 brain(大脑解剖结构)\n\n**2. 细胞死亡方向搜索(已验证)**\n```python\nquery = '(ferroptosis[Title/Abstract] OR pyroptosis[Title/Abstract] OR ' + \\\n 'necroptosis[Title/Abstract] OR PANoptosis[Title/Abstract] OR ' + \\\n 'cuproptosis[Title/Abstract] OR mitophagy[Title/Abstract]) ' + \\\n 'AND (Nature[Journal] OR \"Cell\"[Journal] OR \"Nat Cell Biol\"[Journal] OR ' + \\\n '\"Cell Death Differ\"[Journal] OR \"Nat Commun\"[Journal])'\n```\n这个模式成功返回了 Nature 的精胺/铁死亡论文。\n\n**3. 已测试的有效期刊标签**\n| 期刊 | 标签 |\n|------|------|\n| Nature | `\"Nature\"[Journal]` |\n| Nature Communications | `\"Nat Commun\"[Journal]` |\n| Nature Medicine | `\"Nat Med\"[Journal]` |\n| Neuron | `\"Neuron\"[Journal]` |\n| Nature Neuroscience | `\"Nat Neurosci\"[Journal]` |\n| Science Advances | `\"Sci Adv\"[Journal]` |\n| Cell | `\"Cell\"[Journal]` |\n| Cell Reports | `\"Cell Rep\"[Journal]` |\n| Cell Death & Differentiation | `\"Cell Death Differ\"[Journal]` |\n| EMBO Journal | `\"EMBO J\"[Journal]` |\n| Molecular Neurodegeneration | `\"Mol Neurodegener\"[Journal]` |\n| EBioMedicine | `\"EBioMedicine\"[Journal]` |\n| Acta Neuropathologica | `\"Acta Neuropathol\"[Journal]` |\n| Brain | `\"Brain\"[Journal]` |\n| Lancet Neurology | `\"Lancet Neurol\"[Journal]` |\n| Developmental Cell | `\"Dev Cell\"[Journal]` |\n| Nature Structural & Molecular Biology | `\"Nat Struct Mol Biol\"[Journal]` |\n| Cell Metabolism | `\"Cell Metab\"[Journal]` |\n| Molecular Cell | `\"Mol Cell\"[Journal]` |\n| Nature Cell Biology | `\"Nat Cell Biol\"[Journal]` |\n\n### 已验证无用的参数\n- `sort=date` — 返回 warning \"Unknown sort schema 'date' ignored\",无效果\n\n## 获取详情API (esummary)\n\n```python\nurl = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=<PMID列表>&retmode=json'\n```\n\n关键字段:\n- `pubtype` — 文章类型(含 \"Review\" 则为综述)\n- `source` — 期刊缩写名\n- `articleids[].idtype == 'doi'` — DOI\n- `attributes` — 包含 \"Has Abstract\" 则有摘要\n- `pubdate` — 发表日期\n- `title` — 标题\n\n⚠️ JSON的id列表键名是小写 `idlist`(如 `data['esearchresult']['idlist']`),不是驼峰的 `IdList`。\n\n## 获取摘要API (efetch)\n\n```python\n# XML模式(含结构化信息)\nurl = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=<PMIDs>&retmode=xml'\n\n# 文本模式(纯文本)\nurl = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=<PMIDs>&retmode=text&rettype=abstract'\n```\n\nXML模式返回结构化数据,适合用正则提取:\n- `<ArticleTitle>` → 标题(需要去除XML标签+解码HTML实体)\n- `<AbstractText>` → 摘要段落(可以有多段,Label属性区分BACKGROUND/METHODS/RESULTS/CONCLUSIONS)\n- `<ELocationID EIdType=\"doi\">` → DOI\n- `<Journal><Title>` → 期刊全名\n- `<PubDate><Year>` + `<Month>` → 发表日期\n\nXML转义字符需要手动替换:`α`=α, `β`=β, `γ`=γ, ` `=空格, `⁠`='', `&`=&, `<`=<, `>`=>\n\n## 获取文章元数据(XML完整模式)\n\n```python\nurl = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=<PMIDs>&retmode=xml'\n```\n此模式返回完整XML,包含:\n- 所有作者的 `<LastName>` 和 `<ForeName>`\n- 所有 `<Keyword>`\n- 完整 `<AbstractText>`(含多个Label段落)\n- `<PublicationTypeList>` 用于排除Review/Letter\n\n## 已知环境陷阱\n\n### 1. SSL连接失败(exit code 35)\n某些环境(git-bash/MSYS2)的 curl SSL 版本与 NCBI 服务器不兼容。\n- 修复1:`curl -k`(跳过证书验证)\n- 修复2:改用 Python 的 `urllib.request`(在本环境中工作可靠)\n- 修复3:更新 curl CA bundle\n\n### 2. URL编码问题\ncurl 命令行中包含 `()\"[]` 等特殊字符时容易解析失败(exit code 3)。\n- 修复:用 Python 的 `urllib.parse.urlencode(params)` 构建查询串\n\n### 3. `sort=date` 无效\nPubMed API 不支持 sort=date,搜索结果的顺序按默认相关性排序。\n\n### 4. `mindate`/`maxdate` + `datetype` 日期过滤可能返回0结果(2026-06发现)\n使用 `mindate` + `maxdate` + `datetype=pdat/ppub/edat` 参数组合对常见查询(如 `ferroptosis[Title/Abstract]`)返回 Count=0,不返回任何PMID。PubMed API的日期参数在此环境下不可靠。\n- **修复**:改用 `dp` (Date - Publication) 范围语法直接在查询串中限定日期:\n ```python\n query = 'ferroptosis[Title/Abstract] AND (\"2026/03/01\"[dp] : \"2026/06/12\"[dp])'\n params = {'db': 'pubmed', 'term': query, 'retmax': 20, 'retmode': 'json'}\n ```\n `dp` 语法格式:`\"YYYY/MM/DD\"[dp] : \"YYYY/MM/DD\"[dp]`(日期之间需加空格、冒号、空格)。此方式已验证可靠(2026-06-12),可与其他搜索条件自由组合(如 AND 期刊过滤)。\n\n### 5. execute_code 中 PubMed API 不稳定\n在 `execute_code` 沙箱中连续调用 PubMed API 时,部分请求返回空结果(即使同一查询在前一个调用中返回了完整的 count 和 idlist)。推测与沙箱环境的连接复用或速率限制有关。\n- 修复:将 PubMed API 调用移至 `terminal(\"python -c \\\"...\\\"\")` 中执行。terminal 中的 Python 连接更稳定,返回结果一致。\n- 如果结果仍然为空,在两次 API 调用之间添加 `time.sleep(0.5)` 避免速率限制。\n\n### 6. Cell/Elsevier 付费墙\nCell Press(www.cell.com、linkinghub.elsevier.com)对脚本访问严格限制,返回403/超时。Nature系列(www.nature.com)通常可正常访问。\n- 但 Cell Press 的 Figure 图片通过 `ars.els-cdn.com` CDN 分发,可直接通过 curl 下载(详见 figure-download-patterns.md)。\n- PII 中的括号和连字符需要清理:`tr -d '()-'`\n\n### 7. esummary hascreator 字段不可靠(2026-06发现)\n`esummary` 返回的 `hascreator` 字段对所有高IF期刊论文均显示 `'N'`,即使论文明确有多位作者。\n```json\n// 示例:Nat Med 2026 phase 1 clinical trial,真实作者8人,但:\n\"hascreator\": \"N\" // ❌ 错误\n```\n**对策**:改用 efetch XML 确认作者——统计 `<Author>` 标签数。不要因 `hascreator='N'` 排除论文。\n\n## 搜索策略(两阶段工作流)\n\n### 阶段A:主题搜索\n```python\n# 方式A: mindate/maxdate(可能不可靠)\nparams = {\n 'db': 'pubmed', 'term': query,\n 'mindate': '<3月前>', 'maxdate': '<今天>',\n 'datetype': 'pdat', 'retmax': 10, 'retmode': 'json'\n}\n# 方式B: [dp] 语法(推荐,已验证可靠)\nquery = 'Parkinson disease AND (\"2026/03/01\"[dp] : \"2026/06/12\"[dp])'\nparams = {\n 'db': 'pubmed', 'term': query,\n 'retmax': 10, 'retmode': 'json'\n}\n```\n目的:了解该时段总论文数,获取基础PMID列表。\n\n### 阶段B:高影响力期刊过滤\n```python\njournal_tags = '\"Nature\"[Journal] OR \"Cell\"[Journal] OR \"Nat Neurosci\"[Journal] OR ...'\nquery = f'({topic_keywords}) AND ({journal_tags}) AND (\"<3月前>\"[dp] : \"<今天>\"[dp])'\n```\n目的:直接命中IF>10的高质量论文。\n\n### 初筛要点\n1. `pubtype` 不含 \"Review\" → 原创研究\n2. `attributes` 含 \"Has Abstract\" → 有摘要\n3. 检查 DOI 是否存在\n4. 排除 \"No authors listed\" → 通常是 News & Views\n5. 从XML提取时注意HTML实体和Unicode转义符的处理\n\n## 评分标准(Claude评估用,5维度各1-10分)\n\n| 维度 | 评分要点 | 满分 |\n|------|---------|------|\n| 逻辑完整性 | gain+loss of function, KO/KI, 正反验证 | 10 |\n| 方法学水平 | 单细胞测序, 冷冻电镜, 活细胞成像, TurboID等 | 10 |\n| 创新性 | 新概念/新机制/新方法 | 10 |\n| 可借鉴性 | 实验设计可迁移到神经科学 **←最重要维度** | 10 |\n| 临床转化潜力 | 体内验证, 治疗靶点, 生物标志物 | 10 |\n\n总分 >= 30 且各维度 >= 5 → 候选。再经Hermes确认相关性后,只选最优1篇。", "file_type": ".md"}
tool · 2026-06-13 11:06
{"success": true, "name": "paper-recommender", "file": "references/figure-download-patterns.md", "content": "# 学术期刊Figure下载模式速查\n\n## Nature 系列\n**已验证模式(2026年6月)**\n\n### URL结构\n```\n文章页: https://www.nature.com/articles/{article_id}\nFigure URL: https://media.springernature.com/{size}/springer-static/image/\n art%3A10.1038%2F{article_id}/MediaObjects/\n {journal_id}_{year}_{article_num}_Fig{N}_HTML.png\n```\n\n### 关键参数\n- `{article_id}`: DOI中`/`后面的部分,如 `s41586-026-10597-2` 或 `s41593-026-02317-w`\n- `{journal_id}`: 期刊对应数字ID,如 Nature=41586, Nat Neurosci=41593\n- `{year}`: 4位年份\n- `{article_num}`: 文章编号(DOI中期刊ID后的数字部分,去连字符)\n- `{N}`: Figure编号(1-7)\n\n### 实例1 (Nature — 已验证 2026-06)\n```\narticle_id = s41586-026-10597-2\njournal_id = 41586\nyear = 2026\narticle_num = 10597\n\nFig1 全尺寸:\nhttps://media.springernature.com/full/springer-static/image/art%3A10.1038%2Fs41586-026-10597-2/MediaObjects/41586_2026_10597_Fig1_HTML.png\n\nFig2 中等尺寸:\nhttps://media.springernature.com/lw1200/springer-static/image/art%3A10.1038%2Fs41586-026-10597-2/MediaObjects/41586_2026_10597_Fig2_HTML.png\n```\n\n### 实例2 (Nature Neuroscience — 已验证 2026-06)\n```\narticle_id = s41593-026-02317-w\njournal_id = 41593\nyear = 2026\narticle_num = 2317\n\nFig1 全尺寸:\nhttps://media.springernature.com/full/springer-static/image/art%3A10.1038%2Fs41593-026-02317-w/MediaObjects/41593_2026_2317_Fig1_HTML.png\n\nFig4 中等尺寸:\nhttps://media.springernature.com/lw1200/springer-static/image/art%3A10.1038%2Fs41593-026-02317-w/MediaObjects/41593_2026_2317_Fig4_HTML.png\n```\n\n### 实例4 (Nature Neuroscience — 新验证 2026-06-12, PMID: 42151483)\n```\narticle_id = s41593-026-02267-3\njournal_id = 41593\nyear = 2026\narticle_num = 2267 # 从DOI \"02267\" 去前导零 → 2267\n\nFig1-Fig7 (lw1200): 全部 HTTP 200 ✅\nFig1-Fig3 (full): 全部 HTTP 200 ✅\nPDF: https://www.nature.com/articles/s41593-026-02267-3.pdf → HTTP 200, 26.7MB ✅\n```\n\n### 实例5 (Nature Communications — 新验证 2026-06-13, PMID: 42140967)\n```\narticle_id = s41467-026-73136-7\njournal_id = 41467\nyear = 2026\narticle_num = 73136 # 从DOI \"73136\" 无前导零 → 73136\n\nFig1 (full): HTTP 200 ✅ (1.5MB)\nFig2-Fig7 (lw1200): 全部 HTTP 200 ✅ (1.4-2.5MB each)\nPDF: https://www.nature.com/articles/s41467-026-73136-7.pdf → HTTP 200 ⚠️ 但返回的是HTML! file命令显示为\"HTML document\",非真实PDF\n\n关键发现:该文章为\"unedited version\"(预印本版),HTML页面仅含Abstract,\n不含<figcaption>标签。Figure图片通过CDN可正常下载,但caption无法从HTML提取。\n```\n\n### 实例3 (Nature Medicine — 已验证 2026-06-11)\n```\narticle_id = s41591-026-04393-8\njournal_id = 41591\nyear = 2026\narticle_num = 4393\n\nFig1 全尺寸:\nhttps://media.springernature.com/full/springer-static/image/art%3A10.1038%2Fs41591-026-04393-8/MediaObjects/41591_2026_4393_Fig1_HTML.png\n\nFig2-Fig5 中等尺寸:\nhttps://media.springernature.com/lw1200/springer-static/image/art%3A10.1038%2Fs41591-026-04393-8/MediaObjects/41591_2026_4393_Fig2_HTML.png\n...\nhttps://media.springernature.com/lw1200/...41591_2026_4393_Fig5_HTML.png\n\narticle_num提取: DOI \"s41591-026-04393-8\" → 取s41591后的两段 \"026\"+\"04393\" → 截取最终段的数字部分去前导零 → 4393\n```\n\n### 快速提取命令(curl + grep)\n```bash\n# 1. 从HTML提取所有Figure URL(通用模式,匹配所有s415XX系列期刊)\ncurl -s -L -H \"User-Agent: Mozilla/5.0\" \\\n \"https://www.nature.com/articles/{article_id}\" \\\n | grep -oP 'https://media\\.springernature\\.com/[^\"'\"'\"'<>]+s415\\d\\d[^\"'\"'\"'<>]*\\.(?:png|jpg|webp)' \\\n | sort -u\n\n# 2. 下载某张Figure为base64(用于HTML嵌入)\nFIG_URL=\"https://media.springernature.com/lw1200/springer-static/image/art%3A10.1038%2F{article_id}/MediaObjects/{journal_id}_{year}_{article_num}_Fig{N}_HTML.png\"\ncurl -s \"$FIG_URL\" -H \"User-Agent: Mozilla/5.0\" | base64 -w 0 > /c/Users/<user>/fig{N}_b64.txt\n```\n\n### 分辨率控制\n| 前缀 | 尺寸 | 说明 |\n|------|------|------|\n| `/full/` | 全尺寸 | 最高分辨率,推荐用于Fig1。**注意:Nature系列通常在`/full/`下所有Figure都可用,非仅Fig1**(已验证:Nature s41586-026-10480-0, Fig1-Fig6全部200) |\n| `/lw1200/` | 宽1200px | 中等尺寸,适用于其余Figures。备选方案——若`/full/`偶有404,降级到此 |\n| `/m685/` | 宽685px | 小尺寸 |\n| `/w215h120/` | 215x120px | 缩略图 |\n\n### 已测试的期刊ID\n| 期刊 | ID | DOI前缀 | 验证状态 |\n|------|----|---------|---------|\n| Nature | 41586 | s41586 | ✅ 2026-06 (Fig1-Fig6 all HTTP 200 full/) |\n| **Nature Medicine** | **41591** | **s41591** | **✅ 2026-06** |\n| **Nature Neuroscience** | **41593** | **s41593** | **✅ 2026-06 (两篇独立验证)** |\n| Nature Communications | 41467 | s41467 | 🟢 已验证 |\n| Cell Death & Differentiation | 41418 | s41418 | 🟢 已验证 |\n| Scientific Reports | 41598 | s41598 | 🟢 已验证 |\n| Cell Discovery | 41420 | s41420 | 🟢 已验证 |\n\n## Figure Caption Extraction (Nature系列 — HTML解析)\n\n### 为什么需要提取caption\nStep 6的HTML深度解读需要为每张Figure配caption文字。直接从Nature文章页HTML中提取比手动编写更准确、更快速。\n\n### 方法:Python regex解析 `<figcaption>`\n\nNature系列文章将figure caption放在 `<figcaption>` 标签内,可通过Python regex可靠提取:\n\n```bash\ncurl -s -L -H \"User-Agent: Mozilla/5.0\" \"https://www.nature.com/articles/{article_id}\" \\\n | python -c \"\nimport sys, re\nhtml = sys.stdin.read()\nfigs = re.findall(r'<fig[^>]*>.*?<figcaption[^>]*>(.*?)</figcaption>', html, re.DOTALL)\nfor i, fig in enumerate(figs):\n clean = re.sub(r'<[^>]+>', '', fig).strip()\n print(f'Figure {i+1}: {clean}')\n print()\n\"\n```\n\n### 已验证(2026-06-12,Nat Neurosci s41593-026-02267-3)\n所有7张Figure的caption均正确提取,如:\n```\nFigure 1: Fig. 1: CODEX workflow for neuroscience applications.\nFigure 2: Fig. 2: Multicellular characterization of the Aβ plaque microenvironment at the proteomic level.\nFigure 3: Fig. 3: CODEX-CNS reveals specific cellular interactions in human AD brain.\n...\n```\n\n### 在Builder脚本中使用captions\n将提取到的captions以Python变量形式嵌入builder脚本:\n```python\ncaptions = {\n 1: \"CODEX workflow for neuroscience applications.\",\n 2: \"Multicellular characterization of the Aβ plaque microenvironment at the proteomic level.\",\n # ...\n}\n```\n\n### 已知注意事项\n- Nature系列的 `<figcaption>` 目前为纯文本加少量 `<sup>` 标签,清理 `<sup>` 后即可得到干净文本\n- Cell Press系列因Cloudflare防护,页面HTML不可直接解析→caption需从PDF或手动输入\n- 部分文章可能有Extended Data Figures(Fig S1, S2等),主文章通常只含Fig1-Fig7\n\n### Pre-print / Unedited Version Caption 降级策略\n**场景**:Nature Communications等期刊有时发布\"unedited version\"(未编辑预印本),HTML页面不含 `<figcaption>` 标签,regex提取返回空。\n\n**检测方法**:查看文章HTML中是否有 \"unedited version\" 或 \"preprint\" 字样。若无 `<figcaption>` 标签命中,且文章页Notice显示\"unedited version\",则进入降级流程。\n\n**降级策略**(按优先级):\n1. **手动构建**:基于abstract和论文结构合理推断各Figure内容(推荐,已验证可行)。将描述写为Python字典嵌入builder脚本。\n2. **PDF提取**:尝试 pdftotext 从PDF中提取captions。但⚠️预印本PDF有时也返回HTML(nat commun),此时跳过。\n3. **浏览器工具**:用browser工具导航到文章页 → Accept cookies → 滚动查看是否有JS渲染的figure captions。部分预印本也未渲染。\n\n**手动构建模板**(适用于机制类论文):\n```python\ncaptions = {\n 1: \"Fig. 1: [主要发现,通常为表型]。[技术手段+关键结果1-2句]\",\n 2: \"Fig. 2: [机制研究,通常为通路验证]。[上游调控+下游效应]\",\n 3: \"Fig. 3: [分子机制细节]。[蛋白互作/修饰/定位数据]\",\n 4: \"Fig. 4: [细胞/体内功能验证]。[表型恢复/功能实验]\",\n 5: \"Fig. 5: [深入机制或转化研究]。[治疗/干预结果]\",\n 6: \"Fig. 6: [补充机制或模型验证]。[定量/统计支持]\",\n 7: \"Fig. 7: [整体工作模型示意图]。\"\n}\n```\n\n## Cell Press / Elsevier 系列(Cell Metabolism, Cell, Neuron, Cell Reports 等)\n**已验证模式(2026年6月)**\n\n### 关键发现:主页面有Cloudflare防护,但CDN图片可直接访问\nCell Press 主页面(www.cell.com)使用 Cloudflare 防护,curl/browser 直接访问被拦截。\n但图片通过 `ars.els-cdn.com` CDN 分发,**可以直接通过 curl 下载**。\n\n### URL结构(已成功用于 Cell Metabolism)\n```\nFigure N (大尺寸):\nhttps://ars.els-cdn.com/content/image/1-s2.0-{PII}-gr{N}_lrg.jpg\n\nFigure N (小尺寸):\nhttps://ars.els-cdn.com/content/image/1-s2.0-{PII}-gr{N}.jpg\n\nGraphical Abstract (大尺寸):\nhttps://ars.els-cdn.com/content/image/1-s2.0-{PII}-fx1_lrg.jpg\n```\n\n### 关键参数\n- `{PII}`: 文章的PII(Publisher Item Identifier),可从PubMed esummary结果中获取(idtype='pii'),或从DOI对应的ScienceDirect URL中提取\n- `{N}`: Figure编号(1-7),Cell Press系列使用 `gr1, gr2, ..., gr7` 格式(非 `Fig1`)\n- `fx1`: Graphical Abstract的固定标识\n\n### 实例(Neuron — 已验证 2026-06-12)\n```bash\nPMID: 42127911\nDOI: 10.1016/j.neuron.2026.04.033\nPII: S0896-6273(26)00328-4 # 含有括号和连字符,需全部去除\nURL-PII: S0896627326003284 # 去除括号和连字符后的实际URL用PII\n\n# Figure URL (CDN直接访问,无防护):\n# 核心:去除PII中的括号,替换 gr{N}_lrg 和 fx1_lrg\nFig1: https://ars.els-cdn.com/content/image/1-s2.0-S0896627326003284-gr1_lrg.jpg\nFig2: https://ars.els-cdn.com/content/image/1-s2.0-S0896627326003284-gr2_lrg.jpg\nFig3: https://ars.els-cdn.com/content/image/1-s2.0-S0896627326003284-gr3_lrg.jpg\nFig4: https://ars.els-cdn.com/content/image/1-s2.0-S0896627326003284-gr4_lrg.jpg\nFig5: https://ars.els-cdn.com/content/image/1-s2.0-S0896627326003284-gr5_lrg.jpg\nFig6: https://ars.els-cdn.com/content/image/1-s2.0-S0896627326003284-gr6_lrg.jpg\nFig7: https://ars.els-cdn.com/content/image/1-s2.0-S0896627326003284-gr7_lrg.jpg\nGraphical Abstract: https://ars.els-cdn.com/content/image/1-s2.0-S0896627326003284-fx1_lrg.jpg\n\n# PII括号去除规则\n# ⚠️ 必须同时去除括号和连字符:tr -d '()-'\n# \"S0896-6273(26)00328-4\" → tr -d '()-' → \"S0896627326003284\"\nPII_URL=$(echo \"$PII\" | tr -d '()-')\necho \"$PII_URL\" # → S0896627326003284\n\n```\n\n### 实例2(Neuron — 新验证 2026-06-12)\n```bash\nPMID: 42263678\nDOI: 10.1016/j.neuron.2026.05.015\nPII: S0896-6273(26)00386-7\nURL-PII: S0896627326003867 # 经 tr -d '()-' 处理\n\n# gr1-gr7 全部 HTTP 200 ✅ (含 _lrg 和无 _lrg 两种尺寸均可用)\ncurl -s \"https://ars.els-cdn.com/content/image/1-s2.0-S0896627326003867-gr1_lrg.jpg\" | base64 -w 0 > fig1_b64.txt\n# fx1: HTTP 404(非所有Cell Press文章都有Graphical Abstract)\n```\n\n### 实例(Cell Metabolism — 已验证 2026-06-11,需 tr -d '()-')\n```bash\nPMID: 42049021\nDOI: 10.1016/j.cmet.2026.04.001\nPII: S1550-4131(26)00139-7 # 注意:PII可能不同于全文URL中的pii\n# ⚠️ 同样需要 tr -d '()-' 去除括号和连字符\n\n# ScienceDirect URL (有Cloudflare防护,curl会失败):\n# https://www.sciencedirect.com/science/article/pii/S1550413126001397\n\n# Figure URL (CDN直接访问,无防护):\nFig1: https://ars.els-cdn.com/content/image/1-s2.0-S1550413126001397-gr1_lrg.jpg\nFig2: https://ars.els-cdn.com/content/image/1-s2.0-S1550413126001397-gr2_lrg.jpg\nFig3: https://ars.els-cdn.com/content/image/1-s2.0-S1550413126001397-gr3_lrg.jpg\nFig4: https://ars.els-cdn.com/content/image/1-s2.0-S1550413126001397-gr4_lrg.jpg\nFig5: https://ars.els-cdn.com/content/image/1-s2.0-S1550413126001397-gr5_lrg.jpg\nFig6: https://ars.els-cdn.com/content/image/1-s2.0-S1550413126001397-gr6_lrg.jpg\nFig7: https://ars.els-cdn.com/content/image/1-s2.0-S1550413126001397-gr7_lrg.jpg\nGraphical Abstract: https://ars.els-cdn.com/content/image/1-s2.0-S1550413126001397-fx1_lrg.jpg\n```\n\n### 快速提取命令(修复版)\n```bash\n# 1. 从PubMed esummary中获取PII\n# PII字段: idtype='pii', value='S1550-4131(26)00139-7'\n# 或从DOI的ScienceDirect重定向URL中提取:/pii/{PII}\n\n# 2. ⚠️ 关键:清理PII中的括号和连字符,否则CDN URL会404\nPII_CLEAN=$(echo \"$PII\" | tr -d '()-')\n\n# 3. 暴力枚举法:从gr1试到gr7(推荐,因为url模式固定)\nfor fig in 1 2 3 4 5 6 7; do\n url=\"https://ars.els-cdn.com/content/image/1-s2.0-${PII_CLEAN}-gr${fig}_lrg.jpg\"\n code=$(curl -s -o /dev/null -w \"%{http_code}\" -L \"$url\" -H \"User-Agent: Mozilla/5.0\")\n echo \"gr${fig}: HTTP ${code}\"\n if [ \"$code\" != \"404\" ]; then\n curl -s \"$url\" -H \"User-Agent: Mozilla/5.0\" | base64 -w 0 > fig${fig}_b64.txt\n fi\ndone\n\n# 4. 下载Graphical Abstract (可能不存在→404,正常)\ncurl -s \"https://ars.els-cdn.com/content/image/1-s2.0-${PII_CLEAN}-fx1_lrg.jpg\" \\\n -H \"User-Agent: Mozilla/5.0\" | base64 -w 0 > fig_fx1_b64.txt\n```\n\n### 已验证的Cell Press期刊\n| 期刊 | 验证状态 | 备注 |\n|------|---------|------|\n| Cell Metabolism | ✅ 已验证(2026-06) | gr1-gr7全部通过,HTTP 200 |\n| **Neuron** | **✅ 已验证(2026-06-12)** | **gr1-gr7全部通过,HTTP 200;PMID 42127911 + PMID 42263678** |\n| Cell | 🟡 大概率可用 | 同属Cell Press,URL模式相同 |\n| Cell Reports | 🟡 大概率可用 | 同属Cell Press,URL模式相同 |\n| Developmental Cell | 🟡 大概率可用 | 同属Cell Press,URL模式相同 |\n| Molecular Cell | 🟡 大概率可用 | 同属Cell Press,URL模式相同 |\n\n### 已知限制\n- PDF下载:ScienceDirect有强防护,PDF无法直接通过curl下载(需订阅或机构访问)\n- 主页面HTML:Cloudflare拦截,无法直接从页面解析figure列表\n- PII格式因期刊而异,需从PubMed API或DOI重定向中获取\n\n## PMC / PubMed Central 开放获取\n```\nhttps://www.ncbi.nlm.nih.gov/pmc/articles/PMC{pmcid}/bin/{filename}\n```\n- 仅对开放获取文章有效\n\n## 通用最佳实践\n\n1. **先获取文章HTML页面**,从中提取Figure图片链接\n2. **优先使用全尺寸版本**(替换路径中的尺寸限定词)\n3. **base64嵌入**到HTML中,避免file://协议被浏览器拦截\n4. **文件命名**:`Figure{N}_{简短描述}.png`\n5. **注意付费墙**:3xx/4xx响应 → 放弃,不要反复重试\n6. **Nature/Nature Neuroscience/Nature Medicine PDF下载**:`https://www.nature.com/articles/{article_id}.pdf` — 已验证可下载(2026-06),Nature Medicine实例如 `s41591-026-04393-8`(7.8MB)\n7. **Nature Communications PDF ⚠️**:同为nature.com子域,但部分文章的PDF实际为HTML(反爬)。下载后检查:`file article.pdf` → 若输出\"HTML document\"而非\"PDF document\",则非真实PDF。此时跳过PDF,仅下载Figure图片。\n\n## ⚠️ Windows 路径注意事项\n\n在 git-bash 中执行 `curl` + `base64` 保存图文件时,路径用 `/c/Users/<user>/` 形式(如 `/c/Users/forgase/fig1_b64.txt`)。但在 **Python 脚本** 中读取这些文件时,必须用 Windows 原生路径格式(`C:/Users/<user>/fig1_b64.txt`),因为 Python on Windows 不认识 MSYS 路径 `/c/Users/...`。\n\n**错误做法:**\n```python\nopen(\"/c/Users/forgase/fig1_b64.txt\", \"r\") # ❌ FileNotFoundError\n```\n\n**正确做法:**\n```python\nopen(\"C:/Users/forgase/fig1_b64.txt\", \"r\") # ✅ 正斜杠在Windows Python中可识别\n# 或\nopen(r\"C:\\Users\\forgase\\fig1_b64.txt\", \"r\") # ✅ 原始字符串\n```\n", "file_type": ".md"}
tool · 2026-06-13 11:06
{"success": true, "name": "paper-recommender", "file": "references/html-template-structure.md", "content": "# 公众号风格HTML解读 — 模板结构\n\n## 文件架构\n\n```\n<!DOCTYPE html>\n├── <head>\n│ ├── 字符集/视口\n│ └── 样式(全部内联<style>)\n│ ├── 全局重置\n│ ├── .header — 渐变深蓝背景\n│ ├── .card — 白色圆角卡片\n│ ├── .section-title — 左边框强调标题\n│ ├── .score-bar / .score-item — 评分网格\n│ ├── .figure-box — 图片容器\n│ ├── .reproduce-tip — 蓝色复现建议\n│ ├── .highlight — 黄色高亮框\n│ └── .summary-box — 紫色渐变结论卡\n├── <body>\n│ ├── .header\n│ │ ├── 标签徽章(🔥 今日推荐 + 主题标签)\n│ │ ├── h1 中文标题\n│ │ ├── p 英文标题\n│ │ └── p 📅日期 | 📰期刊 | IF\n│ ├── .container\n│ │ ├── .card (评分) — 5维度×flex网格\n│ │ ├── .card (速览) — 摘要+高亮框\n│ │ ├── .card (团队) — 作者信息\n│ │ ├── .card (图文) — Figure×5 含canvas+caption+🔬复现建议\n│ │ ├── .card (评述) — ✅优势/⚠️缺憾/🔬借鉴\n│ │ ├── .summary-box (小结)\n│ │ └── .card (元数据) — DOI/关键词/时间\n│ └── <script>\n│ ├── const fig1_b64 = \"...\" (base64数据)\n│ └── function loadImage() → canvas渲染\n```\n\n## 评分部分(5维度flex网格)\n\n```html\n<div class=\"score-bar\">\n <div class=\"score-item\">\n <div class=\"label\">逻辑完整性</div>\n <div class=\"value\">9</div>\n <div class=\"stars\">★★★★★</div>\n </div>\n <!-- 重复 ×5 -->\n</div>\n<!-- 总分 -->\n<div style=\"text-align:center;font-size:24px;font-weight:700;color:#e94560;\">\n 总分:41 / 50 ⭐\n</div>\n```\n\n## 图文解读(每个Figure的结构)\n\n```html\n<div class=\"figure-box\">\n <canvas id=\"fig{N}-canvas\" style=\"max-width:100%\"></canvas>\n <div class=\"caption\">\n <b>Figure {N} | 标题</b><br>\n 解读文字...\n <div style=\"margin-top:8px;\">\n <b>🔬 复现建议:</b>具体建议...\n </div>\n </div>\n</div>\n<div class=\"divider\"></div>\n```\n\n## 图片嵌入方案\n\n### 期刊图片格式速查\n| 期刊系列 | 图片格式 | CDN示例 |\n|----------|---------|---------|\n| Nature系列 | PNG | `..._Fig1_HTML.png` |\n| Cell Press系列 | JPEG | `...-gr1_lrg.jpg` |\n\n### 通用加载函数(自动检测格式)\n\n```javascript\n// 1. base64数据存为JS变量(在<script>开头)\nconst fig1_b64 = \"iVBORw0KGgo...\"; // PNG格式\nconst fig2_b64 = \"/9j/4AAQSkZJRg...\"; // JPEG格式(以/9j/开头)\n\n// 2. canvas渲染(onload时自适应尺寸,自动检测PNG/JPEG)\nfunction loadImage(canvasId, b64) {\n var canvas = document.getElementById(canvasId);\n var ctx = canvas.getContext(\"2d\");\n var img = new Image();\n img.onload = function() {\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0);\n };\n // 自动判断格式:PNG头部为\"iVBOR\",JPEG头部为\"/9j/\"\n var mime = b64.startsWith(\"iVBOR\") ? \"image/png\" : \"image/jpeg\";\n img.src = \"data:\" + mime + \";base64,\" + b64;\n}\n```\n\n### 格式选择指南\n- **Nature系列** → PNG格式,使用 `data:image/png;base64,...`\n- **Cell Press系列** → JPEG格式,使用 `data:image/jpeg;base64,...`\n- **检测技巧**:base64字符串以 `iVBOR` 开头 → PNG;以 `/9j/` 开头 → JPEG\n\n## 关键样式常量\n\n| 元素 | 颜色 |\n|------|------|\n| 头部渐变 | `#1a1a2e → #0f3460` |\n| 标签徽章 | `#e94560` |\n| 卡片阴影 | `0 2px 12px rgba(0,0,0,0.08)` |\n| 评分数字 | `#e94560` |\n| 复选框背景 | `#fff8e1` + 左边框 `#ffc107` |\n| 复现建议 | `#e3f2fd` |\n| 小结卡片 | `#667eea → #764ba2` |\n| 标题左边框 | `#e94560`, 4px |\n\n## 文件命名规则\n\n```\n{主题关键词}_文献解读.html\n```\n示例:`细胞死亡_文献解读.html`、`帕金森_文献解读.html`\n\n## 注意事项\n\n1. canvas渲染:需要`onload`回调,不能直接在`<img>`上设置src(尺寸自适应问题)\n2. 所有图片必须是base64嵌入,不能用file://协议(浏览器安全策略阻止)\n3. 卡片间用`.card`统一间距(margin-bottom:20px)\n4. 长文本用`text-indent:2em`首行缩进增强可读性\n", "file_type": ".md"}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"todos": [{"id": "step1", "content": "Step 1: PubMed检索 — 神经炎症/胶质细胞方向", "status": "in_progress"}, {"id": "step2", "content": "Step 2: 获取论文详情并初筛", "status": "pending"}, {"id": "step3", "content": "Step 3: Claude Code深度评估", "status": "pending"}, {"id": "step4", "content": "Step 4: 唯一推荐确认", "status": "pending"}, {"id": "step5", "content": "Step 5: 下载PDF+提取Figure图片", "status": "pending"}, {"id": "step6", "content": "Step 6: 制作HTML深度解读", "status": "pending"}, {"id": "step7", "content": "Step 7: 输出最终推送消息+MEDIA附件", "status": "pending"}], "summary": {"total": 7, "pending": 6, "in_progress": 1, "completed": 0, "cancelled": 0}}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "=== Phase A: Topic Search ===\r\nTotal count: 7469\r\nPMIDs: ['42284615', '42284364', '42284349', '42284260', '42284142', '42284010', '42283969', '42283792', '42283498', '42283225', '42283223', '42283221', '42283184', '42283173', '42283031', '42283006', '42282969', '42282966', '42282851', '42282836']\r\n\r\n=== Phase B1: Topic + High-IF Journals ===\r\nTotal: 228\r\nPMIDs: ['42284142', '42277464', '42276056', '42275221', '42271051', '42268720', '42268716', '42267908', '42265101', '42265098', '42263678', '42263657', '42259289', '42248891', '42247298', '42247297', '42243549', '42242219', '42241282', '42237401']\r\n\r\n=== Phase B2: Cross-field (lactate/metabolism+glia) + High-IF ===\r\nTotal: 5\r\nPMIDs: ['42242219', '42052880', '42029746', '41946730', '41946358']\r\n\r\n=== Total unique PMIDs (before screening): 43 ===\r\n42283221,42029746,42284364,42263657,42283223,42283225,42283173,42283969,42267908,42247297,42284349,42283498,42268720,42259289,42268716,42283184,42283031,42237401,42052880,42247298,42263678,42242219,42284615,42265098,42275221,41946730,42282851,42243549,42276056,41946358,42265101,42241282,42277464,42282836,42271051,42282969,42282966,42284010,42248891,42284142,42283006,42284260,42283792", "exit_code": 0, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "PMID: 42283221\r\n Title: Effects of Lysine Deacetylation Inhibition Alone or in Combination With Arimoclomol on TDP-43 Protei\r\n Journal: J Neurochem | Date: 2026 Jun\r\n DOI: 10.1111/jnc.70493\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42029746\r\n Title: Altered astrocyte-neuron crosstalk in progressive supranuclear palsy: integrated evidence from prote\r\n Journal: Acta Neuropathol | Date: 2026 Apr 24\r\n DOI: 10.1007/s00401-026-03020-7\r\n PubType: ['Journal Article', \"Research Support, Non-U.S. Gov't\"]\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42284364\r\n Title: Microbial modulation of CNS remyelination in multiple sclerosis: the missing link in gut-brain axis \r\n Journal: Nutr Neurosci | Date: 2026 Jun 12\r\n DOI: 10.1080/1028415X.2026.2686736\r\n PubType: ['Journal Article', 'Review']\r\n HasAbstract: False\r\n IsReview: True\r\n\r\nPMID: 42263657\r\n Title: Astrocyte-microglia crosstalk unlocks Alzheimer's disease.\r\n Journal: Immunity | Date: 2026 Jun 9\r\n DOI: 10.1016/j.immuni.2026.05.004\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42283223\r\n Title: Targeting Brain Cholesterol Homeostasis in Alzheimer's Disease: Mechanisms and Therapeutic Perspecti\r\n Journal: J Neurochem | Date: 2026 Jun\r\n DOI: 10.1111/jnc.70492\r\n PubType: ['Journal Article', 'Review']\r\n HasAbstract: False\r\n IsReview: True\r\n\r\nPMID: 42283225\r\n Title: Leonurine Ameliorates Doxorubicin-Induced Cardiotoxicity via STING/NF-κB/NLRP3 Inflammasome Signalin\r\n Journal: Adv Sci (Weinh) | Date: 2026 Jun 12\r\n DOI: 10.1002/advs.75912\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42283173\r\n Title: Interleukin-35 Ameliorates Cyclophosphamide-induced Ovarian Injury by Inhibiting PANoptosis.\r\n Journal: Comb Chem High Throughput Screen | Date: 2026 Jun 9\r\n DOI: 10.2174/0113862073467540260321183320\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42283969\r\n Title: Glymphatic system impairment in neurological disorders: potential mechanisms and therapeutic targets\r\n Journal: Mol Biomed | Date: 2026 Jun 12\r\n DOI: 10.1186/s43556-026-00489-2\r\n PubType: ['Journal Article', 'Review']\r\n HasAbstract: False\r\n IsReview: True\r\n\r\nPMID: 42267908\r\n Title: Developmental circuit instability in amyotrophic lateral sclerosis: from hyperexcitability to networ\r\n Journal: Brain | Date: 2026 Jun 10\r\n DOI: 10.1093/brain/awag185\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42247297\r\n Title: Elevated phagocytic capacity directs innate spinal cord repair.\r\n Journal: Cell Rep | Date: 2026 Jun 4\r\n DOI: 10.1016/j.celrep.2026.117482\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42284349\r\n Title: Stage-dependent role of NEK7 in the inactive-to-active conformational transition of NLRP3 monomer.\r\n Journal: PLoS Comput Biol | Date: 2026 Jun 12\r\n DOI: 10.1371/journal.pcbi.1014405\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42283498\r\n Title: H3K18la- driven neutrophil secretory autophagy promotes pulmonary endothelial dysfunction in sepsis-\r\n Journal: Autophagy | Date: 2026 Jun 12\r\n DOI: 10.1080/15548627.2026.2679643\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42268720\r\n Title: Microglial states associate with lesion dynamics in multiple sclerosis.\r\n Journal: Cell Rep | Date: 2026 Jun 9\r\n DOI: 10.1016/j.celrep.2026.117538\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42259289\r\n Title: Developmental and age-related synapse elimination is mediated by glial Croquemort.\r\n Journal: Neuron | Date: 2026 Jun 8\r\n DOI: 10.1016/j.neuron.2026.04.046\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42268716\r\n Title: Bilirubin mitigates ischemic white matter injury by targeting transferrin-receptor-mediated B cell i\r\n Journal: Cell Rep | Date: 2026 Jun 9\r\n DOI: 10.1016/j.celrep.2026.117398\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42283184\r\n Title: Environmental Pollutant Tetrachloro-1,4-benzoquinone Exerts Neurotoxicity and Potential Protective E\r\n Journal: Curr Top Med Chem | Date: 2026 Jun 9\r\n DOI: 10.2174/0115680266461615260518205032\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42283031\r\n Title: Single-cell transcriptomic profiling uncovers key molecular signatures in glioma pathogenesis.\r\n Journal: Front Genet | Date: 2026\r\n DOI: 10.3389/fgene.2026.1818742\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42237401\r\n Title: Insulin resistance alters cortical inhibitory neurons and microglia to exacerbate Alzheimer's knock-\r\n Journal: Mol Neurodegener | Date: 2026 Jun 3\r\n DOI: 10.1186/s13024-026-00946-0\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42052880\r\n Title: Dynamic metabolic programming of monocyte-derived cells defines immunity in CNS disease.\r\n Journal: Brain | Date: 2026 Apr 29\r\n DOI: 10.1093/brain/awag149\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42247298\r\n Title: A cross-vertebrate brain protein interaction map identifies conserved neural and non-neural complexe\r\n Journal: Cell Rep | Date: 2026 Jun 4\r\n DOI: 10.1016/j.celrep.2026.117422\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42263678\r\n Title: Epigenetic control of microglial mitochondrial immunity by KAT7 drives Alzheimer's disease pathogene\r\n Journal: Neuron | Date: 2026 Jun 9\r\n DOI: 10.1016/j.neuron.2026.05.015\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42242219\r\n Title: Activity-dependent protein synthesis in neurons requires microglial-metabolic coupling.\r\n Journal: Cell Metab | Date: 2026 Jun 4\r\n DOI: 10.1016/j.cmet.2026.05.006\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42284615\r\n Title: Postconcussion physical activity frequency and plasma biomarker associations among adolescents.\r\n Journal: J Neurosurg Pediatr | Date: 2026 Jun 12\r\n DOI: 10.3171/2026.2.PEDS25624\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42265098\r\n Title: Semaglutide attenuates neuroinflammation in male mice.\r\n Journal: Nat Commun | Date: 2026 Jun 9\r\n DOI: 10.1038/s41467-026-74038-4\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42275221\r\n Title: Glia-released serotonin drives nose touch responses in Caenorhabditis elegans.\r\n Journal: Cell Rep | Date: 2026 Jun 10\r\n DOI: 10.1016/j.celrep.2026.117553\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 41946730\r\n Title: Lactate metabolism reprogramming through orthogonal tandem catalysis to reverse intervertebral disc \r\n Journal: Nat Commun | Date: 2026 Apr 7\r\n DOI: 10.1038/s41467-026-71513-w\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42282851\r\n Title: Comprehensive characterization of the human neural stem cell line HNSC.100 as a versatile model for \r\n Journal: Biochem Biophys Rep | Date: 2026 Jun\r\n DOI: 10.1016/j.bbrep.2026.102655\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42243549\r\n Title: Human microglial transitions at the Aβ-tau inflection point associate with divergent pathways to dem\r\n Journal: Nat Med | Date: 2026 Jun 4\r\n DOI: 10.1038/s41591-026-04393-8\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42276056\r\n Title: Single-cell proteome atlas of aging mouse microglia reveals subpopulation-specific phagoproteome.\r\n Journal: Neuron | Date: 2026 Jun 11\r\n DOI: 10.1016/j.neuron.2026.05.014\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 41946358\r\n Title: Astrocytic glucose metabolism regulates the survival of newborn hippocampal neurons in the adult bra\r\n Journal: Neuron | Date: 2026 Apr 6\r\n DOI: 10.1016/j.neuron.2026.03.021\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42265101\r\n Title: Scg2 drives corticospinal circuit reorganization with spinal premotor interneurons and astrocytes fo\r\n Journal: Nat Commun | Date: 2026 Jun 9\r\n DOI: 10.1038/s41467-026-73518-x\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42241282\r\n Title: Nerve-proximal tertiary lymphoid structures predict chemotherapy sensitivity in pancreatic cancer.\r\n Journal: Cell Rep | Date: 2026 Jun 4\r\n DOI: 10.1016/j.celrep.2026.117496\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42277464\r\n Title: Microglia at a key inflection point in Alzheimer's disease.\r\n Journal: Nat Med | Date: 2026 Jun 11\r\n DOI: 10.1038/s41591-026-04409-3\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42282836\r\n Title: Metabolic Intervention with Dimethyl Malonate Impairs Phagocytic Clearance but Fails to Protect Neur\r\n Journal: bioRxiv | Date: 2026 Jun 2\r\n DOI: 10.64898/2026.05.29.724314\r\n PubType: ['Journal Article', 'Preprint']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42271051\r\n Title: A prognostic human brain network for diffuse midline glioma.\r\n Journal: Nature | Date: 2026 Jun 10\r\n DOI: 10.1038/s41586-026-10631-3\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42282969\r\n Title: A recombinant IgG1 Fc-domain protein ameliorates inflammatory demyelinating peripheral neuropathy.\r\n Journal: Front Immunol | Date: 2026\r\n DOI: 10.3389/fimmu.2026.1857016\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42282966\r\n Title: OxLDL-induced ferroptosis and pyroptosis in atherosclerosis: a mini review.\r\n Journal: Front Immunol | Date: 2026\r\n DOI: 10.3389/fimmu.2026.1831457\r\n PubType: ['Journal Article', 'Review']\r\n HasAbstract: False\r\n IsReview: True\r\n\r\nPMID: 42284010\r\n Title: Novel hasubanan alkaloids and dimers from Stephania japonica var. discolor: phytochemical profile an\r\n Journal: Arch Pharm Res | Date: 2026 Jun 12\r\n DOI: 10.1007/s12272-026-01619-8\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42248891\r\n Title: Microglial CD31 suppresses Aβ clearance and promotes Alzheimer pathology in 5×FAD mice.\r\n Journal: Nat Commun | Date: 2026 Jun 5\r\n DOI: 10.1038/s41467-026-74037-5\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42284142\r\n Title: A hypothalamic VMPO-supraoptic vasopressin circuit mediates procalcitonin-induced fluid imbalance.\r\n Journal: Cell Rep | Date: 2026 Jun 11\r\n DOI: 10.1016/j.celrep.2026.117516\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42283006\r\n Title: Micro- and nanoplastic exposure as an emerging risk factor for depressive-like phenotypes across spe\r\n Journal: Front Toxicol | Date: 2026\r\n DOI: 10.3389/ftox.2026.1817678\r\n PubType: ['Journal Article', 'Review']\r\n HasAbstract: False\r\n IsReview: True\r\n\r\nPMID: 42284260\r\n Title: The mTOR/Akt pathway is involved in regulating astrocyte growth and GLT-1 expression during cerebral\r\n Journal: PLoS One | Date: 2026\r\n DOI: 10.1371/journal.pone.0351107\r\n PubType: ['Journal Article']\r\n HasAbstract: False\r\n IsReview: False\r\n\r\nPMID: 42283792\r\n Title: Rotenone in Drug-Resistant Epilepsy Models: Powerful Tool or Problematic Paradigm?\r\n Journal: Neurochem Res | Date: 2026 Jun 12\r\n DOI: 10.1007/s11064-026-04816-5\r\n PubType: ['Letter']\r\n HasAbstract: False\r\n IsReview: False", "exit_code": 0, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "File \"<string>\", line 77\r\n print(f'{'='*60}')\r\n ^\r\nSyntaxError: f-string: expecting '}'", "exit_code": 1, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "Found 15 articles in XML\r\n\r\n=== PMID: 42247297 | N/A | Authors: 0 ===\r\nTitle: Elevated phagocytic capacity directs innate spinal cord repair.\r\nDOI: 10.1016/j.celrep.2026.117482\r\nPubTypes: []\r\nAbstract: Immune cells elicit a continuum of transcriptional states after spinal cord injury (SCI). In mammals, inefficient debris clearance and chronic inflammation impede recovery and overshadow pro-regenerative immune functions. We found that zebrafish SCI elicits transient immune activation and efficient debris clearance. Transcriptomics and genetic abla...\r\n============================================================\r\n\r\n=== PMID: 42029746 | N/A | Authors: 0 ===\r\nTitle: Altered astrocyte-neuron crosstalk in progressive supranuclear palsy: integrated evidence from proteomics and magnetic resonance s\r\nDOI: 10.1007/s00401-026-03020-7\r\nPubTypes: []\r\nAbstract: The anterior cingulate cortex (ACC), crucial for executive function, is frequently impaired in progressive supranuclear palsy (PSP), yet mechanisms underlying this selective vulnerability remain unclear. Given the integration of astrocytes into neural circuits, we hypothesized that astrocyte dysfunction and altered astrocyte-neuron crosstalk contri...\r\n============================================================\r\n\r\n=== PMID: 42242219 | N/A | Authors: 0 ===\r\nTitle: Activity-dependent protein synthesis in neurons requires microglial-metabolic coupling.\r\nDOI: 10.1016/j.cmet.2026.05.006\r\nPubTypes: []\r\nAbstract: De novo protein synthesis is required for long-lasting synaptic plasticity and memory, but it comes with a great metabolic cost. In the mammalian brain, it remains unclear which cell types and biological mechanisms are critical for sensing and responding to increased metabolic demand. Here, we demonstrate that microglia, the resident macrophages of...\r\n============================================================\r\n\r\n=== PMID: 41946358 | N/A | Authors: 0 ===\r\nTitle: Astrocytic glucose metabolism regulates the survival of newborn hippocampal neurons in the adult brain.\r\nDOI: 10.1016/j.neuron.2026.03.021\r\nPubTypes: []\r\nAbstract: In the adult brain, hippocampal activity precisely regulates the survival of newborn hippocampal neurons. However, the mechanisms by which these neurons acquire metabolites required for survival remain unclear. Using a genetically encoded glucose biosensor and in vivo imaging in freely moving animals, we tracked cellular glucose dynamics during con...\r\n============================================================\r\n\r\n=== PMID: 42259289 | N/A | Authors: 0 ===\r\nTitle: Developmental and age-related synapse elimination is mediated by glial Croquemort.\r\nDOI: 10.1016/j.neuron.2026.04.046\r\nPubTypes: []\r\nAbstract: Neurons and glia work together to dynamically regulate neural circuit assembly and maintenance. In this study, we show that Drosophila exhibit large-scale synapse formation and elimination as part of normal CNS circuit maturation and that glia use conserved molecules to regulate these processes. Using a high-throughput ELISA-based in vivo screening...\r\n============================================================\r\n\r\n=== PMID: 42268720 | N/A | Authors: 0 ===\r\nTitle: Microglial states associate with lesion dynamics in multiple sclerosis.\r\nDOI: 10.1016/j.celrep.2026.117538\r\nPubTypes: []\r\nAbstract: Multiple sclerosis (MS) is a neuroinflammatory disease of the CNS characterized by demyelinating lesions. Lesion expansion contributes to disability progression, whereas remyelination may restore neurological function. How these divergent outcomes relate to microglial states remains incompletely understood. Using single-cell-resolution spatial tran...\r\n============================================================\r\n\r\n=== PMID: 42267908 | N/A | Authors: 0 ===\r\nTitle: Developmental circuit instability in amyotrophic lateral sclerosis: from hyperexcitability to network collapse.\r\nDOI: 10.1093/brain/awag185\r\nPubTypes: []\r\nAbstract: Amyotrophic lateral sclerosis (ALS) is traditionally viewed as a late-onset motor neuron disease, yet how cortical dysfunction originates and contributes to pathogenesis remains unresolved. In this study, we reconstruct the developmental trajectory of cultured cortical networks derived from SOD1G93A mouse embryos using a multimodal approach, by com...\r\n============================================================\r\n\r\n=== PMID: 42248891 | N/A | Authors: 0 ===\r\nTitle: Microglial CD31 suppresses A clearance and promotes Alzheimer pathology in 5FAD mice.\r\nDOI: 10.1038/s41467-026-74037-5\r\nPubTypes: []\r\nAbstract: Microglia play crucial roles in Alzheimer's disease (AD), yet the molecular mechanisms are unclear. Here, we show that CD31, a recognized endothelial marker, is predominantly expressed in microglia but not in neurons or astrocytes, and it is significantly elevated in the brains of AD patients and mouse models. Microglia-specific CD31 knockdown in 5...\r\n============================================================\r\n\r\n=== PMID: 42237401 | N/A | Authors: 0 ===\r\nTitle: Insulin resistance alters cortical inhibitory neurons and microglia to exacerbate Alzheimer's knock-in mouse phenotypes.\r\nDOI: 10.1186/s13024-026-00946-0\r\nPubTypes: []\r\nAbstract: Metabolic dysfunction contributes to the risk and progression of Alzheimer's disease (AD), yet the cellular mechanisms linking impaired insulin signaling and systemic metabolic stress to brain dysfunction remain incompletely defined. We examined the impact of chronic high-fat, high-sugar (HFHS)-induced insulin resistance on metabolic parameters, sp...\r\n============================================================\r\n\r\n=== PMID: 42243549 | N/A | Authors: 0 ===\r\nTitle: Human microglial transitions at the A-tau inflection point associate with divergent pathways to dementia and resilience.\r\nDOI: 10.1038/s41591-026-04393-8\r\nPubTypes: []\r\nAbstract: Alzheimer's disease (AD) is not an inevitable outcome of pathology but a dynamic process shaped by how brain cells respond to amyloid- (A) and tau. To disentangle these responses, we combined spatial transcriptomics and single-nucleus RNA sequencing of the superior frontal cortex from octogenarians living with or without dementia and from cognitive...\r\n============================================================\r\n\r\n=== PMID: 42263678 | N/A | Authors: 0 ===\r\nTitle: Epigenetic control of microglial mitochondrial immunity by KAT7 drives Alzheimer's disease pathogenesis.\r\nDOI: 10.1016/j.neuron.2026.05.015\r\nPubTypes: []\r\nAbstract: Mitochondrial DNA (mtDNA)-driven innate immune signaling sustains chronic neuroinflammation in neurological diseases such as Alzheimer's disease (AD), yet how this pathway is regulated in microglia remains poorly understood. Here, we identify the histone acetyltransferase KAT7 (HBO1) as a central epigenetic regulator that links chromatin remodeling...\r\n============================================================\r\n\r\n=== PMID: 42276056 | N/A | Authors: 0 ===\r\nTitle: Single-cell proteome atlas of aging mouse microglia reveals subpopulation-specific phagoproteome.\r\nDOI: 10.1016/j.neuron.2026.05.014\r\nPubTypes: []\r\nAbstract: Microglia are brain-resident immune cells with complex physiological functions. Exploring their proteomic heterogeneity at the single-cell level has remained technically challenging. Here, we optimized a label-free single-cell proteomics (SCP) workflow using Orbitrap Astral mass spectrometry (MS) and applied it to fluorescence-activated cell sortin...\r\n============================================================\r\n\r\n=== PMID: 42265098 | N/A | Authors: 0 ===\r\nTitle: Semaglutide attenuates neuroinflammation in male mice.\r\nDOI: 10.1038/s41467-026-74038-4\r\nPubTypes: []\r\nAbstract: Glucagon-like peptide-1 receptor agonists (GLP-1RAs) have shown promise in preclinical models of neurodegeneration, with emerging evidence suggesting these effects may be driven by modulation of neuroinflammation. However, the cellular mechanisms underlying GLP-1RA effects on neuroinflammation remain poorly understood. Here we show, using a mouse m...\r\n============================================================\r\n\r\n=== PMID: 42277464 | N/A | Authors: 0 ===\r\nTitle: Microglia at a key inflection point in Alzheimer's disease.\r\nDOI: 10.1038/s41591-026-04409-3\r\nPubTypes: []\r\nAbstract: ...\r\n============================================================\r\n\r\n=== PMID: 42052880 | N/A | Authors: 0 ===\r\nTitle: Dynamic metabolic programming of monocyte-derived cells defines immunity in CNS disease.\r\nDOI: 10.1093/brain/awag149\r\nPubTypes: []\r\nAbstract: Monocyte-derived cells (MCs) are highly adaptable innate immune cells that play essential roles in central nervous system (CNS) inflammation. Their functional specialization is closely linked to their metabolic state, which is shaped by local cues such as nutrient availability, oxygen levels, and pro- and anti-inflammatory signals. In this review, ...\r\n============================================================", "exit_code": 0, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "PMID: 42242219\r\nTitle: Activity-dependent protein synthesis in neurons requires microglial-metabolic coupling.\r\nJournal: N/A\r\nDOI: 10.1016/j.cmet.2026.05.006\r\nKeywords: <Keyword MajorTopicYN=\"N\">astrocyte-neuron-lactate-shuttle, brain immunometabolism, brain metabolism, immunometabolism, mRNA translation, microglia, microglia-endothelial interaction, microglia-neuron interaction, microglial-metabolic coupling, neuroimmunology\r\nAbstract: De novo protein synthesis is required for long-lasting synaptic plasticity and memory, but it comes with a great metabolic cost. In the mammalian brain, it remains unclear which cell types and biological mechanisms are critical for sensing and responding to increased metabolic demand. Here, we demonstrate that microglia, the resident macrophages of the brain, are required for metabolic coupling between endothelial cells, astrocytes, and neurons, which fuels protein synthesis in active neurons. Increasing metabolic demand via a motor task stimulates microglia to secrete the hypoxia-responsive protein CYR61, which increases glucose transporter expression in brain vasculature. Depleting microglia reduces training-induced metabolic fluxes and neuronal protein synthesis, which can be reproduced\r\n==================================================\r\n\r\nPMID: 42263678\r\nTitle: Epigenetic control of microglial mitochondrial immunity by KAT7 drives Alzheimer's disease pathogenesis.\r\nJournal: N/A\r\nDOI: 10.1016/j.neuron.2026.05.015\r\nKeywords: <Keyword MajorTopicYN=\"N\">Alzheimer’s disease, CMPK2, KAT7, cGAS-STING, microglia, mitochondrial DNA, neuroinflammation\r\nAbstract: Mitochondrial DNA (mtDNA)-driven innate immune signaling sustains chronic neuroinflammation in neurological diseases such as Alzheimer's disease (AD), yet how this pathway is regulated in microglia remains poorly understood. Here, we identify the histone acetyltransferase KAT7 (HBO1) as a central epigenetic regulator that links chromatin remodeling to mitochondrial immune activation. KAT7 and its histone mark H3K14ac are elevated in microglia from 5FAD mice and human AD brains. Integrative transcriptomic and epigenomic analyses reveal that KAT7 activates transcription of cytidine/uridine monophosphate kinase 2 (Cmpk2), a mitochondrial kinase essential for mtDNA synthesis. Loss of KAT7 reduces Cmpk2 expression, impairs mtDNA replication and release, and consequently suppresses cyclic guanos\r\n==================================================\r\n\r\nPMID: 41946358\r\nTitle: Astrocytic glucose metabolism regulates the survival of newborn hippocampal neurons in the adult brain.\r\nJournal: N/A\r\nDOI: 10.1016/j.neuron.2026.03.021\r\nKeywords: <Keyword MajorTopicYN=\"N\">activity-dependent survival, adult hippocampal neurogenesis, astrocyte-newborn neuron metabolic coupling, glucose metabolism, in vivo biosensor imaging, lactate transport\r\nAbstract: In the adult brain, hippocampal activity precisely regulates the survival of newborn hippocampal neurons. However, the mechanisms by which these neurons acquire metabolites required for survival remain unclear. Using a genetically encoded glucose biosensor and in vivo imaging in freely moving animals, we tracked cellular glucose dynamics during contextual exploration. Newborn neurons recovered intracellular glucose slowly and expressed low levels of glycolysis- and glucose transport-related genes. By contrast, astrocytes surrounding newborn neurons exhibited rapid decreases in intracellular glucose during exploration, followed by prompt recovery afterward. In vivo lactate imaging revealed concurrent increases in astrocytic and extracellular lactate during exploration. Importantly, disrupti\r\n==================================================\r\n\r\nPMID: 42237401\r\nTitle: Insulin resistance alters cortical inhibitory neurons and microglia to exacerbate Alzheimer's knock-in mouse phenotypes.\r\nJournal: N/A\r\nDOI: 10.1186/s13024-026-00946-0\r\nKeywords: <Keyword MajorTopicYN=\"N\">Alzheimer’s, Diabetes, Glucose, Inhibitory neurons, Insulin resistance, Microglia, Obesity, snRNA-seq\r\nAbstract: Metabolic dysfunction contributes to the risk and progression of Alzheimer's disease (AD), yet the cellular mechanisms linking impaired insulin signaling and systemic metabolic stress to brain dysfunction remain incompletely defined. We examined the impact of chronic high-fat, high-sugar (HFHS)-induced insulin resistance on metabolic parameters, spatial learning and memory, and in vivo glial activation and neuropathology in Alzheimer's disease knock-in mice expressing human mutant APP and wild-type (WT) tau. Single-nucleus RNA sequencing was performed to resolve cell-type-specific transcriptional responses. HFHS-diet induced weight gain, hyperglycemia, and glucose intolerance in WT and AD knock-in mice as compared to control diet-fed mice. However, impaired spatial learning was observed on\r\n==================================================\r\n\r\nPMID: 42243549\r\nTitle: Human microglial transitions at the A-tau inflection point associate with divergent pathways to dementia and resilience.\r\nJournal: N/A\r\nDOI: 10.1038/s41591-026-04393-8\r\nKeywords: \r\nAbstract: Alzheimer's disease (AD) is not an inevitable outcome of pathology but a dynamic process shaped by how brain cells respond to amyloid- (A) and tau. To disentangle these responses, we combined spatial transcriptomics and single-nucleus RNA sequencing of the superior frontal cortex from octogenarians living with or without dementia and from cognitively intact centenarians with comparable A accumulation. We identified six distinct tissue domains representing a spatial pathological continuum of AD, with a key inflection point marked by a shift from A-associated inflammatory changes to tau-associated cellular programs. This transition was accompanied by a change in microglial states, from early inflammatory to late antigen-presenting phenotypes, termed early and late plaque-induced gene (PIG) p\r\n==================================================\r\n\r\nPMID: 42276056\r\nTitle: Single-cell proteome atlas of aging mouse microglia reveals subpopulation-specific phagoproteome.\r\nJournal: N/A\r\nDOI: 10.1016/j.neuron.2026.05.014\r\nKeywords: <Keyword MajorTopicYN=\"N\">brain aging, mass spectrometry, microglia heterogeneity, single-cell proteomics\r\nAbstract: Microglia are brain-resident immune cells with complex physiological functions. Exploring their proteomic heterogeneity at the single-cell level has remained technically challenging. Here, we optimized a label-free single-cell proteomics (SCP) workflow using Orbitrap Astral mass spectrometry (MS) and applied it to fluorescence-activated cell sorting (FACS)-sorted microglia from the hippocampus and prefrontal cortex of young, middle-aged, and aged mice. This yielded one of the largest SCP datasets to date, comprising 3,085 single cells, with an average of 1,153 protein groups identified per cell. Compared with single-cell transcriptomic data, the SCP dataset showed higher expression completeness and moderate cross-modality correlation. This dataset revealed spatiotemporal proteomic heteroge\r\n==================================================\r\n\r\nPMID: 42268720\r\nTitle: Microglial states associate with lesion dynamics in multiple sclerosis.\r\nJournal: N/A\r\nDOI: 10.1016/j.celrep.2026.117538\r\nKeywords: <Keyword MajorTopicYN=\"N\">CP: immunology, CP: neuroscience, lesion expansion, microglia state, multiple sclerosis, remyelination, spatial transcriptomics\r\nAbstract: Multiple sclerosis (MS) is a neuroinflammatory disease of the CNS characterized by demyelinating lesions. Lesion expansion contributes to disability progression, whereas remyelination may restore neurological function. How these divergent outcomes relate to microglial states remains incompletely understood. Using single-cell-resolution spatial transcriptomics, we compare lesions containing foamy to those containing ramified microglia in postmortem human brain tissue. We find distinct cellular and molecular signatures spatially associated with microglial morphology. Lesions with ramified microglia display gene expression profiles associated with myelin stability and axonal support, consistent with an environment permissive for repair. In contrast, lesions with foamy microglia exhibit immune\r\n==================================================\r\n\r\nPMID: 42265098\r\nTitle: Semaglutide attenuates neuroinflammation in male mice.\r\nJournal: N/A\r\nDOI: 10.1038/s41467-026-74038-4\r\nKeywords: \r\nAbstract: Glucagon-like peptide-1 receptor agonists (GLP-1RAs) have shown promise in preclinical models of neurodegeneration, with emerging evidence suggesting these effects may be driven by modulation of neuroinflammation. However, the cellular mechanisms underlying GLP-1RA effects on neuroinflammation remain poorly understood. Here we show, using a mouse model of lipopolysaccharide-induced neuroinflammation, how semaglutide coordinates cellular responses to resolve neuroinflammation. We find that semaglutide in male mice prevents brain infiltration of neutrophils, excessive cytokine release, and suppresses neuroinflammation-associated transcriptional signatures specifically in microglia, endothelial cells, and a subset of pericytes. Mechanistically, we identify a subset of Glp1r-expressing neurons\r\n==================================================\r\n\r\nPMID: 42247297\r\nTitle: Elevated phagocytic capacity directs innate spinal cord repair.\r\nJournal: N/A\r\nDOI: 10.1016/j.celrep.2026.117482\r\nKeywords: <Keyword MajorTopicYN=\"N\">CP: Immunology, CP: Neuroscience, immune clearance, lipid metabolism, macrophages, microglia, neuroimmunology, phagocytosis, spinal cord injury, spinal cord regeneration\r\nAbstract: Immune cells elicit a continuum of transcriptional states after spinal cord injury (SCI). In mammals, inefficient debris clearance and chronic inflammation impede recovery and overshadow pro-regenerative immune functions. We found that zebrafish SCI elicits transient immune activation and efficient debris clearance. Transcriptomics and genetic ablation showed zebrafish macrophages are highly phagocytic and required for regeneration. Comparisons between zebrafish and mammalian macrophages identified transcription and immune response regulator (tcim) as an immune-enriched regenerative gene. Deletion of zebrafish tcim impairs phagocytosis and regeneration and activates a pro-inflammatory signature in leukocytes. Tcim expression in zebrafish and mouse macrophages establishes its conserved role\r\n==================================================", "exit_code": 0, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "# Strict Scientific Peer Review: Paper Recommendation for Microglial Lactylation Project\n\n---\n\n## Paper 1: PMID 42242219 — *Cell Metabolism*\n**\"Activity-dependent protein synthesis in neurons requires microglial-metabolic coupling\"**\n\n| Dimension | Score (1–10) | Rationale |\n|---|---|---|\n| **1. Logic Completeness** | 6 | Multi-node chain (microglia→CYR61→vasculature→glucose→neuron→translation). Each node demands independent gain/loss; vascular intermediate makes cell-autonomous proof difficult. Likely correlative at some links. |\n| **2. Methodology** | 7 | Metabolomics + vascular imaging expected for *Cell Metabolism* tier. \"Neuronal protein synthesis\" measurement in vivo is challenging (puromycin/SUnSET labeling is noisy). |\n| **3. Innovation** | 7 | Microglia-to-vasculature metabolic signaling is underexplored. However, the ANLS framework itself is >20 years old; this extends rather than invents a paradigm. |\n| **4. Learnability** | 5 | **Mismatch with student's project.** Student studies *lactylation→RhoA→mitochondrial positioning* in microglia. This paper is about *secreted CYR61→vascular glucose→neurons*. Methodological overlap is minimal: no PTM enzymology, no mitochondrial dynamics, no RhoA. The microglial conditioning/CM transfer method is the only reusable piece. |\n| **5. Clinical Translation** | 6 | Vascular-targeted interventions have translational appeal but neuronal protein synthesis is a diffuse endpoint. No disease model specified in the abstract. |\n| **Total** | **31** | Qualifies (≥30, all ≥5) but a weak fit. |\n\n---\n\n## Paper 2: PMID 42263678 — *Neuron*\n**\"Epigenetic control of microglial mitochondrial immunity by KAT7 drives Alzheimer's disease pathogenesis\"**\n\n| Dimension | Score (1–10) | Rationale |\n|---|---|---|\n| **1. Logic Completeness** | 8 | Tight, falsifiable chain: KAT7↑ → Cmpk2 transcription → mtDNA synthesis → mtDNA release → cGAS-STING. Each step is a defined molecular event testable by KO/KI. KAT7 is an acetyltransferase — direct enzymatic activity can be mutated (catalytic-dead KI). |\n| **2. Methodology** | 8 | Expect ChIP-seq/CUT&RUN (KAT7 target profiling), mtDNA quantification (qPCR/ddPCR for cytosolic mtDNA), cGAS-STING pathway assays (p-STING, p-TBK1, IRF3 dimerization), AD patient brain IHC/RNA-seq. High technical bar. |\n| **3. Innovation** | 8 | **KAT7→mtDNA→cGAS-STING in microglia is a novel axis.** Links nuclear epigenetic regulation (histone acetylation) to mitochondrial innate immunity in a cell-type-specific manner. The mtDNA→cGAS-STING field in microglia is <5 years old; adding an upstream HAT regulator is a genuine conceptual advance. |\n| **4. Learnability** | 9 | **Exceptionally high.** Direct methodological parallels to the student's project: |\n| **5. Clinical Translation** | 8 | Validated in AD brains; cGAS-STING has existing inhibitors (H-151, RU.521); KAT7 is a druggable acetyltransferase. Strong translational arc. |\n| **Total** | **41** | Highest total. All dimensions ≥5. **Clear winner.** |\n\n---\n\n## Paper 3: PMID 41946358 — *Neuron*\n**\"Astrocytic glucose metabolism regulates the survival of newborn hippocampal neurons in the adult brain\"**\n\n| Dimension | Score (1–10) | Rationale |\n|---|---|---|\n| **1. Logic Completeness** | 7 | Astrocyte→glucose/lactate→neuronal survival is a clean axis. In vivo biosensor tracking strengthens causal inference. But newborn neuron survival is a distal, multifactorial endpoint — alternative explanations hard to exclude. |\n| **2. Methodology** | 8 | *In vivo* glucose biosensor imaging is the standout feature. Real-time metabolite tracking with cellular resolution is technically demanding and well-suited to *Neuron*. |\n| **3. Innovation** | 7 | In vivo glucose biosensor is methodologically innovative. Conceptually, astrocyte-neuron metabolic coupling (Pellerin & Magistretti, 1994) is mature — this is an elegant application, not a new concept. |\n| **4. Learnability** | 5 | **Poor alignment.** The paper focuses on *astrocytes* and *newborn hippocampal neurons*. The student's project is *microglial lactylation→mitochondrial positioning*. The glucose biosensor technology is not transferable to a lactylation/mitochondrial project. Lactate *transport* is tangentially relevant (MCTs), but the core question is different — the student asks what lactate *does* inside microglia (PTM substrate), not how it's *supplied* to neurons. |\n| **5. Clinical Translation** | 6 | Adult neurogenesis has translational potential (depression, cognitive aging) but the path to clinic is long and indirect. |\n| **Total** | **33** | Qualifies but irrelevant to the student's core question. |\n\n---\n\n## Final Scores Summary\n\n| Paper | Logic | Method | Innovation | Learnability | Translation | **Total** |\n|---|---|---|---|---|---|---|\n| #1 (CYR61) | 6 | 7 | 7 | 5 | 6 | **31** |\n| **#2 (KAT7)** | **8** | **8** | **8** | **9** | **8** | **41** |\n| #3 (Glucose biosensor) | 7 | 8 | 7 | 5 | 6 | **33** |\n\n---\n\n## 🏆 Winner: Paper 2 — KAT7/mtDNA/cGAS-STING (PMID 42263678, *Neuron*)\n\n### Why This One\n\nPaper 2 is not merely the highest-scoring — it is a **structural isomorphic match** to the student's project. Both papers ask the same *kind* of question:\n\n> *How does a nuclear epigenetic enzyme (acetyltransferase) regulate mitochondrial behavior in microglia, and how does this drive neuroinflammation?*\n\nThe student's project: **PCAF (acetyltransferase) → lactylation → RhoA → mitochondrial positioning** \nPaper 2: **KAT7 (acetyltransferase) → Cmpk2 transcription → mtDNA release → cGAS-STING**\n\nThe experimental logic is parallel — an acetyltransferase links the nucleus to mitochondrial outcomes in microglia, with disease relevance. Papers #1 and #3 are competent but ask fundamentally different questions (intercellular metabolite shuttling, not intracellular PTM→mitochondria signaling).\n\n---\n\n### Specific Learnable Aspects (Experimental Design Reusable for Student's Project)\n\n| Paper 2 Feature | How the Student Adapts It |\n|---|---|\n| **KAT7 ChIP-seq/CUT&RUN to identify Cmpk2 targets** | Student performs **PCAF CUT&RUN** (or CUT&Tag) in microglia ± Warburg stimulation to map genomic targets. Does PCAF bind RhoA promoter, or does lactylation occur cytoplasmically on pre-existing RhoA protein? This is the critical distinction — the paper's ChIP approach teaches how to answer it. |\n| **KAT7 catalytic-dead mutant (KO + KI rescue)** | Student generates **PCAF catalytic-dead** (HAT-domain mutation) in microglia to prove lactylation activity is required, not just PCAF protein presence. Paper 2's KI rescue design is the template. |\n| **Cytosolic mtDNA quantification (qPCR for D-loop/ND1/COX1 in cytosolic fraction)** | Student adapts this to measure **mitochondrial positioning**: instead of mtDNA in cytosol, use the same fractionation protocol + MitoTracker/TOM20 western on membrane vs. cytosolic fractions to quantify mitochondria-PM distance. |\n| **cGAS-STING activation readout (p-STING, p-TBK1, IRF3 dimerization, CCL5/CXCL10 qPCR)** | Student measures whether **RhoA lactylation→mitochondrial redistribution→altered STING activation**. Does pulling mitochondria away from the PM (antagonizing mitoxyperiosis) reduce cGAS-STING signaling? The readout panel is directly reusable. |\n| **AD mouse model (5×FAD) + microglia-specific KAT7 cKO** | Student uses **Cx3cr1-CreER × PCAF-fl/fl** (or RhoA-fl/fl) mice in a neuroinflammatory model (5×FAD, LPS, or EAE) to test the PCAF→RhoA lactylation→mitochondrial positioning axis *in vivo*. Paper 2's genetic strategy is directly portable. |", "exit_code": 0, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"todos": [{"id": "step1", "content": "Step 1: PubMed检索 — 神经炎症/胶质细胞方向", "status": "completed"}, {"id": "step2", "content": "Step 2: 获取论文详情并初筛", "status": "completed"}, {"id": "step3", "content": "Step 3: Claude Code深度评估", "status": "completed"}, {"id": "step4", "content": "Step 4: 唯一推荐确认 — PMID 42263678 (Neuron, KAT7/mtDNA/cGAS-STING)", "status": "in_progress"}, {"id": "step5", "content": "Step 5: 下载PDF+提取Figure图片", "status": "pending"}, {"id": "step6", "content": "Step 6: 制作HTML深度解读", "status": "pending"}, {"id": "step7", "content": "Step 7: 输出最终推送消息+MEDIA附件", "status": "pending"}], "summary": {"total": 7, "pending": 3, "in_progress": 1, "completed": 3, "cancelled": 0}}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "PMID: 42263678\r\nDOI: 10.1016/j.neuron.2026.05.015\r\nPII: S0896-6273(26)00386-7\r\nTitle: Epigenetic control of microglial mitochondrial immunity by KAT7 drives Alzheimer's disease pathogenesis.\r\nSource: Neuron\r\nPubDate: 2026 Jun 9\r\nPubTypes: ['Journal Article']\r\nPII Clean: S0896627326003867", "exit_code": 0, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "=== Downloading Figure images for KAT7 Neuron paper ===\ngr1_lrg: HTTP 200\n -> Saved (3549224 bytes)\ngr2_lrg: HTTP 200\n -> Saved (1267832 bytes)\ngr3_lrg: HTTP 200\n -> Saved (1921240 bytes)\ngr4_lrg: HTTP 200\n -> Saved (3182040 bytes)\ngr5_lrg: HTTP 200\n -> Saved (3589508 bytes)\ngr6_lrg: HTTP 200\n -> Saved (2459288 bytes)\ngr7_lrg: HTTP 200\n -> Saved (3114484 bytes)\nfx1_lrg: HTTP 404\n\n=== Listing downloaded files ===\n-rw-r--r-- 1 forgase 197121 3549224 6月 13 11:03 /c/Users/forgase/fig1_b64.txt\n-rw-r--r-- 1 forgase 197121 1267832 6月 13 11:03 /c/Users/forgase/fig2_b64.txt\n-rw-r--r-- 1 forgase 197121 1921240 6月 13 11:03 /c/Users/forgase/fig3_b64.txt\n-rw-r--r-- 1 forgase 197121 3182040 6月 13 11:03 /c/Users/forgase/fig4_b64.txt\n-rw-r--r-- 1 forgase 197121 3589508 6月 13 11:03 /c/Users/forgase/fig5_b64.txt\n-rw-r--r-- 1 forgase 197121 2459288 6月 13 11:03 /c/Users/forgase/fig6_b64.txt\n-rw-r--r-- 1 forgase 197121 3114484 6月 13 11:03 /c/Users/forgase/fig7_b64.txt", "exit_code": 0, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "---\n<!DOCTYPE html>\n<html lang='en-us'>\n<head>\n <meta content=\"text/html; charset=UTF-8\" http-equiv=\"Content-Type\" >\n <meta content=\"IE=edge\" http-equiv=\"X-UA-Compatible\" >\n <meta content=\"1\" name=\"tdm-reservation\" >\n <meta content=\"https://www.elsevier.com/tdm/tdmrep-policy.json\" name=\"tdm-policy\" >\n <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" >\n <meta content=\"NOARCHIVE\" name=\"robots\" >\n <meta content=\"noodp\" name=\"robots\" >\n <meta content=\"noydir\" name=\"robots\" >\n <link\n href=\"https://sdfestaticassets-eu-west-1.sciencedirectassets.com/shared-assets/103/images/favSD.ico\"\n rel=\"icon\"\n type=\"image/x-icon\"\n >\n <title>ScienceDirect</title>\n <style>\n@font-face{font-family:ElsevierSans;src:url(data:binary/octet-stream;base64,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...WwpB/4q+fzPG/i+YvJpakc6Cw66pX76S+EIeyXM8bKGxQEX4iCNbVmYuzKTLmrqunsfMLA3Mh3zGNPM3OYA37Ob7IO8j1JQ4fFNj9E2LyTc9TqhDe4JJ5b1KmoASy867cORcUPuydLxdJ1DatQYbR8RMLLu91O2jpDR+vVHumCpvyaUud6WrXet6N7rZrW5Xrruq6mqqra76znehi9htQ68O10IoLTef2U8MZgMQ8iPCEHCVA+G/emA+Q9jkIwbAi74I6HCvsGrlEyDs80Vh3bc0apogIMrIwdsehU2dddVdT7311d9Ag31oqDjSG13t4ZaWfl9net2b3vau97XUWlvtdYABISAAWbcHgtRu5aGCAXNb3Q5Ad7uyLmQPK93WTuDQATGfiQOnkxXQgfgFWqUUiF7ZMiBbANDXfoAy0gF8BqOxgPEg8k3on38XjqWDAQYZh5grb4lS3aQ6PIyUcqkt78TXlNez36f1yf8F/xEsiFehCwMYwzxswj44gQhHJCAKoDMqj/IxQD6DfAH5cuzGQVyJZ5DeSB90//a1f+KDe5JCKINIjS43pyW55jZalFSr7HDCU173vp3WJ/8K/iFYEK9AG/oQ1vD27jYakV7+Je+5EqKafAfEUct6tpf9vyltGPTfncc++8OLunj2o68TrXjfeNv85c387wNvPlKG3uOOcSMAT98ZF0AS5Pr7F5CH3+X0AiErIOgMsBhgLcBWF1xDq7nXgNtNCYC7Ae43tzuVw+ZdkArdA54Og9zuXyJIy5NpawZrHG34ccK4oM1Z9MMYobm2W2hxdjPO3G8jjbed8c11qbCAZU91PHPum1amP2DguKPMb8zKhpnLahcx9hx71t8FrmH01hfZ08qnqhQkLFr2jSSUUhhl0LCq1KKgY5DTJqFHjpkze448ODWTmwghwoRL4mXedZdddds1tzS477lHnmrWqVW7Do0++eGLb/763tr8tmHFmnVH/jlxbisJG6Fsg7Ub3j6y9sPZQ95BBCOUnURymKLjVJxCdoSaD6k6TcModWdoOUfTWcZ6GOqio42RbvpamFxNjc3aP7kWPjA3yNIQK8OsjbDxEdWYUXY+c/WLg69c/ORpnLcJZ0w67b+zpvia5WPGOdOCLAm0KMCCWLuibAm1KsaOSJuibYu3L9mxFGkFZBRGegGk7eLuDz9zgklneaFrXnRdi61VokMm2mOyAwaDwApDDzHkUJOc+jTamPd0s81aOsQBcUKsEBsA4FPrmu+6u9InIF2/lRNc+Np70TIA8O0AYKqdQCt9UfZLUIMUVpbsmAh2YM7uyO1os+ds04vH1IAVe243zyt5tSvDen23gXSbQTOOYlK7JZr+gKbaXZUooAEgwITicks12d7QM2JHw5bu3TQdukwMNoKxgz3rjyoqVcqVKNWGosRelplXV9/tRTqyu2y7zeLZPYu6\n\n... [OUTPUT TRUNCATED - 778876 chars omitted out of 828876 total] ...\n\nMS41Yy40IDAgMSAuMiAxLjUuNS40LjMuNS40LjcgMSAuNCAxLjIuNSAyLjcuNyA0LjMuMyAxLjYtLjUgMi45LTIuMSAzYTMgMyAwIDAxLTEuMS0uMmMtLjMgMC0uNi0uMi0uNy0uNmwtLjUtMS4zYzAtLjQtLjItLjgtLjMtMWwtMy41IDEuMi0zIDEuNWMtMi4xLjgtNC40IDEuNC02LjUgMS40LTEuMSAwLTIuNC0uMy0zLjItLjYtLjgtLjMtMS0uNi0xLjItMS42YTEwLjggMTAuOCAwIDAxLjctNS4zYy4zLS42LjYtMSAxLTEuMmE2LjUgNi41IDAgMDExLjQtLjRjLjUtLjIuOS0uMiAxLjQtLjJsMS4xLjJjLjYuMy43LjcuNyAxLjN2MS42Yy44LjEgMi4zIDAgMy0uMWE4IDggMCAwMDIuMS0uOGMuOC0uMyAxLjgtMS4xIDMtMS43ek00MCAzNy41bC4yIDEuMnYyLjFjLS4yIDEuMiAwIDIuNS0uMiAzLjdsLS4yIDIuNGMwIC4zIDAgLjQuMy40LjYuMiAxIC4yIDEuMy4yLjkgMCAxLjUtLjQgMS40LS45bC0uMi0xYy0uMi0xLS4yLTEuNC0uMi0yLjRoLjJsLjcgMi44Yy4yLjYgMCAxLjcuMiAyLjMgMS41LjIgMy4zIDAgNCAwIDAtMS4zIDAtMi42LS41LTMuMWwtMS4zLTFhNi45IDYuOSAwIDAxLTEuNi0xLjdjLS43LTEtLjgtMS40LTEuNC0yLjRsLTEuMy0yLjNhNC4zIDQuMyAwIDAwLS41LS43bC0xLjQtLjNjLS43IDAtMS4xLS4xLTEuNS0uNS0uMy0uNC0uNC0uNi0uMi0xIDAtLjMgMC0uNC0uMi0uNi0uMi0uMy0uMi0uNSAwLS43LjUtLjQgMS4xLS45IDEuOC0xYS4zLjMgMCAwMC4xIDBsLS4xLS42LTEuMi4yYy0uOSAwLTEuNi0uNC0xLjktMS41bC0uOC0yYzAtLjMgMC0uNi4yLTFsLS43LTFjLS41LS4yLTEtLjQtMS4zLS44LS4yLS4yLS4zLS4yLS40LS4xbC0uMy4zYy0uMi4yLS41LjItLjggMC0uMyAwLS41LS40LS41LS43IDAtLjQuMy0uNyAwLS45LS4yLS4zLS41LS43LS4xLTFsLjQtLjFhMSAxIDAgMDAuNS0xLjFjMC0uNC0uMi0uNS0uNi0uNS0uNSAwLS43LS4zLS43LS42IDAtLjQuNC0uNi43LS41LjEgMCAuMyAwIC40LjIgMCAuMS4xLjMuMy4zLjUgMCAxLS42IDEtMS4xIDAtLjItLjItLjMtLjYtLjItLjYgMC0xLjQuMy0yLjIuNi0uNC4yLS41LjUtLjIuOWwuMS4zYy4xLjIuMS4zIDAgLjRsLS4zLjFjLS4yLjItLjIuNCAwIC43YS45LjkgMCAwMC4xLjJjLjIuMi4yLjMgMCAuNXMtLjIuNS0uMS44bC4yIDEuOHYyYzAgLjQuMy44LjcgMS4zbDEuNSAxLjdhNCA0IDAgMDExLjMgMi42YzAgLjUuMi43LjcgMSAxIC4zIDEuNC44IDEuNSAxLjYuMiAxLjQtLjUgMi43LTEuNyAyLjYtLjYgMC0xLS41LTEtLjggMC0uMy4yLS43LjUtLjhhLjguOCAwIDAxLjMgMCAuNi42IDAgMDEwIC4ybC0uMS40di41Yy4yLjEuNC4yLjcuMS4yIDAgLjQtLjMuNi0uNi41LTEgLjItMi4yLS45LTIuNWgtMS4xYy0uNy41LTEuMy43LTEuOSAxLjJhLjQuNCAwIDAwMCAuNCA1NiA1NiAwIDAwLjQgNi44bC4yLjguMy4zLjMtLjMuNS0uOGguMmwuMS4xVjQ2bC4zLjMuMi0uMy4xLS41YS40LjQgMCAwMS4zLS4xdjFsLjMuMi4yLS4zLjMtLjUuNy0uNmEuNS41IDAgMDEuMyAwIC42LjYgMCAwMTAgLjJsLS41IDEuMi0uMi41aC4zcy4yIDAgLjItLjJ2LS4ybC4zLS4zYS41LjUgMCAwMS4yLjNsLjIuNS4zLjIuMi0uMS4yLS42LjMuMS4yLjQgMS4yLjF2LS41LTNsLjMtMy4yLjItM2guMnptMTUtMjAuNGwtMS41LS4xYy0uMyAwLS45IDAtLjkuM2wuMy4zYy43LjUgMi44LjYgMy42LjVhMS42IDEuNiAwIDAwMC0uNmMtLjMtLjYtMS0xLjItMS43LTEuNC0uNy0uMi0xLjYtLjItMi4yIDBsLS4yLS41YTcuMiA3LjIgMCAwMDAtMi44YzAtLjUtLjEtLjctLjQtMS0uMS0uMi0uMy0uMi0uNCAwYTMuMiAzLjIgMCAwMC0uNS40Yy0uNy45LS42IDEuNC0uNSAyLjdsLjQuMWMuMyAwIC4zIDAgLjMtLjRsLjEtMWEuOC44IDAgMDEuMS0uMmwuMy4ydi40YzAgLjctLjMgMS4yLS4zIDEuNSAwIC4xLjUuMy40LjUgMCAuMi0uOC4zLTEuMy40LS4zLS40LS42LS44LTEuMi0xLS4zLS4xLS43LS4yLS40LS40bC40LS4yYy43LS4zLjUtLjcuNC0xLjQgMC0uMi0uMS0uMy0uMy0uMy0uNCAwLS42IDAtMSAuMmwtLjQuNC0uOC45SDQ3di0uMmwuNi0xLjZjMC0uMy4yLS40LjQtLjRhMyAzIDAgMDAzLS43Yy4yLS40LjItLjUtLjItLjgtLjYtLjUtMS40LS44LTIuMy0uNWExIDEgMCAwMC0uNC4zbC0uMi40aDEuMWwuMy0uMS4yLjEtLjIuMi0uNi4xLTEuMi4zYy0uMi4xLS4zIDAtLjMtLjIgMC0uMyAwLS42LjMtLjguNS0uNC44LS45IDEtMS41IDAtLjQtLjMtLjktLjQtMS4ydi0uMmwxLjMuNmMuMiAxLjEuOSAxLjkgMiAyLjJsMSAuNGMuNCAwIC42IDAgLjYtLjR2LS41bC43LS4yYy42IDAgMS4yLjMgMS44LjVsLjIuM2gtLjNjLS41IDAtLjktLjItMS4zLS4zLS4zIDAtLjUuMS0uNi40LjIuMyAxIC43IDEuNC44LjQuMSAyIC4zIDItLjFhNS45IDUuOSAwIDAwLS4yLTEuM2MwLS40LS40LS42LS43LS43LS43LS4yLTEuMi0uMy0yLS4zaC0uM2wtLjguM1Y5Yy0uMi0uNy0uNS0uOC0xLTF2LS41Yy41LS4zIDEtLjcgMS4yLTFsLS43LS40Yy0uNi0uMi0uNy0uNS0xLjItLjdhMyAzIDAgMDAtMS0uMmMtLjQgMC0uOSAwLTEgLjIgMCAwIDAgLjIuMi4zLjMuMyAxIC40IDEuMy43aC4xbC0uMS4xYTMgMyAwIDAxLTEuMy0uM2wtLjQtLjNjLS4zLS4xLS40IDAtLjYuMy0uMS4zIDAgLjQuMy41LjcuNCAxLjIuNyAyLjEuOGwuMi40YTIyLjcgMjIuNyAwIDAxLTEuMS0uMSAzLjQgMy40IDAgMDEtLjctLjJsLTEuNS0uOC0xLS4zYy0uMS0uMS0uMi0uMiAwLS4zbDIuNy0xLjdoLjVjLjQgMCAuNi4yIDEgLjMuMy4xLjUuMi42IDBhNCA0IDAgMDEuNS0xLjVjLjQtLjYgMS0uOSAxLjctMS40QzU0LjEgMSA1NSAwIDU1LjMgMGMxIDAgMS44IDEuNiAyIDIuMi4xLjUtLjYuOS0uMS45LjQgMCAuOCAwIC44LjQgMCAuNi0uMiAxLjMtLjUgMS43cy0uNyAxLTEuMiAxLjN2LjJjLjguNSAxLjcgMSAxLjcgMS44IDAgLjUtLjEuOC0uNCAxLS4yLjItLjQuNC0uNC43djEuNWMwIC40LTEuMi41LTEuMy43YTUgNSAwIDAxLS40IDNsLjMuNWMxLjIuOSAxLjQgMS43IDEuNSAyLjMtLjMuNC0uOS43LTEgLjctLjkgMC0yLjYtLjYtMy0uNy0uMS4zIDAgLjUuMSAxIC4yLjQuNS43LjUgMS4yIDAgLjIgMCAuNS0uNi42YTQgNCAwIDAxLTIuNy0uOGwtLjQtLjJjLS4zLS4yLS42IDAtLjcuMmwtLjIuNmMtLjEuNC0uMy40LS43LjMtMS4zLS4zLTEuOS0xLjYtMS45LTIuOGwuMS0uMi4yLjFjMCAuMyAwIC41LjIuNyAwIC4zLjEuNy4zIDEgLjMuNC42LjcgMSAuNy4yIDAgLjMtLjEuNC0uNC4zLS41LjYtMSAuNS0xLjYgMC0uMi0uMS0uNS0uMy0uN2wtLjQtLjQuMy0uMmMuNi4zIDEgLjIgMS4zIDAgLjMgMCAuNC0uMi41LS40YTIwLjEgMjAuMSAwIDAxMi0uNGMuOCAwIDEuNi4xIDIuMy40di4yek0yMC45IDM5Yy40IDAgMSAuMiAxIC43YTEuNCAxLjQgMCAwMS0uMS4yLjMuMyAwIDAxLS4xIDBjLS4yLS40LS41LS42LTEtLjVhMiAyIDAgMDAtMSAuNmMtLjIuMi4xLjMuNC41bC41LjMtLjMuNmE0IDQgMCAwMS0uNi0uM2wuMy0uNGguNmMwIC41LS43IDIuMi0uNCAyLjMuOS4xIDItMSAyLjItMi43IDAtLjYuMy0xIDEtMS4xLjctLjMgMS0uNyAxLTEuNS0uMS0uNS4xLS4zLjQtLjdsLjItLjNjMCAuMi4yLjQuMS42LS4yLjYgMCAxLjIuMyAxLjhsLjcgMS43LjQuMmMuNSAxIDEuMiAyLjcgMiAzLjQuNy42IDEuNCAxLjYgMiAyLjIuNS4zLjcgMS4yIDEuMiAxLjQuMyAwIC4zLjMuMy42czAgLjQuMi40aC43Yy4yLS4xLjQgMCAuMy4yIDAgLjEtLjEuMi0uMy4yaC0uN2wtLjMuMS4xLjMgMS4yLjMuMi4xLS4yLjNhMS4yIDEuMiAwIDAxLS41IDBjLS4zIDAtLjctLjMtMS0uNGwtLjMtLjNIMzF2LjVsLjEuMy0uMy4xLS45LS42Yy0uMy0uMi0uNi0uMi0xIDBsLTEgLjdjLS40LjItLjguNy0xLjMuNy0uMyAwLTEtLjUtMS4yLS42bC0xLjQtLjNjLS41LS4xLTEgMC0xLjQuM2wtMiAuM2gtM2E0IDQgMCAwMC0xLjIuMkgxNmMtLjMgMC0uNiAwLS44LS4yYTEuMSAxLjEgMCAwMC0uOS0uMWgtMWMtLjMtLjQtMS0xLTEuMy0uOS0xLjIuMi0xLjggMS0zIC42LS44LS4yLTEuMy0uNC0yLjEtLjFoLTFjLS4zIDAtLjQgMC0uMy0uNHYtLjFjMC0uMy0uMi0uNi0uNS0uNS0uNC4xLS42LjUtLjkuNi0uNS4zLTEgLjItMS43IDAtLjQtLjItLjgtLjEtMS4yLjEtLjMuMS0uNy44LTEgLjhMMCA1MXYtLjNjLjEtLjMuNS0uNi43LS43LjctLjMgMS40LS40IDIuMi0uMy40LjEuOC4yIDEuMSAwIC4zLS4xLjYtLjEuOC0uMy41LS4yLjktLjQgMS40LS4yLjQtLjIuNS0uMy43LS42di0xLjRsLjUtMS4yYzAtLjIuMi0uMi4zLS4yLjQuNS44IDEgLjYgMS41LS4xLjQuNi42LjUgMS0uMS4yIDAgLjQuMi40aC4yYy4yIDAgLjItLjEuMi0uNGE4IDggMCAwMC0uNy0zLjNsLS4zLS44Yy0uMy0uNS0uMi0xIDAtMS41bC4zLTFhMiAyIDAgMDExLTEuMWwuMy4xYy43IDEgMSAyLjMuNiAzLjZsLS4yIDEuMXYuM2wuMi0uMmMuNC0uNS44LTEgMS0xLjYuMy0uNi44LS44IDEuNC0xIC42IDAgLjggMCAuNi42bC0uMyAxYTIgMiAwIDAxLTEgMS40Yy0uMyAwLS42LjMtLjguNWExLjQgMS40IDAgMDAtLjMuMnYuM2guNWMuMi0uMy41LS40LjgtLjZsMS0uNmMuMiAwIC4yIDAgLjIuM3MwIC43LS4zLjhsLTEuMS4zYTIgMiAwIDAwLS41LjRsLS40Ljh2LjNoLjNsMS0xYy4zLS4yLjQtLjEuNS4yYS45LjkgMCAwMC4yLjRsLjQtLjMuMi0uNGMwLS4zLjUtMS41LjgtMS45bC4zLjFWNDdjMCAuNS4xLjYuNS40bDEtLjUuMi0uMWguM3YuM2wtLjQuNXYuNGguM2wuNy0uNGgxLjFsMS4xLjRjLjMgMCAuNyAwIDEtLjJhOS4zIDkuMyAwIDAxMS41LS42IDUgNSAwIDAwMi0xLjJsLjQtLjNjLjItLjEuMy0uNi4zLS43VjQzbC4yLS40aC4ydjMuNWMwIC4yLS4zLjUtLjUuNS0xLjIuNS0yLjUgMS0zLjggMS4zLS42LjItMS4yLjEtMS44LjFIMThjLS40IDAtLjkuNC0xLjMuNGwtMyAuMy0yLjcuN2ExLjYgMS42IDAgMDAtLjYuM2wtLjEuMi4zLjFoLjZBMzMgMzMgMCAwMTEzIDUwbC40LjJjLjMuMi42LjIgMSAuMi4zLS4xLjYgMCAuOS4yLjUuNC42LjQgMS4yLjEuNS0uMyAxLS4zIDEuNS0uMi42IDAgMS4yIDAgMS44LjJsMS40LjJjLjkgMCAxLjYtLjEgMi4xLS44bC44LTEuMWMuMi0uMy40LS40LjctLjRsMi0uMmMuMyAwIC41LjQuNS42IDAgLjItLjEuNC0uMy4zaC0xLjVjLS41LS4xLS45IDAtMS4yLjQtLjIuMi0uMS4zLjEuNGguNGMuMiAwIC4zLjIuNC40IDAgLjIuNC4zLjkuM2wxLjYtLjFjLjIgMCAuNC0uNC42LS42LjQtLjUuNi0uNyAxLjMtLjUuNSAwIC44LS40IDEuMi0uNC41IDAgLjMtLjcuMS0xYTUuNCA1LjQgMCAwMC0uNy0xYy0uNy0uNS0xLjItMS41LTEuOC0yLjMtLjUtLjUtMS0uOC0xLjQtMS40YTMzLjQgMzMuNCAwIDAxLS45LTEuNmwtLjYtMS4yLS42LS45Yy0uMy0uMy0xIDAtMS40LjFsLS40LjNjMSAuOCAxIDIgLjcgMi44IDAgLjMtLjIuMy0uNS4ybC0uNy0uM0gyMmwtMS44IDFjLS4zLS40LS44LTEuMy0uOC0xLjcgMC0uNC4yLS43LjMtMWE3LjUgNy41IDAgMDEtMS0uNnYtLjNjLjctLjYgMS41LTEuMiAyLjItMS4yek0yIDMwLjJjLjEuNi40IDEgMSAxLjMuNy40IDEuOC41IDIuNy42bDMuNi0uM2MxLjktLjQgNC4xLTEuMiA1LjgtMmExNiAxNiAwIDAxMy41LTEuNCA4IDggMCAwMTMuOCAwYy42IDAgLjcgMCAuNy0uNGwtLjItLjhjLS4xLTEtLjEtMS44LS41LTIuNyAwLS4xLS4yLS4zLS41LS40LS4zLS4yLS42LS4zLTEtLjNhNi41IDYuNSAwIDAwLTEuOSAwIDkuNyA5LjcgMCAwMC0yLjkuOWwtMi43IDEuNWE3LjkgNy45IDAgMDEtNCAxLjFsLTIuNi0uMWE5IDkgMCAwMS0zLjgtMWMtLjItLjItLjQtLjEtLjUuMmwtLjIuN2MtLjIuOC0uNCAyLS4zIDMuMXptNDQuNSAxMC41YTE3LjUgMTcuNSAwIDAxLTEuOC4xbC4yLS4yYy41LS4yIDEtLjQgMS4zLS43LjItLjIuMi0uMy4yLS41YTggOCAwIDAxLTIgLjZoLS4ybDEuNy0xLjJjLjMtLjIgMC0uMyAwLS40bC0xLjguNkg0NGwuMy0uMyAxLjctMXYtLjJoLS4zbC0yIC4yaC0uMmEuMi4yIDAgMDEwLS4xIDMuNiAzLjYgMCAwMDEuMS0uOGMuMS0uMi4xLS4zIDAtLjRsLS4zLjItMS4xLjF2LS4ybC44LS41LjUtLjR2LS4yYTcgNyAwIDAxLTEuMy4zLjcuNyAwIDAxLS4zIDBsLjEtLjIgMS40LS43Yy4yLS4xLjMtLjMuMy0uNGgtLjJsLTEuMy40LS4zLS4yLjItLjIgMS44LS44IDEtLjguNi0uNnYtLjFjLTEgLjUtMS4zLjgtMS42IDFhOC43IDguNyAwIDAxLTEuNi44LjQuNCAwIDAxLS4yLS4xLjguOCAwIDAxMC0uMmMuMiAwIC41LS40LjctLjdsMS44LS45LjktLjZWMzFsLTIgMVYzMnYtLjNjLjUtLjMgMS4yLS44IDEuNy0xLjR2LS4ybC0uMy4xLTEgLjRoLS4xbC4xLS40YTYgNiAwIDAwMS4zLTEuM3YtLjRjLS40LjMtLjkuNS0xLjMuNmgtLjF2LS4yYy41LS41LjktLjggMS4yLTEuM3YtLjJsLTEuMS4zaC0uMnYtLjNsLjktMXYtLjJhNyA3IDAgMDEtLjcuMWMtLjEgMC0uMiAwLS4zLS4ybC4zLS4xLjQtLjNhLjYuNiAwIDAwLjItLjJsLS4zLS4xLS45LjFjLS42LjItLjYuMi0uNy40bC0uNyAyLjJjMCAuMi0uMi40LS40LjUtLjMuMS0uMi4zLS4zLjUtLjEuNi0uMi42LS40IDFsLS42IDFoLS4ydi0uN2wtLjMtLjl2LS40bC4xLS45LjEtMS43LS4xLS4xYS40LjQgMCAwMC0uMS4ybC0uMyAxLjJjLS4yLjkgMCAxLjYgMCAyLjUtLjEuNy0uMyAxLjQtLjIgMi4xdi40bC43LS4yYy41LS4yLjktLjIgMS40LS43LjMtLjMuMy0uOS40LTEuNC4yLS42LjQtLjguNi0xbC4yLjEtLjMuOWMtLjEuMy0uMy44IDAgLjloLjN2LjJjLS4zLjMtLjYuNy0yIDEuMS0uMiAwLS42LjUtLjYuN2EzLjYgMy42IDAgMDAwIC45Yy4yIDEuNC45IDIuOCAxLjcgNC4yLjcgMS4xIDEuMiAyIDIgMi44LjMuMy43LjUgMS4zLjNsLjgtLjV2LS4zem0tMjAtMjEuMWMwIC41IDAgLjctLjguNUwyNSAyMGMtLjMtLjEtLjYtLjItLjgtLjUtLjMtLjQtLjctLjQtMSAwbC0uMy4yLS4yLjJ2LS4zYzAtLjQuMi0uNi41LS44bC44LS4zYy43LS4yIDEtLjYgMS0xLjRsLjEtMS41YzAtLjMgMC0uNC0uNC0uM0wyMyAxNmEuNy43IDAgMDAtLjQuNGwtLjQuOS0uMS4xLS4yLS4xLS40LS42YTEwLjEgMTAuMSAwIDAwLS40LS43Yy0uMy0uMy0uMy0uNCAwLS42bDEtLjhjLjQtLjQuNi0xIC42LTEuNlYxMmMwLS40IDAtLjUuNS0uNC4yIDAgLjUgMCAuNy4ybDEuMy42Yy4yLjIuNC40LjQuNiAwIC40LS4yLjYtLjUuNWE5LjIgOS4yIDAgMDAtMS40LS41Yy0uMyAwLS41IDAtLjYuMyAwIC41LjQuNS40LjctLjIuNC0uOC41LS45LjkgMCAuMyAwIC41LjMuNGwuOS0uMyAxLjItLjZjLjUtLjIuOC0uMS45LjVsLjcgNC4xdi42em0xMi00LjNhMi4yIDIuMiAwIDAxLjMtMS4xYy4yIDAgLjQgMCAuNS4yLjMuNy45IDEuNCAxLjcgMS44LjIuMi41LjIuNy4ybC4yLTEuM2MwLS41LS4yLTEtLjYtMS4zLS4zLS40LS44LS43LTEuMi0xbC0uNS4xdi40Yy4yLjMuNy42LjguOXYuM2EuNS41IDAgMDEtLjItLjEgOC4yIDguMiAwIDAxLS42LS41IDUgNSAwIDAxLS44LS44Yy0uMi0uMi0uNC0uMi0uNSAwLS40LjctLjcgMS40LS43IDIuMi0uMiAxIC4zIDEuOSAxLjEgMi4zLjQuMi43LjEuOS0uMmwuNC0xVjE2bC0uNy0uN2ExIDEgMCAwMC0uMy0uMi40LjQgMCAwMDAgLjJ2MWEuNi42IDAgMDEwIC4yLjYuNiAwIDAxLS40LS40bC0uMS0uN3pNNC40IDMuNGwuNS43Yy4zLjQuNC44LjUgMS4yLjEuMy4zLjMuNS4yYS44LjggMCAwMC40LS43QTIuMyAyLjMgMCAwMDYgNGMtLjItLjcgMC0xLjQuNi0xLjkuMy0uMS40LS40LjQtLjdMNi43LjRjMC0uMi0uMy0uMi0uNC0uMS0uOC40LTEuNyAxLjUtMSAyLjVWM0ExLjcgMS43IDAgMDE1IDNMMy42IDEuNmExLjkgMS45IDAgMDAtLjYtLjNjMCAuMS0uMi41IDAgMS4zIDAgLjcuMiAxLjQuNyAyLjRsLjUuNi42LjJ2LS42YTE2LjMgMTYuMyAwIDAwLS40LTEuNGwtLjEtLjR6bTUwLjUgMi45bDEuMS0uNGMuOS0uMyAxLjQtLjkgMS42LTEuOC4xLS4zIDAtLjQtLjMtLjVsLS42LS4xYy0uNS0uMi0uNiAwLS44LjYtLjIuNC0uNC45LS44IDEuMi0uMS4xLS42LS4yLS43LS4zLjgtLjUgMS40LTEuMyAxLjgtMi4zIDAtLjEgMC0uMy0uMi0uNGEyIDIgMCAwMC0uOSAwYy0xIDAtMi41IDEtMyAyLjItLjEuMSAwIC40IDAgLjRoLjZsLjEtLjJjLjQtLjcgMS0xIDEuNy0xLjNoLjJhLjMuMyAwIDAxMCAuMiAxIDEgMCAwMS0uMy4ybC0uNy41LS41LjRWNWwuMy4xaC40bC40LjdjLjEuMi4zLjQuNi40ek0zNi40IDZjMCAuMy0uMi41LS40LjQtLjYtLjItMS0uOC0xLjYtMS0uMi0uMS0uMyAwLS40LjNsLS4yIDEuNGMwIDEgLjUgMS40IDEgMS45di4zbC0yIDFjLS4xLjEtLjQuMi0uNiAwLS4yLS4xLS4yLS4zLS4yLS42bC43LTIuOWMuNC0xLjUgMS0yIDIuMS0yLjFoMWMuMyAwIC41IDAgLjUuM3Yxem0xLjQgNi43YzAtLjctLjYtMS0uOC0xLjYtLjMtLjYtLjUtLjYtMS0uMXMtLjkgMS0xIDEuN2MtLjMuNy0uMiAxLjQgMCAyLjEgMCAuMi4xLjUuNC40YS40LjQgMCAwMC4yLS40YzAtLjYuMS0xLjIuNC0xLjZsLjMtLjN2LjRsLS4yIDEuM3YuOGMuMy4zLjQuMy41LjEuNi0uOSAxLjItMi4yIDEuMi0yLjh6bS0zMS4yIDJjMC0uNy0uMi0xLjItLjQtMS44LS4yLS42LS42LS45LS44LS45LS4zIDAtLjguNi0xIDFhMyAzIDAgMDAtLjEgMS4zYzAgLjguMiAxLjUuNyAyLjIgMCAuMi4zLjQuNS4ybC43LS43Yy4yLS40LjQtLjkuNC0xLjN6bTI3IDE5LjNjLS4yLTEuMi0xLTItMS44LTIuNmwtLjQtLjNIMzF2LjNsLjIgMi40LjIgMS43YzAgLjMuMi40LjUuM2wxLjEtLjZjLjMtLjIuNi0uNC40LTEuMnptMTEuNy0xMS43Yy0uMi0uNS0uNS0uNy0xLS44aC0uNmwtLjktLjJjLS4zIDAtLjUuMy0uNi43di4ybC42LjIuMy40YzAgLjEtLjIuMy0uNS4zcy0uMy4zLS4yLjZjMCAuMy4xLjYuNC45bC40LS4zYy4yLS4yLjItLjQuMi0uNiAwLS43LjMtMS4xLjgtMS42bC0uMiAxLjFjLS4xLjgtLjQgMS40LTEuMSAyaC4zYS44LjggMCAwMC43LS4yYy4zLS4zLjUtLjYuNi0xbC4yLS40LjEuM3YxbC40LS4zYy4zLS43LjQtMS43LjEtMi4zek01NC43IDdINTRzLS4yLjQgMCAuNGMwIC4xLjEuMi4zLjIuNCAwIC43IDAgMS4yLjJsLjMuMS0uMi4xYy0uNy4xLTEuMi4yLTEuOC0uMmwtLjItLjFjLS4yLS4xLS4zIDAtLjIuMiAwIC4zLjMuNi45LjguNC4yLjguNCAxLjIuNEw1NyA5Yy4zIDAgLjYtLjIuNi0uNGwtLjEtLjYtLjQtLjRjLS42LS42LTEtMS0yLTEgMCAwLS4yLjQtLjQuNHptLjYgNi43bC0uMS0xYy0uMi0uNy0uOC0xLjItMS41LTEuMi0uNCAwLS41IDAtLjQuNGwuNS43Yy4yLjQuNC43LjQgMWExIDEgMCAwMS0uMS40Yy0uMy0uMS0uNC0uNC0uNC0uNS0uMS0uMy0uMS0uNS0uMy0uNyAwLS4yLS4xLS4yLS4yLS4ycy0uMiAwLS4yLjJjMCAuOC4xIDEuOCAxIDIuNWwuNi40Yy4yLjEuMyAwIC40LS4yYTYgNiAwIDAwLjMtMS44ek02IDkuN0w1LjggMTFjMCAuNC4yLjcuNi44IDEgLjUgMi4yLjYgMy4zLjZsLjItLjItLjEtLjJoLS4zTDggMTEuM2ExIDEgMCAwMS0uNC0uMmMtLjEtLjIgMC0uNC4yLS40bC41LjEgMSAuNWMwIC4xLjEuMi4yIDAgLjEtLjEuMi0uMiAwLS40bC0uNy0uNkM4IDEwIDcuMiA5LjcgNiA5Ljh6bTIzLjEgNS44YzAgLjggMCAxLjctLjIgMi42bC0uMy4zLS4zLS4zYy0uNC0xLjEtLjgtMi4yLTEtMy40TDI3IDE0YzAtLjMgMC0uNC4zLS4zLjYgMCAxIC4zIDEuNi41bC4xLjR2Ljh6TTQuMiAyMC40di0uNmwuMi0xYTEuNCAxLjQgMCAwMDAtLjRsLS43LjFjLS4yLjEtLjMuMy0uMy43djFsLjIgMS42YzAgLjMuMi40LjQuMmwuNS0uNSAxLTEuMmMuNC0uNC40LS44LjMtMS4yLS4xLS4zLS4zLS40LS41LS40LS4zIDAtLjQuMi0uNS40IDAgLjMtLjIuNS0uMy44YTMgMyAwIDAxLS4zLjV6bTQ2LjItMmgxYy41LjIuNy41LjguN2wuMS4zYTEgMSAwIDAxLS45LS4xIDIuOSAyLjkgMCAwMC0uNS0uNGMtLjMtLjEtLjctLjItMSAwIDAgLjIuMy42LjUuOC43LjUgMSAuNiAxLjYuNmgxbC4xLS41YzAtLjYgMC0xLjItLjUtMS43LS42LS42LTEuNS0uNS0yLS4zYTEuMiAxLjIgMCAwMC0uNC4yLjYuNiAwIDAwLjIuM3ptLTIwLjgtMTZoLjF2LjNjLS4xLjUtLjQuOS0uOCAxLjMtLjIuMS0uMi40IDAgLjUuMi4zLjUgMCAuNy0uMS40LS41LjYtMSAuOC0xLjYuMy0uNi4zLTEuNSAwLTItLjItLjItLjUtLjMtLjctLjEtLjYuNi0xLjIgMS41LTEuMiAyLjRsLjEuNC41LS40LjUtLjZ6bTEyLjIgMjQuM2guMmwuMSAxLjF2LjNsLjMtLjIuMS0uN2MuNC0xIC4xLTEuOC0uMy0yLjggMC0uMi0uMi0uMi0uNC0uMS0uMSAwLS4yLjItLjEuM3YuNGwtLjQgMS0uMS41LS4xIDMuNnYuMWEuMy4zIDAgMDAwIC4yLjYuNiAwIDAwLjItLjFsLjItLjZjMC0uNi4zLS42LjMtMS4ydi0xLjh6TTggMy44YS41LjUgMCAwMTAtLjJoLjZjLjMuMS40LjEuNS0uMS4yLS41LjEtLjktLjMtMWEyLjMgMi4zIDAgMDAtLjggMGwtMS4yLjNjLS40LjEtLjUuNS0uMi44LjQuNC44LjkgMS4zIDEuMi40LjQuOC40IDEuMy4zLjIgMCAuMy0uMS4zLS4zYS41LjUgMCAwMC0uMS0uNCAxLjMgMS4zIDAgMDAtLjMtLjJMOCAzLjh6bS0uNyAyN2MwIC4yLS4xLjMtLjQuM2E0LjEgNC4xIDAgMDEtMS0uMWMtLjMtLjEtLjMtLjItLjQtLjRsLjEtMiAuNS0uMyAxLjEuMmMuMiAwIC40LjQuNC41di42YzAgLjUtLjIuOS0uMyAxLjF6bTMzLjQgMThsLjcuMmMuNC4xLjcuMiAxIC4xLjIgMCAuNC0uMi40LS41IDAtLjItLjItLjQtLjQtLjVsLTEuOS0uNGMtLjMtLjEtLjYtLjEtLjkuMS0uNC40LS45LjYtMS40LjdsLS40LjF2LjNsLjEuMmgxLjRsMS40LS4zem0zLjMgMmMuNSAwIC45LS4xIDEuMi0uM2wuOC0uNS42LS4yYy4zIDAgLjUtLjMuNS0uNCAwLS4zLS4yLS4zLS40LS40bC0xLjUtLjJoLS41bC0xIC44Yy0uMS4xLS42LjMtLjcuNi0uMi4xLS4yLjMuMi40bC44LjJ6TTI2LjkgMTEuN2MwLS4zLjQtLjcuNy0uNmEuMy4zIDAgMDEuMSAwbC4xLjYuMi40Yy42IDAgMS4yLS4zIDEuNC0uOC40LS41LjYtMSAuOC0xLjUuMS0uMi4yLS40LjQtLjMuMSAwIC4yLjIuMS40bC0xIDNjLS4xLjMtLjIuMy0uNS4ybC0xLjctLjZhLjkuOSAwIDAxLS42LS44em0xMi42IDI0LjdoLjNhMSAxIDAgMDAuMy0uMmwuNC0uNS0uMS0yLjItLjItLjJoLS45bC0xLjIgMXMtLjEuMiAwIC4ybC4yLjEuNi0uMy40LS4yYS4zLjMgMCAwMTAgLjJjLS40LjQtLjcuOS0xLjIgMS4xdi4ybC4xLjIuNi0uMy43LS42Yy4xLjEuMi4zIDAgLjRsLS4yLjItLjYuNXYuMmguMWMuMiAwIC40IDAgLjYtLjJsLjUtLjUuMi4yLS42Ljd6TTE0IDExLjJjMCAuOS0uMiAxLjctLjYgMi41YTEuNyAxLjcgMCAwMS0uMy41bC0uMy0uNi0uNi0xLjdhMiAyIDAgMDEtLjItLjRsLjctMS4xYzAtLjIuMi0uMi4zIDBsMSAuOHptMS41IDE3LjJjMCAuMy0uMi41LS42LjctLjIuMS0uNS4zLTEgLjMgMCAwLS4yIDAtLjMtLjIgMC0uNi0uMi0xLjEtLjMtMS42bC4yLS40Yy40LS40LjgtLjUgMS4zLS41bC41LjIuMiAxLjV6TTExIDIyYy0uMyAwLTEgLjQtMSAuN3YuMmMwIC41IDAgMSAuMyAxLjQuMi4yLjMuMy41LjEuNS0uMyAxLS42IDEuMy0xIC4zLS4yLjUtLjYuNy0xIDAtLjItLjItLjMtLjQtLjQtLjMtLjEtLjctLjEtLjggMC0uMiAwLS4zLjItLjMuNGEzLjYgMy42IDAgMDEtLjIuNmwtLjMuNGEyIDIgMCAwMTAtLjZjMC0uMiAwLS41LjItLjh6bTQuOCAyNy41YTMuOCAzLjggMCAwMS0uNSAwYzAtLjIuMS0uMi4yLS4yaC40Yy42LjEgMS0uMyAxLjYtLjRoMi4xYy42LjMgMS4yLjUgMS43LjFhOC44IDguOCAwIDAxMS0uNi42LjYgMCAwMS41IDBzLjIuMy4xLjRhLjUuNSAwIDAxLS4zLjNjLS45LjMtMS44LjUtMi44LjYtMSAwLTEuOSAwLTIuOS0uMmgtLjUtLjZ6bS0xMi40LTIwYzAgLjIgMCAuNi4zLjh2LjJsLTEtLjFzLjMtLjMuMy0uNWwuMi0xLjktLjItLjNhLjQuNCAwIDAxLjEtLjJjLjcuMi44LjIgMSAuNWwuNCAxLjJhLjQuNCAwIDAwLjItLjF2LTFjMC0uMiAwLS4zLjMtLjNoLjZWMjguMWMtLjQgMC0uNC4xLS42IDFsLS4xIDEtLjEuNGgtLjNhMTIuNSAxMi41IDAgMDAtLjgtMS43aC0uMWwtLjEuNGEuOS45IDAgMDAwIC4yem0yMiA0LjhhMi43IDIuNyAwIDAwMC0uNmwtLjItLjd2LS4yYy4yLS42LjMtMS4xLjItMS42YTEyLjYgMTIuNiAwIDAxMC0xLjl2LS4xYy4zIDAgLjQuMS41LjN2LjZjLjEuNSAwIDEgMCAxLjZsLS4xIDMuMi4xLjVjLjEuMyAwIC43LS4yIDFoLS4yYzAtLjUtLjQtMS0uNS0xLjZsLjEtLjFjLjIgMCAuMy0uMi4zLS40em0xMC40LThjLS40IDAtLjgtLjMtLjgtMWwtLjcuN2MwIC4yLjYuNiAxIC43bC43LjguNC0xYzAtLjgtLjEtMS40LS4zLTEuNy0uMy0uNC0uOS0uNy0xLjQtMS0uMi4yLjEuOC43IDEuMi0uMS40LS4xIDEgLjUgMS4zek02IDI1LjRsMS0uMWMuMyAwIC42LS4xLjYtLjQgMC0uMy0uMy0uNC0uNS0uNS0uOC0uMi0yLjItLjItMy4yLjNsLS42LjVjLS4zLjItLjIuNCAwIC41bC44LjQuMi0uOC41LS40Yy40LS4yLjktLjIgMS40LS4yaC4ybC0uMS4yLS40LjItLjMuMWMwIC4yLjIuMi40LjJ6bTIuMiA1LjhsLjEtLjN2LS42LTEuNWwuMi0uMi4yLjEuOSAxVjI5di0uNmMtLjEtLjMtLjMtLjUtLjEtLjVoLjhsLS4xLjUtLjIgMSAuMiAxLjNIMTBhLjguOCAwIDAxLS4yIDBsLTEuMi0xLjNhLjQuNCAwIDAwLS4xLjJjMCAuMy4yLjcuNCAxIC4yLjEuMi4yLS4xLjNsLS43LjF6bTEzLjIuNWMuNSAwIDEgMCAxLjQtLjQuNS0uMy43LTEuMi41LTEuN2EuNi42IDAgMDAtLjEtLjNjLS4yLS4yLS4zLS4yLS40LjFsLS4xLjctLjEuNGEzLjUgMy41IDAgMDAtMSAwYy0uNCAwLTEuMS4zLTEuMS43IDAgLjQuNi41IDEgLjV6bTQuMi01LjJsLjIuNSAxLjQgMS4yIDEgLjVhMi41IDIuNSAwIDAxMS4zIDFsLjQuNGMuMi4zLjUuNSAxIC42aC4yYzAtLjMgMC0uMy0uMy0uNWEyMCAyMCAwIDAwLTIuNC0yIDI5IDI5IDAgMDEtMS41LTFsLS43LS40LS42LS4zem0tMTUuNCAxN2E2My4yIDYzLjIgMCAwMC0uNS0xLjlsLS4yLS4xLS4xLjEtLjUgMS40YS43LjcgMCAwMDAgLjRsLjcgMiAuMy4yLjEtLjMuMi0xLjh6bTIuNi0xNS43bC4xLjR2LjJoLS4yYy0uMy0uMS0uNi0uMy0uOS0uMXYuM2wxIC40Yy40LjEuNS4zLjQuOCAwIC40LS40LjYtLjguN2ExLjYgMS42IDAgMDEtLjYgMHYuNGgtLjJhNCA0IDAgMDEtLjItLjNsLS4xLS43di0uMmMuMiAwIC4zLjMuNS40bC43LjEuMi0uMy0uMy0uMi0uOC0uNGMtLjMtLjEtLjMtLjQtLjMtLjYgMC0uMy4xLS42LjUtLjdsLjUtLjIuMS0uNGguMmwuMi40ek02LjQgOC45Yy0uNiAwLTEtLjItMS41LS4xLS41IDAtLjkuMi0xLjMuM2wtLjIuMi4yLjIuNi4xTDggOS4ybC4yLS4zLS40LS4yLTEuMy0uMi0uMi40em0xNC4zIDE4LjVzLS4yIDAtLjMuMmEuOC44IDAgMDEtLjMuMmwtLjEtLjEuMi0uNmMuMS0uMy4yLS4zLjUtLjJsLjIuMmMuMi4yLjQuMy42LjIuMy0uMS4xLS40IDAtLjVsLTEtLjVjLS4zLS4yLS40LS40LS40LS43IDAtLjIuMi0uNS41LS42aC41Yy4yIDAgLjMgMCAuNC0uMi4xLS4xLjMtLjIuMyAwdi45aC0uM2MtLjItLjMtLjQtLjUtLjYtLjQtLjIgMC0uMy4xLS4yLjNsLjQuMy42LjNjLjUuMy40LjYuNC45IDAgLjMtLjMuNS0uNy41YTEuMyAxLjMgMCAwMS0uNy0uMnptLTEtMXYuNWMtLjIuNC0uNi42LTEgLjZzLS42LS4xLS43LS41bC0uMi0xLjMtLjUtLjEtLjEtLjIuNi0uMmMuNCAwIC40IDAgLjUuM2wuMiAxLjRjMCAuMi4xLjMuNC4zLjIgMCAuMyAwIC4zLS4zdi0xLjFsLS40LS41Yy0uMS0uMS0uMi0uMiAwLS4zLjctLjIuNy0uNC44LjRsLjIgMXpNMjAgMjljMCAuMy4yIDEuMi40IDEuNGwxLjQtLjNjLjQtLjEuNi0uNS41LS45IDAtLjMtLjItLjQtLjQtLjVhMS42IDEuNiAwIDAwLS4zIDBjLS42IDAtMSAuMS0xLjUuM3pNNy40IDI1LjRsLS42LjEtLjguMS0uOC0uMmMtLjIgMC0uNC4yLS41LjUgMCAuMy4yLjUuNS42YTkgOSAwIDAwMiAuMmMuMiAwIC4yIDAgLjItLjJ2LTEuMXptMTYtMTQuM2wtLjgtLjMtLjItLjNWOS40YzAtLjIuMS0uMy4zLS4yLjMgMCAuNSAwIC44LjIuMy4xLjggMSAuNyAxLjQtLjIuMy0uNC4zLS44LjN6bS01LjcgMTYuNGwtLjMuM2MtLjMuMi0xIC4zLTEuNC42LS4yLjEgMC0uMyAwLS41bC0uMy0xLjEtLjMtLjZjLS4yLS4yLjItLjIuMy0uM2wuNy0uMmguMnYuMmMtLjMuMi0uMy4zLS4yLjZ2LjlsLjIuNGMuMiAwIC41LS4yLjUtLjNWMjdsLjItLjIuMS4yLjMuNnptMS4yLTYuOWMtLjEgMC0uMiAwLS4zLS4ybC0uMy0xLjNjMC0uMiAwLS4zLjMtLjNsMS43LjVjLjIgMCAuMi4yLjEuM2wtMS4zIDFoLS4yem0yNS43LTE2YzAtLjUtLjUtMS40LS43LTEuNy0uMy0uMy0uNi0uNC0xIDBhMi42IDIuNiAwIDAwLS4yLjJjLS4zLjQtLjMuNS4yLjdsLjkuNS43Ljd2LS40ek0xMi44IDQzLjNhMi45IDIuOSAwIDAwLTEgLjhsLS41IDFhNSA1IDAgMDAtLjMgMWguMWMuMyAwIC45LS42IDEtLjYuNC0uNS42LTEgLjgtMmwtLjEtLjJ6bTQ0LTQxLjFjLS4yLS42LS43LTEuMy0xLTEuNi0uMi0uMy0uMy0uNC0uNiAwYTIuNSAyLjUgMCAwMC0uMy4yYy0uMy40LS41LjkgMCAxbDEuMy4xLjUuNC4yLS4xek02LjIgMjl2MS4zYzAgLjMuMS4zLjQuMy4yIDAgLjMtLjIuMy0uNWwuMi0xYzAtLjMgMC0uNS0uMi0uNS0uMyAwLS42LjEtLjcuNHptNC0xMy41YTQgNCAwIDAxLTEtLjNjLS41LS4zLTEtLjgtLjktMS4zIDAtLjIuMi0uMy40LS4ybC4xLjEuOSAxYy4yLjEuNC40LjUuN3ptMy43IDEybC4yIDFjMCAuMi4xLjQuNC4zLjMgMCAuNC0uMi40LS40bC0uMi0xYzAtLjMtLjItLjUtLjUtLjQtLjIgMC0uMyAwLS4zLjR6bTE0LjktMTlMMjggOS43bC0uNy43SDI3di0uMkwyOCA5bC40LS41aC4ybC4yLjF6bTIwIDEwLjRsLS4xLjctLjMtLjVjMC0uMy0uNC0uOC0uNy0xLjR2LS4yYzAtLjEuMS0uMi4yLS4xaC4zbC42IDEuNXpNNTEgMi40cy4yIDAgLjMuMnYuM2wtMS45LjhzLS4yLjEtLjEgMGMwLS40IDEuMy0xLjMgMS43LTEuM3pNMzMuOCAyNC4yYy0uMyAwLS42LjItLjYuNXMuNC42LjcuNmMuMyAwIC41LS4yLjUtLjUgMC0uNC0uMi0uNi0uNi0uNnpNNy40IDQ5LjRsLS4zLjJjLS40IDAtLjUuMS0uNS4zIDAgLjIuMS4zLjMuMy41LS4yLjgtLjIgMS40LS4xaC4xbC4zLS40LS4zLS4yaC0xem0zNS4yLTI4LjhjMCAuMS0uMi4yLS4xLjN2LjNoLjhsMS4yLjIuMi0uMVYyMWMtLjQtLjItLjktLjQtMS40LS40aC0uN3ptLTIyLTEwYTE1IDE1IDAgMDEtLjgtLjR2LS4zbC41LS43aC4zbC40IDFjMCAuMiAwIC4zLS40LjN6TTEwIDIwLjVjLjIgMCAuMyAwIC4yLjIgMCAuMSAwIC4yLS4yLjJhMy41IDMuNSAwIDAxLS44LjIgNC4zIDQuMyAwIDAxLTEgMGwtLjQtLjJhLjQuNCAwIDAxLjMtLjJsMS45LS4yem01LjctMTZoLS4ybC0xLjctMS0uMS0uMmguMmMuNCAwIDEgLjMgMS40LjQuMy4yLjQuNC40Ljd6bTguMSAxMS42Yy4xIDAgLjIuMiAwIC40LS4zLjUtLjMuOS0uNSAxLjVhMS44IDEuOCAwIDAxLS4yLjNsLS4yLjF2LS4ybC4yLTEgLjMtLjdjMC0uMy4yLS40LjQtLjR6bTE5LjYtNmMtLjcgMC0xLjQtLjMtMi4xLS42YS40LjQgMCAwMS0uMi0uMi41LjUgMCAwMS4zIDBsMiAuNS4yLjJhLjYuNiAwIDAxLS4yLjJ6TTM1IDIyLjlhLjcuNyAwIDAwLS4zLS4zYzAtLjEtLjIgMC0uNCAwYTEuOCAxLjggMCAwMC0uMy4zYy0uMS4yIDAgLjQuMi42aC42bC4yLS42ek0yMiAxMy4ybC0uMi40YTI1LjUgMjUuNSAwIDAxLS45IDFoLS4ydi0uM2E1LjQgNS40IDAgMDEuNC0uN2wuNS0uNmguM3YuMnptLTExLjMtMi44bC0uMy0uMi0uOC0xLjMtLjItLjQuMy0uM2EuNS41IDAgMDEuMS4ybC41IDEgLjQuN3YuM3ptLS41IDYuNmwtLjQtLjItMSAuMmExLjQgMS40IDAgMDEtLjQgMGwtLjMtLjEuNi0uM2MuMiAwIDEtLjEgMS42IDB2LjR6bTQwLjUtOC41aC4ybDEuMiAxdi4xYS41LjUgMCAwMS4xLjIgMS4zIDEuMyAwIDAxLS4yIDBjLS41LS4zLTEtLjUtMS40LTF2LS4yLS4xek0yMS41IDEwdi4ybC0uMi0uMi0uMi0uNmMwLS41IDAtLjguMy0xIC4xLS4yLjItLjIuMiAwVjEwem0tNy40LTEuOHYuMmwuNCAxLjdWMTAuN2wtLjItLjItLjItLjgtLjItMWMwLS4yIDAtLjQuMi0uNXptMzQgNy4ybC41LjUuNy42di4zSDQ5bC0xLjItLjl2LS40YS40LjQgMCAwMS4xIDB6TTI1LjMgNS4xaC44bC4xLjItLjEuMmgtMS41YTEgMSAwIDAxLS4yLS4zbC4yLS4xaC43ek0zNSA3Yy40LjUuNSAxIC42IDEuNXYuMWgtLjFjLS40LS41LS43LS45LS44LTEuNGwuMS0uM2guMnpNMjkgNDEuM2wuOS0uNmMuMS0uMSAwLS4xIDAtLjIgMC0uMi0uMS0uMi0uMy0uMS0uNCAwLS42LjItMSAuMy0uMSAwLS4yLjIgMCAuM2wuNC4zek0xNy4yIDUuOGwuNy0uMy44LS40YS40LjQgMCAwMS4zLjFsLS4yLjItMS4yLjdhMi40IDIuNCAwIDAxLS40IDAgLjMuMyAwIDAxMC0uM3ptLTEyIDkuOGwtLjEtMWEyLjYgMi42IDAgMDEwLS43bC4yLS4yLjIuMnYxLjdoLS4yem0yNi4xLTEyYTggOCAwIDAxMS40LS44IDUgNSAwIDAxLTEuNCAxLjR2LS42ek0yNSAyNC40YzAgLjMuMS41LjMuN2wuMi0uM3YtMS4zYzAtLjItLjItLjItLjIgMC0uMS4zLS4zLjYtLjMgMXptMjIgMTcuNGwtMS45LjZjLjQuNSAxLjcgMCAxLjktLjZ6TTE5LjYgOGMwIC41IDAgMS4xLS4zIDEuNmwtLjIuMnYtLjNhNjEgNjEgMCAwMS40LTEuNmwuMS4xem0yNiAzNS40aDFhLjcuNyAwIDAwLjItLjNsLjEtLjUtLjUuM2E4LjEgOC4xIDAgMDEtLjkuMmwtLjEuMi4xLjF6bS0zLjgtMTkuOGwuNC0uOC0uMi0uM2EuOC44IDAgMDAtLjIgMGMtLjEuMi0uNy45LS42IDFoLjZ6bS0zMS03LjhsLjQtMWguMnYxYS43LjcgMCAwMS0uMi40LjUuNSAwIDAxLS4yIDBMMTEgMTZ6bTIyLjYgNy4zYy0uMiAwLS40LjItLjUuNCAwIC4yLjIuNC41LjQuMiAwIC40LS4yLjQtLjQgMC0uMy0uMS0uNC0uNC0uNHptLS4yIDIuNWMwLS4zLS4yLS41LS41LS41LS4yIDAtLjQuMi0uNC40cy4zLjQuNS40Yy4zIDAgLjQtLjEuNC0uM3ptLTEtMi42YzAgLjMtLjIuNC0uNC40cy0uNS0uMi0uNS0uNC4yLS40LjQtLjRjLjMgMCAuNS4xLjUuNHptLjIgMWMtLjMgMC0uNC4yLS40LjRzLjIuNC40LjQuNC0uMi40LS40LS4yLS40LS40LS40em0tMi43IDE4Yy0uMyAwLS42IDAtLjUuMiAwIC4yLjIuNC40LjRzLjMtLjIuMy0uNCAwLS4zLS4yLS4zem0tMTktMzhjLS4yLS41LS4xLTEgMC0xLjcuMy42LjMgMS40IDAgMS44em0yMi41IDE3LjZjLS4yIDAtLjMuMy0uMy4zbC4yLjRhLjYuNiAwIDAwLjMtLjNsLS4yLS40eiIgZmlsbD0iIzUzNTY1QSIvPgo8L3N2Zz4K\" alt=\"Elsevier logo with wordmark\" height=\"64\" width=\"58\" loading=\"lazy\" /></a></div><div class=\"els-footer-content\"><div class=\"u-remove-if-print\"><ul class=\"els-footer-links u-margin-xs-bottom\" style=\"list-style:none\"><li><a class=\"anchor u-display-flex u-clr-grey8 u-margin-s-bottom u-margin-0-bottom-from-sm u-margin-m-right-from-sm u-margin-l-right-from-md anchor-primary anchor-small\" href=\"https://www.elsevier.com/solutions/sciencedirect\" target=\"_blank\" id=\"els-footer-about-science-direct\" rel=\"nofollow\"><span class=\"anchor-text-container\"><span class=\"anchor-text\">About ScienceDirect</span><svg focusable=\"false\" viewBox=\"0 0 8 8\" height=\"20\" aria-label=\"Opens in new window\" class=\"icon icon-arrow-up-right-tiny arrow-external-link\"><path d=\"M1.12949 2.1072V1H7V6.85795H5.89111V2.90281L0.784057 8L0 7.21635L5.11902 2.1072H1.12949Z\"></path></svg></span></a></li><li><a class=\"anchor u-display-flex u-clr-grey8 u-margin-s-bottom u-margin-0-bottom-from-sm u-margin-m-right-from-sm u-margin-l-right-from-md anchor-primary anchor-small\" href=\"https://www.sciencedirect.com/user/institution/login?targetURL=%2F\" id=\"els-footer-remote-access\" rel=\"nofollow\"><span class=\"anchor-text-container\"><span class=\"anchor-text\">Remote access</span></span></a></li><li><a class=\"anchor u-display-flex u-clr-grey8 u-margin-s-bottom u-margin-0-bottom-from-sm u-margin-m-right-from-sm u-margin-l-right-from-md anchor-primary anchor-small\" href=\"https://service.elsevier.com/app/contact/supporthub/sciencedirect/\" target=\"_blank\" id=\"els-footer-contact-support\" rel=\"nofollow\"><span class=\"anchor-text-container\"><span class=\"anchor-text\">Contact and support</span><svg focusable=\"false\" viewBox=\"0 0 8 8\" height=\"20\" aria-label=\"Opens in new window\" class=\"icon icon-arrow-up-right-tiny arrow-external-link\"><path d=\"M1.12949 2.1072V1H7V6.85795H5.89111V2.90281L0.784057 8L0 7.21635L5.11902 2.1072H1.12949Z\"></path></svg></span></a></li><li><a class=\"anchor u-display-flex u-clr-grey8 u-margin-s-bottom u-margin-0-bottom-from-sm u-margin-m-right-from-sm u-margin-l-right-from-md anchor-primary anchor-small\" href=\"https://www.elsevier.com/legal/elsevier-website-terms-and-conditions\" target=\"_blank\" id=\"els-footer-terms-condition\" rel=\"nofollow\"><span class=\"anchor-text-container\"><span class=\"anchor-text\">Terms and conditions</span><svg focusable=\"false\" viewBox=\"0 0 8 8\" height=\"20\" aria-label=\"Opens in new window\" class=\"icon icon-arrow-up-right-tiny arrow-external-link\"><path d=\"M1.12949 2.1072V1H7V6.85795H5.89111V2.90281L0.784057 8L0 7.21635L5.11902 2.1072H1.12949Z\"></path></svg></span></a></li><li><a class=\"anchor u-display-flex u-clr-grey8 u-margin-s-bottom u-margin-0-bottom-from-sm u-margin-m-right-from-sm u-margin-l-right-from-md anchor-primary anchor-small\" href=\"https://www.elsevier.com/legal/privacy-policy\" target=\"_blank\" id=\"els-footer-privacy-policy\" rel=\"nofollow\"><span class=\"anchor-text-container\"><span class=\"anchor-text\">Privacy policy</span><svg focusable=\"false\" viewBox=\"0 0 8 8\" height=\"20\" aria-label=\"Opens in new window\" class=\"icon icon-arrow-up-right-tiny arrow-external-link\"><path d=\"M1.12949 2.1072V1H7V6.85795H5.89111V2.90281L0.784057 8L0 7.21635L5.11902 2.1072H1.12949Z\"></path></svg></span></a></li><li><button class=\"button-link ot-sdk-show-settings cookie-btn button-link-primary button-link-small\" type=\"button\" id=\"ot-sdk-btn\">Cookie settings</button></li></ul></div><p id=\"els-footer-copyright\">All content on this site: Copyright © 2026 Elsevier B.V., its licensors, and contributors. All rights are reserved, including those for text and data mining, AI training, and similar technologies. For all open access content, the relevant licensing terms apply.</p></div><div class=\"els-footer-relx u-margin-0-top u-margin-m-top-from-xs u-margin-0-top-from-md\"><a class=\"anchor anchor-primary anchor-icon-left anchor-with-icon\" href=\"https://www.relx.com/\" target=\"_blank\" aria-label=\"RELX home page (opens in a new tab)\" id=\"els-footer-relx\"><img class=\"\" src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5MyIgaGVpZ2h0PSIyMCIgdmVyc2lvbj0iMSIgdmlld0JveD0iMCAwIDI4MCA2NSI+PHBhdGggZmlsbD0iI2ZmODIwMCIgZD0iTTIwNyAyNTFjMTEwIDAgMjQyIDI2IDI0MiAxMzEgMCA3NS03NyAxMDMtMTQ2IDEwM0MxOTYgNDg1IDAgNDI1IDAgMjE1IDAgMTEwIDgwIDQ5IDIwOCA0OWMxMzUgMCAyMzIgODcgMjYyIDIwNUMzOTEgMTE4IDI5MSA3NSAyMDkgNzUgMTA3IDc1IDY4IDE1MSA2OCAyMTZjMCAxODUgMTQ0IDI0OCAyMzUgMjQ4IDYxIDAgOTctNDAgOTctODMgMC0xMTktMTcyLTExNi0yNTAtMTE2aC0zOGwtMTYtMTdjMzYtNSA4NS0xNSAxMzktNDJDMzQ3IDE0OSA0NTMgMCA1OTIgMGM1MSAwIDY0IDE1IDc0IDI5LTY5LTQ0LTE4MyAzMi0yNDUgOTAtNTEgNDgtOTYgMTAzLTIxNCAxMzIiIHRyYW5zZm9ybT0ibWF0cml4KC4xMzMzMyAwIDAgLS4xMzMzMyAwIDY1KSIvPjxwYXRoIGZpbGw9IiM2NjYiIGQ9Ik04ODYgMzEwYzAgMzMtMjIgNTMtNTUgNTNoLTc3Yy0yIDAtMy0xLTMtM3YtOTljMC0yIDEtMyAzLTNoNzdjMzMgMCA1NSAyMCA1NSA1Mm03LTI2MWMtNSAwLTcgMi04IDZsLTY5IDE0NWgtNjJjLTIgMC0zLTEtMy00VjU1YzAtNC0yLTYtNi02aC01MWMtNCAwLTYgMi02IDZ2MzYxYzAgMyAyIDUgNiA1aDEzOWM2NiAwIDExNS00NSAxMTUtMTExIDAtNDktMjctODYtNjktMTAybDc2LTE1MmMyLTQgMC03LTQtN2gtNThNMTAxMCA0MTZjMCAzIDMgNSA2IDVoMjE4YzQgMCA2LTIgNi01di00N2MwLTMtMi02LTYtNmgtMTU4Yy0yIDAtMy0xLTMtM3YtOTFjMC0yIDEtMyAzLTNoMTI3YzQgMCA2LTIgNi02di00N2MwLTMtMi01LTYtNWgtMTI3Yy0yIDAtMy0xLTMtM3YtOTVjMC0yIDEtMyAzLTNoMTU4YzQgMCA2LTIgNi01VjU1YzAtNC0yLTYtNi02aC0yMThjLTMgMC02IDItNiA2djM2MU0xMjk4IDQxNmMwIDMgMiA1IDUgNWg1MmMzIDAgNi0yIDYtNVYxMTBjMC0yIDEtMyAzLTNoMTQ3YzMgMCA1LTIgNS01VjU1YzAtNC0yLTYtNS02aC0yMDhjLTMgMC01IDItNSA2djM2MU0xNzc1IDQ5Yy00IDAtNiAxLTggNWwtNzMgMTI3aC0xbC03My0xMjdjLTItNC00LTUtOC01aC01OGMtMyAwLTUgMy0zIDdsMTA4IDE4NS0xMDAgMTczYy0yIDQgMCA3IDMgN2g1OGM0IDAgNi0yIDgtNmw2NS0xMTJoMWw2NSAxMTJjMiA0IDUgNiA5IDZoNTdjNCAwIDUtMyAzLTdsLTk5LTE3MyAxMDctMTg1YzItNCAxLTctMy03aC01OE0xOTEyIDI5NWwtMiAxdjEwNGwtMSAxaC0zMmwtMiAydjE2bDIgMmg4N2wyLTJ2LTE2bC0yLTJoLTMybC0xLTFWMjk2bC0yLTFoLTE3TTE5ODggNDE5bDIgMmgxNmMxIDAgMiAwIDMtMmwzMy03OGgxbDMzIDc4YzEgMiAyIDIgMyAyaDE2bDItMlYyOTZsLTItMWgtMTZsLTEgMXY3OGgtMWwtMjYtNjAtMy0yaC0xMWwtMyAyLTI2IDYwaC0xdi03OGwtMi0xaC0xNWwtMiAxdjEyMyIgdHJhbnNmb3JtPSJtYXRyaXgoLjEzMzMzIDAgMCAtLjEzMzMzIDAgNjUpIi8+PC9zdmc+Cg==\" alt=\"RELX group home page\" height=\"20\" width=\"93\" loading=\"lazy\" /></a></div></footer></div></div>\n<script data-cfasync=\"false\">\n// Vanilla JS for dynamic elements\n(function() {\n function getDateTimeStamp() {\n var date = new Date();\n var year = date.getUTCFullYear();\n var month = String(date.getUTCMonth() + 1).padStart(2, '0');\n var day = String(date.getUTCDate()).padStart(2, '0');\n var hours = String(date.getUTCHours()).padStart(2, '0');\n var minutes = String(date.getUTCMinutes()).padStart(2, '0');\n var seconds = String(date.getUTCSeconds()).padStart(2, '0');\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds} UTC`;\n }\n\n var userAgentElement = document.getElementById('userAgent');\n var timestampElement = document.getElementById('timestamp');\n\n if (userAgentElement) {\n userAgentElement.innerHTML = '<strong>User Agent: </strong>' + navigator.userAgent;\n }\n\n if (timestampElement) {\n timestampElement.innerHTML = '<strong>Timestamp: </strong>' + getDateTimeStamp();\n }\n \n function addLinkToCookieButton() {\n var button = document.getElementById('ot-sdk-btn');", "exit_code": 0, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"todos": [{"id": "step1", "content": "Step 1: PubMed检索 — 神经炎症/胶质细胞方向", "status": "completed"}, {"id": "step2", "content": "Step 2: 获取论文详情并初筛", "status": "completed"}, {"id": "step3", "content": "Step 3: Claude Code深度评估", "status": "completed"}, {"id": "step4", "content": "Step 4: 唯一推荐确认 — PMID 42263678 (Neuron, KAT7/mtDNA/cGAS-STING)", "status": "completed"}, {"id": "step5", "content": "Step 5: 下载PDF+提取Figure图片", "status": "completed"}, {"id": "step6", "content": "Step 6: 制作HTML深度解读", "status": "in_progress"}, {"id": "step7", "content": "Step 7: 输出最终推送消息+MEDIA附件", "status": "pending"}], "summary": {"total": 7, "pending": 1, "in_progress": 1, "completed": 5, "cancelled": 0}}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"bytes_written": 18288, "dirs_created": true, "lint": {"status": "error", "output": "SyntaxError: f-string: invalid syntax. Perhaps you forgot a comma? (line 303, column 5)"}, "_warning": "C:\\Users\\forgase\\build_html_neuroinflammation.py was modified by sibling subagent '4fbf72ef-25c7-40e0-9fb3-3f73bd6ed819' but this agent never read it. Read the file before writing to avoid overwriting the sibling's changes.", "resolved_path": "C:\\Users\\forgase\\build_html_neuroinflammation.py", "files_modified": ["C:\\Users\\forgase\\build_html_neuroinflammation.py"]}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"content": "280|<!-- Meta -->\n281|<div class=\"card\" style=\"font-size:13px;color:#888;\">\n282|<p><b>DOI:</b>10.1016/j.neuron.2026.05.015</p>\n283|<p><b>PMID:</b>42263678</p>\n284|<p><b>期刊:</b>Neuron (Cell Press, IF 18.7)</p>\n285|<p><b>发表日期:</b>2026年6月9日</p>\n286|<p><b>出版类型:</b>Original Research</p>\n287|<p><b>关键词:</b>Alzheimer's disease, KAT7, CMPK2, cGAS-STING, microglia, mitochondrial DNA, neuroinflammation</p>\n288|</div>\n289|\n290|</div>\n291|\n292|<script>\n293|// Figure base64 data (JPEG format for Cell Press)\n294|const fig1_b64 = \"{fig_b64.get('fig1','')}\";\n295|const fig2_b64 = \"{fig_b64.get('fig2','')}\";\n296|const fig3_b64 = \"{fig_b64.get('fig3','')}\";\n297|const fig4_b64 = \"{fig_b64.get('fig4','')}\";\n298|const fig5_b64 = \"{fig_b64.get('fig5','')}\";\n299|const fig6_b64 = \"{fig_b64.get('fig6','')}\";\n300|const fig7_b64 = \"{fig_b64.get('fig7','')}\";\n301|\n302|function loadImage(canvasId, b64) {\n303| var canvas = document.getElementById(canvasId);\n304| if (!canvas || !b64 || b64.length < 100) return;\n305| var ctx = canvas.getContext(\"2d\");\n306| var img = new Image();\n307| img.onload = function() {{\n308| canvas.width = Math.min(img.width, 780);\n309| canvas.height = img.height * (canvas.width / img.width);\n310|", "total_lines": 336, "file_size": 18288, "truncated": true, "hint": "Use offset=310 to continue reading (showing 280-309 of 336 lines)", "is_binary": false, "is_image": false}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"content": "310| ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n311| }};\n312| var mime = b64.startsWith(\"iVBOR\") ? \"image/png\" : \"image/jpeg\";\n313| img.src = \"data:\" + mime + \";base64,\" + b64;\n314|}\n315|\n316|loadImage(\"fig1-canvas\", fig1_b64);\n317|loadImage(\"fig2-canvas\", fig2_b64);\n318|loadImage(\"fig3-canvas\", fig3_b64);\n319|loadImage(\"fig4-canvas\", fig4_b64);\n320|loadImage(\"fig5-canvas\", fig5_b64);\n321|loadImage(\"fig6-canvas\", fig6_b64);\n322|loadImage(\"fig7-canvas\", fig7_b64);\n323|</script>\n324|\n325|</body>\n326|</html>'''\n327|\n328|# Write HTML to desktop\n329|output_path = \"C:/Users/forgase/Desktop/神经炎症_文献解读.html\"\n330|with open(output_path, \"w\", encoding=\"utf-8\") as f:\n331| f.write(html)\n332|\n333|file_size = os.path.getsize(output_path)\n334|print(f\"\\\\nHTML written to: {output_path}\")\n335|print(f\"File size: {file_size / 1024 / 1024:.2f} MB\")\n336|print(\"Done!\")\n337|", "total_lines": 336, "file_size": 18288, "truncated": false, "is_binary": false, "is_image": false}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"bytes_written": 15462, "dirs_created": true, "lint": {"status": "ok", "output": ""}, "resolved_path": "C:\\Users\\forgase\\build_html_neuro.py", "files_modified": ["C:\\Users\\forgase\\build_html_neuro.py"]}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "Fig1: 3549224 bytes loaded\r\n Fig2: 1267832 bytes loaded\r\n Fig3: 1921240 bytes loaded\r\n Fig4: 3182040 bytes loaded\r\n Fig5: 3589508 bytes loaded\r\n Fig6: 2459288 bytes loaded\r\n Fig7: 3114484 bytes loaded\r\n\r\nHTML written to: C:/Users/forgase/Desktop/神经炎症_文献解读.html\r\nFile size: 18.21 MB\r\nDone!", "exit_code": 0, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"output": "-rw-r--r-- 1 forgase 197121 19099010 6月 13 11:05 /c/Users/forgase/Desktop/神经炎症_文献解读.html", "exit_code": 0, "error": null}
assistant · 2026-06-13 11:06
tool · 2026-06-13 11:06
{"todos": [{"id": "step1", "content": "Step 1: PubMed检索 — 神经炎症/胶质细胞方向", "status": "completed"}, {"id": "step2", "content": "Step 2: 获取论文详情并初筛", "status": "completed"}, {"id": "step3", "content": "Step 3: Claude Code深度评估", "status": "completed"}, {"id": "step4", "content": "Step 4: 唯一推荐确认 — PMID 42263678 (Neuron, KAT7/mtDNA/cGAS-STING)", "status": "completed"}, {"id": "step5", "content": "Step 5: 下载PDF+提取Figure图片", "status": "completed"}, {"id": "step6", "content": "Step 6: 制作HTML深度解读", "status": "completed"}, {"id": "step7", "content": "Step 7: 输出最终推送消息+MEDIA附件", "status": "completed"}], "summary": {"total": 7, "pending": 0, "in_progress": 0, "completed": 7, "cancelled": 0}}
assistant · 2026-06-13 11:06
🔥 11:00 神经炎症/胶质细胞 论文推荐
🏆 Epigenetic control of microglial mitochondrial immunity by KAT7 drives Alzheimer's disease pathogenesis
📅 2026-06-09 | 📰 Neuron (IF 18.7)
⭐ Claude评分:41/50
💡 推荐理由:本研究发现组蛋白乙酰转移酶KAT7在小胶质细胞中通过Cmpk2→mtDNA释放→cGAS-STING轴驱动AD神经炎症。该论文与你博一课题(PCAF→RhoA乳酸化→线粒体定位→mitoxyperiosis)在实验逻辑上呈**结构同源性**——均研究HAT酶通过核-线粒体信号轴调控小胶质细胞功能。CUT&Tag策略、Cmpk2回补设计、胞质mtDNA定量方案均可直接复用到你的课题中。
🔬 关键借鉴点:
• CUT&Tag鉴定PCAF在小胶质细胞中的基因组结合位点
• KO-KI-rescue设计可复用至PCAF-乳酸化功能验证
• 胞质mtDNA检测panel可整合探索乳酸-RhoA轴是否调控STING活性
• Cx3cr1-CreER条件性KO策略可直接移植用于PCAF/RhoA体内验证
📎 深度解读HTML已生成(含7张原图+逐图解读+复现建议)
MEDIA:C:\Users\forgase\Desktop\神经炎症_文献解读.html