Heredograma

Sobre heredogramas

Um heredograma é um diagrama padronizado usado em genética clínica para rastrear uma única condição — ou um pequeno conjunto de condições relacionadas — em uma família ao longo de várias gerações. Ao contrário de um genograma, que registra textura emocional e social, um heredograma é puramente estrutural: quem é afetado, quem é portador, quem foi testado e quem é o caso índice. Conselheiros genéticos, geneticistas clínicos e médicos encaminhadores o usam para avaliar o padrão de herança, o risco de recorrência e quem mais na família deveria ser submetido a testes.

O Schematex segue as recomendações Bennett et al. (2022) da NSGC — a atualização mais recente da Sociedade Nacional de Conselheiros Genéticos — que substitui as revisões de 1995 e 2008. Para informações básicas, consulte Wikipedia: Pedigree chart. Esta página documenta o que o parser aceita atualmente.

pedigree·§ ISCN / Bennett
↘ preview
100%
BRCA1 — Hereditary Breast/Ovarian Cancer Pedigree chart with 12 individuals across 3 generations I II III I-1 I-2 (affected) II-4 II-1 (affected) II-6 II-3 (carrier) II-2 III-1 (affected) P III-2 III-3 (presymptomatic) III-6 (carrier) III-7 I-1 I-2 II-4 II-1 II-6 II-3 II-2 III-1 III-2 III-3 III-6 III-7 GENETIC STATUS Affected Carrier Presymptomatic SYMBOLS Deceased P Proband (P) — first affected case identified
UTF-8 · LF · 14 lines · 408 chars✓ parsed·15.8 ms·13.3 KB SVG

1. Seu primeiro heredograma

O menor heredograma clinicamente útil: dois pais e seu filho afetado.

pedigree·§ ISCN / Bennett
↘ preview
100%
Pedigree Pedigree chart with 4 individuals across 2 generations I II I-1 (carrier) I-2 (carrier) II-1 (affected) P II-2 I-1 I-2 II-1 II-2 GENETIC STATUS Affected Carrier SYMBOLS P Proband (P) — first affected case identified
UTF-8 · LF · 6 lines · 122 chars✓ parsed·1.4 ms·7.5 KB SVG

Quatro regras cobrem 80% dos casos:

  1. Comece com a palavra-chave pedigree, opcionalmente seguida de um título entre aspas.
  2. Declare cada indivíduo em sua própria linha: id [atributos]. Convencionalmente os IDs são I-1, II-3, etc. — geração em algarismo romano, traço, posição dentro da geração.
  3. Conecte dois indivíduos com um operador de casal-- (união), == (consanguíneo), -/- (separado), ~ (sem descendência). Consulte o §4.
  4. Indente abaixo da linha de casal para adicionar seus filhos. Qualquer recuo mais profundo funciona; dois espaços é convencional.

Os comentários devem estar em sua própria linha, começando com #, // ou no estilo Mermaid %%. Comentários inline no final da linha vão quebrar o parser.


2. Indivíduos

Uma linha de indivíduo é id [attr1, attr2, …]. Os atributos são separados por vírgula, independentes de ordem, todos opcionais.

Regras de ID. Deve corresponder a [a-zA-Z][a-zA-Z0-9_-]*. Os IDs não diferenciam maiúsculas/minúsculas internamente, mas preservam sua capitalização original como rótulo de exibição (substitua com label:"…").

Atributos aceitos pelo parser hoje:

AtributoValoresEfeito
Sexomale, female, unknown, amab, afab, uaabForma: quadrado, círculo, diamante (veja §3)
Status genéticounaffected, affected, carrier, carrier-x, obligate-carrier, presymptomaticPreenchimento / marcador interno (veja §3)
Marcadorproband, consultand, evaluatedSeta + anotação de letra (veja §3.3)
Status de vidadeceased, stillborn, pregnancy, sab, tab, ectopicModificador visual
Ano de nascimentonúmero de 4 dígitos, ex.: 1958Mostrado abaixo da forma
label:"…"qualquer string entre aspasSubstituição do rótulo de exibição
affected: trait1+trait2veja §5Preenchimento de quadrante por múltiplos traços
pedigree·§ ISCN / Bennett
↘ preview
100%
Pedigree Pedigree chart with 5 individuals across 1 generations I I-1 I-2 (affected) Jane (42) (affected) P II-2 E II-3 (presymptomatic) I-1 I-2 Jane (42) II-2 II-3 GENETIC STATUS Affected Presymptomatic SYMBOLS Deceased P Proband (P) — first affected case identified
UTF-8 · LF · 6 lines · 180 chars✓ parsed·1.1 ms·6.9 KB SVG

