Superflip is a computer program for application of the charge-flipping algorithm to structure solution of crystal structures from diffraction data. Superflip works in arbitrary dimension and can be therefore used for solution of normal periodic structures, modulated structures and also quasicrystals.

Superflip is written in Fortran 90 and it uses the mathematical library FFTW3 for making the fast Fourier transform. This library must be installed on your system if you want to compile the program from the source code. Superflip also makes use of the subroutine SGELSY (+ dependencies) from the mathematic library LAPACK. This routine is included in the installation package of Superflip, and the LAPACK library neednot be installed on your system. Superflip also contains part of the code adapted from the program ECALC (Ian Ticke), and symmetry library, both being a part of the project CCP4. The program package contains the source code, the Makefile, sample input file and user manual.

If you want to use the precompiled executable, just download the appropriate file from the table below and follow the instructions. If you want to compile the program from the source code, please follow the notes in the user manual.

In the following table click download to download the particular item, or click instructions to view the instructions for installation (see license agreement):

Current version: 03/15/13 12:43
complete package with source code, user manual and sample file
zipped exectutable for Windows
zipped executable for MacOS, intel architecture
zipped executable for MacOS, arm64 architecture
Sample input files

EDMA (Electron Density Map Analysis) is a program for analysis of discrete elecron density maps. It was developed at the University of Bayreuth for analysis of Maximum Entropy maps in arbitrary dimensions as a part of the program suite BayMEM. However, EDMA is also an excellent tool for analysis of other electron density maps, in particular of those obtained by Superflip. Therefore Prof. Sander van Smaalen kindly agreed to make EDMA available for public also separately from the rest of the BayMEM suite.

EDMA shares the file format and many keywords with Superflip and therefore it is practical to have only one input file for both Superflip and EDMA.

To download EDMA or its manual, click on the appropriate item in the following table (see license agreement):

complete package with source code and user manual
zipped exectutable for Windows
zipped executable for MacOS, intel architecture
zipped executable for MacOS, arm64 architecture
Sample input files

Flipsmall (FLIPping for SMALL molecules) is a Python script that reads a SHELX-style ins and hkl file, prepares input file for Superflip and EDMA, and runs the programs. The result is an .ins file with the structure that can be directly read by SHLEXL or other software. Flipsmall has been largely written by Arie van der Lee. It has been designed to allow an automated structure solution including the determination of symmetry. It is an ideal tool for quickly getting a solution from Superflip and EDMA, especially for crystallographers that are used to work with SHELX files.

flipsmall - a Python script


I am indebted to:
Michal Dusek (Prague), for his major help with producing the Windows version of Superflip, and for continuous testing and bug reports.
Robin Pereboom (Lausanne) for an important contribution to the development of the program.
Arie van der Lee (Montpellier) for continuous and thorough testing of the program, numerous suggestions for improvement, contribution to the symmetry-determination routine in Superflip, setting up an interface for Superflip from CRYSTALS, and contribution to the adaptation of Superflip to structure solution of macromolecular structures. Arie has also written and maintains the Python script flipsmall.
Christian Dumas (Montpellier) for developing charge flipping for macromolecules and making numerous changes and suggestions for improvement of Superflip.
Ivan Orlov (Lausanne) for his assistance with setting up this web page.
Pascal Parois (Glasgow) for producing the RPM packages for Linux.
Ian Tickle and CCP4 for the permission to use parts of their code.
Christian Baerlocher for compiling superflip and EDMA for the new Mac architectures.
For users of Jana2000/Jana2006:
You can make your life much easier by preparing the input files for Superflip and EDMA in Jana2000 and import the result of Superflip and EDMA back to Jana2000. Here you can find out how. If you are not using Jana2000, have a look anyway, maybe you will want to give it a try! If you use Jana2006, you can profit from Superflip almost seamlessly, just call it from menu Run/Solution, and Jana2006 will make the input file and call Superflip automatically.

