3.2.3 Chemiebezogene Erweiterungen

Aus dem vorangegangenen Abschnitt wurde ersichtlich, warum tcl eine geeignete Sprache für die hier zu behandelnden Probleme darstellt. Es ist jedoch unschwer nachvollziehbar, daß eine solche, für Anwendungen beliebiger Natur entwickelte Sprache, nicht direkt diejenigen Objekte und Informationseinheiten in ihrer Semantik abbildet, die innerhalb der chemischen Informationsverarbeitung (im engeren Sinne in der Syntheseplanung) benötigt werden. Objekte wie Atome", Bindungen" oder Moleküle" existieren für tcl nicht. Gleichwohl will man natürlich auf diese Objekte zugreifen und sie handhaben können. Eine Erweiterung der Skriptsprache, um Chemie" handhaben zu können, ist daher erforderlich. Nachfolgend soll auf die Einzelheiten der erforderlichen Informationen (Daten) eingegangen werden.

Die für eine flexible Programmierschnittstelle zugänglichen und für die organische Synthese relevanten Informationen lassen sich in mehrere Gruppen einteilen.

Als Grundlegendes braucht eine Sprache, die molekulare Strukturen handhaben soll, natürlich genau wie eine konventionelle, compilierte Sprache Zugriff auf die Konnektivitätstabelle (connection table - CT) der chemischen Verbindung. In Standard-Hochsprachen wie C, Fortran und dgl. besteht diese Zugriffsmöglichkeit automatisch, da die CT als ein Datenkonstrukt in der jeweiligen Hochsprache implementiert wird. Für eine Interpretersprache wie tcl, die in ein Programm eingebettet ist, existiert dieser Zugriff nicht per se. Tcl muß über seine Sprachkonstrukte auf die Datenstruktur1 des einbettenden Programms zugreifen können. Das bedeutet z. B., ein Molekül wird vom Basisprogramm eingelesen und verwaltet, tcl erhält aber die Möglichkeit, auf diese Informationen zuzugreifen und - wie man noch sehen wird - u. U. diese sogar zu verändern.

Zu diesen grundlegenden Informationen gehören demnach solche Basisdaten wie die Zahl der Atome, Bindungen oder Einzelmoleküle; Identifikatoren (typischerweise Indices oder Labels) für einzelne Atome, Bindungen oder Moleküle, um gezielt Einzelinformationen für diese Objekte erhalten oder manipulieren zu können; Informationen zu Bindungsordnungen, der Atomart (chemisches Symbol, Ordnungszahl), formale Ladungen oder die Zahl freier Elektronen von Atomen. Eine vollständige Liste dieser Basisdaten umfaßt Tabelle 3 - 1.

Davon ableitbar sind eine ganze Reihe weiterer Informationen. Diese abgeleiteten Daten sollen tcl ebenfalls zur Verfügung stehen, jedoch vom zugrundeliegenden Programm (C/Fortran) ermittelt werden. Dazu gehören beispielsweise Informationen über Ringmitgliedschaften von Atomen und Bindungen oder die Aromatizitätsinformation. Diese Gruppe von Informationen wird in Tabelle 3 - 2 zusammengefaßt.

Desweiteren ist es erforderlich, daß die Interpretersprache (tcl) auch auf physikochemische Parameter zugreifen kann. Natürlich gilt hier aus Gründen der Geschwindigkeit ihrer Berechnung - wie für die vorangehenden abgeleiteten Informationen - daß diese Parameter nicht in tcl, sondern durch compilierte Funktionen des Kernsystems ermittelt werden. Unter diesen physikochemischen Parametern werden all jene Werte verstanden, die auch vom Programm PETRA2 ermittelt werden, insbesondere jedoch diejenigen, die in Tabelle 3 - 2 beschrieben werden. Tatsächlich werden beim Zugriff von tcl auf solche Informationen, die gleichen Routinen wie im PETRA Programm verwendet.

Tab. 3 - 1 Grundlegende chemische Informationseinheiten, die für Erweiterungen von tcl transparent sein müssen.

Information

tcl-Schlüsselwort

Zugriffsart1

ensemblezentrierte Informationen

Name des Ensembles