3. Formas, status, marcadores

3.1 Formas (Bennett 2022)

VisualValor de sexoSignificado
☐ Quadradomale ou amabSexo masculino atribuído ao nascimento
○ Círculofemale ou afabSexo feminino atribuído ao nascimento
◇ Diamanteunknown, uaab ou omitidoDesconhecido / DSD / não divulgado / in utero

Bennett 2022 formalizou que quadrado e círculo representam o sexo atribuído ao nascimento, não a identidade de gênero. Se a identidade de gênero difere, registre-a no rótulo ([female, label: "Homem trans (AFAB)"]) — não altere a forma.

3.2 Status genético (preenchimento)

StatusSignificado
(padrão, sem token de status)Não afetado — forma vazia
unaffectedExplicitamente não afetado
affectedForma totalmente preenchida
carrierMeio preenchido — portador autossômico
carrier-xPonto central — portadora do cromossomo X
obligate-carrierPonto central — inferido a partir da estrutura do heredograma
presymptomaticLinha vertical através da forma — testado positivo, sem sinais clínicos ainda
pedigree·§ ISCN / Bennett
↘ preview
100%
Pedigree Pedigree chart with 6 individuals across 1 generations I I-1 I-2 (affected) I-3 (carrier) I-4 (carrier-x) I-5 (obligate-carrier) I-6 (presymptomatic) I-1 I-2 I-3 I-4 I-5 I-6 GENETIC STATUS Affected Carrier X-linked carrier Obligate carrier Presymptomatic
UTF-8 · LF · 7 lines · 158 chars✓ parsed·0.7 ms·7.3 KB SVG

3.3 Marcadores

MarcadorSignificado
probandSeta + "P" — o caso índice que desencadeou o encaminhamento
consultandSeta + "C" — a pessoa que procurou aconselhamento genético
evaluated"E" — avaliado, mas nenhum achado positivo registrado

3.4 Status de vida

ValorSignificado
deceasedBarra diagonal através da forma
stillbornForma pequena + rótulo "SB"
pregnancyForma + rótulo "P", ou diamante se o sexo for desconhecido
sabPequeno triângulo — aborto espontâneo
tabPequeno triângulo com barra — gravidez interrompida
ectopicPequeno triângulo + rótulo "ECT"

Múltiplos tokens se combinam: [female, affected, deceased], [male, sab], [unknown, pregnancy, presymptomatic].


4. Casais e filhos

4.1 Operadores de casal

O parser tenta estes na ordem. A primeira correspondência vence — então -/- vence --.

OperadorTipoExemploSignificado
-/-separadoa -/- bPar unido, não mais juntos
==consanguíneoa == bUnião de parentes consanguíneos (clinicamente crítico)
--casadoa -- bPar unido com descendência
~coabitandoa ~ bParceiros sem descendência

4.2 Indivíduo inline no lado direito

Se o indivíduo do lado direito ainda não foi declarado, declare-o no lugar:

pedigree·§ ISCN / Bennett
↘ preview
100%
Pedigree Pedigree chart with 4 individuals across 2 generations I II I-2 I-1 (carrier) II-1 (affected) P II-2 (carrier) I-2 I-1 II-1 II-2 GENETIC STATUS Affected Carrier SYMBOLS P Proband (P) — first affected case identified
UTF-8 · LF · 5 lines · 118 chars✓ parsed·0.8 ms·7.4 KB SVG

4.3 Filhos (indentados abaixo de um casal)

Indentação abaixo de uma linha de casal = "estes são os filhos deste casal." Qualquer indentação maior que a do casal funciona; dois espaços é convencional.

