Agent skill

Bio Hi C Analysis Matrix Operations

by GPTomics in GPTomics/bioSkills

Balances Hi-C contact matrices (ICE via cooler.balancecooler, KR/SCALE/VC context), computes distance-decay expected with cooltools (expectedcis per-diagonal P(s), expectedtrans scalar), builds…

MITAuto-check passed

Install Bio Hi C Analysis Matrix Operations

skills CLI
$ npx skills add GPTomics/bioSkills --skill bio-hi-c-analysis-matrix-operations -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install GPTomics/bioSkills bio-hi-c-analysis-matrix-operations --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/hi-c-analysis/matrix-operations .claude/skills/bio-hi-c-analysis-matrix-operations && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
bio-hi-c-analysis-matrix-operations
GitHub stars
1.2k
Used in
1 other repo
Token cost
~4.8k tokens
SKILL.md length
1,987 words
Files
3
Skills in repo
559
Repo updated
First seen
Licence
MIT

At a glance

Balances Hi-C contact matrices (ICE via cooler.balancecooler, KR/SCALE/VC context), computes distance-decay expected with cooltools (expectedcis per-diagonal P(s), expectedtrans scalar), builds…

  • Works in 2 steps: CNV silently breaks balancing. The… → A balanced cis map is still dominated by…
  • Balancing a .cool/.mcool
  • SKILL.md covers Version Compatibility, The Single Most Important…, Normalization-Method Taxonomy and Decision Tree by Scenario, plus 10 more sections
  • Runs Python scripts from its folder; calls pip

What it does

Bio Hi C Analysis Matrix Operations is an agent skill from GPTomics/bioSkills. Balances Hi-C contact matrices (ICE via cooler.balancecooler, KR/SCALE/VC context), computes distance-decay expected with cooltools (expectedcis per-diagonal P(s), expectedtrans scalar), builds observed/expected (O/E) matrices, and diagnoses polymer state from the P(s) log-derivative. Covers the within-matrix-vs-cross-sample distinction (balancing is NOT a normalizer), the equal-visibility assumption that CNV/aneuploidy violates (use raw counts for copy-number), cis-only balancing, madmax/blacklist masking before…

Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `examples/balance_and_oe.py` and `usage-guide.md`).

The repository describes itself as: a set of SKILLS.md for doing bioinformatics with agents like claude code. The licence is MIT.

When your agent uses it

  • Balancing a .cool/.mcool
  • Computing expected
  • Making O/E matrices for compartments/loops
  • Deciding ICE vs KR vs SCALE

Example prompts

  • “Use the bio-hi-c-analysis-matrix-operations skill to balance Hi-C contact matrices (ICE via cooler.balancecooler, KR/SCALE/VC context), computes…”
  • “/bio-hi-c-analysis-matrix-operations”

Requirements

  • Python 3

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. CNV silently breaks balancing. The premise is that every bin should make the same number of contacts; any deviation is technical bias…
  2. A balanced cis map is still dominated by distance-decay. The A/B plaid and focal loops are a faint modulation under the P(s) background…

What it can do on your machine

Read from SKILL.md and the folder at commit d91ed3d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bio Hi C Analysis Matrix Operations loads about 4.8k tokens when it runs. Until then it costs about 235 tokens; SKILL.md has 1,987 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~235
When it runs · the whole SKILL.md, loaded when a task matches
~4.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 1,987 words, ~4,816 tokens.

Download SKILL.mdSave it as .claude/skills/bio-hi-c-analysis-matrix-operations/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
bio-hi-c-analysis-matrix-operations
description
Balances Hi-C contact matrices (ICE via cooler.balance_cooler, KR/SCALE/VC context), computes distance-decay expected with cooltools (expected_cis per-diagonal P(s), expected_trans scalar), builds observed/expected (O/E) matrices, and diagnoses polymer state from the P(s) log-derivative. Covers the within-matrix-vs-cross-sample distinction (balancing is NOT a normalizer), the equal-visibility assumption that CNV/aneuploidy violates (use raw counts for copy-number), cis-only balancing, mad_max/blacklist masking before balancing, multiplicative cooler weights vs divisive juicer weights, and the resolution-vs-depth budget. Use when balancing a .cool/.mcool, computing expected or P(s), making O/E matrices for compartments/loops, deciding ICE vs KR vs SCALE, choosing a resolution for a given depth, or troubleshooting NaN/all-NaN balanced matrices; route cross-sample comparison to hic-differential.
tool_type
python
primary_tool
cooler

