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 champgenotype
est une composante fixe du schémaVariantCall
, mais il n'a pas de champGQ
. Vous pouvez importer le champGQ
et sa valeur sous forme de paire clé/valeur dans le champinfo
deVariantCall
.
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 :
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é pourSample1
etSample2
.Variant2
a été appelé pourSample1
etSample3
.
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 queAC
etAF
, ont été ajoutés en tant que champsINFO
aux ressources de variante. - Les champs portant la marque
FORMAT
, tels que les champsGP
etGQ
, ont été ajoutés en tant que champsINFO
aux ressourcesVariantCall
. - Le champ FORMAT
GT
n'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_fields
surFalse
.
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
INFO
d'un fichier VCF possède les valeurs1,.,2
. L'outil Variant Transforms ne peut pas charger1,null,2
dans 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).