Programming the Science of Crystallography
PLATON, a Multipurpo
Crystallographic Tool
Ton Spek, Utrecht University
Programming Languages •Current choices are Fortran-(xx), C(++) or one of the many
scripting languages (e.g. Python).
•My choice for scientific software over the last 30 years was and still is Fortran.
I have en many (scripting) languages come and go …
algol, pascal, ratfor … and changed only once …
•I might consider a conversion to C++ after my official retirement in 2009 (assuming that C++ is still mainstream by that time and not superded by Fortran2xxx …..)
Pro’s and Con’s of Fortran •Fortran Pro’s:
-Designed for scientific computing, readily available and still evolving to include additional uful constructs.
-Relatively easy to learn and port to other platforms.•Fortran Con’s:
-No longer mainstream in the current software
development community.
-Interface to C libraries (e.g. Xlib) needed for graphics functionality.
PLATON AS AN EXAMPLE •PLATON is focud mainly on small-molecule
applications.
•The development of PLATON is esntially evolutionary, science driven and bad on the needs of a national single crystal structure facility.
•Following is an overview of the IDEAS and TOOLS that have been implemented over the past 25 years in the
program suite PLATON.
PLATON IMPLEMENTATION •The development of PLATON started on various CDC mainframe platforms and migrated via VAX/VMS and
DEC-UNIX to the PC/LINUX platform.•Implementations are also available for MS-WINDOWS (thanks to Louis Farrugia, Glasgow) and Mac-OSX.•PLATON tries to be compatible and complementing to the SHELX software suite.
•PLATON is currently ud as the major structure validation engine in the IUCr CHECKCIF facility.
PLATON ORGANISATION •Single FORTRAN source + a small C routine as
an interface to X11 graphics.
•Separate group of routines for the handling of the Space Group Symmetry.
•Separate group of routines for handling the Graphics (X11/PostScript/HPGL).
•Separate group of reusable global routines (SORT, INVERT, etc.)
Input Files
Input files are:
1. A parameter/coordinate file of type res,
cif, fdat, spf. The file type is guesd from the content, not from the file extension.
2. A reflection file of type hkl or fcf.
3.Command line input for instructions.
Output Files
•A full listing file (.lis).
•The PostScript version of .lis (.lps) for printing on a larprinter or viewing with GhostScript.
•A summary listing on the console.•Optionally a new parameter file •Optionally a new reflection file •Optionally a validation report (.chk, .fck)
Graphics Output •Graphics output is implemented via calls to a single
routine.
•This routine implements graphics instructions for the various types of graphics hardware.
•Currently, only X11, PostScript and HPGL are supported.•In the past there was similar support for Tektronix etc.•X11 library calls are implemented in a single C routine.•The Windows version substitutes its own library calls.•PLATON implements its own character t.
Features
•PLATON includes a number of unique tools such as ADDSYM, VOIDS, SQUEEZE, TwinRotMat, CIF, FCF Validation, BijvoetPairs, and SYSTEM-S.
•Provides a ‘rearch framework’ for the convenient implementation and testing of new ideas.
•Few outside dependencies (single source) (libX11 or equivalent for graphics).
•Non-standard language features are avoided.
•Up-to-Date HTML-HELP (via right mou click on item) with a browr over the Internet or locally installable.
Entry points
•Via command line options allowing for u in scripts:
< ‘platon –u shelxl.cif’will produce as the only output a file ‘shelxl.chk’with a validation report.
•The clickable PLATON main menu gives
an overview of the available functions.
Space Group Symmetry •230 Unique Space Groups, multiple ttings, synonyms, specification.
•Explicit symmetry operator, H-M or Hall Symbol input •Space Group Routine: Multiple callable functions: -Expansion of the t of symmetry generators
-Explicit symmetry ÎH-M and Hall Symbol
-Symmetry operations on coordinates or reflection h,k,l -Multiplication of two supplied symmetry operators
(R’|t’) = (R1|t1)(R2|t2) ÆNetwork Analysis
-Return inverted symmetry operation (including transl.)
Geometry Analysis
•Intra-molecular geometry bonds,angles,torsions,rings,planes etc.•Inter-molecular geometry
Short contacts, H-bonds, networks •Coordination geometry
Default: CALC ALL
Derived Geometry and
Standard Uncertainties
•Standard uncertainties for derived quantities f (p) can be derived in
principle using the Least-Squares Covariance Matrix and the
expression for the propagation of error:
σ^2(f) = Σij(δf/ δp(i))(d f/ δp(j))cov (p(i),p(j))
•Or in ca only variances are available:
σ^2(f) = Σi (δf/ δp(i))^2 σ^2(p(i))
•Analytical Evaluation(clumsy for torsion angles and up)
•Numerical: approximate δf/ δp(i)~ (f(p + Δi) –f(p))/ Δi
Take: Δi = σ(p(i)), then
σ^2(f) ~ Σi (f(p + σ(p(i)) –f(p))^2
Solvent Accessible Voids
• A typical crystal structure has only 65% of the available
space filled.
•The remainder volume is in voids (cusps) in-between
atoms (too small to accommodate an H-atom)
•Solvent accessible voids can be defined as regions in the
structure that can accommodate at least a sphere with
radius 1.2 Angstrom without intercting with any of the
van der Waals spheres assigned to each atom in the
structure.
•Algorithm: Graphical and Computational STEP #1 –EXCLUDE VOLUME INSIDE THE
VAN DER WAALS SPHERE
DEFINE SOLVENT ACCESSIBLE VOID
DEFINE SOLVENT ACCESSIBLE VOID STEP # 2 –EXCLUDE AN ACCESS RADIAL VOLUME TO FIND THE LOCATION OF ATOMS WITH THEIR
CENTRE AT LEAST 1.2 ANGSTROM AWAY
DEFINE SOLVENT ACCESSIBLE VOID
STEP # 3 –EXTEND INNER VOLUME WITH POINTS WITHIN
1.2 ANGSTROM FROM ITS OUTER BOUNDS
Voids: Algorithm
1.Expand the unitcell contents to P1
2.
Define a 3D grid with gridstep ~ 0.2 Angstrom and with the number of gridpoints in each direction a multiple of 12 (for exact symmetry mapping)
3.
Scan through all gridpoints in arch of gridpoints that have a distance greater than the probe radius to the nearest van der Waals sphere.
4.Join gridpoints into connected ts (S).
5.
Expand this t with gridpoints within the probe radius from the surface of S.
C
g
VOID APPLICATIONS
•Calculation of Kitaigorodskii Packing Index •As part of the SQUEEZE routine to handle the contribution of disordered solvents in crystal structure refinement
•Determination of the available space in solid state reactions (Ohashi)
•Determination of pore volumes, pore shapes and migration paths in microporous crystals
SQUEEZE
•Takes the contribution of disordered solvents to the calculated structure factors into account by back-Fourier transformation of density found in the ‘solvent accessible volume’ outside the ordered part of the structure.
•Filter: s & shelxl.hkl
Output: ‘solvent free’ shelxl.hkl
•Refine with SHELXL or Crystals
SQUEEZE Algorithm
1.Calculate difference map (FFT)
2.U the VOID-map as a mask on the FFT-map to t all
density outside the VOID’s to zero.
3.FFT-1 this masked Difference map -> contribution of the
disordered solvent to the structure factors
4.Calculate an improved difference map with F(obs)
phas bad on F(calc) including the recovered solvent
contribution and F(calc) without the solvent
contribution.
5.Recycle to 2 until convergence.
Comment
•The Void-map can also be ud to count the number of electrons in the masked volume.
• A complete datat is required for this feature.•Ideally, the solvent contribution is taken into account as a fixed contribution in the Structure Factor calculation (CRYSTALS) otherwi it is substracted temporarily from F(obs)^2 (SHELXL) and reinstated afterwards for the final Fo/Fc list.
(Pudo)Merohedral Twinning •Options to handle twinning in L.S. refinement available in SHELXL, CRYSTALS etc.
•Problem: Determination of the Twin Law that is in effect.•Partial solution: cot decomposition, try all possibilities
(I.e. all symmetry operations of the lattice but not of the
structure)
•ROTAX(S.Parson et al. (2002) J. Appl. Cryst., 35, 168.
(Bad on the analysis of poorly fitting reflections of the type F(obs) >> F(calc) )
•TwinRotMat Automatic Twinning Analysis as implemented in PLATON (Bad on a similar analysis but implemented differently)
Example
•Structure refined to R= 20% in P-3•Run TwinRotMat on CIF/FCF •Result: Twinlaw with estimate of the
twinning fraction and drop in R-value