E_NAME

L/S

Identifikator des Ensembles

E_IDENT

L/S

Ensemblehashcode [57]

E_HASH

L

Ensemblehashcode mit Berücksichtigung von Stereochemie und Isotopen

E_HASHS

L

Textzeilen in Form von Kopf- und Fußzeilen, die für graphische Darstellungen relevant sind

E_GRAPHICS_TEXT

L/S

molekülzentrierte Daten

Molekülidentifikatoren (Indices2)

M_LABEL

L

Molekülhashcode [57]

M_HASH

L

bindungszentrierte Daten

Bindungsidentifikatoren (Indicesb)

B_LABEL

L

Bindungsordnung

B_ORDER

L/S

Stereodeskriptoren der Bindung3

B_CIPSTEREO
B_CTSTEREO
B_LABSTEREO

L

Bindungshashcodes [57]

B_HASH

L

Flags für grafische Darstellungen4

B_FLAGS

L/S

atomzentrierte Daten

Ordnungszahlen

A_ELEMENT

L/S

Symbole

A_SYMBOL

L/S

Atomidentifikatoren (Labels)

A_LABEL

L/S

Stereodeskriptoren der Atome5

A_CIPSTEREO
A_DLSTEREO
A_LABSTEREO

L

formale Ladungen

A_NOM_CHARGE

L/S

Zahl freier (nicht an Bindungen beteiligter) Elektronen

A_FREE_ELECTRONS

L/S

Atomhashcodes [57]

A_HASH

L

Flags für graphische Darstellungen6

A_FLAGS

L/S

1
L - Lesezugriff, S - Schreibzugriff
2
Derzeit sind das Indices. Es ist aber auch die Benutzung von Labels an Stelle oder zusätzlich zu Indices denkbar.
3
CIP: nach Cahn, Ingold und Prelog [81], [82]; CT: cis/trans-Nomenklatur; LAB: basierend auf der lokalen Atomumgebung
4
Beispiele sind invertierte Darstellung, Kennzeichnung durch *, Umrahmung durch einen Kasten usw.
5
Siehe c; DL: nach D/L-Nomenklatur
6
Das sind Attribute wie Fettdruck, gestrichelte Darstellung, Keilbindung etc.

Tab. 3 - 2 Abgeleitete chemische Informationseinheiten, die für Erweiterungen von tcl greifbar sein müssen.

Information

tcl-Schlüsselwort

Zugriffsart1

ensemblezentrierte Daten

Zahl der Ringe im SSSR2

E_NSSSR

L

Zahl der Ringe im ESSR3

E_NESSR

L

molekülzentrierte Daten

Molekülgewicht

M_WEIGHT

L

ringbezogene Daten

Liste der Atome je Ring

R_ATOMS

L

Liste der Bindungen je Ring

R_BONDS

L

Ringidentifikatoren4

R_LABEL

L

Aromatizitätskennzeichnung

R_AROMATIC

L

Ringgröße

R_SIZE

L

Ringsystemzugehörigkeit

R_SYSTEM

L

bindungszentrierte Daten

Aromatizitätskennzeichnung

B_ISAROMATIC

L

Kennzeichnung aromatischer und zu aromatischen Systemen -ständiger Bindungen

B_ISALPHAARO

L

Kennzeichnung hetero-aromatischer Bindungen

B_ISHETARO

L

Zähler für Ringmitgliedschaft5

B_RING_COUNT

L

Flags für Zugehörigkeit zu Ringen der Größen 3-7

B_[3-7]RING

L

Flags für Zugehörigkeit zu bestimmten Ringgrößen: kleine (3/4), mittlere (5-7) und große (über 8) Ringe

B_SMALL_RING
B_MEDIUM_RING
B_LARGE_RING

L

atomzentrierte Daten

Aromatizitätskennzeichnung

A_ISAROMATIC

L

Kennzeichnung zu aromatischen Systemen -ständiger Atome

A_ISALPHAARO

L

Zähler für Ringmitgliedschafte

A_RING_COUNT

L

Kennzeichnung von Brückenkopfatomen

A_BRIDGEHEAD

L

Kennzeichnung von Spirozentren

