Abstract
In this paper, a novelty-free software to assess an efficient CIPW Norm (± 0.006 wt.% in differences between input and output data) is presented. The package is available in the official repository for user-contributed R packages (CRAN: Comprehensive R Archive Network). The software is able to handle big data sets and considers minor and trace element compositions. The algorithm can calculate odd minerals in igneous rocks, such as cancrinite and calcite, adjust the Fe+3/Fe+2 ratio in different standard approaches, and recalculate the compositions of the rocks in an anhydrous basis (100 ± 0.003 wt.% volatile-free adjusted). Furthermore, the package calculates several petrological parameters, and the graphical outputs are displayed following IUGS scheme standards. The prime aspect of shinyNORRRM is the symbiosis of native R functions with the R package’s shiny (Web Application Framework for R) to run the norm in a user-friendly interface. shinyNORRRM can be executed in any operating system and requires no previous programming knowledge, thus promising to be the universal computational program in this matter. The output data are printed in the standard comma-separated values (*.csv) format, which is highly compatible with general spreadsheet editors. In this work, the algorithm of our program is validated using already compiled whole-rock geochemical databases.
Similar content being viewed by others
Avoid common mistakes on your manuscript.
1 Introduction
The chemical composition is the most fundamental quantitative character of igneous rocks, being a quality inherently controlled by the magma source region, degrees of partial melting, and differentiation processes during magma ascent. Therefore, the chemical composition is critical to classify rocks and address their petrogenetic aspects. The CIPW Norm calculation was initially introduced as a method for the classification and nomenclature of igneous rocks (Cross et al. 1902). Mathematically, this procedure is a linear transformation of geochemical data (major and minor element content of rocks) into a set of normative minerals from an anhydrous melt at low-pressure conditions. The algorithm that reproduces the norm has been improved by several workers (Johannsen 1931; Kelsey 1965; Pruseth 2009a; Verma et al. 2003), and as an essential petrological tool, the norm has been therefore compiled in many computational programs (Al-Mishwat 2015; Carr and Gazel 2017; Currie 1991; Glazner 1984; González-Guzmán, 2016; Gündüz and Asan 2021; Janoušek et al. 2006; Le Maitre et al. 2002; Pruseth 2009b; Stuckless 1983; Verma et al. 1986, 2002; Verma and Rivera-Gómez 2013; Williams et al. 2020; Yegorov et al. 1998; Yu et al. 2019; Zhou and Li 2006). However, there are some issues regarding the acquisition and standardization of normative mineralogy in terms of the wide range of computational codes. For example, many of those computational codes cannot be run on mainstream platforms, becoming obsolete. Most of them are also privatives, with source codes that are inaccessible to the users. Some other programs require middle to advanced command-line knowledge to be used, thereby precluding their practical usage by a wide range of users. Also, most projects cannot be executed elsewhere as they are often designed to be run in only one operating system. In addition, some software yields systematically biased results. In this sense, many researchers have argued the need to standardize the algorithm to establish normative mineralogy in igneous rocks (Verma et al. 2003; Williams et al. 2020). Thus, the general lack of precision, portability, renewability, and standardization prevents petrologists from getting a reliable norm. Such issues are the weaknesses that must be addressed in the upcoming computational projects in any scientific community (Gentleman et al. 2004; Verma and Rivera-Gómez 2013; Yu et al. 2019).
To overcome the limitations of currently available tools, a free and open-source package called shinyNORRRM (shiny: a Web Application Framework for R; NORRRM: acronym from noRm, R language, and Reneé) was developed to foster a universal programming package within the geochemical community. The package is written in R but runs as a shiny app. R is a free software environment for statistical computing and graphics (R Core Team 2022), capable of running into any operating system such as Microsoft Windows®, GNU/Linux, BSD, and Mac OS X®. R has attracted a large user base over the past several years to such an extent that it has become a popular programming language adopted by benchmark computational projects in Earth Sciences, such as IsotoplotR (Vermeesch 2018), GCDKit (Janoušek et al. 2006), phreeqc in R (Charlton and Parkhurst 2011; de Lucia and Kühn 2021), and GWSDAT (Jones et al. 2022). In addition, shiny provides a graphical user interface (GUI), such as the interactivity of modern web apps (Chang et al. 2022), combining expressive and elegant elements of R and web functions. This paper provides an overview of shinyNORRRM, which executes a stoichiometrically efficient CIPW algorithm that generates an assemblage of normative minerals and calculates multiple petrological parameters.
2 The Importance of the CIPW Norm and Its Algorithm
The norm is not an exclusive petrogenetic tool for igneous rocks as many attempts have been made to assess the normative mineralogy of sedimentary (Cohen and Ward 1991; de Caritat et al. 1994; Kackstaetter 2014; Merodio et al. 1992; Rosen et al. 2004) and metamorphic rocks (Barth 1959; Mathieu et al. 2016; Wolfgang Wagner 2022). The CIPW Norm has several variants as well (Barth 1962; Currie 1980; Janoušek et al. 2006; Usdansky 1986). In addition, there are other types of norms for igneous rocks, for instance, the Rittman Norm which is an independent algorithm that primarily addresses the classification of volcanic rocks (Rittmann 1973). It is important to note that the Rittman Norm has a procedure that handles hydrous minerals, and its results are closer to petrographic observations, especially for basalts. Nevertheless, it involves a dynamic and recursive algorithm, and nowadays, no software runs this scheme. Thus, the CIPW Norm is still the most widely used system to get the normative mineralogy for igneous rocks.
Igneous rocks are primarily classified by point-counting on thin sections or slabs (Streckeisen 1976, 1978). However, according to the IUGS (International Union of Geological Sciences; Subcommission on the Systematics of Igneous Rocks), the chemical composition is an applicable criterion for classifying rocks when their mineral mode is impossible to determine (Le Maitre et al. 2002). Therefore, the norm enables an alternative option for the classification of rocks that are difficult to constrain microscopically due to the abundance of glassy components or fine-grained (< 0.125 mm) crystals, such as those present in microcrystalline and aphanitic textures. On the other hand, for phaneritic crystalline rocks, the norm reproduces the “standard” mineralogical assemblage (Verma et al. 2003). It is worth mentioning that the examined volume in one standard-size thin section (46 × 27 × 0.03 mm) is insignificant compared to the relatively large rock volume used in the whole-rock geochemical analysis. In fact, some researchers have raised serious issues related to the modal classification of phaneritic rocks as proposed by the IUGS (e.g., Glazner et al. 2019; Middlemost 1991). In addition, determining the correct compositional variation of mineral groups such as feldspars, olivine, and pyroxene (Barron 1980; Frost et al. 2019; Paktunc 1998) is another difficulty in petrographic analyses. Therefore, it is tempting to replace the traditional modal classification considering the above-mentioned issues and the quantitative character of the normative classification.
The CIPW Norm is estimated according to a linear flowchart (Kelsey 1965; Verma et al. 2003) using a logical sequence to calculate mineral phases one after another, assigning permanent or provisional molecular proportions of the chemical components of the sample. The first sequence of calculation starts by forming accessory minerals (e.g., apatite [Ap], zircon [Zrn], and fluorite [Fr]), sulfides (thenardite [Th] and pyrite [Pr]), carbonates (calcite [Cc] and cancrinite [Ns]), and Fe-Ti oxides (chromite [Chr] and ilmenite [Ilm]). Next, silica is consumed depending on the amount of calculated silicate minerals (e.g., orthoclase [Or], albite [Al], anorthite [An], diopside [Di], hypersthene [Hyp]). Then, any excess silica is calculated as quartz [Q]. At this stage, if the sample is silica-undersaturated, the provisional silicate minerals are sequentially replaced by silica-poor minerals until the deficit is removed (e.g., nepheline [Ne] instead of albite [Al] or perovskite [Pf] instead of sphene [Tn]). This silica redistribution is confirmed by considering the silica deficiency defined by the amount of silica required minus the amount of silica in the rock at each stage of the redistribution. Finally, minerals are converted to weight percent by multiplying the molar compositions by the corresponding molecular weights.
2.1 Fe-Oxidation Ratio Adjustment
Iron (Fe) typically occurs in two oxidation states in minerals (i.e., ferric, Fe+3, and ferrous, Fe+2). For example, in the norm, ilmenite[Ilm] is presented as [FeO·TiO2] and acmite [Ac] as [Na2O·Fe2O3·4SiO2]. Unfortunately, modern analytical methods (e.g., X-ray fluorescence, inductively coupled plasma optical emission spectroscopy) only provide total Fe content expressed as either Fe2O3t or FeOt. This issue is partly responsible for the inaccuracy and the lack of standardization in norm computations because the Fe2O3/FeO ratio impacts the calculated abundance of several normative minerals. Thus, several authors have argued the need for adjustment of the Fe2O3/FeO ratio in chemical compositions of igneous rocks before any geochemical classification or CIPW Norm computation (Coombs 1963; El-Hinnawi 2016; Middlemost 1989; Pruseth 2009a; Rickwood 1989; Verma et al. 2003). Both qualitative and quantitative adjustment methods have been proposed (Brooks 1976; El-Hinnawi 2016; Hughes and Hussey 1979; Irvine and Baragar 1971; Le Maitre 1976; Middlemost 1989; Pruseth 2009a). The two most used methods for partitioning Fe between Fe2O3 and FeO are the following: (i) Middlemost’s solution (Middlemost 1989), which assigns specific values of Fe2O3/FeO based on the geochemical classification in the TAS diagram (total alkalis [K2O + Na2O] vs. silica [SiO2]) (e.g., Fe2O3/FeO [andesite] = 0.35; Fe2O3/FeO [rhyolite] = 0.50), and (ii) Le Maitre’s equations (Le Maitre, 1976), to solve Eq. (1) to specify oxidation ratios of volcanic rocks
and Eq. (2) to express the oxidation ratios of plutonic rocks
3 Software Installation and Architecture
shinyNORRRM is an extension of R and therefore launched as free software (GNU General Public License version 3.0). Users must install R language, as the package operates across this platform. Following the R standards, users can install our package by interacting with a command line in the R environment or by an R GUI (e.g., Posit [RStudio]; Fig. 1). The function “install.packages ()” can be used to install the current version from CRAN. The syntax in the terminal is as follows: install.packages (“shinyNORRRM”). In addition, our algorithm employs eight R libraries: “shiny”, “shinythemes”, “shinyWidgets”, “pracma”, “Ternary”, “grDevices”, “graphics”, and “utils”. All of them are automatically installed alongside our package.
The functions of shinyNORRRM are written in native R using object-oriented programming. Figure 2 shows the architecture and the interface of shinyNORRRM. The native R code is coupled to the shiny libraries by generating a low-level interface, requiring server (server.r) and user interface (ui.r) codes. These components form the basic architecture behind our app. While the ui.r object controls the layout and appearance of the application, the server.r file contains the logic needed to run the functions. The main native functions (adjRock, Indices, and ultimateCIPW) require databases which include constant values such as the standard atomic, oxide, and mineral weights (Prohaska et al. 2022). The GUI consists basically of eight tabs: (i) one tab to feed the app through a delimited text format file (*.csv format); (ii–iv) three to show the numerical results of the main functions: (a) The adjusted major elements data (wt.% volatile-free), (b) The normative mineralogy (wt.%), and (c) several basic petrological parameters; and (v–viii) four tabs to show the graphical output, which corresponds to the well-known TAS scheme and some ternary classification diagrams of granitic, mafic, and ultramafic rocks, following IUGS recommendations (Le Maitre et al. 2002). Both graphical and numerical outputs are displayed on the screen and can be downloaded by specific buttons in the GUI. The output data can be downloaded in generic *.csv format, while the graphical outputs can be saved in either *.png or *.pdf formats.
4 Discussion
4.1 shinyNORRRM Capabilities
Nowadays, our previous software, namely NORRRM, is practically obsolete and needs to be updated. shinyNORRRM includes parts of the traditional routines from NORRRM with recently developed routines and flexible self-defined functions. In the GUI, the geochemical data are extracted from an input *.csv file. shinyNORRRM emulates the algorithm presented by Verma et al. (2003) and only considers anhydrous phases. The calculation uses major (as wt.%: SiO2, Al2O3, CaO, MgO, FeO, Fe2O3, MnO, Na2O, K2O, TiO2, P2O5, LOI), minor (as wt.%: CO2, SO3, S, Cl, and F) and some trace elements (as ppm: Zr, Ba, Cr, Co, Cs, Li, Ni, Rb, Sr, V). The software allows users to report the Fe2O3 and FeO concentrations separately or as a total Fe in the same spreadsheet cell. The users also have the option to choose between Middlemost (1989) and Le Maitre (1976) to adjust the Fe-oxidation ratio or to run the norm if the input data include both Fe species. The package recalculates the major oxides to 100 wt.% on a volatile-free basis (± 0.003). In the algorithm, the concentrations of the input data are converted to moles (molecular and atomic) by dividing the content by the respective molecular or atomic weights reported for the IUPAC (Prohaska et al. 2022). The automatic use of variable molecular weights can add trace elements to major oxides in the input as follows: Ni and Co to FeO, Ba and Sr to CaO, Rb and Cs to K2O, Li to Na2O, and V to Cr2O3. The computation of cancrinite [Nc] and calcite [Cc] are allowed if the concentration of CO2 is > 0% and if the user indicates it. Apatite [Ap] can be calculated as 3CaO·P2O5·1/3CaO and 3CaO·P2O5·1/3CaF2. The ferromagnesian minerals are assumed to be free of Al2O3. Alumina content is used to determine feldspars [Or, Ab, and An] or feldspathoids [Ne and Lc] and corundum [C]. shinyNORRRM distinguishes between the end members of solid solution series such as enstatite (MgSiO3; Mg-endmember of pyroxene) and ferrosilite (FeSiO3; Fe-endmember of pyroxene) as well as forsterite (2MgO·SiO2; Mg-endmember of olivine) and fayalite (2FeO·SiO2; Fe-endmember of olivine). Several mineral pairs are incompatible in the algorithm (e.g., [Q] and [Ol] or [Hyp] and [Ne]); therefore, they never appear together in the normative mineralogy. Trace mineral phases such as zircon [Zrn], halite [Hl], fluorite [Fr], pyrite [Pr], and thenardite [Th] can also be estimated. The introduced samples are classified according to the TAS diagram (Le Bas et al. 1986). Other diagrams accepted by the USGS are automatically plotted: normative [Ab]-[An]-[Or], [Pl]-[Ol]-[Px], [Pl]-[Opx]-[Cpx], and [Ol]-[Opx]-[Cpx] classification ternaries diagrams. shinyNORRRM also calculates many useful petrological parameters and geochemical indexes (Table 1).
4.2 shinyNORRRM Performance
There are four files in comma-separated values (*.csv) format attached in the CRAN: (i) “Deccan”, a data collection of geochemical analyses of igneous rocks (n = 7019) with a wide compositional range from the Deccan region, India (Gard et al. 2019); (ii) “TephraKam”, a geochemical data set of igneous rocks (n = 7596) that includes chemical compositions of felsic volcanic glass in tephra and welded tuffs from the Kamchatka volcanic arc, north-western Pacific (Portnyagin et al. 2020); (iii) “IUGS”, a collection of major oxides data of representative samples of volcanic rocks (n = 37) reported by the IUGS (Le Maitre et al. 2002); and (iv) “EAP”, a data collection of igneous rocks (n = 46) from the Eastern Mexican Alkaline Province (Elizondo-Pacheco et al. 2022). To demonstrate the shinyNORRRM performance, we ran our algorithm in the largest data sets. Figure 3 shows the locations of the samples from the “Deccan” and “TephraKam” data sets as well as the histograms of the differences between the sum of normative minerals and the whole-rock chemical analysis (adjusted to 100% on a volatile-free basis). The histograms are nearly symmetrically distributed ( ±) with a slight difference of about ± 0.006 (wt.%) that can be readily explained by rounding errors in the calculations of R. The accuracy in our package is similar to the results of IgRoCS (Verma and Rivera-Gómez 2013), which is the most used software to run the norm. According to its authors, it has an accuracy within three digits after the decimal point (± 0.009 wt.% but generally ± 0.002 wt.%; Verma et al. 2002). Therefore, a conclusion drawn from the results is that the app presented here achieves an absolute match between the adjusted oxide data (volatile-free) and the normative mineral weights.
We compared the normative mineral assemblages from the “IUGS” database by using shinyNORRRM and the most popular programs on the web: GCDkit (Janoušek et al. 2006), GeoPyTool (Yu et al. 2019), IgPet (Carr and Gazel 2017), IgRoCS (Verma and Rivera-Gómez 2013), JBL (Excel spreadsheet distributed by Jake Lowenstern), PetroGram (Gündüz and Asan 2021), MATNORM (Pruseth 2009b), and WinRock (GeologyNet®). The comparison of results for selected normative minerals is graphically visualized in the boxplots of Fig. 4, where the differences between the amounts (wt.%) yielded by shinyNORRRM and those obtained by other software are plotted. The numerical outputs of shinyNORRRM, compared with IgRoCS, prove that the results are consistent and reliable; only minor deviations in very few minerals attributed to random errors (rounding issues) from both software are observed. On the other hand, if we consider the interquartile range (IQR) of the normative minerals in Fig. 4, this deviation increases by approximately ± 2.5% for the rest of the programs. However, outlier values of the concentrations of some minerals (e.g., [Q], [Ab], and [Ol]) yielded up to 28 wt.% in the difference compared with our app (not shown in the scale of Fig. 4). All these discrepancies are likely due to the combination of the following aspects (which are common to most of the software circulating on the web): (i) Programs based on outdated algorithms such as those reported by Cross et al. (1902) or Kelsey (1965); (ii) Syntax errors in the source code; (iii) Unfixed bugs or the use of immature software versions; (iv) Inaccuracies in the atomic weights; (v) Usage of wrong mineral formulae in their calculations, and (vi) Recalculation of the bulk-rock chemical analyses to 100% on an anhydrous basis is omitted, including the adjustment of the Fe-oxidation ratio.
For its part, shinyNORRRM owes its high-achieved accuracy to several factors. Firstly, the algorithm is based on mass balance principles (Verma et al. 2003). Also, it uses the most recent and accurate atomic and molecular weights reported in the literature (Prohaska et al. 2022). In addition, the object-oriented programming character of R reduces and manages the source code complexity, thereby avoiding bugs and compilation errors.
5 Conclusions
The CIPW Norm is a geochemical classification system that follows the current standards of the IUGS recommendations. shinyNORRRM is a free software designed to run an efficient CIPW Norm (± 0.006 wt.%), achieving highly consistent results. It is written in R environment, using native and extended code. The developers launched the program to become a universal petrological software as it runs on any current mainstream operating system. The code offers an intuitive and user-friendly interface to control the data import, selection of variables, visualization, and data export. The interface can handle large geochemical data sets of igneous rocks. Numerical outputs display the major oxides recalculated to 100 wt.% on a volatile-free basis (± 0.003), the adjustment of the Fe-oxidation ratio, and several petrological parameters and geochemical indexes. Graphical output includes the well-known TAS classification diagram and some ternary plots that classify a wide variety of igneous rocks. The package presented here is available for installation from the official repository of R (CRAN) or via GitHub. shinyNORRRM is extremely easy to use, can standardize the way of getting the CIPW Norm, and has the potential to become a powerful computational tool in igneous petrology.
Data availability
shinyNORRRM is free software (GNU General Public License version 3.0). The current release of the software is version 0.8.7; it works with R (4.2.2 or higher). The source code of the stable version can be downloaded from the official CRAN repository https://cran.r-prorg/web/packages/shinyNORRRM/index.html. Also, the most up-to-date version is available via GitHub (https://github.com/TheRFrog/shinyNORRRM). Comments and bug reports can be sent to the authors via the GitHub link.
References
Al-Mishwat AT (2015) CIPWFULL: A software program for calculation of comprehensive CIPW norms of igneous rocks. Math Geosci 47:441–453
Barron LM (1980) Feldspar compositions and amounts from a CIPW norm. Geochem J 14:33–40
Barth TFW (1959) Principles of classification and norm calculations of metamorphic rocks. J Geol 67:135–152
Barth TFW (1962) A final proposal for calculating the Mesonorm of metamorphic rocks. J Geol 70:497–498
Brooks C (1976) The Fe203/FeO ratio of basalt analyses: an appeal for a standardized procedure. Bull Soc Geol Denmark 25:117–120
Carr MJ, Gazel E (2017) Igpet software for modeling igneous processes: examples of application using the open educational version. Mineral Petrol 111:283–289
Chang W, Cheng J, Allaire JJ, Sievert C, Schloerke B, Xie Y, Allen J, McPherson J, Dipert A, Borges B, (2022) shiny: Web Application Framework for R. https://shiny.rstudio.com/.
Charlton SR, Parkhurst DL (2011) Modules based on the geochemical model PHREEQC for use in scripting and programming languages. Comput Geosci 37:1653–1663
Cohen D, Ward CR (1991) SEDNORM-a program to calculate a normative mineralogy for sedimentary rocks based on chemical analyses. Comput Geosci 17:1235–1253
Coombs SD (1963) Trends and affinities of basaltic magmas and pyroxene as illustrated on the diopside-olivine-silica diagram. Mineral Soc Amer Spec Paper 1:227–250
Cross W, Iddings JP, Pirsson LV, Washington HS (1902) A quantitative chemico-mineralogical classification and nomenclature of igneous rocks. J Geol 10:555–690
Currie KL (1980) Modified norm calculation. Can J Earth Sci 17:1342–1350
Currie KL (1991) GENORM: A generalized norm calculation. Comput Geosci 17:77–89
Daly RA (1935) Densities of rocks calculated from their chemical analyses. Proc Natl Acad Sci 21:657–663
de Lucia M, Kühn M (2021) Geochemical and reactive transport modelling in R with the RedModRphree package. Adv Geosci 56:33–43
de Caritat P, Bloch J, Hutcheon I (1994) LPNORM: A linear programming normative analysis code. Comput Geosci 20:313–347
Duan M, Niu Y, Sun P, Chen S, Kong J, Li J, Zhang Y, Hu Y, Shao F (2022) A simple and robust method for calculating temperatures of granitoid magmas. Mineral Petrol 116:93–103
El-Hinnawi E (2016) A new method for the adjustment of Fe2O3/FeO ratio in volcanic rocks for the calculation of CIPW norm. Neues Jahrb Mineral Abh 193:87–93
Elizondo-Pacheco LA, Ramírez-Fernández JA, de Ignacio C, González-Guzmán R, Rodríguez-Saavedra P, Leal-Cuellar VA, Velasco-Tapia F, Montalvo-Arrieta JC (2022) Generation of Arc-Like and OIB-Like Magmas triggered by slab detachment in the Eastern Mexican Alkaline Province: Petrological evidence from the Cenozoic Sierra de San Carlos-Cruillas Complex Tamaulipas. J Petrol 63(5):27
Frost B, Frost C, Anderson J, Barnes C, Wilson M. (2019) A more informative way to name plutonic rocks — Comment by Frost et al. GSA Today 29
Frost BR, Frost CD (2008) A Geochemical Classification for Feldspathic Igneous Rocks. J Petrol 49:1955–1969
Gard M, Hasterok D, Halpin JA (2019) Global whole-rock geochemical database compilation. Earth Syst Sci Data 11:1553–1566
Gentleman RC, Carey VJ, Bates DM, Bolstad B, Dettling M, Dudoit S, Ellis B, Gautier L, Ge Y, Gentry J, Hornik K, Hothorn T, Huber W, Iacus S, Irizarry R, Leisch F, Li C, Maechler M, Rossini AJ, Sawitzki G, Smith C, Smyth G, Tierney L, Yang JY, Zhang J (2004) Bioconductor: open software development for computational biology and bioinformatics. Genome Biol 5:R80
Glazner AF (1984) A short CIPW norm program. Comput Geosci 10:449–450
Glazner AF, Bartley JM, Coleman DS (2019) A more informative way to name plutonic rocks. GSA Today 29:4–10
González-Guzmán R (2016) NORRRM: A free software to calculate the CIPW Norm. Open J Geol 06:30–38
Gottini VG (1968) The TiO2 frequency in volcanic rocks. Geol Rundsch 57:930–935
Gündüz M, Asan K (2021) PetroGram: An excel-based petrology program for modeling of magmatic processes. Geosci Front 12:81–92
Harnois L (1988) The CIW index: a new chemical index of weathering. Sediment Geol 55:319–322
Hughes CJ, Hussey EM (1979) Standardized procedure for presenting corrected Fe2O3/FeO ratios in analyses of fine grained mafic rocks. Neues Jahrb Mineral 12:570–572
Irvine TN, Baragar WRA (1971) A guide to the chemical classification of the common volcanic rocks. Can J Earth Sci 8:523–548
Janoušek V, Farrow CM, Erban V (2006) Interpretation of Whole-rock geochemical data in igneous geochemistry: introducing geochemical data toolkit (GCDkit). J Petrol 47:1255–1259
Johannsen A (1931) A descriptive petrography of the igneous rocks: volume one 1: introduction, textures classifications and glossary. Nature 129:3261
Jones WR, Rock L, Wesch A, Marzusch E, Low M (2022) Groundwater spatiotemporal data analysis tool: case studies, new features and future developments. Groundwater Monit Rem 42(3):14–22
Kackstaetter UR (2014) SEDMIN - Microsoft Excel™ spreadsheet for calculating fine-grained sedimentary rock mineralogy from bulk geochemical analysis. Central Eur J Geosci 6:170–181
Kelsey CH (1965) Calculation of the C.I.P.W. norm. Miner Mag J Miner Soc 34:276–282
Kuno H (1959) Origin of cenozoic petrographic provinces of Japan and surrounding areas. Bulletin Volcanologique 20:37–76
Le Bas MJ, Le Maitre RW, Streckeisen A, Zanettin B (1986) A chemical classification of volcanic rocks based on the total alkali-silica diagram. J Petrol 27:745–750
Le Maitre RW (1976) Some problems of the projection of chemical data into mineralogical classifications. Contrib Miner Petrol 56:181–189
Le Maitre RW, Streckeisen A, Zanettin B, le Bas MJ, Bonin B, Bateman P (2002) Igneous rocks: a classification and glossary of terms: recommendations of the International Union of Geological Sciences Subcommission on the Systematics of Igneous Rocks. Cambridge University Press
Maniar PD, Piccoli PM (1989) Tectonic discrimination of granitoids. Geol Soc Am Bull 101:635–643
Mathieu L, Trépanier S, Daigneault R (2016) CONSONORM_HG: a new method of norm calculation for mid- to high-grade metamorphic rocks. J Metamorph Geol 34:1–15
Merodio JC, Spalletti LA, Bertone LM (1992) A FORTRAN program for the calculation of normative composition of clay minerals and pelitic rocks. Comput Geosci 18:47–61
Middlemost EAK (1989) Iron oxidation ratios, norms and the classification of volcanic rocks. Chem Geol 77:19–26
Middlemost EAK (1991) Towards a comprehensive classification of igneous rocks and magmas. Earth-Sci Rev 31:73–87
Nesbitt HW, Young GM (1982) Early proterozoic climates and plate motions inferred from major element chemistry of lutites. Nature 299:715–717
Paktunc AD (1998) MODAN: an interactive computer program for estimating mineral quantities based on bulk composition. Comput Geosci 24:425–431
Peacock MA (1931) Classification of igneous rock series. J Geol 39:54–67
Poldervaart A, Parker AB (1964) The crystallization index as a parameter of igneous differentiation in binary variation diagrams. Am J Sci 262:281–289
Portnyagin MV, Ponomareva VV, Zelenin EA, Bazanova LI, Pevzner MM, Plechova AA, Rogozin AN, Garbe-Schönberg D (2020) TephraKam: Geochemical database of glass compositions in tephra and welded tuffs from the Kamchatka volcanic arc (northwestern Pacific). Earth Syst Sci Data 12:469–486
Prohaska T, Irrgeher J, Benefield J, Böhlke JK, Chesson LA, Coplen TB, Ding T, Dunn PJH, Gröning M, Holden NE, Meijer HAJ, Moossen H, Possolo A, Takahashi Y, Vogl J, Walczyk T, Wang J, Wieser ME, Yoneda S, Zhu XK, Meija J (2022) Standard atomic weights of the elements 2021 (IUPAC Technical Report). Pure Appl Chem 94:573–600
Pruseth KL (2009a) Calculation of the CIPW norm: new formulas. J Earth Syst Sci 118:101–113
Pruseth KL (2009b) MATNORM: Calculating NORM using composition matrices. Comput Geosci 35:1785–1788
Core Team R (2022) R: A language and environment for statistical computing
Rickwood PC (1989) Boundary lines within petrologic diagrams which use oxides of major and minor elements. Lithos 22:247–263
Rittmann, A., 1973. Stable mineral assemblages of igneous rocks: A method of calculation. Springer Science & Business Media.
Rollinson HR, Pease V (2021) Using geochemical data: to understand geological processes. Cambridge University Press
Rosen OM, Abbyasov AA, Tipper JC (2004) MINLITH - An experience-based algorithm for estimating the likely mineralogical compositions of sedimentary rocks from bulk chemical analyses. Comput Geosci 30:647–661
Shand SJ (1948) Eruptive Rocks: Their Genesis, Composition, Classification, and Their Relation to Ore Deposits, with a Chapter on Meteorites. S J Shand J Geol 56:593–593
Streckeisen A (1976) To each plutonic rock its proper name. Earth-Sci Rev 12:1–33
Streckeisen A (1978) IUGS Subcommission on the Systematics of Igneous Rocks. Classification and Nomenclature of Volcanic Rocks, Lamprophyres, Carbonatites and Melilite Rocks. Recommendations and Suggestions. Neues Jahrbuch Fur Mineralogie Stuttgart Abhandlungen 143:1–14
Stuckless JS, (1983) A program in Hewlett-Packard BASIC for calculation of Mesonormative minerals using HP-Series 80 computers and VISICALC electronic worksheet. US Department of the Interior, Geological Survey
Thornton CP, Tuttle OF (1960) Chemistry of igneous rocks–[Part] 1, Differentiation index. Am J Sci 258:664–684
Usdansky SI (1986) Peranorm: A basic program to calculate a modal norm for peraluminous granitoids. Comput Geosci 12:13–20
Verma SP, Rivera-Gómez MA (2013) Computer programs for the classification and nomenclature of igneous rocks. Epis J Int Geosci 6(2):115–124
Verma MP, Aguilar-Y-Vargas VH, Verma SP (1986) A program package for major-element data handling and CIPW norm calculation. Comput Geosci 12:381–399
Verma SP, Torres-Alvarado IS, Sotelo-Rodríguez ZT (2002) SINCLAS: Standard igneous norm and volcanic rock classification system. Comput Geosci 28:711–715
Verma SP, Torres-Alvarado IS, Velasco-Tapia F (2003) A revised CIPW norm. Schweiz Mineral Petrogr Mitt 83:197–216
Vermeesch P (2018) IsoplotR: A free and open toolbox for geochronology. Geosci Front 9:1479–1493
Williams MJ, Schoneveld LE, Mao Y-J, Klump J, Gosses J, Dalton H, Bath A, Barnes SJ (2020) pyrolite: Python for geochemistry. J Open Source Softw 5(2314):1–5
Wagner WH (2022) Normative mineralogy especially for shales, slates, and phyllites. Mineralogy. https://doi.org/10.5772/intechopen.102346
Wright JB (1969) A simple alkalinity ratio and its application to questions of non-orogenic granite genesis. Geol Mag 106:370–384
Yegorov DG, Korobeinikov AN, Dubrovskii MI (1998) CHEMPET - Calculation for the chemical systematics of igneous rocks based on the CIPW norm. Comput Geosci 24:1–5
Yu QY, Bagas L, Yang PH, Zhang D (2019) GeoPyTool: A cross-platform software solution for common geological calculations and plots. Geosci Front 10:1437–1447
Zhou J, Li X (2006) GeoPlot: An excel VBA program for geochemical data plotting. Comput Geosci 32:554–560
Acknowledgements
This work was not supported by any funding but is part of the UABC undergraduate project: “Proyecto de Vinculación con Valor Curricular”. We thank all the CRAN maintainers. Mesut Gündüz is especially thanked for suggesting improvements to shinyNORRRM software and in the draft manuscript. An anonymous reviewer is also thanked for their time and comments.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
González-Guzmán, R., Elizondo-Pacheco, L.A., González-Roque, A. et al. shinyNORRRM: A Cross-Platform Software to Calculate the CIPW Norm. Math Geosci 55, 563–577 (2023). https://doi.org/10.1007/s11004-023-10052-2
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11004-023-10052-2