◼ Tutorial 1 — Heterocycles: how much of a lone pair delocalizes?
Three small rings, six π-electrons each, one question: how much of the heteroatom lone pair actually takes part in the π-delocalization? Pyrrole and furan are aromatic; 1,4-dihydropyridine is not, because its sp3 carbon breaks the cycle. Along the way you will meet the two basic modes of runEDDB, the population table you will read most often, and the Cyclic Delocalization Index (CDI) — the EDDB aromaticity measure.
What you will learn
Running a global analysis (EDDBG) and reading the atomic populations of localized and delocalized electrons.
Exporting the delocalized density as a 3D map (.cube) and viewing it.
Running a pathway analysis (EDDBP) around a ring and extracting the CDI.
What the numbers say about a heteroatom lone pair — and why an aromatic ring makes it delocalize more.
Before you start
Download the three geometry files below. They are plain .xyz files, so runEDDB builds the wavefunction itself with its built-in GFN2-xTB engine — no external quantum-chemistry program is needed and every run below finishes in a second or two. The stage line Modelling one-electron density at the GFN2-xTB/vSTO-nG level in the output confirms which engine was used.
The three molecules. Each heteroatom carries a lone pair conjugated with the ring π-bonds.
Atom numbering follows the order in the .xyz files: in pyrrole and furan the ring atoms are C1–C4 and the heteroatom is atom 5; in 1,4-dihydropyridine the nitrogen is atom 1 and the ring carbons are 2–6 (C4 is the sp3 carbon). You will need these numbers for the ring pathway in Part 2. (Pyrrole and furan also exist in runEDDB’s built-in library, -i @pyrrole and -i @furan, but as different geometries with a different atom order — use the files above so that your numbers match the ones on this page.)
⚠ A note on the method. GFN2-xTB is a fast, approximate tight-binding model. It is more than good enough to explore delocalization trends like the ones in this tutorial, but it tends to overestimate delocalization. For publication-quality numbers, repeat the analysis on an ab-initio wavefunction — the cheat-sheet shows how to prepare one in your favourite program; the runEDDB commands stay the same.
-i pyrrole.xyz — the input file. Because it is a geometry, runEDDB first computes the GFN2-xTB wavefunction.
-g — the global scope (EDDBG): every atom pair in the molecule is analysed. This is also the default when no scope is given.
--export-cube eddb — write the delocalized density to pyrrole.EDDB_G.cube for 3D visualization.
-a (or --auto-pi) — keep only the π-type orbitals, so all populations refer to the six π-electrons of pyrrole.
--table npa — print the condensed-atomic table of the natural population analysis.
> pyrrole-eddb-g.log — save the terminal output to a file (optional).
pyrrole-eddb-g.log
────────────────────────────────────────────────────────────────────────────────────────
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ Build date:
r █▄ ▄▄ █▄ ▄▄▀█▄ ▄▄▀█▄ ▄ ▀█ 2026-Sep-15
u ██ ▄█▀██ ██ ██ ██ ██ ▄ ▀█
n █▄▄▄▄▄█▄▄▄▄██▄▄▄▄██▄▄▄▄██
Electron Density of Delocalized Bonds Analysis
(https://aromaticity.uj.edu.pl/runeddb)
────────────────────────────────────────────────────────────────────────────────────────
▶ Loading and parsing input file... 0s
▶ Modelling one-electron density at the GFN2-xTB/vSTO-nG level... 0s
▶ Building natural atomic orbitals (NAO, frozen-NMB two-cycle)... 0s
▶ Performing multicenter bond-orbital projections (BOP)... 0s
▶ Computing natural orbitals for bond delocalization (NOBD)... 0s
▶ Exporting EDDB_G to pyrrole.EDDB_G.cube... 1s
▶ Printing analysis details:
┌────────────────────────────────────────────────────────────────────────────────────┐
│ NATURAL POPULATION ANALYSIS IN CONDENSED-ATOMIC (NVB) RESOLUTION │
└────────────────────────────────────────────────────────────────────────────────────┘
Atom Charge ED_G α β EDDB_G α β
──────── ───────── ───────── ───────── ───────── ═════════ ───────── ─────────
1 C +0.02351 1.11613 - - 0.70960 - -
2 C -0.06235 1.09378 - - 0.66513 - -
3 C -0.06235 1.09378 - - 0.66513 - -
4 C +0.02351 1.11613 - - 0.70960 - -
5 N -0.09572 1.58017 - - 0.87820 - -
6 H +0.15735 0.00000 - - 0.00000 - -
7 H +0.00246 0.00000 - - 0.00000 - -
8 H +0.00557 0.00000 - - 0.00000 - -
9 H +0.00557 0.00000 - - 0.00000 - -
10 H +0.00246 0.00000 - - 0.00000 - -
──────── ───────── ───────── ───────── ───────── ═════════ ───────── ─────────
▶ Printing summary of EDDB calculations:
Total ED_G population: 6.00000 per atom: 0.60000
Total EDLB_G population: 2.37233 per atom: 0.23723
Total EDDB_G population: 3.62767 per atom: 0.36277
▶ Calculation completed on 2026-09-17. Total time: 1s.
Three columns of the table matter here:
Charge — the natural atomic charge. It comes from the full density, so it is not a π-only quantity even with -a.
ED_G — the π-electron population on each atom.
EDDB_G — the part of ED_G that is genuinely delocalized. The rest, ED_G − EDDB_G, is localized (EDLB_G).
For the nitrogen atom, ED_G = 1.580 π-electrons of which EDDB_G = 0.878 are delocalized; the remaining 0.702 e stay localized on N. In other words, about 56% of the lone pair is delocalized. The hydrogen rows read 0.00000 — expected, because hydrogen has no π-density to contribute. At the bottom the totals are printed: ED_G = 6.00 π-electrons, as it should be, split into 3.63 e delocalized (EDDB_G) and 2.37 e localized (EDLB_G).
The exported cube file opens in any volumetric viewer (Avogadro2, IQmol, GaussView, VMD, Chemcraft…). In Avogadro2 choose Analyze → Create Surfaces, pick the cube and set the isovalue to 0.025:
Pyrrole: EDDBG (π) at isovalue 0.025.
Part 2 — Cyclic delocalization and the CDI (EDDBP)
The global picture tells you how much is delocalized, not whether that delocalization runs around the ring. For that, switch to the pathway scope and give runEDDB the ring as a closed chain of atom indices:
-p 1-2-3-4-5-1 selects the EDDBP scope for the cycle C1–C2–C3–C4–N5–C1; repeating the first index closes the ring. Everything else is as before.
pyrrole-eddb-p.log
⋯ banner and stage lines omitted ⋯
▶ Printing analysis details:
┌────────────────────────────────────────────────────────────────────────────────────┐
│ NATURAL POPULATION ANALYSIS IN CONDENSED-ATOMIC (NVB) RESOLUTION │
└────────────────────────────────────────────────────────────────────────────────────┘
Atom Charge ED_P α β EDDB_P α β
──────── ───────── ───────── ───────── ───────── ═════════ ───────── ─────────
1 C +0.02351 1.11613 - - 0.59528 - -
2 C -0.06235 1.09378 - - 0.59718 - -
3 C -0.06235 1.09378 - - 0.59718 - -
4 C +0.02351 1.11613 - - 0.59528 - -
5 N -0.09572 1.58017 - - 0.58116 - -
──────── ───────── ───────── ───────── ───────── ═════════ ───────── ─────────
▶ Printing summary of EDDB calculations:
Total ED_P population: 6.00000 per atom: 1.20000
Total EDLB_P population: 3.03392 per atom: 0.60678
Total EDDB_P population: 2.96608 per atom: 0.59322
Cyclic Delocal. Index (CDI): 0.58116
Delocalized fraction (%del): 49.43 %
Cyclic coherence (%cyc): 48.43 %
▶ Calculation completed on 2026-09-17. Total time: 1s.
Only the five ring atoms appear now and the columns are tagged _P. The last line is the Cyclic Delocalization Index (CDI): the smallest per-atom EDDBP value along the cycle. Cyclic delocalization is only as good as its weakest link, so the CDI is the largest population that can circulate uniformly around the ring. In pyrrole the weakest link is the nitrogen (EDDB_P = 0.581 against ≈0.60 on each carbon), hence CDI = 0.581 π-electrons per atom.
Two percentages follow the CDI. %del is the delocalized share of the ring’s π-population (EDDB_P / ED_P, here 49%), and %cyc is the CDI expressed as a fraction of the per-atom π-population — a size-independent number that makes rings of different sizes and electron counts directly comparable.
For scale: benzene at the same GFN2-xTB level gives CDI ≈ 0.89 e per atom (%cyc ≈ 89%; try runEDDB -i @benzene -p 1-2-3-4-5-6-1 -a -q — no file needed, the model is built in); a non-aromatic or antiaromatic ring gives a CDI close to zero.
⋯ banner and stage lines omitted ⋯
▶ Printing analysis details:
┌────────────────────────────────────────────────────────────────────────────────────┐
│ NATURAL POPULATION ANALYSIS IN CONDENSED-ATOMIC (NVB) RESOLUTION │
└────────────────────────────────────────────────────────────────────────────────────┘
Atom Charge ED_G α β EDDB_G α β
──────── ───────── ───────── ───────── ───────── ═════════ ───────── ─────────
1 N -0.16327 1.69218 - - 0.50084 - -
2 C +0.05694 1.04252 - - 0.18822 - -
3 C -0.05768 1.09488 - - 0.19963 - -
4 C -0.03662 0.02136 - - 0.00379 - -
5 C -0.05766 1.09488 - - 0.19963 - -
6 C +0.05693 1.04253 - - 0.18823 - -
7 H +0.00240 0.00000 - - 0.00000 - -
8 H +0.00240 0.00000 - - 0.00000 - -
9 H +0.00349 0.00000 - - 0.00000 - -
10 H +0.01678 0.00582 - - 0.00146 - -
11 H +0.00350 0.00000 - - 0.00000 - -
12 H +0.15601 0.00000 - - 0.00000 - -
13 H +0.01678 0.00584 - - 0.00146 - -
──────── ───────── ───────── ───────── ───────── ═════════ ───────── ─────────
▶ Printing summary of EDDB calculations:
Total ED_G population: 6.00000 per atom: 0.46154
Total EDLB_G population: 4.71675 per atom: 0.36283
Total EDDB_G population: 1.28325 per atom: 0.09871
▶ Calculation completed on 2026-09-17. Total time: 1s.
Two rows stand out. Atom 4 C, the sp3 carbon, carries almost no π-density at all (ED_G = 0.021). And unlike pyrrole and furan, two hydrogens — the CH2 pair, atoms 10 and 13 — show a small but non-zero π-population: a trace of hyperconjugation with the adjacent C=C bonds.
1,4-Dihydropyridine: EDDBG (π) at isovalue 0.025. The lone pair still conjugates with the two C=C bonds, but the delocalization never closes into a cycle.
1,4-dihydropyridine-eddb-p.log
⋯ banner and stage lines omitted ⋯
▶ Printing analysis details:
┌────────────────────────────────────────────────────────────────────────────────────┐
│ NATURAL POPULATION ANALYSIS IN CONDENSED-ATOMIC (NVB) RESOLUTION │
└────────────────────────────────────────────────────────────────────────────────────┘
Atom Charge ED_P α β EDDB_P α β
──────── ───────── ───────── ───────── ───────── ═════════ ───────── ─────────
1 N -0.16327 1.69138 - - 0.23884 - -
2 C +0.05694 1.05533 - - 0.09415 - -
3 C -0.05768 1.08243 - - 0.08421 - -
4 C -0.03662 0.00377 - - 0.00028 - -
5 C -0.05766 1.08243 - - 0.08421 - -
6 C +0.05693 1.05534 - - 0.09416 - -
──────── ───────── ───────── ───────── ───────── ═════════ ───────── ─────────
▶ Printing summary of EDDB calculations:
Total ED_P population: 5.97068 per atom: 0.99511
Total EDLB_P population: 5.37482 per atom: 0.89580
Total EDDB_P population: 0.59585 per atom: 0.09931
Cyclic Delocal. Index (CDI): 0.00028
Delocalized fraction (%del): 9.98 %
Cyclic coherence (%cyc): 0.03 %
▶ Calculation completed on 2026-09-17. Total time: 1s.
The CDI is essentially zero: there is no uniform cyclic delocalization in this ring.
Pyrrole vs furan. Cyclic delocalization is weaker in furan: CDI = 0.368 vs 0.581 e per atom. The ordering matches energetic estimates of the aromatic stabilization of the two heterocycles, roughly 14.8 kcal/mol for furan and 20.6 kcal/mol for pyrrole (Chem. Rev. 2005, 105, 3773). The origin is visible in the per-atom numbers: oxygen is much more electronegative than nitrogen and holds its lone pair more tightly. Its π-population is the larger of the two (1.675 vs 1.580) while its delocalized part is the smaller (0.806 vs 0.878) — 48% delocalization efficiency for O against 56% for N.
1,4-Dihydropyridine has CDI = 0.000: no uniform cyclic delocalization. There is still some delocalization between the lone pair and the two adjacent C=C bonds (total EDDB = 1.28 e), but the nitrogen lone pair is by far the most localized of the three (1.19 e localized, only 30% efficiency).
In pyrrole and furan the lone pair enters a cyclic resonance with the ring bonds; in 1,4-dihydropyridine the conjugation stops at the sp3 carbon on both sides.
The lesson: in aromatic pyrrole and furan, the aromatic stabilization gained through cyclic resonance pulls the lone pair into delocalization. In 1,4-dihydropyridine there is no such stabilization to be gained, so the lone pair stays put on the nitrogen.
What to try next
Drop -a from any command to analyse all valence electrons (σ and π together) and see how the populations change.
Add --table nobd to see which orbitals -a selected as π-type — Tutorial 2 explains how to read that table.
Export --export-cube eddb,edlb in one run and compare the delocalized and localized densities side by side.
Where to go next.Tutorial 2 finds the rings of phenanthrene automatically, computes the CDI of each and maps the delocalized bonds with the Bond Delocalization Function. The cheat-sheet collects every command in one place, and the Manual is the full reference.