Version Compatibility

Reference examples tested with: cooler 0.10+, cooltools 0.7+, bioframe 0.7+

Before using code patterns, verify installed versions match. If versions differ:

  • Python: pip show <package> then help(module.function) to check signatures
  • CLI: <tool> --version then <tool> --help to confirm flags

If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.

cooltools standardized its API around 0.7 (functions take a view_df viewframe; expected_cis defaults to smooth=True, aggregate_smoothed=True). .mcool is multi-resolution: analysis functions take a single-resolution URI (file.mcool::/resolutions/10000), never the bare .mcool. A matrix must be balanced (a stored weight column) before O/E, compartments, insulation, or dots; clr.matrix(balance=True) on an unbalanced cooler returns all-NaN.

Hi-C Matrix Operations

"Make the pixels of my Hi-C matrix comparable to each other." -> Balance (remove per-bin coverage bias under equal-visibility), then divide by distance-matched expected (remove the polymer P(s) background) to get O/E.

  • Python: cooler.balance_cooler(clr, cis_only=True, store=True), then cooltools.expected_cis(clr) and divide observed by per-diagonal expected.

The Single Most Important Modern Insight -- Balancing Makes ONE Matrix Self-Consistent; It Does NOT Make Two Matrices Comparable

Balancing (ICE/KR) is a within-matrix operation: it solves for per-bin bias weights so every bin has equal genome-wide visibility, making a single map internally consistent. It does nothing to relate map A to map B. Two balanced matrices at different sequencing depth still differ in absolute magnitude, dynamic range, and noise floor -- and rescale_marginals makes the absolute balanced values arbitrary-scaled anyway. "I balanced both, now I'll subtract/log2-ratio them" is the single most common error in the field: the depth difference is read as biology. Cross-sample comparison requires downsampling to equal valid-pair count, distance-matched O/E, and a replicate-aware differential tool (multiHiCcompare, HiCcompare loess-over-distance, dcHiC) -- route to hic-differential.

Two corollaries that flow from the same equal-visibility model:

  1. CNV silently breaks balancing. The premise is that every bin should make the same number of contacts; any deviation is technical bias. That is true for a diploid uniform-copy genome and FALSE for tumors/aneuploids -- a 3-copy region genuinely contacts ~3x more. ICE forces equal marginals and ERASES that real copy-number, then redistributes it perversely (post-ICE high-copy regions go cis-depleted, trans-enriched; Servant 2018). Use raw counts for CNV/SV calling (coverage IS the signal -> copy-number); plain ICE/KR on an aneuploid is a category error (use CNV-aware LOIC/CAIC for 3D structure).
  2. A balanced cis map is still dominated by distance-decay. The A/B plaid and focal loops are a faint modulation under the P(s) background. Dividing by distance-matched expected (O/E) before eigendecomposition is mandatory, or the top eigenvector is just the decay curve, not compartments.

Normalization-Method Taxonomy

MethodWhat it doesMechanismWhen
ICE (cooler native)true matrix balancingiterative proportional fitting (Sinkhorn); equalizes all marginalsdefault; robust, converges on sparse/low-depth where KR fails
KR (juicer)true matrix balancingKnight-Ruiz Newton solver; SAME fixed point as ICEfast (few iterations); fails to converge on sparse/high-res maps
SCALE (juicer)true matrix balancingmodern KR-family solver, more robustjuicer's default; converges where KR diverges on sparse maps
VC / vanilla coverageNOT true balancingsingle pass: divide by row-coverage * col-coverage (one ICE iteration)fast robust fallback; leaves residual bias
VC_SQRTNOT true balancingdivide by sqrt of coverage product (gentler than VC)very sparse data where full balancing overfits
LOIC / CAIC (Servant 2018)CNV-aware balancingcondition on copy-number; LOIC keeps the CN effect, CAIC removes itaneuploid/tumor genomes (plain ICE is wrong here)

