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éesreferences/overlap.md- Indexation IGD, détection de chevauchements et opérations d'ensemblereferences/coverage.md- Génération de piste de couverture avec uniwigreferences/tokenizers.md- Tokenisation génomique pour applications MLreferences/refget.md- Gestion des séquences de référence et résumésreferences/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>