gtars

Par mkurman · zorai

Boîte à outils haute performance pour l'analyse d'intervalles génomiques en Rust avec des liaisons Python. À utiliser pour travailler avec des régions génomiques, des fichiers BED, des pistes de couverture, la détection de chevauchements, la tokenisation pour les modèles ML, ou l'analyse de fragments dans des applications de génomique computationnelle et d'apprentissage automatique.

npx skills add https://github.com/mkurman/zorai --skill gtars

Gtars : Outils et algorithmes génomiques en Rust

Aperçu

Gtars est une boîte à outils Rust haute performance pour manipuler, analyser et traiter les données d'intervalles génomiques. Elle fournit des outils spécialisés pour la détection de chevauchements, l'analyse de couverture, la tokenisation pour l'apprentissage automatique et la gestion de séquences de référence.

Utilisez cette skill pour :

  • Les fichiers d'intervalles génomiques (format BED)
  • La détection de chevauchements entre régions génomiques
  • La génération de pistes de couverture (WIG, BigWig)
  • Le prétraitement génomique et la tokenisation pour ML
  • L'analyse de fragments en génomique monocellulaire
  • La récupération et la validation de séquences de référence

Installation

Installation Python

Installez les liaisons Python gtars :

uv pip install gtars

Installation CLI

Installez les outils en ligne de commande (nécessite Rust/Cargo) :

# Installer avec toutes les fonctionnalités
cargo install gtars-cli --features "uniwig overlaprs igd bbcache scoring fragsplit"

# Ou installer des fonctionnalités spécifiques seulement
cargo install gtars-cli --features "uniwig overlaprs"

Bibliothèque Rust

Ajoutez à Cargo.toml pour les projets Rust :

[dependencies]
gtars = { version = "0.1", features = ["tokenizers", "overlaprs"] }

Capacités principales

Gtars est organisée en modules spécialisés, chacun focalisé sur des tâches d'analyse génomique spécifiques :

1. Détection de chevauchements et indexation IGD

Détectez efficacement les chevauchements entre intervalles génomiques en utilisant la structure de données Integrated Genome Database (IGD).

Quand l'utiliser :

  • Trouver les éléments régulateurs qui se chevauchent
  • L'annotation de variantes
  • Comparer des pics ChIP-seq
  • Identifier les caractéristiques génomiques partagées

Exemple rapide :

import gtars

# Construire l'index IGD et interroger les chevauchements
igd = gtars.igd.build_index("regions.bed")
overlaps = igd.query("chr1", 1000, 2000)

Consultez references/overlap.md pour la documentation complète sur la détection de chevauchements.

2. Génération de pistes de couverture

Générez des pistes de couverture à partir de données de séquençage avec le module uniwig.

Quand l'utiliser :

  • Profils d'accessibilité ATAC-seq
  • Visualisation de couverture ChIP-seq
  • Couverture en lecture RNA-seq
  • Analyse de couverture différentielle

Exemple rapide :

# Générer une piste de couverture BigWig
gtars uniwig generate --input fragments.bed --output coverage.bw --format bigwig

Consultez references/coverage.md pour les workflows d'analyse de couverture détaillés.

3. Tokenisation génomique

Convertissez les régions génomiques en jetons discrets pour les applications d'apprentissage automatique, particulièrement pour les modèles d'apprentissage profond sur données génomiques.

Quand l'utiliser :

  • Prétraitement pour les modèles ML génomiques
  • Intégration avec la bibliothèque geniml
  • Création d'encodages positionnels
  • Entraînement de modèles transformer sur séquences génomiques

Exemple rapide :

from gtars.tokenizers import TreeTokenizer

tokenizer = TreeTokenizer.from_bed_file("training_regions.bed")
token = tokenizer.tokenize("chr1", 1000, 2000)

Consultez references/tokenizers.md pour la documentation sur la tokenisation.

4. Gestion des séquences de référence

Gérez les séquences du génome de référence et calculez les résumés en suivant le protocole GA4GH refget.

Quand l'utiliser :

  • Valider l'intégrité du génome de référence
  • Extraire des séquences génomiques spécifiques
  • Calculer les résumés de séquence
  • Comparaisons de référence croisée

Exemple rapide :

# Charger la référence et extraire les séquences
store = gtars.RefgetStore.from_fasta("hg38.fa")
sequence = store.get_subsequence("chr1", 1000, 2000)

Consultez references/refget.md pour les opérations sur séquences de référence.

5. Traitement de fragments

Divisez et analysez les fichiers de fragments, particulièrement utile pour les données génomiques monocellulaires.

