GX Spectra Library: spettri di riferimento IR, UV/Vis e NMR

GX Spectra Library è un piccolo programma desktop per Debian che ho scritto per avere a portata di mano gli spettri di riferimento IR, UV/Vis e NMR senza ripetere ogni volta la ricerca in rete. Li cerca nel NIST Chemistry WebBook e in nmrshiftdb2, li mostra in anteprima e ne conserva i file JCAMP-DX originali in una biblioteca locale che funziona anche senza connessione, da cui si esportano CSV e archivi ZIP con la provenienza. È scritto in Python con Tkinter e Matplotlib ed è indipendente da GX-TXT.

Il video di presentazione

Presentazione di GX Spectra Library (in italiano), generata con Gemini Notebook a partire dalla guida completa.

Cosa fa

  • Cerca per nome del composto, preferibilmente in inglese, o per numero CAS: spettri IR e UV/Vis nel NIST Chemistry WebBook, NMR 1H e 13C in nmrshiftdb2. PubChem serve solo a ricavare la struttura (SMILES) per la ricerca NMR.
  • Mostra l’anteprima con Matplotlib, con zoom, spostamento e salvataggio dell’immagine; gli assi dell’IR e dell’NMR sono invertiti come da convenzione. L’NMR è disegnato a barre di altezza arbitraria, perché le fonti forniscono liste di picchi e non FID.
  • Scarica fino a 12 spettri per operazione e ne conserva il JCAMP-DX originale non modificato, registrando fonte, URL, data, dimensione e impronta SHA-256 in un catalogo SQLite. Le ricerche NMR predette sono nascoste a meno di chiederle.
  • Biblioteca locale consultabile offline, con filtro per nome, CAS, tecnica e descrizione e apertura della cartella dei dati.
  • Esporta in CSV a due colonne con i commenti sulla fonte, copia il JCAMP originale, crea archivi ZIP di più spettri con un manifest.json di provenienza; importa file JCAMP, CSV o TXT propri.
  • Interfaccia in inglese e in italiano con GNU gettext, scelta dalla lingua del sistema.

Come si installa

Dalla pagina Releases si scaricano il pacchetto gx-spectra-library_0.1.1-2_all.deb e il file SHA256SUMS; dalla cartella in cui si trovano:

sha256sum -c --ignore-missing SHA256SUMS
sudo apt install ./gx-spectra-library_0.1.1-2_all.deb
gx-spectra-library

APT installa le dipendenze di sistema e non serve pip. Il programma compare anche nel menu delle applicazioni. Per scegliere la lingua di una singola esecuzione: LANGUAGE=en gx-spectra-library oppure LANGUAGE=it gx-spectra-library. Dal sorgente si usano invece ./installa_ambiente.sh (ambiente virtuale con le dipendenze da pip) e ./avvia_spettri.sh.

Dove tiene i dati

~/.local/share/gx-spectra-library/
├── catalogo.sqlite3
└── data/
    ├── IR/
    ├── UV_Vis/
    ├── NMR_1H/
    └── NMR_13C/

La biblioteca sta fuori dal pacchetto: aggiornare o rimuovere il programma non cancella gli spettri. Se è impostata XDG_DATA_HOME la cartella è $XDG_DATA_HOME/gx-spectra-library, il che permette di tenere biblioteche separate (ad esempio per le prove). Al primo avvio il pacchetto copia, senza modificarla, l’eventuale biblioteca della vecchia versione autonoma in ~/spettri.

Cosa serve per farlo girare

Debian 13 con i pacchetti python3-tk, python3-numpy, python3-matplotlib, python3-requests, python3-bs4, xdg-utils e ca-certificates, che APT installa da sé. Il lettore JCAMP-DX di Nathan Hagen (licenza MIT) è incluso. La connessione a internet serve solo per cercare e scaricare; la biblioteca locale funziona offline.

Limiti e diritti dei dati

  • Gli spettri NMR delle fonti sono liste di posizioni dei picchi: l’altezza delle barre non è un’intensità e il record va verificato nella banca dati d’origine prima di usarlo per misure.
  • Che una banca dati sia accessibile in rete non rende i suoi dati liberamente ridistribuibili: vanno rispettate le condizioni e le citazioni di NIST (SRD 69, molti spettri IR sono della Coblentz Society) e di nmrshiftdb2.
  • Il repository e i pacchetti non contengono spettri né cataloghi personali.

Il codice è distribuito con licenza GNU GPL v3 o successiva; il lettore JCAMP incluso conserva la sua licenza MIT.

Dove trovarlo