Communitygithub.com

tiledbvcf

Stockage et récupération efficaces de données de variants génomiques via TileDB. Ingestion VCF/BCF évolutive, ajout incrémental d'échantillons, stockage compressé, requêtes parallèles et export pour la génomique des populations.

Qu'est-ce que tiledbvcf ?

Cette compétence fournit une interface complète pour utiliser TileDB-VCF, une bibliothèque C++ haute performance avec des interfaces Python et en ligne de commande, conçue pour le stockage et la récupération efficaces de données de variants génomiques. Bâtie sur la technologie de tableaux creux de TileDB, elle permet l'ingestion évolutive de fichiers VCF/BCF (échantillons uniques uniquement avec index), l'ajout incrémental de nouveaux échantillons sans opérations de fusion coûteuses, et des requêtes parallèles efficaces sur des données stockées localement ou dans le cloud (S3, Azure, GCS). Les utilisations typiques incluent la préparation de données pour les études d'association pangénomiques (GWAS), l'analyse de variants rares, la stratification des populations, les calculs de fréquences alléliques et le contrôle qualité de grandes cohortes. La compétence couvre les concepts fondamentaux (coordonnées génomiques en base 1, gestion de la mémoire, intégration cloud), les fonctionnalités de base (création d'ensembles de données, ingestion, requêtes, export), les workflows avancés (analyse de fréquence allélique, contrôle qualité) et la migration vers TileDB-Cloud pour des charges de travail de production à grande échelle.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/tiledbvcf

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

TileDB-VCF

Vue d'ensemble

TileDB-VCF est une bibliothèque C++ haute performance avec des interfaces Python et en ligne de commande pour le stockage et la récupération efficaces de données d'appel de variants génomiques. Bâtie sur la technologie de tableaux creux de TileDB, elle permet l'ingestion évolutive de fichiers VCF/BCF, l'ajout incrémental d'échantillons sans opérations de fusion coûteuses, et des requêtes parallèles efficaces sur des données de variants stockées localement ou dans le cloud.

Quand utiliser cette compétence

Cette compétence doit être utilisée lorsque :

  • Vous apprenez les concepts et workflows de TileDB-VCF
  • Vous prototypiez des analyses et pipelines génomiques
  • Vous travaillez avec des ensembles de données de taille petite à moyenne (< 1000 échantillons)
  • Vous avez besoin d'ajouter incrémentalement de nouveaux échantillons à des ensembles de données existants
  • Vous avez besoin d'interroger efficacement des régions génomiques spécifiques sur de nombreux échantillons
  • Vous travaillez avec des données de variants stockées dans le cloud (S3, Azure, GCS)
  • Vous avez besoin d'exporter des sous-ensembles de grands ensembles de données VCF
  • Vous construisez des bases de données de variants pour des études de cohorte
  • Vous menez des projets éducatifs et du développement de méthodes
  • La performance est critique pour les opérations sur les données de variants

Démarrage rapide

Installation

Méthode préférée : Conda/Mamba

# Entrez les deux lignes suivantes si vous êtes sur un Mac M1
CONDA_SUBDIR=osx-64
conda config --env --set subdir osx-64

# Créez l'environnement conda
conda create -n tiledb-vcf "python<3.10"
conda activate tiledb-vcf

# Mamba est une alternative plus rapide et plus fiable à conda
conda install -c conda-forge mamba

# Installez TileDB-Py et TileDB-VCF, en alignement avec d'autres bibliothèques utiles
mamba install -y -c conda-forge -c bioconda -c tiledb tiledb-py tiledbvcf-py pandas pyarrow numpy

Alternative : Images Docker

docker pull tiledb/tiledbvcf-py     # Interface Python
docker pull tiledb/tiledbvcf-cli    # Interface en ligne de commande

Exemples de base

Créer et remplir un ensemble de données :

import tiledbvcf

# Créez un nouvel ensemble de données
ds = tiledbvcf.Dataset(uri="my_dataset", mode="w",
                      cfg=tiledbvcf.ReadConfig(memory_budget=1024))

# Ingérez des fichiers VCF (doivent être mono-échantillon avec index)
# Exigences :
# - Les VCF doivent être mono-échantillon (pas multi-échantillons)
# - Doivent avoir des index : .csi (bcftools) ou .tbi (tabix)
ds.ingest_samples(["sample1.vcf.gz", "sample2.vcf.gz"])

Interroger les données de variants :

# Ouvrez un ensemble de données existant en lecture
ds = tiledbvcf.Dataset(uri="my_dataset", mode="r")

# Interrogez des régions et échantillons spécifiques
df = ds.read(
    attrs=["sample_name", "pos_start", "pos_end", "alleles", "fmt_GT"],
    regions=["chr1:1000000-2000000", "chr2:500000-1500000"],
    samples=["sample1", "sample2", "sample3"]
)
print(df.head())

Exporter vers VCF :

import os

# Exportez deux échantillons VCF
ds.export(
    regions=["chr21:8220186-8405573"],
    samples=["HG00101", "HG00097"],
    output_format="v",
    output_dir=os.path.expanduser("~"),
)

Fonctionnalités principales

1. Création et ingestion d'ensembles de données

Créez des ensembles de données TileDB-VCF et ingérez incrémentalement des données de variants à partir de plusieurs fichiers VCF/BCF. Cela est approprié pour la construction de bases de données de génomique des populations et d'études de cohorte.

Exigences :

  • VCF mono-échantillon uniquement : Les VCF multi-échantillons ne sont pas pris en charge
  • Fichiers d'index requis : Les fichiers VCF/BCF doivent avoir des index (.csi ou .tbi)

Opérations courantes :

  • Créez de nouveaux ensembles de données avec des schémas de tableaux optimisés
  • Ingérez un ou plusieurs fichiers VCF/BCF en parallèle
  • Ajoutez de nouveaux échantillons de manière incrémentielle sans retraiter les données existantes
  • Configurez l'utilisation de la mémoire et les paramètres de compression
  • Gérez divers formats VCF et champs INFO/FORMAT
  • Reprenez les processus d'ingestion interrompus
  • Validez l'intégrité des données pendant l'ingestion

2. Interrogation et filtrage efficaces

Interrogez les données de variants avec des performances élevées sur les régions génomiques, les échantillons et les attributs de variants. Cela est approprié pour les études d'association, la découverte de variants et l'analyse de populations.

Opérations courantes :

  • Interrogez des régions génomiques spécifiques (une ou plusieurs)
  • Filtrez par noms d'échantillons ou groupes d'échantillons
  • Extrayez des attributs spécifiques de variants (position, allèles, génotypes, qualité)
  • Accédez efficacement aux champs INFO et FORMAT
  • Combinez le filtrage spatial et basé sur les attributs
  • Diffusez de grands résultats de requêtes
  • Effectuez des agrégations sur les échantillons ou les régions

3. Exportation et interopérabilité des données

Exportez les données dans divers formats pour une analyse en aval ou une intégration avec d'autres outils génomiques. Cela est approprié pour le partage d'ensembles de données, la création de sous-ensembles d'analyse ou l'alimentation d'autres pipelines.

Opérations courantes :

  • Exportez aux formats VCF/BCF standard
  • Générez des fichiers TSV avec des champs sélectionnés
  • Créez des sous-ensembles spécifiques aux échantillons/régions
  • Maintenez la provenance et les métadonnées des données
  • Export sans perte préservant toutes les annotations
  • Formats de sortie compressés
  • Export en continu pour les grands ensembles de données

4. Workflows de génomique des populations

TileDB-VCF excelle dans les analyses de génomique des populations à grande échelle nécessitant un accès efficace aux données de variants sur de nombreux échantillons et régions génomiques.

Workflows courants :

  • Préparation de données pour les études d'association pangénomiques (GWAS)
  • Tests de charge de variants rares
  • Analyse de stratification des populations
  • Calculs de fréquences alléliques entre populations
  • Contrôle qualité sur de grandes cohortes
  • Annotation et filtrage de variants
  • Analyse comparative entre populations

Concepts clés

Schéma de tableau et modèle de données

Modèle de données TileDB-VCF :

  • Les variants sont stockés sous forme de tableaux creux avec les coordonnées génomiques comme dimensions
  • Les échantillons sont stockés comme attributs permettant des requêtes efficaces spécifiques aux échantillons
  • Les champs INFO et FORMAT sont préservés avec les types de données d'origine
  • Compression et partitionnement automatiques pour un stockage optimal

Configuration du schéma :

# Schéma personnalisé avec des étendues de tuiles spécifiques
config = tiledbvcf.ReadConfig(
    memory_budget=2048,  # Mo
    region_partition=(0, 3095677412),  # Génome complet
    sample_partition=(0, 10000)  # Jusqu'à 10 000 échantillons
)

Systèmes de coordonnées et régions

Critique : TileDB-VCF utilise des coordonnées génomiques en base 1 selon la norme VCF :

  • Les positions sont en base 1 (la première base est la position 1)
  • Les plages sont inclusives aux deux extrémités
  • La région "chr1:1000-2000" inclut les positions 1000 à 2000 (1001 bases au total)

Formats de spécification de région :

# Région unique
regions = ["chr1:1000000-2000000"]

# Régions multiples
regions = ["chr1:1000000-2000000", "chr2:500000-1500000"]

# Chromosome entier
regions = ["chr1"]

# Style BED (base 0, demi-ouvert converti en interne)
regions = ["chr1:999999-2000000"]  # Équivalent à la base 1 chr1:1000000-2000000

Gestion de la mémoire

Considérations sur les performances :

  1. Définissez un budget mémoire approprié en fonction de la mémoire système disponible
  2. Utilisez des requêtes en continu pour de très grands ensembles de résultats
  3. Partitionnez les grandes ingestions pour éviter l'épuisement de la mémoire
  4. Configurez le cache de tuiles pour un accès répété aux régions
  5. Utilisez l'ingestion parallèle pour plusieurs fichiers
  6. Optimisez les requêtes de région en combinant les régions proches

Intégration du stockage cloud

TileDB-VCF fonctionne de manière transparente avec le stockage cloud :

# Ensemble de données S3
ds = tiledbvcf.Dataset(uri="s3://bucket/dataset", mode="r")

# Azure Blob Storage
ds = tiledbvcf.Dataset(uri="azure://container/dataset", mode="r")

# Google Cloud Storage
ds = tiledbvcf.Dataset(uri="gcs://bucket/dataset", mode="r")

Pièges courants

  1. Épuisement de la mémoire pendant l'ingestion : Utilisez un budget mémoire approprié et un traitement par lots pour les grands fichiers VCF
  2. Requêtes de région inefficaces : Combinez les régions proches au lieu de nombreuses requêtes séparées
  3. Noms d'échantillons manquants : Assurez-vous que les noms d'échantillons dans les en-têtes VCF correspondent aux spécifications de la requête
  4. Confusion du système de coordonnées : N'oubliez pas que TileDB-VCF utilise des coordonnées en base 1 comme la norme VCF
  5. Grands ensembles de résultats : Utilisez la diffusion en continu ou la pagination pour les requêtes renvoyant des millions de variants
  6. Permissions cloud : Assurez une authentification appropriée pour l'accès au stockage cloud
  7. Accès concurrent : Plusieurs scripteurs sur le même ensemble de données peuvent provoquer une corruption — utilisez un verrouillage approprié

Utilisation en ligne de commande

TileDB-VCF fournit une interface en ligne de commande avec les sous-commandes suivantes :

Sous-commandes disponibles :

  • create - Crée un ensemble de données TileDB-VCF vide
  • store - Ingère des échantillons dans un ensemble de données TileDB-VCF
  • export - Exporte des données à partir d'un ensemble de données TileDB-VCF
  • list - Liste tous les noms d'échantillons présents dans un ensemble de données TileDB-VCF
  • stat - Affiche des statistiques de haut niveau sur un ensemble de données TileDB-VCF
  • utils - Utilitaires pour travailler avec un ensemble de données TileDB-VCF
  • version - Affiche les informations de version et quitte
# Créez un ensemble de données vide
tiledbvcf create --uri my_dataset

# Ingérez des échantillons (nécessite des VCF mono-échantillon avec index)
tiledbvcf store --uri my_dataset --samples sample1.vcf.gz,sample2.vcf.gz

# Exportez les données
tiledbvcf export --uri my_dataset \
  --regions "chr1:1000000-2000000" \
  --sample-names "sample1,sample2"

# Listez tous les échantillons
tiledbvcf list --uri my_dataset

# Affichez les statistiques de l'ensemble de données
tiledbvcf stat --uri my_dataset

Fonctionnalités avancées

Analyse de fréquence allélique

# Calculez les fréquences alléliques
af_df = tiledbvcf.read_allele_frequency(
    uri="my_dataset",
    regions=["chr1:1000000-2000000"],
    samples=["sample1", "sample2", "sample3"]
)

Contrôle qualité des échantillons

# Effectuez un contrôle qualité des échantillons
qc_results = tiledbvcf.sample_qc(
    uri="my_dataset",
    samples=["sample1", "sample2"]
)

Configurations personnalisées

# Configuration avancée
config = tiledbvcf.ReadConfig(
    memory_budget=4096,
    tiledb_config={
        "sm.tile_cache_size": "1000000000",
        "vfs.s3.region": "us-east-1"
    }
)

Ressources

Obtenir de l'aide

Ressources open source TileDB-VCF

Documentation open source :

Ressources TileDB-Cloud

Pour la génomique à grande échelle/production :

Pour commencer :

Passage à l'échelle avec TileDB-Cloud

Lorsque vos charges de travail génomiques dépassent le traitement sur un seul nœud, TileDB-Cloud fournit des capacités de niveau entreprise pour les pipelines de génomique en production.

Remarque : Cette section couvre les capacités de TileDB-Cloud sur la base de la documentation disponible. Pour les détails complets de l'API et les fonctionnalités actuelles, consultez la documentation officielle de TileDB-Cloud et la référence de l'API.

Configuration de TileDB-Cloud

1. Créez un compte et obtenez un jeton API

# Inscrivez-vous sur https://cloud.tiledb.com
# Générez un jeton API dans les paramètres de votre compte

2. Installez le client Python TileDB-Cloud

# Installation de base
uv pip install tiledb-cloud

# Avec des fonctionnalités spécifiques à la génomique
uv pip install tiledb-cloud[life-sciences]

3. Configurez l'authentification

# Définissez la variable d'environnement avec votre jeton API
export TILEDB_REST_TOKEN="votre_jeton_api"
import tiledb.cloud

# L'authentification est automatique via TILEDB_REST_TOKEN
# Aucune connexion explicite requise dans le code

Migration de l'open source vers TileDB-Cloud

Ingestion à grande échelle

# TileDB-Cloud : Ingestion VCF distribuée
import tiledb.cloud.vcf

# Utilisez le module d'ingestion VCF spécialisé
# Remarque : L'API exacte nécessite la documentation TileDB-Cloud
# Ceci représente la structure des fonctionnalités disponibles
tiledb.cloud.vcf.ingestion.ingest_vcf_dataset(
    source="s3://my-bucket/vcf-files/",
    output="tiledb://my-namespace/large-dataset",
    namespace="my-namespace",
    acn="my-s3-credentials",
    ingest_resources={"cpu": "16", "memory": "64Gi"}
)

Traitement distribué des requêtes

# TileDB-Cloud : Interrogation VCF sur stockage distribué
import tiledb.cloud.vcf
import tiledbvcf

# Définissez l'URI de l'ensemble de données
dataset_uri = "tiledb://TileDB-Inc/gvcf-1kg-dragen-v376"

# Obtenez tous les échantillons de l'ensemble de données
ds = tiledbvcf.Dataset(dataset_uri, tiledb_config=cfg)
samples = ds.samples()

# Définissez les attributs et les plages à interroger
attrs = ["sample_name", "fmt_GT", "fmt_AD", "fmt_DP"]
regions = ["chr13:32396898-32397044", "chr13:32398162-32400268"]

# Effectuez la lecture, qui est exécutée de manière distribuée
df = tiledb.cloud.vcf.read(
    dataset_uri=dataset_uri,
    regions=regions,
    samples=samples,
    attrs=attrs,
    namespace="my-namespace",  # spécifie le compte à facturer
)
df.to_pandas()

Fonctionnalités d'entreprise

Partage de données et collaboration

# TileDB-Cloud fournit des capacités de partage de données d'entreprise
# via des permissions basées sur les espaces de noms et la gestion de groupes

# Accédez aux ensembles de données partagés via les URI TileDB-Cloud
dataset_uri = "tiledb://shared-namespace/population-study"

# Collaborez via des notebooks et des ressources de calcul partagés
# (L'API spécifique nécessite la documentation TileDB-Cloud)

Optimisation des coûts

  • Calcul sans serveur : Payez uniquement pour le temps de calcul réel
  • Mise à l'échelle automatique : Montez/descendez automatiquement en fonction de la charge de travail
  • Instances spot : Utilisez du calcul optimisé en coûts pour les tâches batch
  • Hiérarchisation des données : Gestion automatique du stockage chaud/froid

Sécurité et conformité

  • Chiffrement de bout en bout : Données chiffrées en transit et au repos
  • Contrôles d'accès : Permissions granulaires et journaux d'audit
  • Conformité HIPAA/SOC2 : Normes de sécurité d'entreprise
  • Support VPC : Déploiement dans des environnements cloud privés

Quand migrer - Liste de contrôle

✅ Migrez vers TileDB-Cloud si vous avez :

  • Des ensembles de données > 1000 échantillons
  • Besoin de traiter > 100 Go de données VCF
  • Besoin de calcul distribué
  • Plusieurs membres de l'équipe ayant besoin d'accès
  • Besoin de sécurité/conformité d'entreprise
  • Souhaitez un calcul sans serveur optimisé en coûts
  • Nécessitez une disponibilité de production 24h/24 et 7j/7

Pour commencer avec TileDB-Cloud

  1. Commencez gratuitement : TileDB-Cloud propose un niveau gratuit pour l'évaluation
  2. Support de migration : L'équipe TileDB fournit une assistance à la migration
  3. Formation : Accès à des tutoriels spécifiques à la génomique

…

[tronqué pour la traduction]

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

arbor

Autonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g.

arboreto

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

astropy

Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

biopython

Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

Skills associés