This program is used to solve molecular crystal structures from X-ray powder diffraction data using the simulated annealing algorithm [1]. The molecules can be rigid or flexible and the asymmetric unit can contain of one or more molecules.
The asymmetric unit is located in the unit cell. Many trial structures are evaluated giving random numbers to a few parameters that describe the structure: positional parameters, Eulerian angles and torsions. The symmetry operations of the space group are applied and the diffraction pattern (integrated intensities of the reflections) is calculated. This is compared with the experimental one (from a Le Bail fit) through a cost function [1]. The simulated annealing algorithm is used to find the best agreement between calculated and observed integrated intensities.
We
have developed and tested the program PSSP with high resolution
X-ray diffraction data and in many cases overlap corrections
are not necessary. This program can also be used with laboratory data,
however it has not been tested.
To
use PSSP is necessary to know about the sample:
1)
Cell parameters (useful programs to index the diffraction pattern are ITOandTREOR)
2)
Space group symmetry.
3)
Le Bail fit. The output file filename.hkl created by the
program
FULLPROF
with
the integrated intensities of the reflections (Iobs.) is
used,
or filename.rfl file using the program GSAS.
4)
Molecular geometry in cartesian coordinates. The molecular geometry can
be optimized with programs such as MOPAC. Other software (like CS
Chem3D
Pro) can be used to write and optimize the cartesian coordinates. The
geometry
of some fragments can also be downloaded from Databases.
5)
Molecular flexibility: (Which torsional angles are going to be varied
in
the structure solution process).
6)
Annealing schedule: initial temperature, decrement rate and number of
cycles
at each temperature.
Some examples are the crystal structure solution of [2-3] (I) 2amino-4,5-dimethoxyacetophenone, (II) 1,4-benzenedimethanol, (III) 3-aminoquinoline, (IV) 3-amino-5-mercapto-1,2,4-triazole, (V) benzo[c]cinnoline, (VI) 4,4'-difluorobenzyl and (VII) 1,3-diphenoxybenzene and b-haematin (malaria pigment) [4].
Representation of the structure of malaria pigment.
Download
MS-DOS/
Windows version is currently out of date - probably unusable with
following
examples.
Please
copy the file to a directory (for example c:\pssp). Add to the path in
the autoexec.bat file, c:\pssp
or
the name chosen.
Linux version. This zip file contains the sources, an executable, and example files. Compile as gcc pssp.c psspdif.c putatoms.c -lm -o pssp; pssp.h must be present.
Examples
of input and output files and files with integrated intensities:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
How to run the program
1)
In a DOS or Unix prompt type: pssp < input_file > output_file
Example:
pssp < iii.in > iii.out
In
the same directory has to be the respective filename.hkl
or
filename.rfl
file with integrated intensities called from the input file.
If you're having trouble, compare to some of the input and hkl files given as examples.
Description of the input file
The input file contains a series of control words:
title
lebailf
lebailg
lambda
lattice
spacegroup
symm
molecule
params
structure
getmol
rot_axis
rot_body_var
putmol
endstructure
algorithm
random
anneal
pattern
moldraw
schakal
gsas
fullprofpcr
fullprofcoords
end
These
words are followed by specific information entered to the program. A
description
is given:
title text A title for the problem. No more than 100 characters.
lebailf
filename
n :
Le Bail input file name from FULLPROF and number of reflections to be
used
in the structure solution.
Example:
lebailf v.hkl 40
This
file should be written with the FULLPROF output options JOBTYP=0,
JLKH=1.
lebailg
filename
n :
Le Bail input file name from GSAS and number of reflections to be used
in the structure solution.
Example:
lebailg iv.rfl 40
lambda
wavelength:
X-rays wavelength in Angstrom.
Example:
lambda 1.15
lattice
a
b c alpha beta gamma:
Cell parameters in Angstrom, in the order a, b, c, alpha, beta, gamma.
Example:
lattice 3.30 2.20 10.0 90.0 90.0 90.0
spacegroup
symbol:Space
group symbol (used only in writing the input files for Moldraw, Schakal
and Fullprof).
Example:
spacegroup
P 21/a
spacegroup
P -1
symm
n:
Symmetry operations number (preceded by a negative sign if the space
group
is centrosymmetric) and signs and translations for the space group
symmetry
operations. This is the information acually used by the program
in
computing the diffraction pattern.
Example:
symm
-2
1
0 0 0 1 0 0 0 1 0 0 0
-1
0 0 0 1 0 0 0 -1 0 0.5 0
This
is the description of the spacegroup P21/m.
Note that the identity operation must be given.
molecule
n
m:
Molecule number n and number of atoms m. This is
followed
by the atomic number, atomic symbol, cartesian coordinates and
ocuppancy
factor of the m atoms.
Example:
molecule
1 4
16
S 3.2604 0.8129 7.0240 1.0
6
C 1.7189 1.3393 7.6143 1.0
6
C 1.1630 2.2326 6.7589 1.0
6
C 1.9867 2.5073 5.6120 1.0
The
first line means the molecule number 1 has 4 atoms. In the following
lines
are given the atomic numbers and symbols, Cartesian coordinates (in
Angstroms)
and occupancy factors.
params
n:
number of variable parameters n and variation ranges in the n
following
lines. Example:
params
6
0
360
0
360
0
360
0
1
0
1
0
1
structure
n:
It specifies the final number of atoms in the asymmetric unit.
Example:
structure 4
getmol
n:
It reads the molecule which number n is specified.
Example:
getmol 1
rot_axis
a1
a2 Pi a3 ..an:
The
first two are atom numbers that define the axis around which the atoms
a3 … an are going to be rotated. Pi is
the parameter number for the torsion. Example:
rot_axis
9 12 4 17 18
rot_axis
8 1 5 0 2 3 4 5 6 7
rot_axis
11 8 6 0 1 2 3 4 5 6 7
The
first line means the rotation axis is coincident with the bond 9-12;
the
parameter number is 4 and the atoms to be rotated are 17 and 18.
rot_body_var
axis
Pi:
Eulerian rotations to orient the molecule in the unit cell.
Rotation
axis and parameter number are specified.
Example:
rot_body_var
z 1
rot_body_var
x 2
rot_body_var
z 3
The
first line means that the first rotation is done around the z axis and
the parameter number is 1.
putmol
x
y z P1 P2 P3:
positions and parameters numbers for the ubication of the molecule in
the
unit cell.
Example:
putmol 0 0 0 7 8 9
This
line means that 0,0,0 is going to be added to the positional parameters
of the molecule and the parameter numbers of these are 7, 8, and 9,
about
the x, y, and z axes, resp.
If
the molecular position is known the line would be as follows:
putmol
0.5 0.5 0.5 0 0 0
these
means the molecule is located in the position 0.5, 0.5, 0.5 and no
random
positional parameters are assigned.
endstructure: It specifies the end of the input of atoms in the asymmetric unit.
random: random numbers are assigned to all the parameters (Eulerian angles, torsions and molecular positions).
enter_p
P1…Pn:
enters determined numbers to the structural parameters.
Example:
enter_p 100.0 20.0 10.4 0.3 0.4 0.7
algorithm
n
y: Selects
the algorithm to be used for the generation of trial solutions [5]
(default
algorithm 2) and the parameter jumppar [5] (default 1) which governs
the
bias to small numbers in the generation of increments in the structural
parameter values.
Example:
algorithm 2 1
anneal
Tinit
Tfact ncyc Tfinal:
It specifies an annealing schedule: the initial temperature, decrement
rate, number of cycles and final temperature.
Example:
anneal 50 0.8 50000 0.001
This line means the initial temperature is 50, after the number of cycles (50000) is completed the temperature is decreased as: Tnext = 0.8*Tprevious. This is repeated until the final temperature (0.001) is reached and the simulated annealing stops.
pattern: A list of integrated intensities of the reflections (the observed ones were read from the Le Bail fit) is printed in the output file.
moldraw
filename:
It writes a input file for the program MOLDRAW (free distribution) to
represent
and visualize the crystal structures (under Windows). The extension
"mol"
has to be specified in the filename.
Example:
moldraw filename.mol
schakal filename: It writes an input file for the program SCHAKAL to visualize the crystal structures (versions for Windows and Linux). The extension "dat" has to be written in the filename. Example: schakal filename.dat
gsas
filename:
It writes a file that can be used to insert the atomic coordinates in
the
program GSAS, doing @filename in the respective
menu
to insert atomic positions. The extension does not matter. Example:
gsas
filename
fullprofcoords
filename:
It writes a file containing the atomic coordinates in the format for
FULLPROF.
Using a text editor they can be copied and pasted in a *.pcr file
(input
file for FULLPROF).
Example:
fullprofcoords filename
fullprofpcr
filename:
It writes a full FULLPROF input file. It may be necessary to edit it to
change some parameters. The extension has to be "pcr". This file can
also
be used to visualize the structure with the program ORTEP-3 for Windows
(free distribution).
Example:
fullprofpcr filename.pcr
end: It indicates the end of the input file.
Example:
input file for the compound 3-aminoquinoline
The
molecule is rigid, and so the only work to be done is to locate it by
Euler
angle rotation (params 1-3) and translation (params 4-6) in the unit
cell.
title
3-aminoquinoline (one molecule gral. position P212121, Z=4)
lebailf
iii.hkl 40
lambda
1.15
lattice
12.7300 7.7438 7.6473 90.0 90.0 90.0
spacegroup
P 21 21 21
symm
4 (+ means no inversion, - would include inversion)
1
0 0 0 1 0 0 0 1 0 0 0
-1
0 0 0 -1 0 0 0 1 .5 .0 .5
-1
0 0 0 1 0 0 0 -1 0 0.5 0.5
1
0 0 0 -1 0 0 0 -1 0.5 0.5 0
molecule
1 11
6
C -2.832 -0.342 0.062 1
6
C -2.420 -1.687 -0.085 1
6
C -1.088 -2.011 -0.154 1
6
C -0.093 -0.985 -0.076 1
6
C -0.516 0.370 0.073 1
6
C -1.902 0.665 0.140 1
7
N 1.249 -1.317 -0.146 1
6
C 2.139 -0.353 -0.074 1
6
C 1.816 1.057 0.075 1
6
C 0.469 1.390 0.154 1
7
N 2.832 2.011 0.047 1
params
6
0
360
0
360
0
360
0
1
0
1
0
1
structure
11
getmol
1
rot_body_var
z 1
rot_body_var
x 2
rot_body_var
z 3
putmol
0 0 0 4 5 6
endstructure
algorithm
2 1
random
anneal
50 0.8 1000 0.001
pattern
end
References
[1]-E.Aarts
and J. Korst, Simulated Annealing and Boltzmann Machines, J. Wiley and
Sons, New York (1989).
[2]-S.
Pagola and P. W. Stephens, Materials Science Forum 321-324 (2000) 40-45.
[3]-S.
Pagola and P. W. Stephens, unpublished results.
[4]-S.
Pagola, P. W. Stephens, D. S. Bohle, A. D. Kosar and S. K. Madsen,
Nature,
404 (2000) 307-310.
[5]-S.
Pagola and P. W. Stephens, submitted to J. Appl. Cryst.