search-encode
Search and explore ENCODE Project genomics data. Use when the user wants to find experiments, files, or explore what data is available for specific assays, organs, cell lines, or targets.
Install
npx skills add https://github.com/ammawla/encode-toolkit/tree/main/plugin/skills/search-encode
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install ammawla-encode-toolkit@llmmart
git clone https://github.com/ammawla/encode-toolkit.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole ammawla/encode-toolkit collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Search ENCODE Data
When to Use
- User wants to find ENCODE experiments matching specific criteria (assay, organ, cell type, target)
- User asks "what ENCODE data exists for [tissue/target/assay]?"
- User wants to explore available data before downloading
- User needs to find specific file types (BED, BAM, bigWig) across experiments
- User wants to know how many experiments exist for a condition
- User asks about available assays, organisms, or biosamples in ENCODE
Help the user find ENCODE experiments and files. Use the appropriate tools based on what they need.
Search Strategy
Finding experiments: Use
encode_search_experimentswith filters:assay_title: "Histone ChIP-seq", "ATAC-seq", "total RNA-seq", "polyA plus RNA-seq", "TF ChIP-seq", "Hi-C", "CUT&RUN", "WGBS", etc.organ: "pancreas", "brain", "liver", "heart", "kidney", "lung", etc.biosample_type: "tissue", "cell line", "primary cell", "organoid"biosample_term_name: specific name like "GM12878", "HepG2", "K562"target: ChIP/CUT&RUN target like "H3K27me3", "H3K4me3", "CTCF", "p300"organism: "Homo sapiens" (default) or "Mus musculus"
Finding files across experiments: Use
encode_search_fileswhen the user wants specific file types from multiple experiments.Exploring available data: Use
encode_get_facetsto see counts of what exists before searching. Useencode_get_metadatato list valid filter values.Getting experiment details: Use
encode_get_experimentfor full metadata on a single experiment. Useencode_list_filesto see all files for one experiment.
Search Strategy Guide
Effective ENCODE searching follows a three-phase pattern: explore, search, refine. Jumping straight to a filtered search often produces empty results or misses relevant data.
Phase 1: Explore with Facets
Always start with encode_get_facets to understand what data exists. Facets return counts per filter value, so you can see immediately whether your target organ, assay, or biosample has data.
encode_get_facets(organ="pancreas")
-> Shows: Histone ChIP-seq (42), ATAC-seq (8), RNA-seq (15), TF ChIP-seq (6), ...
-> Also shows: biosample types, life stages, labs, replication types
This avoids the frustrating pattern of searching for data that does not exist. Facets may also reveal data you did not expect -- for example, CUT&RUN data where you only anticipated ChIP-seq, or organoid samples alongside tissue.
Phase 2: Validate Filter Values
Before searching, confirm that your filter values match ENCODE's controlled vocabulary. A mistyped assay name returns zero results with no error.
encode_get_metadata(metadata_type="assays")
-> Returns all valid assay_title values: "Histone ChIP-seq", "TF ChIP-seq", "ATAC-seq", ...
Available metadata types: assays, organisms, organs, biosample_types, file_formats, output_types, output_categories, assemblies, life_stages, replication_types, statuses, file_statuses.
Phase 3: Search and Refine
Start with broad filters and add constraints one at a time. If a search returns too many results (>100), add a filter. If it returns zero, remove the most restrictive filter first.
# Too broad: 2,400 results
encode_search_experiments(assay_title="Histone ChIP-seq")
# Add organ: 42 results
encode_search_experiments(assay_title="Histone ChIP-seq", organ="pancreas")
# Add target: 6 results
encode_search_experiments(assay_title="Histone ChIP-seq", organ="pancreas", target="H3K27ac")
Pitfalls & Edge Cases
- Wrong assay_title values: Assay names must match ENCODE's controlled vocabulary exactly. Run
encode_get_metadata(metadata_type="assays")first to discover valid values. For example, use "Histone ChIP-seq" not "ChIP-seq" or "H3K27ac ChIP". - Confusing biosample_term_name vs organ:
organis a broad anatomical system (e.g., "pancreas", "brain").biosample_term_nameis a specific cell or tissue name (e.g., "GM12878", "islet of Langerhans"). Useorganfor tissue-level exploration,biosample_term_namewhen you know the exact biosample. - Not exploring first: Always call
encode_get_facetsbefore searching to see what data exists. This avoids empty results and reveals unexpected data availability. For example, facets may show CUT&RUN data exists for your organ when you only expected ChIP-seq. - Mixing organisms: Human and mouse experiments use different assemblies (GRCh38 vs mm10) and cannot be directly compared. Always filter by
organismto avoid mixing species in results. - Expecting file-level results from experiment search:
encode_search_experimentsreturns experiments, not individual files. If the user wants specific BED or bigWig files, useencode_search_filesinstead withfile_formatandoutput_typefilters. - Searching for deprecated data: The default
status="released"is correct for most use cases. Archived or revoked experiments may have known quality issues. Only change status if the user explicitly needs historical data.
Gotchas
organ vs biosample_term_name vs biosample_type
These three filters address different levels of the biosample hierarchy. Using the wrong one produces unexpected results.
| Filter | What it means | Example values | When to use |
|---|---|---|---|
organ |
Broad anatomical system | "pancreas", "brain", "heart", "liver" | Exploring all data for an organ system |
biosample_term_name |
Exact biosample name | "GM12878", "K562", "islet of Langerhans", "HepG2" | You know the exact cell type or tissue name |
biosample_type |
Category of biosample | "tissue", "cell line", "primary cell", "organoid", "in vitro differentiated cells" | Filtering by how the sample was obtained |
Common mistake: using biosample_term_name="pancreas" when you mean organ="pancreas". The term name "pancreas" matches whole-pancreas tissue samples only, missing islets, acinar cells, and other pancreatic substructures that are classified under the pancreas organ.
assay_title Must Match Exactly
ENCODE uses a controlled vocabulary for assay names. Common mistakes:
| Wrong | Correct |
|---|---|
| "ChIP-seq" | "Histone ChIP-seq" or "TF ChIP-seq" |
| "H3K27ac ChIP" | "Histone ChIP-seq" (with target="H3K27ac") |
| "ATAC" | "ATAC-seq" |
| "DNase" | "DNase-seq" |
| "Bisulfite-seq" | "WGBS" |
| "scRNA-seq" | "scRNA-seq" |
| "scATAC-seq" | "snATAC-seq" |
Always run encode_get_metadata(metadata_type="assays") to see valid values.
target Names Are Case-Sensitive
Histone mark targets use a specific capitalization pattern. Common mistakes:
| Wrong | Correct |
|---|---|
| "h3k27ac" | "H3K27ac" |
| "H3K27AC" | "H3K27ac" |
| "H3K4Me3" | "H3K4me3" |
| "ctcf" | "CTCF" |
Pattern: H3K where the modification is lowercase ("me3", "ac", "me1"). Transcription factor targets use all-uppercase names ("CTCF", "POLR2A", "EP300").
Experiment Status Meanings
| Status | Meaning | When to use |
|---|---|---|
released |
Passed ENCODE quality standards. Default and recommended. | Nearly all searches |
archived |
Superseded by newer experiment or has known limitations. Data still accessible but not recommended. | Historical analysis, reproducing old studies |
revoked |
Serious quality problems identified post-release. Should not be used for new analysis. | Only if investigating specific quality issues |
Common Filter Combinations
Ready-to-use filter combinations for common research questions:
| Research Question | Tool + Filters |
|---|---|
| All human heart data | encode_search_experiments(organ="heart") |
| Active enhancers in a tissue | encode_search_experiments(assay_title="Histone ChIP-seq", target="H3K27ac", organ="liver") |
| Active promoters in a tissue | encode_search_experiments(assay_title="Histone ChIP-seq", target="H3K4me3", organ="liver") |
| Repressed chromatin | encode_search_experiments(assay_title="Histone ChIP-seq", target="H3K27me3", organ="brain") |
| Open chromatin atlas | Run two searches: assay_title="ATAC-seq" and assay_title="DNase-seq" for the same organ |
| TF binding for a specific factor | encode_search_experiments(assay_title="TF ChIP-seq", target="CTCF", organ="liver") |
| Cell line data | encode_search_experiments(biosample_type="cell line", organ="blood") |
| Tier 1 cell line (most data) | encode_search_experiments(biosample_term_name="K562") or "GM12878" or "H1-hESC" |
| Mouse developmental data | encode_search_experiments(organism="Mus musculus", life_stage="embryonic", organ="brain") |
| Recent high-quality data | encode_search_experiments(status="released", date_released_from="2023-01-01") |
| Perturbation experiments | encode_search_experiments(perturbed=True, organ="liver") |
| CRISPR screen data | encode_search_experiments(assay_title="CRISPR screen") |
| 3D genome structure | encode_search_experiments(assay_title="Hi-C", organ="brain") |
| DNA methylation | encode_search_experiments(assay_title="WGBS", organ="pancreas") |
| Specific BED peak files | encode_search_files(file_format="bed", output_type="IDR thresholded peaks", assembly="GRCh38") |
| Signal tracks for visualization | encode_search_files(file_format="bigWig", output_type="fold change over control", organ="heart") |
| ENCODE-recommended files | encode_search_files(preferred_default=True, assay_title="Histone ChIP-seq", organ="pancreas") |
Walkthrough: Finding Histone ChIP-seq for a Tissue
Goal: Find all H3K27ac ChIP-seq experiments in human pancreas with high-quality, analysis-ready peak files.
Step 1: Check Available Data with Facets
encode_get_facets(organ="pancreas")
Review the output to see which assay types have data, how many experiments exist, which biosample types are represented (tissue vs cell line vs primary cell), and which labs contributed data. This tells you whether your search is feasible before committing to specific filters.
Step 2: Search Experiments with Assay + Organ Filters
encode_search_experiments(
assay_title="Histone ChIP-seq",
organ="pancreas",
target="H3K27ac",
limit=50
)
Review the results table. Note the accessions, biosample names, labs, and replication types. If too many results, narrow by biosample_type="tissue" to exclude cell lines, or by life_stage="adult" to exclude embryonic samples.
Step 3: Filter by Status and Assembly
The default status="released" is already applied. For files, you also want to specify the genome assembly to avoid mixing coordinate systems:
encode_list_files(
experiment_accession="ENCSR...",
assembly="GRCh38",
file_format="bed"
)
This returns only GRCh38-aligned BED files, filtering out legacy hg19 files and raw FASTQs.
Step 4: Check Quality with Audit Information
encode_get_experiment(accession="ENCSR...")
The full experiment record includes one count per audit severity (there is no nested audit object). Review them in priority order:
- audit_error_count: Serious problems. Do not use this experiment without investigating.
- audit_not_compliant_count: Failed an ENCODE standard. Check what standard was missed.
- audit_warning_count: Minor issues. Usually acceptable but worth noting.
- audit_internal_action_count: Portal bookkeeping. Safe to ignore.
The counts do not carry the audit messages themselves — open the experiment on encodeproject.org to read those.
For ChIP-seq, also check: FRiP (fraction of reads in peaks) should be at least 1%, NSC (normalized strand coefficient) should exceed 1.05, and the experiment should have 2+ biological replicates.
Step 5: List Preferred Default Files
encode_list_files(
experiment_accession="ENCSR...",
preferred_default=True
)
ENCODE curators mark recommended files as preferred_default=True. These are the best files for each output type. For Histone ChIP-seq, this typically includes:
- IDR thresholded peaks (BED narrowPeak) -- use for enhancer/promoter identification
- Fold change over control (bigWig) -- use for signal visualization in genome browsers
- Signal p-value (bigWig) -- use for statistical thresholding
If preferred_default returns no results, fall back to filtering manually:
encode_list_files(
experiment_accession="ENCSR...",
output_type="IDR thresholded peaks",
assembly="GRCh38"
)
Walkthrough: Cross-Assay Data Collection
Goal: Collect matched Histone ChIP-seq, ATAC-seq, and RNA-seq data for the same tissue to build a multi-omic regulatory map.
Strategy
ENCODE does not provide a single query that retrieves matched experiments across assay types. Instead, search each assay type separately and match experiments by biosample. The key matching fields are organ, biosample_term_name, and biosample_type.
Step 1: Survey All Available Assays for Your Tissue
encode_get_facets(organ="liver")
Review the assay counts. Confirm that all three assay types (Histone ChIP-seq, ATAC-seq, RNA-seq) have data for liver. Note which biosample types are represented -- you will need to match on the same biosample type across assays.
Step 2: Search Each Assay Type Separately
encode_search_experiments(assay_title="Histone ChIP-seq", organ="liver", biosample_type="tissue", limit=100)
encode_search_experiments(assay_title="ATAC-seq", organ="liver", biosample_type="tissue", limit=100)
encode_search_experiments(assay_title="total RNA-seq", organ="liver", biosample_type="tissue", limit=100)
Step 3: Match by Biosample
From each result set, extract the biosample_summary and biosample_type values (biosample_term_name is a search filter, not a field of the results). Look for overlap: which specific biosamples appear in all three result sets? For example, "liver" tissue may appear in all three, but "hepatocyte" primary cells may only have ChIP-seq and RNA-seq.
Present the coverage as a matrix:
| Biosample | Histone ChIP-seq | ATAC-seq | RNA-seq |
|---|---|---|---|
| liver (tissue) | 12 experiments | 4 experiments | 8 experiments |
| hepatocyte (primary cell) | 3 experiments | 0 | 2 experiments |
| HepG2 (cell line) | 18 experiments | 6 experiments | 10 experiments |
Step 4: Verify Coverage with Facets
For the matched biosample, use facets to confirm what histone marks and targets are available:
encode_get_facets(assay_title="Histone ChIP-seq", organ="liver")
This shows which targets (H3K27ac, H3K4me3, H3K27me3, etc.) are available. A minimal epigenomic profile requires at least H3K27ac (active enhancers) and H3K4me3 (active promoters). A comprehensive profile adds H3K27me3 (repression), H3K36me3 (gene bodies), and H3K4me1 (poised enhancers).
Step 5: Collect Files for Matched Experiments
Once you identify matching experiments, use encode_list_files with preferred_default=True for each experiment to get the recommended analysis-ready files. Ensure all files use the same assembly (GRCh38 for human).
Pagination
Search tools return paginated results. The response includes fields for navigating large result sets.
Response Fields
| Field | Type | Meaning |
|---|---|---|
total |
integer | Total number of matching results across all pages |
has_more |
boolean | True if more results exist beyond the current page |
next_offset |
integer or null | The offset value to pass for the next page, null if no more pages |
Paging Through Results
# Page 1: first 25 results
encode_search_experiments(assay_title="Histone ChIP-seq", limit=25, offset=0)
-> total: 142, has_more: true, next_offset: 25
# Page 2: results 26-50
encode_search_experiments(assay_title="Histone ChIP-seq", limit=25, offset=25)
-> total: 142, has_more: true, next_offset: 50
# ... continue until has_more is false
Choosing a Limit
limit=25(default): Good for initial exploration and presenting results to the user.limit=50: Good for moderate result sets where you need a broader view.limit=100: Use for comprehensive searches or when collecting all data for an analysis. This is the maximum recommended for a single call.
For very large result sets (>100), page through with offset rather than setting an extremely high limit. This keeps response times fast and avoids overwhelming the user with too many results at once.
Search Tips
- Start broad, then narrow: Begin with
encode_get_facetsto understand the data landscape, then add filters incrementally. - Use metadata discovery: Call
encode_get_metadata(metadata_type="assays")to see all valid assay names before searching. Same for "organs", "biosample_types", "output_types". - Pagination: Default
limit=25. Uselimit=100for comprehensive searches. Check thetotalcount in results. Useoffsetto page through large result sets. - Free text search: Use
search_termparameter for keyword search across all fields when structured filters are insufficient (e.g.,search_term="CRISPR screen pancreatic"). - Tier 1 cell lines: K562, GM12878, and H1-hESC have the most data across all assay types. Use these as starting points for exploratory analysis.
- Life stage matters: Filter by
life_stage("adult", "embryonic", "child") when comparing developmental stages. This is especially important for tissue samples. - Date filtering: Use
date_released_fromanddate_released_to(YYYY-MM-DD format) to find recently released experiments or to scope searches to a specific time window. - Perturbation experiments: Set
perturbed=Trueto find only experiments with genetic modifications or treatments. Combine withgenetic_modification="CRISPR"ortreatmentto narrow further. - Lab filtering: If you know which lab produced the data you need, use
labto restrict results. This is useful for finding data from specific ENCODE production centers.
Code Examples
1. Discover, Search, Filter: "Find all H3K27ac ChIP-seq in human pancreas tissue"
Step 1: Explore what's available
encode_get_facets(organ="pancreas")
-> Shows assay types and counts available for pancreas
-> Example output: Histone ChIP-seq (42), ATAC-seq (8), RNA-seq (15)
Step 2: Search experiments
encode_search_experiments(
assay_title="Histone ChIP-seq",
organ="pancreas",
target="H3K27ac",
limit=50
)
-> Returns matching experiments with accession, biosample, lab, status
Step 3: Get files for a specific experiment
encode_list_files(
experiment_accession="ENCSR...",
file_format="bed",
output_type="IDR thresholded peaks",
assembly="GRCh38"
)
-> Returns peak files ready for analysis
Step 4: Or get the recommended default files directly
encode_list_files(
experiment_accession="ENCSR...",
preferred_default=True
)
-> Returns ENCODE's recommended files for this experiment
2. Multi-assay comparison: "Compare available ATAC-seq vs DNase-seq for liver"
Step 1: Check ATAC-seq availability
encode_get_facets(assay_title="ATAC-seq", organ="liver")
-> Shows biosample types, counts, life stages, and labs
Step 2: Check DNase-seq availability
encode_get_facets(assay_title="DNase-seq", organ="liver")
-> Compare counts and biosample coverage against ATAC-seq
Step 3: Search both assays
encode_search_experiments(assay_title="ATAC-seq", organ="liver", limit=50)
encode_search_experiments(assay_title="DNase-seq", organ="liver", limit=50)
-> Present side-by-side comparison of experiment counts, biosamples, labs
Step 4: Present comparison summary
-> "ATAC-seq: 12 experiments across 4 biosample types (3 labs)"
-> "DNase-seq: 28 experiments across 7 biosample types (5 labs)"
-> "DNase-seq has broader biosample coverage; ATAC-seq experiments are more recent"
3. Time-based discovery: "Find recently released CRISPR screen experiments"
Step 1: Validate the assay name
encode_get_metadata(metadata_type="assays")
-> Confirms "CRISPR screen" is a valid assay_title
Step 2: Search with date filter
encode_search_experiments(
assay_title="CRISPR screen",
date_released_from="2024-01-01",
limit=25
)
-> Returns recent CRISPR screen experiments
Step 3: Explore details for a specific experiment
encode_get_experiment(accession="ENCSR...")
-> Full metadata: assay, biosample, replicate counts, file list, audit counts
Step 4: Check audit status for quality
-> Look at audit_error_count, audit_not_compliant_count, audit_warning_count
-> Experiments with audit_error_count > 0 should be flagged to the user
4. File-level search: "Find all IDR thresholded peak BED files for human brain ChIP-seq"
Step 1: Search files directly across experiments
encode_search_files(
file_format="bed",
output_type="IDR thresholded peaks",
assay_title="Histone ChIP-seq",
organ="brain",
assembly="GRCh38",
limit=100
)
-> Returns BED files with accessions, experiment links, sizes, and download URLs
Step 2: Filter to recommended files only
encode_search_files(
preferred_default=True,
assay_title="Histone ChIP-seq",
organ="brain",
assembly="GRCh38",
limit=100
)
-> Returns only ENCODE-curated recommended files
Integration
| This skill produces... | Feed into... | Purpose |
|---|---|---|
| Experiment accessions | download-encode | Download files for found experiments |
| Search results | track-experiments | Track discovered experiments |
| Experiment lists | batch-analysis | Process multiple experiments together |
| Filtered experiments | quality-assessment | Evaluate quality of search results |
| Experiment metadata | compare-biosamples | Compare experiments across biosamples |
| Assay-specific results | pipeline-guide | Route to correct processing pipeline |
| Target-specific experiments | histone-aggregation | Collect experiments for aggregation |
| Facet data | epigenome-profiling | Survey available data for profiling |
Presenting Results
When presenting search results to the user:
- Show results in a clear table format with columns: accession | assay | biosample | target | lab | status
- Always show the total count and note if results are paginated (e.g., "Showing 25 of 142 experiments")
- Suggest narrowing filters if too many results (>100)
- Suggest broadening filters if no results returned
- Suggest next steps: "Would you like to see files for any of these experiments?" or "Would you like to track any of these experiments?"
- When results span multiple labs or biosample types, summarize the distribution
Key Literature
- ENCODE Phase 3: ENCODE Project Consortium 2020 (Nature, ~2,000 citations) DOI: 10.1038/s41586-020-2493-4 -- Defines the catalog of functional genomic elements that this search covers.
- ENCODE Portal: Hitz et al. 2023 (Nucleic Acids Research) DOI: 10.1093/nar/gkac1067 -- Documents the portal, search API, and data access patterns used by this skill.
Related Skills
| Skill | When to Use Instead/Additionally |
|---|---|
download-encode |
Downloading files after finding experiments |
track-experiments |
Saving found experiments to local collection |
quality-assessment |
Evaluating experiment quality before use |
compare-biosamples |
Comparing data across tissues, cell lines, or conditions |
cross-reference |
Linking experiments to PubMed, DOI, GEO, NCT IDs |
epigenome-profiling |
Building comprehensive tissue profiles from search results |
publication-trust |
Evaluating the provenance and trustworthiness of linked publications |
For the request: "$ARGUMENTS"
Files (encode-toolkit)
-
references
-
literature.md 11.5 KB
# Search ENCODE — Literature References **Last updated:** 2026-03-07 **Purpose:** Reference catalog for the search-encode skill — key papers defining the ENCODE Project, its data portal, and the candidate cis-regulatory element (cCRE) registry that underpins experiment search and discovery. The search-encode skill enables users to find ENCODE experiments by assay type, organ, biosample, target, and organism. Understanding the project's evolution from pilot (2004) through comprehensive catalogs (2012, 2020) and the architecture of the ENCODE portal is essential for effective data discovery. These papers define the controlled vocabularies, metadata schemas, and cCRE classifications that search queries rely on. The 8 papers below are organized into three thematic groups: (1) the ENCODE Project's foundational publications that define what data exists and how it is organized, (2) the data portal papers that describe the technical infrastructure for programmatic search, and (3) the cCRE registry papers that define the element-centric classification system used for filtering and categorizing results. --- ## ENCODE Project Foundation The ENCODE Project has published three major consortium papers (2004, 2012, 2020) corresponding to its three phases. Each phase expanded the scope of assay types, biosamples, and analytical frameworks. Understanding which phase generated the data you are searching for is important because metadata standards, quality thresholds, and file naming conventions evolved across phases. Phase 1 (pilot) data used older assay protocols and may lack quality audit flags. Phase 2 data covers 147 cell types with mature ChIP-seq and DNase-seq protocols. Phase 3 data includes the newest assay types (CUT&RUN, CRISPR screens, single-cell methods) and the cCRE registry. --- ### ENCODE Project Consortium 2004 — Launch of the Encyclopedia of DNA Elements - **Citation:** The ENCODE Project Consortium. The ENCODE (ENCyclopedia Of DNA Elements) Project. *Science*, 306(5696), 636-640, 2004. - **DOI:** [10.1126/science.1105136](https://doi.org/10.1126/science.1105136) - **PMID:** 15499007 | **PMC:** PMC3232742 - **Citations:** ~2,200 - **Key findings:** Announced the ENCODE Project, defining its mission to identify all functional elements in the human genome. The pilot phase targeted 1% of the genome (30 Mb across 44 regions) using multiple approaches including ChIP-chip, DNase-seq, and RNA profiling. Established the project's organizational framework, data-sharing principles, and the consortium model that would scale to genome-wide coverage. For search purposes, this paper defines the foundational vocabulary of "functional elements" that ENCODE catalogs: promoters, enhancers, silencers, insulators, and non-coding RNA genes. The open data-sharing model established here — immediate public release with no embargo — directly enables the API access that search-encode relies on. --- ### ENCODE Project Consortium 2012 — Comprehensive encyclopedia across 147 cell types - **Citation:** The ENCODE Project Consortium. An integrated encyclopedia of DNA elements in the human genome. *Nature*, 489(7414), 57-74, 2012. - **DOI:** [10.1038/nature11247](https://doi.org/10.1038/nature11247) - **PMID:** 22955616 | **PMC:** PMC3439153 - **Citations:** ~8,000 - **Key findings:** The integrative analysis paper from ENCODE Phase 2, reporting 1,640 datasets across 147 cell types. Demonstrated that 80.4% of the human genome participates in at least one biochemical event, redefining genome functionality. Established the chromatin state model using histone modification combinations, defined cell-type-specific regulatory landscapes, and provided the first comprehensive catalog of distal elements. This paper defines the core assay categories (ChIP-seq, DNase-seq, RNA-seq, FAIRE-seq) and biosample hierarchy used for search filtering. The 147 cell types profiled established the biosample ontology — including the Tier 1 (K562, GM12878, H1-hESC), Tier 2, and Tier 3 classification — that remains the organizational backbone for ENCODE data browsing. Phase 2 data constitutes the largest block of ENCODE experiments and is the most common target of search queries. --- ### ENCODE Project Consortium 2020 — Phase 3 with expanded biosamples and assays - **Citation:** The ENCODE Project Consortium, Moore JE, Purcaro MJ, Pratt HE, et al. Expanded encyclopaedias of DNA elements in the human and mouse genomes. *Nature*, 583(7818), 699-710, 2020. - **DOI:** [10.1038/s41586-020-2493-4](https://doi.org/10.1038/s41586-020-2493-4) - **PMID:** 32728249 | **PMC:** PMC7410828 - **Citations:** ~1,200 - **Key findings:** ENCODE Phase 3 expanded the registry to 926,535 human and 339,815 mouse candidate cis-regulatory elements (cCREs), classified into: - Promoter-like signatures (PLS) - Proximal enhancer-like signatures (pELS) - Distal enhancer-like signatures (dELS) - CTCF-only - DNase-H3K4me3 Introduced the Registry of cCREs as the primary organizational framework. This paper is the definitive reference for the cCRE classification system that search queries leverage. Phase 3 added CUT&RUN, CUT&Tag, CRISPR screens, MPRA, STARR-seq, and single-cell assays, expanding the assay_title vocabulary for search filtering. The biosample ontology now covers tissues, primary cells, cell lines, in vitro differentiated cells, and organoids across both human and mouse. --- ## ENCODE Data Portal The ENCODE data portal (encodeproject.org) provides both a web-based search interface and a REST API for programmatic access. The search-encode skill wraps the REST API, translating user queries into API calls with appropriate parameters. Understanding the portal's metadata model — how experiments relate to biosamples, files relate to experiments, and quality audits relate to both — is essential for constructing effective searches. --- ### Sloan et al. 2016 — ENCODE data portal architecture and programmatic access - **Citation:** Sloan CA, Chan ET, Davidson JM, Malladi VS, Strattan JS, Hitz BC, Gabdank I, Narayanan AK, Ho M, Lee BT, et al. ENCODE data at the ENCODE portal. *Nucleic Acids Research*, 44(D1), D726-D732, 2016. - **DOI:** [10.1093/nar/gkv1160](https://doi.org/10.1093/nar/gkv1160) - **PMID:** 26527727 | **PMC:** PMC4702836 - **Citations:** ~600 - **Key findings:** Described the ENCODE portal architecture including: - REST API with JSON-LD metadata model - Faceted search interface with ~200 biosample types - Standardized assay categories and audit-based quality tiers - Programmatic access via JSON API endpoints with pagination The metadata schema determines which fields are searchable and how experiments are organized. Key design: experiments have a single assay_title, can have multiple replicates, files are children of experiments with own quality metrics, and audit flags propagate from files to experiments. The search-encode skill mirrors these API patterns. --- ### Davis et al. 2018 — ENCODE portal update with improved search - **Citation:** Davis CA, Hitz BC, Sloan CA, Chan ET, Davidson JM, Gabdank I, Hilton JA, Jain K, Baymuradov UK, Narayanan AK, Onate KC, Graham K, Miyasato SR, Dreszer TR, Strattan JS, Jolanki O, Tanaka FY, Cherry JM. The Encyclopedia of DNA elements (ENCODE): data portal update. *Nucleic Acids Research*, 46(D1), D794-D801, 2018. - **DOI:** [10.1093/nar/gkx1081](https://doi.org/10.1093/nar/gkx1081) - **PMID:** 29126249 | **PMC:** PMC5753278 - **Citations:** ~400 - **Key findings:** Updated the portal with improved search facets, matrix views for experiment discovery, and enhanced visualization. Introduced audit system refinements with quality flags enabling search-time quality filtering. Added support for new assay types (CRISPR screens, MPRA, single-cell assays). Documents the search matrix interface for cross-tabulation of biosamples vs. assay types — the conceptual model behind search-encode's multi-dimensional filtering. Also describes file relationship tracking (derived_from chains) and batch download manifests for downstream workflows. --- ## Candidate cis-Regulatory Elements (cCREs) The cCRE registry represents a paradigm shift from experiment-centric to element-centric search. Users can query for specific regulatory elements by classification, location, or activity state across cell types. The three papers below describe the registry's construction, portal implementation, and the functional annotation framework. --- ### Luo et al. 2020 — cCRE registry architecture on the portal - **Citation:** Luo Y, Hitz BC, Gabdank I, Hilton JA, Kagda MS, et al. New developments on the Encyclopedia of DNA Elements (ENCODE) data portal. *Nucleic Acids Research*, 48(D1), D882-D889, 2020. - **DOI:** [10.1093/nar/gkz1062](https://doi.org/10.1093/nar/gkz1062) - **PMID:** 31713622 | **PMC:** PMC7061942 - **Citations:** ~800 - **Key findings:** Described the Registry of cCREs as the primary search framework, replacing experiment-centric browsing with element-centric discovery. Each cCRE has a unique accession (EH38E prefix for GRCh38, EH38ME for mm10). The classification decision tree: 1. Requires high DNase signal (accessibility) 2. Branches on H3K4me3 (promoter-like vs. not) 3. Branches on H3K27ac (enhancer-like vs. not) 4. Branches on CTCF (insulator-like vs. not) This system supports search-encode queries filtering by element type. The paper also describes visualization improvements including genome browser integration and interactive summary plots of cCRE distributions across cell types. --- ### Moore et al. 2020 — Defining 926,535 human cCREs - **Citation:** Moore JE, Purcaro MJ, Pratt HE, Epstein CB, Shoresh N, et al. Expanded encyclopaedias of DNA elements in the human and mouse genomes. *Nature*, 583(7818), 699-710, 2020. - **DOI:** [10.1038/s41586-020-2493-4](https://doi.org/10.1038/s41586-020-2493-4) - **PMID:** 32728248 | **PMC:** PMC7410830 - **Citations:** ~1,500 - **Key findings:** Detailed methodology for the five-group classification: - PLS: 36,573 human elements (promoter-like) - pELS: 52,998 (proximal enhancer-like) - dELS: 544,491 (distal enhancer-like — the largest category) - CTCF-only: 117,440 - DNase-H3K4me3: 175,033 Each cCRE has cell-type-specific activity states. Benchmarks: 75% of PLS overlap GENCODE TSSs; dELS show 3-fold enrichment for Vista-validated enhancers. This vocabulary is essential for interpreting search results and understanding what regulatory elements are represented in returned experiments. --- ### Abascal et al. 2020 — Functional annotation from expanded experiments - **Citation:** Abascal F, Acosta R, Addleman NJ, Adrian J, Afzal V, et al. Expanded encyclopaedias of DNA elements in the human and mouse genomes. *Nature*, 583(7818), 693-698, 2020. - **DOI:** [10.1038/s41586-020-2489-0](https://doi.org/10.1038/s41586-020-2489-0) - **PMID:** 32728247 | **PMC:** PMC7410826 - **Citations:** ~600 - **Key findings:** Broader perspective on ENCODE Phase 3 functional annotations, including integration of new assay types (CUT&RUN, CRISPR perturbations, single-cell) into the registry. Established a hierarchy of evidence for regulatory annotation: - Observational: ChIP-seq, DNase-seq - Correlative: eQTL, Hi-C - Perturbational: CRISPRi/CRISPRa - Direct functional: reporter assays (MPRA, STARR-seq) Documents the expanded assay vocabulary available in Phase 3 and the rationale behind assay category groupings used in search filters. Also discusses the transition to comparative human-mouse analysis enabling cross-species search queries. ---
-
-
SKILL.md 23.5 KB
--- name: search-encode description: Search and explore ENCODE Project genomics data. Use when the user wants to find experiments, files, or explore what data is available for specific assays, organs, cell lines, or targets. --- # Search ENCODE Data ## When to Use - User wants to find ENCODE experiments matching specific criteria (assay, organ, cell type, target) - User asks "what ENCODE data exists for [tissue/target/assay]?" - User wants to explore available data before downloading - User needs to find specific file types (BED, BAM, bigWig) across experiments - User wants to know how many experiments exist for a condition - User asks about available assays, organisms, or biosamples in ENCODE Help the user find ENCODE experiments and files. Use the appropriate tools based on what they need. ## Search Strategy 1. **Finding experiments**: Use `encode_search_experiments` with filters: - `assay_title`: "Histone ChIP-seq", "ATAC-seq", "total RNA-seq", "polyA plus RNA-seq", "TF ChIP-seq", "Hi-C", "CUT&RUN", "WGBS", etc. - `organ`: "pancreas", "brain", "liver", "heart", "kidney", "lung", etc. - `biosample_type`: "tissue", "cell line", "primary cell", "organoid" - `biosample_term_name`: specific name like "GM12878", "HepG2", "K562" - `target`: ChIP/CUT&RUN target like "H3K27me3", "H3K4me3", "CTCF", "p300" - `organism`: "Homo sapiens" (default) or "Mus musculus" 2. **Finding files across experiments**: Use `encode_search_files` when the user wants specific file types from multiple experiments. 3. **Exploring available data**: Use `encode_get_facets` to see counts of what exists before searching. Use `encode_get_metadata` to list valid filter values. 4. **Getting experiment details**: Use `encode_get_experiment` for full metadata on a single experiment. Use `encode_list_files` to see all files for one experiment. ## Search Strategy Guide Effective ENCODE searching follows a three-phase pattern: explore, search, refine. Jumping straight to a filtered search often produces empty results or misses relevant data. ### Phase 1: Explore with Facets Always start with `encode_get_facets` to understand what data exists. Facets return counts per filter value, so you can see immediately whether your target organ, assay, or biosample has data. ``` encode_get_facets(organ="pancreas") -> Shows: Histone ChIP-seq (42), ATAC-seq (8), RNA-seq (15), TF ChIP-seq (6), ... -> Also shows: biosample types, life stages, labs, replication types ``` This avoids the frustrating pattern of searching for data that does not exist. Facets may also reveal data you did not expect -- for example, CUT&RUN data where you only anticipated ChIP-seq, or organoid samples alongside tissue. ### Phase 2: Validate Filter Values Before searching, confirm that your filter values match ENCODE's controlled vocabulary. A mistyped assay name returns zero results with no error. ``` encode_get_metadata(metadata_type="assays") -> Returns all valid assay_title values: "Histone ChIP-seq", "TF ChIP-seq", "ATAC-seq", ... ``` Available metadata types: `assays`, `organisms`, `organs`, `biosample_types`, `file_formats`, `output_types`, `output_categories`, `assemblies`, `life_stages`, `replication_types`, `statuses`, `file_statuses`. ### Phase 3: Search and Refine Start with broad filters and add constraints one at a time. If a search returns too many results (>100), add a filter. If it returns zero, remove the most restrictive filter first. ``` # Too broad: 2,400 results encode_search_experiments(assay_title="Histone ChIP-seq") # Add organ: 42 results encode_search_experiments(assay_title="Histone ChIP-seq", organ="pancreas") # Add target: 6 results encode_search_experiments(assay_title="Histone ChIP-seq", organ="pancreas", target="H3K27ac") ``` ## Pitfalls & Edge Cases 1. **Wrong assay_title values**: Assay names must match ENCODE's controlled vocabulary exactly. Run `encode_get_metadata(metadata_type="assays")` first to discover valid values. For example, use "Histone ChIP-seq" not "ChIP-seq" or "H3K27ac ChIP". 2. **Confusing biosample_term_name vs organ**: `organ` is a broad anatomical system (e.g., "pancreas", "brain"). `biosample_term_name` is a specific cell or tissue name (e.g., "GM12878", "islet of Langerhans"). Use `organ` for tissue-level exploration, `biosample_term_name` when you know the exact biosample. 3. **Not exploring first**: Always call `encode_get_facets` before searching to see what data exists. This avoids empty results and reveals unexpected data availability. For example, facets may show CUT&RUN data exists for your organ when you only expected ChIP-seq. 4. **Mixing organisms**: Human and mouse experiments use different assemblies (GRCh38 vs mm10) and cannot be directly compared. Always filter by `organism` to avoid mixing species in results. 5. **Expecting file-level results from experiment search**: `encode_search_experiments` returns experiments, not individual files. If the user wants specific BED or bigWig files, use `encode_search_files` instead with `file_format` and `output_type` filters. 6. **Searching for deprecated data**: The default `status="released"` is correct for most use cases. Archived or revoked experiments may have known quality issues. Only change status if the user explicitly needs historical data. ## Gotchas ### organ vs biosample_term_name vs biosample_type These three filters address different levels of the biosample hierarchy. Using the wrong one produces unexpected results. | Filter | What it means | Example values | When to use | |--------|---------------|----------------|-------------| | `organ` | Broad anatomical system | "pancreas", "brain", "heart", "liver" | Exploring all data for an organ system | | `biosample_term_name` | Exact biosample name | "GM12878", "K562", "islet of Langerhans", "HepG2" | You know the exact cell type or tissue name | | `biosample_type` | Category of biosample | "tissue", "cell line", "primary cell", "organoid", "in vitro differentiated cells" | Filtering by how the sample was obtained | Common mistake: using `biosample_term_name="pancreas"` when you mean `organ="pancreas"`. The term name "pancreas" matches whole-pancreas tissue samples only, missing islets, acinar cells, and other pancreatic substructures that are classified under the pancreas organ. ### assay_title Must Match Exactly ENCODE uses a controlled vocabulary for assay names. Common mistakes: | Wrong | Correct | |-------|---------| | "ChIP-seq" | "Histone ChIP-seq" or "TF ChIP-seq" | | "H3K27ac ChIP" | "Histone ChIP-seq" (with `target="H3K27ac"`) | | "ATAC" | "ATAC-seq" | | "DNase" | "DNase-seq" | | "Bisulfite-seq" | "WGBS" | | "scRNA-seq" | "scRNA-seq" | | "scATAC-seq" | "snATAC-seq" | Always run `encode_get_metadata(metadata_type="assays")` to see valid values. ### target Names Are Case-Sensitive Histone mark targets use a specific capitalization pattern. Common mistakes: | Wrong | Correct | |-------|---------| | "h3k27ac" | "H3K27ac" | | "H3K27AC" | "H3K27ac" | | "H3K4Me3" | "H3K4me3" | | "ctcf" | "CTCF" | Pattern: H3K{number}{modification} where the modification is lowercase ("me3", "ac", "me1"). Transcription factor targets use all-uppercase names ("CTCF", "POLR2A", "EP300"). ### Experiment Status Meanings | Status | Meaning | When to use | |--------|---------|-------------| | `released` | Passed ENCODE quality standards. Default and recommended. | Nearly all searches | | `archived` | Superseded by newer experiment or has known limitations. Data still accessible but not recommended. | Historical analysis, reproducing old studies | | `revoked` | Serious quality problems identified post-release. Should not be used for new analysis. | Only if investigating specific quality issues | ## Common Filter Combinations Ready-to-use filter combinations for common research questions: | Research Question | Tool + Filters | |---|---| | All human heart data | `encode_search_experiments(organ="heart")` | | Active enhancers in a tissue | `encode_search_experiments(assay_title="Histone ChIP-seq", target="H3K27ac", organ="liver")` | | Active promoters in a tissue | `encode_search_experiments(assay_title="Histone ChIP-seq", target="H3K4me3", organ="liver")` | | Repressed chromatin | `encode_search_experiments(assay_title="Histone ChIP-seq", target="H3K27me3", organ="brain")` | | Open chromatin atlas | Run two searches: `assay_title="ATAC-seq"` and `assay_title="DNase-seq"` for the same organ | | TF binding for a specific factor | `encode_search_experiments(assay_title="TF ChIP-seq", target="CTCF", organ="liver")` | | Cell line data | `encode_search_experiments(biosample_type="cell line", organ="blood")` | | Tier 1 cell line (most data) | `encode_search_experiments(biosample_term_name="K562")` or "GM12878" or "H1-hESC" | | Mouse developmental data | `encode_search_experiments(organism="Mus musculus", life_stage="embryonic", organ="brain")` | | Recent high-quality data | `encode_search_experiments(status="released", date_released_from="2023-01-01")` | | Perturbation experiments | `encode_search_experiments(perturbed=True, organ="liver")` | | CRISPR screen data | `encode_search_experiments(assay_title="CRISPR screen")` | | 3D genome structure | `encode_search_experiments(assay_title="Hi-C", organ="brain")` | | DNA methylation | `encode_search_experiments(assay_title="WGBS", organ="pancreas")` | | Specific BED peak files | `encode_search_files(file_format="bed", output_type="IDR thresholded peaks", assembly="GRCh38")` | | Signal tracks for visualization | `encode_search_files(file_format="bigWig", output_type="fold change over control", organ="heart")` | | ENCODE-recommended files | `encode_search_files(preferred_default=True, assay_title="Histone ChIP-seq", organ="pancreas")` | ## Walkthrough: Finding Histone ChIP-seq for a Tissue Goal: Find all H3K27ac ChIP-seq experiments in human pancreas with high-quality, analysis-ready peak files. ### Step 1: Check Available Data with Facets ``` encode_get_facets(organ="pancreas") ``` Review the output to see which assay types have data, how many experiments exist, which biosample types are represented (tissue vs cell line vs primary cell), and which labs contributed data. This tells you whether your search is feasible before committing to specific filters. ### Step 2: Search Experiments with Assay + Organ Filters ``` encode_search_experiments( assay_title="Histone ChIP-seq", organ="pancreas", target="H3K27ac", limit=50 ) ``` Review the results table. Note the accessions, biosample names, labs, and replication types. If too many results, narrow by `biosample_type="tissue"` to exclude cell lines, or by `life_stage="adult"` to exclude embryonic samples. ### Step 3: Filter by Status and Assembly The default `status="released"` is already applied. For files, you also want to specify the genome assembly to avoid mixing coordinate systems: ``` encode_list_files( experiment_accession="ENCSR...", assembly="GRCh38", file_format="bed" ) ``` This returns only GRCh38-aligned BED files, filtering out legacy hg19 files and raw FASTQs. ### Step 4: Check Quality with Audit Information ``` encode_get_experiment(accession="ENCSR...") ``` The full experiment record includes one count per audit severity (there is no nested `audit` object). Review them in priority order: - **audit_error_count**: Serious problems. Do not use this experiment without investigating. - **audit_not_compliant_count**: Failed an ENCODE standard. Check what standard was missed. - **audit_warning_count**: Minor issues. Usually acceptable but worth noting. - **audit_internal_action_count**: Portal bookkeeping. Safe to ignore. The counts do not carry the audit messages themselves — open the experiment on encodeproject.org to read those. For ChIP-seq, also check: FRiP (fraction of reads in peaks) should be at least 1%, NSC (normalized strand coefficient) should exceed 1.05, and the experiment should have 2+ biological replicates. ### Step 5: List Preferred Default Files ``` encode_list_files( experiment_accession="ENCSR...", preferred_default=True ) ``` ENCODE curators mark recommended files as `preferred_default=True`. These are the best files for each output type. For Histone ChIP-seq, this typically includes: - IDR thresholded peaks (BED narrowPeak) -- use for enhancer/promoter identification - Fold change over control (bigWig) -- use for signal visualization in genome browsers - Signal p-value (bigWig) -- use for statistical thresholding If `preferred_default` returns no results, fall back to filtering manually: ``` encode_list_files( experiment_accession="ENCSR...", output_type="IDR thresholded peaks", assembly="GRCh38" ) ``` ## Walkthrough: Cross-Assay Data Collection Goal: Collect matched Histone ChIP-seq, ATAC-seq, and RNA-seq data for the same tissue to build a multi-omic regulatory map. ### Strategy ENCODE does not provide a single query that retrieves matched experiments across assay types. Instead, search each assay type separately and match experiments by biosample. The key matching fields are `organ`, `biosample_term_name`, and `biosample_type`. ### Step 1: Survey All Available Assays for Your Tissue ``` encode_get_facets(organ="liver") ``` Review the assay counts. Confirm that all three assay types (Histone ChIP-seq, ATAC-seq, RNA-seq) have data for liver. Note which biosample types are represented -- you will need to match on the same biosample type across assays. ### Step 2: Search Each Assay Type Separately ``` encode_search_experiments(assay_title="Histone ChIP-seq", organ="liver", biosample_type="tissue", limit=100) encode_search_experiments(assay_title="ATAC-seq", organ="liver", biosample_type="tissue", limit=100) encode_search_experiments(assay_title="total RNA-seq", organ="liver", biosample_type="tissue", limit=100) ``` ### Step 3: Match by Biosample From each result set, extract the `biosample_summary` and `biosample_type` values (`biosample_term_name` is a search filter, not a field of the results). Look for overlap: which specific biosamples appear in all three result sets? For example, "liver" tissue may appear in all three, but "hepatocyte" primary cells may only have ChIP-seq and RNA-seq. Present the coverage as a matrix: | Biosample | Histone ChIP-seq | ATAC-seq | RNA-seq | |-----------|-----------------|----------|---------| | liver (tissue) | 12 experiments | 4 experiments | 8 experiments | | hepatocyte (primary cell) | 3 experiments | 0 | 2 experiments | | HepG2 (cell line) | 18 experiments | 6 experiments | 10 experiments | ### Step 4: Verify Coverage with Facets For the matched biosample, use facets to confirm what histone marks and targets are available: ``` encode_get_facets(assay_title="Histone ChIP-seq", organ="liver") ``` This shows which targets (H3K27ac, H3K4me3, H3K27me3, etc.) are available. A minimal epigenomic profile requires at least H3K27ac (active enhancers) and H3K4me3 (active promoters). A comprehensive profile adds H3K27me3 (repression), H3K36me3 (gene bodies), and H3K4me1 (poised enhancers). ### Step 5: Collect Files for Matched Experiments Once you identify matching experiments, use `encode_list_files` with `preferred_default=True` for each experiment to get the recommended analysis-ready files. Ensure all files use the same assembly (GRCh38 for human). ## Pagination Search tools return paginated results. The response includes fields for navigating large result sets. ### Response Fields | Field | Type | Meaning | |-------|------|---------| | `total` | integer | Total number of matching results across all pages | | `has_more` | boolean | True if more results exist beyond the current page | | `next_offset` | integer or null | The offset value to pass for the next page, null if no more pages | ### Paging Through Results ``` # Page 1: first 25 results encode_search_experiments(assay_title="Histone ChIP-seq", limit=25, offset=0) -> total: 142, has_more: true, next_offset: 25 # Page 2: results 26-50 encode_search_experiments(assay_title="Histone ChIP-seq", limit=25, offset=25) -> total: 142, has_more: true, next_offset: 50 # ... continue until has_more is false ``` ### Choosing a Limit - `limit=25` (default): Good for initial exploration and presenting results to the user. - `limit=50`: Good for moderate result sets where you need a broader view. - `limit=100`: Use for comprehensive searches or when collecting all data for an analysis. This is the maximum recommended for a single call. For very large result sets (>100), page through with `offset` rather than setting an extremely high limit. This keeps response times fast and avoids overwhelming the user with too many results at once. ## Search Tips - **Start broad, then narrow**: Begin with `encode_get_facets` to understand the data landscape, then add filters incrementally. - **Use metadata discovery**: Call `encode_get_metadata(metadata_type="assays")` to see all valid assay names before searching. Same for "organs", "biosample_types", "output_types". - **Pagination**: Default `limit=25`. Use `limit=100` for comprehensive searches. Check the `total` count in results. Use `offset` to page through large result sets. - **Free text search**: Use `search_term` parameter for keyword search across all fields when structured filters are insufficient (e.g., `search_term="CRISPR screen pancreatic"`). - **Tier 1 cell lines**: K562, GM12878, and H1-hESC have the most data across all assay types. Use these as starting points for exploratory analysis. - **Life stage matters**: Filter by `life_stage` ("adult", "embryonic", "child") when comparing developmental stages. This is especially important for tissue samples. - **Date filtering**: Use `date_released_from` and `date_released_to` (YYYY-MM-DD format) to find recently released experiments or to scope searches to a specific time window. - **Perturbation experiments**: Set `perturbed=True` to find only experiments with genetic modifications or treatments. Combine with `genetic_modification="CRISPR"` or `treatment` to narrow further. - **Lab filtering**: If you know which lab produced the data you need, use `lab` to restrict results. This is useful for finding data from specific ENCODE production centers. ## Code Examples ### 1. Discover, Search, Filter: "Find all H3K27ac ChIP-seq in human pancreas tissue" ``` Step 1: Explore what's available encode_get_facets(organ="pancreas") -> Shows assay types and counts available for pancreas -> Example output: Histone ChIP-seq (42), ATAC-seq (8), RNA-seq (15) Step 2: Search experiments encode_search_experiments( assay_title="Histone ChIP-seq", organ="pancreas", target="H3K27ac", limit=50 ) -> Returns matching experiments with accession, biosample, lab, status Step 3: Get files for a specific experiment encode_list_files( experiment_accession="ENCSR...", file_format="bed", output_type="IDR thresholded peaks", assembly="GRCh38" ) -> Returns peak files ready for analysis Step 4: Or get the recommended default files directly encode_list_files( experiment_accession="ENCSR...", preferred_default=True ) -> Returns ENCODE's recommended files for this experiment ``` ### 2. Multi-assay comparison: "Compare available ATAC-seq vs DNase-seq for liver" ``` Step 1: Check ATAC-seq availability encode_get_facets(assay_title="ATAC-seq", organ="liver") -> Shows biosample types, counts, life stages, and labs Step 2: Check DNase-seq availability encode_get_facets(assay_title="DNase-seq", organ="liver") -> Compare counts and biosample coverage against ATAC-seq Step 3: Search both assays encode_search_experiments(assay_title="ATAC-seq", organ="liver", limit=50) encode_search_experiments(assay_title="DNase-seq", organ="liver", limit=50) -> Present side-by-side comparison of experiment counts, biosamples, labs Step 4: Present comparison summary -> "ATAC-seq: 12 experiments across 4 biosample types (3 labs)" -> "DNase-seq: 28 experiments across 7 biosample types (5 labs)" -> "DNase-seq has broader biosample coverage; ATAC-seq experiments are more recent" ``` ### 3. Time-based discovery: "Find recently released CRISPR screen experiments" ``` Step 1: Validate the assay name encode_get_metadata(metadata_type="assays") -> Confirms "CRISPR screen" is a valid assay_title Step 2: Search with date filter encode_search_experiments( assay_title="CRISPR screen", date_released_from="2024-01-01", limit=25 ) -> Returns recent CRISPR screen experiments Step 3: Explore details for a specific experiment encode_get_experiment(accession="ENCSR...") -> Full metadata: assay, biosample, replicate counts, file list, audit counts Step 4: Check audit status for quality -> Look at audit_error_count, audit_not_compliant_count, audit_warning_count -> Experiments with audit_error_count > 0 should be flagged to the user ``` ### 4. File-level search: "Find all IDR thresholded peak BED files for human brain ChIP-seq" ``` Step 1: Search files directly across experiments encode_search_files( file_format="bed", output_type="IDR thresholded peaks", assay_title="Histone ChIP-seq", organ="brain", assembly="GRCh38", limit=100 ) -> Returns BED files with accessions, experiment links, sizes, and download URLs Step 2: Filter to recommended files only encode_search_files( preferred_default=True, assay_title="Histone ChIP-seq", organ="brain", assembly="GRCh38", limit=100 ) -> Returns only ENCODE-curated recommended files ``` ## Integration | This skill produces... | Feed into... | Purpose | |---|---|---| | Experiment accessions | **download-encode** | Download files for found experiments | | Search results | **track-experiments** | Track discovered experiments | | Experiment lists | **batch-analysis** | Process multiple experiments together | | Filtered experiments | **quality-assessment** | Evaluate quality of search results | | Experiment metadata | **compare-biosamples** | Compare experiments across biosamples | | Assay-specific results | **pipeline-guide** | Route to correct processing pipeline | | Target-specific experiments | **histone-aggregation** | Collect experiments for aggregation | | Facet data | **epigenome-profiling** | Survey available data for profiling | ## Presenting Results When presenting search results to the user: - Show results in a clear table format with columns: **accession** | **assay** | **biosample** | **target** | **lab** | **status** - Always show the total count and note if results are paginated (e.g., "Showing 25 of 142 experiments") - Suggest narrowing filters if too many results (>100) - Suggest broadening filters if no results returned - Suggest next steps: "Would you like to see files for any of these experiments?" or "Would you like to track any of these experiments?" - When results span multiple labs or biosample types, summarize the distribution ## Key Literature - **ENCODE Phase 3**: ENCODE Project Consortium 2020 (Nature, ~2,000 citations) DOI: 10.1038/s41586-020-2493-4 -- Defines the catalog of functional genomic elements that this search covers. - **ENCODE Portal**: Hitz et al. 2023 (Nucleic Acids Research) DOI: 10.1093/nar/gkac1067 -- Documents the portal, search API, and data access patterns used by this skill. ## Related Skills | Skill | When to Use Instead/Additionally | |-------|--------------------------------| | `download-encode` | Downloading files after finding experiments | | `track-experiments` | Saving found experiments to local collection | | `quality-assessment` | Evaluating experiment quality before use | | `compare-biosamples` | Comparing data across tissues, cell lines, or conditions | | `cross-reference` | Linking experiments to PubMed, DOI, GEO, NCT IDs | | `epigenome-profiling` | Building comprehensive tissue profiles from search results | | `publication-trust` | Evaluating the provenance and trustworthiness of linked publications | ## For the request: "$ARGUMENTS"
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.