encode-toolkit 0.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,843 @@
1
+ Metadata-Version: 2.4
2
+ Name: encode-toolkit
3
+ Version: 0.3.0
4
+ Summary: MCP server for querying and downloading ENCODE Project genomics data directly from Claude
5
+ Project-URL: Homepage, https://github.com/ammawla/encode-toolkit
6
+ Project-URL: Repository, https://github.com/ammawla/encode-toolkit
7
+ Project-URL: Issues, https://github.com/ammawla/encode-toolkit/issues
8
+ Author-email: "Dr. Alex M. Mawla, PhD" <ammawla@ucdavis.edu>
9
+ License-Expression: AGPL-3.0-only
10
+ License-File: LICENSE
11
+ Keywords: atac-seq,bioinformatics,chip-seq,claude,encode,epigenomics,genomics,mcp,rna-seq
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
21
+ Requires-Python: >=3.10
22
+ Requires-Dist: cryptography>=42.0
23
+ Requires-Dist: httpx>=0.27
24
+ Requires-Dist: keyring>=25.0
25
+ Requires-Dist: mcp[cli]>=1.0
26
+ Requires-Dist: pydantic>=2.0
27
+ Provides-Extra: dev
28
+ Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
29
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
30
+ Requires-Dist: pytest>=8.0; extra == 'dev'
31
+ Requires-Dist: ruff>=0.5.0; extra == 'dev'
32
+ Description-Content-Type: text/markdown
33
+
34
+ # ENCODE Toolkit — Genomics Research Infrastructure for Claude
35
+
36
+ <!-- mcp-name: io.github.ammawla/encode-toolkit -->
37
+
38
+ [![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-green.svg)](LICENSE)
39
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
40
+ [![Version](https://img.shields.io/badge/version-0.3.0-green)](CHANGELOG.md)
41
+ [![Status](https://img.shields.io/badge/status-beta-yellow)]()
42
+ [![Skills](https://img.shields.io/badge/skills-47-orange)](docs/skill-vignettes/)
43
+ [![Tools](https://img.shields.io/badge/MCP_tools-20-purple)](src/encode_connector/server/main.py)
44
+ [![Pipelines](https://img.shields.io/badge/pipelines-7-green)](skills/pipeline-chipseq/)
45
+ [![Databases](https://img.shields.io/badge/databases-14-teal)](docs/SHOWCASE.md)<br>
46
+ [![Tests](https://img.shields.io/badge/tests-568_passing-brightgreen)](tests/)
47
+ [![Coverage](https://img.shields.io/badge/coverage-98%25-brightgreen)](tests/)
48
+ [![Security](https://img.shields.io/badge/security-no_telemetry-blue)]()
49
+ [![Claude Code](https://img.shields.io/badge/Claude_Code-plugin-blueviolet)](https://claude.com/claude-code)
50
+ [![Provenance](https://img.shields.io/badge/provenance-full_audit_trail-green)]()
51
+ [![smithery badge](https://smithery.ai/badge/encode-toolkit)](https://smithery.ai/server/encode-toolkit) <br>
52
+ [![PyPI version](https://img.shields.io/pypi/v/encode-toolkit.svg?include_prereleases)](https://pypi.org/project/encode-toolkit/)
53
+ [![PyPI Downloads](https://img.shields.io/pypi/dw/encode-toolkit?style=flat&label=PyPI%20Downloads)](https://pypi.org/project/encode-toolkit/)
54
+ [![npm version](https://img.shields.io/npm/v/encode-toolkit.svg)](https://www.npmjs.com/package/encode-toolkit)
55
+ [![NPM Downloads](https://img.shields.io/npm/dw/encode-toolkit?style=flat&label=NPM%20Downloads)](https://www.npmjs.com/package/encode-toolkit)
56
+ [![GitHub Clones](https://img.shields.io/badge/dynamic/json?color=success&label=Clones&query=count&url=https://gist.githubusercontent.com/ammawla/8fdeb4cd92776739d329df9afd942b2e/raw/clone.json&logo=github)](https://github.com/ammawla/encode-toolkit)<br>
57
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.18917519.svg)](https://doi.org/10.5281/zenodo.18917511)
58
+
59
+ <a href="https://glama.ai/mcp/servers/ammawla/encode-toolkit">
60
+ <img width="380" height="200" src="https://glama.ai/mcp/servers/ammawla/encode-toolkit/badge" />
61
+ </a>
62
+
63
+ Search ENCODE, cross-reference 14 databases, run 7 analysis pipelines, and generate publication-ready methods — all from natural language in Claude Code.
64
+
65
+ > Start from ENCODE but go everywhere: discover histone peaks, cross-reference with GWAS variants, check ClinVar pathogenicity, pull GTEx expression, analyze TF binding motifs from JASPAR, run pipelines, and generate publication-ready methods with full provenance — in one conversation.
66
+
67
+ ---
68
+
69
+ ## Citation Notes
70
+
71
+ If you use **ENCODE-Toolkit**, please cite:
72
+
73
+ Alex M. Mawla. (2026). *ENCODE-Toolkit: an MCP server, Claude plugin, and skills suite for ENCODE genomic data access and analysis*. Zenodo. https://doi.org/10.5281/zenodo.18917511
74
+
75
+ ### BibTeX
76
+
77
+ ```bibtex
78
+ @software{mawla_2026_encode_toolkit,
79
+ author = {Mawla, Alex M.},
80
+ title = {ENCODE-Toolkit: an MCP server, Claude plugin, and skills suite for ENCODE genomic data access and analysis},
81
+ year = {2026},
82
+ publisher = {Zenodo},
83
+ doi = {10.5281/zenodo.18917511},
84
+ url = {https://doi.org/10.5281/zenodo.18917511}
85
+ }
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Quick Start
91
+
92
+ ### Claude Code Plugin (recommended)
93
+
94
+ Start a new Claude Code session and enter:
95
+
96
+ ```
97
+ /plugin marketplace add ammawla/encode-toolkit
98
+
99
+ /plugin install encode-toolkit
100
+ ```
101
+
102
+ That's it. All 20 tools, 47 skills, and the MCP connector are now available.
103
+
104
+ <details>
105
+ <summary><strong>MCP-only install (tools only, no skills)</strong></summary>
106
+
107
+ If you only need the 20 MCP tools without the 47 workflow skills:
108
+
109
+ ```bash
110
+ claude mcp add encode -- uvx encode-toolkit
111
+ ```
112
+
113
+ </details>
114
+
115
+ <details>
116
+ <summary><strong>Other editors and platforms</strong></summary>
117
+
118
+ #### npx (Node.js)
119
+
120
+ ```bash
121
+ npx encode-toolkit
122
+ ```
123
+
124
+ Or in MCP client config: `{ "command": "npx", "args": ["encode-toolkit"] }`
125
+
126
+ #### pip install
127
+
128
+ ```bash
129
+ pip install encode-toolkit
130
+ ```
131
+
132
+ Then use `encode-toolkit` as the command in any MCP client configuration:
133
+
134
+ ```json
135
+ {
136
+ "mcpServers": {
137
+ "encode": {
138
+ "command": "encode-toolkit"
139
+ }
140
+ }
141
+ }
142
+ ```
143
+
144
+ </details>
145
+
146
+ <details>
147
+ <summary><strong>Claude Desktop (MCP only)</strong></summary>
148
+
149
+ Add to your `claude_desktop_config.json`:
150
+
151
+ **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
152
+ **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
153
+
154
+ ```json
155
+ {
156
+ "mcpServers": {
157
+ "encode": {
158
+ "command": "uvx",
159
+ "args": ["encode-toolkit"]
160
+ }
161
+ }
162
+ }
163
+ ```
164
+
165
+ > No installation needed when using `uvx`. Just add the config and restart Claude.
166
+
167
+ </details>
168
+
169
+ <details>
170
+ <summary><strong>VS Code / Copilot</strong></summary>
171
+
172
+ Add to `.vscode/mcp.json` in your workspace:
173
+
174
+ ```json
175
+ {
176
+ "mcp": {
177
+ "servers": {
178
+ "encode": {
179
+ "command": "uvx",
180
+ "args": ["encode-toolkit"]
181
+ }
182
+ }
183
+ }
184
+ }
185
+ ```
186
+
187
+ </details>
188
+
189
+ <details>
190
+ <summary><strong>Cursor</strong></summary>
191
+
192
+ Add to `.cursor/mcp.json`:
193
+
194
+ ```json
195
+ {
196
+ "mcpServers": {
197
+ "encode": {
198
+ "command": "uvx",
199
+ "args": ["encode-toolkit"]
200
+ }
201
+ }
202
+ }
203
+ ```
204
+
205
+ </details>
206
+
207
+ <details>
208
+ <summary><strong>Windsurf</strong></summary>
209
+
210
+ Add to `.windsurf/mcp.json`:
211
+
212
+ ```json
213
+ {
214
+ "mcpServers": {
215
+ "encode": {
216
+ "command": "uvx",
217
+ "args": ["encode-toolkit"]
218
+ }
219
+ }
220
+ }
221
+ ```
222
+
223
+ </details>
224
+
225
+ ---
226
+
227
+ ## Connected Databases
228
+
229
+ ENCODE Toolkit integrates 14 databases through live API tools and guided skills.
230
+
231
+ | Database | Access Method | Use Case |
232
+ |----------|---------------|----------|
233
+ | **ENCODE** | 20 MCP tools (live API) | ChIP-seq, ATAC-seq, RNA-seq, Hi-C, WGBS, CUT&RUN data |
234
+ | **GTEx** | REST API (skill) | Tissue-specific gene expression across 54 tissues |
235
+ | **ClinVar** | E-utilities (skill) | Variant clinical significance and pathogenicity |
236
+ | **GWAS Catalog** | REST API (skill) | Trait-variant associations from genome-wide studies |
237
+ | **JASPAR** | REST API (skill) | Transcription factor binding motif profiles |
238
+ | **CellxGene** | Census API (skill) | Single-cell expression atlas across tissues |
239
+ | **gnomAD** | GraphQL (skill) | Population allele frequencies and gene constraint |
240
+ | **Ensembl** | REST API (skill) | VEP annotation, Regulatory Build, coordinate liftover |
241
+ | **UCSC Genome Browser** | REST API (skill) | cCRE tracks, TF clusters, sequence retrieval |
242
+ | **GEO** | E-utilities (skill) | Complementary expression/epigenomic datasets |
243
+ | **PubMed** | MCP server | Literature search and citation |
244
+ | **bioRxiv** | MCP server | Preprint discovery |
245
+ | **ClinicalTrials.gov** | MCP server | Clinical trial cross-reference |
246
+ | **Open Targets** | MCP server | Drug target identification |
247
+
248
+ ---
249
+
250
+ ## What You Can Ask Claude
251
+
252
+ ### Search and explore
253
+
254
+ - *"Find all histone ChIP-seq experiments for human pancreas tissue"*
255
+ - *"What ATAC-seq data is available for mouse brain?"*
256
+ - *"Search for RNA-seq on GM12878 cell line"*
257
+ - *"What histone marks have ChIP-seq data for pancreas?"*
258
+
259
+ ### Download and track
260
+
261
+ - *"Download all BED files from ENCSR133RZO to ~/data/encode"*
262
+ - *"Track experiment ENCSR133RZO with its publications"*
263
+ - *"Export citations for my tracked experiments as BibTeX"*
264
+
265
+ ### Cross-reference databases
266
+
267
+ - *"What GWAS variants overlap islet enhancers?"*
268
+ - *"Check ClinVar pathogenicity for rs7903146"*
269
+ - *"Pull GTEx expression for TCF7L2 across tissues"*
270
+ - *"Find JASPAR motifs for HNF4A binding sites"*
271
+
272
+ ### Run pipelines
273
+
274
+ - *"Set up a ChIP-seq pipeline for my H3K27ac experiments"*
275
+ - *"Run ATAC-seq analysis with ENCODE-standard QC thresholds"*
276
+
277
+ ### Generate methods and provenance
278
+
279
+ - *"Log that I created filtered_peaks.bed from ENCSR133RZO using bedtools"*
280
+ - *"Generate a methods section for my analysis with citations"*
281
+
282
+ <details>
283
+ <summary><strong>More example prompts</strong></summary>
284
+
285
+ #### Experiment details
286
+ - *"Show me the full details for experiment ENCSR133RZO"*
287
+ - *"What files are available for ENCSR133RZO?"*
288
+ - *"List only the BED files from ENCSR133RZO"*
289
+
290
+ #### Bulk downloads
291
+ - *"Download all FASTQs from human pancreas ChIP-seq to /data/fastqs"*
292
+ - *"Get the IDR thresholded peaks from these experiments"*
293
+ - *"Download the bigWig signal tracks for H3K27me3 in GRCh38"*
294
+
295
+ #### Compatibility analysis
296
+ - *"Are experiments ENCSR133RZO and ENCSR000AKS compatible for combined analysis?"*
297
+ - *"Compare these two ChIP-seq experiments"*
298
+
299
+ #### Provenance chains
300
+ - *"Show me the provenance chain for my derived files"*
301
+ - *"What files have I derived from ENCSR133RZO?"*
302
+
303
+ </details>
304
+
305
+ ---
306
+
307
+ ## The Problem
308
+
309
+ Using genomics databases today means:
310
+
311
+ 1. Navigate web portals, click through dozens of filters
312
+ 2. Manually find the right experiments and files across multiple databases
313
+ 3. Write custom scripts to batch download
314
+ 4. Lose track of which files came from where
315
+
316
+ **With ENCODE Toolkit**, just tell Claude what you need:
317
+
318
+ > "Find all histone ChIP-seq data for human pancreas tissue"
319
+
320
+ Claude searches ENCODE, returns a structured table of 66 experiments with targets, replicates, and file counts. Downloads are organized by experiment with MD5 verification and full provenance tracking.
321
+
322
+ ---
323
+
324
+ ## Available Tools (20)
325
+
326
+ Five core tools are shown below. The remaining 15 are collapsed for readability.
327
+
328
+ ### `encode_search_experiments`
329
+
330
+ Search ENCODE experiments with 20+ filters.
331
+
332
+ | Parameter | Type | Description |
333
+ |-----------|------|-------------|
334
+ | `assay_title` | string | Assay type: "Histone ChIP-seq", "ATAC-seq", "RNA-seq", "Hi-C", etc. |
335
+ | `organism` | string | Species (default: "Homo sapiens") |
336
+ | `organ` | string | Organ: "pancreas", "brain", "liver", "heart", "kidney", etc. |
337
+ | `biosample_type` | string | "tissue", "cell line", "primary cell", "organoid" |
338
+ | `target` | string | ChIP target: "H3K27me3", "H3K4me3", "CTCF", etc. |
339
+ | `biosample_term_name` | string | Specific biosample: "GM12878", "HepG2", etc. |
340
+ | `limit` | int | Max results (default: 25) |
341
+
342
+ ### `encode_get_experiment`
343
+
344
+ Get full details for a single experiment including all files, quality metrics, and audit info.
345
+
346
+ | Parameter | Type | Description |
347
+ |-----------|------|-------------|
348
+ | `accession` | string | Experiment ID (e.g., "ENCSR133RZO") |
349
+
350
+ ### `encode_download_files`
351
+
352
+ Download specific files by accession to a local directory.
353
+
354
+ | Parameter | Type | Description |
355
+ |-----------|------|-------------|
356
+ | `file_accessions` | list[str] | File IDs to download (e.g., ["ENCFF635JIA"]) |
357
+ | `download_dir` | string | Local path to save files |
358
+ | `organize_by` | string | "flat", "experiment", "format", "experiment_format" |
359
+ | `verify_md5` | bool | Verify file integrity (default: true) |
360
+
361
+ ### `encode_batch_download`
362
+
363
+ Search + download in one step. Runs in preview mode by default.
364
+
365
+ | Parameter | Type | Description |
366
+ |-----------|------|-------------|
367
+ | `download_dir` | string | Local path to save files |
368
+ | `file_format` | string | File format to download |
369
+ | `assay_title` | string | Assay type filter |
370
+ | `organ` | string | Organ filter |
371
+ | `dry_run` | bool | Preview only (default: true). Set false to download. |
372
+
373
+ ### `encode_track_experiment`
374
+
375
+ Track an experiment locally with its publications, methods, and pipeline info.
376
+
377
+ | Parameter | Type | Description |
378
+ |-----------|------|-------------|
379
+ | `accession` | string | Experiment ID to track |
380
+ | `fetch_publications` | bool | Fetch associated publications (default: true) |
381
+ | `fetch_pipelines` | bool | Fetch pipeline/analysis info (default: true) |
382
+ | `notes` | string | Optional notes to attach |
383
+
384
+ <details>
385
+ <summary><strong>Search and discovery tools (4)</strong></summary>
386
+
387
+ ### `encode_list_files`
388
+
389
+ List files for a specific experiment with format/type filters.
390
+
391
+ | Parameter | Type | Description |
392
+ |-----------|------|-------------|
393
+ | `experiment_accession` | string | Experiment ID |
394
+ | `file_format` | string | "fastq", "bam", "bed", "bigWig", "bigBed", etc. |
395
+ | `output_type` | string | "reads", "peaks", "signal", "alignments", etc. |
396
+ | `assembly` | string | "GRCh38", "mm10", etc. |
397
+ | `preferred_default` | bool | Only return recommended files |
398
+
399
+ ### `encode_search_files`
400
+
401
+ Search files across all experiments with combined experiment + file filters.
402
+
403
+ | Parameter | Type | Description |
404
+ |-----------|------|-------------|
405
+ | `file_format` | string | File format filter |
406
+ | `assay_title` | string | Assay type of parent experiment |
407
+ | `organ` | string | Organ of parent experiment |
408
+ | `target` | string | ChIP/CUT&RUN target |
409
+ | `output_type` | string | Output type filter |
410
+ | `assembly` | string | Genome assembly |
411
+
412
+ ### `encode_get_metadata`
413
+
414
+ List valid filter values for any parameter.
415
+
416
+ | Parameter | Type | Description |
417
+ |-----------|------|-------------|
418
+ | `metadata_type` | string | "assays", "organisms", "organs", "biosample_types", "file_formats", "output_types", "assemblies" |
419
+
420
+ ### `encode_get_facets`
421
+
422
+ Get live counts from ENCODE showing what data exists for given filters.
423
+
424
+ | Parameter | Type | Description |
425
+ |-----------|------|-------------|
426
+ | `assay_title` | string | Pre-filter by assay |
427
+ | `organism` | string | Pre-filter by organism |
428
+ | `organ` | string | Pre-filter by organ |
429
+
430
+ </details>
431
+
432
+ <details>
433
+ <summary><strong>File and credential tools (2)</strong></summary>
434
+
435
+ ### `encode_get_file_info`
436
+
437
+ Get detailed metadata for a single file.
438
+
439
+ | Parameter | Type | Description |
440
+ |-----------|------|-------------|
441
+ | `accession` | string | File ID (e.g., "ENCFF635JIA") |
442
+
443
+ ### `encode_manage_credentials`
444
+
445
+ Store, check, or clear ENCODE credentials for restricted data access.
446
+
447
+ | Parameter | Type | Description |
448
+ |-----------|------|-------------|
449
+ | `action` | string | "store", "check", or "clear" |
450
+ | `access_key` | string | ENCODE access key (for "store") |
451
+ | `secret_key` | string | ENCODE secret key (for "store") |
452
+
453
+ </details>
454
+
455
+ <details>
456
+ <summary><strong>Tracking and provenance tools (4)</strong></summary>
457
+
458
+ ### `encode_list_tracked`
459
+
460
+ List all experiments in your local tracker with metadata, publication counts, and derived file counts.
461
+
462
+ | Parameter | Type | Description |
463
+ |-----------|------|-------------|
464
+ | `assay_title` | string | Filter by assay type |
465
+ | `organism` | string | Filter by organism |
466
+ | `organ` | string | Filter by organ |
467
+
468
+ ### `encode_get_citations`
469
+
470
+ Get publications for tracked experiments. Export as BibTeX or RIS for reference managers.
471
+
472
+ | Parameter | Type | Description |
473
+ |-----------|------|-------------|
474
+ | `accession` | string | Specific experiment (or all if omitted) |
475
+ | `export_format` | string | "json" (default), "bibtex", or "ris" |
476
+
477
+ ### `encode_compare_experiments`
478
+
479
+ Analyze whether two experiments are compatible for combined analysis.
480
+
481
+ | Parameter | Type | Description |
482
+ |-----------|------|-------------|
483
+ | `accession1` | string | First experiment ID |
484
+ | `accession2` | string | Second experiment ID |
485
+
486
+ ### `encode_summarize_collection`
487
+
488
+ Get grouped statistics of your tracked experiment collection.
489
+
490
+ | Parameter | Type | Description |
491
+ |-----------|------|-------------|
492
+ | `assay_title` | string | Filter by assay type |
493
+ | `organism` | string | Filter by organism |
494
+ | `organ` | string | Filter by organ |
495
+
496
+ </details>
497
+
498
+ <details>
499
+ <summary><strong>Provenance and export tools (4)</strong></summary>
500
+
501
+ ### `encode_log_derived_file`
502
+
503
+ Log a file you created from ENCODE data for provenance tracking.
504
+
505
+ | Parameter | Type | Description |
506
+ |-----------|------|-------------|
507
+ | `file_path` | string | Path to your derived file |
508
+ | `source_accessions` | list[str] | ENCODE accessions this was derived from |
509
+ | `description` | string | What the file contains |
510
+ | `tool_used` | string | Tool/software used |
511
+ | `parameters` | string | Command or parameters used |
512
+
513
+ ### `encode_get_provenance`
514
+
515
+ View provenance chains from derived files back to source ENCODE data.
516
+
517
+ | Parameter | Type | Description |
518
+ |-----------|------|-------------|
519
+ | `file_path` | string | Get provenance for a specific file |
520
+ | `source_accession` | string | List all files derived from an accession |
521
+
522
+ ### `encode_export_data`
523
+
524
+ Export tracked experiments as a table (CSV, TSV, or JSON) for Excel, R, pandas.
525
+
526
+ | Parameter | Type | Description |
527
+ |-----------|------|-------------|
528
+ | `format` | string | "csv" (default), "tsv", or "json" |
529
+ | `assay_title` | string | Filter by assay type |
530
+
531
+ ### `encode_link_reference`
532
+
533
+ Link external references (PubMed, bioRxiv, ClinicalTrials, GEO) to tracked experiments.
534
+
535
+ | Parameter | Type | Description |
536
+ |-----------|------|-------------|
537
+ | `experiment_accession` | string | ENCODE experiment accession |
538
+ | `reference_type` | string | "pmid", "doi", "nct_id", "preprint_doi", "geo_accession", "other" |
539
+ | `reference_id` | string | The identifier value |
540
+
541
+ ### `encode_get_references`
542
+
543
+ Get external references linked to tracked experiments for cross-server workflows.
544
+
545
+ | Parameter | Type | Description |
546
+ |-----------|------|-------------|
547
+ | `experiment_accession` | string | Filter by experiment (optional) |
548
+ | `reference_type` | string | Filter by type (optional) |
549
+
550
+ </details>
551
+
552
+ ---
553
+
554
+ ## Authentication
555
+
556
+ **Most ENCODE data is public and requires no authentication.** Just install and use.
557
+
558
+ For restricted/unreleased data, ask Claude: *"Store my ENCODE credentials"*
559
+
560
+ Credentials are encrypted using your OS keyring (macOS Keychain, Linux Secret Service, Windows Credential Locker) and never stored in plaintext. Get your access keys from your [ENCODE profile](https://www.encodeproject.org/).
561
+
562
+ ---
563
+
564
+ ## Plugin Skills (47)
565
+
566
+ When installed as a Claude Code plugin, ENCODE Toolkit includes 47 literature-backed workflow skills that guide Claude through complex genomics tasks. Each analysis skill includes evidence-based quality thresholds, assay-specific metrics, and citations to primary literature.
567
+
568
+ ### Core Skills
569
+
570
+ | Skill | Description |
571
+ |-------|-------------|
572
+ | `setup` | Install and configure the ENCODE Toolkit server |
573
+ | `search-encode` | Search and explore ENCODE experiments and files |
574
+ | `download-encode` | Download files with organization and verification |
575
+ | `track-experiments` | Track experiments, citations, and provenance locally |
576
+ | `cross-reference` | Connect ENCODE data to PubMed, bioRxiv, ClinicalTrials.gov |
577
+
578
+ <details>
579
+ <summary><strong>Analysis skills (9)</strong></summary>
580
+
581
+ | Skill | Description |
582
+ |-------|-------------|
583
+ | `quality-assessment` | Evaluate experiment quality using ENCODE metrics — assay-specific thresholds for ChIP-seq (FRiP, NSC, RSC, NRF, IDR), ATAC-seq (TSS enrichment, NFR ratio), RNA-seq (mapping rate, gene body coverage), WGBS (bisulfite conversion, CpG coverage), Hi-C (cis/trans ratio), and CUT&RUN/CUT&Tag. Backed by Landt 2012, Buenrostro 2013, ENCODE Phase 3 (2020), Li 2011 |
584
+ | `integrative-analysis` | Combine multiple experiments with batch effect awareness — integration strategies (peak overlap, signal correlation, DiffBind, DESeq2, ChromHMM, ABC model). Backed by Ernst & Kellis 2012, Ross-Innes 2012, Love 2014, Fulco 2019 |
585
+ | `regulatory-elements` | Discover enhancers, promoters, insulators from combinatorial histone marks — ENCODE cCRE classification (926,535 elements), ChromHMM state interpretation. Backed by ENCODE Phase 3 (2020), Roadmap Epigenomics (2015), Whyte 2013 |
586
+ | `epigenome-profiling` | Build comprehensive chromatin state profiles — three-tiered histone panels, ChromHMM 15-state model, bivalent chromatin analysis. References the chromatin biology catalog |
587
+ | `compare-biosamples` | Compare experiments across tissues and cell types — biosample hierarchy, tissue-specific regulation, batch effect detection. Backed by Roadmap Epigenomics (2015), Leek 2010 |
588
+ | `visualization-workflow` | Generate publication-quality visualizations: genome browser tracks, heatmaps, and signal profiles |
589
+ | `motif-analysis` | Discover and analyze TF binding motifs in regulatory regions using HOMER, MEME, and JASPAR |
590
+ | `peak-annotation` | Annotate genomic peaks with features (promoter/enhancer/intergenic), nearest genes, and functional categories |
591
+ | `batch-analysis` | Batch processing and QC screening across multiple ENCODE experiments with systematic quality filtering |
592
+
593
+ </details>
594
+
595
+ <details>
596
+ <summary><strong>Functional genomics skills (1)</strong></summary>
597
+
598
+ | Skill | Description |
599
+ |-------|-------------|
600
+ | `functional-screen-analysis` | Analyze CRISPR screens, MPRA, and STARR-seq data from ENCODE — MAGeCK, BAGEL2, MPRAflow integration |
601
+
602
+ </details>
603
+
604
+ <details>
605
+ <summary><strong>Data aggregation skills (4)</strong></summary>
606
+
607
+ | Skill | Description |
608
+ |-------|-------------|
609
+ | `histone-aggregation` | Union merge of histone ChIP-seq peaks across studies — signalValue-based noise filtering, sample-of-origin tagging, ENCODE blacklist removal. Backed by ChIP-Atlas (Oki 2018), Amemiya 2019, Perna 2024 |
610
+ | `accessibility-aggregation` | Union merge of ATAC-seq and DNase-seq peaks — cross-platform integration, peak summit preservation. Backed by Corces 2017, Amemiya 2019, Zhao 2020 |
611
+ | `hic-aggregation` | Union catalog of Hi-C chromatin loops (BEDPE) — resolution-aware anchor matching, loop caller concordance tracking. Backed by Loop Catalog (Reyna 2025), Mustache (Roayaei Ardakany 2020) |
612
+ | `methylation-aggregation` | Aggregate WGBS methylation profiles — per-CpG weighted averaging, HMR/UMR/PMD identification. Backed by Schultz 2015, DMRcate (Peters 2021), Zhou 2020 |
613
+
614
+ </details>
615
+
616
+ <details>
617
+ <summary><strong>Multi-omics and meta-analysis skills (2)</strong></summary>
618
+
619
+ | Skill | Description |
620
+ |-------|-------------|
621
+ | `scrna-meta-analysis` | Cross-study meta-analysis of scRNA-seq data — reproducibility assessment, TIN-based quality filtering, ambient RNA quantification. Backed by Tran 2020, Luecken & Theis 2019, Stuart 2019, Korsunsky 2019 |
622
+ | `multi-omics-integration` | Integrate RNA-seq, ATAC-seq, Histone ChIP-seq, and TF ChIP-seq — ABC model regulatory predictions, signal correlation. Backed by Fulco 2019, Corces 2018, ENCODE Phase 3 (2020) |
623
+
624
+ </details>
625
+
626
+ <details>
627
+ <summary><strong>Workflow skills (7)</strong></summary>
628
+
629
+ | Skill | Description |
630
+ |-------|-------------|
631
+ | `data-provenance` | Full reproducibility tracking — tool versions, reference files, scripts, exact commands, timestamps, source-to-derived provenance chains |
632
+ | `cite-encode` | Generate proper citations, BibTeX/RIS export, data availability statements |
633
+ | `variant-annotation` | Annotate GWAS/disease variants with ENCODE functional data — variant-to-gene mapping via cCREs. Backed by Finucane 2015, Maurano 2012 |
634
+ | `pipeline-guide` | Understand ENCODE uniform analysis pipelines and output types — pipeline specifications, Nextflow integration |
635
+ | `single-cell-encode` | Work with scRNA-seq and scATAC-seq data — platform comparison, cross-study integration, WNN multimodal analysis. Backed by Hao 2021, Stuart 2019 |
636
+ | `disease-research` | Disease-focused workflows — GWAS variant interpretation, disease-tissue mapping, heritability enrichment, drug target identification via Open Targets. Backed by Buniello 2019, Finucane 2015 |
637
+ | `publication-trust` | Publication integrity assessment — 5-level trust scoring, retraction/erratum detection, citation analysis. Integrates with PubMed, bioRxiv, and Consensus |
638
+ | `bioinformatics-installer` | Install all bioinformatics tools for ENCODE analyses — 7 conda environment YAMLs, 3 install scripts, 134+ tools across ChIP-seq, ATAC-seq, RNA-seq, WGBS, Hi-C, DNase-seq, CUT&RUN |
639
+ | `scientific-writing` | Generate publication-ready methods sections, figure legends, supplementary tables, and data availability statements with full tool citations |
640
+ | `liftover-coordinates` | Convert genomic coordinates between assembly versions (hg19/hg38, mm9/mm10) using UCSC liftOver, CrossMap, Ensembl REST API, and rtracklayer |
641
+
642
+ </details>
643
+
644
+ <details>
645
+ <summary><strong>External database skills (9)</strong></summary>
646
+
647
+ | Skill | Description |
648
+ |-------|-------------|
649
+ | `gtex-expression` | Query GTEx tissue expression data via REST API for gene expression context across 54 tissues |
650
+ | `clinvar-annotation` | Annotate variants with ClinVar clinical significance, pathogenicity, and review status |
651
+ | `cellxgene-context` | Query CellxGene single-cell atlas for cell type expression context across tissues |
652
+ | `gwas-catalog` | Search NHGRI-EBI GWAS Catalog for trait associations, risk alleles, and study metadata |
653
+ | `jaspar-motifs` | Query JASPAR database for transcription factor binding motifs and matrix profiles |
654
+ | `ensembl-annotation` | Ensembl VEP variant annotation, Regulatory Build, coordinate liftover, gene lookup via REST API |
655
+ | `geo-connector` | Search NCBI GEO for complementary datasets, cross-reference with ENCODE, FTP downloads |
656
+ | `gnomad-variants` | gnomAD population allele frequencies, gene constraint (LOEUF/pLI), structural variants via GraphQL |
657
+ | `ucsc-browser` | UCSC Genome Browser REST API for cCRE tracks, TF binding clusters, and sequence retrieval |
658
+
659
+ </details>
660
+
661
+ <details>
662
+ <summary><strong>Pipeline execution skills (7)</strong></summary>
663
+
664
+ | Pipeline | Assay | Aligner | Caller |
665
+ |----------|-------|---------|--------|
666
+ | `pipeline-chipseq` | ChIP-seq | BWA-MEM | MACS2 + IDR |
667
+ | `pipeline-atacseq` | ATAC-seq | Bowtie2 | MACS2 (Tn5-adjusted) |
668
+ | `pipeline-rnaseq` | RNA-seq | STAR | RSEM + Kallisto |
669
+ | `pipeline-wgbs` | WGBS | Bismark | MethylDackel |
670
+ | `pipeline-hic` | Hi-C | BWA | Juicer + HiCCUPS |
671
+ | `pipeline-dnaseseq` | DNase-seq | BWA | Hotspot2 |
672
+ | `pipeline-cutandrun` | CUT&RUN | Bowtie2 | SEACR |
673
+
674
+ Each pipeline includes a SKILL.md overview, 5-stage reference files (preprocessing through QC), a complete Nextflow DSL2 pipeline, a Dockerfile, and deployment configurations for local, SLURM, GCP, and AWS.
675
+
676
+ </details>
677
+
678
+ <details>
679
+ <summary><strong>Reference files</strong></summary>
680
+
681
+ | File | Description |
682
+ |-------|-------------|
683
+ | `skills/histone-aggregation/references/histone-marks-reference.md` | Comprehensive chromatin biology catalog (1,442 lines) — 21 histone marks with writers/erasers/readers, 5 novel acylation marks, ChromHMM state models (5 to 51 states), TF co-binding patterns, chromatin remodeling complexes, DNA methylation-chromatin interplay, nucleosome dynamics, 3D genome organization, chromatin in disease. 74 primary references |
684
+ | `skills/*/references/literature.md` | 33 per-skill literature reference documents — ~250 papers cataloged with DOI, PMID, citation counts, and skill-relevant key findings |
685
+
686
+ </details>
687
+
688
+ ---
689
+
690
+ ## Why ENCODE Toolkit
691
+
692
+ Most genomics tools give you one thing. ENCODE Toolkit gives you the full research loop:
693
+
694
+ | Capability | ENCODE Toolkit | Typical MCP servers |
695
+ |------------|-----------|-------------------|
696
+ | Live database access | 20 tools across 14 databases | Single database, read-only |
697
+ | Executable pipelines | 7 Nextflow DSL2 pipelines with Docker and cloud configs | None |
698
+ | Provenance tracking | Full audit trail from source data to derived files | None |
699
+ | Publication output | BibTeX/RIS citations, auto-generated methods sections | None |
700
+ | Literature backing | 100+ primary references with assay-specific QC thresholds | None |
701
+ | Workflow skills | 47 guided skills covering search to publication | Static documentation |
702
+
703
+ ---
704
+
705
+ ## Supported Assay Types
706
+
707
+ <details>
708
+ <summary><strong>50+ assay types across 7 categories</strong></summary>
709
+
710
+ | Category | Assays |
711
+ |----------|--------|
712
+ | **Histone/Chromatin** | Histone ChIP-seq, TF ChIP-seq, ATAC-seq, DNase-seq, CUT&RUN, CUT&Tag, MNase-seq |
713
+ | **Transcription** | RNA-seq, total RNA-seq, small RNA-seq, long read RNA-seq, CAGE, RAMPAGE, PRO-seq, GRO-seq |
714
+ | **3D Genome** | Hi-C, intact Hi-C, Micro-C, ChIA-PET, HiChIP, PLAC-seq, 5C |
715
+ | **DNA Methylation** | WGBS, RRBS, MeDIP-seq, MRE-seq |
716
+ | **Functional** | STARR-seq, MPRA, CRISPR screen, eCLIP, iCLIP |
717
+ | **Single Cell** | scRNA-seq, snATAC-seq, 10x multiome, SHARE-seq, Parse SPLiT-seq |
718
+ | **Perturbation** | CRISPRi + RNA-seq, shRNA + RNA-seq, siRNA + RNA-seq |
719
+
720
+ **Supported file formats**: `fastq` `bam` `bed` `bigWig` `bigBed` `tsv` `csv` `hic` `tagAlign` `bedpe` `pairs` `fasta` `vcf` `tar`
721
+
722
+ </details>
723
+
724
+ ---
725
+
726
+ ## Security and Privacy
727
+
728
+ - **100% local execution** — no telemetry, no analytics, no tracking
729
+ - **Credentials encrypted at rest** via OS keyring with Fernet fallback
730
+ - **Certificate verification enforced** — no `verify=False`
731
+ - **Rate limited** to respect ENCODE's 10 req/sec policy
732
+ - **MD5 verification** on all downloads by default
733
+ - **No data leaves your machine** except queries to public APIs over HTTPS
734
+
735
+ ---
736
+
737
+ ## Vignettes
738
+
739
+ Step-by-step walkthroughs showing real Claude sessions, including actual API output and scientific interpretation.
740
+
741
+ | Vignette | Skills Demonstrated |
742
+ |----------|-------------------|
743
+ | [01 — Discovery & Search](docs/vignettes/01-discovery-and-search.md) | Facets, search, metadata, quality-aware selection |
744
+ | [02 — Download & Track](docs/vignettes/02-download-and-track.md) | File listing, download, tracking, citations, provenance |
745
+ | [03 — Epigenomics Workflow](docs/vignettes/03-epigenomics-workflow.md) | Histone marks, ATAC-seq, aggregation skills |
746
+ | [04 — Variant & Disease Research](docs/vignettes/04-variant-and-disease.md) | GWAS catalog, ClinVar, GTEx, JASPAR, gnomAD |
747
+ | [05 — Expression & Single-Cell](docs/vignettes/05-expression-and-single-cell.md) | RNA-seq, scRNA-seq, GTEx, CellxGene, meta-analysis |
748
+ | [06 — Motif & Regulatory Analysis](docs/vignettes/06-motif-and-regulatory.md) | TF ChIP-seq, chromatin states, HOMER/MEME |
749
+ | [07 — 3D Genome & Methylation](docs/vignettes/07-3d-genome-and-methylation.md) | Hi-C loops, WGBS methylation, integrative analysis |
750
+ | [08 — Pipeline Execution](docs/vignettes/08-pipeline-execution.md) | ChIP-seq/ATAC-seq/RNA-seq pipelines, Nextflow |
751
+ | [09 — Cross-Reference & Integration](docs/vignettes/09-cross-reference-and-integration.md) | GEO, PubMed, Ensembl, UCSC, multi-omics |
752
+
753
+ <details>
754
+ <summary><strong>Individual skill vignettes</strong></summary>
755
+
756
+ Every skill has a dedicated vignette in [`docs/skill-vignettes/`](docs/skill-vignettes/) with a complete example session. Highlights:
757
+
758
+ | Skill | Vignette Scenario |
759
+ |-------|------------------|
760
+ | [data-provenance](docs/skill-vignettes/data-provenance.md) | Download, blacklist-filter, liftover, auto-generate methods section |
761
+ | [histone-aggregation](docs/skill-vignettes/histone-aggregation.md) | Union merge of H3K27ac across 5 pancreas experiments |
762
+ | [variant-annotation](docs/skill-vignettes/variant-annotation.md) | rs7903146 in TCF7L2 with islet enhancer evidence scoring |
763
+ | [pipeline-chipseq](docs/skill-vignettes/pipeline-chipseq.md) | Full Nextflow pipeline execution with ENCODE QC thresholds |
764
+ | [gwas-catalog](docs/skill-vignettes/gwas-catalog.md) | T2D GWAS variants overlaid on islet H3K27ac enhancers |
765
+ | [publication-trust](docs/skill-vignettes/publication-trust.md) | Trust assessment of artemisinin transdifferentiation claim |
766
+ | [scrna-meta-analysis](docs/skill-vignettes/scrna-meta-analysis.md) | 3-study islet integration following Mawla et al. 2019 framework |
767
+
768
+ See the [full showcase](docs/SHOWCASE.md) for 15 detailed examples.
769
+
770
+ </details>
771
+
772
+ ---
773
+
774
+ ## Development
775
+
776
+ ```bash
777
+ git clone https://github.com/ammawla/encode-toolkit.git
778
+ cd encode-toolkit
779
+ python -m venv .venv
780
+ source .venv/bin/activate
781
+ pip install -e ".[dev]"
782
+ ```
783
+
784
+ Run the server locally:
785
+
786
+ ```bash
787
+ encode-toolkit
788
+ ```
789
+
790
+ Run tests:
791
+
792
+ ```bash
793
+ pytest
794
+ ```
795
+
796
+ ---
797
+
798
+ ## Troubleshooting
799
+
800
+ <details>
801
+ <summary><strong>"Server not found" in Claude Desktop</strong></summary>
802
+
803
+ - Make sure you restarted Claude Desktop after adding the config
804
+ - Verify `uvx` is installed: `pip install uv` or `curl -LsSf https://astral.sh/uv/install.sh | sh`
805
+
806
+ </details>
807
+
808
+ <details>
809
+ <summary><strong>"Connection refused" or timeout errors</strong></summary>
810
+
811
+ - Check your internet connection
812
+ - ENCODE API rate limit is 10 requests/sec — the server handles this automatically
813
+
814
+ </details>
815
+
816
+ <details>
817
+ <summary><strong>Downloads fail with 403</strong></summary>
818
+
819
+ - The file may require authentication. Ask Claude: *"Store my ENCODE credentials"*
820
+ - Or check if the file status is "released" on encodeproject.org
821
+
822
+ </details>
823
+
824
+ <details>
825
+ <summary><strong>No results for a search</strong></summary>
826
+
827
+ - Try broader filters (remove biosample_type or organ)
828
+ - Use `encode_get_facets` to see what data actually exists for your filters
829
+ - Use `encode_get_metadata` to check valid filter values
830
+
831
+ </details>
832
+
833
+ ---
834
+
835
+ ## Author
836
+
837
+ **Dr. Alex M. Mawla, PhD**
838
+
839
+ ## License
840
+
841
+ AGPL-3.0. See [LICENSE](LICENSE) for full terms.
842
+
843
+ For commercial licensing inquiries: ammawla@ucdavis.edu