pedigree·§ ISCN / Bennett
↘ preview
100%
Cystic Fibrosis — autosomal recessive Pedigree chart with 5 individuals across 2 generations I II I-1 (carrier) I-2 (carrier) II-1 (affected) P II-2 (carrier) II-3 I-1 I-2 II-1 II-2 II-3 GENETIC STATUS Affected Carrier SYMBOLS P Proband (P) — first affected case identified
UTF-8 · LF · 7 lines · 185 chars✓ parsed·0.7 ms·8.1 KB SVG

4.4 Uniões consanguíneas

A consanguinidade é renderizada como uma linha dupla e deve ser tornada visível — é a peça de informação mais importante de muitos heredogramas.

pedigree·§ ISCN / Bennett
↘ preview
100%
Consanguineous union Pedigree chart with 7 individuals across 3 generations I II III I-1 (carrier) I-2 I-3 I-4 (carrier) II-1 (carrier) II-3 (carrier) III-1 (affected) P I-1 I-2 I-3 I-4 II-1 II-3 III-1 GENETIC STATUS Affected Carrier SYMBOLS P Proband (P) — first affected case identified
UTF-8 · LF · 11 lines · 238 chars✓ parsed·0.8 ms·9.7 KB SVG

5. Heredogramas de múltiplos traços

Para famílias que carregam mais de uma condição hereditária, use linhas legend: para definir qual quadrante da forma representa qual traço, depois marque os indivíduos com affected: trait1+trait2.

pedigree "Cancer Family Syndrome"
  legend: breast = "Breast cancer" (fill: quad-tl)
  legend: ovarian = "Ovarian cancer" (fill: quad-tr)
  legend: prostate = "Prostate cancer" (fill: quad-bl)
  legend: colon = "Colon cancer" (fill: quad-br)

  I-1 [male, affected: prostate, deceased]
  I-2 [female, affected: breast, deceased]
  I-1 -- I-2
    II-1 [female, affected: breast+ovarian]
    II-2 [male, unaffected]

Sintaxe de legenda: legend: id = "Rótulo legível" (fill: POSIÇÃO).

Posição fillRegião
fullForma inteira (padrão se (fill: …) for omitido)
quad-tl / quad-tr / quad-bl / quad-brQuadrante superior esquerdo / superior direito / inferior esquerdo / inferior direito
half-left / half-right / half-top / half-bottomUma metade da forma

Os indivíduos usam os IDs de traço da legenda: [affected: breast], [affected: breast+ovarian]. O + junta os traços; os quadrantes se preenchem cumulativamente.


6. Rótulos e comentários

  • Título: pedigree "BRCA1 Family" — somente na primeira linha.
  • Substituição de rótulo individual: II-1 [female, affected, label: "Jane Smith (42)"].
  • Entrada de legenda: legend: id = "Rótulo" (fill: POSIÇÃO) — veja §5.
  • Sufixo de modo: pedigree:autosomal-dominant "Família X" é aceito. O sufixo é armazenado como metadata.mode; os renderizadores atuais o ignoram.
  • Comentários: #, // ou %% no início de uma linha (após espaço em branco inicial). Comentários inline no final da linha não são suportados.

7. Palavras reservadas e escape

Reservadas no início da linha: pedigree (cabeçalho), legend: (entrada de legenda).

Tokens de operador reservados dentro de uma linha — evite usar estas sequências em IDs: --, ==, -/-, ~.

Tokens de atributo reservados dentro de […] — o parser irá interpretá-los independentemente da posição: tokens de sexo (male, female, unknown, amab, afab, uaab), status genéticos (affected, carrier, carrier-x, obligate-carrier, presymptomatic, unaffected), marcadores (proband, consultand, evaluated) e status de vida (deceased, stillborn, pregnancy, sab, tab, ectopic).

Strings com espaços devem ser entre aspas duplas. Aspas simples e crases não são reconhecidas.


8. Erros comuns

Erros reais do parser, o que os aciona e como corrigi-los.

