Lad os forestille os, at vi har simuleret et molekyle vha. softwaren Gaussian, og har fået en lang output-fil. Et sted nede midt i filen står der følgende:
... Mere info i starten af filen InvSVY: IOpt=1 It= 1 EMax= 2.66D-15 Solved reduced A of dimension 22 with 3 vectors. Calculating GIAO nuclear magnetic shielding tensors. SCF GIAO Magnetic shielding tensor (ppm): 1 C Isotropic = 113.0347 Anisotropy = 16.9915 XX= 111.9221 YX= 1.0827 ZX= 7.7450 XY= 1.3633 YY= 124.0740 ZY= 6.2476 XZ= 6.4851 YZ= -4.2466 ZZ= 103.1081 Eigenvalues: 99.1427 115.5992 124.3624 2 C Isotropic = 2.6274 Anisotropy = 156.9703 XX= -51.0008 YX= -4.6748 ZX= 53.4116 XY= -9.7500 YY= -29.4582 ZY= -3.8611 XZ= 55.6306 YZ= -0.2797 ZZ= 88.3412 Eigenvalues: -70.7150 -28.6770 107.2743 3 C Isotropic = 69.3645 Anisotropy = 90.5505 XX= 61.7339 YX= 3.9842 ZX= 24.3280 XY= -11.0795 YY= 25.2629 ZY= -2.5887 XZ= 22.4657 YZ= -10.5831 ZZ= 121.0966 Eigenvalues: 24.6919 53.6701 129.7315 ... Resten af filen fortsætter
Nu kunne vi godt tænke os en liste over de isotrope og anisotrope værdier samt egenværdier (eigenvalues) for hvert atom i output-filen, så vi laver et Bash shellscript:
#!/bin/bash ADFILE="$1.atomdata.temporary.dat" EIGFILE="$1.eigenvalues.temporary.dat" echo "Atom Isotropic Anisotropic" > $ADFILE echo "Eig1 Eig2 Eig3" > $EIGFILE grep "Isotropic =" $1 | tr -s " " | cut -d' ' -f2,6,9 >> $ADFILE grep Eigenvalues: $1 | tr -s " " | cut -d' ' -f 3-5 >> $EIGFILE paste -d' ' $ADFILE $EIGFILE | tr -s " " > $2 rm $ADFILE rm $EIGFILE
Nu kan scriptet køres på output-filen fra Gaussian, og resultatet ser således ud:
Atom Isotropic Anisotropic Eig1 Eig2 Eig3 1 113.0347 16.9915 99.1427 115.5992 124.3624 2 2.6274 156.9703 -70.7150 -28.6770 107.2743 3 69.3645 90.5505 24.6919 53.6701 129.7315 4 32.8351 91.8439 -64.3134 68.7543 94.0644 5 109.8781 221.1765 -114.3277 186.6330 257.3291 6 -205.7135 779.0873 -622.6531 -308.1653 313.6781 ... data fortsætter
Nu er de data, der skal bruges, i et format som passer meget bedre til de fleste analyse-programmer (f.eks. Origin eller et regneark som Excel), og det shellscript, der blev brugt, kan bruges igen hver gang samme slags data skal udtrækkes af output-filer fra Gaussian.
Som eksemplet ovenfor illustrerer, kan en Bash shell være utroligt nyttig, og i denne artikelserie kan du lære at skrive dine egne shellscripts til både udtræk af data samt visualisering med simple plots.
Denne artikelserie er i øjeblikket ved at blive skrevet...