home *** CD-ROM | disk | FTP | other *** search
- - 1 -
- Jürgen Linz : Nomenklatur von Alkanen nach IUPAC-Norm
-
-
- Nomen est omen
- --------------
-
- Nomenklatur von Alkanen nach IUPAC-Norm
-
-
- Bereitet es im allgemeinen bereits Schwierigkeiten dem
- eigenen Nachwuchs einen - allen gerecht werdenden -
- Namen zu verpassen, so verzweifelt selbst der gutmütigste
- Vater bei der Namensgebung in der organischen Chemie.
- Auch, wenn es sich nur um gesättigte Kohlenwasserstoffe
- handelt.
- Doch selbst hier steckt (Betriebs-) System dahinter.
- Mit ein "paar" Programmzeilen in TURBO-Pascal 5.0 geht's
- wie von selbst.
-
-
- Um bei der Unmenge chemischer Verbindungen, die bis heute
- entdeckt bzw. synthetisiert wurden, den Überblick zu behalten
- und eine vernünftige, d.h. verwechslungfreie Kommunikation der
- Chemiker untereinander -selbst über Sprachgrenzen hinweg- zu
- ermöglichen, muß eine einheitliche (genormte) Benennung
- (Nomenklatur) der Stoffe erfolgen.
- Dies gilt bereits für die anorganische Chemie mit etwa 500000
- bekannten Verbindungen, insbesondere aber für die organische
- Chemie, die über 8 Millionen Verbindungen kennt und jährlich
- um etwa 500000 neusynthetisierte Stoffe bereichert wird.
-
- Der Grund für diesen enormen Verbindungsreichtum liegt in den
- außerordentlichen Eigenschaften des Kohlenstoffs begründet,
- der das dominierende Element der organischen Chemie ist.
- Deshalb zunächst ein kleiner ...
-
-
- Crash-Curs Chemie
-
- Kohlenstoff (C) steht im Periodensystem der Elemente in der
- IV. Hauptgruppe und besitzt demnach vier Valenzelektronen.
- Aus energetischen Gründen kann er diese vier Elektronen weder
- an seinen Bindungspartner abgeben, noch kann er von diesem
- vier weitere Elektronen aufnehmen, um so in die bei jeder
- chemischen Bindung angestrebte (weil energetisch günstige)
- Edelgaskonfiguration der Elektronenhülle zu gelangen.
- Kohlenstoff kann deshalb keine Ionenbindungen bilden, sondern
- muß mit seinen Bindungspartnern Atombindungen eingehen.
- Dabei wird die Oktettregel streng eingehalten, d.h. Kohlenstoff
- ist stets vierbindig/-wertig.
-
- Im Gegensatz zu seinen unmittelbaren Nachbarn im Perioden-
- system Bor (B), Stickstoff (N) und Silizium (Si) zeichnet
- sich Kohlenstoff nun aber besonders dadurch aus, daß sich
- C-Atome in großer Anzahl untereinander verbinden können.
- Sie bilden unverzweigte und verzweigte Ketten (aliphatische
- Struktur) und Ring(e)/-systeme (zyklische Struktur).
- Außer mit sich selbst können C-Atome natürlich mit Atomen
- anderer Elemente (Fremd-/Heteroatome) verknüpft sein.
- Zu den häufigsten Bindungspartnern zählen Wasserstoff (H),
- Sauerstoff (O), Stickstoff (N), Schwefel (S), Phosphor (P),
- sowie die Halogene Fluor, Chlor und Brom (F, Cl, Br).
- Zwischen den Atomen sind Einfach-, Doppel- und Dreifach-
- bindungen möglich.
-
-
- - 2 -
- Jürgen Linz : Nomenklatur von Alkanen nach IUPAC-Norm
-
-
- Durch diese vielfältigen Bindungsmöglichkeiten ergeben sich
- so unterschiedliche Substanzklassen/Verbindungen wie :
-
- - gesättigte und ungesättigte Kohlenwasserstoffe (KW's) :
- (Cyclo-) Alkane (Methan, Ethan, Propan, Butan), (Cyclo-) Alkene,
- Alkine, Enine, halogenierte KW's (Chloroform, FCKW's)
- - ein- und mehrwertige Alkohole (Methanol, Ethanol, Glycerin)
- - Aldehyde und Ketone (Formaldehyd, Aceton)
- - organische Säuren/Fettsäuren (Ameisensäure, Essigsäure)
- - Aminosäuren -> Peptide u. Proteine/Eiweiß (z.B. Enzyme)
- - Fette (Lipide)
- - Kohlenhydrate (Glucose, Lactose, Maltose, Cellulose)
- - Aromaten (Benzol -> Phenol, Anilin)
-
- Auch Farbstoffe, Kunstoffe/-fasern, Arzneimittel, Vitamine,
- Hormone und die Erbsubstanz DNA haben vornehmlich C-Atome
- in ihren Strukturen.
-
-
- What's your name ?
-
- Doch wir wollen uns auf die Kohlenwasserstoffe und bei diesen
- auf die gesättigten, aliphatischen KW's (Alkane) beschränken.
- Alkane sind -neben anderen KW's- der Hauptbestandteil des
- Erdöls und somit Ausgangspunkt für die Gewinnung hochwertiger
- Energieträger (Gas, Benzin, Öl), sowie Rohstoff der Petrochemie.
-
- Bei den Alkanen sind die C-Atome nur durch Einfachbindungen
- verknüpft und alle anderen möglichen Bindungen mit Wasserstoff
- abgesättigt. Ihre allgemeine Summenformel lautet : CnH2n+2
- Bereits deren Anzahl ist unermeßlich groß, denn es gibt
- (theoretisch) unendlich viele unverzweigte Alkane, dazu kommen
- noch deren Strukturisomere, d.h. verzweigte KW's mit gleicher
- Anzahl an C-Atomen.
- So hat z.B. HEPTAN (C7H16) 9 Isomere, DECAN (C10H22) bereits 75,
- EICOSAN (C20H42) 366319 und TETRACONTAN (C40H82) sogar über
- 62 Billionen Isomere.
- Doch davon wollen wir uns nicht abschrecken lassen und allen
- möglichen Vertretern dieser Verbindungsklasse einen anständigen,
- d.h. eindeutigen (sogar 1-1-deutigen) Namen zuteilen.
- Und der setzt sich wie im richtigen Leben aus "Vor-" und
- "Nachnamen" zusammen und ist noch dazu genormt.
- Denn die "International Union of Pure and Applied Chemistry"
- (IUPAC) hat einige Regeln erlassen, wie er zu bilden ist
- (sogenannte Genfer Nomenklatur).
-
- Zunächst ist die Hauptkette (HK) des Moleküls zu bestimmen.
- Dabei geht man von folgenden Kriterien aus :
-
- Hauptkette ist, die
-
- (1) längste Kette (größte Zahl an C-Atomen)
- (2) Kette mit den meisten Nebenketten (NK)
- (3) Kette mit den niedrigsten Positionsziffern für die NK
- (4) Kette mit den meisten C-Atomen in den NK
- (5) Kette mit mehr C-Atomen in der betrachteten NK
- beim Vergleich der nach der Größe geordneten NK
- (6) Kette mit möglichst gering verzweigten Nebenketten
-
-
- - 3 -
- Jürgen Linz : Nomenklatur von Alkanen nach IUPAC-Norm
-
-
- Gibt es nach Anwendung eines Kriteriums noch eine Wahl-
- möglichkeit, so wird das folgende Kriterium angewandt.
- Ergibt sich auch durch das letzte Kriterium keine endgültige
- Entscheidung, so sind die zur Wahl stehenden Möglichkeiten
- gleichwertig und es ergäbe sich für sie der gleiche Name.
-
- Aus der Zahl der C-Atome der Hauptkette ergibt sich der
- "Nachname" des Alkans, zu dem sich noch das Suffix 'AN'
- als Kennzeichen dafür, daß es sich um ein Alkan handelt,
- gesellt.
- Die ersten vier Alkane besitzen jedoch Trivialnamen :
- METHAN, ETHAN, PROPAN, BUTAN
- Ab dem fünften Alkan wird der Name aus dem entsprechenden
- lateinischen bzw. griechischen Zahlwort gebildet :
- PENTAN, HEXAN, HEPTAN, OCTAN, NONAN, DECAN usw.
- Bei unverzweigten Ketten ist dies bereits der endgültige
- Name des Moleküls.
- Besitzt das Molekül jedoch Nebenketten, also Verzweigungen,
- so muß auch noch der "Vorname" gefunden werden.
- Dazu muß für jede Nebenkette äquivalent zur Hauptkette vor-
- gegangen werden, d.h. aus der Länge der Nebenkette ergibt
- sich deren Name, der jedoch mit 'YL' endet.
-
- Für den endgültigen Namen spielt neben der Länge auch die
- Position der Nebenketten eine entscheidende Rolle.
- Dabei numeriert man die Hauptkette so, daß sich für die
- Nebenketten kleinstmögliche Positionsziffern ergeben.
- Ergeben sich von beiden Seiten der Hauptkette aus gleiche
- Positionsziffern, so erhält die im Namen zuerst auftretende
- Nebenkette die niedrigste Positionsziffer.
- Positionnummern und Namen der Nebenketten werden vor
- den Namen der Hauptkette gesetzt.
- Zur weiteren Vereinfachung werden identische Nebenketten
- zusammengefasst, und zwar mit durch Komma getrennten
- Positionsziffern und den vervielfachenden Affixen DI, TRI,
- TETRA, ... für die Anzahl der identischen Nebenketten.
- Zusätzlich werden die Nebenketten alphabetisch geordnet
- (jedoch ohne Berücksichtigung der Präfixe).
- Sind auch die Nebenketten verzweigt, so werden diese wie
- beschrieben benannt, jedoch geklammert hinter ihrer
- Positionsziffer in den Namen aufgenommen.
- Die Nebenketten selbst werden so numeriert, daß sie mit
- ihrer Position 1 an die übergeordnete Kette geknüpft sind.
- Treten identische Nebenketten auf, die ihrerseits identisch
- verzweigt sind (identisch weitersubstituierte identische
- Substituenten), so erhalten sie bei der Vereinfachung
- des Namens die Multiplikativ-Präfixe BIS, TRIS, TETRAKIS, ... .
-
-
- Repräsentationspflicht
-
- Zur Darstellung eines Alkanmoleküls im Rechner wurde die
- Datenstruktur des Baumes gewählt, da diese die natürliche
- Hierarchie des Moleküls (Hauptkette mit abzweigenden
- Nebenketten, die selbst wiederum Nebenketten besitzen können)
- exakt wiedergibt; sie ist isomorph.
- Dabei stellt die Hauptkette des Alkans die Wurzel eines
- t-ären geordneten Baumes dar, d.h. jeder Knoten des Baumes
- (= Kette des Alkans) hat höchstens t Nachfolger/Söhne
- (= Nebenketten) in festgelegter Reihenfolge K1 .. Kt.
- Die Reihenfolge der Nachfolger ergibt sich aus der Position,
- an der sie von der übergeordnete Kette abzweigen.
-
-
- - 4 -
- Jürgen Linz : Nomenklatur von Alkanen nach IUPAC-Norm
-
-
- Eine C-Kette der Länge n kann nun höchstens 2*(n-1) Nebenketten
- haben, da ja - mit Ausnahme des Atoms am Kettenende - von jedem
- Atom der Kette zwei Nebenketten abgehen können.
- Die Hauptkette macht hier insofern eine Ausnahme, als daß sie
- ja zwei Kettenenden besitzt, also nur 2*(n-2) Nebenketten
- abzweigen können.
- Die maximale Zahl der Nebenketten einer Kette und damit die
- Anzahl der Sohnzeiger ist also abhängig von der Länge der Kette,
- was bei der Codierung der Datenstruktur in einer realen
- Programmiersprache zum Problem wird, da hier bei der Typverein-
- barung die Zahl der Zeiger ja bereits feststehen muß.
- Jeder t-äre Baum läßt sich jedoch durch einen binären Baum
- repräsentieren, indem der Sohn mit der niedrigsten Positionsziffer
- über den Zeiger auf den linken Nachfolger (Sohn) an den Vater, die
- weiteren Söhne als rechte Nachfolger (Brüder) an diesen Sohn
- angehängt werden.
- In der realen Implementierung wurde der Baum als doppelt
- verkettete RECORD-Struktur realisiert, d.h zusätzlich zu den
- Zeigern auf Sohn und rechten Bruder existieren Zeiger auf Vater
- und linken Bruder.
- Neben Angaben über Position und Länge (für Regeln 1 + 3) sind für
- jede Kette zusätzliche Informationen für die weiteren Kriterien
- notwendig.
- Jeder Baumknoten (RECORD-Element) enthält somit folgende Daten :
-
- - posit , laenge , niveau
- - anso (Anzahl Söhne/NK)
- - anlibr/anrebr (Anzahl linke/rechte Brüder)
- - sumpos/revpos (Summe der Posziffern der Söhne)
- - sumanca (Summe der C-Atome in Nebenketten)
- - anca (geordnete Liste der Atomanzahl in NK)
- - komplex (Verzweigungsgrad der NK)
- - atome (Koordinaten der Kettenatome)
- - vater, sohn, libr, rebr (Zeiger)
-
-
- Generationenkonflikt
-
- Bei Programmstart existiert nur die Wurzel des Baumes
- (Hauptkette) mit der willkürlich gewählten Positions-
- ziffer 0 und der Länge 1 (METHAN / ein C-Atom ist vorgegeben).
- Fügt/löscht man nun bei der Eingabe der Strukturgerüst-Formel
- C-Atome (an), so ergeben sich -abhängig davon, ob man am Kettenende
- oder innerhalb der Kette anhängt/löscht- zwei mögliche Situationen :
- - eine bestehende Kette wird verlängert/verkürzt
- - eine Nebenkette (Baumknoten) wird eingefügt/gelöscht
- Nach jedem Anhängen bzw. Löschen eines C-Atoms muß nun
- entsprechend den aufgeführten Regeln geprüft werden, ob sich
- die "Verwandschaftsverhältnisse" innerhalb des Baums geändert haben.
- Dazu muß jeweils die betreffende Kette mit ihren Vätern bzw. Söhnen
- verglichen werden.
- Die Vaterkette wird bei diesem Vergleich versuchsweise vom
- Kettenanfang her in die Sohnkette "hineingebogen".
- Sowohl für Vater als auch für den Sohn müssen dazu die sich neu
- ergebenden Werte für Position, Länge, Niveau etc. errechnet und
- verglichen werden.
-
-
- - 5 -
- Jürgen Linz : Nomenklatur von Alkanen nach IUPAC-Norm
-
-
- Sollte ein Sohn bei diesem Vergleich nun "besser" abschneiden
- als sein ehemaliger Vater, so wird er selbst zum Vater und der
- Vater wird zum Sohn.
- Auch für die übrige Baumstruktur ergeben sich dadurch Konsequenzen.
- Linke Brüder des alten Sohnes, also Brüder mit niedrigeren
- Positionsziffern als er selbst, werden zu Söhnen des neuen Vaters
- (ehemaliger Sohn), rechte Brüder bleiben Söhne des alten Vaters
- (neuer Sohn), ausgenommen solche mit gleicher Positionsziffer wie
- der ehemalige Sohn, diese werden Söhne des neuen Vaters.
-
- Betrachtet man die Hauptkette, so läßt sich diese auch vom
- Kettenende her in eine Nebenkette "hineinbiegen", dabei ergeben
- sich im Vergleich zum oben beschriebenen "Normalfall" für die
- linken/rechten Brüder die genau umgekehrten Strukturveränderungen.
- Um bei Errechnung der neuen Kettendaten für Vater und Sohn,
- sowie für eventuell notwendige Strukturänderungen im Baum
- keine Sonderfallbehandlung bei der Hauptkette vorsehen zu
- müssen, wird die Hauptkette beim Vergleich zunächst vom
- Kettenanfang in die Nebenkette gebogen, dann umgedreht, d.h. vom
- Kettenende her beginnend durchnumeriert (wobei sich natürlich
- die Positionen und die Reihenfolge der Söhne ändert), und erneut
- vom Anfang in die Seitenkette gebogen.
- Der Vergleich mit den Söhnen beginnt dabei immer beim Sohn mit
- höchster Positionsziffer, damit bei notwendigen Strukturänderungen
- des Baumes und dem damit verbundenen Verbiegen der Zeiger
- (Vater wird Sohn etc.) die Vergleiche mit weiteren Söhnen
- nicht verschluckt werden können.
- Rechte Söhne sind damit bei Änderungen immer schon verglichen,
- linke Söhne bleiben auch beim neuen Vater an ihrem Platz.
-
- In einem ARRAY akt_atom speichert das Programm zusätzlich für
- jedes C-Atom (Feldindizes entsprechen Bildschirmkoordinaten/2),
- in welcher Kette es enthalten ist (akt_atom^.in_kette), sowie
- in welche Richtungen Bindungen zu weiteren C-Atomen führen.
- Dadurch werden Zyklen bzw. Lücken im Molekül verhindert.
- Die Bindungen sind dabei folgendermaßen in den unteren vier Bit
- einer INTEGER-Zahl (akt_atom^.bind) verschlüsselt :
-
- Bit : 3 2 1 0
- Bindung nach : oben rechts unten links
- dx : 0 +1 0 -1
- dy : -1 0 +1 0
-
- Die Richtung bestimmt dabei das "alte" Atom (ax,ay), von dem die
- Bindung zum neuen Atom (nx,ny) ausgeht.
- ((nx,ny) = aktuelle Cursor-Koordinaten (x,y) + (dx,dy))
- Beim neuen C-Atom muß dann jeweils das Bit der entgegengesetzten
- Richtung gesetzt werden.
- Das Setzen selbst erfolgt durch AND-Verknüpfung der bisherigen
- INTEGER-Zahl mit (1 SHL bit), wobei sich bit aus dx/dy nach
- folgenden Formeln berechnet :
- ABS((1 + dx) - 2 * dy) für "altes" C-Atom
- ABS((1 - dx) + 2 * dy) für "neues" C-Atom
- Löschen erfolgt durch AND-Verknüpfung mit negiertem (1 SHL bit),
- wobei bit = ABS((1 - dx) + 2* dy) ist.
- Für das gelöschte Atom wird akt_atom^.bind natürlich gleich Null.
-
-
- - 6 -
- Jürgen Linz : Nomenklatur von Alkanen nach IUPAC-Norm
-
-
- Umgekehrt enthält jeder Baumknoten die Koordinaten aller seiner
- C-Atome. Dies ist notwendig um bei Strukturänderungen des Baumes
- nach Vater-Sohn-Vergleichen, bei denen sich ja die Ketten-
- zugehörigkeit der C-Atome ändern kann, diese wieder den richtigen
- Ketten zuordnen zu können.
-
-
- REMarks
-
- In der Prozedur "wertigkeit" wird genaugenommen nicht die
- Wertigkeit des C-Atoms ermittelt (C-Atome sind immer vierwertig),
- sondern mit wievielen weiteren C-Atomen Bindungen geknüpft sind,
- also, ob es sich um ein primäres, sekundäres, tertiäres oder
- quartäres C-Atom handelt.
- Zur Ermittlung des Namens wird der Baum in symmetrischer Ordnung
- (inorder) traversiert; der entsprechende Algorithmus ist rekursiv
- formuliert.
- Die Prozeduren "alphsort" und "namen_verkuerzen" sind zweistufig
- rekursiv : Beide rufen zur Ermittlung des nächsten Namensteils
- die Prozedur "namteil_finden" auf, die wiederum (bei geklammerten
- Namensteilen) "alphsort"/"namen_verkuerzen" aufruft, wodurch auch
- Namensteile in Klammer alphabetisch sortiert/verkürzt werden.
-
- Durch die Verwendung von STRINGs wurde die Anzahl der C-Atome pro
- Kette auf 63 (pro Atom 4 Zeichen), die Länge des Namens auf 255
- Zeichen, und damit die Anzahl der Nebenketten auf 20 beschränkt.
- Jedoch stellt ja bereits die Größe des Bildschirms eine "natürliche"
- Grenze für die Ausdehnung des Alkanmoleküls dar; demnach sollte
- diese Einschränkung nicht besonders ins Gewicht fallen.
-
- Das Programm wurde auf einem No-name PC-AT (AMI-Bios) mit
- 512 KB RAM unter MS-DOS 3.30 in TURBO-Pascal 5.0 entwickelt.
- Der Source-Code benötigt 47 KB, das EXE-File 32 KB.
- Bei der Compilation sollten folgende Werte im Menue Options/
- Compiler gesetzt werden :
- Low heap limit/High heap limit : 10590 Byte (353 Byte/Kette)
- Stack-Size : 65520 Byte
- Alle Compilerdirektiven : OFF
- Es wurden im wesentlichen nur Standard-Pascal Befehle verwendet,
- so erfolgt die Bildschirmausgabe über WRITELN-Anweisung auf den
- normalen Textbildschirm (80 * 25).
- Aus der UNIT CRT wurden nur die Befehle GOTOXY, CLREOL, CLRSCR,
- DELAY, READKEY und TEXTBACKGROUND/TEXTCOLOR verwendet.
-
-
- Literatur
-
- D. Hellwinkel
- Die systematische Nomenklatur der organischen Chemie
- Springer Verlag, Berlin/Heidelberg/New York, 1974
-
- E. Denert, R. Franck
- Datenstrukturen
- BI-Wissenschaftsverlag, Zürich 1977
- (Reihe Informatik Bd. 22)
-