Introduction to rigid bodies in TOPAS
TOPAS allows for the description of molecular fragments as rigid bodies, which can then be translated and rotated within the unit cell. In the case where a molecular geometry is well defined and known, the use of rigid bodies can dramatically improve the quality of a refinement over the free refinement of x, y and z coordinates for each atom. There are two main ways in which molecular fragments can be described in TOPAS; point_for_site
and z_matrix
.
point_for_site
point_for_site
allow fragments described in Cartesian coordinates to be moved around within a unit cell. This can work well where there is a very fixed geometry that you need to move within a unit cell. However, refining things like bond lengths are not easy to do. We will not address point_for_site
further in this tutorial, but more details can be found in the 'Rigid bodies and bond length restraints' section of the TOPAS Technical Reference manual.
z_matrix
A more flexible way of describing molecules using more chemically descriptive internal coordinates for the molecular is to use z_matrix
. This allows for the description of a molecule in terms of its bond lengths and angles. The lengths and angles can be parameters which form part of the refinement or used within penalties. While the use of z_matrix
can take some time to get used to, it is ultimately a much more powerful method of describing and refining (flexible) rigid bodies.
The keyword rigid
starts the definition of a rigid body in TOPAS. Each atom site that you want to include in the rigid body requires a z_matrix
line to describe its position. For example, a simple tetrahedra is defined and described below:
| This defines the start of a rigid body |
| The first site defines the origin of the rigid body. Translations will act directly on this point, and rotations will act around this point. |
| The second site requires a distance to be defined (along positive the z-axis). This states that H1 is 1.0 Å away from atom C. |
| The third site requires a distance and an angle to be defined (in the x-z plane). This states that H2 is also 1.0 Å away from atom C, and the H2–C–H1 angle is 109.5°. |
| The fourth and all subsequent sites also require a dihedral (torsion) angle to be defined. Here the angle between the planes defined by H3-C-H1 and H3-C-H2 is 120°. |
| Note that this could equally be described as |
As molecular become more complicated, in particular in the case of largely planar molecules, the requirement of a unique description of the dihedral angle between sites can become problematic. For this reason, it is common to use 'dummy atoms' to define a local axis system around which to describe the rigid body. These dummy atoms are sites with zero scattering from which the rigid body is defined.
Some more general information on Z matrices (not specific to TOPAS) with some examples can be found here.
Tutorial instructions
Theses PDF data of paracetamol were collected on the XPDF beamline at Diamond. The structure of paracetamol can be found here.
jEdit’s rectangular selection tool is very helpful for this tutorial, make sure to check it our here before continuing.
Fitting without the use of a rigid body
Start a fresh PDF refinement using
"para_100K_pdf.xy"
as the filename (TOPASforPDF > 1. PDF data > Select PDF Data File) and in jEdit save the file as 'para_100K_without_rigid.inp'.Enter a dQ damping with a value of 0.08 (TOPASforPDF > 2. Instrumental parameters > dQ damping).
Load structure from para.cif (TOPASforPDF > 3. Phase information > 3b. add new phase from CIF > i. Read a .CIF File).
Allow the lattice parameters to refine within the monoclinic symmetry (TOPASforPDF > 3. Phase information > 3b. add new phase from CIF > ii. constrain lattice parameters > convert to monoclinic).
Delete the
beq 0.0789
for each atom, and instead add abeq_rcut_rlo_spherical
peak shape with the default values; we will look at different peak shape functions in more details later on in the tutorial (TOPASforPDF > 3. Phase information > beq peak shape functions > beq spherical with min r and low r cutoffs).Add
view_structure
to open a structure viewer where you can watch the structure as the refinement progresses (TOPASforPDF > 3. Phase information > view_structure).Include output to CIF so you can compare the results in VESTA later (TOPAS_v7_Menus > Phase level - Structure > Outputs > Generate CIF output).
Allow all of the atomic coordinates to refine (place an
@
sign afterx
,y
andz
in each site) and run the refinement in TOPAS, but when asked if you want to update the .inp file with the .out file at the end of the refinement click No. Use the structure viewer to look at how the atoms move during the refinement.How has the molecular geometry changed?
Use VESTA to look at the .cif file created, and compare it to the starting para.cif.
You hopefully observed that the structure diverged quickly from the starting model, and now looks unrealistic. Let’s try slowing down the refinement a little by damping the updates after each refinement cycle, so that the atoms will more gently move away from their starting positions. Define a new macro called “Damp” by inserting this line at the top of your inp file:
macro Damp(DampFactor) { update = Val + (Change*(1/Exp(DampFactor/2))); }
This macro simply allows us to change the update keyword in a more tidy manner. Add this damping to add the site x, y, z coordinates by adding
Damp(5)
to each of the coordinates, so each line looks like this:site C1 x @ 0.1286 Damp(5) y @ 0.1743 Damp(5) z @ -0.0080 Damp(5) occ C 1.0
This Damp macro can help to keep atomic positions near their starting positions in the early stages of a refinement, but should be removed before finalising a refinement as it can prevent a refinement from converging.
Change the filename for the output .cif to
Out_CIF_STR("para_100K_without_rigid_damp.cif")
so the previous one doesn't get overwritten.Re-refine the structure and use the structure viewer to look at how the atoms move during the refinement.
Use VESTA to compare the output .cif files.