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 comprendre la structure de la table d'exportation.

Nomenclature

Pour comprendre les formats d'exportation et les schémas, familiarisez-vous 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 é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 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-variante s'appelle également un "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 section À 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 du génotype au sujet d'une variante particulière. L'appel peut inclure des informations associées telles que la qualité et le phrasage.

Champs INFO

Champs facultatifs ajoutés aux informations sur les variantes et les appels. Par exemple, tous les appels possèdent un champ genotype, mais tous les ensembles de données ne présentent pas forcément de champ "Qualité du génotype" (GQ). Le champ genotype est une partie fixe du schéma VariantCall, mais ne comporte pas de champ GQ. Vous pouvez importer le champ GQ et la valeur sous la forme de paires clé/valeur dans le champ info VariantCall.

Pour obtenir plus de nomenclature liée à la génomique, consultez les pages suivantes:

Termes 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, 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 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 les résultats suivants:

  • 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 au niveau de l'appel, comme décrit dans les directives 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 marqués INFO comme AC et AF ont été ajoutés en tant que champs INFO aux ressources de la variante.
  • Les champs marqués comme FORMAT, tels que 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.

Afficher ce schéma dans BigQuery montre les champs fixes suivants:

Nom du champ Type Mode Description
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.

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

Nom du champ Type Mode Description
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 Phase 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, 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 divise automatiquement un enregistrement en plusieurs lignes dont chaque ligne est inférieure à 100 Mo:

  • Un enregistrement comporte un grand nombre d'appels.
  • Le grand nombre d'appels génère une ligne BigQuery de plus de 100 Mo.

La répartition automatique des enregistrements est nécessaire en raison de 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, 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. Un remplacement numérique doit être utilisé 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).