13C Metabolic Flux Analysis
K-Dense-AI/scientific-agent-skills
Estimates reaction fluxes inside cells from steady-state carbon-13 labeling data with a bundled mfapy-based solver, and reports which fluxes the data pin down.
Reads, queries, and writes bigWig indexed binary signal tracks (coverage, fold-change, conservation, methylation-rate) with pyBigWig (Python) and the UCSC Kent tools (bedGraphToBigWig…
$ npx skills add GPTomics/bioSkills --skill bio-genome-intervals-bigwig-tracks -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GPTomics/bioSkills bio-genome-intervals-bigwig-tracks --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/genome-intervals/bigwig-tracks .claude/skills/bio-genome-intervals-bigwig-tracks && rm -rf skills-srcUse ~/.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/
Install the "bio-genome-intervals-bigwig-tracks" agent skill from https://github.com/GPTomics/bioSkills/tree/main/genome-intervals/bigwig-tracks into .claude/skills/bio-genome-intervals-bigwig-tracks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-genome-intervals-bigwig-tracks", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/GPTomics/bioSkills/tree/main/genome-intervals/bigwig-tracksType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add GPTomics/bioSkills --skill bio-genome-intervals-bigwig-tracks -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GPTomics/bioSkills bio-genome-intervals-bigwig-tracks --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/genome-intervals/bigwig-tracks .agents/skills/bio-genome-intervals-bigwig-tracks && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bio-genome-intervals-bigwig-tracks" agent skill from https://github.com/GPTomics/bioSkills/tree/main/genome-intervals/bigwig-tracks into .agents/skills/bio-genome-intervals-bigwig-tracks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-genome-intervals-bigwig-tracks", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GPTomics/bioSkills --skill bio-genome-intervals-bigwig-tracks -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GPTomics/bioSkills bio-genome-intervals-bigwig-tracks --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/genome-intervals/bigwig-tracks .cursor/skills/bio-genome-intervals-bigwig-tracks && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "bio-genome-intervals-bigwig-tracks" agent skill from https://github.com/GPTomics/bioSkills/tree/main/genome-intervals/bigwig-tracks into .cursor/skills/bio-genome-intervals-bigwig-tracks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-genome-intervals-bigwig-tracks", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/GPTomics/bioSkills.git --path genome-intervals/bigwig-tracks--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add GPTomics/bioSkills --skill bio-genome-intervals-bigwig-tracks -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GPTomics/bioSkills bio-genome-intervals-bigwig-tracks --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/genome-intervals/bigwig-tracks .gemini/skills/bio-genome-intervals-bigwig-tracks && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "bio-genome-intervals-bigwig-tracks" agent skill from https://github.com/GPTomics/bioSkills/tree/main/genome-intervals/bigwig-tracks into .gemini/skills/bio-genome-intervals-bigwig-tracks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-genome-intervals-bigwig-tracks", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install GPTomics/bioSkills bio-genome-intervals-bigwig-tracksInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add GPTomics/bioSkills --skill bio-genome-intervals-bigwig-tracks -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .github/skills && cp -r skills-src/genome-intervals/bigwig-tracks .github/skills/bio-genome-intervals-bigwig-tracks && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "bio-genome-intervals-bigwig-tracks" agent skill from https://github.com/GPTomics/bioSkills/tree/main/genome-intervals/bigwig-tracks into .github/skills/bio-genome-intervals-bigwig-tracks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-genome-intervals-bigwig-tracks", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GPTomics/bioSkills --skill bio-genome-intervals-bigwig-tracks -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GPTomics/bioSkills bio-genome-intervals-bigwig-tracks --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/genome-intervals/bigwig-tracks .opencode/skills/bio-genome-intervals-bigwig-tracks && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "bio-genome-intervals-bigwig-tracks" agent skill from https://github.com/GPTomics/bioSkills/tree/main/genome-intervals/bigwig-tracks into .opencode/skills/bio-genome-intervals-bigwig-tracks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bio-genome-intervals-bigwig-tracks", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
bio-genome-intervals-bigwig-tracksReads, queries, and writes bigWig indexed binary signal tracks (coverage, fold-change, conservation, methylation-rate) with pyBigWig (Python) and the UCSC Kent tools (bedGraphToBigWig…
Bio Genome Intervals Bigwig Tracks is an agent skill from GPTomics/bioSkills. Reads, queries, and writes bigWig indexed binary signal tracks (coverage, fold-change, conservation, methylation-rate) with pyBigWig (Python) and the UCSC Kent tools (bedGraphToBigWig, bigWigToBedGraph, bigWigInfo, bigWigSummary, bigWigAverageOverBed) and deepTools (multiBigwigSummary, computeMatrix, bigwigCompare). Covers the central trap that a wide query returns a precomputed zoom-level summary (by default the mean, which annihilates narrow peaks) not per-base data, when exact=True/values() is mandatory, the…
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files (for example `examples/bedgraph_to_bigwig.sh`, `examples/pybigwig_demo.py` and `usage-guide.md`).
It sits in Research & Science, covering Bioinformatics. It works with Python and NumPy. The repository describes itself as: a set of SKILLS.md for doing bioinformatics with agents like claude code. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d91ed3d. It shows what the files ask for, not the result of running them.
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.
Ships script files (Shell and Python), which the agent can run.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Bio Genome Intervals Bigwig Tracks loads about 4.8k tokens when it runs. Until then it costs about 220 tokens; SKILL.md has 1,857 words of instructions outside code blocks.
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.
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.
The full file from GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 1,857 words, ~4,837 tokens.
.claude/skills/bio-genome-intervals-bigwig-tracks/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Reference examples tested with: pyBigWig 0.3.22+, numpy 1.26+, ucsc-bedgraphtobigwig/ucsc-tools 469+, deeptools 3.5+.
Before using code patterns, verify installed versions match. If versions differ:
<tool> --version (or bigWigInfo with no args for usage) then <tool> --help to confirm flagspip show pyBigWig then help(pyBigWig.bigWigFile.stats) to check signaturesBuilding any bigWig needs a chrom.sizes file (name<TAB>length) and a coordinate-sorted bedGraph; pyBigWig's numpy return path requires numpy present at compile time. If code throws an error, introspect the installed tool and adapt rather than retrying.
"Get the signal from my bigWig over these regions / build a browser track." -> Query an indexed binary signal track, choosing the summary statistic and exactness that match the biological question, or build one from a sorted bedGraph + chrom.sizes.
bigWigAverageOverBed in.bw regions.bed out.tab, bigWigSummary in.bw chr s e N -type=max, bedGraphToBigWig in.sorted.bedGraph chrom.sizes out.bw, bigWigInfo in.bwbw=pyBigWig.open('x.bw'), bw.stats(chr,s,e,type='max',exact=True), bw.values(chr,s,e,numpy=True), bw.intervals(chr,s,e) (pyBigWig)bigWig is fast (Kent 2010) because it stores, alongside base-resolution values, a ladder of precomputed zoom levels holding per-bin sum/sumSquared/min/max/nBasesCovered. A B+ tree resolves the chromosome, an R-tree (cirTree) finds the data blocks in O(log n), per-block zlib keeps it ~10x smaller than bedGraph, and the zoom ladder answers a wide region in near-constant time by reading a precomputed summary instead of the base data. That speed is bought with two stacked approximations, both ON by default, and a third trap at the moment the signal is reduced to a single number:
mean (the default) dilutes a narrow tall feature toward background: a 200 bp ChIP summit of 500 in a 1 Mb sea of 1 averages to ~1.1 -- indistinguishable from background, while type='max' returns 500. Same file, same coordinates, opposite conclusions, decided by the named statistic. mean is faithful for broad features (domains, gene-body coverage) and a lie for narrow ones. max=peak height, sum=total amount (scales with width), coverage=fraction of bases with any data (ignores magnitude), std=variability.exact=False (the pyBigWig default, and what bigWigSummary and every zoomed-out browser do) computes from the nearest zoom level, not base data. Fine for exploration and broad features; exact=True (or values()) is mandatory whenever a number enters a result -- a per-region average in a table, a threshold call, anything a reviewer recomputes. Plausible-but-zoom-approximated is the worst failure: it does not error, it rounds the biology.NaN in values() and as gaps between intervals() runs -- never 0. On a region 30% covered at signal 10: np.mean -> NaN (poisons), np.nanmean -> 10 (covered-only, = bigWigAverageOverBed mean column), gaps-as-zero (np.nan_to_num().mean(), deepTools --missingDataAsZero, the mean0 column) -> 3.0. A >3x swing in the headline number, and which is correct is biological: coverage/read-depth tracks -> gaps are zero (mean0); rate/ratio tracks (methylation %, log2FC, conservation) -> gaps are undefined (mean/nanmean).Name the biological question first; the statistic, the exact flag, and the gap-handling then follow deterministically. Left on default, all three conspire to hand back a fast, confident, wrong answer.
| Tool | Role | Mechanism | When |
|---|---|---|---|
| pyBigWig | Python read/write | C-extension over libBigWig; stats/values/intervals/addEntries | inside a Python pipeline; custom per-region extraction; writing a bigWig |
| bigWigAverageOverBed | mean signal per BED region | one row per feature; name,size,covered,sum,mean0,mean | the right tool for "average signal per gene/peak"; gives both mean0 and mean |
| bigWigSummary | region -> N equal bins | reads zoom levels (like exact=False); -type=mean/min/max/std/coverage | quick binned profile at the command line |
| bigWigInfo | header/stats sanity check | version, zoom-level count, basesCovered, min/max/mean without parsing data | first thing to run on an unfamiliar file |
| bedGraphToBigWig / wigToBigWig | build bigWig | needs sorted input + chrom.sizes | converting a coverage bedGraph/WIG to a track |
| bigWigToBedGraph / bigWigToWig | bigWig -> text | -chrom/-start/-end for a sub-region | exact arithmetic; inspecting values as text |
| multiBigwigSummary | score matrix across many bigWigs | mean per bin over genome bins or a BED-file | track correlation/PCA (-> plotCorrelation/plotPCA) |
| computeMatrix | signal across many regions | reference-point (TSS/peak center) or scale-regions (gene body) | metaprofiles/heatmaps (-> plotHeatmap/plotProfile) |
| bigwigCompare | combine two bigWigs bin-by-bin | --operation log2/ratio/subtract/... --pseudocount | a log2(IP/input) or (treat-control) track |
| Scenario | Recommended | Why |
|---|---|---|
| Mean signal per gene/peak (one number per BED row) | bigWigAverageOverBed | purpose-built; pick mean (covered-only) vs mean0 (gaps as zero) deliberately |
| Peak height / "is there a binding event here?" | stats(type='max') or bigWigSummary -type=max | mean dilutes a narrow peak to background |
| Total signal over an exon/gene (an amount) | stats(type='sum') or the sum column | extensive quantity; do not use mean for a total |
| A number going into a table/threshold | stats(..., exact=True) or values() | the default exact=False reads zoom levels, not base data |
| Per-base values for plotting/analysis | values(numpy=True) | one number per base; nan for gaps -> np.nanmean, never np.mean |
| "Is this region even assayed/mappable?" | stats(type='coverage') | fraction with data; a different axis from magnitude |
| Compare many tracks (correlation/PCA) | multiBigwigSummary -> plotCorrelation/plotPCA | mean per bin; bin size matters |
| Metaprofile/heatmap over TSS or gene bodies | computeMatrix reference-point/scale-regions -> plotHeatmap/plotProfile | match anchored-point vs whole-body mode |
| A ratio/difference track | bigwigCompare --operation log2 --pseudocount | pseudocount only meaningful for log2/ratio |
| Build a normalized coverage track from a BAM | -> chip-seq/chipseq-visualization or atac-seq/footprinting (deepTools bamCoverage) | generation is upstream; library-size normalization lives there |
| Render the track in a browser figure | -> data-visualization/genome-tracks | pyGenomeTracks/IGV; zoom-out IS the summary trap made visual |
| Discrete features (peaks/genes), not signal | bigBed, not bigWig | continuous-vs-interval; one interval per base defeats the format |
bigWigInfo coverage.bw # version, # zoom levels, basesCovered, min/max/mean/std
bigWigInfo -chroms coverage.bw # chrom names + lengths (the file carries its own chrom list)A zero or low zoom-level count means a zoomed-out browser will read base data slowly (or, with maxZooms=0, IGV breaks). basesCovered far below the genome size means most positions are no-data (NaN), which makes the mean-vs-mean0 choice below load-bearing.
Goal: Compute one signal number per gene/peak, choosing covered-only vs gaps-as-zero by the track's biology.
Approach: Use the purpose-built bigWigAverageOverBed (BED needs a unique name column) and read the right output column -- mean (covered bases only) for rate/ratio tracks, mean0 (uncovered counted as zero) for coverage/depth tracks.
# BED4+ with a UNIQUE name in column 4; output columns: name size covered sum mean0 mean
bigWigAverageOverBed coverage.bw genes.bed signal_per_gene.tab
# -> read $6 (mean, covered-only) for methylation/log2FC; $5 (mean0, gaps=0) for read depthThe pyBigWig equivalent, when the extraction is inside a Python pipeline -- note exact=True because these numbers enter a result, and an explicit gap decision:
import pyBigWig
import numpy as np
bw = pyBigWig.open('coverage.bw')
GAPS_ARE_ZERO = False # True for read-depth/coverage tracks; False for rate/ratio (methylation, log2FC)
def region_signal(chrom, start, end):
v = bw.values(chrom, start, end, numpy=True) # per-base, nan for gaps
if GAPS_ARE_ZERO:
return float(np.nan_to_num(v).mean()) # mean0: gaps counted as 0 (= bigWigAverageOverBed mean0)
return np.nanmean(v) if not np.all(np.isnan(v)) else float('nan') # covered-only (= bigWigAverageOverBed mean); stats(type='mean') is also covered-only, NOT mean0import pyBigWig
bw = pyBigWig.open('chip.bw')
region = ('chr1', 1_000_000, 2_000_000)
peak = bw.stats(*region, type='max', exact=True)[0] # binding-event height; mean would dilute it
total = bw.stats(*region, type='sum', exact=True)[0] # total signal (amount; scales with width)
assayed = bw.stats(*region, type='coverage', exact=True)[0] # FRACTION of bases with any data (0..1), ignores magnitude
profile = bw.stats(*region, type='max', nBins=1000) # 1000-bin max profile; nBins keeps narrow features visiblestats() returns a list of length nBins (default 1). type is one of mean(default)/max/min/coverage/std/sum. Use max with nBins>1 to see narrow features across a wide window; a single-bin mean over a megabase buries every peak.
import pyBigWig
import numpy as np
bw = pyBigWig.open('coverage.bw')
v = bw.values('chr1', 1_000_000, 1_001_000, numpy=True) # list by default; numpy=True -> ndarray, nan for gaps
covered_mean = np.nanmean(v) # ignores gaps (= bigWigAverageOverBed mean)
depth_mean = np.nan_to_num(v).mean() # gaps counted as zero (= mean0); only for depth tracks
raw = bw.intervals('chr1', 1_000_000, 1_001_000) # [(start,end,value),...] the unresampled stored runs
bw.close()Goal: Turn a coverage bedGraph into an indexed, browser-ready bigWig.
Approach: Coordinate-sort the bedGraph, supply a chrom.sizes whose names and lengths match the bedGraph exactly, and run bedGraphToBigWig (which builds the index + zoom levels).
sort -k1,1 -k2,2n coverage.bedGraph > coverage.sorted.bedGraph # bedGraphToBigWig REQUIRES sorted, non-overlapping input
cut -f1,2 reference.fa.fai > chrom.sizes # or fetchChromSizes hg38 > chrom.sizes
bedGraphToBigWig coverage.sorted.bedGraph chrom.sizes coverage.bwWriting directly with pyBigWig -- addHeader (ordered chrom list) MUST precede addEntries, and entries must be added in sorted (chrom, start) order matching the header:
import pyBigWig
bw = pyBigWig.open('out.bw', 'w')
bw.addHeader([('chr1', 248956422)]) # ordered (name,length); maxZooms default 10; maxZooms=0 disables zoom and breaks IGV
bw.addEntries(['chr1'], [0], ends=[100], values=[1.5]) # mode (a) variable intervals
# mode (b) variableStep: bw.addEntries('chr1', [0,100], values=[1.5,2.3], span=20)
# mode (c) fixedStep: bw.addEntries('chr1', 0, values=[1.5,2.3], span=20, step=30)
bw.close() # close() builds the R-tree index + zoom ladderbigwigCompare -b1 treat.bw -b2 control.bw -o log2ratio.bw --operation log2 --pseudocount 1 # NOT --ratio (older flag name)
multiBigwigSummary BED-file -b a.bw b.bw -o scores.npz --BED regions.bed # then plotCorrelation/plotPCA
computeMatrix reference-point -S signal.bw -R tss.bed -b 2000 -a 2000 -o matrix.gz # anchored on TSS
plotHeatmap -m matrix.gz -o heatmap.pngBoth bigwigCompare and multiBigwigSummary use mean-per-bin, so the zoom-level dilution caveat above applies; computeMatrix --missingDataAsZero is the same NaN-vs-zero fork inside deepTools.
Trigger: bw.stats(chrom, start, end) (default type='mean') over a region wide relative to the feature. Mechanism: the mean dilutes a narrow tall peak toward background. Symptom: "no signal here" that a browser zoom-in contradicts. Fix: use type='max' (or nBins>1, or values()) for narrow features.
Trigger: shipping default-exact stats() numbers into a table/threshold. Mechanism: the value is computed from the nearest zoom level, not base data, at up to 16x coarser granularity. Symptom: plausible numbers a reviewer cannot reproduce. Fix: pass exact=True (or use values()/bigWigAverageOverBed) whenever a number enters a result.
Trigger: np.mean(bw.values(...)) over a track with gaps, or mean0 on a rate track. Mechanism: np.mean poisons to NaN; nan_to_num/mean0/--missingDataAsZero averages real gaps as zeros. Symptom: a >3x swing or a NaN where a number was expected. Fix: decide biologically -- coverage track -> mean0/zero; rate/ratio track -> mean/np.nanmean.
Trigger: writing entries before the header, or in non-sorted order. Mechanism: the chrom list and offsets must exist and be ordered before data is appended. Symptom: runtime error or a corrupt file. Fix: addHeader([(chrom,length),...]) first, add entries in (chrom, start) order matching the header; close() to finalize.
Trigger: bedGraphToBigWig with a chrom.sizes from a different assembly or naming (chr1 vs 1). Mechanism: the builder validates intervals against chrom lengths. Symptom: chromosome not found, or silently dropped/truncated intervals. Fix: derive chrom.sizes from the same reference (cut -f1,2 ref.fa.fai); harmonize naming; sort first.
Trigger: storing called peaks as a bigWig. Mechanism: bigWig is continuous signal; discrete features with per-feature metadata belong in bigBed. Symptom: lost boundaries/names, or an enormous one-interval-per-base file. Fix: signal -> bigWig; intervals/features -> bigBed.
| Threshold | Source | Rationale |
|---|---|---|
exact=True when a number enters a result | pyBigWig design | default exact=False reads zoom levels (up to ~16x coarser than data); fine for exploration only |
| Zoom ladder: smallest bin ~16x mean interval size, each level 4x the previous | Kent 2010 convention | the resolution at which a wide query is answered; bigWigInfo -zooms shows the actual levels |
| Index < ~1% of data; ~10x smaller than bedGraph | Kent 2010 | order-of-magnitude; exact ratio is data-dependent (sparse vs dense) |
bedGraph must be sorted -k1,1 -k2,2n, non-overlapping | bedGraphToBigWig requirement | signal is a function (one value per base); unsorted/overlapping input errors out |
computeMatrix flank -b/-a 2000-3000 bp at TSS | metaprofile convention | captures promoter-proximal signal; widen for distal features; state the value used |
| bin size (e.g. 10-50 bp) | resolution vs file size | finer bins preserve narrow features but enlarge the file; state the bin when reading values back |
| Error / symptom | Cause | Solution |
|---|---|---|
| Region reads flat but browser shows a peak | wide mean query diluted the peak | use type='max', more bins, or zoom to feature resolution |
| Per-region numbers a reviewer cannot reproduce | exact=False zoom approximation | re-extract with exact=True / bigWigAverageOverBed |
np.mean returns NaN | gaps in the track (NaN, not 0) | np.nanmean, or np.nan_to_num if gaps are biologically zero |
mean and mean0 differ a lot in bigWigAverageOverBed | track is sparsely covered | pick the column by biology (depth -> mean0; rate -> mean) |
bedGraphToBigWig errors / drops intervals | unsorted input or chrom-name/length mismatch | sort -k1,1 -k2,2n; match chrom.sizes to the reference |
| IGV will not render zoom-out | bigWig built with maxZooms=0 | rebuild with zoom levels (default 10) |
bigwigCompare rejects --ratio | flag renamed | use --operation log2 |
© GPTomics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files in genome-intervals/bigwig-tracks of GPTomics/bioSkills.
Open the folder on GitHubat commit d91ed3d
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.
Bio Genome Intervals Bigwig Tracks 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Bio Genome Intervals Bigwig Tracks this skillGPTomics/bioSkills | 1.2k | 1 repos | ~4.8k | Automated safety check: Pass | MIT | |
| 13C Metabolic Flux AnalysisK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Tooluniverse Epigenomicswu-yc/LabClaw | 1.1k | 2 repos | ~14k | Automated safety check: Pass | None | |
| Alphagenome Single Variant Analysisgoogle-deepmind/science-skills | 3.2k | 2 repos | ~3k | Automated safety check: Notes | Apache-2.0 | |
| Singlecell Qcxuzhougeng/wisp-science | 1k | — | ~1.6k | Automated safety check: Pass | AGPL-3.0 | |
| Cantera Ignition DelayK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~2.2k | Automated safety check: Pass | MIT |
K-Dense-AI/scientific-agent-skills
Estimates reaction fluxes inside cells from steady-state carbon-13 labeling data with a bundled mfapy-based solver, and reports which fluxes the data pin down.
wu-yc/LabClaw
Production-ready genomics and epigenomics data processing for BixBench questions.
google-deepmind/science-skills
Analyzes genetic variant effects on gene expression (RNA-seq), chromatin accessibility (DNASE), histone marks (ChIP), and transcription factors using the AlphaGenome API.
xuzhougeng/wisp-science
A skill your agent uses when designing, reviewing, or implementing single-cell RNA-seq QC in Python or R with a human-in-the-loop, data-driven approach.
K-Dense-AI/scientific-agent-skills
Runs Cantera constant-volume or constant-pressure ignition simulations and reports temperature-based ignition delay with mechanism provenance and checks.
ygidtu/trackplot
Generate sashimi-style genome visualization plots (coverage, line, heatmap, IGV read-by-read, HiC, circRNA, motif) from BAM/bigWig/depth/HiC inputs.
GPTomics/bioSkills
Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.
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.
GPTomics/bioSkills
Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.
GPTomics/bioSkills
Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.
GPTomics/bioSkills
Filters BAM alignments by FLAG bits, mapping quality and regions with samtools view or pysam, with recipes for common keep and drop cases.
GPTomics/bioSkills
Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.
Categories
Reads, queries, and writes bigWig indexed binary signal tracks (coverage, fold-change, conservation, methylation-rate) with pyBigWig (Python) and the UCSC Kent tools (bedGraphToBigWig…. Bio Genome Intervals Bigwig Tracks is an agent skill from GPTomics/bioSkills. Reads, queries, and writes bigWig indexed binary signal tracks (coverage, fold-change, conservation, methylation-rate) with pyBigWig (Python) and the UCSC Kent tools (bedGraphToBigWig, bigWigToBedGraph, bigWigInfo, bigWigSummary, bigWigAverageOverBed) and deepTools (multiBigwigSummary, computeMatrix, bigwigCompare).
Bio Genome Intervals Bigwig Tracks fits situations like: extracting signal at regions; computing mean signal per gene/peak; building a browser track from bedGraph; comparing tracks.
Run `npx skills add GPTomics/bioSkills --skill bio-genome-intervals-bigwig-tracks -a claude-code`. Or copy the skill folder (genome-intervals/bigwig-tracks in GPTomics/bioSkills) into .claude/skills/bio-genome-intervals-bigwig-tracks in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GPTomics/bioSkills --skill bio-genome-intervals-bigwig-tracks -a codex`. Or copy the skill folder (genome-intervals/bigwig-tracks in GPTomics/bioSkills) into .agents/skills/bio-genome-intervals-bigwig-tracks in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GPTomics/bioSkills --skill bio-genome-intervals-bigwig-tracks -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-genome-intervals-bigwig-tracks, .gemini/skills/bio-genome-intervals-bigwig-tracks, .github/skills/bio-genome-intervals-bigwig-tracks and .opencode/skills/bio-genome-intervals-bigwig-tracks in your project.
Going by SKILL.md and its folder, Bio Genome Intervals Bigwig Tracks needs a shell and Python for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3; A Bash shell.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
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.
Bio Genome Intervals Bigwig Tracks is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
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.
Skills that share tags, products or a category with Bio Genome Intervals Bigwig Tracks: 13C Metabolic Flux Analysis (K-Dense-AI/scientific-agent-skills, 48k stars), Tooluniverse Epigenomics (wu-yc/LabClaw, 1.1k stars), Alphagenome Single Variant Analysis (google-deepmind/science-skills, 3.2k stars) and Singlecell Qc (xuzhougeng/wisp-science, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.