NMR-Differenzen zwischen ähnlichen Strukturen als interaktive jmol-Grafik

Aus Hergipedia
Zur Navigation springen Zur Suche springen

Für strukturell ähnliche Konformere/Isomere ist die grafische Auftragung der NMR-Differenzen eine interessante Analysemöglichkeit.

Ein Beispiel findet sich in Restricted:Alis Molekuele Stammsystem optimiert(Herges).

Erzeugt werden kann ein solcher Plot in folgenden Schritten:

Overlay der beiden Isomere mit gOpenMol

siehe RMSD-fit von Molekülen mit gOpenMol

Speichern der Isomere als je eine xyz-Datei

Kommando in gOpenMol (File/Export/Coords)

Kombinieren der Einzelmoleküle zu einem einzigen Molekül

Hier ist wichtig, dass die Bindungsinfomationen bereits in der Moleküldatei stehen, da ein automatischer Reconnect der Atome aus den xyz-Koordinaten natürlich nicht mehr möglich ist. Wichtig ist außerdem, dass beide Isomere als ein kombiniertes Molekül gespeichert werden, da jmol sonst beide Moleküle in unterschiedliche "Modelle" packt und nicht gleichzeitig anzeigt.

 cat mol1.xyz mol2.xyz > overlay.xyz
 babel --join -ixyz overlay.xyz -omol overlay.mol

Generieren des jmol-Tags für die Wikipedia

jmol Templat

Als erstes bitte folgendes jmol Templat auf die Seite einfügen. Die Script-Sektion enthält einen Platzhalter und wird im folgenden noch modifiziert.

 <jmol>
  <jmolApplet>
    <name>relative_nmrshifts</name>
    <uploadedFileContents>overlay.mol</uploadedFileContents>
    <color>black</color>
    <size>800</size>
    <script>
       # Platzhalter für Skript-Befehle
       # ....
    </script>
  </jmolApplet>
 </jmol>
 

Ausrichtung der Moleküle im Raum

Eine schöne Ausrichtung der Moleküle ist natürlich optional und wird am besten aus dem standalone-jmol Programm vorbereitet.

Dazu das Programm jmol starten:

 jmol overlay.mol

Moleküle mit der Maus ausrichten, jmol-Konsole öffnen und die Ausrichtung abfragen:

 show ORIENTATION 

Die Ausrichtungsbefehle in die Skript-Sektion übertragen, z.B.:

 reset;center {0.16879988 0.89875007 -0.013550043}; rotate z -1.95; rotate y 1.16;

Moleküle "formatieren"

in die Skriptsektion folgenden Abschnitt einfügen:

 wireframe
 spacefill off
 select molecule=2
 color bonds green
 select molecule=1
 color bonds yellow
 label "%i"

relative NMR-shifts generieren und in jmol Code-Konvertieren.

wenn NMR-Rechnungen zu den Isomeren unter isomer1.nmr.log bzw isomer2.nmr.log verfügbar sind, dann zunächst NMR-shifts extrahieren mit dem Program nmr_shift: Wenn die Nummerierung der Atome nicht identische ist, muss ein manueller Arbeitsgang zwischengeschaltet werden. Aus dem nmr_shift output wird der jmol-code für die Scriptssektion generiert.

 # nmr_shift aufrufen
 nmr_shift isomer_1.nmr.log > isomer1.nmrshift
 nmr_shift isomer_2.nmr.log > isomer2.nmrshift
 
 # ... wenn Nummerierung nicht identisch,
 # dann *.nmrshift Dateien manuelln umsortieren, so dass equivalente Atome
 # auf gleichen Zeilen stehen.
 
 # Header und nicht H-Atome löschen:
 cat isomer1.nmrshift | sed -e '1,7d' -e 's/  */ /g' | sed -n '/H/p' | cut -d ' ' -f 2,5 > isomer1.extract
 cat isomer2.nmrshift | sed -e '1,7d' -e 's/  */ /g' | sed -n '/H/p' | cut -d ' ' -f 2,5 > isomer2.extract
 
 # übersetzen in jmol Befehle
 paste isomer1.extract isomer2.extract | \
   awk '{print $1,$2-$4}' | \
   awk '{
     if ($2>0)
     {
        printf ("select atomno=%i; spacefill %f; color atoms blue;\n", $1, $2)
     } else {
        printf ("select atomno=%i; spacefill %f; color atoms red;\n", $1, -$2)
     }
   }'