A_SPIRO

L

Zahl der Wasserstoff-Nachbarn

A_HCOUNT

L

Atomgewichte

A_WEIGHT

L

IUPAC Gruppennummer

A_IUPAC_GROUP

L

freie Valenzen

A_FREE_VALENCE

L

Valenzen

A_VALENCE

L

1
L - Lesezugriff, S - Schreibzugriff
2
SSSR: Smallest Set of Smallest Rings. Siehe Abschnitt 4.3.4.
3
ESSR: Extended Set of Smallest Rings. Dieser Satz an Ringen ist um solche Ringe erweitert, die Hüllringe zweier SSSR-Ringe sind (wobei Ringpaare ausgeschlossen sind, die genau eine gemeinsame Bindung haben.)
4
Indiziert werden die primären und sekundären Ringe (siehe Abschnitt 4.3.4).
5
In Ringen des SSSR.

Tab. 3 - 3 Physikochemische Daten, die für tcl zur Verfügung stehen müssen.

Information

tcl-Schlüsselwort

Zugriffsart1

bindungszentrierte Daten

Differenz der -Elektronegativität der Bindungsatome je Bindung ( -\8 µ>)

B_DENPI

L

Differenz der -Elektronegativität der Bindungsatome je Bindung ( -\8 µ>)

B_DENSIG

L

Differenz der -Atompartialladungen der Bindungsatome je Bindung ( -µ µ>q)

B_DQPI

L

Differenz der -Atompartialladungen der Bindungsatome je Bindung ( -µ µ>q)

B_DQSIG

L

Differenz der (Gesamt-)Atompartialladungen der Bindungsatome je Bindung ( (µ-)µ µ>q)

B_DQTOT

L

Bindungspolarisierbarkeit [83]

B_POLARIZ

L

die durch den PEOE-Algorithmus über die Bindung verschobene Ladungsmenge [84]

B_SQIT

L

(Gesamt-)Delokalisierungsstabilisierungb von Ladungen bei heterolytischen Bindungsbruch [86]

B_SDELOC

L

Delokalisierungsstabilisierung einer positiven Ladung bei heterolytischem Bindungsbruch D+ [86]

B_PDELOC

L

Delokalisierungsstabilisierung einer negativen Ladung bei heterolytischem Bindungsbruch D- [86]

B_NDELOC

L

atomzentrierte Daten

-Elektronegativität (-\8 >) [87]

A_ENPI

L

-Elektronegativität (-\8 >) [87]

A_ENSIG

L

-Atompartialladung (q) [88]

A_QPI

L

-Atompartialladung (q) [84]

A_QSIG

L

(Gesamt-)Atompartialladung (q)

A_QTOT

L

Atompolarisierbarkeit (µ>) [83]

A_POLARIZ

L

1
L - Lesezugriff, S - Schreibzugriff
2
Resonanz und Delokalisation basieren auf dem gleichen physikalischen Effekt: der Mesomerie. Die Unterscheidung in den Bezeichnungen wird durch die unterschiedlichen Algorithmen begründet, die diesen Berechnungen zugrunde liegen.

Eine letzte Gruppe an Informationen umfaßt Angaben zur zweidimensionalen Darstellung sowie Angaben zur räumlichen Gestalt von chemischen Strukturen. Es liegt auf der Hand, daß ein offenes Interpretersystem Zugang zu dreidimensionaler Molekülinformation haben muß, wenn es potentiell in der Lage sein soll, stereochemische Problemstellungen zu bearbeiten. Derartige Informationen benennt Tabelle 3 - 2.

Tab. 3 - 4 Informationen zur 2D-Darstellung und zur räumlichen Gestalt, die für tcl transparent sein müssen.

Information

tcl-Schlüsselwort

Zugriffsart1

ensemblezentrierte Daten

Standardbindungslänge im Molekülplot im Maßstab der 2D-Koordinaten

E_STDBLE

L

Das begrenzende Rechteck, das den Molekülplot vollständig umschließt.

E_2DEXTENT

L

atomzentrierte Daten

zweidimensionale Atomkoordinaten

A_XY

L/S

dreidimensionale Atomkoordinaten

A_XYZ

