Tuyen Tran, MD
AI cho nghiên cứu

Zotero + AI workflow — automate literature synthesis cho meta-analysis

Zotero làm storage, Claude Project làm reasoning — workflow tôi dùng cho một meta-analysis về phẫu thuật nhi: từ search đến data extraction, kết thúc bằng metafor trong R.

Khi làm một meta-analysis về phẫu thuật dị tật hậu môn trực tràng một thì so với nhiều thì, phần literature search + screen của tôi gọn lại còn vài ngày thay vì vài tuần như cách cũ. Bài này mô tả chính xác workflow đó, với số liệu minh họa từng bước.

Difference chính: Zotero làm storage + metadata, Claude Project làm reasoning + extract. Hai tool sync, mỗi tool một vai trò rõ. Không phải một mega-tool magic.

Setup — Zotero + Claude Project

Zotero:

  • Zotero 7 (free) + plugin "Better BibTeX" cho citation key clean
  • Browser extension Zotero Connector — capture paper từ PubMed/Google Scholar 1 click
  • Cloud sync (free 300MB, đủ ~500 PDF) hoặc upgrade $20/năm cho 6GB

Claude Project:

  • 1 Project per topic. Mỗi đề tài một Project riêng, không trộn — trộn topic làm Claude lẫn context giữa các nghiên cứu.
  • Upload PDF batch — Claude Project nhận tối đa ~50 PDF per project (free tier 5, Pro 25, Max ~50).
  • Mỗi project có "instructions" — tôi paste research question + inclusion/exclusion criteria + voice muốn output.

Sync:

  • Zotero export folder → Claude Project upload. Manual mỗi 50 paper, không phải auto realtime. Ổn vì batch screening 1-2 lần/tuần.

Step 1: Literature search — Zotero capture

PubMed search: "anorectal malformation AND staged AND meta-analysis NOT animal" → 247 hit. Tôi filter:

  • Year 2010-2026
  • Human study
  • English/Vietnamese (Vietnamese từ Tạp chí Y học VN)
  • Peer-reviewed (exclude conference abstract trừ khi có full text)

Còn 89 hit. Mỗi cái 1 click Zotero Connector → import metadata + PDF (phần lớn paper truy cập qua subscription của thư viện bệnh viện, số còn lại email author hoặc dùng InterLibrary Loan).

Plus snowball: bibliography của các review paper key → thêm paper unique chưa hit search.

Step 2: Title + abstract screen — Claude Project

Upload 50 PDF batch vào Claude Project. Instructions paste:

You are screening papers for a meta-analysis about ARM staged vs single-stage repair outcomes. 
Inclusion: pediatric (≤18yo), report continence outcome, sample n≥20.
Exclusion: case report (n<10), animal study, surgical technique paper without outcome.

For each paper I upload, return:
- INCLUDE / EXCLUDE / UNCLEAR
- 1 reason (≤15 từ)
- If INCLUDE: extract sample size, follow-up duration, primary outcome metric

Claude screen 50 PDF trong ~15 phút (Project có context full text). Tôi verify random 10/50 — match decision của tôi 9/10. Disagreement 1: Claude include paper n=22 nhưng follow-up 6 tháng (tôi muốn ≥1 năm). Note trong SOP: thêm rule "follow-up ≥12 months" vào instructions.

Sau nhiều batch, tôi có ba nhóm: INCLUDE rõ, EXCLUDE rõ, và UNCLEAR cần đọc full text. Riêng nhóm UNCLEAR tôi đọc tay từng bài để quyết — đây là phần AI không thay được.

Step 3: Quality assessment — Cochrane RoB 2 prompt

Per paper INCLUDE, tôi apply Risk of Bias 2 (RoB 2) tool. Prompt:

Assess this RCT/cohort using Cochrane RoB 2 domains:
1. Bias arising from randomization
2. Bias due to deviations from intended intervention
3. Bias due to missing outcome data
4. Bias in measurement of outcome
5. Bias in selection of reported result

For each domain: LOW / SOME CONCERNS / HIGH + 1 sentence justification.
Final: overall judgment.

Claude gen RoB cho toàn bộ paper INCLUDE trong vài giờ. Tôi verify 20% random — match phần lớn domains, vài disagreement nhỏ về domain deviations thì tôi edit final.

Sau RoB: nhóm LOW/SOME CONCERNS qualify cho quantitative synthesis; nhóm HIGH RISK chỉ dùng cho narrative.

Step 4: Data extraction — Prompt 5 từ template

Cho các qualifying paper, dùng prompt extract bảng outcome thành CSV (tôi mô tả trong 5 prompt Claude tôi dùng hằng ngày khi đọc paper).

Output CSV import vào R metafor:

library(metafor)
dat <- read.csv("extracted.csv")
res <- rma(yi=continence_rate, sei=se, data=dat, method="REML")
forest(res)

Forest plot + funnel plot một lệnh, figure publication-ready, gần như không cần edit.

Time saved

Phase Cách cũ (manual) Workflow này Save
Literature search + import 4 giờ 4 giờ 0 (Zotero không AI)
Title/abstract screen 200 paper ~25 giờ (7 phút/paper) ~6 giờ (Claude batch + verify) ~19 giờ
RoB assessment 90 paper ~30 giờ ~8 giờ ~22 giờ
Data extraction 32 paper ~16 giờ ~4 giờ ~12 giờ
Total ~75 giờ ~22 giờ ~53 giờ

Đây là ước lượng minh họa cho một review cỡ vài trăm paper. Thời gian thực tế phụ thuộc vào độ phức tạp của topic và số paper.

Caveat — KHÔNG dùng workflow này nếu

  • Bạn chưa quen RoB 2. AI gen RoB output dạng template, bạn phải verify từng domain. Không hiểu RoB thì không biết check gì.
  • Topic của bạn ít literature (<30 paper). Setup Zotero + Project không justify cho 30 paper, đọc tay nhanh hơn.
  • Funder yêu cầu PRISMA-compliant search documented đầy đủ. AI screen được nhưng decision log phải transparent — Cochrane chưa accept AI screen như sole reviewer (2026 update).

Workflow tổng

Zotero + AI là Step 2 trong pipeline AI nghiên cứu của tôi. Step 1 (NotebookLM screen audio) + Step 3-5 (Discussion draft, citation check, peer review): pillar Workflow AI cho bác sĩ làm nghiên cứu — từ đọc paper đến viết Discussion.

5 prompt template structured (bao gồm prompt extract data Step 4): 5 prompt Claude tôi dùng hằng ngày khi đọc paper.

Khoá học

Khoá AI cho nghiên cứu trên tuyentranmd.com có Module 4 "Literature Synthesis at Scale" — setup Zotero + Claude Project + R metafor end-to-end, case study từ search đến forest plot, plus prompt template RoB 2 + extraction CSV.