Abstract
Reproducible analytical instrumentation system performance is critical for mass spectrometry, particularly metabolomics, aptly named system suitability testing. We identified a need based on literature report that stated only two percent of papers performed system suitability testing. To address that need, we report MassQLab, built upon open-source, vendor-agnostic software called the mass spectrometry query language (MassQL). MassQL, implemented in MassQLab, provides freedom for researchers to choose their analyte/s, mass spectrometry system (including liquid chromatography – mass spectrometry), and metrics of performance. The queries upon which MassQLab relies can be written, reused, and shared amongst researchers. In this report, we describe the use of MassQLab, demonstrate common metrics of performance ( i.e. extracted ion chromatograms), demonstrate uncommon metrics ( i.e. MS/MS product ion spectra), and discuss insights gained about performance – including issues requiring correction prior to sample analysis.
Introduction
The quality of mass spectrometry (MS) data is critical and should be assessed at different stages of the research process, such as sample processing, data acquisition, and data analysis. Differences in acquisition performance can be introduced from environmental conditions (e.g. temperature), calibration, and system condition (cleanliness). The differences, if left unaddressed, can result in the incorrect interpretation of data such as inappropriately reporting amounts or misidentification of analytes. System suitability testing (SST) aims to assess the performance of data acquisition systems prior to data collection [1]. Multiple evaluation options exist including manual data inspection or use of software. Such evaluations may be limited to specific aspects of the overall measurement, such as MS mass accuracy or LC retention time, or complete systems (LC-MS). [2-5]. The variety of published approaches mirrors the numerous MS and hyphenated MS system configurations and multiple acquisition strategies (e.g. data dependent acquisition). The conceptualization of system suitability is thorough and mature; yet the execution remains limited. Broeckling et al. reported that only 2% of 109 surveyed untargeted metabolomics papers used system suitability samples [6]. The authors believe that one factor is the lack of easy to implement software (with minimal coding experience required) that is universally applicable (different instrument vendors). A new language developed for MS, dubbed the Mass Spectrometry Query Language (MassQL) [7], has been recently reported. The open-source, flexible, and vendor agnostic attributes of MassQL make it well suited for use in system suitability assessment. Further, MassQL can be used in common coding languages such as R and python. One prerequisite is that vendor-specific file formats must be converted into an open-source MS file format ( i.e. .mzML). We sought to take advantage of the attributes of MassQL and implemented them into a package called MassQLab. In this report we demonstrate the implementation of MassQL via MassQLab for system suitability testing using a mixture of 6 deuterated acylcarnitine standards on an ultra-high performance LC – high resolution mass spectrometer (UHPLC-HRMS).
Materials and methods
Materials and SST Mixture
Chemical standards were purchased from Cayman Chemical to create the quality control (QC) mixture: acetyl-carnitine-d 3 (26564), propionyl-carnitine-d 3 (26579), valeryl-carnitine-d 3 (27871), octanoyl-carnitine-d 3 (26577), lauroyl-carnitine-d 3 (26571), and oleoyl-carnitine-d 3 (26578). Acetonitrile (Optima TM LC-MS grade, Fisher Chemical), methanol (Optima TM LC-MS grade, Fisher Chemical), and water (HPLC-grade, Fisher Chemical), and acetic acid (LiChropur® HPLC grade, Sigma-Aldrich) were used. The SST mixture was prepared to a final concentration of 1 µg/mL via the addition of each deuterated standard into 100 mL volumetric glassware and dilution to the mark. The solution was mixed via inversion thoroughly. 1 mL aliquots were transferred to 2 mL autosampler vials (12 mm x 32 mm height vial, 12 mm screw cap, and PTFE/silicone septa, Agilent) and dried via centrifugal evaporation (Genevac EZ-2 Plus, SP Scientific). Vials containing dried SST mixture were capped and stored at -80°C. Dried SST mixture were resuspended via the addition of 1 mL of 2% acetonitrile – 98% water v/v and vortexed for
Mass Spectrometry Method
Samples were analyzed using an ultra-high performance liquid chromatograph (Vanquish Horizon, Thermo Scientific) coupled to a high-resolution mass spectrometer (Orbitrap Fusion or Fusion Lumos, Thermo Scientific). LC-MS and LC-MS/MS data were acquired on the SST mixture in positive ionization mode. Prior to measurement, the mass spectrometer was calibrated using FlexMix (Thermo Scientific) following manufacture directions. Chromatographic separation was carried out on a F5 analytical column (2.1 x 100 mm, 100 Å, 2.6 µm, Phenomenex) with corresponding guard cartridge. The column was maintained at 30°C during separation with solvent pre-heater. Gradient elution was performed after an initial period of isocratic elution using water with 0.1% acetic acid v/v (A) and acetonitrile with 0.1% acetic acid v/v (B). Separation was performed as follows: 0% B from 0 - 2.0 min, 0% to 100% B from 2.0 to 10.5 min, 100% B from 10.5 to 12.0 min, 100% to 0% B from 12.0 to 13.0 min, 0% B from 13.0 to 20.0 min. The flow rate was 0.5 mL min -1 . Ionization was performed via heated electrospray ionization (NG Ion Max, Thermo Scientific). The source parameters were as follows: spray voltage of +4000 V, sheath gas of 50 arbitrary units (arb), auxiliary gas of 10 arb, sweep gas of 1 arb, ion transfer tube at 325°C, vaporizer at 350°C. MS data were acquired at 120,000 resolution from m/z 100-1000 with an RF lens of 60% and maximum injection time of 50 ms. MS/MS data were acquired at 30,000 resolution using an isolation width of 1.5 ( m/z ) using collision-induced dissociation (CID) and higher-energy collision-induced dissociation (HCD). MS/MS spectra were obtained using 10, 20, 30, 40, 50, and 60 normalized collision energy sequentially with HCD and then CID (q = 0.25, activation = 10 ms).
Data Processing with MassQLab
Raw data files (.raw) were converted to mzML format using MSConvert (https://proteowizard.sourceforge.io/) with default settings. A Jupyter notebook implementation of MassQL was developed in-house to process data in mzML format (MassQLab). MassQLab is a Python-based Jupyter notebook implementation of MassQL. Whereas MassQL provides the language to apply one query to one file, MassQLab uses MassQL to apply a series of queries to a series of files and tabulates and visualizes the results. MassQLab was developed using Python 3.9 and is made publicly available (https://github.com/JohnsonDylan/MassQLab). A standalone executable version of MassQLab is being developed for future release. A MassQL query operates using a structured query language (SQL) but with terms familiar to mass spectrometrists ( Table 1 ). Note, that once created a query can be reused and shared. Users should refer to MassQL documentation for specific instruction on composing queries [8]. MassQLab uses a configuration file that defines (1) the directory where mzML files to be processed are stored (mzML directory) and (2) the filepath of query file (.xlsx or .json) that contains the arguments that compose each named MassQL query. MassQLab applies each query in the query file to each mzML file in the mzML directory. The area of the peak (if present) for each query run is calculated and tabulated for export as an .xlsx file. The results include several graphical outputs for quick review as well as tabulated data. A resultant PDF file is also generated that contains plots of the results for each named MassQL query. Users should refer to the package documentation for detailed instruction on MassQLab operation.
Results
and Discussion
MassQLab Facilitates System Suitability Testing
MassQLab removes barriers to system suitability implementation by allowing users to select standards, mass spectrometer, hyphenated analysis techniques (e.g. LC or GC), and data acquisition method. The only requirement is generating the MassQL query for the specified output. As an illustrative use case, we utilized MassQLab in the development of a system suitability testing protocol in our laboratory. Given the nature of our research, it was desirable to use a set of standards mirroring our focus on endogenous metabolite measurement. We chose a set of deuterated acylcarnitines as they were commercially available, not expected in biological samples, and expected to span the chromatographic and mass range of our LC-MS method. The conventional approach to assessing the SST mix (deuterated acylcarnitines) was to assess raw LC-MS files (.raw) using vendor-supported software (Freestyle, Thermo). One would calculate the monoisotopic m/z for each ion in the SST and generate an extracted ion chromatogram (EIC). The retention time (RT), peak shape, and other metrics of chromatographic performance can be evaluated subjectively or objectively via manual compilation of historical values. The mass spectrum, typically at the apex of the chromatographic elution, of each chemical can likewise be interpreted for the mass accuracy, isotope pattern (if applicable), and other mass-to-charge value ( m/z ) present in the spectrum (e.g. in-source fragments). And if tandem mass spectrometry (MS/MS or MS2) is performed, then that information, such as a MS/MS product ion spectrum, can be manually reviewed and compared with prior data. The MassQLab workflow reduces many of these manual steps and evaluations. SST mixture data were acquired over the course of approximately four months on two different instrument platforms (Vanquish Horizon - Orbitrap Fusion and Vanquish Horizon - Orbitrap Fusion Lumos) running identical chromatographic methods. Figure 1 displays two examples of MassQLab graphical results of our SST mixture. Figure 1A illustrates the overlaid EIC output for our SST mixture with each EIC generated as the result of one MassQL query, Table 1 . This represents what users may expect to see after checking system performance as compared to internal laboratory historical data with MassQLab immediately prior to initiating an experiment. From the tabulated outputs, objective measures of comparison can be computed. Figure 1B displays the result of one MassQL query over the 4-month period. In this case, the monoisotopic m/z of the precursor of valeryl-carnitine-d 3 is 249.1888 which is reflected in the query (MS1MZ = 249.1888) and the mass tolerance window of 2.5 ppm (TOLERANCEPPM = 2.5). We further refined this query by selecting a retention time window with a minimum of 4.13 min (RTMIN = 4.13) and maximum of 4.46 min (RTMAX = 4.46). In the case of analysis date, 241021, there was a noted RT shift from approximately 4.3 min to 4.4 min. While small and within the tolerances set by the user, it would visually indicate a deviation from prior values for follow up evaluation. All values and tolerances are user determined to match their application and reflected, consistently, in the MassQL query. The output implicitly assesses mass accuracy as values would not be returned from MassQLab if they measured beyond the tolerance specified in the MassQL query. Note, the intensity and peak shape were not evaluated over this period as we discovered degradation issues of our SST mixture – should not be used for more than 1 week stored at 4ºC – an unintentional discovery.
Figure 1. (A) Illustrative MassQLab EIC overlay of deuterated acylcarnitines in SST mixture. (B) EIC overlay for valeryl-carnitine-d 3 across multiple months; acquisition date indicated in legend format YYMMDD.
MassQLab Assessment of MS/MS Spectral Consistency
One important, and not often assessed, aspect of system suitability is MS/MS consistency. This is particularly important when using MS/MS for feature annotation in untargeted mass spectrometry experiments, e.g. metabolomics. As a proof-of-concept, we used MassQLab to evaluate MS/MS data obtained using DDA. We analyzed our SST mixture over a 5-day period, once daily, on an UHPLC-HRMS platform (Orbitrap Fusion) using multiple collision energies as well as resonant and non-resonant excitation methods, collision-induced dissociation (CID) and higher-energy collision-induced dissociation (HCD), respectively.
Acylcarnitines have consistent fragmentation patterns resulting from common substructures [9] described a common product ion of m/z 85.0284 as well as the consistent neutral loss of trimethylamine or its deuterated analogs. The generation of the anticipated product ions and neutral losses are energy dependent and anticipated to change between CID and HCD, Figure 2A-2B . The location of the deuteration alters these values with some of the SST mixture deuterations occurring on the trimethylamine substructure and others occurring on the acyl fatty acid chain. We created MassQL queries for the 6 deuterated acylcarnitines in the SST mixture, Table 1 ; specifically, we chose to write queries for the anticipated product ions, but one could equivalently write neutral loss queries.
The results of analyzing the 5-day DDA data using MassQLab are plotted in Figure 2 . To improve comparisons, we normalized the product ion intensity by the intensity of the product ion scan. This accounts for the variance in MS/MS product ion spectra acquisition, and correspondingly total signal, during chromatographic elution. The mean and standard deviation were computed and plotted in Figure 2C . The m/z 85.0284, shared by all SST acylcarnitines, values were precise ( i.e. relative standard deviation of 2.85% was computed for acetylcarnitine-d 3, HCD at 30 NCE) with some measurement being more variable in CID. Consistent trends were observed, m/z 85.0824 signal increased logarithmically for CID and HCD. CID generated lesser signal of m/z 85.0824 compared to HCD at every normalized collision energy (NCE) tested. Contrastingly, the observation of product ions originating from the neutral loss of trimethylamine (or the deuterated analog) were differential between CID and HCD ( Figure 2D ). CID at NCE above 30 yielded more signal, whereas HCD yielded nearly undetectable levels of signal. Our data would suggest, that for identification the generation of two characteristic fragmentation ions via CID at >30 NCE is superior for this set of deuterated acylcarnitines while quantitation of a single product ion, m/z 85.0824, maybe superior in HCD.
Few publications have evaluated the consistency of MS/MS data in the context of system suitability. Our data would suggest a high degree of reproducibility and that this evaluation is not warranted in each study. Particularly, the DDA data limited the number of MS1 scans obtained and therefore impacted the accuracy of interpretation of peak shape and area. Reducing the number of MS/MS scans could improve MS1 data collection in these experiments.
Figure 2. (A) Illustrative MS/MS product ion spectrum for observed m/z 207.1417 (acetyl-carnitine-d 3 ) obtained by HCD compared to (B) CID. (C) Intensity of m/z 85.0284 product ion or (D) intensity of product ion after neutral loss of trimethylamine or deuterated analog normalized by product ion scan intensity obtained using MassQLab over 5 consecutive days of analysis.
MassQLab Tracking of Historical Performance and Real-Time Implementation
We demonstrated the use of MassQLab in assessing historical instrument performance by randomly selecting eight system suitability tests from two UHPLC-MS instruments utilized by several different scientists spanning 4 months. Notably the same chromatographic and mass spectrometry methods were used, adapting the instrument configuration (e.g. tubing length) to match differences in flow path, diameters, and materials (assessed by elution time of the SST mixture).
We assessed the chromatographic performance via retention time as an illustrative example, tabulated in Table S1 . The average of relative standard deviation for SST mixture was 1.90% ( Figure S2 ). We found this value to be acceptable given the number of variables which were not controlled for in this illustrative case, such as different personnel, different column and guard column, and different LC solvents. In the course of this work, we discovered that the components of the SST mixture degraded over time, namely oleoylcarnitine-d 3, and adversely affected the abundance comparisons. A loss of analyte abundance was identified using MassQLab, initially across the 4-month study. Expanding the search to additional time points ( Figure S3A ) revealed a consistent pattern of degradation, and the need for stricter implementation of consistent SST mixture storage conditions and use limitations.
Malfunctions in system performance and user errors, an inevitability, are readily detected with MassQLab outputs. Examples such as defective columns or incorrect chromatographic method are displayed in Figure S3B-3C . In the first example, we were able to recognize a lot-to-lot variance that shifted SST mixture retention times (Figure S3B ). In a second example, MassQLab results, specifically the chromatographic elution, were erroneous ( Figure S3C ). The SST mixture elution times were outside of anticipated ranges compared to historical data. Upon review, it was recognized that an incorrect chromatographic method had been used. Using our SST strategy empowered by MassQLab, we successfully recognized and were able to correct performance issues prior to initiating full experimental analysis.
Conclusion
MassQLab is a flexible SST method that reduces barriers to SST implementation, such as personnel expertise level and multi-vendor laboratory operations. This is accomplished by removing the inefficiencies of learning multiple vendor-specific software, replacing it with a universal and flexible language, MassQL, which can be used on any mass spectrometry platform. We demonstrate the operation and function of MassQLab and discussing observations learned during its implementation. Importantly, MassQLab possess all the basic functions required of a MS software tool, such as EIC generation. Further, we assessed MS/MS data acquired over multiple days, an uncommon assessment, and found it unnecessary for most SST use cases. We demonstrated how historical data can be assessed to retrospectively discover patterns, but more importantly be used to identify instrument performance issues priors to data collection. In future directions, we plan to refine the performance of MassQLab and expand upon the functions available to users.
Acknowledgments
This research was supported by the Intramural Research Program of the NIH, National Institute of Environmental Health Sciences (ZIC ES103363). The authors thank Dr. Kirsten Overdahl, Dr. Kaylie Kirkwood-Donelson, Ruthie Stokes, and Danielle Lehman for their expertise and assistance. Further, the authors thank Dr. Mingxun Wang for support and discussion of MassQL. Table 1. Tabulated Information and MassQLab Queries for Deuterated Acylcarnitines
| Acetyl-carnitine-d 3 | C 9 H 14 D 3 NO 4 | 207.1419 | 1.13 | 148.0684, 85.0284 | QUERY scaninfo(MS1DATA) FILTER MS1MZ= 207.1419:TOLERANCEPPM=2.5 AND RTMIN=1.11 AND RTMAX=1.44 | QUERY scaninfo(MS2DATA) WHERE MS2PREC=207.1419:TOLERANCEPPM=2.5 AND RTMIN=1.11 AND RTMAX=1.44 FILTER MS2PROD=85.0284:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=207.1419:TOLERANCEPPM=2.5 AND RTMIN=1.11 AND RTMAX=1.44 FILTER MS2PROD=148.0684:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=207.1419:TOLERANCEPPM=2.5 AND RTMIN=1.11 AND RTMAX=1.44 |
| Propionyl-carnitine-d 3 | C 10 H 16 D 3 NO 4 | 221.1575 | 3.35 | 159.0650, 85.0284 | QUERY scaninfo(MS1DATA) FILTER MS1MZ= 221.1575:TOLERANCEPPM=2.5 AND RTMIN=3.28 AND RTMAX=3.61 | QUERY scaninfo(MS2DATA) WHERE MS2PREC=221.1575:TOLERANCEPPM=2.5 AND RTMIN=3.28 AND RTMAX=3.61 FILTER MS2PROD=85.0284:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=221.1575:TOLERANCEPPM=2.5 AND RTMIN=3.28 AND RTMAX=3.61 FILTER MS2PROD=159.0626:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=221.1575:TOLERANCEPPM=2.5 AND RTMIN=3.28 AND RTMAX=3.61 |
| Valeryl-carnitine-d 3 | C 12 H 20 D 3 NO 4 | 249.1888 | 4.24 | 190.1154, 85.0284 | QUERY scaninfo(MS1DATA) FILTER MS1MZ= 249.1888:TOLERANCEPPM=2.5 AND RTMIN=4.13 AND RTMAX=4.46 | QUERY scaninfo(MS2DATA) WHERE MS2PREC=249.1888:TOLERANCEPPM=2.5 AND RTMIN=4.13 AND RTMAX=4.46 FILTER MS2PROD=85.0284:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=249.1888:TOLERANCEPPM=2.5 AND RTMIN=4.13 AND RTMAX=4.46 FILTER MS2PROD=190.1153:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=249.1888:TOLERANCEPPM=2.5 AND RTMIN=4.13 AND RTMAX=4.46 |
| Octanoyl-carnitine-d 3 | C 15 H 26 D 3 NO 4 | 291.2358 | 5.83 | 229.1435, 85.0284 | QUERY scaninfo(MS1DATA) FILTER MS1MZ= 291.2358:TOLERANCEPPM=2.5 AND RTMIN=5.74 AND RTMAX=6.07 | QUERY scaninfo(MS2DATA) WHERE MS2PREC=291.2358:TOLERANCEPPM=2.5 AND RTMIN=5.74 AND RTMAX=6.07 FILTER MS2PROD=85.0284:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=291.2358:TOLERANCEPPM=2.5 AND RTMIN=5.74 AND RTMAX=6.07 FILTER MS2PROD=229.1409:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=291.2358:TOLERANCEPPM=2.5 AND RTMIN=5.74 AND RTMAX=6.07 |
| Lauroyl-carnitine-d 3 | C 19 H 34 D 3 NO 4 | 347.2984 | 7.49 | 183.1744, 85.0284 | QUERY scaninfo(MS1DATA) FILTER MS1MZ= 347.2984:TOLERANCEPPM=2.5 AND RTMIN=7.44 AND RTMAX=7.77 | QUERY scaninfo(MS2DATA) WHERE MS2PREC=347.2984:TOLERANCEPPM=2.5 AND RTMIN=7.44 AND RTMAX=7.77 FILTER MS2PROD=85.0284:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=347.2984:TOLERANCEPPM=2.5 AND RTMIN=7.44 AND RTMAX=7.77 FILTER MS2PROD=285.2035:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=347.2984:TOLERANCEPPM=2.5 AND RTMIN=7.44 AND RTMAX=7.77 |
| Oleoyl-carnitine-d 3 | C 25 H 44 D 3 NO 4 | 429.3766 | 9.17 | 367.2804, 85.0284 | QUERY scaninfo(MS1DATA) FILTER MS1MZ= 429.3766:TOLERANCEPPM=2.5 AND RTMIN=9.25 AND RTMAX=9.59 | QUERY scaninfo(MS2DATA) WHERE MS2PREC=429.3766:TOLERANCEPPM=2.5 AND RTMIN=9.25 AND RTMAX=9.59 FILTER MS2PROD=85.0284:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=429.3766:TOLERANCEPPM=2.5 AND RTMIN=9.25 AND RTMAX=9.59 FILTER MS2PROD=367.2817:TOLERANCEPPM=10 QUERY scaninfo(MS2DATA) WHERE MS2PREC=429.3766:TOLERANCEPPM=2.5 AND RTMIN=9.25 AND RTMAX=9.59 |
References
1.
[1] Broadhurst, D., et al. Guidelines and considerations for the use of system suitability and quality control samples in mass spectrometry assays applied in untargeted clinical metabolomic studies. Metabolomics . 2018;14(6):72.
[2] Dmitrenko A, Reid M and Zamboni N. A system suitability testing
platform for untargeted, high resolution mass spectrometry. Front Mol Biosci . 2022 Oct 11:9:1026184.
[3] Wiggins, D. E. System Suitability in an Optimized HPLC System. J Liq Chromatogr. 1991 14(16–17), 3045–3060. https://doi.org/10.1080/01483919108049375 [4] Dunn W.B., et al. Procedures for large-scale metabolic profiling of serum and plasma using gas chromatography and liquid chromatography coupled to mass spectrometry. Nat Protoc . 2011 Jun
30;6(7):1060-83.
[5] Dudzik D, Barbas-Bernardos C, García A, Barbas C. Quality
assurance procedures for mass spectrometry untargeted metabolomics. a
review. J Pharm Biomed Anal . 2018 Jan 5:147:149-173.
[6] Broeckling, C.D., et al. Current Practices in LC-MS Untargeted
Metabolomics: A Scoping Review on the Use of Pooled Quality Control
Samples. Anal Chem . 2023 Dec 26;95(51):18645-18654.
[7] Jarmusch A, et al. A Universal Language for Finding Mass
Spectrometry Data Patterns. bioRxiv . 2022 Preprint.
[8] Mingxun, W. (2025, March 6) MassQL Documentation.
https://mwang87.github.io/MassQueryLanguage_Documentation/
[9] Smith E.H., Matern D. Acylcarnitine analysis by tandem mass
spectrometry. Curr Protoc Hum Genet . 2010 Jan:Chapter 17:Unit
17.8.1-20.
Information & Authors
Information
Version history
Peer review timeline
Published
Rapid Communications in Mass Spectrometry
Version of Record2 Sep 2025Published
Copyright
This work is licensed under a Non Exclusive No Reuse License.
Collection
Keywords
Authors
Metrics & Citations
Metrics
Article Usage
754views
314downloads
Citations
Download citation
Heather L. Winter, Dylan Johnson, Alan K. Jarmusch.
Open-source System Suitability: Mass Spectrometry Query Language Lab (MassQLab). Authorea. 31 March 2025.
DOI: https://doi.org/10.22541/au.174344954.49264250/v1
DOI: https://doi.org/10.22541/au.174344954.49264250/v1
If you have the appropriate software installed, you can download article citation data to the citation manager of your choice. Simply select your manager software from the list below and click Download.
For more information or tips please see 'Downloading to a citation manager' in the Help menu.
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.