# Relatório final — portfólio de três projetos

**Gerado em 06/08/2026 10:13 UTC.** Fase de consolidação: nenhuma frente nova foi aberta, nenhum
modelo foi retreinado, e nenhum resultado foi omitido. Os negativos aparecem com o
mesmo destaque que os positivos.

Figuras em `figuras/` (26 arquivos PNG). Dados brutos em `p1/`, `p2/`, `p3/`.

---

## P1 — *Staphylococcus aureus*: as dez frentes

### Critério de rótulo limpo (o que conta como ativo)

| parâmetro | valor |
|---|---|
| corte ativo | <= 4 ug/mL |
| corte inativo | >= 16 ug/mL |
| n minimo medidas | 2 |
| observacao | corte tirado de cima do valor modal 8 |

🔑 **O ponto do corte:** MIC vive numa escala de diluições dobradas (2, 4, 8, 16…) e
**8 µg/mL é o valor MODAL**. Pôr o corte exatamente em ≤ 8 jogaria a maior pilha de
limítrofes para "ativo". Por isso o ativo é **≤ 4** e o inativo **≥ 16**, com a zona
cinza (4 < MIC < 16) descartada, e exigência de **≥ 2 medidas independentes**.

<details><summary>Funil completo dos rótulos (frente 1)</summary>

```
registros brutos: 494517
com SMILES e MIC valida: 490085
SMILES distintos a canonizar: 74602
  canonizados 20000/74602
  canonizados 40000/74602
  canonizados 60000/74602
registros com canonico valido: 490065
moleculas unicas: 74226
(c) descartadas por nao ter carbono (ions/inorganicos): 4 -> restam 74222
(b) descartadas por n_medidas < 2: 16874 -> restam 57348
valores de MIC mediana mais frequentes (o motivo de mexer no corte): 8.0=3310, 4.0=3295, 2.0=3156, 16.0=3115, 32.0=2651
moleculas que o corte antigo (<=8) chamava de ATIVAS e agora caem na zona cinza: 6647
(a) descartadas na zona cinza (4.0, 16.0): 11347 -> restam 46001
>> CONJUNTO LIMPO: 46001 moleculas | ativas 22904 (49.8%) | inativas 23097
>> arcaboucos distintos: 15599
>> pMIC: media 4.83 desvio 1.18 min -0.14 max 11.36
>> comparacao (corte antigo <=8 / >=32, sem n minimo): 58707 moleculas, 64.4% ativas
```
</details>

### As dez frentes

Todas com a **mesma divisão por arcabouço de Murcko, 5 dobras** — sem isso a tabela
compararia coisas diferentes.

| # | frente | dado | modelo | ROC-AUC ± dp | PR-AUC ± dp | candidatos nos 3 critérios |
|---|---|---|---|---|---|---|
| 1 | ChEMBL com rótulos limpos | ChEMBL MIC µg/mL, corte fora do valor modal | floresta / Morgan bits | 0.8948 ± 0.0067 | 0.8985 ± 0.0089 | — |
| 2 | CO-ADD (produtos naturais) | CO-ADD inibição | floresta / Morgan bits | 0.8840 ± 0.0296 | 0.2432 ± 0.0531 | — |
| 3 | ChEMBL ampliado (outras unidades, MRSA) | ChEMBL nM/µM/MIC50/90 + MRSA | floresta / Morgan bits | 0.8891 ± 0.0077 | 0.8967 ± 0.0035 | — |
| 4 | Transfer learning antibacteriano | ChEMBL multi-organismo → S. aureus | floresta / Morgan bits | 0.8832 ± 0.0105 | 0.8887 ± 0.0106 | — |
| 5 | D-MPNN (chemprop) | ChEMBL limpo | D-MPNN (grafo), GPU | 0.8762 ± 0.0099 | 0.8767 ± 0.0145 | — |
| 6 | Fingerprints alternativos | ChEMBL limpo | floresta / ECFP contagem+MACCS+farmacofórico | 0.8965 ± 0.0055 | 0.9003 ± 0.0083 | — |
| 7 | Embeddings ChemBERTa | ChEMBL limpo | floresta / vetores congelados, GPU | 0.8520 ± 0.0114 | 0.8623 ± 0.0146 | — |
| 8 | Regressão de pMIC e ranqueamento | ChEMBL limpo (pMIC contínuo) | floresta de regressão (AUC do ranking) | 0.8730 | 0.8785 | — |
| 9 | Similaridade de Tanimoto (baseline) | ChEMBL limpo | sem modelo — similaridade pura | 0.8296 ± 0.0087 | 0.8044 ± 0.0155 | — |
| 10 | Triagem restrita ao domínio (COCONUT) | COCONUT (120.000 amostrados) | melhor classificador | — | — | **17** |

