Claude-skill-registry loop-annotation
This skill annotates chromatin loops, including enhancer/promoter assignments, CTCF-peak overlap. It automatically constructs enhancer and promoter sets when missing and outputs standardized loop categories.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/33-loop-annotation" ~/.claude/skills/majiayu000-claude-skill-registry-loop-annotation && rm -rf "$T"
manifest:
skills/data/33-loop-annotation/SKILL.mdsource content
Loop Annotation
Overview
This skill performs loop annotation for Hi-C/HiChIP/ChIA-PET interaction data. It identifies regulatory and structural loop types (E–E, E–P, P–P, CTCF-CTCF).
Main steps include:
- Refer to Inputs & Outputs to verify necessary files.
- Always prompt user if required files are missing.
- Always prompt user for genome assembly used.
- Build enhancers.bed if absent (ATAC + H3K27ac).
- Build promoters.bed if absent (.tss annotation).
- Always prompt user for the column index of the interaction count in the raw BEDPE file. Never decide by yourself.
- Standardize the format of the
file as the input of.bedpeannotateInteractions.pl - Run
with feature sets.annotateInteractions.pl - Visualization
When to use this skill
- Regulatory loop landscape analysis.
- Enhancer–promoter mapping from chromatin loops.
- Structural loop analysis via CTCF orientation.
- Integration with ATAC/H3K27ac/TSS/CTCF datasets.
- Upstream to differential loop testing or expression integration.
Inputs & Outputs
Inputs
Required:
- loops.bedpe
- ctcf_peaks.bed
- genome version (user must provide)
Optional:
- enhancers.bed
- promoters.bed
- ATAC_peaks.bed
- H3K27ac_peaks.bed
- .tss or .gtf gene annotation
Outputs
loop_annotation/ logs/ annotateInteractions.log annotations/ interactionAnnotation.txt lengthDist.txt featureEnrichment.txt pairwiseFeatureEnrichment.txt # assign feature pairs to 0x0 0x1 and so on, represent the feature pairs like CTCF-CTCF, E-P ... # other outputs by annotateInteractions.pl features/ enhancers.bed promoters.bed plots: loop_type.pdf lengthDist.pdf
Decision Tree
Step 1 — Validate inputs
If enhancers.bed or promoters.bed missing, go on to Step 2, otherwise go on to step 4 directly.
Step 2 — Build enhancers.bed (if missing)
bedtools intersect -a ATAC_peaks.bed -b H3K27ac_peaks.bed > enhancers_raw.bed sort -k1,1 -k2,2n enhancers_raw.bed | bedtools merge -i - > enhancers.bed
Step 3 — Build promoters.bed (if missing)
Call:
- mcp__homer-tools__build_promoters
with:
: HOMER genome identifier, provided by usergenome
: Output path for promoters.bedoutput_promoters_bed
Step 4 — Standardize the input file
- mcp__homer-tools__standardize_loops_bedpe
with:
: Input loops.bedpe fileinput_bedpe
: Column index for interaction count, provided by userindex_count_column
: Output standardized loops fileoutput_bedpe
Step 5 — Annotate the loops
Call:
- mcp__homer-tools__run_annotate_interactions
with:
: Path to standardized loops file for annotateInteractions.plstandardized_loops
: HOMER genome identifier, provided by usergenome
: List of feature BED files for -p (CTCF, enhancers, promoters, etc.)feature_beds
: Base output directory for loop annotationannotations_dir
: Output directory for logslogs_dir
Step 6 — Classify and visualize loop types
Call:
- mcp__homer-tools__summarize_loop_annotations_and_plot
with:
: Directory containing HOMERannotations_dir
t andinteractionAnnotation.txlengthDist.txt
: Output directory for plotsplots_dir
: Mapping of feature index to feature name, you can infer the dict fromfeature_map
file. (e.g. {'0': 'CTCF','1': 'E','2': 'P'})pairwiseFeatureEnrichment.txt