The formulas below apply to releases 3.1+ and may not be applicable to older releases.

Gannet quantifies metabolite levels in different ways at various points in the pipeline depending on what reference signals are present and if structural image data are available. It is important to understand what the underlying quantification formulas are for the interpretation and reporting of results.

A note on units of concentration

There is a perennial issue surrounding how quantified in vivo MRS measurements should be expressed; that is, in what biochemical units (if any) they should be reported. In vivo MRS measurements can be, and have been, reported in molar, molal, and institutional units or as simple ratios. However, this makes interpreting and comparing such values, especially across published studies, highly challenging. While Gannet does apply a number of signal scaling factors to water-referenced metabolite measurements (that are required when reporting absolute concentrations), it is our philosophy that these measurements should be considered pseudo-absolute because accounting for all empirical signal scaling factors is impractical (even impossible) to permit truly absolute quantification. Thus, we denote our water-referenced metabolite measurements in institutional units (i.u.).

GannetFit

MRS_struct.out.vox1.(metab).ConcCr, MRS_struct.out.vox1.(metab).ConcCho, and MRS_struct.out.vox1.(metab).ConcNAA are simple signal integral ratios of the metabolite of interest and the metabolite reference signals Cr, Cho, and NAA, respectively:

\[C = \frac{I_{M}}{I_{ref}}\]

If a water reference is provided, MRS_struct.out.vox1.(metab).ConcIU is also calculated. It is defined as the signal integral ratio of the metabolite of interest and water reference scaled by a number of global signal scaling factors:

\[ C_{corr} = \frac{I_{M}}{I_{W}}\cdot \frac{H_{W}}{H_{M}}\cdot \frac{MM}{\kappa}\cdot C_{W}\cdot W_{vis}\cdot \frac{\exp\left(-\frac{TE_{W}}{T_{2W}}\right)\left[1-\exp\left(-\frac{TR_{W}}{T_{1W}}\right)\right]} {\exp\left(-\frac{TE_{M}}{T_{2M}}\right)\left[1-\exp\left(-\frac{TR_{M}}{T_{1M}}\right)\right]} \]

where:

Parameter Description Default value
\(C_{corr}\) Estimated metabolite concentration in i.u.
\(I_{M}\) Metabolite signal integral
\(I_{W}\) Water signal integral
\(H_{M}\) Number of 1H protons that give rise to the metabolite signal Metabolite dependent; see GannetFit.m for default values
\(H_{W}\) Number of 1H protons that give rise to the water signal 2
\(MM\) Correction factor for the contribution of the co-edited macromolecule signal in the metabolite signal 0.45 for GABA editing and 1 for all other edited metabolites
\(\kappa\) Editing efficiency Acquisition dependent; 0.5 for GABA editing
\(C_{W}\) Molal concentration of pure water 55.51 mol/kg
\(W_{vis}\) Approximate relative MR visibility of water in brain tissue 0.651
\(TE_{W}\) Echo time of the water reference acquisition Acquisition dependent
\(TR_{W}\) Repetition time of the water reference acquisition Acquisition dependent
\(TE_{M}\) Echo time of the metabolite acquisition Acquisition dependent
\(TR_{M}\) Repetition time of the metabolite acquisition Acquisition dependent
\(T_{2W}\) Average transverse relaxation time of water in GM and WM 1.100 s2
\(T_{1W}\) Average longitudinal relaxation time of water in GM and WM 0.095 s2
\(T_{2M}\) Transverse relaxation time of metabolite Metabolite dependent; see GannetFit.m for default values
\(T_{1M}\) Longitudinal relaxation time of metabolite Metabolite dependent; see GannetFit.m for default values

GannetSegment

When segmenting structural images to obtain voxel volume fractions of GM, WM, and CSF, and if a water reference is available, a CSF-only correction is applied to the ConcIU measurement.

MRS_struct.out.vox1.(metab).ConcIU_CSFcorr:

\[ C_{CSFcorr} = \frac{I_{M}}{I_{W}}\cdot \frac{H_{W}}{H_{M}}\cdot \frac{MM}{\kappa}\cdot C_{W}\cdot W_{vis}\cdot \frac{\exp\left(-\frac{TE_{W}}{T_{2W}}\right)\left[1-\exp\left(-\frac{TR_{W}}{T_{1W}}\right)\right]} {\exp\left(-\frac{TE_{M}}{T_{2M}}\right)\left[1-\exp\left(-\frac{TR_{M}}{T_{1M}}\right)\right]}\cdot \frac{1}{1-f_{CSF}} \]

where \(C_{CSFcorr}\) is the estimated metabolite concentration in i.u. corrected for CSF and \(f_{CSF}\) is the voxel volume fraction of CSF.

GannetQuantify