![comparação das frentes](figuras/p1_frentes_comparacao.png)

🚩 **O padrão é que o simples ganha.** O baseline de **Tanimoto puro, sem modelo
nenhum, faz 0.8296** — a apenas 0.067 do melhor resultado (0.8965, fingerprints
alternativos). Os embeddings do ChemBERTa (0.8520) e o D-MPNN ficam **abaixo** dos
fingerprints comuns. Neste domínio, arquitetura sofisticada não pagou o que custou.

### Filtro final — os três critérios juntos

| etapa | restam |
|---|---|
| estruturas lidas do COCONUT | 120.000 |
| com fingerprint válido | 119.982 |
| probabilidade >= 0,90 | 138 |
| ... e dentro do domínio (T >= 0,35) | 138 |
| ... e NÃO é memorização (T < 1,0 e fora do treino) | 57 |
| **(iii) arcabouço de Murcko INÉDITO (sobrevive a split por scaffold)** | **17** |

⚠️ **O terceiro critério não tinha sido aplicado.** A frente 10 filtrou por escore,
por domínio e por memorização **ao nível da molécula**; o pré-registro exigia também
sobreviver a split **temporal ou por arcabouço**. Apliquei o critério de arcabouço
nesta consolidação: dos 57 candidatos, **17 têm arcabouço inédito**.

### O que são, de fato, os candidatos que passaram

| prob | Tanimoto ao treino | MW | classe antibiótica reconhecida |
|---|---|---|---|
| 0.9754 | 0.747 | 522.6 | tiazol (tiopeptideo) |
| 0.9613 | 0.857 | 835.0 | - |
| 0.9506 | 0.76 | 479.5 | tiazol (tiopeptideo) |
| 0.9473 | 0.975 | 580.8 | aminoglicosideo |
| 0.9309 | 0.901 | 1599.9 | macrolideo (lactona 12+);tiazol (tiopeptideo) |
| 0.9277 | 0.905 | 1368.6 | macrolideo (lactona 12+);tiazol (tiopeptideo) |
| 0.9263 | 0.878 | 922.1 | macrolideo (lactona 12+) |
| 0.9232 | 0.697 | 914.0 | - |
| 0.9224 | 0.839 | 564.4 | - |
| 0.9178 | 0.832 | 816.0 | macrolideo (lactona 12+) |
| 0.9178 | 0.832 | 816.0 | macrolideo (lactona 12+) |
| 0.9154 | 0.784 | 830.0 | macrolideo (lactona 12+) |
| 0.9062 | 0.783 | 886.0 | - |
| 0.9061 | 0.909 | 1648.9 | macrolideo (lactona 12+);tiazol (tiopeptideo) |
| 0.9048 | 0.761 | 842.0 | macrolideo (lactona 12+) |
| 0.9036 | 0.697 | 980.6 | - |
| 0.9017 | 0.863 | 562.8 | - |

🚩🚩 **A lista curta é redescoberta, não descoberta.** 11 dos 17 carregam classes
antibióticas **já conhecidas** (macrolídeos, tiopeptídeos, aminoglicosídeo), a massa
molecular vai de 522 a 1.649 Da — são produtos naturais grandes — e o **Tanimoto
mediano ao conjunto de treino é 0.832**, chegando a 0.975.

🔑 **Falha da minha pré-especificação, não achado:** o critério de domínio tinha
**piso** (T ≥ 0,35) e teto apenas em T = 1,0. Com teto tão alto, análogo quase
idêntico passa. E o arcabouço de Murcko é descritor grosseiro para macrociclos:
uma mudança pequena no anel gera arcabouço "inédito" com a molécula praticamente
a mesma. Foi o mesmo tipo de erro já cometido na triagem anterior — **domínio de
aplicabilidade tem teto E piso** —, e ele reapareceu num critério diferente.

### Veredito do P1

