Previously developed methods of phase classification using the electron microprobe have been based on setting threshold values or relative ranks for wt% oxide values. These methods perform poorly for minerals that have a significant solid solution, and provide no mechanism for checking the accuracy of the analysis or the accuracy of the classification. Because of these limitations, previous algorithms for phase classification cannot be completely automated to yield high-quality phase classifications for a broad range of assemblages. A new algorithm for phase classification using a transformation from wt% oxide to cation and finally to additive/exchange components is introduced. This algorithm can be completely automated, evaluates the accuracy of the mineral analysis and phase classification, and provides quantitative information about the composition of the phase. The algorithm works by exploiting the least-squares nature of the transformation from wt% oxide to additive/exchange components. This transformation determines the stoichiometric model-mineral composition nearest to the actual mineral composition (in a weighted least-squares sense). The difference between the stoichiometric model composition and the actual composition is determined for all possible phases. The stoichiometric model that has the smallest difference between the model and actual composition and has permissible values for the exchange components identifies the phase. If no stoichiometric mineral model fulfills these requirements (non-permissible exchange components or large difference between actual and model compositions), then the analysis is either of poor quality or there is no stoichiometric model available for the phase being analyzed.
The ability of this algorithm to provide robust, automated phase classification and compositional analysis allows the electron microprobe to be used for modal analysis, as well as analysis of compositional variation with a phase and many other applications. The MATLAB package APHID (Additive/exchange PHase IDentification) implements this algorithm.