GannetQuantify.m goes a step further and corrects for partial volume effects that attenuate the observed water and metabolite signals. There are two approaches that are employed. The first is termed the Gasparovic et al.3 method and the second is termed the Harris et al.4 method. Although similar, the difference between these approaches is that the Harris et al. method additionally accounts for intrinsic differences in metabolite concentrations in GM and WM.

The Gasparovic et al. method

MRS_struct.out.vox1.(metab).ConcIU_TissCorr:

\[ C_{TissCorr} = \frac{I_{M}}{I_{W}}\cdot \frac{H_{W}}{H_{M}}\cdot \frac{MM}{\kappa}\cdot C_{W}\cdot \frac{\sum_{i}^{GM,WM,CSF}f_{i}\beta_{i}\exp\left(-\frac{TE_{W}}{T_{2W,i}}\right)\left[1-\exp\left(-\frac{TR_{W}}{T_{1W,i}}\right)\right]} {(1-f_{CSF})\exp\left(-\frac{TE_{M}}{T_{2M}}\right)\left[1-\exp\left(-\frac{TR_{M}}{T_{1M}}\right)\right]} \]

where:

Parameter Description Default value
\(C_{TissCorr}\) Estimated metabolite concentration in i.u. corrected for partial volume effects of water
\(f_{i}\) Voxel volume fraction of GM, WM, or CSF
\(\beta_i\) Relative MR visibility of water in GM, WM, or CSF 0.78, 0.65, and 0.971
\(T_{2W,i}\) Transverse relaxation time of water in GM, WM, or CSF 0.110, 0.0792, and 0.503 s2,5
\(T_{1W,i}\) Longitudinal relaxation time of water in GM, WM, or CSF 1.331, 0.832, and 3.817 s2,6

The Harris et al. method

MRS_struct.out.vox1.(metab).ConcIU_AlphaTissCorr:

\[ C_{AlphaCorr} = \frac{I_{M}}{I_{W}}\cdot \frac{H_{W}}{H_{M}}\cdot \frac{MM}{\kappa}\cdot \frac{\sum_{i}^{GM,WM,CSF}f_{i}C_{W,i}\exp\left(-\frac{TE_{W}}{T_{2W,i}}\right)\left[1-\exp\left(-\frac{TR_{W}}{T_{1W,i}}\right)\right]} {\exp\left(-\frac{TE_{M}}{T_{2M}}\right)\left[1-\exp\left(-\frac{TR_{M}}{T_{1M}}\right)\right]}\cdot \frac{1}{f_{GM}+\alpha{f_{WM}}} \]

where:

Parameter Description Default value
\(C_{AlphaCorr}\) Estimated metabolite concentration in i.u. corrected for partial volume effects of water and metabolite
\(C_{W,i}\) Molal concentration of water in GM, WM, or CSF 43.30, 36.08, and 53.84 mol/kg1,3
\(\alpha\) Ratio of intrinsic WM:GM metabolite concentrations Metabolite dependent; see GannetQuantify.m for default values

A modification of the Harris et al. method is also calculated where ConcIU_AlphaTissCorr is further scaled by the average voxel GM and WM composition of all datasets in a group.

MRS_struct.out.vox1.(metab).ConcIU_AlphaTissCorr_GrpNorm:

\[ C_{AlphaCorrNorm} = \frac{I_{M}}{I_{W}}\cdot \frac{H_{W}}{H_{M}}\cdot \frac{MM}{\kappa}\cdot \frac{\sum_{i}^{GM,WM,CSF}f_{i}C_{W,i}\exp\left(-\frac{TE_{W}}{T_{2W,i}}\right)\left[1-\exp\left(-\frac{TR_{W}}{T_{1W,i}}\right)\right]} {\exp\left(-\frac{TE_{M}}{T_{2M}}\right)\left[1-\exp\left(-\frac{TR_{M}}{T_{1M}}\right)\right]}\cdot \frac{\mu_{GM}+\alpha{\mu_{WM}}}{(f_{GM}+\alpha{f_{WM}})(\mu_{GM}+{\mu_{WM}})} \]

where:

Parameter Description
\(C_{AlphaCorrNorm}\) Estimated metabolite concentration in i.u. corrected for partial volume effects of water and metabolite and adjusted to the average voxel GM and WM composition across a group
\({\mu_{GM}}\) Group-averaged voxel volume fraction of GM
\({\mu_{WM}}\) Group-averaged voxel volume fraction of WM


References