**Pela régua declarada antes: POSITIVO FORTE** — 17 candidatos passaram nos três
critérios, e a regra dizia que qualquer um bastaria para gerar lista curta.

**Pelo conteúdo: o resultado não sustenta uma lista para ensaio in vitro.** A lista
é dominada por chemotipos antibióticos conhecidos e por análogos próximos do treino.
O modelo demonstra que **reconhece química antibacteriana conhecida** — o que é uma
validação real dele — mas não propôs química nova.

As duas frases acima são o resultado. Reportar só a primeira seria propaganda;
reportar só a segunda seria apagar o que a régua pré-declarada de fato disse.

---

## P2 — Tuberculose e pneumonia em raio-X de tórax

Divisão **por paciente**. Ponto de partida principal: pesos do `torchxrayvision`
(DenseNet-121 treinado em NIH, PadChest, CheXpert, MIMIC-CXR, Google, OpenI, RSNA).
O DenseNet-121 do `timm` (ImageNet) entrou como **comparação declarada antes**.

| tarefa | pesos | ROC-AUC ± dp | PR-AUC ± dp | sensib. | especif. | ECE | Brier |
|---|---|---|---|---|---|---|---|
| Tuberculose | raio-X | 0.9078 ± 0.0356 | 0.9124 ± 0.0347 | 0.799 | 0.889 | 0.2369 | 0.1836 |
| Tuberculose | ImageNet | 0.9296 ± 0.0241 | 0.9371 ± 0.0354 | 0.848 | 0.901 | 0.0454 | 0.1010 |
| Pneumonia | raio-X | 0.9946 ± 0.0023 | 0.9980 ± 0.0008 | 0.966 | 0.967 | 0.0742 | 0.0364 |
| Pneumonia | ImageNet | 0.9969 ± 0.0015 | 0.9988 ± 0.0006 | 0.982 | 0.977 | 0.0241 | 0.0211 |

Sensibilidade e especificidade no **ponto de Youden**.

![ROC e PR da TB](figuras/p2_tb_cv_roc_pr.png)

![matriz de confusão TB](figuras/p2_tb_cv_matriz.png)

### Intra-fonte × validação externa cruzada (a queda de domínio)

| condição | n teste | ROC-AUC | PR-AUC | queda |
|---|---|---|---|---|
| mesma fonte (5 dobras por paciente) | 800 | **0.9078** | 0.9124 | — |
| treina montgomery → testa shenzhen | 662 | **0.7681** | 0.7543 | **-0.1397** |
| treina shenzhen → testa montgomery | 138 | **0.8608** | 0.8265 | **-0.0470** |

![validação externa](figuras/p2_validacao_externa.png)

🚩 **A queda é ASSIMÉTRICA, e um número único a esconderia.** Treinar na fonte
maior (Shenzhen, 662) e testar na menor custa pouco; o caminho inverso custa três
vezes mais. Reportar apenas um dos sentidos mudaria a conclusão de "cai muito"
para "cai pouco".

⚠️ **A pneumonia não tem validação externa.** O conjunto de Guangzhou (Kermany) é
**fonte única**. É limite do dado, declarado no pré-registro, e não foi contornado.

### Verificações pós-hoc (autorizadas em 06/08, DEPOIS de ver resultados)

Declaradas como pós-hoc no pré-registro. Só podiam **derrubar** conclusão, nunca
inflá-la — e derrubaram duas.

**(1) Comparação pareada raio-X × ImageNet**

| tarefa | diferença | IC95 | p | veredito |
|---|---|---|---|---|
| tb_cv | -0.0253 | [-0.0442, -0.0065] | 0.0100 | diferença REAL (IC não cruza zero) |
| pneumonia_cv | -0.0024 | [-0.0036, -0.0012] | 0.0000 | diferença REAL (IC não cruza zero) |

🚩🚩 **A troca pelos pesos de raio-X PIOROU o resultado, nas duas tarefas, e a
diferença é real.** Sem o teste pareado eu teria reportado os dois valores como
empate: dois intervalos separados e sobrepostos escondem diferença que o teste
pareado enxerga, porque a variação comum aos dois modelos cancela.

**(2) Teste de atalho — o modelo acerta pelo motivo certo?**

- Prever **a fonte** só com brilho e tamanho: **AUC 1.0000**
- Prever **o rótulo** só com brilho e tamanho: **AUC 0.7599**

