Requested Features / Ideas for F.O.X. BR Feel free to add your own ! I'll comment on the feasibility BR [#structure Structural Parameters] [#evaluation Structure Evaluation] [#algorithm Algorithm] [#gui Interface]

Anchor(structure)Structure Description BRatoms, polyhedra, molecules setup

Easier import for molecules, from various file formats

Currently the input can either be done atom-by-atom (not very friendly), or using a Fenske-Hall Z-matrix; the z-matrix can be created using babel or [http://openbabel.sf.net openbabel].BR Eventually, Fox will include the [http://openbabel.sf.net openbabel] library, so that molecule can be input from many file formats, and even SMILES string (e.g. a phenol molecule can be written as = “OC1=CC=CC=C1”

Restraints should be more strict for molecules

Currently molecules can wander quite far from the user-given restraint, which is not what is expected BRBR Actually, this departure from the restraint is a feature of Fox: the 'loose' restraints allow trhe algorithm to converge faster, even if it does not look nice.BR Nevertheless, in the next version of Fox [autumn 2005], restraints should be more strictly enforced. However this may not always be possible, if there are concurrent restraints (e.g. imagine a CH4 molecule, with restraints imposing a 120° angle between all H-C-H angles - obviously this is impossible).

Make the 'Molecule' description more like the z-matrix

The z-matrix (while making the algorithm slower), allows a direct control of the user on the geometry - you can see the actual bond lengths and angle values, and you can change them directly.BRBR In the next version of Fox, you will also see the current value for the bond length or angle, and you should be able to change it directly (you will have to take care of conflicting restraints, if any)

Inter-Molecular restraints

Add (e.g.) a bond length restraint between two atoms from different Molecules (related by symmetry), from NMR information. BRBRThis can be tricky as currently the algorithm *always* tries to move around Molecules in the unit cell - so this restraint would have to be scaled with the powder pattern Chi^2, which would not be very efficient (the intra-molecular restraints are evaluated internally when the molecule object generates a new configuration, so that no scaling is necessary).

Inter-atomic restraints (distance, coordination)

Impose for some elements or specific atoms to have a given number of neighbours at a given distance, of a given type (or not ?). This can be useful when information is obtained from NMR

Pure atom+restraint description of the crystal contents

Instead of having a description of atoms, polyhedra, Molecules, simply have a list of atoms directly in the Crystal description, and only bind those with a set of restraints. This would be more flexible, particularly to use general restraints (not necessary within a given polyhedra/Molecule).BRBRThe algorithm would have to identify interconnected groups of atoms, but this is already being implemented in the Molecule object, so most of the work has already been done.BRBR In order to avoid having to scale all the restraints with the diffraction Chi^2, the generation of trial configuration could be done using an Hybrid Monte-Carlo (i.e. using Molecular Dynamics types of movements)

Lattice parameters independent of crystal object

It should be possible to give the lattice parameters, from which the peak positions are derived, independent from the ones used in the crystal structure object. This way it would be possible to make use of the anisotropic expansion: especially in organics, moderate temperature changes will change the cell parameters quite strong, while the structure remains nearly unchanged - a 1% change of the cell is not much in terms of bond lengths and angles. Anisotropy of the expansion will change the way the reflections overlap. Additional information can be derived from this. (i.e. M. Brunelli et al., Angewandte Chemie International Edition, 42(18), 2029-2032 (2003)

Anchor(evaluation)Structure Evaluation BRWhat cost functions or other information can be used to validate the trial structure

Bond-Valence calculations

DONE (available in current beta versions) BR Add Bond-valence calculations (see http://marie.epfl.ch/orlov/bondval/ for documentation and software associated to Bond Valence evaluation).BR It is now possible to add an expected valence for each scattering power, and also bond-valence parameters for couple of scattering powers.BR Optionally the bond-valence can be used as a 'cost function', with a user-chosen scale - but this is still in testing.

Fourier maps

Extract structure factors [when possible-this requires a good powder pattern], and display the difference Fourier maps in the 3D display.BRBRThis requires first profile-fitting, derivative calculations, plus a few Fourier tools.

Molecular Enveloppes

Use a Molecular Enveloppe in the crystal to restrict the search to within a portion of the unit cell.BRBRThis should not be too difficult, as the enveloppe is not generated by Fox. The only issue is defining what exactly to do with the enveloppe - i.e. just adding a 'cost' whenever an atom goes out of the enveloppe, or simply forbidding any atom to go out of the enveloppe. The former is probably better, as a 'strict' restriction could prevent the algorithm to find the global minimum (i.e. a long molecule could not completely rotate in the enveloppe)

Anchor(algorithm)Algorithms

Give the ability to do multiple refinements

DONE (available in current beta versions) BRMultiple refinements are not absolutely required to find the solution, since the Parallel Tempering algorithm ensures that it can get out of any local minimum. However, it can be useful to be more confident about whether we have actually reached the global minimum. If all solutions are similar, this is certainly the case.

Genetic algorithms

Genetic algorithm or Differential Evolution could be used as new types of algorithm ?BRBRActually, Some genetic organization is already included in Fox, but is not used, due to a failure to find adequate, universal parameters to avoid the stagnation of the genetic population.BRBR It is possible that a Differential Evolution algorithm will be included within Fox after the autumn 2005 version. It will require a number of changes first; e.g. the 'crossover' of will have to be done within the scatterers, so that fragments of molecules can be intelligently combined (i.e without breaking restraints)

Hybrid Monte-Carlo

The HMC (see [http://dx.doi.org/10.1107/S0021889804028894 J. Appl. Cryst. (2005). 38, 107-111] and [http://dx.doi.org/doi:10.1107/S010876730200911X Acta Cryst. (2002). A58, 441-447]) could be used as another algorithm, combining Monte-Carlo and Molecular Dynamics principles.BRBR This would require the calculation of derivatives, which can be difficult to do in an efficient manner (actually, the way to do it efficiently is already planned, but requires many changes). Also, it would require that the molecule description be made directly as a function of the degrees of freedom, which can be difficult in the current restraints-based description (since the molecule restraints are not scaled with the diffraction Chi^2).BRThis will therefore wait until we have efficient, anlytical derivatives in !ObjCryst/Fox

Least-Squares/ Rietveld refinement

A least-squares (incl. Lenvenberg-Marquardt) is already present in Fox, but not accessible to users. It could be used to fully refine structures but there is no desire to make Fox a 'full' Rietveld package, because there are numerous, very powerful tools already available for that.BRBRHowever, a partial Rietveld refinement (not aimed at producing a publication-ready calculated pattern) may be introduced at some time. This could be used to:BR * Optimize profile parametersBR * Do a Pawley/Le Bail refinement to extract structure factors, when possibleBR * perform a quick minimization to go to the minimum

Anchor(gui)Graphical User Interface

Add global preferences for Fox

Some parameters could be stored as preferences - like whether to display atom labels, reflection indexes,...

None: FoxRequestedFeatures (last edited 2006-06-17 20:06:04 by VincentFavreNicolin)