Powder Structure Solution Program


General

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:
 
 
Compound
filename.hkl
filename.in
filename.out
I
i.hkl
i.in
i.out
II
ii.hkl
ii.in
ii.out
III
iii.hkl
iii.in
iii.out
IV
iv.rfl
iv.in
iv.out
V
v.hkl
v.in
v.out
VI
vi.hkl
vi.in
vi.out
VII
vii.hkl
vii.in
vii.out


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  P 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  P P 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.

Back to X3B1 home page