🚩 As fontes são **trivialmente separáveis**, e a estatística crua sozinha já
prevê tuberculose a 0,76. A queda entre fontes está **confundida com diferença
de aparelho**.

| tarefa | imagem inteira | só a moldura (pulmão apagado) | só o miolo |
|---|---|---|---|
| tb_cv | 0.9078 | **0.6566** | 0.8293 |
| pneumonia_cv | 0.9946 | **0.8305** | 0.9672 |

🚩🚩 **A pneumonia tem atalho grave: com o campo pulmonar apagado o modelo ainda
faz 0,83.** Aquele 0,994 não é detecção de pneumonia. A tuberculose se sai melhor
(0,657 só na moldura), então o resultado dela é o mais confiável do P2.

**(3) Intervalos de confiança por reamostragem de pacientes**

| execução | ROC-AUC | IC95 | pacientes |
|---|---|---|---|
| tb_cv | 0.9032 | [0.8809, 0.9244] | 800 |
| tb_cv_imagenet | 0.9285 | [0.9101, 0.9453] | 800 |
| pneumonia_cv | 0.9944 | [0.9930, 0.9957] | 3118 |
| pneumonia_cv_imagenet | 0.9969 | [0.9956, 0.9978] | 3118 |

### Veredito do P2

**A tuberculose tem resultado sólido; a pneumonia, não.** A TB entrega ROC-AUC ~0,91
com queda de domínio medida nos dois sentidos e sobrevive ao teste de atalho. A
pneumonia entrega 0,994 que **o próprio teste de atalho invalida**. E a troca pelos
pesos de raio-X, que era a novidade da segunda fase, **piorou** o desempenho.

---

## P3 — Predição de sepse em UTI (PhysioNet 2019)

**Dado:** 40.336 pacientes · 1.552.210 horas de internação · 127 colunas · prevalência **1.80% das horas** (7.3% dos pacientes).

| modelo | ROC-AUC | PR-AUC | ECE | Brier |
|---|---|---|---|---|
| gradient boosting (CPU) | 0.8450 | 0.1137 | 0.0032 | 0.01704 |
| LSTM temporal (GPU) | 0.7741 | 0.0829 | 0.1920 | 0.12360 |

🚩 **O modelo temporal PERDEU para o baseline.** A rede na GPU ficou abaixo do
gradient boosting na CPU, nas duas métricas.

🔑 **A PR-AUC é a métrica honesta aqui.** Com o evento a 1,8% das horas, um
classificador ao acaso teria PR-AUC 0,018. O boosting faz ~0,11 — cerca de 6×
acima do acaso, o que é real, mas muito distante do que a ROC-AUC de 0,845 sugere
isoladamente.

![ROC e PR do boosting](figuras/p3_gbm_roc_pr.png)

### Antecedência do alerta

| modelo | mediana | doentes | alertados antes | **sem alerta nenhum** |
|---|---|---|---|---|
| gradient boosting | 38.0 h | 2932 | 2241 | **691** |
| LSTM | 37.0 h | 581 | 461 | **120** |

🚩 **A mediana esconde o que importa.** O boesting alerta com 38 h de antecedência
mediana, mas **691 dos 2.932 pacientes sépticos não receberam alerta nenhum** —
quase um quarto. Antecedência só conta para quem foi alertado.

### Validação externa entre hospitais

| treina | testa | n | ROC-AUC | PR-AUC |
|---|---|---|---|---|
| hospital A | hospital B | 761.995 | **0.7456** | 0.0590 |
| hospital B | hospital A | 790.215 | **0.7693** | 0.0838 |

![externo P3](figuras/p3_externo.png)

### Desempenho por subgrupo

| subgrupo | n | taxa base | ROC-AUC | PR-AUC |
|---|---|---|---|---|
| hospital A | 790.215 | 0.0217 | 0.8269 | 0.1153 |
| hospital B | 761.995 | 0.0141 | 0.8597 | 0.1114 |
| idade < 50 | 341.144 | 0.0183 | 0.8438 | 0.1159 |
| idade 50–69 | 660.427 | 0.0177 | 0.8507 | 0.1141 |
| idade ≥ 70 | 550.639 | 0.0181 | 0.8385 | 0.1135 |
| sexo 0 | 684.107 | 0.0166 | 0.8465 | 0.1126 |
| sexo 1 | 868.103 | 0.0191 | 0.8433 | 0.1149 |

