Claude-skill-registry hic-loop-calling
This skill performs chromatin loop detection from Hi-C .mcool files using cooltools.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/19-toolbased-hic-loop-calling" ~/.claude/skills/majiayu000-claude-skill-registry-hic-loop-calling && rm -rf "$T"
skills/data/19-toolbased-hic-loop-calling/SKILL.mdHi-C Loop Calling
Overview
This skill provides a minimal and efficient workflow for detecting chromatin loops from Hi-C data stored in .mcool format and preparing results for visualization in IGV. The key steps involved include:
- Refer to the Inputs & Outputs section to verify required files and output structure.
- Always prompt user for genome assembly used.
- Always prompt user for resolution used to call loops. ~2-50 kb is recommended. 5 kb is default.
- Locate the genome FASTA file from homer genome fasta file based on user input.
- Rename chromosomes in the .mcool or .cool file to satisfy the chromosome format with "chr".
- Generate chromosome-arm view files for compartment calling after changing the chromosome name.
- Extract contact matrices from .mcool files at the desired resolution.
- Detect chromatin loops.
When to Use This Skill
Use this skill when:
- You need to identify (in other words, call, or detect) chromatin loops from Hi-C data in .mcool format.
Inputs & Outputs
Inputs
- File format: .mcool, .cool, or .hic (Hi-C data file).
- Genome assembly: Prompt the user for genome assembly used.
- Resolution: Choose the desired resolution for loop calling (e.g., 5 kb, 10 kb, etc.).
Outputs
${sample}_loop_calling/ loops/ ${sample}_loops_${resolution}.bedpe # Detected chromatin loops in BEDPE format. temp/ view_${genome}.tsv expected_cis.${resolution}.tsv
Allowed Tools
When using this skill, you should restrict yourself to the following MCP tools from server
cooler-tools, cooltools-tools, project-init-tools, genome-locate-tools:
mcp__project-init-tools__project_initmcp__genome-locate-tools__genome_locate_fastamcp__HiCExplorer-tools__hic_to_mcoolmcp__cooler-tools__list_mcool_resolutionsmcp__cooler-tools__harmonize_chrom_namesmcp__cooler-tools__make_view_chromarmsmcp__cooltools-tools__run_expected_cismcp__cooltools-tools__run_dots
Do NOT fall back to:
- raw shell commands (
,cooltools expected-cis
, etc.)cooltools dots - ad-hoc Python snippets (e.g. importing
,cooler
,bioframe
manually in the reply).matplotlib
Decision Tree
Step 0 — Gather Required Information from the User
Before calling any tool, ask the user:
-
Sample name (
): used as prefix and for the output directorysample
.${sample}_loop_calling -
Genome assembly (
): e.g.genome
,hg38
,mm10
.danRer11- Never guess or auto-detect.
-
Hi-C matrix path/URI (
):mcool_uri
(.mcool file with resolution specified)path/to/sample.mcool::/resolutions/5000- or
file path.cool - or
file path.hic
-
Resolution (
): defaultresolution
(5 kb).5000- If user does not specify, use
as default.5000 - Must be the same as the resolution used for
${mcool_uri}
- If user does not specify, use
Step 1 — Initialize Project & Locate Genome FASTA
- Make director for this project:
Call:
mcp__project-init-tools__project_init
with:
: the user-provided sample namesample
: loop_callingtask
The tool will:
- Create
directory.${sample}_loop_calling - Return the full path of the
directory, which will be used as${sample}_loop_calling
.${proj_dir}
- If the user provides a
file, convert it to.hic
file using.mcool
tool:mcp__HiCExplorer-tools__hic_to_mcool
Call:
mcp__HiCExplorer-tools__hic_to_mcool
with:
: the user-provided path (e.g.input_hic
)input.hic
: the user-provided sample namesample
: directory to save the view file. In this skill, it is the full path of theproj_dir
directory returned by${sample}_loop_calling
.mcp__project-init-tools__project_init
The tool will:
- Convert the
file to.hic
file..mcool - Return the path of the
file..mcool
If the conversion is successful, update
${mcool_uri} to the path of the .mcool file.
- Locate genome fasta file:
Call:
mcp__genome-locate-tools__genome_locate_fasta
with:
: the user-provided genome assemblygenome
The tool will:
- Locate genome FASTA.
- Verify the FASTA exists.
Step 2: List Available Resolutions in the .mcool file & Modify the Chromosome Names if Necessary
- Check the resolutions in
:mcool_uri
Call:
mcp__cooler-tools__list_mcool_resolutions
with:
: the user-provided path (e.g.mcool_path
) without resolution specified.input.mcool
The tool will:
- List all resolutions in the .mcool file.
- Return the resolutions as a list.
If the user defined or default
${resolution} is not found in the list, ask the user to specify the resolution again.
Else, use ${resolution} for the following steps.
- Check if the chromosome names in the .mcool file are started with "chr", and if not, modify them to start with "chr":
Call:
mcp__cooler-tools__harmonize_chrom_names
with:
: the user-provided sample namesample
: directory to save the expected-cis and eigs-cis files. In this skill, it is the full path of theproj_dir
directory returned by${sample}_Compartments_callingmcp__project-init-tools__project_init
: cooler URI with resolution specified, e.g.mcool_uriinput.mcool::/resolutions/${resolution}
:resolution
must be the same as the resolution used for${resolution}
and must be an integer${mcool_uri}
The tool will:
- Check if the chromosome names in the .mcool file.
- If not, harmonize the chromosome names in the .mcool file.
- If the chromosome names are modified, return the path of the modified .mcool file under
directory${proj_dir}/
Step 3 — Create Chromosome-Arm View File
Use
bioframe to define chromosome arms based on centromeres:
Call:
mcp__cooler-tools__make_view_chromarms
with:
: genome assemblygenome
: cooler URI with resolution specified, e.g.mcool_uriinput.mcool::/resolutions/${resolution}
:resolution
must be the same as the resolution used for${resolution}
and must be an integer${mcool_uri}
: directory to save the view file. In this skill, it is the full path of theproj_dir
directory returned by${sample}_loop_calling
.mcp__project-init-tools__project_init
The tool will:
- Fetch chromsizes and centromeres via
.bioframe - Generate chromosomal arms and filter them to those present in the cooler.
- Return the path of the view file under
directory.${proj_dir}/temp/
Step 4: Detect Chromatin Loops
- Calculate expected cis:
Call:
mcp__cooltools-tools__run_expected_cis
with:
: the user-provided sample namesample
: directory to save the view file. In this skill, it is the full path of theproj_dir
directory returned by${sample}_loop_calling
.mcp__project-init-tools__project_init
: cooler URI with resolution specified, e.g.mcool_uriinput.mcool::/resolutions/${resolution}
:resolution
must be the same as the resolution used for${resolution}
and must be an integer${mcool_uri}
: the path to the view file (e.g.view_path
)${proj_dir}/temp/view_${genome}.tsv
: the name of the weight column (default:clr_weight_name
)weight
: the number of diagonals to ignore based on resolutionignore_diags
The tool will:
- Generate expected cis file.
- Return the path of the expected cis file under
directory.${proj_dir}/temp/
- Call loops:
Call:
mcp__cooltools-tools__run_dots
with:
: the user-provided sample namesample
: directory to save the view file. In this skill, it is the full path of theproj_dir
directory returned by${sample}_loop_calling
.mcp__project-init-tools__project_init
: cooler URI with resolution specified, e.g.mcool_uriinput.mcool::/resolutions/${resolution}
:resolution
must be the same as the resolution used for${resolution}
and must be an integer${mcool_uri}
: the path to the view file (e.g.view_path
)${proj_dir}/temp/view_${genome}.tsv
: the number of processes for cooltools (default 6)nproc
The tool will:
- Generate loops bedpe.
- Return the path of the loops bedpe file under
directory.${proj_dir}/loops/