O que você escreveuO parser dizCorreção
II-1 -- II-4 onde II-4 nunca foi declaradoUnknown individual 'II-4'Declare II-4 acima, ou use a forma inline: II-1 -- II-4 [male, unaffected]
II-1 [nonbinary]Silenciosamente armazenado como propriedade personalizada; a forma permanece diamanteBennett 2022 distingue sexo atribuído de gênero — use amab/afab/uaab e registre a identidade em label:
II-3 [twin-mz]Armazenado como propriedade personalizada; nenhuma linha de gêmeo é renderizadaNotação de gêmeos está no §10 Roadmap
I-1 -- I-2 seguido de II-1 [male] na mesma indentaçãoFilho analisado como novo indivíduo de nível superior, não como descendênciaIndente a linha do filho mais profundamente que a linha do casal
I-1 [affected: breast] sem legend: correspondenteO ID do traço é armazenado, mas nenhum preenchimento com chave de legenda é renderizadoAdicione legend: breast = "…" (fill: quad-tl) acima
II-1[affected] (sem espaço, sem divisão de atributos)Funciona para um único token; quebra quando um segundo atributo é adicionadoSempre separe id e […] com um espaço
A linha 1 é I-1 [male] sem cabeçalho pedigreeExpected "pedigree" headerComece com pedigree ou pedigree "Título"

9. Gramática (EBNF)

document       = header (blank | comment | legend | individual | couple-block)*

header         = "pedigree" ( ":" mode )? ( WS quoted-string )? NEWLINE
mode           = [A-Za-z] [A-Za-z0-9_-]*
quoted-string  = '"' any-char-but-quote* '"'

legend         = INDENT "legend:" WS id WS "=" WS quoted-string
                   ( WS "(" "fill:" fill-value ")" )? NEWLINE

individual     = INDENT id ( "[" attrs "]" )? NEWLINE
couple-block   = INDENT id WS coupleOp WS right-side NEWLINE
                   ( deeper-indent child )*
child          = INDENT id ( "[" attrs "]" )? NEWLINE
right-side     = id ( "[" attrs "]" )?

coupleOp       = "-/-" | "==" | "--" | "~"

id             = [a-zA-Z] [a-zA-Z0-9_-]*
attrs          = attr ("," attr)*
attr           = sex
               | genetic-status
               | marker
               | life-status
               | digit digit digit digit                         // ano de nascimento
               | "label" ":" quoted-string
               | "affected" ":" trait-id ( "+" trait-id )*
               | key ":" value                                    // personalizado

sex            = "male" | "female" | "unknown" | "amab" | "afab" | "uaab"
genetic-status = "unaffected" | "affected" | "carrier" | "carrier-x"
               | "obligate-carrier" | "presymptomatic"
marker         = "proband" | "consultand" | "evaluated"
life-status    = "deceased" | "stillborn" | "pregnancy"
               | "sab" | "tab" | "ectopic"
fill-value     = "full" | "half-left" | "half-right" | "half-top" | "half-bottom"
               | "quad-tl" | "quad-tr" | "quad-bl" | "quad-br"

comment        = INDENT ( "#" | "//" | "%%" ) any NEWLINE

Fonte autoritativa: src/diagrams/pedigree/parser.ts. Se houver divergência com o parser, o parser prevalece — por favor, abra uma issue.


10. Conformidade com padrões

Os heredogramas do Schematex seguem Bennett, R.L. et al. (2022), The evolving pedigree: Updating to reflect modern family structures, sex, and gender para semântica de formas, preenchimentos de status e as convenções de proband/consultand. Revisões anteriores (Bennett 1995, 2008) permanecem uma referência válida para o subconjunto clássico.

O que está implementado hoje em relação ao padrão:

  • ✅ Formas principais (quadrado / círculo / diamante) com semântica AMAB/AFAB/UAAB do Bennett 2022
  • ✅ Conjunto completo de status genético (affected / carrier / carrier-x / obligate-carrier / presymptomatic / unaffected)
  • ✅ Marcadores proband, consultand, evaluated
  • ✅ Modificadores de status de vida (deceased, stillborn, pregnancy, SAB, TAB, ectopic)
  • ✅ Operadores de casal: unido / separado / consanguíneo / sem descendência
  • ✅ Preenchimentos de quadrante para múltiplos traços com entradas legend:
  • ⏳ Notação de gêmeos (monozigótico / dizigótico / zigosidade desconhecida)
  • ⏳ Notação de colchete para adoção (adotado para dentro / adotado para fora)
  • ⏳ Reprodução assistida (doação de óvulo/esperma/embrião, barriga de aluguel, FIV)
  • ⏳ Marcadores de sem filhos por escolha e infertilidade

