CountReflections v1

../_images/CountReflections-v1_dlg.png

CountReflections dialog.

Summary

Calculates statistics for a PeaksWorkspace based on symmetry and counting reflections.

Properties

Name Direction Type Default Description
InputWorkspace Input PeaksWorkspace Mandatory A workspace with peaks to calculate statistics for. Sample with valid UB-matrix is required.
LatticeCentering Input string P Lattice centering of the cell. Allowed values: [‘P’, ‘C’, ‘A’, ‘B’, ‘I’, ‘F’, ‘Robv’, ‘Rrev’, ‘H’]
PointGroup Input string 1 Point group symmetry for completeness and redundancy calculations. Allowed values: [‘-1’, ‘-3’, ‘-3 r’, ‘-31m’, ‘-3m’, ‘-3m r’, ‘-3m1’, ‘-4’, ‘-42m’, ‘-43m’, ‘-4m2’, ‘-6’, ‘-62m’, ‘-6m2’, ‘1’, ‘112’, ‘112/m’, ‘11m’, ‘2’, ‘2/m’, ‘222’, ‘23’, ‘2mm’, ‘3’, ‘3 r’, ‘312’, ‘31m’, ‘32’, ‘32 r’, ‘321’, ‘3m’, ‘3m r’, ‘3m1’, ‘4’, ‘4/m’, ‘4/mmm’, ‘422’, ‘432’, ‘4mm’, ‘6’, ‘6/m’, ‘6/mmm’, ‘622’, ‘6mm’, ‘m’, ‘m-3’, ‘m-3m’, ‘m2m’, ‘mm2’, ‘mmm’]
MinDSpacing Input number 1 Minimum d-spacing for completeness calculation.
MaxDSpacing Input number 100 Maximum d-spacing for completeness calculation.
UniqueReflections Output number   Number of unique reflections in data set.
Completeness Output number   Completeness of the data set as a fraction between 0 and 1.
Redundancy Output number   Average redundancy in data set, depending on point group.
MultiplyObserved Output number   Fraction of reflections with more than one observation.
MissingReflectionsWorkspace Output IPeaksWorkspace   Reflections in specified d-range that are missing in input workspace.

Description

This algorithm computes some crystallographic data set quality indicators that are based on counting reflections according to their Miller indices HKL. Intensity information is not required for these indicators, so that the algorithm can also be used with predicted data (for example generated by PredictPeaks v1).

According to the specified lattice centering and the resolution boundaries, a set of theoretically measurable reflections is generated. How the reflections are mapped to a set of N_{theor.} unique reflections depends on the supplied point group. Then the N_{observed} actually observed peaks from the input workspace are assigned to their respective unique reflection, yielding N_{unique} observed unique reflections.

From this assignment it is possible to calculate the following indicators:

  • Unique reflections: N_{unique}
  • Completeness: \frac{N_{unique}}{N_{theor.}}
  • Redundancy: \frac{N_{observed}}{N_{unique}}
  • Multiply observed reflections: \frac{N_{unique} | N^{hkl}_{observed} > 1}{N_{unique}}

Furthermore, the algorithm optionally produces a list of missing reflections. In this list, each missing unique reflection is expanded to all symmetry equivalents according to the point group. For example, if the reflection family \{001\} was missing with point group \bar{1}, the list would contain (001) and (00\bar{1}).

The reason for expanding the unique reflections is to make the list more useful as an input to PredictPeaks v1 again.

Note

This algorithm has some overlap with SortHKL v1, which computes some of the indicators this algorithm calculates, but in addition also evaluates intensity information. SortHKL only works with peaks that carry intensity data while this algorithm also works without intensities.

Usage

The usage example uses the same data as the usage test in SortHKL v1, but produces slightly different data, because some intensities in the input file are 0, so these reflections are ignored by SortHKL v1:

# Load example peak data and find cell
peaks = LoadIsawPeaks(Filename=r'Peaks5637.integrate')

FindUBUsingFFT(peaks, MinD=0.25, MaxD=10, Tolerance=0.2)
SelectCellWithForm(peaks, FormNumber=9, Apply=True, Tolerance=0.15)
OptimizeLatticeForCellType(peaks, CellType='Hexagonal', Apply=True, Tolerance=0.2)

# Run the SortHKL algorithm
unique, completeness, redundancy, multiple = CountReflections(peaks, PointGroup='-3m1',
                                                              LatticeCentering='Robv', MinDSpacing=0.205,
                                                              MaxDSpacing=2.08, MissingReflectionsWorkspace='')

print('Data set statistics:')
print('             Peaks: {0}'.format(peaks.getNumberPeaks()))
print('            Unique: {0}'.format(unique))
print('      Completeness: {0}%'.format(round(completeness * 100, 2)))
print('        Redundancy: {0}'.format(round(redundancy, 2)))
print(' Multiply observed: {0}%'.format(round(multiple*100, 2)))

Output:

Data set statistics:
             Peaks: 434
            Unique: 358
      Completeness: 9.57%
        Redundancy: 1.21
 Multiply observed: 20.67%

The resulting completeness is slightly higher than in the SortHKL case, but for actual statistics it might be better to remove the zero intensity peaks from the workspace prior to running the algorithm.

Categories: Algorithms | Crystal\Peaks

Source

C++ source: CountReflections.cpp (last modified: 2017-04-25)

C++ header: CountReflections.h (last modified: 2017-03-10)