NMR-Differenzen zwischen ähnlichen Strukturen als interaktive jmol-Grafik: Unterschied zwischen den Versionen

Aus Hergipedia
Zur Navigation springen Zur Suche springen
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 9: Zeile 9:
siehe [[RMSD-fit von Molekülen mit gOpenMol]]
siehe [[RMSD-fit von Molekülen mit gOpenMol]]


=== Speichern der Isomer als je eine xyz-Datei ===
=== Speichern der Isomere als je eine xyz-Datei ===
Kommando in gOpenMol (File/Export/Coords)
Kommando in gOpenMol (File/Export/Coords)


Zeile 28: Zeile 28:
Die Script-Sektion enthält einen Platzhalter und wird im
Die Script-Sektion enthält einen Platzhalter und wird im
folgenden noch modifiziert.
folgenden noch modifiziert.
 
<nowiki>
  <jmol>
  <jmol>
   <jmolApplet>
   <jmolApplet>
Zeile 40: Zeile 40:
     </script>
     </script>
   </jmolApplet>
   </jmolApplet>
</jmol>
</nowiki>


==== Ausrichtung der Moleküle im Raum ====
==== Ausrichtung der Moleküle im Raum ====
Zeile 45: Zeile 47:
wird am besten aus dem standalone-jmol Programm vorbereitet.
wird am besten aus dem standalone-jmol Programm vorbereitet.


Dazu ds Programm jmol starten:
Dazu das Programm jmol starten:
   jmol overlay.mol
   jmol overlay.mol


Zeile 63: Zeile 65:
   select molecule=1
   select molecule=1
   color bonds yellow
   color bonds yellow
   label "%i
   label "%i"


==== relative NMR-shifts generieren ====
==== relative NMR-shifts generieren und in jmol Code-Konvertieren. ====
wenn NMR-Rechnungen zu den Isomeren unter isomer1.nmr.log bzw isomer2.nmr.log
wenn NMR-Rechnungen zu den Isomeren unter isomer1.nmr.log bzw isomer2.nmr.log
verfügbar sind, dann folgenden Befehle aufrufen:
verfügbar sind, dann zunächst NMR-shifts extrahieren mit dem Program [[nmr_shift]]:
   nmr_shift isomer_
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)
      }
    }'
 
[[Kategorie:Modellinganleitung]]
[[Kategorie:Anleitung]]

Aktuelle Version vom 25. Mai 2009, 14:58 Uhr

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)
     }
   }'