L

1
L - Lesezugriff, S - Schreibzugriff

Neben den voranstehend beschriebenen Informationseinheiten muß es tcl auch ermöglicht werden, grundsätzliche Operationen auf den chemischen Objekten durchzuführen. Einige Forderungen, bestimmte Eigenschaften von Atomen, Bindungen oder Molekülen ändern zu können (Schreibzugriff) finden sich bereits in den obenstehenden Tabellen. Das bedeutet, diese Informationen einstellen, sie setzten zu können. Demgegenüber steht die reine Abfrage von Informationen (Lesezugriff). Notwendig ist auch, bestimmte Objekte völlig zu entfernen bzw. neu zu kreieren.

Will man beispielsweise aus einem molekularen Ensemble, d. h. einem Satz von mehreren Einzelmolekülen, nur das größte erhalten, so müssen alle anderen Moleküle gelöscht werden. Oder man will eine Addition von Atomen vornehmen. Dann muß es möglich sein, diese Atome zu definieren und neue Bindungen zwischen diesen und möglicherweise bestehenden Atomen zu bilden. Dabei kann es geboten sein, zunächst andere Bindungen zu brechen.

Diese Operationen faßt Tabelle 3 - 5 zusammen.

Tab. 3 - 5 Operationen, die tcl auf chemischen Objekten ausführen können muß.

Information

tcl-Schlüsselwort

Zugriffsart1

Abfragen bestehender Information

get

L

Manipulieren bestehender Information

set

S

Erzeugen von Atomen, Bindungen

create

S

Entfernen von Atomen, Bindungen, Molekülen

delete

S

Kopieren ganzer Informationsblöcke (z. B. Ensemble)

copy

L/S

Neuberechnung von Informationen (vollständig oder teilweise)

need

S

1
L - Lesezugriff, S - Schreibzugriff

Darüber hinaus sind auch weitere, höhere Operationen denkbar, die zum Sprachumfang einer chemietauglichen Skriptsprache gehören müssen, etwa die Suche nach einer Substruktur auf dem Molekülskelett. Natürlich ist man mit einer Sprache, die obige Elemente enthält, bereits in der Lage, diese Substruktursuche als Funktion zu implementieren. Jedoch kann es aus Geschwindigkeitsgründen geboten sein, derartige Funktionalität in den Sprachumfang aufzunehmen. Ein Beispiel ist das für tcl implementierte match Kommando. Dieses wird in den WODCA Bewertungsfunktionen für gefundene Ausgangsmaterialien benutzt, um maximale gemeinsame Substrukturen zwischen der Anfrageverbindung und den Treffern der Liste zu finden, die dann eingehender untersucht werden.

Als letzte Anmerkung bleibt nun nur noch die Forderung, das die gewünschten Erweiterungen sich nahtlos in die Syntax der Standardsprache einfügen sollten. Tcl ist eine Sprache, die komplexe Information listenbasiert behandelt [79]. Dementsprechend werden auch bei den neu geschaffenen Erweiterungskommandos Rückgabewerte in Listenform erzeugt.

Fünf neue Kommandos sind ausreichend, um die in den voranstehenden Tabellen aufgeführten Funktionalitäten zu realisieren. Diese fünf Kommandos unterscheiden sich durch den Typ des Objektes, auf das sie einen Zugriff ermöglichen:

o
    atom
Atome

o
    bond
Bindungen

o
    ring
Ringe

o
    mol
(Einzel-)Moleküle. Das können auch Ionen sein.

o
    ens
Molekulare Ensembles. Ensembles können mehrere Moleküle/Ionen umfassen.

Jedes dieser Kommandos kennt mehrere, maximal vier Unterkommandos und zwar create|delete|get|set für atom und bond Kommando, delete|get für das mol und copy|get|set|need für das ens Kommando. In der Syntax folgt danach eine Spezifizierung des Datenblocks, auf dem das Kommando arbeiten soll. Dazu eine Anmerkung: In der auf Fortran77 basierenden EROS- und WODCA-Umgebung existieren drei wesentliche Speicherbereiche für vollständige Molekülinformation. An diese Speicherbereiche sind die Bezeichner VORHER, MOLINF, NACHER angelehnt. Äquivalent dazu sind die Bezeichner ens0, ens1, ens2. In einer anderen zugrundeliegenden Programmierumgebung, die andere, u. U. auch mehr als drei Speicherbereiche für Molekülinformationen kennt, kann das gleiche Syntaxmodell verwendet werden. Die Bezeichner ens0, ens1 ... ensn sind dann als Verweise auf die jeweiligen Datenblöcke dieser Umgebung zu verstehen. Für tcl ändert sich dadurch nichts.3