Latest changes on this page
Note: if you wish to receive an e-mail with notifications about the most important updates, please register for it by sending me an e-mail.


Updated executables of superflip and EDMA for MacOS.


The website has moved from to The page still exists, but is no longer maintained.


You can download a C-shell script flipsmall that takes an .ins file and a .hkl file, and prepares and runs Superflip and EDMA. The result is an .ins file with the structure that can be directly read by SHELXL or other software.


Superflip can call UCSF Chimera to visualize the progress of the iteration. See keyword "viewprogress".

The density is resampled to a finer grid before the final noise removal. This resampling increases the size of the output files, but yields much better density maps.

The missing low-angle reflections are handled is a special way that significantly improves the performance of Superflip on incomplete data sets. See keyword "missing".


Finally, Superflip can import also non-averaged data. The data is averaged internally using the Laue class corresponding to the space group in the input file. This allows you to test several symmetries in Superflip without the need to reprocess the reflection list.

Note that Christian Dumas and Arie van der Lee opened a new web site dedicated to appications of charge flipping (and Superflip in particular) to macromolecular crystallography: Charge flipping for macromolecules


An update after a long time of silence includes an improvement of the "derive symmetry" option, speed up of the calculations, and inclusion of a broader class of iterative algorithms in Superflip. Those that wish to experiment with various algorithms are invited to read more about the general iterative algorithm in the user manual, chapter Theoretical background, and keyword "perform".


From now on the reflection list need not be present in the input file for Superflip anymore, the refections can be imported from an external file, like SHELX hkl file or Jana2000 m91/Jana2006 m90 file. See keywords fbegin and dataformat in the user manual for more details.


New major update of Superflip has been released. The detection of convergence has been improved thanks to a new algorithm developed with and written by Robin Pereboom.

A possibility to derive the space group symmetry and the space group symbol directly from the reconstructed density has been added. For details see keyword "derivesymmetry". You are encouraged to read a new chapter in the user manual named "Handling of symmetry in Superflip" to understand better the way Superflip handles symmetry.

A command-line option --version has been added, which prints out the date and time of the current version.

A page with sample input files for Superflip and EDMA has been added here and it contains input files for three structures - one periodic, one modulated and one from powder diffraction data. If you have a nice example, do not hesitate to share it with other users of Superflip! I will be pleased to include it.

Superflip can now perform also a low-density elimination method in addition to charge flipping. Both methods are closely related. See keyword perform for details.

A run-time interaction with superflip is now possible via a command file. It is possible to change the method to low-density elimination/charge flipping, change the values of delta and weakratio as well as to stop the iteration and write out the density at any moment of the iteration.

A possibility has been added to suppress the noise in the density after the convergence. The settings that are the best to achieve the convergence are not the best to obtain the most clear map. Therefore additional "polishing" cycles can be now performed to remove the noise from the converged map. This is especially useful, if there are light atoms next to heavy atoms in the structure. See keyword polish in the user manual.


EDMA can now quantitatively assign the maxima to atomic types according to composition given by user. With the new option the exported structure will quantitatively correspond to the desired chemical composition. The other options for handling composition remain preserved. See keywords composition and numberofatoms in the user manual to learn more about this option.


EDMA can now export the structure not only to the m40 format of Jana2000, but also to a CIF format or INS file of SHELX. For more information, see the keyword "export" in the user manual for EDMA. Please inform me if you encounter some problems with the export to CIF or SHELX, so that I can finetune these new tools!


A guide explaining step by step how to produce the input files for Superflip and EDMA with Jana2000 has been added to this webpage and can be found here.


EDMA can be downloaded from this site. EDMA is a tool for analysis of electron densities in arbitrary dimensions. For more information see above or see the user manual of EDMA.