![subgrupos](figuras/p3_subgrupos.png)

### Calibração

ECE **0.0032** e Brier **0.01704** para o boosting. ⚠️ O `pos_weight`/desbalanceamento
desloca as probabilidades: a saída serve para **ranquear** e para disparar num
limiar escolhido, **não** para ser lida como risco clínico absoluto.

### Veredito do P3

**Resultado modesto e honesto.** Discrimina acima do acaso (ROC-AUC 0,845;
PR-AUC ~6× o acaso), cai para ~0,75 entre hospitais, e falha completamente em
um quarto dos pacientes sépticos. O modelo temporal, que era a aposta de GPU,
não superou o baseline de CPU.


---

## Pré-registro × o que de fato rodou — TODOS os desvios

Comparação linha a linha com `pre_registro.md`. A regra que vale aqui: desvio não
declarado é o mesmo que resultado inventado.

### A. Pré-declarado e NÃO executado

| o que | por quê | consequência |
|---|---|---|
| **P2 — pré-treino em ChestX-ray14 (42 GB) e CheXpert (~440 GB)** | **Limite físico de disco**: a máquina tinha 23 GB livres. Declarado no pré-registro original, antes de qualquer resultado. | Contornado em 06/08 pelos **pesos** do `torchxrayvision` (28 MB) — emenda datada. A verificação pós-hoc mostrou que essa troca **piorou** o desempenho. |
| **P3 — MIMIC-IV** | Exige credenciamento no PhysioNet (curso + termo, dias a semanas). Declarado de início como **bloqueado por acesso, não abandonado**. | Seguiu-se com o desafio de Sepse 2019, aberto, como o próprio briefing previa. |
| **P3 — split TEMPORAL** | **Impossível neste dado**: o PhysioNet 2019 não traz data de calendário, só hora relativa à admissão. | Substituído por causalidade estrita + split por **paciente** + validação externa entre **hospitais**. Gravado no campo `desvio_declarado` do próprio JSON de resultado. |
| **P2 — validação externa da pneumonia** | O conjunto de Guangzhou (Kermany) é **fonte única**. Não há segunda fonte no disco nem no crédito. | A novidade metodológica do P2 (cruzar fontes) existe **só para a tuberculose**. |
| **P1 — desempenho por subgrupo/fonte nas dez frentes** | O pré-registro pedia subgrupo/fonte para todas as frentes; as frentes do P1 reportam calibração (ECE/Brier) e vazamento, mas **não** desempenho por subgrupo. | **Lacuna real, não justificada por limite de máquina.** Fica registrada como não cumprida. |
| **P1 — calibração em 4 das 10 frentes** | As frentes 4, 8, 9 e 10 não gravaram ECE/Brier (a 8 é regressão e a 9 não tem modelo; a 4 e a 10 simplesmente não gravaram). | Cumprido em 6 de 10. Registrado. |

### B. Executado DIFERENTE do declarado

| o que | como ficou | por quê |
|---|---|---|
| **P1 — terceiro critério do filtro final** | A frente 10 filtrou por escore, domínio e memorização **ao nível da molécula**; o critério de **arcabouço** só foi aplicado nesta consolidação. | Omissão minha na implementação da frente 10. Corrigido aqui, sem retreinar nada — e o veredito só foi escrito depois de aplicá-lo. |
| **P1 — frente 10 sobre COCONUT** | Amostrados **120.000** de ~700.000 estruturas (teto declarado no próprio resultado, `teto_amostra`). | Tempo de máquina. O pré-registro dizia "biblioteca ampliada (base COCONUT)" sem fixar tamanho; a amostragem está registrada, mas **não** foi pré-declarada. |
| **P2 — três verificações pós-hoc** | IC por reamostragem, teste de atalho e comparação pareada. | Pedidas por mim e autorizadas em 06/08, **depois** de ver os primeiros resultados. Entraram no pré-registro como **adendo datado**, e só podiam derrubar conclusão — o que fizeram. |

### C. Falhas de execução (quebrou, foi consertado, rodou)

Nenhuma destas é escolha científica; são defeitos de código. Ficam listadas porque
uma frente que quebra e é relançada precisa ser distinguível de uma que rodou de
primeira.