Eine dokumentarische Beschreibung der Funktionalität aller erlaubten Kombinationen findet sich in [90]. Die folgenden Zeilen geben einige instruktive Beispiele wieder.

Beispiel 1:
Im Datenblock dblock befinde sich Toluol (siehe
Abb. 3 - 1). Das folgende Kommando informiert über die Zugehörigkeit der einzelnen Atome zu einem aromatischen System. Die Reihenfolge der Ausgabe entspricht der Reihenfolge der Atomnumerierung. Aromatische Atome erhalten eine Eins für die Gültigkeit, nicht-aromatische eine Null für die Ungültigkeit der Information.

ens get dblock A_ISAROMATIC<br>' 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0

Beispiel 2:
Für das gleiche Beispielmolekül wird diesmal ermittelt, wieviel Wasserstoffatome dem Atom 7 (Label) benachbart sind.

atom get dblock 7 A_HCOUNT<br>' 3

Beispiel 3:
Nun soll eine Bindung zwischen dem aliphatischen C-Atom (7) und einem seiner Wasserstoffnachbarn (z. B. 13) gebrochen und ein Sauerstoffatom eingefügt werden. Das Resultat soll Benzylalkohol sein. Dazu wird zunächst die betreffende Bindung gebrochen (20 sei der Index der Bindung zwischen Atom 7 und Atom 13) ...

bond delete dblock 20<br>'

dann ein Sauerstoffatom erzeugt ...

atom create dblock O<br>' 16

und schließlich die beiden neuen Bindungen geknüpft.

bond create dblock {7 16}<br>' 22<br> bond create dblock {13 16}<br>' 31

Das Kommando zur Addition eines neuen Atoms verlangt als Parameter das chemische Symbol des betreffenden Elements4. Der Rückgabewert ist das Label (die Nummer) des neuen Atoms. Zur Knüpfung einer Bindung müssen die Nummern der beteiligten Atome (Labels) angegeben werden. Da keine Bindungsordnung angegeben wird, entsteht eine Einfachbindung (Vorgabewert). Rückgabewert ist hier der Index der neuen Bindung.

Abb. 3 - 1

Beispielmolekül Toluol (links). Nummern in kursiver Schrift (1) entsprechen der Reihenfolge der Eingabe der Atome (Indices), fette Nummern (1) können dagegen manuell zugeordnet sein und identifizieren ein Atom eindeutig (Labels).
Rechts: Resultat der Anwendung der Kommandosequenz aus Beispiel
3 (siehe Text).


Mittels der hier vorgestellten Erweiterungen ist man in der Lage, sowohl die Transformationsregeln dieses Abschnitts als auch die Funktionen zur Suche strategischer Bindungen (Kapitel 4) zur codieren. Tcl ist mit diesen Erweiterungen ausgezeichnet als Sprache der WODCA Wissensbasis geeignet. Genaue Zahlen, die das belegen, finden sich in den Abschnitten 3.3.1 und im Anhang A.





1
Datenstruktur meint an dieser Stelle beliebige Variablen, Vektoren, Strukturen usw. die für das Basisprogramm in C oder Fortran definiert wurden.
2
Parameter Estimation for the Treatment of Reactivity Applications
3
Die Syntax der chemischen Erweiterungen für tcl wurde an jener des CACTVS Systems [89] ausgerichtet, um weitgehende Kompatibilität auf der Ebene der tcl-Skripts zwischen diesen beiden Programmen zu gewährleisten. Die eigentliche Programm-Datenstruktur unterscheidet sich jedoch erheblich.
4
Alternativ ist auch die Angabe der Ordnungszahl möglich.