A completely new symmetry-searching routine has been implemented in Superflip. It is much faster especially for low symmetries and for higher-dimensional densities. Should you face a problem with the symmetry search, please contact me. You can always use the old symmetry search by using the keyword searchsymmetry average old or searchsymmetry shift old.


New output format has been added, namely m80 format of Jana2000. It is an ASCII reflection list and can be used for making density sections by Jana2000. Keyword usephases has been updated, see manual. The alignment of the density with the reference file has been substantially improved and accelerated. The agreement factor expressing the match during the symmetry search was put onto absolute scale. The expected value for a random shift is now always 100%, reasonably good match for the right position of a symmetry element gives agreement factor below 30%.


The executable for Windows has been updated and from now on it should be always up-to-date with the other versions. It is a stand-alone executable which does not need any other library to run. Very special thanks to Michal Dusek who has undergone the calvary of finding out the compilation procedure.


Superflip can now repeat the calculation. One of the options is to repeat the calculation until convergence is detected. You can also let Superflip repeat the calculation indefinitely and save the densities with the best R-value. See keywords repeatmode and bestdensities in the manual.

The maximum number of cycles can be now entered also as a keyword in the input file.

The Windows executable has not been updated, but it will be updated soon!


The option "dataformat" has been added. This allows the user to define flexibly the format of the input data. Please study carefully the user manual, keyword dataformat, to get familiar with the change. Keyword datatype has been discarded, its functionality is replaced and extended by dataformat.

Keyword usephases allows the user to provide the starting phases for the charge-flipping iteration for all or (in combination with appropriate dataformat) some reflections. The previously used method to input the user-defined phases via a special value of randomseed has been discarded.

The handling of forbidden reflections has been changed. Previously, the program stopped when forbidden reflections were found in the reflection list. Now the program only writes out a warning, discards the reflections from the reflection list and continues.

The Windows executable has not been updated.


Optionn "terminal yes/no" added. This allows you to get an information about the progress of the iteration on the terminal.

Keyword datatype has been added allowing you to define, if the input data are amplitudes |F| (as was the only possibility up to now), or the intensities |F|^2. See user manual, keyword datatype for details.


This web page was open to public. The program package contains executables for Windows and Mac OS 10.4.

If you make use of charge flipping/Superflip for your research, please cite appropriate references from this list:
Original articles about charge flipping:

Oszlanyi G., Suto A. (2004): Ab initio structure solution by charge flipping, Acta Crystallogr. A60, 134-141, abstract

Oszlanyi G., Suto A. (2005): Ab initio structure solution by charge flipping. II. Use of weak reflections, Acta Crystallogr. A61, 147-152, abstract

Oszlanyi G., Suto A. (2006): Ab initio neutron crystalography by the charge fliping method, Acta Crystallogr. A63, 156-163, abstract

Charge flipping in superspace:

Palatinus L. (2004): Ab initio determination of incommensurately modulated structures by charge flipping in superspace, Acta Crystallogr. A60, 604-610, electronic reprint

Low-density elimination method:

Shiono M., Woolfson M. M. (1992): Direct-space methods in phase extension and phase determination. I. Low-density elimination., Acta Crystallogr. A48, 451-456, abstract

The program Superflip:

Palatinus L., Chapuis G. (2007): Superflip - a computer program for the solution of crystal structures by charge flipping in arbitrary dimensions. J. Appl. Cryst. 40, 786-790, electronic reprint

The program EDMA:

Palatinus, L., Prathapa, S. J. and van Smaalen, S. (2012): EDMA: a computer program for topological analysis of discrete electron densities. J. Appl. Cryst. 45,575-580, abstract and full text

Charge flipping on powder diffraction data:

Baerlocher Ch., McCusker L. B., Palatinus L. (2007): Charge flipping combined with histogram matching to solve complex crystal structures from powder diffraction data, Z. Kristallogr. 222(2), 47-53, abstract and full text

Please send all questions and comments to Lukas Palatinus

WOP!WEB Services for web sites... FREE!