Comprendre le schéma des variantes BigQuery

Le pipeline Variant Transforms permet de transformer et de charger des fichiers VCF directement dans BigQuery.

Vous pouvez également utiliser BigQuery pour exécuter des requêtes interactives ad hoc sur des variantes génomiques en tirant parti de centaines ou de milliers d'ordinateurs en parallèle.

Vous pouvez aussi parcourir les ensembles de données publiés déjà exportés depuis Cloud Life Sciences vers BigQuery.

Nomenclature

Pour comprendre les formats et schémas d'exportation, vous devez vous familiariser avec la terminologie que nous utilisons.

Nomenclature du domaine de la génomique

Échantillon
ADN collecté et traité sous un même identifiant. Un échantillon correspond généralement à un organisme unique, mais peut également être un échantillon hétérogène comme un prélèvement buccal.
Nom de référence
Nom d'un segment d'ADN de référence. Il s'agit généralement d'un chromosome, mais il peut également s'agir d'autres régions nommées provenant d'un génome de référence.
Variante
Région du génome qui a été identifiée comme étant différente du génome de référence. Une variante doit posséder un nom de référence, une position de départ, une position de fin, ainsi qu'une ou plusieurs bases de référence.
Segment de non-variante

Région du génome correspondant au génome de référence. On parle parfois de "segment de référence". Traditionnellement, les données génomiques n'incluent pas les segments de non-variantes dans les variantes.

Pour en savoir plus sur les segments de non-variantes, consultez la documentation relative à gVCF.

Appel

Occurrence identifiée d'une variante ou d'un segment de non-variante pour un échantillon individuel. Il représente la détermination du génotype par rapport à une variante particulière et peut inclure des informations associées telles que la qualité et le phasage.

Champs INFO

Champs facultatifs ajoutés aux informations sur les variantes et les appels. Par exemple, alors que tous les appels possèdent un champ genotype, tous les ensembles de données ne présentent pas forcément de champ "Qualité du génotype" (GQ). Ainsi, le champ genotype est une composante fixe du schéma VariantCall, mais il n'y a pas de champ GQ. Le champ GQ et sa valeur peuvent être importés en tant que paires clé/valeur dans le champ info du schéma VariantCall.

Pour découvrir davantage de nomenclature liée à la génomique, consultez les documents suivants :

Nomenclature BigQuery

Champs simples
Éléments de données simples d'une table BigQuery, tels que des nombres et des chaînes.
Champs imbriqués
Éléments de données complexes d'une table BigQuery. Un champ imbriqué peut contenir plusieurs champs, simples ou eux-mêmes imbriqués.
Champs répétés
Champs d'une table BigQuery pouvant contenir plusieurs valeurs, comme une liste. Les champs répétés peuvent être à la fois simples et imbriqués.

Pour en savoir plus sur les types de données complexes de BigQuery, consultez la documentation relative aux champs imbriqués et répétés en langage SQL standard.

Structure des tables de variantes

Le nom de la table BigQuery est spécifié lors de l'exécution du pipeline Variant Transforms. Par convention, cette table est nommée variants.

Structure des enregistrements de la table des variantes

Les enregistrements de niveau supérieur de la table variants peuvent être des variantes et des segments de non-variantes. Chaque enregistrement de la table variants contient un ou plusieurs appels.

Le tableau ci-dessous illustre cette structure à partir de deux enregistrements de variantes, Variante1 et Variante2. Cet ensemble de données comprend trois échantillons : Échantillon1, Échantillon2 et Échantillon3. La variante Variante1 a été appelée pour les échantillons Échantillon1 et Échantillon2, tandis que la variante Variante2 a été appelée pour Échantillon1 et Échantillon3.

Variante1 Échantillon1

Échantillon2
Variante2 Échantillon1

Échantillon3

Structure des champs de la table des variantes

Chaque table variants inclut deux ensembles de champs, l'un fixe et l'autre variable. La structure de haut niveau de la table se présente comme suit :

     
Champs de variante fixes Appel Champs de variante INFO
Champs d'appel fixes      Champs d'appel INFO

Les noms des champs variables sont respectivement les clés du champ INFO de ressource de variante et les clés du champ INFO d'appel de variante.

Champs fixes de la table des variantes

Les champs fixes définis au niveau de l'enregistrement (Variant) sont les suivants :

  • reference_name
  • start_position
  • end_position
  • reference_bases
  • alternate_bases
  • names
  • quality
  • filter

Les champs fixes au niveau de l'appel (VariantCall) sont les suivants :

  • name
  • genotype
  • phaseset

Exemple

Lorsque les données du projet 1000 Genomes ont été chargées dans BigQuery, elles incluaient l'importation de ALL.chrY.phase3_integrated_v1a.20130502.genotypes.vcf.

Ce fichier VCF contient un certain nombre de champs INFO au niveau des variantes et des appels, comme décrit dans les directives d'en-tête INFO et FORMAT :

