flipsmall - a Python script for automated structure solution using Superflip and EDMA

Arie van der Lee, Christian Dumas & Lukas Palatinus


Flipsmall is a Python script that creates an input file for Superflip, and runs Superflip and EDMA to provide an automated structure solution (including symmetry determination) for small-molecule compounds. The input to flipsmall is a standard SHELX .ins file with cell info (CELL) and scattering factor type info (SFAC). The user should install Superflip and EDMA somewhere in the path, so that it can be found by flipsmall. The name of the executable of Superflip is usually superflip (lowercase); the name of the executable of EDMA is usually EDMA (upper case). Similarly flipsmall can be installed in the path as well. Python (most probably at least 2.5) should be installed and accessible and Superflip and EDMA should obviously be as well in the path. The script can be executed on Linux distributions as well as under DOS, and most probably under MacOS.


flipsmall.py name.ins
where name is the generic name of the .ins file with accompanying name.hkl file.

The only lines really needed in .ins file are TITL, CELL, and SFAC. The cell parameters have to be constrained to their crystal system. The file name.hkl is a SHELX-type (HKLF4) reflection file with Fortran format (3i4,2f8.0).

The script creates a file name.inflip which contains a low-symmetry space group within its crystal system, which is derived from the cell parameters. This is of course a crude approach, and serves only for reflection averaging. The actual symmetry is determined by Superflip after the structure solution.

When Superflip is finished, a new .inflip file is created on the fly with the symmetry proposed by Superflip.

Then EDMA is started and the map is interpreted. EDMA creates a file name.res with the proposed structure.

Command line options

flipsmall.py name.ins merge=no gives the possibility to do charge flipping without averaging the reflection data in the Laue class; with this option the solution is truly in P1

flipsmall.py name.ins normalize=yes gives the possibility to do CF with local normalizing

flipsmall.py name.ins trial=5 gives the possibility to do charge flipping with five (or another number) different trials. The best map is used for further processing

flipsmall.py name.ins forcesymmetry=yes gives the possibility to use (and keep) the symmetry that is proposed in the .ins file. In that case the symmetry cards should obviously be present in the .ins-file

flipsmall.py name.ins cleanup=no does not delete intermediate files and notably the log file

flipsmall.py -h gives on-line help and some more commandline options

Installation: on Linux the user may need to change the first (shebang) line of the script which is now #!/usr/bin/python2. It may also be necessary to make the file executable (chmod u+x python.py). If the script then still does not run and stucks on the first shebang line, then removing DOS carriage return characters may help (something like dos2unix python.py).

An older C-shell script which does the same as Flipsmall, but which is no longer developped can be found here

BACK to the home page