1.
Ernst T, Kreis R, Ross BD. Absolute quantitation of water and metabolites in the human brain. I. Compartments and water. Journal of Magnetic Resonance, Series B. 1993;102(1):1-8. doi:10.1006/jmrb.1993.1055
2.
Wansapura JP, Holland SK, Dunn RS, Ball WS. NMR relaxation times in the human brain at 3.0 Tesla. Journal of Magnetic Resonance Imaging. 1999;9(4):531-538. doi:10.1002/(SICI)1522-2586(199904)9:4<531::AID-JMRI4>3.0.CO;2-L
3.
Gasparovic C, Song T, Devier D, et al. Use of tissue water as a concentration reference for proton spectroscopic imaging. Magnetic Resonance in Medicine. 2006;55(6):1219-1226. doi:10.1002/mrm.20901
4.
Harris AD, Puts NAJ, Edden RAE. Tissue correction for GABA-edited MRS: Considerations of voxel composition, tissue segmentation, and tissue relaxations. Journal of Magnetic Resonance Imaging. 2015;42(5):1431-1440. doi:10.1002/jmri.24903
5.
Piechnik SK, Evans J, Bary LH, Wise RG, Jezzard P. Functional changes in CSF volume estimated using measurement of water T2 relaxation. Magnetic Resonance in Medicine. 2009;61(3):579-586. doi:10.1002/mrm.21897
6.
Lu H, Nagae-Poetscher LM, Golay X, Lin D, Pomper M, Zijl PCM van. Routine clinical brain MRI sequences for use at 3.0 Tesla. Journal of Magnetic Resonance Imaging. 2005;22(1):13-22. doi:10.1002/jmri.20356
LS0tCnRpdGxlOiAiUXVhbnRpZmljYXRpb24gJiB0aXNzdWUgY29ycmVjdGlvbiIKZGF0ZTogIkxhc3QgdXBkYXRlZDogYHIgZm9ybWF0KFN5cy50aW1lKCksICclQiAlZCwgJVknKWAiCmJpYmxpb2dyYXBoeTogYmlibGlvZ3JhcGh5LmJpYgpjc2w6IGFtZXJpY2FuLW1lZGljYWwtYXNzb2NpYXRpb24uY3NsCmxpbmstY2l0YXRpb25zOiB5ZXMKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IFRSVUUKICAgIHRvY19kZXB0aDogMgogICAgdG9jX2Zsb2F0OgogICAgICBjb2xsYXBzZWQ6IEZBTFNFCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGUgPSBGQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQpgYGAKCmBgYHtyLCBjaGlsZCA9ICJqcy9iYWNrLXRvLXRvcC5qcyJ9CmBgYAoKYGBge2NzcywgZWNobyA9IEZBTFNFfQouaW5mbyB7CiAgbWFyZ2luLWJvdHRvbTogMjBweDsKfQoKdGFibGUgewogIG1hcmdpbjogYXV0bzsKfQoKdGFibGUgdGhlYWQgdGggewogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkOwp9Cgp0aCwgdGQgewogIHBhZGRpbmc6IDVweDsKfQoKdGZvb3QsIHRyOm50aC1jaGlsZChldmVuKSB7CiAgYmFja2dyb3VuZDogI2VlZTsKfQpgYGAKCjxicj4KCjo6OiBpbmZvCjxpIGNsYXNzPSJmYSBmYS1pbmZvLWNpcmNsZSIgc3R5bGU9ImNvbG9yOiB3aGl0ZSI+PC9pPiZuYnNwOyBUaGUgZm9ybXVsYXMgYmVsb3cgYXBwbHkgdG8gcmVsZWFzZXMgMy4xKyBhbmQgbWF5IG5vdCBiZSBhcHBsaWNhYmxlIHRvIG9sZGVyIHJlbGVhc2VzLgo6OjoKCkdhbm5ldCBxdWFudGlmaWVzIG1ldGFib2xpdGUgbGV2ZWxzIGluIGRpZmZlcmVudCB3YXlzIGF0IHZhcmlvdXMgcG9pbnRzIGluIHRoZSBwaXBlbGluZSBkZXBlbmRpbmcgb24gd2hhdCByZWZlcmVuY2Ugc2lnbmFscyBhcmUgcHJlc2VudCBhbmQgaWYgc3RydWN0dXJhbCBpbWFnZSBkYXRhIGFyZSBhdmFpbGFibGUuIEl0IGlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHdoYXQgdGhlIHVuZGVybHlpbmcgcXVhbnRpZmljYXRpb24gZm9ybXVsYXMgYXJlIGZvciB0aGUgaW50ZXJwcmV0YXRpb24gYW5kIHJlcG9ydGluZyBvZiByZXN1bHRzLgoKPHU+QSBub3RlIG9uIHVuaXRzIG9mIGNvbmNlbnRyYXRpb248L3U+CgpUaGVyZSBpcyBhIHBlcmVubmlhbCBpc3N1ZSBzdXJyb3VuZGluZyBob3cgcXVhbnRpZmllZCBpbiB2aXZvIE1SUyBtZWFzdXJlbWVudHMgc2hvdWxkIGJlIGV4cHJlc3NlZDsgdGhhdCBpcywgaW4gd2hhdCBiaW9jaGVtaWNhbCB1bml0cyAoaWYgYW55KSB0aGV5IHNob3VsZCBiZSByZXBvcnRlZC4gSW4gdml2byBNUlMgbWVhc3VyZW1lbnRzIGNhbiBiZSwgYW5kIGhhdmUgYmVlbiwgcmVwb3J0ZWQgaW4gbW9sYXIsIG1vbGFsLCBhbmQgaW5zdGl0dXRpb25hbCB1bml0cyBvciBhcyBzaW1wbGUgcmF0aW9zLiBIb3dldmVyLCB0aGlzIG1ha2VzIGludGVycHJldGluZyBhbmQgY29tcGFyaW5nIHN1Y2ggdmFsdWVzLCBlc3BlY2lhbGx5IGFjcm9zcyBwdWJsaXNoZWQgc3R1ZGllcywgaGlnaGx5IGNoYWxsZW5naW5nLiBXaGlsZSBHYW5uZXQgZG9lcyBhcHBseSBhIG51bWJlciBvZiBzaWduYWwgc2NhbGluZyBmYWN0b3JzIHRvIHdhdGVyLXJlZmVyZW5jZWQgbWV0YWJvbGl0ZSBtZWFzdXJlbWVudHMgKHRoYXQgYXJlIHJlcXVpcmVkIHdoZW4gcmVwb3J0aW5nIGFic29sdXRlIGNvbmNlbnRyYXRpb25zKSwgaXQgaXMgb3VyIHBoaWxvc29waHkgdGhhdCB0aGVzZSBtZWFzdXJlbWVudHMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcHNldWRvLWFic29sdXRlIGJlY2F1c2UgYWNjb3VudGluZyBmb3IgYWxsIGVtcGlyaWNhbCBzaWduYWwgc2NhbGluZyBmYWN0b3JzIGlzIGltcHJhY3RpY2FsIChldmVuIGltcG9zc2libGUpIHRvIHBlcm1pdCB0cnVseSBhYnNvbHV0ZSBxdWFudGlmaWNhdGlvbi4gVGh1cywgd2UgZGVub3RlIG91ciB3YXRlci1yZWZlcmVuY2VkIG1ldGFib2xpdGUgbWVhc3VyZW1lbnRzIGluIGluc3RpdHV0aW9uYWwgdW5pdHMgKGkudS4pLgoKIyMgR2FubmV0Rml0CgpgTVJTX3N0cnVjdC5vdXQudm94MS4obWV0YWIpLkNvbmNDcmAsIGBNUlNfc3RydWN0Lm91dC52b3gxLihtZXRhYikuQ29uY0Nob2AsIGFuZCBgTVJTX3N0cnVjdC5vdXQudm94MS4obWV0YWIpLkNvbmNOQUFgIGFyZSBzaW1wbGUgc2lnbmFsIGludGVncmFsIHJhdGlvcyBvZiB0aGUgbWV0YWJvbGl0ZSBvZiBpbnRlcmVzdCBhbmQgdGhlIG1ldGFib2xpdGUgcmVmZXJlbmNlIHNpZ25hbHMgQ3IsIENobywgYW5kIE5BQSwgcmVzcGVjdGl2ZWx5OgoKJCRDID0gXGZyYWN7SV97TX19e0lfe3JlZn19JCQKCklmIGEgd2F0ZXIgcmVmZXJlbmNlIGlzIHByb3ZpZGVkLCBgTVJTX3N0cnVjdC5vdXQudm94MS4obWV0YWIpLkNvbmNJVWAgaXMgYWxzbyBjYWxjdWxhdGVkLiBJdCBpcyBkZWZpbmVkIGFzIHRoZSBzaWduYWwgaW50ZWdyYWwgcmF0aW8gb2YgdGhlIG1ldGFib2xpdGUgb2YgaW50ZXJlc3QgYW5kIHdhdGVyIHJlZmVyZW5jZSBzY2FsZWQgYnkgYSBudW1iZXIgb2YgZ2xvYmFsIHNpZ25hbCBzY2FsaW5nIGZhY3RvcnM6CgokJApDX3tjb3JyfSA9ClxmcmFje0lfe019fXtJX3tXfX1cY2RvdApcZnJhY3tIX3tXfX17SF97TX19XGNkb3QKXGZyYWN7TU19e1xrYXBwYX1cY2RvdApDX3tXfVxjZG90Cldfe3Zpc31cY2RvdApcZnJhY3tcZXhwXGxlZnQoLVxmcmFje1RFX3tXfX17VF97Mld9fVxyaWdodClcbGVmdFsxLVxleHBcbGVmdCgtXGZyYWN7VFJfe1d9fXtUX3sxV319XHJpZ2h0KVxyaWdodF19CntcZXhwXGxlZnQoLVxmcmFje1RFX3tNfX17VF97Mk19fVxyaWdodClcbGVmdFsxLVxleHBcbGVmdCgtXGZyYWN7VFJfe019fXtUX3sxTX19XHJpZ2h0KVxyaWdodF19CiQkCgp3aGVyZToKCnwgPHU+UGFyYW1ldGVyPC91PiB8IDx1PkRlc2NyaXB0aW9uPC91PiB8IDx1PkRlZmF1bHQgdmFsdWU8L3U+IHwKfCA6LSB8IDotLS0tLS0tLSB8IDotLS0tLS0gfAp8ICRDX3tjb3JyfSQgfCBFc3RpbWF0ZWQgbWV0YWJvbGl0ZSBjb25jZW50cmF0aW9uIGluIGkudS4gfCB8CnwgJElfe019JCB8IE1ldGFib2xpdGUgc2lnbmFsIGludGVncmFsIHwgfAp8ICRJX3tXfSQgfCBXYXRlciBzaWduYWwgaW50ZWdyYWwgfCB8CnwgJEhfe019JCB8IE51bWJlciBvZiBeMV5IIHByb3RvbnMgdGhhdCBnaXZlIHJpc2UgdG8gdGhlIG1ldGFib2xpdGUgc2lnbmFsIHwgTWV0YWJvbGl0ZSBkZXBlbmRlbnQ7IHNlZSBgR2FubmV0Rml0Lm1gIGZvciBkZWZhdWx0IHZhbHVlcyB8CnwgJEhfe1d9JCB8IE51bWJlciBvZiBeMV5IIHByb3RvbnMgdGhhdCBnaXZlIHJpc2UgdG8gdGhlIHdhdGVyIHNpZ25hbCB8IDIgfAp8ICRNTSQgfCBDb3JyZWN0aW9uIGZhY3RvciBmb3IgdGhlIGNvbnRyaWJ1dGlvbiBvZiB0aGUgY28tZWRpdGVkIG1hY3JvbW9sZWN1bGUgc2lnbmFsIGluIHRoZSBtZXRhYm9saXRlIHNpZ25hbCB8IDAuNDUgZm9yIEdBQkEgZWRpdGluZyBhbmQgMSBmb3IgYWxsIG90aGVyIGVkaXRlZCBtZXRhYm9saXRlcyB8CnwgJFxrYXBwYSQgfCBFZGl0aW5nIGVmZmljaWVuY3kgfCBBY3F1aXNpdGlvbiBkZXBlbmRlbnQ7IDAuNSBmb3IgR0FCQSBlZGl0aW5nIHwKfCAkQ197V30kIHwgTW9sYWwgY29uY2VudHJhdGlvbiBvZiBwdXJlIHdhdGVyIHwgNTUuNTEgbW9sL2tnIHwKfCAkV197dmlzfSQgfCBBcHByb3hpbWF0ZSByZWxhdGl2ZSBNUiB2aXNpYmlsaXR5IG9mIHdhdGVyIGluIGJyYWluIHRpc3N1ZSB8IDAuNjUgW0BFcm5zdDE5OTNdIHwKfCAkVEVfe1d9JCB8IEVjaG8gdGltZSBvZiB0aGUgd2F0ZXIgcmVmZXJlbmNlIGFjcXVpc2l0aW9uIHwgQWNxdWlzaXRpb24gZGVwZW5kZW50IHwKfCAkVFJfe1d9JCB8IFJlcGV0aXRpb24gdGltZSBvZiB0aGUgd2F0ZXIgcmVmZXJlbmNlIGFjcXVpc2l0aW9uIHwgQWNxdWlzaXRpb24gZGVwZW5kZW50IHwKfCAkVEVfe019JCB8IEVjaG8gdGltZSBvZiB0aGUgbWV0YWJvbGl0ZSBhY3F1aXNpdGlvbiB8IEFjcXVpc2l0aW9uIGRlcGVuZGVudCB8CnwgJFRSX3tNfSQgfCBSZXBldGl0aW9uIHRpbWUgb2YgdGhlIG1ldGFib2xpdGUgYWNxdWlzaXRpb24gfCBBY3F1aXNpdGlvbiBkZXBlbmRlbnQgfAp8ICRUX3syV30kIHwgQXZlcmFnZSB0cmFuc3ZlcnNlIHJlbGF4YXRpb24gdGltZSBvZiB3YXRlciBpbiBHTSBhbmQgV00gfCAxLjEwMCBzIFtAV2Fuc2FwdXJhMTk5OV0gfAp8ICRUX3sxV30kIHwgQXZlcmFnZSBsb25naXR1ZGluYWwgcmVsYXhhdGlvbiB0aW1lIG9mIHdhdGVyIGluIEdNIGFuZCBXTSB8IDAuMDk1IHMgW0BXYW5zYXB1cmExOTk5XSB8CnwgJFRfezJNfSQgfCBUcmFuc3ZlcnNlIHJlbGF4YXRpb24gdGltZSBvZiBtZXRhYm9saXRlIHwgTWV0YWJvbGl0ZSBkZXBlbmRlbnQ7IHNlZSBgR2FubmV0Rml0Lm1gIGZvciBkZWZhdWx0IHZhbHVlcyB8CnwgJFRfezFNfSQgfCBMb25naXR1ZGluYWwgcmVsYXhhdGlvbiB0aW1lIG9mIG1ldGFib2xpdGUgfCBNZXRhYm9saXRlIGRlcGVuZGVudDsgc2VlIGBHYW5uZXRGaXQubWAgZm9yIGRlZmF1bHQgdmFsdWVzIHwKCiMjIEdhbm5ldFNlZ21lbnQKCldoZW4gc2VnbWVudGluZyBzdHJ1Y3R1cmFsIGltYWdlcyB0byBvYnRhaW4gdm94ZWwgdm9sdW1lIGZyYWN0aW9ucyBvZiBHTSwgV00sIGFuZCBDU0YsIGFuZCBpZiBhIHdhdGVyIHJlZmVyZW5jZSBpcyBhdmFpbGFibGUsIGEgQ1NGLW9ubHkgY29ycmVjdGlvbiBpcyBhcHBsaWVkIHRvIHRoZSBgQ29uY0lVYCBtZWFzdXJlbWVudC4KCmBNUlNfc3RydWN0Lm91dC52b3gxLihtZXRhYikuQ29uY0lVX0NTRmNvcnJgOgoKJCQKQ197Q1NGY29ycn0gPQpcZnJhY3tJX3tNfX17SV97V319XGNkb3QKXGZyYWN7SF97V319e0hfe019fVxjZG90ClxmcmFje01NfXtca2FwcGF9XGNkb3QKQ197V31cY2RvdApXX3t2aXN9XGNkb3QKXGZyYWN7XGV4cFxsZWZ0KC1cZnJhY3tURV97V319e1RfezJXfX1ccmlnaHQpXGxlZnRbMS1cZXhwXGxlZnQoLVxmcmFje1RSX3tXfX17VF97MVd9fVxyaWdodClccmlnaHRdfQp7XGV4cFxsZWZ0KC1cZnJhY3tURV97TX19e1RfezJNfX1ccmlnaHQpXGxlZnRbMS1cZXhwXGxlZnQoLVxmcmFje1RSX3tNfX17VF97MU19fVxyaWdodClccmlnaHRdfVxjZG90ClxmcmFjezF9ezEtZl97Q1NGfX0KJCQKCndoZXJlICRDX3tDU0Zjb3JyfSQgaXMgdGhlIGVzdGltYXRlZCBtZXRhYm9saXRlIGNvbmNlbnRyYXRpb24gaW4gaS51LiBjb3JyZWN0ZWQgZm9yIENTRiBhbmQgJGZfe0NTRn0kIGlzIHRoZSB2b3hlbCB2b2x1bWUgZnJhY3Rpb24gb2YgQ1NGLgoKIyMgR2FubmV0UXVhbnRpZnkKCmBHYW5uZXRRdWFudGlmeS5tYCBnb2VzIGEgc3RlcCBmdXJ0aGVyIGFuZCBjb3JyZWN0cyBmb3IgcGFydGlhbCB2b2x1bWUgZWZmZWN0cyB0aGF0IGF0dGVudWF0ZSB0aGUgb2JzZXJ2ZWQgd2F0ZXIgYW5kIG1ldGFib2xpdGUgc2lnbmFscy4gVGhlcmUgYXJlIHR3byBhcHByb2FjaGVzIHRoYXQgYXJlIGVtcGxveWVkLiBUaGUgZmlyc3QgaXMgdGVybWVkIHRoZSBHYXNwYXJvdmljIGV0IGFsLiBbQEdhc3Bhcm92aWMyMDA2XSBtZXRob2QgYW5kIHRoZSBzZWNvbmQgaXMgdGVybWVkIHRoZSBIYXJyaXMgZXQgYWwuIFtASGFycmlzMjAxNV0gbWV0aG9kLiBBbHRob3VnaCBzaW1pbGFyLCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIGFwcHJvYWNoZXMgaXMgdGhhdCB0aGUgSGFycmlzIGV0IGFsLiBtZXRob2QgYWRkaXRpb25hbGx5IGFjY291bnRzIGZvciBpbnRyaW5zaWMgZGlmZmVyZW5jZXMgaW4gbWV0YWJvbGl0ZSBjb25jZW50cmF0aW9ucyBpbiBHTSBhbmQgV00uIAoKIyMjIDx1PlRoZSBHYXNwYXJvdmljIGV0IGFsLiBtZXRob2Q8L3U+CgpgTVJTX3N0cnVjdC5vdXQudm94MS4obWV0YWIpLkNvbmNJVV9UaXNzQ29ycmA6CgokJApDX3tUaXNzQ29ycn0gPQpcZnJhY3tJX3tNfX17SV97V319XGNkb3QKXGZyYWN7SF97V319e0hfe019fVxjZG90ClxmcmFje01NfXtca2FwcGF9XGNkb3QKQ197V31cY2RvdApcZnJhY3tcc3VtX3tpfV57R00sV00sQ1NGfWZfe2l9XGJldGFfe2l9XGV4cFxsZWZ0KC1cZnJhY3tURV97V319e1RfezJXLGl9fVxyaWdodClcbGVmdFsxLVxleHBcbGVmdCgtXGZyYWN7VFJfe1d9fXtUX3sxVyxpfX1ccmlnaHQpXHJpZ2h0XX0KeygxLWZfe0NTRn0pXGV4cFxsZWZ0KC1cZnJhY3tURV97TX19e1RfezJNfX1ccmlnaHQpXGxlZnRbMS1cZXhwXGxlZnQoLVxmcmFje1RSX3tNfX17VF97MU19fVxyaWdodClccmlnaHRdfQokJAoKd2hlcmU6Cgp8IDx1PlBhcmFtZXRlcjwvdT4gfCA8dT5EZXNjcmlwdGlvbjwvdT4gfCA8dT5EZWZhdWx0IHZhbHVlPC91PiB8CnwgOi0gfCA6LS0tLS0tLS0gfCA6LS0tLS0tIHwKfCAkQ197VGlzc0NvcnJ9JCB8IEVzdGltYXRlZCBtZXRhYm9saXRlIGNvbmNlbnRyYXRpb24gaW4gaS51LiBjb3JyZWN0ZWQgZm9yIHBhcnRpYWwgdm9sdW1lIGVmZmVjdHMgb2Ygd2F0ZXIgfCB8CnwgJGZfe2l9JCB8IFZveGVsIHZvbHVtZSBmcmFjdGlvbiBvZiBHTSwgV00sIG9yIENTRiB8IHwKfCAkXGJldGFfaSQgfCBSZWxhdGl2ZSBNUiB2aXNpYmlsaXR5IG9mIHdhdGVyIGluIEdNLCBXTSwgb3IgQ1NGIHwgMC43OCwgMC42NSwgYW5kIDAuOTcgW0BFcm5zdDE5OTNdIHwKfCAkVF97MlcsaX0kIHwgVHJhbnN2ZXJzZSByZWxheGF0aW9uIHRpbWUgb2Ygd2F0ZXIgaW4gR00sIFdNLCBvciBDU0YgfCAwLjExMCwgMC4wNzkyLCBhbmQgMC41MDMgcyBbQFdhbnNhcHVyYTE5OTk7IEBQaWVjaG5pazIwMDldIHwKfCAkVF97MVcsaX0kIHwgTG9uZ2l0dWRpbmFsIHJlbGF4YXRpb24gdGltZSBvZiB3YXRlciBpbiBHTSwgV00sIG9yIENTRiB8IDEuMzMxLCAwLjgzMiwgYW5kIDMuODE3IHMgW0BXYW5zYXB1cmExOTk5OyBATHUyMDA1XSB8CgojIyMgPHU+VGhlIEhhcnJpcyBldCBhbC4gbWV0aG9kPC91PgoKYE1SU19zdHJ1Y3Qub3V0LnZveDEuKG1ldGFiKS5Db25jSVVfQWxwaGFUaXNzQ29ycmA6CgokJApDX3tBbHBoYUNvcnJ9ID0KXGZyYWN7SV97TX19e0lfe1d9fVxjZG90ClxmcmFje0hfe1d9fXtIX3tNfX1cY2RvdApcZnJhY3tNTX17XGthcHBhfVxjZG90ClxmcmFje1xzdW1fe2l9XntHTSxXTSxDU0Z9Zl97aX1DX3tXLGl9XGV4cFxsZWZ0KC1cZnJhY3tURV97V319e1RfezJXLGl9fVxyaWdodClcbGVmdFsxLVxleHBcbGVmdCgtXGZyYWN7VFJfe1d9fXtUX3sxVyxpfX1ccmlnaHQpXHJpZ2h0XX0Ke1xleHBcbGVmdCgtXGZyYWN7VEVfe019fXtUX3syTX19XHJpZ2h0KVxsZWZ0WzEtXGV4cFxsZWZ0KC1cZnJhY3tUUl97TX19e1RfezFNfX1ccmlnaHQpXHJpZ2h0XX1cY2RvdApcZnJhY3sxfXtmX3tHTX0rXGFscGhhe2Zfe1dNfX19CiQkCgp3aGVyZToKCnwgPHU+UGFyYW1ldGVyPC91PiB8IDx1PkRlc2NyaXB0aW9uPC91PiB8IDx1PkRlZmF1bHQgdmFsdWU8L3U+IHwKfCA6LSB8IDotLS0tLS0tLSB8IDotLS0tLS0gfAp8ICRDX3tBbHBoYUNvcnJ9JCB8IEVzdGltYXRlZCBtZXRhYm9saXRlIGNvbmNlbnRyYXRpb24gaW4gaS51LiBjb3JyZWN0ZWQgZm9yIHBhcnRpYWwgdm9sdW1lIGVmZmVjdHMgb2Ygd2F0ZXIgYW5kIG1ldGFib2xpdGUgfCB8CnwgJENfe1csaX0kIHwgTW9sYWwgY29uY2VudHJhdGlvbiBvZiB3YXRlciBpbiBHTSwgV00sIG9yIENTRiB8IDQzLjMwLCAzNi4wOCwgYW5kIDUzLjg0IG1vbC9rZyBbQEVybnN0MTk5MzsgQEdhc3Bhcm92aWMyMDA2XSB8CnwgJFxhbHBoYSQgfCBSYXRpbyBvZiBpbnRyaW5zaWMgV006R00gbWV0YWJvbGl0ZSBjb25jZW50cmF0aW9ucyB8IE1ldGFib2xpdGUgZGVwZW5kZW50OyBzZWUgYEdhbm5ldFF1YW50aWZ5Lm1gIGZvciBkZWZhdWx0IHZhbHVlcyB8CgpBIG1vZGlmaWNhdGlvbiBvZiB0aGUgSGFycmlzIGV0IGFsLiBtZXRob2QgaXMgYWxzbyBjYWxjdWxhdGVkIHdoZXJlIGBDb25jSVVfQWxwaGFUaXNzQ29ycmAgaXMgZnVydGhlciBzY2FsZWQgYnkgdGhlIGF2ZXJhZ2Ugdm94ZWwgR00gYW5kIFdNIGNvbXBvc2l0aW9uIG9mIGFsbCBkYXRhc2V0cyBpbiBhIGdyb3VwLgoKYE1SU19zdHJ1Y3Qub3V0LnZveDEuKG1ldGFiKS5Db25jSVVfQWxwaGFUaXNzQ29ycl9HcnBOb3JtYDoKCiQkCkNfe0FscGhhQ29yck5vcm19ID0KXGZyYWN7SV97TX19e0lfe1d9fVxjZG90ClxmcmFje0hfe1d9fXtIX3tNfX1cY2RvdApcZnJhY3tNTX17XGthcHBhfVxjZG90ClxmcmFje1xzdW1fe2l9XntHTSxXTSxDU0Z9Zl97aX1DX3tXLGl9XGV4cFxsZWZ0KC1cZnJhY3tURV97V319e1RfezJXLGl9fVxyaWdodClcbGVmdFsxLVxleHBcbGVmdCgtXGZyYWN7VFJfe1d9fXtUX3sxVyxpfX1ccmlnaHQpXHJpZ2h0XX0Ke1xleHBcbGVmdCgtXGZyYWN7VEVfe019fXtUX3syTX19XHJpZ2h0KVxsZWZ0WzEtXGV4cFxsZWZ0KC1cZnJhY3tUUl97TX19e1RfezFNfX1ccmlnaHQpXHJpZ2h0XX1cY2RvdApcZnJhY3tcbXVfe0dNfStcYWxwaGF7XG11X3tXTX19fXsoZl97R019K1xhbHBoYXtmX3tXTX19KShcbXVfe0dNfSt7XG11X3tXTX19KX0KJCQKCndoZXJlOgoKfCA8dT5QYXJhbWV0ZXI8L3U+IHwgPHU+RGVzY3JpcHRpb248L3U+IHwKfCA6LSB8IDotLS0tLS0tLSB8CnwgJENfe0FscGhhQ29yck5vcm19JCB8IEVzdGltYXRlZCBtZXRhYm9saXRlIGNvbmNlbnRyYXRpb24gaW4gaS51LiBjb3JyZWN0ZWQgZm9yIHBhcnRpYWwgdm9sdW1lIGVmZmVjdHMgb2Ygd2F0ZXIgYW5kIG1ldGFib2xpdGUgYW5kIGFkanVzdGVkIHRvIHRoZSBhdmVyYWdlIHZveGVsIEdNIGFuZCBXTSBjb21wb3NpdGlvbiBhY3Jvc3MgYSBncm91cCB8CnwgJHtcbXVfe0dNfX0kIHwgR3JvdXAtYXZlcmFnZWQgdm94ZWwgdm9sdW1lIGZyYWN0aW9uIG9mIEdNIHwKfCAke1xtdV97V019fSQgfCBHcm91cC1hdmVyYWdlZCB2b3hlbCB2b2x1bWUgZnJhY3Rpb24gb2YgV00gfAoKPGJyPgoKIyMjIFJlZmVyZW5jZXMKCgo=


Built with R Markdown in RStudio

Copyright © 2020–2024, Mark Mikkelsen