KR and ICE reach the same balanced map -- choose by convergence, not quality: KR is faster but blows up on sparse/low-depth/high-resolution matrices; ICE is the robust default; SCALE is the juicer-side answer when KR fails.

Decision Tree by Scenario

ScenarioRecommendedWhy
Need to balance a diploid mapcooler.balance_cooler(cis_only=True, store=True) (ICE)robust default; cis-only is the analysis convention
KR failed to converge (sparse/high-res)fall back to ICE, or SCALE on the juicer sidesame fixed point; ICE/SCALE are the robust solvers
Tumor / aneuploid genome, 3D structureCNV-aware LOIC/CAIC (Servant 2018)plain ICE erases real copy-number
CNV / SV calling from Hi-CRAW counts (no balancing)coverage is the signal -> copy-number
Compartments at 100kb-1Mbbalance -> expected_cis -> O/E -> Pearson -> eigenvectorO/E removes P(s) so the plaid is visible -> compartment-analysis
Focal loops / TADsbalance -> expected_cis -> O/Elocal enrichment needs the distance background removed -> loop-calling, tad-detection
P(s) / polymer-state diagnosticexpected_cis(smooth=True) -> log-derivativethe derivative reads out loop-extrusion machinery
Imported a juicer KR/VC weight columncheck divisive_weights before applyingcooler weights are multiplicative, juicer's are divisive
Compare two conditionsdownsample to equal depth, then -> hic-differentialbalancing is within-matrix, not a cross-sample normalizer
Bare .mcool passed and KeyErroruse file.mcool::/resolutions/<bp> URI.mcool is a container of resolutions

Balance a Matrix (ICE)

Goal: Remove one-dimensional per-bin coverage bias so every bin has equal genome-wide visibility within this single map.

Approach: Mask low-coverage and blacklisted bins FIRST (mad_max on log-marginals + explicit blacklist of centromere/rDNA/unmappable), drop the first two diagonals (ligation chemistry, not 3D contact), then run cis-only ICE; the multiplicative weight vector is stored in the weight column.

python
import cooler

clr = cooler.Cooler('matrix.mcool::/resolutions/10000')
bias, stats = cooler.balance_cooler(clr, cis_only=True, mad_max=5, ignore_diags=2, blacklist=None, store=True)
print('converged:', stats['converged'], 'scale:', stats['scale'])   # stats also reports var, divisive_weights

clr = cooler.Cooler('matrix.mcool::/resolutions/10000')              # re-open to see the stored weights
balanced = clr.matrix(balance=True).fetch('chr1')                    # raw[i,j] * w[i] * w[j]; masked bins -> NaN

cis_only=True is the convention for compartment/TAD/loop work -- trans signal is weak, noisy ambient ligation that pulls the bias estimates toward trans noise. ignore_diags=2 drops the main diagonal (self-ligation/dangling ends) and first off-diagonal (undigested/religated fragments): huge untrustworthy counts that would dominate the marginals. mad_max=5 filters bins whose log-marginal is >5 MAD below the median; without it a near-empty unmappable/centromeric bin gets a gigantic weight and ICE diverges. Masking (mad_max + blacklist) MUST precede balancing -- balancing cannot rescue a no-signal bin, it amplifies it.

CLI equivalent:

bash
cooler balance --cis-only --mad-max 5 --ignore-diags 2 matrix.mcool::/resolutions/10000

Expected: cis P(s) Curve and trans Scalar

Goal: Build the distance-decay background (the denominator for O/E) and the P(s) curve for diagnostics.

Approach: cis expected is a per-diagonal curve (one value per separation s -- this IS P(s)); trans expected is a single scalar per chromosome-pair block (trans contacts are ~distance-independent). cooltools enforces the split with two functions.

python
import cooltools
import bioframe

clr = cooler.Cooler('matrix.mcool::/resolutions/10000')
view_df = bioframe.make_viewframe(clr.chromsizes)               # whole-chromosome regions; or arms for acrocentric genomes

cvd = cooltools.expected_cis(clr, view_df=view_df, smooth=True, aggregate_smoothed=True, ignore_diags=2)
# columns include: region1, region2, dist, dist_bp, n_valid, count.avg, balanced.avg, balanced.avg.smoothed.agg