##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=GP,Number=G,Type=Float,Description="Genotype likelihoods">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
##FORMAT=<ID=FT,Number=1,Type=String,Description="Per-sample genotype filter">
##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">
 [[trimmed]]
##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral allele">
##INFO=<ID=AC,Number=A,Type=Integer,Description="Total number of alternate alleles in called genotypes">
##INFO=<ID=AF,Number=A,Type=Float,Description="Estimated allele frequency in the range (0,1]">
##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of samples with data">
 [[trimmed]]

Lorsque ce fichier a été chargé dans BigQuery, les champs marqués comme INFO, tels que AC et AF, ont été ajoutés en tant que champs INFO aux ressources Variant.

Lorsque ce fichier a été chargé dans BigQuery, les champs marqués en tant que FORMAT, tels que les champs GP et GQ, ont été ajoutés en tant que champs INFO aux ressources VariantCall. Le champ FORMAT GT n'a pas été ajouté en tant que champ INFO, mais sa valeur a été convertie dans le champ genotype.

Afficher ce schéma dans l'interface utilisateur BigQuery montre les champs fixes suivants :

Schéma      
reference_name CHAÎNE PEUT ÊTRE VIDE Nom de référence.
start_position NOMBRE ENTIER PEUT ÊTRE VIDE Position de départ (basée sur 0). Correspond à la première base de la chaîne de bases de référence.
end_position NOMBRE ENTIER PEUT ÊTRE VIDE Position de fin (basée sur 0). Correspond à la première base qui suit la dernière base de l'allèle de référence.
reference_bases CHAÎNE PEUT ÊTRE VIDE Bases de référence.
alternate_bases ENREGISTREMENT RÉPÉTÉ Un seul enregistrement pour chaque base alternative, le cas échéant. Pour en savoir plus, consultez la section Autres informations sur l'enregistrement alternate_bases ci-après.
alternate_bases.alt CHAÎNE PEUT ÊTRE VIDE Base alternative.
names CHAÎNE RÉPÉTÉ Noms de variante (par exemple l'identifiant RefSNP).
quality NOMBRE À VIRGULE FLOTTANTE PEUT ÊTRE VIDE Score de qualité phred (-10log10 prob(appel incorrect)). Plus la valeur est élevée, plus la qualité est bonne.
filter CHAÎNE RÉPÉTÉ Liste des filtres ayant échoué (le cas échéant) ou "PASS", qui indique alors que tous les filtres ont réussi sur la variante.
call ENREGISTREMENT RÉPÉTÉ Un seul enregistrement pour chaque appel.

Ensuite, les champs variables (champs INFO) s'affichent :

Schéma      
call.name CHAÎNE PEUT ÊTRE VIDE Nom de l'appel.
call.genotype NOMBRE ENTIER RÉPÉTÉ Génotype de l'appel. "-1" représente les cas où le génotype n'est pas appelé.
call.phaseset CHAÎNE PEUT ÊTRE VIDE Phaseset de l'appel, le cas échéant. "*" est utilisé dans les cas où le génotype est phasé, mais où aucune définition de phase ("PS" dans FORMAT) n'a été spécifiée.

Autres informations sur l'enregistrement alternate_bases

L'enregistrement alternate_bases contient n'importe quel champ INFO comportant Number=A. Cela simplifie l'interrogation en supprimant la nécessité de mapper chaque champ à l'enregistrement alternatif correspondant. Pour utiliser la version précédente du schéma BigQuery, où les champs Number=A sont indépendants des bases alternatives, transmettez l'option --split_alternate_allele_info_fields et définissez-la sur False lors de l'exécution de l'outil Variant Transforms.

Diviser automatiquement les enregistrements

Si un enregistrement comporte un grand nombre d'appels et génère une ligne BigQuery de taille supérieure à 100 Mo, l'outil Variant Transforms divise automatiquement l'enregistrement en plusieurs lignes de sorte que chaque ligne soit inférieure à 100 Mo. Cette opération est rendue nécessaire par la limite de 100 Mo par ligne de BigQuery.

Valeurs Null

Si un champ répété de type nombre à virgule flottante ou nombre entier contient une valeur nulle, le schéma BigQuery ne peut pas être créé. En effet, BigQuery n'autorise pas les valeurs nulles dans les champs répétés. L'ensemble de l'enregistrement peut être nul, mais pas les valeurs de l'enregistrement.

Exemple :

  1. Supposons que le champ INFO d'un fichier VCF possède les valeurs 1,.,2. L'outil Variant Transforms ne peut pas charger 1,null,2 dans BigQuery.

  2. Au lieu de cela, une substitution numérique doit être utilisée pour la valeur nulle. Par défaut, la valeur de remplacement est -2^31, soit -2147483648.

Pour définir une valeur numérique personnalisée, transmettez l'option --null_numeric_value_replacement avec une valeur lorsque vous exécutez l'outil Variant Transforms.

Vous pouvez également convertir des valeurs nulles en une chaîne et utiliser . comme valeur. Dans ce cas, l'en-tête doit être spécifié en tant que String (chaîne).