DEV Community

Cover image for qchem-leak-screen v0.1.0: sanity-check físico de propiedades cuánticas predichas por IA en CPU
Fenix
Fenix

Posted on

qchem-leak-screen v0.1.0: sanity-check físico de propiedades cuánticas predichas por IA en CPU

qchem-leak-screen v0.1.0: sanity-check físico de propiedades cuánticas predichas por IA en CPU

Los modelos de property-prediction escupen momento dipolar, HOMO/LUMO y brecha de banda en milisegundos sin correr DFT. Nadie valida que esas propiedades cumplan leyes físicas. qchem-leak-screen es el linter perimetral que lo hace, agnóstico del modelo y sin GPU.

El problema

Un modelo predice (SMILES, propiedades) y tú lo mandas a síntesis o a un DFT caro. Pero nada revisa si el dipole de 999 D, el gap negativo o la carga neta +5 en benceno son físicamente posibles. No falta un cálculo mejor: falta la capa de control que inspeccione lo que otro modelo ya predijo.

La auditoría de código fuente (2026-07-12) lo confirma a nivel de repositorio: deepchem y OpenFermion son motores de cálculo (definen BaseSymmetry para DFT interno, no validadores de salida); 0 archivos con valid/consist/sanity/koopmans en OpenFermion. El ecosistema de cálculo es enorme (deepchem 6860★, OpenFermion 1709★); el sanity-check perimetral agnóstico es cero.

Qué hace

Recibe (SMILES, propiedades_predichas) y emite un veredicto por regla física dura, con motivo explícito. Todo en CPU, sin GPU, sin llamar a ningún modelo.

Reglas del MVP (R1–R4), todas físicamente derivadas, no ajustadas al fixture:

  • R1 Topología: valencia atómica, carga neta, aromaticidad (parser SMILES propio).
  • R2 Koopmans: gap ≈ −ε_HOMO (aproximación de orbitales moleculares, Koopmans 1934).
  • R3 Simetría de punto-grupo: dipolo ≠ 0 en grupos con inversión (Ci, C2h, D2h, Oh) viola centrosimetría (teoría de grupos, Cotton). Skipped sin geometría 3D.
  • R4 Rangos físicos: aislante estable ⇒ gap > 0; dipolo conocido rara vez > ~15 D; sin NaN/inf.

Cada violación lleva rule_id, severity y reason. No es un score ciego: es una afirmación física comprobable.

Salida SARIF para CI

Además de JSON/Markdown, --format sarif emite SARIF 2.1.0 válido contra el schema oficial de OASIS, consumible por GitHub Code Scanning sin parser custom. Es render puro del veredicto: cada regla es un rule, cada violación un result con level="error" y el reason como message.text. Las reglas skipped no se emiten como hallazgo.

- name: Sanity-check de propiedades cuánticas
  run: |
    qls check --in candidatos/ --format sarif > qls.sarif
- name: Subir SARIF
  uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: qls.sarif
Enter fullscreen mode Exit fullscreen mode

Límites (honestidad metodológica)

Es un sanity-check heurístico, no una autoridad de química cuántica:

  • R1–R4 son heurísticas de detección de anomalías, no verdad absoluta. Un PASS no prueba que la molécula exista ni que las propiedades sean correctas; solo que no violan esas leyes duras.
  • El filtro nunca corre DFT (ORCA, Gaussian, PySCF). Solo inspecciona valores ya predichos por otro modelo.
  • Las tolerancias (TOL_KOOPMANS_EV, DIP_MAX_DEBYE) son físicamente derivadas y documentadas; Koopmans es aproximación y el DFT real desvía ~1–2 eV, por eso la tolerancia es generosa.
  • Cobertura parcial: R3 requiere geometría 3D; sin ella queda skipped, no FAIL.
  • Los fixtures usan ground truth independiente de las reglas (valores de literatura/DFT reales y valores manifiestamente imposibles). Las reglas no se validaron contra un benchmark experimental propio; son físicamente derivadas.

Resultados de la implementación

Métrica Valor
Tests 34 passed
Cobertura 88.31% (gate 80%)
Dependencias runtime solo typer
Tiempo por molécula < 50 ms (CPU)
Salida JSON, Markdown, SARIF 2.1.0
Licencia AGPL-3.0-or-later

Verificado por auditoría independiente en clon fresco: 34 passed, cobertura 88.31%, 0 referencias a modelo/DFT en los tests (anti-oráculo).

Pruébalo

python -m venv .venv && source .venv/bin/activate
pip install -e .
qls check --in fixtures/hallucinated.json --format sarif
Enter fullscreen mode Exit fullscreen mode

Referencias

Links


Licencia: AGPL-3.0-or-later — Pedro Sordo Martínez — amurlaniakea@gmail.com

Top comments (0)