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 champgenotypeest une composante fixe du schémaVariantCall, mais il n'a pas de champGQ. Vous pouvez importer le champGQet sa valeur sous forme de paire clé/valeur dans le champinfodeVariantCall.
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 :
- Champs BigQuery imbriqués et répétés en langage SQL standard
- Explication de BigQuery : utiliser des jointures, ainsi que des données imbriquées et répétées
- Documentation de Looker sur l'imbrication
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 :
Variant1Variant2
L'ensemble de données BigQuery contient les exemples suivants :
Sample1Sample2Sample3
Dans le tableau suivant, vous pouvez observer ces résultats :
Variant1a été appelé pourSample1etSample2.Variant2a été appelé pourSample1etSample3.
| 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_namestart_positionend_positionreference_basesalternate_basesnamesqualityfilter
Les champs fixes définis au niveau de l'appel (VariantCall) sont les suivants :
namegenotypephaseset
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 queACetAF, ont été ajoutés en tant que champsINFOaux ressources de variante. - Les champs portant la marque
FORMAT, tels que les champsGPetGQ, ont été ajoutés en tant que champsINFOaux ressourcesVariantCall. - Le champ FORMAT
GTn'a pas été ajouté en tant que champ INFO. La valeur a été convertie dans le champgenotype.
L'affichage de 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 variable suivants (les 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 | 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. 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 :
- Exécutez l'outil Variant Transforms et transmettez l'option
--split_alternate_allele_info_fields. - Définissez la valeur de l'option
--split_alternate_allele_info_fieldssurFalse.
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 :
- Supposons que le champ
INFOd'un fichier VCF possède les valeurs1,.,2. L'outil Variant Transforms ne peut pas charger1,null,2dans BigQuery. - 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).