Quand l'utiliser :

  • Traiter les données ATAC-seq monocellulaires
  • Diviser les fragments par codes-barres cellulaires
  • Analyse de fragments basée sur les clusters
  • Contrôle de qualité des fragments

Exemple rapide :

# Diviser les fragments par clusters
gtars fragsplit cluster-split --input fragments.tsv --clusters clusters.txt --output-dir ./by_cluster/

Consultez references/cli.md pour les commandes de traitement de fragments.

6. Notation de fragments

Évaluez les chevauchements de fragments par rapport aux ensembles de données de référence.

Quand l'utiliser :

  • Évaluer l'enrichissement des fragments
  • Comparer les données expérimentales aux références
  • Calcul de métriques de qualité
  • Notation par lot sur plusieurs échantillons

Exemple rapide :

# Évaluer les fragments par rapport à la référence
gtars scoring score --fragments fragments.bed --reference reference.bed --output scores.txt

Workflows courants

Workflow 1 : Analyse de chevauchement de pics

Identifiez les caractéristiques génomiques qui se chevauchent :

import gtars

# Charger deux ensembles de régions
peaks = gtars.RegionSet.from_bed("chip_peaks.bed")
promoters = gtars.RegionSet.from_bed("promoters.bed")

# Trouver les chevauchements
overlapping_peaks = peaks.filter_overlapping(promoters)

# Exporter les résultats
overlapping_peaks.to_bed("peaks_in_promoters.bed")

Workflow 2 : Pipeline de piste de couverture

Générez des pistes de couverture pour la visualisation :

# Étape 1 : Générer la couverture
gtars uniwig generate --input atac_fragments.bed --output coverage.wig --resolution 10

# Étape 2 : Convertir en BigWig pour les navigateurs génomiques
gtars uniwig generate --input atac_fragments.bed --output coverage.bw --format bigwig

Workflow 3 : Prétraitement ML

Préparez les données génomiques pour l'apprentissage automatique :

from gtars.tokenizers import TreeTokenizer
import gtars

# Étape 1 : Charger les régions d'entraînement
regions = gtars.RegionSet.from_bed("training_peaks.bed")

# Étape 2 : Créer le tokenizer
tokenizer = TreeTokenizer.from_bed_file("training_peaks.bed")

# Étape 3 : Tokeniser les régions
tokens = [tokenizer.tokenize(r.chromosome, r.start, r.end) for r in regions]

# Étape 4 : Utiliser les jetons dans le pipeline ML
# (intégrer avec geniml ou des modèles personnalisés)

Utilisation Python vs CLI

Utilisez l'API Python quand :

  • Intégrer avec des pipelines d'analyse
  • Besoin de contrôle programmatique
  • Travail avec NumPy/Pandas
  • Construire des workflows personnalisés

Utilisez CLI quand :

  • Analyses ponctuelles rapides
  • Scripts shell
  • Traitement par lot de fichiers
  • Prototypage de workflows

Documentation de référence

Documentation complète des modules :

  • references/python-api.md - Référence complète de l'API Python avec opérations RegionSet, intégration NumPy et export de données
  • references/overlap.md - Indexation IGD, détection de chevauchements et opérations d'ensemble
  • references/coverage.md - Génération de piste de couverture avec uniwig
  • references/tokenizers.md - Tokenisation génomique pour applications ML
  • references/refget.md - Gestion des séquences de référence et résumés
  • references/cli.md - Référence complète de l'interface en ligne de commande

Intégration avec geniml

Gtars constitue la base du package Python geniml, fournissant les opérations d'intervalles génomiques essentielles pour les workflows d'apprentissage automatique. Lorsque vous travaillez sur des tâches liées à geniml, utilisez gtars pour le prétraitement des données et la tokenisation.

Caractéristiques de performance

  • Performance Rust native : Exécution rapide avec surcharge mémoire réduite
  • Traitement parallèle : Opérations multi-threads pour les grands ensembles de données
  • Efficacité mémoire : Support du streaming et des fichiers memory-mapped
  • Opérations zero-copy : Intégration NumPy avec copie de données minimale

Formats de données

Gtars fonctionne avec les formats génomiques standard :

  • BED : Intervalles génomiques (3 colonnes ou étendus)
  • WIG/BigWig : Pistes de couverture
  • FASTA : Séquences de référence
  • Fragment TSV : Fichiers de fragments monocellulaires avec codes-barres

Gestion des erreurs et débogage

Activez la journalisation détaillée pour le dépannage :

import gtars

# Activer la journalisation de débogage
gtars.set_log_level("DEBUG")
# Mode verbeux CLI
gtars --verbose <command>

Skills similaires