
Mutations et variants dans le domaine SDTM GF en R
Tabulez SNV, indels, variants de nombre de copies et fusions de gènes — avec la notation HGVS, la zygotie et la fraction allélique du variant — dans le domaine CDISC GF, et représentez correctement les appels somatiques versus germinaux
Le flux de travail complet de la variation génétique pour le domaine CDISC SDTM Genomics Findings (GF). En s’appuyant sur les fondamentaux du domaine GF, cette leçon mappe chaque type de variant qu’un panel moléculaire appelle — variants mononucléotidiques, insertions et délétions, variants de nombre de copies, et fusions de gènes — vers des enregistrements GF Findings : comment chaque type de variant atterrit dans GFCAT/GFSCAT/GFORRES/GFSTRESC, comment la nomenclature HGVS (génomique g., codant c., protéique p.) est portée, où vont la zygotie, la fraction allélique du variant et la distinction somatique/germinale, et comment une classification de variant définie par un référentiel (ACMG/AMP, AMP/ASCO/CAP) est représentée comme un résultat standardisé — le tout avec R base et sdtm.oak, et chaque code un espace réservé illustratif à vérifier au regard de la terminologie contrôlée CDISC.
- Un seul domaine GF porte chaque type de variant. Les variants mononucléotidiques, les indels, les variants de nombre de copies et les fusions de gènes sont tous des résultats de variation génétique — chacun devient un enregistrement CDISC SDTM (Study Data Tabulation Model) GF (Genomics Findings) ordinaire, distingué par sa sous-catégorie, non par un nouveau domaine.
- Le type de variant vit dans
GFSCAT; l’appel vit dansGFORRES.GFCATvautGENETIC VARIATIONpour tous ;GFSCATnomme le type (SNV, indel, CNV, fusion) ;GFORRESporte l’appel réel — la notation HGVS pour un changement de séquence, un nombre de copies pour un CNV, une jonction de fusion pour un réarrangement. - HGVS est l’autorité de nommage, et le niveau importe. Un variant de séquence est nommé au niveau génomique (
g.), codant (c.) ou protéique (p.) selon la nomenclature HGVS — toujours ancré à une séquence de référence. Placez la chaîne HGVS rapportée dansGFORRES; ne retirez pas le transcrit de référence. - La zygotie, la VAF et l’origine sont des qualificateurs, pas le résultat. La zygotie (hétérozygote / homozygote), la VAF (fraction allélique du variant) et la distinction somatique/germinale qualifient un résultat — elles accompagnent l’appel, non à l’intérieur de
GFORRES. - La classification est définie par un référentiel — citez-le, ne l’inventez jamais. Un appel pathogène / VUS provient d’un référentiel d’interprétation (ACMG/AMP pour le germinal, AMP/ASCO/CAP pour le somatique), non de CDISC. Stockez la valeur dans
GFSTRESC; gardez chaqueGFTESTCDcomme espace réservé illustratif jusqu’à ce que vous le confirmiez au regard du sous-ensemble NCI EVS C181178.
Introduction
Le panel tumoral est revenu pour le sujet 01-701-1033 : une mutation ponctuelle EGFR p.L858R, une amplification HER2, une fusion ALK. Trois types de variant différents — un changement d’une seule base, des copies supplémentaires d’un gène, deux gènes fusionnés — et un seul domaine SDTM doit tous les porter jusqu’au régulateur.
Ce domaine est GF (Genomics Findings), le domaine de la classe Findings du SDTM (Study Data Tabulation Model) de CDISC (Clinical Data Interchange Standards Consortium) pour les données pharmacogénomiques. Cette leçon suppose que vous savez déjà ce qu’est GF ; sinon, commencez par le domaine Genomics Findings (GF) — sa structure, les variables de la classe Findings, le lien vers le biospécimen, et la règle cardinale selon laquelle GF tabule le résultat appelé, jamais les fichiers de séquences FASTQ/BAM/VCF bruts. Ici, nous approfondissons le cheval de bataille de l’oncologie et de la pharmacogénomique : mapper la variation génétique — chaque type de variant — vers GF.
Vous êtes en aval de l’analyse. Appeler les variants à partir des reads de séquençage est un travail en amont qu’enseigne le pilier Bioinformatique (alignement, appel de variants). Cette leçon part de la table des variants déjà appelés et les tabule vers CDISC SDTM. Voici le mapping que chaque section ci-dessous complète — quatre types de variant, une ligne Findings chacun :
À la fin, vous aurez construit chacune de ces lignes à partir d’un export brut d’appels de variants, ajouté les qualificateurs zygotie / VAF / origine, et retracé chaque variant jusqu’à son spécimen tumoral.
Les types de variant que vous devez tabuler
Un panel moléculaire rapporte plusieurs types de variation génétique, et chacun est un objet biologique distinct même si tous atterrissent dans GF. Connaissez les quatre que vous rencontrerez le plus, et comment chacun devient un enregistrement Findings :
| Type de variant | Ce que c’est | Exemple | Comment il atterrit dans GF |
|---|---|---|---|
| SNV (variant mononucléotidique) | Une base substituée par une autre | EGFR c.2573T>G (p.L858R) |
GFSCAT = SNV ; la chaîne HGVS dans GFORRES |
| Indel (insertion / délétion) | Bases insérées ou supprimées ; peut décaler le cadre de lecture | EGFR del exon-19 c.2235_2249del (p.E746_A750del) |
GFSCAT = INSERTION-DELETION ; HGVS dans GFORRES |
| CNV (variant de nombre de copies) | Un gène gagné (amplifié) ou perdu (délété) en copies | amplification ERBB2 (HER2), copy number 8 |
GFSCAT = COPY NUMBER VARIATION ; le nombre de copies dans GFORRES / GFSTRESN |
| Fusion (réarrangement) | Deux gènes joints en un, souvent un variant conducteur | EML4::ALK (exon 13 :: exon 20) |
GFSCAT = GENE FUSION ; la jonction de fusion dans GFORRES |
Les valeurs de sous-catégorie ci-dessus (SNV, INSERTION-DELETION, …) sont illustratives : GFSCAT est un regroupement défini par le promoteur sans liste de codes CDISC publiée, tandis que le code de test GFTESTCD est régi par la terminologie contrôlée CDISC (le sous-ensemble NCI EVS C181178 — CDISC SDTM Genomic Findings Test Code Terminology ; le nom GFTEST associé est C181179). Le domaine GF est détaillé dans SDTMIG v3.4, le guide d’implémentation SDTM qui a publié GF. L’essentiel est structurel : le type est une sous-catégorie d’un seul domaine, pas une raison de quitter GF.
HGVS : nommer le variant
Un variant de séquence (un SNV ou un indel) n’est prêt pour la tabulation qu’une fois nommé sans ambiguïté, et le standard pour cela est HGVS — la nomenclature des variants de séquence de la Human Genome Variation Society. HGVS nomme un changement à trois niveaux, chacun ancré à une séquence de référence, de sorte que le même variant se lit de façon cohérente d’un laboratoire à l’autre :
| Niveau | Préfixe | Ancré à | Exemple EGFR L858R |
|---|---|---|---|
| Génomique | g. |
Un assemblage du génome (dépendant du build) | NC_000007.14:g.…T>G (GRCh38) |
| Codant | c. |
Un transcrit de référence (ARNm) | NM_005228.5:c.2573T>G |
| Protéique | p. |
Le produit protéique | NP_005219.2:p.(Leu858Arg) |
Deux règles gardent une chaîne HGVS exploitable en aval. Premièrement, les niveaux codant et protéique n’ont aucun sens sans leur séquence de référence — c.2573T>G ne fixe une base que si vous savez qu’elle se trouve sur le transcrit NM_005228.5 ; la coordonnée génomique g. dépend du build du génome (GRCh37 contre GRCh38 donnent des nombres différents pour le même variant). Portez l’accession, non seulement le changement. Deuxièmement, GFORRES contient la chaîne HGVS exactement telle que le laboratoire l’a rapportée (couramment le changement c. avec la conséquence p., p. ex. c.2573T>G (p.Leu858Arg)) ; le transcrit de référence relève d’un qualificateur de séquence de référence, selon les qualificateurs génomiques que définit SDTMIG v3.4. Ne placez pas une coordonnée g. là où un c. a été rapporté, et ne supprimez pas la conséquence protéique qu’un clinicien lit en premier.
Construire une table brute d’appels de variants
Partez de ce que le laboratoire moléculaire vous remet : une ligne par appel de variant, couvrant les quatre types, avec la notation HGVS, la zygotie ou la VAF (fraction allélique du variant — la proportion de reads de séquençage portant le variant), et l’origine (somatique ou germinale). Celles-ci reposent sur les trois spécimens de tumeur pulmonaire SPEC4.1, SPEC5.1, SPEC6.1 — de vrais identifiants de biospécimens issus des données d’exemple be que nous relions à la fin.
library(sdtm.oak)
# A raw variant-call export: one row per called variant across four variant types.
# HGVS notation names each sequence change; CNV/fusion have no HGVS sequence string.
# VAF = variant allele fraction (somatic reads); zygosity applies to constitutional calls.
var_raw <- data.frame(
SUBJ = c("01-701-1033","01-701-1033","01-701-1034","01-701-1034","01-701-1047"),
SPECREF = c("SPEC4.1","SPEC4.1","SPEC5.1","SPEC5.1","SPEC6.1"),
GENE = c("EGFR","ERBB2","EGFR","ALK","KRAS"),
VTYPE = c("SNV","CNV","INDEL","FUSION","SNV"),
HGVSC = c("c.2573T>G","","c.2235_2249del","","c.34G>T"),
HGVSP = c("p.Leu858Arg","","p.Glu746_Ala750del","","p.Gly12Cys"),
CALL = c("c.2573T>G (p.Leu858Arg)", "Amplification, copy number 8",
"c.2235_2249del (p.Glu746_Ala750del)", "EML4::ALK (exon 13 :: exon 20)",
"c.34G>T (p.Gly12Cys)"),
COPYNUM = c(NA, 8, NA, NA, NA),
ZYG = c("HETEROZYGOUS","","HETEROZYGOUS","","HETEROZYGOUS"),
VAF = c(0.38, NA, 0.31, 0.42, 0.22),
ORIGIN = rep("SOMATIC", 5),
ASSAY = rep("NGS targeted panel", 5),
COLLDT = c("2025-09-10","2025-09-10","2025-10-05","2025-10-05","2025-11-01"),
stringsAsFactors = FALSE
)
var_raw[, c("SUBJ","GENE","VTYPE","CALL","VAF")] SUBJ GENE VTYPE CALL VAF
1 01-701-1033 EGFR SNV c.2573T>G (p.Leu858Arg) 0.38
2 01-701-1033 ERBB2 CNV Amplification, copy number 8 NA
3 01-701-1034 EGFR INDEL c.2235_2249del (p.Glu746_Ala750del) 0.31
4 01-701-1034 ALK FUSION EML4::ALK (exon 13 :: exon 20) 0.42
5 01-701-1047 KRAS SNV c.34G>T (p.Gly12Cys) 0.22
Cinq variants appelés, quatre types, trois sujets. NGS désigne le séquençage nouvelle génération (next-generation sequencing) — mais les reads n’atteignent jamais cette table : nous avons déjà le résultat appelé, et c’est tout ce que GF porte jamais. Remarquez ce qui diffère selon le type : un SNV et un indel portent une chaîne HGVS ; un CNV porte un nombre de copies ; une fusion porte une jonction. Une table brute, quatre formes d’appel.
Mapper chaque type de variant vers GF
Remplissez maintenant les colonnes GF avec R base. Les identifiants sont constants ; le topic (GFTESTCD/GFTEST) provient du gène, GFCAT vaut GENETIC VARIATION pour chaque ligne, et GFSCAT enregistre le type de variant afin qu’un examinateur puisse filtrer les SNV des fusions. L’appel va dans GFORRES ; le nombre de copies, étant numérique, alimente aussi GFSTRESN.
# GFTESTCD below is ILLUSTRATIVE (gene root + variant fragment), following the GF
# suffix-fragment convention. The authoritative code list is NCI EVS subset C181178.
gf <- data.frame(
STUDYID = "CDISCPILOT01",
DOMAIN = "GF",
USUBJID = var_raw$SUBJ,
GFREFID = var_raw$SPECREF, # links to the biospecimen
GFTESTCD = paste0(var_raw$GENE, "VAR"), # illustrative — verify vs C181178
GFTEST = paste(var_raw$GENE, "Variant"),
GFCAT = "GENETIC VARIATION",
GFSCAT = var_raw$VTYPE, # SNV / CNV / INDEL / FUSION
GFORRES = var_raw$CALL, # the call, as reported
GFSTRESC = "DETECTED", # every row here is a detected variant
GFSTRESN = var_raw$COPYNUM, # numeric where meaningful (CNV copy number)
GFSPEC = "TUMOR TISSUE",
GFMETHOD = var_raw$ASSAY,
GFDTC = var_raw$COLLDT,
# genomics qualifiers, attached now so they travel with each row (illustrative names —
# exact GF qualifier variable names are specified in SDTMIG v3.4):
ZYGOSITY = var_raw$ZYG, # allele count (germline calls)
VAF = var_raw$VAF, # variant allele fraction (somatic calls)
ORIGIN = var_raw$ORIGIN, # SOMATIC vs GERMLINE
stringsAsFactors = FALSE
)
gf[, c("USUBJID","GFTESTCD","GFCAT","GFSCAT","GFORRES","GFSTRESN")] USUBJID GFTESTCD GFCAT GFSCAT
1 01-701-1033 EGFRVAR GENETIC VARIATION SNV
2 01-701-1033 ERBB2VAR GENETIC VARIATION CNV
3 01-701-1034 EGFRVAR GENETIC VARIATION INDEL
4 01-701-1034 ALKVAR GENETIC VARIATION FUSION
5 01-701-1047 KRASVAR GENETIC VARIATION SNV
GFORRES GFSTRESN
1 c.2573T>G (p.Leu858Arg) NA
2 Amplification, copy number 8 8
3 c.2235_2249del (p.Glu746_Ala750del) NA
4 EML4::ALK (exon 13 :: exon 20) NA
5 c.34G>T (p.Gly12Cys) NA
Chaque type de variant est désormais une ligne dans le même domaine : GFCAT est constant, GFSCAT sépare les types, GFORRES conserve l’appel tel que rapporté, et GFSTRESN porte le nombre de copies pour le CNV (vide là où l’appel n’est pas un nombre). Le côté topic tient — un enregistrement par test de gène, chacun avec un code, un nom et une catégorie.
Numéroter les enregistrements avec derive_seq
Un enregistrement Findings conforme a besoin d’un numéro de séquence unique au sein de chaque sujet. derive_seq() de sdtm.oak — le moteur brut-vers-SDTM de pharmaverse — ordonne et numérote les lignes par sujet, exactement comme il le fait pour VSSEQ ou AESEQ :
gf <- derive_seq(gf, tgt_var = "GFSEQ",
rec_vars = c("USUBJID", "GFTESTCD"),
sbj_vars = "USUBJID")
gf <- as.data.frame(gf)
# structural checks: one domain code, GFSEQ unique per subject, every finding has a specimen
cat("one domain code: ", length(unique(gf$DOMAIN)) == 1, "\n")one domain code: TRUE
cat("GFSEQ unique within subject: ", !any(duplicated(gf[c("USUBJID","GFSEQ")])), "\n")GFSEQ unique within subject: TRUE
cat("every finding has a specimen:", all(nchar(gf$GFREFID) > 0), "\n")every finding has a specimen: TRUE
Trois TRUE — un squelette GF structurellement solide pour les quatre types de variant. En production, un outil de conformité (Pinnacle 21) exécute le jeu de règles complet ; ici, l’essentiel est qu’une fois les variants appelés, les tabuler est un travail Findings ordinaire — quel que soit leur type.
Zygotie, VAF, et somatique versus germinale
L’appel est le résultat ; comment le variant est présent est un qualificateur. Trois qualificateurs reviennent, et les confondre est l’erreur de mapping de variants la plus courante :
| Qualificateur | Question à laquelle il répond | S’applique à | Où il va |
|---|---|---|---|
| Zygotie | Un allèle ou les deux ? (hétérozygote / homozygote / hémizygote) | Appels constitutionnels (germinaux) | Un qualificateur génomique — pas GFORRES |
| VAF (fraction allélique du variant) | Quelle fraction de reads porte le variant ? | Appels somatiques (tumoraux) | Un qualificateur numérique aux côtés du résultat |
| Origine | Héritée ou acquise ? (germinale / somatique) | Chaque variant | Un qualificateur / distinction au niveau GFSCAT |
La distinction qui compte cliniquement est somatique versus germinale. Un variant germinal est hérité — présent dans chaque cellule, il est donc décrit par la zygotie (une copie ou deux) et est appelé à partir d’un spécimen normal (sang, buccal). Un variant somatique est acquis par la tumeur — présent uniquement dans les cellules tumorales à une certaine fraction, il est donc décrit par la VAF, non par la zygotie, et est appelé à partir du spécimen tumoral. Nos cinq variants sont tous somatiques, ils portent donc une VAF et reposent sur du tissu tumoral ; un résultat germinal BRCA1 chez le même sujet porterait plutôt une zygotie, une origine GERMLINE, et un GFREFID pointant vers un spécimen sanguin.
# The zygosity / VAF / origin qualifiers were attached when we built gf, so they travel
# with each finding through derive_seq's ordering. Read them next to the call:
gf[, c("USUBJID","GFSCAT","GFORRES","VAF","ZYGOSITY","ORIGIN")] USUBJID GFSCAT GFORRES VAF ZYGOSITY
1 01-701-1033 SNV c.2573T>G (p.Leu858Arg) 0.38 HETEROZYGOUS
2 01-701-1033 CNV Amplification, copy number 8 NA
3 01-701-1034 FUSION EML4::ALK (exon 13 :: exon 20) 0.42
4 01-701-1034 INDEL c.2235_2249del (p.Glu746_Ala750del) 0.31 HETEROZYGOUS
5 01-701-1047 SNV c.34G>T (p.Gly12Cys) 0.22 HETEROZYGOUS
ORIGIN
1 SOMATIC
2 SOMATIC
3 SOMATIC
4 SOMATIC
5 SOMATIC
Lisez le résultat et ses qualificateurs ensemble : les SNV, l’indel et la fusion portent une VAF (une fraction de reads somatiques — pour la fusion, la fraction de reads chevauchant la jonction) ; seul le CNV n’en a aucune (un nombre de copies n’est pas une fraction allélique), et chaque ligne est SOMATIC. Ne fondez jamais la VAF dans GFORRES — l’appel est ce qu’est le variant ; la VAF est quelle quantité la tumeur en porte.
Classification des variants : la représenter, non l’inventer
Un rapport moléculaire s’arrête rarement à « detected » — il classe la signification clinique du variant, et cette classification peut être tabulée comme un résultat standardisé dans GFSTRESC. Mais la classification provient d’un référentiel d’interprétation, non de CDISC, et le référentiel dépend de l’origine du variant :
| Référentiel | Pour | Catégories | Source |
|---|---|---|---|
| ACMG/AMP (2015) | Variants germinaux | Pathogène · Probablement pathogène · VUS (variant de signification incertaine) · Probablement bénin · Bénin | Richards et al., Genet Med 2015 |
| AMP/ASCO/CAP (2017) | Variants somatiques (cancer) | Tier I (signification forte) · Tier II (potentielle) · Tier III (incertaine) · Tier IV (bénin) | Li et al., J Mol Diagn 2017 |
La distinction est porteuse : « pathogène / VUS / bénin » est le vocabulaire germinal ; les variants somatiques du cancer sont classés en Tier I–IV. Le référentiel germinal est ACMG/AMP — l’American College of Medical Genetics and Genomics avec l’Association for Molecular Pathology ; le référentiel somatique est AMP/ASCO/CAP — un standard conjoint de l’Association for Molecular Pathology, de l’American Society of Clinical Oncology et du College of American Pathologists. Utiliser des mots de pathogénicité pour un variant conducteur tumoral somatique, ou un Tier pour un résultat germinal, étiquette mal le résultat. Parce que nos variants sont des conducteurs somatiques, leur signification clinique est un tier :
# GFSTRESC carries a standardized classification. These values come from the interpretation
# guideline (AMP/ASCO/CAP for somatic), NOT from CDISC — GF stores the value; the guideline
# defines it. GFTESTCD is again illustrative (a distinct interpretation test).
interp <- data.frame(
USUBJID = gf$USUBJID,
GFTESTCD = paste0(var_raw$GENE, "CLSF"), # illustrative interpretation test
GFTEST = paste(var_raw$GENE, "Variant Clinical Significance"),
GFCAT = "GENETIC VARIATION",
GFSCAT = "CLINICAL SIGNIFICANCE",
GFORRES = var_raw$CALL,
GFSTRESC = "TIER I", # AMP/ASCO/CAP tier for these drivers
stringsAsFactors = FALSE
)
interp[, c("USUBJID","GFTESTCD","GFSCAT","GFORRES","GFSTRESC")] USUBJID GFTESTCD GFSCAT
1 01-701-1033 EGFRCLSF CLINICAL SIGNIFICANCE
2 01-701-1033 ERBB2CLSF CLINICAL SIGNIFICANCE
3 01-701-1034 EGFRCLSF CLINICAL SIGNIFICANCE
4 01-701-1034 ALKCLSF CLINICAL SIGNIFICANCE
5 01-701-1047 KRASCLSF CLINICAL SIGNIFICANCE
GFORRES GFSTRESC
1 c.2573T>G (p.Leu858Arg) TIER I
2 Amplification, copy number 8 TIER I
3 c.2235_2249del (p.Glu746_Ala750del) TIER I
4 EML4::ALK (exon 13 :: exon 20) TIER I
5 c.34G>T (p.Gly12Cys) TIER I
GFSTRESC porte désormais l’interprétation standardisée — mais la valeur est un produit de référentiel. Stockez-la, référencez le référentiel qui l’a produite, et ne présentez jamais une classification (ni le GFTESTCD qui nomme le test d’interprétation) comme définie par CDISC. Lorsqu’aucun code publié ne convient, c’est une question de terminologie contrôlée pour votre équipe standards, non une valeur à inventer.
Retracer chaque variant jusqu’à son biospécimen
Un variant n’est interprétable que si l’on sait sur quoi il a été appelé. Chaque enregistrement GF portait la référence du spécimen tumoral dans GFREFID, de sorte qu’un merge() en R base contre les données d’événements de biospécimens be retrace chaque variant jusqu’à l’échantillon physique — le même lien vers le spécimen que la leçon sur le domaine GF construit en détail :
library(pharmaversesdtm)
data(be)
be <- as.data.frame(be)
# the collection events = the specimens themselves
spec <- be[be$BECAT == "COLLECTION", c("USUBJID","BEREFID","BELOC","BEDTC")]
link <- merge(
gf[, c("USUBJID","GFSEQ","GFSCAT","GFORRES","GFREFID")],
spec, by.x = c("USUBJID","GFREFID"), by.y = c("USUBJID","BEREFID"), all.x = TRUE
)
link <- link[order(link$USUBJID, link$GFSEQ), ]
link[, c("USUBJID","GFSCAT","GFORRES","GFREFID","BELOC")] USUBJID GFSCAT GFORRES GFREFID BELOC
1 01-701-1033 SNV c.2573T>G (p.Leu858Arg) SPEC4.1 LUNG
2 01-701-1033 CNV Amplification, copy number 8 SPEC4.1 LUNG
3 01-701-1034 FUSION EML4::ALK (exon 13 :: exon 20) SPEC5.1 LUNG
4 01-701-1034 INDEL c.2235_2249del (p.Glu746_Ala750del) SPEC5.1 LUNG
5 01-701-1047 SNV c.34G>T (p.Gly12Cys) SPEC6.1 LUNG
Chaque variant est désormais entièrement traçable : le EGFR p.L858R et l’amplification ERBB2 du sujet 01-701-1033 ont tous deux été appelés sur le spécimen SPEC4.1, un échantillon LUNG — le SNV et le CNV, côte à côte, auditables jusqu’à un seul spécimen physique.
Demandez à Prova « dans le domaine CDISC SDTM GF, comment tabuler une fusion de gènes par rapport à un SNV, et où vont la zygotie, la VAF et la classification ACMG/AMP ? » — elle répond en s’appuyant sur les leçons de ce pilier et le standard CDISC genomics, avec du R exécutable que vous pouvez essayer sur les données d’exemple. The runtime is the judge. Demandez à Prova →
Problèmes fréquents
Vous forgez un GFTESTCD par gène et le traitez comme officiel CDISC. Les codes de cette leçon (EGFRVAR, KRASCLSF, …) sont des espaces réservés illustratifs suivant la convention suffixe-fragment de GF. La liste faisant autorité est le sous-ensemble NCI EVS C181178 — recherchez-y chaque code avant une soumission, et ne présentez jamais un code inventé comme standard.
Vous mettez le mauvais niveau HGVS dans GFORRES. c.2573T>G (codant) et g.55191822T>G (génomique) nomment le même variant différemment, et une coordonnée g. n’a aucun sens sans son build de génome. Portez la chaîne que le laboratoire a rapportée (habituellement le changement c. avec la conséquence p.) et conservez le transcrit de référence — n’échangez pas les niveaux et ne supprimez pas l’accession.
Vous confondez la VAF somatique avec la zygotie germinale. Elles répondent à des questions différentes. La VAF est la fraction de reads d’un variant somatique dans une tumeur ; la zygotie (hétérozygote / homozygote) est le décompte d’allèles d’un variant germinal. Un appel somatique a une VAF, pas une zygotie ; un appel germinal a une zygotie, pas une VAF. Mettre un « hétérozygote » sur un résultat de VAF tumorale est une erreur de catégorie.
Vous essayez de stocker le VCF (ou les reads probants de la fusion) dans GF. GF contient le variant appelé — la chaîne HGVS, le nombre de copies, la jonction de fusion — non le fichier VCF, le BAM, ni les reads à l’appui. Extrayez l’appel vers une ligne GF ; archivez les fichiers de séquences dans le dépôt génomique de l’étude et référencez-les, comme l’explique la leçon sur le domaine GF.
Questions fréquentes
Une mutation est un résultat de variation génétique : un enregistrement GF (Genomics Findings) avec GFCAT = "GENETIC VARIATION", le type de variant dans GFSCAT (SNV, indel, CNV, fusion), et l’appel dans GFORRES — la chaîne HGVS pour un changement de séquence, un nombre de copies pour un CNV, une jonction de fusion pour un réarrangement. GFTESTCD/GFTEST nomment le test (vérifié au regard du sous-ensemble NCI EVS C181178), et GFREFID le relie au spécimen tumoral. C’est la même forme Findings que n’importe quel résultat d’analyse biologique.
Dans GFORRES — le résultat tel que le laboratoire l’a rapporté, généralement le changement codant avec la conséquence protéique (p. ex. c.2573T>G (p.Leu858Arg)). Suivez la nomenclature HGVS : les niveaux codant (c.) et protéique (p.) sont ancrés à un transcrit de référence et le niveau génomique (g.) à un build de génome, alors portez aussi la séquence de référence — le changement seul est ambigu sans elle.
Par l’origine, portée comme un qualificateur, et par quels qualificateurs accompagnent l’appel. Un variant somatique (acquis par la tumeur) porte une VAF (fraction allélique du variant) et repose sur un spécimen tumoral ; un variant germinal (hérité) porte une zygotie (hétérozygote / homozygote) et est appelé à partir d’un spécimen normal (sang/buccal), de sorte que son GFREFID pointe vers cet échantillon. L’origine détermine aussi le référentiel de classification — ACMG/AMP pour le germinal, AMP/ASCO/CAP pour le somatique.
Comme un résultat de variation génétique avec GFSCAT = "GENE FUSION" et la jonction de fusion dans GFORRES — par exemple EML4::ALK (exon 13 :: exon 20), nommant les gènes partenaires et les points de cassure. Une fusion n’a pas de chaîne HGVS mono-base (et toute VAF qu’elle porte est la fraction de reads chevauchant la jonction, non une fraction allélique par base) ; c’est un seul enregistrement Findings sur le spécimen tumoral, distingué d’un SNV ou d’un CNV uniquement par sa sous-catégorie GFSCAT.
Non. Ce sont des catégories de référentiel d’interprétation, non de la terminologie contrôlée CDISC. « Pathogène / probablement pathogène / VUS / bénin » est le référentiel germinal ACMG/AMP (Richards et al. 2015) ; les variants somatiques du cancer sont classés en Tier I–IV sous AMP/ASCO/CAP (Li et al. 2017). GF peut stocker la classification dans GFSTRESC, mais c’est le référentiel qui la définit — citez le référentiel et ne présentez pas la valeur (ni son GFTESTCD) comme officielle CDISC.
Testez vos connaissances
La construction ci-dessus a tabulé cinq variants tumoraux somatiques. Supposons que le même sujet ait aussi eu un variant pathogène germinal BRCA1 trouvé sur un spécimen sanguin. Esquissez en quoi sa ligne GF diffère de la ligne du SNV somatique : quel qualificateur remplace la VAF, quelle valeur d’origine elle porte, vers quel spécimen pointe son GFREFID, et quel référentiel de classification la nomme « pathogène ».
Germinal signifie hérité — présent dans chaque cellule, il est donc décrit par un décompte d’allèles, non par une fraction de reads, et il est appelé à partir d’un spécimen normal (non tumoral). Le vocabulaire de classification change lui aussi avec l’origine.
Le résultat germinal BRCA1 reste un enregistrement GF GENETIC VARIATION, mais :
- La zygotie remplace la VAF. Il porte une zygotie (p. ex.
HETEROZYGOUS) — un décompte d’allèles — et aucune VAF, car un variant germinal n’est pas une fraction de reads somatiques. - L’origine est
GERMLINE, nonSOMATIC. GFREFIDpointe vers le spécimen sanguin/normal à partir duquel il a été appelé, non le spécimen tumoral — il renvoie donc à un enregistrement de biospécimen différent dans BE de celui des appels somatiques.- La classification est ACMG/AMP, non AMP/ASCO/CAP : « pathogène / probablement pathogène / VUS / bénin » est le référentiel germinal, de sorte qu’un
GFSTRESC = "PATHOGENIC"est ici correct là où un conducteur somatique porterait un Tier.
Même domaine, même forme Findings — une origine différente, un qualificateur différent, un spécimen différent, et un référentiel d’interprétation différent.
A. Dans GFORRES, accolée à la chaîne HGVS B. Dans un qualificateur numérique aux côtés du résultat (pas dans GFORRES) C. Dans GFSCAT, comme sous-catégorie du variant
B. La VAF (fraction allélique du variant) est un qualificateur — elle dit quelle quantité du variant la tumeur porte, non ce qu’est le variant. Elle accompagne le résultat sous forme de valeur numérique. GFORRES contient l’appel lui-même (la chaîne HGVS) ; GFSCAT contient le type de variant (SNV, CNV, fusion). Fondre la VAF dans GFORRES mélange le résultat avec son qualificateur.
Conclusion
Chaque type de variant qu’un panel moléculaire appelle — SNV, indel, CNV, fusion — est un seul résultat de variation génétique dans le même domaine GF. Mettez le type dans GFSCAT, l’appel dans GFORRES (la chaîne HGVS, le nombre de copies, la jonction de fusion), et la valeur du nombre de copies dans GFSTRESN ; gardez la zygotie, la VAF et l’origine comme qualificateurs, jamais à l’intérieur du résultat ; et ne stockez une classification dans GFSTRESC qu’en nommant le référentiel qui l’a définie — ACMG/AMP pour le germinal, AMP/ASCO/CAP pour le somatique. Gardez chaque GFTESTCD comme espace réservé illustratif tant que C181178 ne l’a pas confirmé, et gardez les fichiers de séquences bruts hors de SDTM. La leçon de mapping de l’expression génique et du RNA-seq à venir dans cette série complète le volet génomique — la même construction Findings, un GFCAT différent.
Cette leçon est reproductible : chaque résultat de cette page a été produit par le code montré — copiez n’importe quel bloc et exécutez-le pour les reproduire. The runtime is the judge.
Leçons connexes
- Le domaine Genomics Findings (GF) — les fondamentaux sur lesquels s’appuie cette leçon : la structure de la classe Findings, les résultats appelés et non les fichiers bruts, GF versus PF, et le lien vers le biospécimen. · Mapper des données EDC brutes vers un domaine SDTM Findings avec sdtm.oak — la construction des signes vitaux qui établit le schéma de la classe Findings que suit GF. · Le flux de données d’un essai clinique : du CRF au SDTM, ADaM, TLF — où se situe SDTM dans le pipeline de soumission. · Le pilier Bioinformatique — l’appel de variants en amont qui produit les variants que cette leçon tabule.
- Où cela s’inscrit : les fondamentaux du domaine GF → le mapping des données de mutation et de variant (vous êtes ici) → la leçon de mapping de l’expression génique / RNA-seq qui complète le volet génomique. GF est le point où les variants de médecine de précision entrent dans une soumission CDISC.
Réutilisation
Citation
@online{2026,
author = {},
title = {Mutations et variants dans le domaine SDTM GF en R},
date = {2026-07-01},
url = {https://www.datanovia.com/learn/pharma-clinical/02-sdtm-programming/mutation-variant-gf},
langid = {fr}
}