Referências:

  • Bennett, R.L., French, K.S., Resta, R.G., & Austin, J. (2022). Practice resource-focused revision: Standardized pedigree nomenclature update centered on sex and gender inclusivity. Journal of Genetic Counseling, 31(6), 1238–1249.
  • Bennett, R.L., Steinhaus French, K., Resta, R.G., & Doyle, D.L. (2008). Standardized human pedigree nomenclature: Update and assessment. J Genet Couns, 17(5), 424–433.
  • Bennett, R.L. et al. (1995). Recommendations for standardized human pedigree nomenclature. Am J Hum Genet, 56(3), 745–752.

11. Exemplos relacionados

Cenários prontos para uso da galeria de exemplos:

pedigree·§ NSGC
BRCA1 Family — Hereditary Breast/Ovarian Cancer Pedigree chart with 12 individuals across 3 generations I II III I-1 I-2 (affected) II-4 II-1 (affected) II-6 II-3 (carrier) II-2 III-1 (affected) P III-2 III-3 (presymptomatic) III-6 (carrier) III-7 I-1 I-2 II-4 II-1 II-6 II-3 II-2 III-1 III-2 III-3 III-6 III-7 GENETIC STATUS Affected Carrier Presymptomatic SYMBOLS Deceased P Proband (P) — first affected case identified
BRCA1 hereditary cancer (four-generation)
Four-generation BRCA1 pedigree distinguishing affected, carrier, and presymptomatic individuals — per NSGC standard for cascade testing and insurance pre-authorization.
healthcare & social
pedigree·§ NSGC
CF family — autosomal recessive Pedigree chart with 8 individuals across 3 generations I II III I-1 (carrier) I-2 (carrier) II-4 (carrier) II-2 (carrier) II-1 (affected) P II-3 III-1 (affected) III-2 I-1 I-2 II-4 II-2 II-1 II-3 III-1 III-2 GENETIC STATUS Affected Carrier SYMBOLS P Proband (P) — first affected case identified
Cystic fibrosis (autosomal recessive)
Classic autosomal recessive cystic fibrosis pedigree with two carrier parents — illustrates the 25% recurrence risk for genetic counseling and patient education.
healthcare & social
pedigree·§ NSGC
Hemophilia A Pedigree chart with 10 individuals across 3 generations I II III I-1 I-2 (carrier-x) II-5 II-2 (carrier-x) II-1 (affected) II-3 II-4 III-1 (affected) III-2 (carrier-x) III-3 I-1 I-2 II-5 II-2 II-1 II-3 II-4 III-1 III-2 III-3 GENETIC STATUS Affected X-linked carrier
Hemophilia A (X-linked recessive)
Three-generation hemophilia A pedigree showing X-linked recessive inheritance with carrier females and affected males per NSGC clinical notation.
healthcare & social

12. Roadmap

Planejado — ainda não analisável pelo parser. Não use estes itens em DSL gerada hoje; o parser irá rejeitá-los ou armazená-los como propriedades personalizadas não utilizadas.

  • Notação de gêmeostwin-mz (monozigótico), twin-dz (dizigótico), twin-unknown.
  • Colchetes de adoçãoadopted-in, adopted-out (forma entre colchetes, linha tracejada para pais biológicos).
  • Reprodução assistidadonor-egg, donor-sperm, donor-embryo, surrogate e uma anotação ivf na linha do casal.
  • Marcadores de sem filhos — anotações de linha suspensa no-children (por escolha) e infertile.
  • Anotação de identidade de gênero — um atributo estruturado distinto do sexo, em vez de colocá-lo em label:.
  • Trigêmeos e partos de ordem superiortriplet-mz, triplet-dz.

Acompanhe nas issues do GitHub se você precisar de algum desses recursos mais cedo.

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.