trans_exp = cooltools.expected_trans(clr, view_df=view_df)      # one balanced.avg per region1-region2 block

smooth=True smooths P(s) in log10(distance) space (smooth_sigma=0.1). Pre-0.7.0 cooltools errored on raw smoothing (clr_weight_name=None, smooth=True, issue #456); that was fixed in 0.7.0, and raw smoothing now returns count.avg.smoothed. Regardless of version, balance first: a raw expected still carries per-bin coverage bias, so it is not a clean P(s)/O/E denominator.

Observed/Expected Matrix

Goal: Divide out the polymer distance-decay so enrichment (loops, plaid) stands above the local background.

Approach: Map the per-diagonal cis expected (balanced.avg, keyed by dist) onto a dense balanced matrix by diagonal offset -- vectorized with numpy diagonal indexing, NOT an O(n^2) Python loop.

python
import numpy as np

def oe_matrix(clr, region, cvd):
    obs = clr.matrix(balance=True).fetch(region)
    chrom = region.split(':')[0] if isinstance(region, str) else region[0]
    exp = cvd[cvd['region1'] == chrom].set_index('dist')['balanced.avg']
    exp_by_dist = exp.reindex(range(obs.shape[0])).to_numpy()              # one expected per separation s
    expected = exp_by_dist[np.abs(np.subtract.outer(np.arange(obs.shape[0]), np.arange(obs.shape[0])))]
    return obs / expected                                                  # NaN where expected is NaN (masked diags)

oe = oe_matrix(clr, 'chr1', cvd)
log_oe = np.log2(oe)                                                        # symmetric around 0 for display

cooltools also ships cooltools.lib.numutils.observed_over_expected(matrix, mask) (returns a 4-tuple (OE, dist_bins, sum_pixels, n_pixels)) for a self-contained dense O/E without a precomputed cvd.

P(s) Log-Derivative -- the Polymer-State Diagnostic

Goal: Read out chromatin polymer state and loop-extrusion machinery from the shape of the contact-decay curve.

Approach: Take the slope of P(s) in log-log space; a reference slope near -1 over 0.1-1 Mb is the crumpled-globule background, and a loop-extrusion bump (~100kb interphase) appears as a peak in the derivative. Smooth in logspace FIRST or the derivative is pure noise.

python
agg = cvd[(cvd['region1'] == cvd['region2']) & (cvd['dist'] > 0)].drop_duplicates('dist_bp')
slope = np.gradient(np.log(agg['balanced.avg.smoothed.agg']), np.log(agg['dist_bp']))
# slope ~ -1 over 0.1-1 Mb; a bump toward 0 near ~100kb flags cohesin loop extrusion (flattens on WAPL/RAD21 loss)
Show full SKILL.md (846 more words)Show less

Resolution-vs-Depth Budget

The achievable resolution is a function of depth and genome size, not a free choice. Rule of thumb: a bin needs ~1000 contacts to be reliably populated, and the number of bins scales as N^2 with the number of genomic bins -- so halving bin size quarters per-bin coverage. Coarse features are cheap, focal features are expensive:

FeatureResolutionApproximate depth (human)Why
A/B compartments100kb-1Mbtens of millions of valid pairschromosome-scale, few large bins -> cheap
TADs / insulation10-50kbhundreds of millionssub-Mb domains; window 5-25x the bin
Loops / dots<=10kbbillions (Rao 2014 in-situ Hi-C ~ billions)focal kb-scale pixels; coarse bins blur anchors

Calling 10kb loops from a shallow library binned at 50kb is not a resolution choice -- there is no signal there. Choose the finest resolution where median per-bin contacts stay near ~1000.

Per-Method Failure Modes

Cross-sample subtraction of balanced matrices

Trigger: balancing two libraries then log2-ratioing/subtracting. Mechanism: balancing is within-matrix; balanced magnitude still scales with depth and rescale_marginals makes it arbitrary. Symptom: systematic genome-wide "differences" that track sequencing depth. Fix: downsample to equal valid pairs, compare O/E, use a replicate-aware tool -> hic-differential.

Plain ICE on an aneuploid / tumor

Trigger: balance_cooler on a genome with large copy-number swings. Mechanism: equal-visibility forces equal marginals, erasing the real ~CN-fold coverage. Symptom: high-copy regions look cis-depleted/trans-enriched (Servant 2018); CNV vanishes. Fix: raw counts for CNV calling; LOIC/CAIC for 3D structure.

Masking after (not before) balancing

Trigger: low-coverage centromere/rDNA/unmappable bins left in before ICE. Mechanism: a near-empty bin gets a gigantic bias weight. Symptom: ICE fails to converge, or stripe artifacts radiate from a few bins. Fix: set mad_max and pass blacklist; masking precedes balancing.

Eigendecomposition on a balanced (non-O/E) map

Trigger: compartment calling skips the expected/O/E step. Mechanism: the distance-decay dominates the balanced cis map. Symptom: top eigenvector is the P(s) curve, not the A/B plaid. Fix: divide by expected_cis (O/E) before correlating/eigendecomposing.

Crossing multiplicative and divisive weights

Trigger: applying an imported juicer KR/VC vector as if it were a cooler weight. Mechanism: cooler weights are multiplicative (rawww), juicer's are divisive (raw/w/w). Symptom: correction inverts -- high-bias bins get MORE extreme; nothing errors. Fix: check the weight column's divisive_weights attribute before applying.

O/E from a raw (unbalanced) expected

Trigger: computing P(s)/O/E from expected_cis(clr_weight_name=None). Mechanism: raw expected still carries per-bin coverage bias, so dividing by it does not cleanly remove the polymer background; pre-0.7.0 cooltools additionally errored on smooth=True with raw (issue #456, fixed in 0.7.0). Symptom: O/E still shows coverage stripes; on old cooltools, an error demanding balanced data. Fix: balance first, then expected_cis on the balanced weight column.

Quantitative Thresholds

ThresholdSourceRationale
ignore_diags=2cooler default; ICE conventiondrops self-ligation/dangling (diag 0) + undigested/religated (diag 1); ligation chemistry, not 3D contact
mad_max=5cooler defaultdrops bins >5 MAD below median LOG-marginal; near-empty bins otherwise get exploding weights
min_nnz=10cooler default<10 nonzero pixels per row is too sparse to estimate a bias reliably
tol=1e-5, max_iters=200cooler defaultsconvergence = variance of balanced marginals < tol; non-convergence usually = a masking problem, not a tol problem
smooth_sigma=0.1cooltools defaultGaussian std in log10(distance) units for P(s) smoothing
~1000 contacts/bindepth-budget conventionper-bin coverage floor for a reliably populated bin; bins scale ~N^2
Compartment res 100kb-1Mbcompartment scalefiner bins mix in TAD/loop structure
TAD/insulation res 10-50kbdomain scalesub-Mb domains; window 5-25x the bin
Loop res <=10kb (needs ~billions of pairs)Rao 2014 in-situ Hi-Cfocal kb-scale; coarse bins blur loop anchors
P(s) slope ~ -1 over 0.1-1 Mbcrumpled/fractal globulereference background; deviations/derivative read out polymer state

Common Errors

Error / symptomCauseSolution
clr.matrix(balance=True) all NaNcooler not balancedrun cooler.balance_cooler(..., store=True) first
Empty / wrong-resolution result on .mcoolbare .mcool passeduse file.mcool::/resolutions/<bp> URI
ICE not converginglow-coverage bins not maskedraise/set mad_max, pass blacklist; do not just raise max_iters
expected_cis(smooth=True) errors on raw (pre-0.7.0 only)clr_weight_name=None on old cooltools (issue #456, fixed 0.7.0)upgrade to cooltools 0.7+, or balance first / smooth=False
O/E enrichment inverted on a tumorICE applied to an aneuploiduse raw counts / LOIC/CAIC; equal-visibility is violated
Imported weight makes bias worsedivisive juicer weight applied as multiplicativecheck divisive_weights; reciprocate if needed
Cross-condition "difference" tracks depthsubtracting balanced matricesdownsample + O/E + replicate-aware test -> hic-differential

References

  • Imakaev et al. 2012 Nat Methods 9:999-1003 -- ICE iterative correction.
  • Knight & Ruiz 2013 IMA J Numer Anal 33(3):1029-1047 -- KR matrix-balancing algorithm.
  • Rao et al. 2014 Cell 159(7):1665-1680 -- in-situ Hi-C, KR norm, VC/VC_SQRT, kilobase loops (depth budget).
  • Cournac et al. 2012 BMC Genomics 13:436 -- sequential/vanilla-coverage (SCN/VC) normalization.
  • Servant et al. 2018 BMC Bioinformatics 19:313 -- CNV-aware normalization (LOIC/CAIC); ICE erases copy-number.
  • Abdennur & Mirny 2020 Bioinformatics 36(1):311-316 -- cooler.
  • Open2C, Abdennur et al. 2024 PLoS Comput Biol 20(5):e1012067 -- cooltools.
  • Open2C, Abdennur et al. 2024 Bioinformatics 40(2):btae088 -- bioframe.
  • hic-data-io - Load the cooler files this skill balances; divisive-vs-multiplicative weight naming
  • compartment-analysis - Consumes the O/E this skill produces for eigenvector calling
  • tad-detection - Insulation needs a cis-balanced matrix
  • loop-calling - Dots need balanced + expected as prerequisites
  • hic-differential - Cross-sample comparison; the right home for subtracting/ratioing conditions
  • hic-visualization - Render balanced/O/E/log matrices
  • copy-number/cnv-visualization - Raw-count CNV from Hi-C when balancing would erase copy-number
  • genome-intervals/bigwig-tracks - Export the P(s)/expected or eigenvector as a bigWig

© GPTomics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in hi-c-analysis/matrix-operations of GPTomics/bioSkills.

  • SKILL.md
  • examples/balance_and_oe.py
  • usage-guide.md

Open the folder on GitHubat commit d91ed3d

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in GPTomics/bioSkills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Bio Hi C Analysis Matrix Operations next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Bio Hi C Analysis Matrix Operations compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bio Hi C Analysis Matrix Operations this skillGPTomics/bioSkills1.2k1 repos~4.8kAutomated safety check: PassMIT
Bio Hi C Analysis Matrix OperationsFreedomIntelligence/OpenClaw-Medical-Skills3.1k1 repos~1.8kAutomated safety check: PassNone
Matrixbergside/awesome-design-skills3.1k1 repos~957Automated safety check: PassMIT
Agent Load Balancerruvnet/ruflo74k2 repos~3.1kAutomated safety check: PassMIT
Agent Matrix Optimizerruvnet/ruflo74k2 repos~1.8kAutomated safety check: PassMIT
Contact Pagethedaviddias/Front-End-Checklist74k—~424Automated safety check: PassMIT

Similar skills

  • Bio Hi C Analysis Matrix Operations

    FreedomIntelligence/OpenClaw-Medical-Skills

    Balance, normalize, and transform Hi-C contact matrices using cooler and cooltools.

    3.1k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Matrix

    bergside/awesome-design-skills

    A cyber-slick, dark-only Matrix-inspired interface defined by minimalist fashion, high-tech digital elements

    3.1k GitHub starsUsed in 1 repo~957 tokens
    Frontend & DesignAuto-check passed
  • Agent skill for load-balancer - invoke with $agent-load-balancer

    74k GitHub starsUsed in 2 repos~3.1k tokens
    DevOps & CloudAuto-check passed
  • Agent skill for matrix-optimizer - invoke with $agent-matrix-optimizer

    74k GitHub starsUsed in 2 repos~1.8k tokens
    Auto-check passed
  • Contact Page

    thedaviddias/Front-End-Checklist

    A skill your agent uses when auditing metadata, crawlability, structured data, or indexability related to Create a comprehensive Contact page.

    74k GitHub stars~424 tokensUpdated 4 days ago
    Marketing & SEOAuto-check passed
  • Load Balancing

    sickn33/agentic-awesome-skills

    Configure load balancers and traffic distribution. An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 2 repos~2.9k tokens
    DevOps & CloudAuto-check: notes

More from GPTomics/bioSkills

All 559 skills in this repo
  • Bio Alignment Io

    GPTomics/bioSkills

    Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.

    1.2k GitHub starsUsed in 3 repos~4.9k tokens
    Auto-check passed
  • bioSkills Installer

    GPTomics/bioSkills

    Installs the bioSkills collection of 425 bioinformatics skills in one step, or only chosen categories, so sequencing, RNA-seq, single-cell and variant tasks get specialized help.

    1.2k GitHub starsUsed in 1 repo~789 tokens
    Auto-check passed
  • Bio Write Sequences

    GPTomics/bioSkills

    Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.

    1.2k GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • Amplicon Primer Clipping

    GPTomics/bioSkills

    Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.

    1.2k GitHub starsUsed in 2 repos~2.2k tokens
    Auto-check passed
  • Filters BAM alignments by FLAG bits, mapping quality and regions with samtools view or pysam, with recipes for common keep and drop cases.

    1.2k GitHub starsUsed in 2 repos~3.6k tokens
    Auto-check passed
  • Bio Alignment Indexing

    GPTomics/bioSkills

    Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.

    1.2k GitHub starsUsed in 2 repos~2.4k tokens
    Auto-check passed

Questions about Bio Hi C Analysis Matrix Operations

What does Bio Hi C Analysis Matrix Operations do?

Balances Hi-C contact matrices (ICE via cooler.balancecooler, KR/SCALE/VC context), computes distance-decay expected with cooltools (expectedcis per-diagonal P(s), expectedtrans scalar), builds…. Bio Hi C Analysis Matrix Operations is an agent skill from GPTomics/bioSkills.balancecooler, KR/SCALE/VC context), computes distance-decay expected with cooltools (expectedcis per-diagonal P(s), expectedtrans scalar), builds observed/expected (O/E) matrices, and diagnoses polymer state from the P(s) log-derivative.

When should I use Bio Hi C Analysis Matrix Operations?

Bio Hi C Analysis Matrix Operations fits situations like: balancing a .cool/.mcool; computing expected; making O/E matrices for compartments/loops; deciding ICE vs KR vs SCALE.

How do I install Bio Hi C Analysis Matrix Operations in Claude Code?

Run `npx skills add GPTomics/bioSkills --skill bio-hi-c-analysis-matrix-operations -a claude-code`. Or copy the skill folder (hi-c-analysis/matrix-operations in GPTomics/bioSkills) into .claude/skills/bio-hi-c-analysis-matrix-operations in your project. Claude Code loads it when a task matches its description.

How do I install Bio Hi C Analysis Matrix Operations in Codex?

Run `npx skills add GPTomics/bioSkills --skill bio-hi-c-analysis-matrix-operations -a codex`. Or copy the skill folder (hi-c-analysis/matrix-operations in GPTomics/bioSkills) into .agents/skills/bio-hi-c-analysis-matrix-operations in your project. Codex loads it when a task matches its description.

Can I use Bio Hi C Analysis Matrix Operations in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GPTomics/bioSkills --skill bio-hi-c-analysis-matrix-operations -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bio-hi-c-analysis-matrix-operations, .gemini/skills/bio-hi-c-analysis-matrix-operations, .github/skills/bio-hi-c-analysis-matrix-operations and .opencode/skills/bio-hi-c-analysis-matrix-operations in your project.

What does Bio Hi C Analysis Matrix Operations need to run?

Going by SKILL.md and its folder, Bio Hi C Analysis Matrix Operations needs Python for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3.

Does Bio Hi C Analysis Matrix Operations access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Bio Hi C Analysis Matrix Operations safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Bio Hi C Analysis Matrix Operations use?

Bio Hi C Analysis Matrix Operations is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bio Hi C Analysis Matrix Operations use?

About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bio Hi C Analysis Matrix Operations?

Skills that share tags, products or a category with Bio Hi C Analysis Matrix Operations: Bio Hi C Analysis Matrix Operations (FreedomIntelligence/OpenClaw-Medical-Skills, 3.1k stars), Matrix (bergside/awesome-design-skills, 3.1k stars), Agent Load Balancer (ruvnet/ruflo, 74k stars) and Agent Matrix Optimizer (ruvnet/ruflo, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bio Hi C Analysis Matrix Operations?

GPTomics (a GitHub organization) maintains it in GPTomics/bioSkills, which has 1,218 GitHub stars. The repository holds 559 skills in this directory. The repository was last updated on August 15, 2026.

Source: GPTomics/bioSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.