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
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.jsondi 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
- Repository su GitHub: sorgente, traduzioni, script di pacchettizzazione, test
- Release 0.1.1-2: pacchetto Debian, archivio dei sorgenti e somme SHA-256
- README completo
- Guida completa con un esempio sul benzene: dodici schermate reali, approfondimenti e script di verifica