experiment-detail-comparator
Compare experimental method details between two Zotero PDF papers, identify protocol differences (ratios, dosages, timing, conditions), search supporting literature to explain why they differ, and generate an HTML report
Install / Use
npx skills add aipoch/medical-research-skills --skill experiment-detail-comparatorInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Customer SupportSupported Platforms
Our assessment of experiment-detail-comparator
experiment-detail-comparator scores 94/100 on our quality scale, 71st of 327 Customer Support skills we index (top 22%).
Its SKILL.md is 13 KB long, well organised into 32 sections with 16 code examples: a thorough specification that gives an agent plenty to work with.
With 1,916 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 15 days ago, so experiment-detail-comparator is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
experiment-detail-comparator compared with similar skills
All 4 of these similar skills score higher than experiment-detail-comparator; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| experiment-detail-comparator (this skill)by aipoch | 94 | 1.9k | 15d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 88.1k | 17d ago | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 10d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 10d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 130.2k | 11d ago | SKILL.md |
Frequently asked questions
- How do I install experiment-detail-comparator?
- Run
npx skills add aipoch/medical-research-skills --skill experiment-detail-comparator. The install tabs above show the steps for each supported agent. - Which AI agents does experiment-detail-comparator work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is experiment-detail-comparator safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is experiment-detail-comparator still maintained?
- The repository was last updated 15 days ago, so experiment-detail-comparator is actively maintained.
Skill content
View source on GitHubname: experiment-detail-comparator description: Compare experimental method details between two Zotero PDF papers, identify protocol differences (ratios, dosages, timing, conditions), search supporting literature to explain why they differ, and generate an HTML report. Use when you need a parameter-level comparison of two methods and evidence-backed reasons for discrepancies. license: MIT author: AIPOCH
Validation Shortcut
Run this minimal command first to verify the supported execution path:
python scripts/compare_methods.py --help
Experiment Detail Comparator
When to Use
Use this skill when you need to:
- Compare two papers that apply the same or highly similar experimental method (e.g., CRISPR editing, ELISA, Western blot, synthesis protocol).
- Identify parameter-level differences in protocols (concentration, ratio, dosage, temperature, duration, incubation, buffer composition, instrument settings).
- Explain why protocols differ by searching additional references and extracting evidence-backed rationales.
- Produce a structured, shareable HTML comparison report for collaborators, lab records, or reproducibility audits.
- Standardize method extraction into machine-readable JSON for downstream analysis (QA, meta-analysis, protocol harmonization).
Key Features
- Zotero-first retrieval: locate items by title/author/DOI, then resolve PDF attachments.
- PDF → Markdown conversion via the
mistral-pdf-to-markdownworkflow for robust text extraction. - Comprehensive method extraction including:
- reagents, concentrations, ratios, volumes
- temperatures, durations, timing
- organisms/cell lines, sample handling, ethics/consent (when present)
- equipment models and settings
- experimental design (controls, replicates, randomization/blinding when stated)
- stepwise procedure structure
- Optional table extraction from PDFs to capture dense parameter tables.
- Protocol comparison engine producing a structured diff and a human-readable comparison table.
- Literature-backed explanations: query PubMed/Europe PMC/Semantic Scholar for each major difference.
- Evidence grading (High/Medium/Low) for each explanation.
- HTML report generation with citations, highlighted differences, and graded rationale sections.
Dependencies
Runtime (Python)
- Python
>=3.10
Core libraries / modules
json(stdlib)subprocess(stdlib)pathlib(stdlib)re(stdlib)
Optional but recommended
pdfplumber >=0.10.0(PDF table extraction)PyPDF2 >=3.0.0(PDF text extraction / parsing support)requests >=2.31.0(download PDFs from URLs)
Install optional dependencies:
pip install "pdfplumber>=0.10.0" "PyPDF2>=3.0.0" "requests>=2.31.0"
External tools / services
- Zotero MCP tools:
mcp__zotero__* mistral-pdf-to-markdownskill (requiresMISTRAL_API_KEY)- Literature search tools (as available in your environment):
- PubMed
- Europe PMC
- Semantic Scholar
- Optional: EDirect for PubMed CLI workflows
https://www.ncbi.nlm.nih.gov/books/NBK179288/
Environment variables (recommended)
Set in Notes/.env:
ZOTERO_API_KEY(required for Zotero web library access; optional for local-only)ZOTERO_LIBRARY_TYPE(userorgroup)ZOTERO_LIBRARY_ID(your Zotero library ID)MISTRAL_API_KEY(required for best PDF→Markdown conversion)
Example Usage
End-to-end run (recommended)
Compare two papers by Zotero search terms:
python run_comparison.py \
"CRISPR-Cas9 knockout in HeLa cells" \
"Efficient genome editing in HEK293 cells" \
./output
Compare two papers by Zotero attachment keys:
python run_comparison.py \
ABCDEFGHIJKLMNOPQRSTUVWXYZ123456 \
ZYXWVUTSRQPONMLKJIHGFEDCBA654321 \
./output
Compare two local PDFs:
python run_comparison.py \
./paper1.pdf \
./paper2.pdf \
./output
Expected outputs (in ./output):
comparison_report.htmlmethod_details.jsonexplanations.json
Manual workflow (script-by-script)
- Find items in Zotero and resolve PDF attachments
result1 = mcp__zotero__zotero_search_items(query="paper 1 title or author", limit=5)
item_key1 = result1[0]["key"]
result2 = mcp__zotero__zotero_search_items(query="paper 2 title or author", limit=5)
item_key2 = result2[0]["key"]
children1 = mcp__zotero__zotero_get_item_children(item_key=item_key1)
attachment_key1 = [c for c in children1 if c.get("type") == "application/pdf"][0]["key"]
children2 = mcp__zotero__zotero_get_item_children(item_key=item_key2)
attachment_key2 = [c for c in children2 if c.get("type") == "application/pdf"][0]["key"]
- Retrieve PDFs (local cache first, download if needed)
python scripts/get_zotero_pdf.py "$ATTACHMENT_KEY1"
python scripts/get_zotero_pdf.py "$ATTACHMENT_KEY2"
- Convert PDFs to Markdown
python scripts/convert_pdf_to_markdown.py "PATH_TO_PDF1" "temp/paper1.md"
python scripts/convert_pdf_to_markdown.py "PATH_TO_PDF2" "temp/paper2.md"
- Extract comprehensive method details to JSON
python scripts/extract_method_section.py temp/paper1.md temp/paper1_method.json
python scripts/extract_method_section.py temp/paper2.md temp/paper2_method.json
- Compare extracted methods
python scripts/compare_methods.py temp/paper1_method.json temp/paper2_method.json output/comparison.json
- Search literature for explanations (per major difference)
python scripts/search_explanations.py output/comparison.json output/explanations.json
- Generate HTML report
python scripts/generate_html_report.py \
temp/paper1_method.json \
temp/paper2_method.json \
output/comparison.json \
output/explanations.json \
output/comparison_report.html
Implementation Details
1) Method extraction schema (what is captured)
The extraction step aims to produce a structured JSON object per paper with:
-
Basic parameters
- method name (if inferable)
- reagents and materials
- concentrations, ratios, dosages, volumes
- temperatures, durations, timing
- organisms/cell lines
- equipment list
-
Experimental design
- control vs experimental groups
- replicates (technical/biological; e.g., n=3)
- sample size statements
- randomization/blinding (only if explicitly stated)
- block design cues (if present)
-
Materials detail
- chemicals (supplier/manufacturer, catalog/batch when present)
- kits and manufacturers
- media/buffers and compositions (when listed)
- solvents
-
Equipment detail
- instrument model/manufacturer
- instrument settings (e.g., centrifuge speed, wavelength, incubation conditions)
-
Sample information
- source and handling (fresh/frozen/fixed/dried)
- storage conditions
- ethics approval / consent statements (when present)
-
Key steps
- step sequence (numbered when possible)
- step type tags (preparation / reaction / purification / detection)
2) Optional enhancements
A) Extract tables directly from PDF
Use when parameters are primarily in tables (common in materials lists, primer tables, buffer recipes):
python scripts/extract_pdf_tables.py paper.pdf output/tables.json
Output includes detected table types (e.g., materials/parameters/results) and normalized JSON rows.
B) Download and parse full PDFs (URL or local)
Use when you need full-text parsing, DOI detection, or multi-language handling:
python scripts/download_full_pdf.py https://example.com/paper.pdf ./downloads
# or
python scripts/download_full_pdf.py ./local/paper.pdf ./parsed
Features:
- automatic language detection (e.g., English/CJK/Russian)
- DOI extraction
- JSON metadata + plain text output
3) Comparison logic (protocol diff)
compare_methods(...) identifies differences across normalized fields and produces:
- a parameter comparison table (Paper 1 vs Paper 2)
- a list of significant differences (heuristics typically prioritize:
- large numeric deltas (e.g., 2× concentration, 10°C shift)
- categorical changes (different reagent, cell line, instrument)
- timing/sequence changes that affect outcomes)
Example comparison table structure:
| Parameter | Paper 1 | Paper 2 | Difference | |---|---|---|---| | Reagent concentration | 10 mM | 20 mM | 2× higher in Paper 2 | | Temperature | 37°C | 25°C | 12°C lower in Paper 2 | | Duration | 2 h | 4 h | 2× longer in Paper 2 |
4) Literature search and explanation synthesis
For each significant difference, the skill builds targeted queries such as:
{method_name} {parameter} optimization{parameter} effect on yield{reagent} concentration protocol comparison
Supported sources (depending on your toolchain availability):
- PubMed
- Europe PMC (including full-text term extraction when available)
- Semantic Scholar (including PDF snippet retrieval when available)
The output is an explanation object per parameter with:
- summary rationale
- citations
- extracted supporting snippets (when available)
5) Evidence grading rubric
Each explanation is graded:
- High: direct mechanistic or comparative experimental evidence supporting the parameter choice.
- Medium: empirical optimization/functional evidence without strong mechanistic validation.
- Low: review-level mention, indirect rationale, or anecdotal protocol statements.
6) HTML report generation
The report includes:
- paper metadata blocks
- a comparison table with highlighted differences
- per-parameter explanation sections with evidence grade styling
- references list
Primary output file:
comparison_report.html(shareable, human-readable)
Supporting outputs:
method_details.json(structured extraction for both papers)explanations.json(search results + graded rationales)
When Not to Use
- Do not use this skill when the required source data, identifiers, files, or credentials are missing.
- Do not use this skill when the user asks for fabricated results, unsupported claims, or out-of-scope conclusions.
- Do not use this skill when a simpler direct answer is more appropriate than the documented workflow.
Required Inputs
- A clearly specified task goal aligned with the documented scope.
- All required files, identifiers, parameters, or environment variables before execution.
- Any domain constraints, formatting requirements, and expected output destination if applicable.
Recommended Workflow
- Validate the request against the skill boundary and confirm all required inputs are present.
- Select the documented execution path and prefer the simplest supported command or procedure.
- Produce the expected output using the documented file format, schema, or narrative structure.
- Run a final validation pass for completeness, consistency, and safety before returning the result.
Output Contract
- Return a structured deliverable that is directly usable without reformatting.
- If a file is produced, prefer a deterministic output name such as
experiment_detail_comparator_result.mdunless the skill documentation defines a better convention. - Include a short validation summary describing what was checked, what assumptions were made, and any remaining limitations.
Validation and Safety Rules
- Validate required inputs before execution and stop early when mandatory fields or files are missing.
- Do not fabricate measurements, references, findings, or conclusions that are not supported by the provided source material.
- Emit a clear warning when credentials, privacy constraints, safety boundaries, or unsupported requests affect the result.
- Keep the output safe, reproducible, and within the documented scope at all times.
Failure Handling
- If validation fails, e
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
88.1kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
130.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
