Comprendre le schéma des variantes BigQuery

Cette page explique la structure du schéma généré dans BigQuery lorsque vous utilisez l'outil Variant Transforms. Lisez cette page si vous utilisez l'outil Variant Transforms pour transformer et charger des fichiers VCF directement dans BigQuery et que vous souhaitez comprendre la structure de la table d'exportation.

Nomenclature

Pour comprendre les formats et schémas d'exportation, vous devez vous familiariser avec les termes suivants.

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. Le nom de référence est généralement un chromosome, mais il peut 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 les propriétés suivantes :

  • Nom de référence
  • Position de départ
  • Position de fin
  • 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. Le segment de non-variantes est également appelé "segment de référence". En règle générale, 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 page À propos de gVCF.

Appel

Occurrence identifiée d'une variante ou d'un segment de non-variante pour un échantillon individuel. Un appel représente la détermination de génotype concernant une variante particulière. L'appel 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, tous les appels comportent un champ genotype, mais les ensembles de données ne présentent pas forcément de champ "Qualité du génotype" (GQ). Le champ genotype est une composante fixe du schéma VariantCall, mais il n'a pas de champ GQ. Vous pouvez importer le champ GQ et sa valeur sous forme de paire clé/valeur dans le champ info de VariantCall.

Pour plus d'informations sur la nomenclature liée à la génomique, consultez les références suivantes :

Termes spécifiques à BigQuery

Familiarisez-vous avec les termes BigQuery suivants :

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, par exemple 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 les pages suivantes :

Structure des tables de variantes

Lorsque vous exécutez l'outil Variant Transforms, vous spécifiez le nom de la table BigQuery. Le nom de la table est généralement 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 suivant illustre la structure des enregistrements de la table des variantes. La table affiche les enregistrements de variantes suivants :

  • Variant1
  • Variant2

L'ensemble de données BigQuery contient les exemples suivants :

  • Sample1
  • Sample2
  • Sample3

Dans le tableau suivant, vous pouvez observer ces résultats :

  • Variant1 a été appelé pour Sample1 et Sample2.
  • Variant2 a été appelé pour Sample1 et Sample3.
   
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 la table se présente comme suit :

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

Champs fixes de la table des variantes

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

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

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

  • name
  • genotype
  • phaseset

Exemple de schéma

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.

Le fichier VCF comprend divers champs INFO au niveau de la variante et de l'appel, comme décrit dans les instructions d'en-tête INFO et FORMAT suivantes :

##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]]

Une fois le fichier chargé dans BigQuery, le résultat suivant s'est produit :

  • Les champs portant la marque INFO, tels que AC et AF, ont été ajoutés en tant que champs INFO aux ressources de variante.
  • Les champs portant la marque 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. La valeur a été convertie dans le champ genotype.

L'affichage de ce schéma dans BigQuery montre les champs fixes suivants :

Nom du champ Type Mode Description
reference_name STRING 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 STRING 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 STRING PEUT ÊTRE VIDE Base alternative.
names STRING 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 STRING 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.

L'affichage du schéma montre les champs de variable suivants (les champs INFO) :

Field name Type Mode Description
call.name CHAÎNE PEUT ÊTRE VIDE Nom de l'appel.
call.genotype INTEGER RÉPÉTÉ Génotype de l'appel. "-1" est utilisé dans les cas où le génotype n'est pas appelé.
call.phaseset STRING PEUT ÊTRE VIDE Phaseset de l'appel (le cas échéant). "*" est utilisé lorsque le génotype est gradué, mais qu'aucune phase ("PS" dans le format 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. L'enregistrement 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, procédez comme suit :

  1. Exécutez l'outil Variant Transforms et transmettez l'option --split_alternate_allele_info_fields.
  2. Définissez la valeur de l'option --split_alternate_allele_info_fields sur False.

Diviser automatiquement les enregistrements

Dans les cas suivants, l'outil Variant Transforms fractionne automatiquement un enregistrement en plusieurs lignes, chaque ligne ayant une taille inférieure à 100 Mo :

  • Un enregistrement comporte un grand nombre d'appels.
  • Ce grand nombre d'appels génère une ligne BigQuery d'une taille supérieure à 100 Mo.

Le fractionnement automatique des enregistrements est nécessaire en raison de la limite de 100 Mo par ligne sur BigQuery.

Valeurs Null

Si un champ répété de type nombre à virgule flottante ou nombre entier contient une valeur nulle, l'outil Variant Transforms ne peut pas créer le schéma BigQuery. 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. 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).