Structures of protoheme IX, coproheme III, uroporphyrinogen III, siroheme, and heme d1. The structure of protoheme IX is shown with the four pyrrole rings labeled by convention as rings A, B, C, and D. The numbering of side chains is also shown. Of note is that the D ring is inverted to form the IX isomer of protoporphyrin, which corresponds to the III isomer of uroporphyrinogen and coproporphyrinogen. Siroheme is not a true porphyrin but rather is an isobacteriochlorin, since its B and C rings have methyl groups substituted on the A and B rings, which prevents full macrocycle desaturation. Likewise, heme d1 is also not a porphyrin but is a dioxoisobacteriochlorin.