alterlab-gtars — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited alterlab-gtars (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Gtars (from databio, the lab behind geniml) is a high-performance Rust toolkit for manipulating, analyzing, and processing genomic interval data. Its primary purpose is to be the performance-critical backend for geniml, a Python library for machine learning on genomic intervals. It provides overlap/set operations, IGD overlap indexing, coverage (uniwig) tracks, region tokenization for ML, single-cell fragment pseudobulking, and GA4GH refget sequence-collection management.
Use this skill when working with:
Version note: examples are verified against the `gtars` Python package v0.8 (PyPI). The Python API is exposed through submodules —gtars.models,gtars.tokenizers,gtars.refget,gtars.utils— NOT as flat top-level functions. There is nogtars.igdorgtars.uniwigPython submodule; IGD building and uniwig track generation are CLI-only.
uv pip install gtars # or: uv add gtarsImport surface (verified, v0.8):
from gtars.models import RegionSet, Region, RegionSetList
from gtars.tokenizers import Tokenizer, tokenize_fragment_file
from gtars import refget # RefgetStore, digest_fasta, sha512t24u_digest, ...
from gtars import utils # read/write .gtok token filesThe CLI ships as the gtars-cli crate (binary name gtars) and is installed with Cargo. Most subcommands are behind feature flags:
# All commonly used commands
cargo install gtars-cli --features "uniwig overlaprs igd bbcache scoring fragsplit genomicdist"
# Or a subset
cargo install gtars-cli --features "uniwig igd"Available CLI subcommands: igd, overlaprs, uniwig, bbcache, pb (fragment pseudobulking), scoring, genomicdist, ranges, consensus, prep. Flag sets differ per subcommand and evolve across versions — always confirm with gtars <command> --help.
Gtars is organized into specialized modules, each focused on specific genomic analysis tasks:
Detect overlaps and compute set operations / similarity between region sets with RegionSet (Python), or index a large interval database with IGD (CLI).
When to use:
Quick example (Python):
from gtars.models import RegionSet
peaks = RegionSet("chip_peaks.bed")
promoters = RegionSet("promoters.bed")
# Regions in peaks that overlap a promoter (the real method is subset_by_overlaps)
in_promoters = peaks.subset_by_overlaps(promoters)
in_promoters.to_bed("peaks_in_promoters.bed")
print(peaks.count_overlaps(promoters)) # per-region overlap counts
print(peaks.jaccard(promoters)) # similarity scoreFor querying a large reference database many times, build an IGD index once via the CLI (gtars igd create ...) and search it (gtars igd search ...). See references/overlap.md.
Generate coverage / accumulation tracks from a BED or BAM file with the uniwig CLI subcommand.
When to use:
Quick example (CLI):
# uniwig reads a sorted BED/BAM and writes accumulation tracks.
# Flags differ by version; confirm with `gtars uniwig --help`.
gtars uniwig --file fragments.bed --filetype bed \
--fileheader coverage --outputtype bwSee references/coverage.md for verified flags and RegionSet.coverage() for an in-memory alternative.
Convert genomic regions into discrete tokens for ML (the preprocessing layer geniml builds on).
When to use:
Quick example (Python):
from gtars.tokenizers import Tokenizer
from gtars.models import Region
tokenizer = Tokenizer.from_bed("universe.bed") # vocab = the universe BED
tokens = tokenizer.tokenize([Region("chr1", 1000, 2000, None)]) # -> ['chr1:1000-2000']
ids = tokenizer.convert_tokens_to_ids(tokens) # -> [<int>]See references/tokenizers.md. Note: the class is Tokenizer (there is no TreeTokenizer).
Compute GA4GH refget digests and manage/retrieve reference sequences.
When to use:
Quick example (Python):
from gtars import refget
# Digest a FASTA into a GA4GH SequenceCollection (no sequence data loaded)
collection = refget.digest_fasta("hg38.fa")
# Or a one-off sequence digest
d = refget.sha512t24u_digest("ACGTACGT") # 'GS_...'-style truncated SHA-512/24See references/refget.md for RefgetStore (load, store, and get_substring).
Split a single-cell fragment file into pseudobulks based on a cluster/cell-group mapping.
When to use:
Quick example (CLI):
# The fragsplit feature exposes the `pb` (pseudobulk) subcommand.
gtars pb --fragments fragments.bed.gz --mapping cluster_mapping.tsvThe Python side also offers gtars.tokenizers.tokenize_fragment_file(...) for tokenizing fragments directly. See references/cli.md.
Score region/fragment files against reference datasets with the scoring CLI subcommand.
When to use:
gtars scoring --help # confirm subcommands and flags for your installed versionIdentify peaks overlapping promoters (Python):
from gtars.models import RegionSet
peaks = RegionSet("chip_peaks.bed")
promoters = RegionSet("promoters.bed")
overlapping_peaks = peaks.subset_by_overlaps(promoters)
overlapping_peaks.to_bed("peaks_in_promoters.bed")
# Iterate results (regions expose .chr/.start/.end)
for r in overlapping_peaks:
print(r.chr, r.start, r.end)Index a large reference database once, then search it many times:
# Build the IGD database from a directory or list of BED files
gtars igd create --help # confirm the exact input/output flags for your version
# Search the database with query regions
gtars igd search --helpPrepare genomic regions for an ML model:
from gtars.tokenizers import Tokenizer
from gtars.models import RegionSet
# Step 1: Build a tokenizer from the universe BED (defines the vocabulary)
tokenizer = Tokenizer.from_bed("universe.bed")
# Step 2: Tokenize a region set (tokenize accepts a RegionSet or a list of Region)
regions = RegionSet("training_peaks.bed")
tokens = tokenizer.tokenize(regions) # list of 'chr:start-end' strings
ids = tokenizer.convert_tokens_to_ids(tokens) # integer IDs for the model
# Step 3: feed `ids` to geniml or a custom model (see alterlab-geniml for training)Use Python API when:
Use CLI when:
RegionSet / Region operations, set ops, overlaps, exportRefgetStoregtars is the Rust performance backend for geniml (databio's ML-on-genomic-intervals library). Use gtars for the heavy interval ops and tokenization; use geniml (skill alterlab-geniml) for embedding/model training built on top of those tokens.
.bed.gz), with a separate cluster-mapping file for pbThis package's surface differs between releases and the Python and CLI APIs are NOT mirror images. Before relying on an unfamiliar method or flag, confirm against the installed version:
uv run python -c "from gtars import models, tokenizers, refget; print(dir(models), dir(tokenizers), dir(refget))"
gtars <command> --help~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.