Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Search and analyze electron microscopy data — cryo-EM density maps (EMDB), fitted atomic models (PDB), raw micrograph datasets (EMPIAR), and cryo-electron tomography volumes (CryoET Data Portal). Use for finding 3D structural data on a protein/complex, comparing experimental EM resolution to AlphaFold confidence, and accessing raw EM data for re-processing.
.claude/skills/tooluniverse-electron-microscopy/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | 206% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 166% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 303% | 0% |
| case-04 | ✓→✗ | ▼ Worse | 85% | 0% |
Pipeline for discovering and analyzing electron microscopy data across the full resolution spectrum: from 3D density maps (EMDB) to fitted atomic models (PDB), raw micrograph datasets (EMPIAR), and cryo-electron tomography volumes (CryoET Data Portal). Connects EM data to structural biology context via PDB and AlphaFold.
Guiding principles:
EM resolution determines what you can see. TEM resolves individual protein complexes (~2nm). Cryo-EM achieves near-atomic resolution (<4Å) for large complexes. SEM shows surface topology. Choose the right EM modality for the question.
When uncertain about any scientific fact, SEARCH databases first rather than reasoning from memory. A database-verified answer is always more reliable than a guess.
When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.
Typical triggers:
Not this skill: For X-ray crystallography or NMR structures, use PDB search tools directly. For protein structure prediction, use tooluniverse-protein-structure.
| Database | Content | Best For | |----------|---------|----------| | EMDB | 3D EM density maps (>40K entries) | Finding processed maps, resolution data, fitting info | | EMPIAR | Raw micrograph/tilt series datasets | Accessing original image data for reprocessing | | CryoET Data Portal | Cryo-electron tomography data | Tomographic volumes, cellular context, in-situ structures | | PDB (RCSB) | Atomic models fitted to EM maps | Structural models derived from EM data | | AlphaFold | AI-predicted protein structures | Complementary models when EM resolution is limited |
Phase 0: Query Parsing
Identify target protein/complex, method preference, resolution needs
|
Phase 1: Map & Image Search (EMDB)
Find EM density maps, resolution, method, sample details
|
Phase 2: Structure Fitting (EMDB + PDB)
Identify fitted atomic models, fitting quality
|
Phase 3: Raw Data Access (EMPIAR)
Find raw micrographs, tilt series, particle stacks
|
Phase 4: Tomography (CryoET Data Portal)
Search cryo-ET datasets, reconstructed volumes
|
Phase 5: Cross-Reference & Context (PDB + AlphaFold)
Connect to atomic models, predicted structures, literature
|
Phase 6: Report Synthesis
Integrated EM data landscape for the targetIdentify from the user's request:
Objective: Find EM density maps matching the query.
Tools:
EMDB_search_structures -- search EMDB by keyword, organism, resolutionquery (search term), optional resolution_min, resolution_max, method, limitEMDB_get_structure -- get full details for an EMDB entryemdb_id (e.g., "EMD-1234")EMDB_get_map_info -- get map-specific info (resolution, contour, dimensions)emdb_idEMDB_get_sample_info -- get sample preparation detailsemdb_idWorkflow:
Resolution interpretation:
Objective: Find atomic models fitted into EM maps and assess fitting quality.
Tools:
EMDB_get_validation -- get fitting/validation data for an EMDB entryemdb_idRCSBData_get_entry -- get PDB entry detailsentry_id (PDB ID)RCSBAdvSearch_search_structures -- advanced PDB searchquery (search term), optional experimental_method, resolution_max, limitWorkflow:
Fitting quality indicators:
Objective: Locate raw micrograph data for potential reprocessing.
Tools:
EMPIAR_search_entries -- search EMPIAR archivequery (search term), optional limitEMPIAR_get_entry -- get detailed entry informationempiar_id (e.g., "EMPIAR-10028")Workflow:
Data types in EMPIAR:
Objective: Find cryo-electron tomography datasets for cellular and in-situ structural biology.
Tools:
CryoET_list_datasets -- search CryoET Data Portalquery (search term), optional organism, limitCryoET_get_dataset -- get dataset detailsdataset_idCryoET_list_runs -- search individual tomography runsdataset_id or query, optional limitWorkflow:
Tomography vs single particle: Tomography preserves cellular context (in situ) but typically achieves lower resolution. Single particle gives higher resolution but requires purified samples.
Objective: Connect EM data to broader structural biology context.
Tools:
alphafold_get_prediction -- get AlphaFold predicted structurequalifier (UniProt accession)PubMed_search_articles -- find publications describing the EM workquery (search term), optional limitWorkflow:
Don't just list maps — help the user choose the RIGHT map for their purpose.
Decision matrix: Which map should I use?
| Purpose | Best Resolution | Method | Priority Criteria | |---------|----------------|--------|-------------------| | Atomic model building | < 3.5A | Single particle | Highest resolution with fitted PDB model | | Drug binding site analysis | < 3.0A | Single particle | Must resolve side chains in binding pocket | | Domain architecture | 4-8A | Single particle or subtomogram avg | Large complexes where domains need fitting | | Conformational states | < 4.5A | Single particle (multiple classes) | Look for entries with multiple maps from same dataset | | Cellular context | 15-40A | Cryo-ET | Tomographic datasets showing in-situ arrangement | | Reprocessing | Any | Any | Must have EMPIAR raw data; prefer recent datasets (better detectors) |
Quality assessment checklist:
Resolution trend analysis: If multiple maps exist over time, note the resolution trajectory. Improvement from 6A (2015) to 2.8A (2023) suggests the sample is amenable to high-resolution single particle analysis with modern hardware.
Assemble findings into an actionable report:
| Pattern | Description | Key Phases | |---------|-------------|------------| | Structure Discovery | Find all EM data for a protein | 0, 1, 2, 5 | | Reprocessing Prep | Find raw data for re-analysis | 0, 1, 3 | | Tomography Survey | Explore in-situ structural data | 0, 4 | | Resolution Comparison | Track resolution improvements over time | 0, 1, 2 | | Map-Model Validation | Assess quality of fitted atomic models | 0, 1, 2, 5 |
RCSBAdvSearch_search_structures with method filterIDR (Image Data Resource, https://idr.openmicroscopy.org) is the reference repository for light microscopy and high-content screening data — distinct from the EM databases above. Use it to find published imaging studies and images by curated metadata across all ~140 studies at once:
IDR_search_studies — which screens/projects involve a gene/organism/compound/phenotype. Returns containing screens and projects with IDR container IDs.tu.run_tool("IDR_search_studies", {"key": "Gene Symbol", "value": "TP53"}) -> 12 studies (idr0043 Human Protein Atlas, idr0135 melanocytes, ...).tu.run_tool("IDR_search_studies", {"key": "Phenotype", "value": "spindly"}) -> 4 RhoGTPase screens (idr0028).IDR_search_images — individual images matching metadata, each with IDR image ID, webclient URL, and key/value pairs (gene, cell line, antibody, organism).IDR_list_metadata_keys — discover the searchable keys (Gene Symbol, Organism, Compound Name, Cell Line, Phenotype, Antibody Name, Pathology, ...).IDR_list_values_for_key — enumerate values + image counts for a key, e.g. all organisms or all screened compounds.Notes: value matching is case-sensitive on the stored capitalization (organism must be Homo sapiens, not homo sapiens); use IDR_list_values_for_key to find valid values. To drill from a returned IDR study container into its datasets/images, use the existing IDR_get_study / IDR_get_study_datasets / IDR_list_dataset_images / IDR_get_image_map_annotations tools.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-17 | pass→pass | 6,054 | 4,710 | -22% | 1 | 1 | 0% | 1,085 | 4,414 | +307% | 0 | 0 | — |
case-18 | pass→pass | 12,362 | 7,310 | -41% | 1 | 1 | 0% | 1,937 | 5,123 | +164% | 0 | 0 | — |
case-01 | fail→fail | 20,619 | 7,483 | -64% | 1 | 1 | 0% | 4,044 | 4,468 | +10% | 0 | 0 | — |
case-02 | fail→fail | 12,502 | 5,481 | -56% | 1 | 1 | 0% | 2,485 | 4,231 | +70% | 0 | 0 | — |
case-03 | fail→fail | 17,810 | 6,482 | -64% | 1 | 1 | 0% | 3,157 | 4,236 | +34% | 0 | 0 | — |
case-04 | pass→fail | 13,585 | 8,949 | -34% | 1 | 1 | 0% | 2,334 | 4,326 | +85% | 0 | 0 | — |
case-05 | pass→fail | 19,556 | 5,968 | -69% | 1 | 1 | 0% | 2,542 | 4,339 | +71% | 0 | 0 | — |
case-06 | pass→pass | 10,057 | 21,029 | +109% | 1 | 1 | 0% | 1,754 | 5,967 | +240% | 0 | 0 | — |
case-07 | pass→fail | 12,900 | 6,243 | -52% | 1 | 1 | 0% | 2,358 | 4,259 | +81% | 0 | 0 | — |
case-08 | pass→fail | 14,794 | 5,088 | -66% | 1 | 1 | 0% | 2,417 | 4,298 | +78% | 0 | 0 | — |
case-09 | pass→pass | 13,896 | 14,672 | +6% | 1 | 1 | 0% | 2,249 | 6,351 | +182% | 0 | 0 | — |
case-10 | pass→pass | 13,111 | 15,682 | +20% | 1 | 1 | 0% | 2,141 | 6,502 | +204% | 0 | 0 | — |
case-11 | fail→pass | 15,504 | 6,811 | -56% | 1 | 1 | 0% | 1,422 | 4,356 | +206% | 0 | 0 | — |
case-12 | fail→fail | 8,990 | 5,862 | -35% | 1 | 1 | 0% | 1,717 | 4,307 | +151% | 0 | 0 | — |
case-13 | fail→pass | 10,036 | 5,277 | -47% | 1 | 1 | 0% | 1,780 | 4,738 | +166% | 0 | 0 | — |
case-14 | pass→pass | 13,142 | 12,917 | -2% | 1 | 1 | 0% | 2,128 | 6,114 | +187% | 0 | 0 | — |
case-15 | pass→pass | 8,220 | 12,568 | +53% | 1 | 1 | 0% | 1,406 | 5,248 | +273% | 0 | 0 | — |
case-16 | fail→fail | 9,613 | 5,021 | -48% | 1 | 1 | 0% | 1,894 | 4,783 | +153% | 0 | 0 | — |
case-19 | fail→pass | 13,791 | 29,812 | +116% | 1 | 1 | 0% | 2,664 | 4,439 | +67% | 0 | 0 | — |
case-20 | pass→fail | 11,894 | 5,062 | -57% | 1 | 1 | 0% | 2,018 | 4,211 | +109% | 0 | 0 | — |
case-21 | pass→fail | 12,634 | 6,926 | -45% | 1 | 1 | 0% | 2,113 | 4,451 | +111% | 0 | 0 | — |
case-22 | fail→pass | 5,784 | 6,268 | +8% | 1 | 1 | 0% | 1,159 | 4,665 | +303% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 12 counted toward the lift figure. The other 10 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of -9 percentage points is the difference between those two pass rates over the 12 comparable cases. 8 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 7/28/2026 | — |
Other measured skills in the registry, with their headline benchmark lift.