Optimierung der Geometrie eines Moleküls mit Psi4
Meistens, wenn wir ein Molekül für ein Docking oder eine Molekulardynamiksimulation vorbereiten müssen, möchten wir den Liganden in einem entspannten Zustand haben, in dem das Molekül die richtige Geometrie hat. Meistens arbeite ich damit, meine eigenen internen Koordinaten für Moleküle zu schreiben, die als gute erste Schätzung von SMILES dienen, und dann verwende ich Psi4, eine quantenmechanische Software, die die Geometrie des Liganden optimiert.
Lassen Sie uns also darauf eingehen. Zuerst können Sie psi4 conda installieren:
conda install -c psi4 psi4
- col 1 ist das Atom 1
- col2 ist das bindungsverbindende Atom
- col3 ist die Bindungslänge zwischen zwei Atomen
- col4 ist das Winkelverbindungsatom
- col5 ist der Winkel zwischen den drei Atomen
- col6 ist das diederische Verbindungsatom
- col7 ist der Diederwinkel zwischen den vier Atomen
H11
O11 H11 0.9600
C11 O11 1.4000 H11 108.0000
H12 C11 1.1000 O11 112.0000 H11 0.0000
H13 C11 1.1000 O11 112.0000 H11 120.0000
H14 C11 1.1000 O11 111.8699 H11 -120.0000
import psi4
psi4.set_memory('1000mb')
psi4.core.set_num_threads(1)
zmatrix = '''\
H11
O11 H11 0.9600
C11 O11 1.4000 H11 108.0000
H12 C11 1.1000 O11 112.0000 H11 -60.0000
H13 C11 1.1000 O11 112.0000 H11 60.0000
H14 C11 1.1000 O11 111.8699 H11 -180.0000
'''
universe = psi4.geometry(zmatrix)
universe.update_geometry()
universe.print_out()
universe.save_xyz_file('test.xyz', False)
Was wir tun können, ist, die Vorlage als gute erste Vermutung zu verwenden und der QM-Software zu erlauben, die Geometrie zu lockern. Lassen Sie uns also zuerst einige Optionen mit psi4 einrichten. Wir möchten festlegen, welche Optionen wir an psi4 übergeben möchten:
- scf-Typ : Dichteanpassung (dies sind Näherungsverfahren zur Berechnung der potentiellen Energie eines Systems).
- g_covergence : Dies ist geometrische Konvergenz und es wird eine Kraft auf das Molekül ausgeübt, die seine Bewegung einschränkt. Wenn wir es fest anziehen, hat es einen bestimmten Wert, der das Wackeln des Moleküls begrenzt
- freeze_core : Freeze core gibt an, ob man bei der Berechnung der Energie die Elektronen der inneren Schale oder nur die äußeren Valenzelektronen und deren jeweiliges Orbital berücksichtigt.
import psi4
psi4.core.set_num_threads(1)
psi4.set_memory('1000mb')
psi4.set_options({
'scf_type': 'df',
'g_convergence': 'gau_tight',
'freeze_core': 'true',
})
zmatrix = '''\
H11
O11 H11 0.9600
C11 O11 1.4000 H11 108.0000
H12 C11 1.1000 O11 112.0000 H11 -60.0000
H13 C11 1.1000 O11 112.0000 H11 60.0000
H14 C11 1.1000 O11 111.8699 H11 -180.0000
0 1
'''
universe = psi4.geometry(zmatrix)
universe.update_geometry()
psi4.optimize(
'hf/6-31G*',
molecule=universe
)
universe.update_geometry()
universe.print_in_input_format()
H
O 1 0.946285
C 2 1.399638 1 109.452715
H 3 1.087420 2 112.035807 1 -61.226978
H 3 1.087420 2 112.035807 1 61.226978
H 3 1.081049 2 107.168437 1 -180.000000
Okay, das war es jetzt.

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