| onde | falha | conserto |
|---|---|---|
| **P1 frente 3** | `u or ""` não protege contra NaN (NaN é verdadeiro em Python) → `AttributeError` na conversão de unidades. | Guarda por `isinstance`. Relançada — **nunca havia produzido resultado**, então não houve escolha entre resultados. |
| **P2, os seis treinos** | `pos_weight` na GPU com o logit mandado para a CPU → `Expected all tensors to be on the same device`. Latente por horas: só dispara no laço de validação. | Rótulo passa a subir para o dispositivo. Os seis relançados. |
| **P2 maestro** | Gravava `P2_TUDO_COMPLETO` **incondicionalmente** — os seis treinos falharam e o P2 se declarou completo, liberando a fila da GPU. | Marco só é gravado se os seis resultados existirem. |
| **P3** | `HistGradientBoosting` estoura ao binar coluna 100% NaN (exame que um hospital nunca mediu) — só aparece na validação externa. | Máscara de colunas úteis tirada **do treino** (tirá-la do teste seria vazamento). |
| **Ancoragem (LUA, CPU)** | `meio**i / i!` estoura o float com 176 ativos → análise abortada, marco não gravado, e o teto de tentativas do maestro **travou a fila inteira** por 6 h. | Cálculo em espaço logarítmico, equivalente (erro relativo ~1e-14). |

### D. Cumprido como declarado

Divisão por arcabouço de Murcko em 5 dobras para **todas** as dez frentes do P1;
divisão **por paciente** no P2; causalidade estrita no P3 (verificada apagando o
futuro e conferindo que a linha não muda); ROC-AUC **e** PR-AUC em todos; a lista de
dez frentes **fechada** — nenhuma frente 11 foi inventada; e a regra de parada
aplicada só **depois** de as dez terem rodado.

---

## Quadro-resumo — qual resultado é publicável

| projeto | melhor número | sobrevive ao escrutínio? | publicável? |
|---|---|---|---|
| **P2 — tuberculose** | ROC-AUC **0,908 ± 0,036** (IC95 0,881–0,924) | **Sim.** Queda de domínio medida nos dois sentidos (−0,047 e −0,140); com o pulmão apagado desaba para 0,657, ou seja, o sinal **está** no pulmão. | **Sim — é o mais forte do portfólio.** |
| **P1 — classificação de atividade** | ROC-AUC **0,897 ± 0,006** (fingerprints) | Parcialmente. O número é estável e o vazamento é medido (+0,05). Mas o baseline **sem modelo** faz 0,830, então o ganho do modelo é de ~0,07. | Como **estudo de representações**, sim. Como descoberta, não. |
| **P3 — sepse** | ROC-AUC **0,845**, PR-AUC 0,114 | Parcialmente. Cai para ~0,75 entre hospitais e **não alerta 691 dos 2.932** sépticos. | Como replicação honesta de um baseline conhecido, sim. Não como avanço. |
| **P2 — pneumonia** | ROC-AUC 0,995 | **Não.** Com o pulmão apagado ainda faz 0,83 — o número vem de fora do pulmão. | **Não.** Reportado como negativo. |
| **P1 — lista curta** | 17 candidatos nos 3 critérios | **Não.** 11 dos 17 são classes antibióticas conhecidas; Tanimoto mediano 0,83 ao treino. | **Não.** É redescoberta. |

### O mais forte, e por quê

**A tuberculose do P2.** Não por ter o maior número — a pneumonia tem 0,995 e não vale
nada —, mas por ser **o único resultado que passou em todos os testes que podiam
derrubá-lo**: validação externa nos dois sentidos, teste de atalho, intervalo de
confiança por paciente e comparação pareada contra um segundo ponto de partida.

🔑 **A lição do portfólio inteiro:** o número mais alto e o resultado mais confiável
foram, em todos os três projetos, coisas diferentes. Onde não houve teste capaz de
derrubar, o número enganou — e onde houve, ele caiu. Isso vale mais que qualquer AUC
desta tabela.

⚠️ **Nada aqui autoriza uso clínico ou ensaio in vitro.** Os modelos discriminam em
conjuntos de referência; não foram validados prospectivamente, não estão calibrados
como probabilidade, e a fronteira de escopo não foi ultrapassada: **não chegamos a
protocolo de tratamento nem a candidato para bancada.**
