Analysis log - Evaluation of a soluble milk LPS/IgG ELISA for identification of Gram-negative mastitis pathogens
Author
Gabriella Harb, Sam Rowe, Ruth Zadoks
Published
July 27, 2026
Study Objectives
Evaluate the diagnostic performance of the soluble milk lipopolysaccharide/immunoglobulin G (sLPS/IgG) complex ELISA in differentiating mastitis cases associated with Gram-negative (GN) pathogens from non-Gram-negative (non-GN) cases, and compare its diagnostic performance to that of N-acetyl-β-D-glucosaminidase (NAGase) and lactate dehydrogenase (LDH).
Investigate how microbial culture classification and intramammary inflammation relate to sLPS/IgG complexes by evaluating associations between pathogen groups, sLPS/IgG concentrations, and established inflammatory markers (NAGase and LDH).
There is a greater number of cases in the non-Gram-negative category (77.4%), particularly due to a large number of No Growth samples (36.7%) (Table 1). Pasteurella and Serratia groups have <10 observations each so, where relevant, they will be combined as ‘Other Gram-negative (GN)’ in plots and removed from statistical tests.
The majority of the data sits near zero but with a large number of high value outliers for both groups. Gram-negative samples exhibit moderately higher sLPS/IgG values than non-Gram-negative samples (Wilcoxon rank-sum test, p < 0.001; effect size r = 0.38; Figure 1).
Figure 1. Distribution of sLPS/IgG ELISA results in Gram-negative and non-Gram-negative samples. Boxes represent the median and interquartile range, whiskers extend to 1.5 × the interquartile range, and points represent individual observations.
Code
# Difference in distributions?wilcox.test(sLPS_IgG ~ GN_label, data = koru_df_gram_group)
Wilcoxon rank sum test with continuity correction
data: sLPS_IgG by GN_label
W = 51924, p-value < 2.2e-16
alternative hypothesis: true location shift is not equal to 0
Code
# Magnitude of difference between groups (calculates r and uses conventional Cohen thresholds where 0.3-0.5 = moderate effect)koru_df_gram_group %>%wilcox_effsize(sLPS_IgG ~ GN_label,ci =TRUE,conf.level =0.95,nboot =2000 )
Figure 2. Receiver Operating Characteristic (ROC) curve describing the ability of the sLPS/IgG ELISA to discriminate Gram-negative from non-Gram-negative mastitis cases. The curve plots the True Positive Rate against the False Positive Rate at various probability thresholds. The dashed diagonal line represents a baseline classifier performing no better than random chance. The Area Under the Curve (AUC) achieved by the model is 0.766, demonstrating a moderate degree of discriminatory performance for detecting Gram-negative cases. The optimal cut-point determined using Youden’s index was 0.0247, corresponding to a sensitivity of 75% and specificity of 68%.
Code
ci.auc(roc_obj)
95% CI: 0.7207-0.8106 (DeLong)
Moving the cut-point from 0.03 to 0.0247 (the optimal cut-point) gains about 13 percentage points of sensitivity while losing only about 9 percentage points of specificity, resulting in a higher Youden index (0.427) (calculated as Se+Sp-1) (Table 2). The optimal cut-points are chosen at highest Youden index. Increasing efficiency regions means that sensitivity rises quickly relative to the false positives. When efficiency = 0, false positives are increasing with no gain in detecting true positives. Efficiency at different cut-points for this test is highly variable, which reflects the skewed data distribution.
roc_table <- roc_mid %>%distinct(threshold, .keep_all =TRUE) %>%mutate(Threshold =round(threshold, 4),Sensitivity =paste0(round(100* sensitivity, 0), "%"),Specificity =paste0(round(100* specificity, 0), "%"),`False positive rate`=paste0(round(100* FPR, 0), "%"),`Youden index`=round(Youden, 3),Efficiency =round(efficiency, 2) ) %>%select( Threshold, Sensitivity, Specificity,`False positive rate`,`Youden index`, Efficiency )opt_row <-which(abs(roc_table$Threshold -0.0247) <0.0001)kable( roc_table,caption ="Table 2. Diagnostic performance at selected sLPS/IgG thresholds for discrimination of Gram-negative and non-Gram-negative cases. The optimal cut-point is highlighted in grey and bolded. For efficiency: NA = no previous cut-point available for comparison; NaN = no change between successive cut-points; -Inf = performance changed in an unfavourable direction.",booktabs =TRUE,align ="cccccc") %>%kable_styling(full_width =FALSE,position ="center" ) %>%row_spec( opt_row,bold =TRUE,background ="grey90" )
Table 2. Diagnostic performance at selected sLPS/IgG thresholds for discrimination of Gram-negative and non-Gram-negative cases. The optimal cut-point is highlighted in grey and bolded. For efficiency: NA = no previous cut-point available for comparison; NaN = no change between successive cut-points; -Inf = performance changed in an unfavourable direction.
Threshold
Sensitivity
Specificity
False positive rate
Youden index
Efficiency
0.4350
12%
98%
2%
0.096
NA
0.4500
12%
98%
2%
0.096
NaN
0.4050
13%
97%
3%
0.101
3.41
0.4200
13%
97%
3%
0.101
NaN
0.3750
13%
97%
3%
0.106
3.41
0.3900
13%
97%
3%
0.106
NaN
0.3300
16%
97%
3%
0.130
6.82
0.3450
14%
97%
3%
0.109
-Inf
0.3600
13%
97%
3%
0.101
-Inf
0.3000
17%
96%
4%
0.135
17.06
0.3150
17%
96%
4%
0.135
NaN
0.2850
17%
96%
4%
0.133
0.00
0.2550
18%
96%
4%
0.138
3.41
0.2700
18%
96%
4%
0.138
NaN
0.2400
19%
96%
4%
0.150
6.82
0.2250
19%
95%
5%
0.146
0.00
0.1650
23%
95%
5%
0.182
6.82
0.1800
23%
95%
5%
0.175
-Inf
0.1950
21%
95%
5%
0.161
-Inf
0.2100
20%
95%
5%
0.147
-Inf
0.1500
24%
95%
5%
0.187
20.47
0.1200
28%
94%
6%
0.225
10.23
0.1350
28%
94%
6%
0.218
-Inf
0.1050
30%
94%
6%
0.238
10.23
0.0900
34%
94%
6%
0.278
20.47
0.0750
35%
93%
7%
0.286
2.27
0.0600
40%
92%
8%
0.325
4.78
0.0450
45%
88%
12%
0.331
1.14
0.0300
61%
77%
23%
0.377
1.42
0.0247
75%
68%
32%
0.434
1.66
0.0150
93%
27%
73%
0.201
0.43
0.0000
100%
0%
100%
0.000
0.26
1.3 Distribution of sLPS/IgG concentrations relative to the ROC-derived diagnostic threshold
The following density plot is used to visualise the overlap responsible for the observed false-positive and false-negative classifications. Gram-negative cases exhibited somewhat higher sLPS/IgG concentrations than non-Gram-negative cases. However, there is considerable overlap between the distributions (Figure 3). The ROC-derived optimal cut-point occurred within this overlap region, so a proportion of Gram-negative and non-Gram-negative cases could not be fully distinguished on the basis of sLPS/IgG concentration alone. This overlap is consistent with the moderate discriminatory ability observed in ROC analysis (AUC = 0.766).
Figure 3.Distribution of sLPS/IgG optical density (OD) values among samples with Gram-negative and non-Gram negative culture infections. Density plots are shown on a log-transformed x-axis. The dashed, vertical line indicates the optimal sLPS/IgG threshold used to differentiate between groups.
1.4 NAGase/LDH activity vs infection type + ROC curve comparisons
This section aims to determine whether the ELISA can provide information beyond inflammatory markers already being explored for mastitis identification (NAGase and LDH).
Figure 4. Distribution of NAGase activity results in Gram-negative and non-Gram-negative samples. Boxes represent the median and interquartile range, whiskers extend to 1.5 × the interquartile range, and points represent individual observations.
Figure 5. Distribution of LDH activity results in Gram-negative and non-Gram-negative samples. Boxes represent the median and interquartile range, whiskers extend to 1.5 × the interquartile range, and points represent individual observations.
Figure 6. Receiver Operating Characteristic (ROC) curves describing the ability of the sLPS/IgG ELISA, LDH activity, and NAGase activity to discriminate Gram-negative from non-Gram-negative mastitis cases. The curve plots the True Positive Rate against the False Positive Rate at various probability thresholds. The dashed diagonal line represents a baseline classifier performing no better than random chance. The Area Under the Curve (AUC) achieved by LDH is 0.708 and by NAGase is 0.642, demonstrating a limited degree of discriminatory performance for detecting Gram-negative cases.
Code
knitr::kable( roc_summary,caption ="Table 3. Optimal cut-points and diagnostic performance for ELISA, LDH and NAGase.")
Table 3. Optimal cut-points and diagnostic performance for ELISA, LDH and NAGase.
Test
AUC
Optimal cut-point
Sensitivity (%)
Specificity (%)
ELISA
0.766
0.0247
75.2
68.2
LDH
0.708
0.3300
80.1
57.0
NAGase
0.642
1515.3407
83.0
42.8
Code
roc.test(roc_obj_grouped, roc_ldh_grouped)
DeLong's test for two correlated ROC curves
data: roc_obj_grouped and roc_ldh_grouped
Z = 2.2153, p-value = 0.02674
alternative hypothesis: true difference in AUC is not equal to 0
95 percent confidence interval:
0.006599103 0.107908203
sample estimates:
AUC of roc1 AUC of roc2
0.7656109 0.7083573
Code
roc.test(roc_obj_grouped, roc_nag_grouped)
DeLong's test for two correlated ROC curves
data: roc_obj_grouped and roc_nag_grouped
Z = 5.2606, p-value = 1.436e-07
alternative hypothesis: true difference in AUC is not equal to 0
95 percent confidence interval:
0.07748821 0.16951493
sample estimates:
AUC of roc1 AUC of roc2
0.7656109 0.6421094
The ELISA is significantly better at discriminating GN from non-GN cases than LDH activity (AUC = 0.708; p = 0.02674) and NAGase activity (AUC = 0.642; p < 0.001). Although performance exceeded that of LDH and NAGase, discrimination remains insufficient for use as a standalone diagnostic test.
1.5 Sensitivity analysis (Gram-status)
Instead of grouping all non-Gram-negative cases (i.e Gram positive + Contaminated + No Growth), this section tests whether excluding ‘Contaminated’ and ‘No Growth’ samples from the non-GN category changes the outcome (i.e. comparing only Gram-positive (GP) vs Gram-negative).
GN samples exhibited moderately higher sLPS/IgG values than GP samples (Wilcoxon rank-sum test, p < 0.001; effect size r = 0.32). The majority of the data sit near zero but with a large number of high value outliers for both groups (Figure 7).
Figure 7. Distribution of sLPS/IgG ELISA results in Gram-negative and Gram-positive samples. Boxes represent the median and interquartile range, whiskers extend to 1.5 × the interquartile range, and points represent individual observations.
Code
# Difference in distributions?wilcox.test(sLPS_IgG ~ GN_label, data = koru_df_gram_excl)
Wilcoxon rank sum test with continuity correction
data: sLPS_IgG by GN_label
W = 15804, p-value = 3.32e-08
alternative hypothesis: true location shift is not equal to 0
Code
# Magnitude of difference between groupskoru_df_gram_excl %>%wilcox_effsize(sLPS_IgG ~ GN_label, ci =TRUE,conf.level =0.95,nboot =2000 )
Figure 8. Receiver Operating Characteristic (ROC) curve describing the ability of the sLPS/IgG ELISA to discriminate Gram-negative from GP mastitis cases. The curve plots the True Positive Rate against the False Positive Rate at various probability thresholds. The dashed diagonal line represents a baseline classifier performing no better than random chance. The Area Under the Curve (AUC) achieved by the model is 0.683, demonstrating a limited degree of discriminatory performance for detecting Gram-negative cases. The optimal cut-point determined using Youden’s index was 0.0247, corresponding to a sensitivity of 75% and specificity of 55%.
Bootstrap test for two correlated ROC curves
data: roc_obj2 and roc_ldh_gram
D = 3.8523, boot.n = 2000, boot.stratified = 1, p-value = 0.000117
alternative hypothesis: true difference in AUC is not equal to 0
sample estimates:
AUC of roc1 AUC of roc2
0.6834458 0.4854696
Code
roc.test(roc_obj2, roc_nag_gram)
DeLong's test for two correlated ROC curves
data: roc_obj2 and roc_nag_gram
Z = 4.2528, p-value = 2.111e-05
alternative hypothesis: true difference in AUC is not equal to 0
95 percent confidence interval:
0.07058635 0.19126281
sample estimates:
AUC of roc1 AUC of roc2
0.6834458 0.5525212
When the non-GN group is limited to GP samples, the ELISA is significantly better at discriminating GN from non-GN cases than LDH activity (AUC = 0.4855; p < 0.001) and NAGase activity (AUC = 0.5525; p < 0.001).
1.6 Sensitivity analysis (Sample type - enrolment only)
This section tests whether excluding follow-up samples changes the performance (i.e. only using enrolment samples).
koru_enrol_gram %>%mutate(Gram_status =ifelse( Gram_status =="N/A","Non-Gram-negative", Gram_status ) ) %>%count(Diagnosis, Gram_status) %>%mutate(Percent =round(100* n /sum(n), 1),`n (%)`=paste0(n, " (", Percent, "%)") ) %>%select('Culture result'= Diagnosis,`Gram status`= Gram_status,`n (%)` ) %>%kable(caption ="Table 4. Gram status of each culture result and the number (n) of each result obtained within the reduced dataset (enrolment samples only).") %>%kable_styling(position ="left")
Table 4. Gram status of each culture result and the number (n) of each result obtained within the reduced dataset (enrolment samples only).
Culture result
Gram status
n (%)
Contamination
Non-Gram-negative
73 (15.5%)
E. coli
Gram negative
52 (11%)
Klebsiella pneumoniae
Gram negative
79 (16.7%)
No growth
Non-Gram-negative
103 (21.8%)
Pasteurella multocida
Gram negative
5 (1.1%)
Serratia liquefaciens
Gram negative
1 (0.2%)
Serratia marcescens
Gram negative
4 (0.8%)
Staphylococcus aureus
Gram positive
11 (2.3%)
Staphylococcus sp. (non aureus)
Gram positive
20 (4.2%)
Streptococcus dysgalactiae
Gram positive
20 (4.2%)
Streptococcus uberis
Gram positive
104 (22%)
Gram-negative enrolment samples exhibited moderately higher sLPS/IgG values than non-Gram-negative enrolment samples (Wilcoxon rank-sum test, p < 0.001; effect size r = 0.31; Figure 9). The majority of the data sits near zero but with a large number of high value outliers for both groups.
Figure 9. Distribution of sLPS/IgG ELISA results in Gram-negative and non-GN enrolment samples. Boxes represent the median and interquartile range, whiskers extend to 1.5 × the interquartile range, and points represent individual observations.
Code
# Difference in distributions?wilcox.test(sLPS_IgG ~ GN_label, data = koru_enrol_gram)
Wilcoxon rank sum test with continuity correction
data: sLPS_IgG by GN_label
W = 32604, p-value = 8.273e-12
alternative hypothesis: true location shift is not equal to 0
Code
# Magnitude of difference between groups koru_enrol_gram %>%wilcox_effsize(sLPS_IgG ~ GN_label)
Figure 10. Receiver Operating Characteristic (ROC) curve describing the ability of the sLPS/IgG ELISA to discriminate Gram-negative from GP mastitis cases in enrolment samples only. The curve plots the True Positive Rate against the False Positive Rate at various probability thresholds. The dashed diagonal line represents a baseline classifier performing no better than random chance. The Area Under the Curve (AUC) achieved by the model is 0.699, demonstrating a limited degree of discriminatory performance for detecting Gram-negative cases. The optimal cut-point determined using Youden’s index was 0.0247, corresponding to a sensitivity of 75% and specificity of 58%.
DeLong's test for two correlated ROC curves
data: roc_enrol and roc_ldh_enrol
Z = 3.0317, p-value = 0.002432
alternative hypothesis: true difference in AUC is not equal to 0
95 percent confidence interval:
0.03259751 0.15182108
sample estimates:
AUC of roc1 AUC of roc2
0.6986030 0.6063937
Code
roc.test(roc_enrol, roc_nag_enrol)
DeLong's test for two correlated ROC curves
data: roc_enrol and roc_nag_enrol
Z = 4.0823, p-value = 4.458e-05
alternative hypothesis: true difference in AUC is not equal to 0
95 percent confidence interval:
0.05712904 0.16264341
sample estimates:
AUC of roc1 AUC of roc2
0.6986030 0.5887168
When the dataset is limited to enrolment samples, the ELISA is significantly better at discriminating GN from non-GN cases than LDH activity (AUC = 0.6064; p = 0.02432) and NAGase activity (AUC = 0.5887; p < 0.001).
1.7 Sensitivity analysis (Sample type - follow up only)
This section tests whether excluding enrolment samples changes the performance (i.e. only using follow up samples).
Figure. 11. Distribution of sLPS/IgG ELISA results in Gram-negative and non-GN follow-up samples. Boxes represent the median and interquartile range, whiskers extend to 1.5 × the interquartile range, and points represent individual observations.
There are no GN test results in follow up samples. Performance cannot be compared between GN and non-GN. This is expected given follow-up samples are mostly non-clinical. Table 5 shows a breakdown of culture results within follow up samples.
Code
koru_follow_gram %>%mutate(Gram_status =ifelse( Gram_status =="N/A","Non-Gram-negative", Gram_status ) ) %>%count(Diagnosis, Gram_status) %>%mutate(Percent =round(100* n /sum(n), 1),`n (%)`=paste0(n, " (", Percent, "%)") ) %>%select('Culture result'= Diagnosis,`Gram status`= Gram_status,`n (%)` ) %>%kable(caption ="Table 5. Gram status of each culture result and the number (n) of each result obtained within the reduced dataset (follow-up samples only)") %>%kable_styling(position ="left")
Table 5. Gram status of each culture result and the number (n) of each result obtained within the reduced dataset (follow-up samples only)
Culture result
Gram status
n (%)
Contamination
Non-Gram-negative
16 (10.7%)
No growth
Non-Gram-negative
125 (83.3%)
Streptococcus uberis
Gram positive
9 (6%)
1.8 Objective 1 conclusions
Code
obj1_summary <-tribble(~Metric, ~`All samples`, ~`Clinical samples`,"Overall mean sLPS/IgG", "0.081", "0.102","Overall median sLPS/IgG", "0.023", "0.026","GN median sLPS/IgG", "0.040", "0.040","Non-GN median sLPS/IgG", "0.021", "0.023","Group difference (95% CI)", "0.38 (0.31-0.45)", "0.31 (0.21-0.41)","P-value (distribution)", "<0.001", "<0.001","AUC", "0.766", "0.699","Optimal cut-point", "0.0247", "0.0247","Se @ optimal cut-point", "75%", "75%","Sp @ optimal cut-point", "68%", "58%")kable( obj1_summary,caption ="Table 6. Comparison of sLPS/IgG and ROC-derived diagnostic performance metrics for identification of Gram-negative mastitis cases using all samples and clinical (enrolment) samples only.",align =c("l", "c", "c", "c"))
Table 6. Comparison of sLPS/IgG and ROC-derived diagnostic performance metrics for identification of Gram-negative mastitis cases using all samples and clinical (enrolment) samples only.
Metric
All samples
Clinical samples
Overall mean sLPS/IgG
0.081
0.102
Overall median sLPS/IgG
0.023
0.026
GN median sLPS/IgG
0.040
0.040
Non-GN median sLPS/IgG
0.021
0.023
Group difference (95% CI)
0.38 (0.31-0.45)
0.31 (0.21-0.41)
P-value (distribution)
<0.001
<0.001
AUC
0.766
0.699
Optimal cut-point
0.0247
0.0247
Se @ optimal cut-point
75%
75%
Sp @ optimal cut-point
68%
58%
The ELISA has moderate accuracy in discriminating between GN and non-GN cases of clinical mastitis when all samples are included in analysis (AUC = 0.766). In practice, this is unlikely to be acceptable as a standalone diagnostic test. The ELISA performs better when grouping all non-GN together compared to GN vs GP only and when retaining follow-up samples in the data set. Grouping non-GN and retaining non-clinical follow-up samples likely improve the ELISAs ability to distinguish between groups because of the wider spread in low values contributed by Contamination/No Growth categories. Grouping all non-GN results better reflect samples obtained in practice as Contamination/No Growth outcomes are common in standard laboratory milk culturing. The ELISA also performed better than LDH and NAGase in discriminating between GN and non-GN cases of clinical mastitis. While these two bio markers are not yet widely used in mastitis diagnostics, there has been research into their usefulness in identifying inflammation during mastitis. These results indicate that further work is warranted into how these three bio markers (sLPS/IgG as measured by the ELISA, NAGase, and LDH) may be used appropriately.
Rowe et al. (2024) discussed whether the performance of evaluated point-of-care tests in distinguishing GP from non-GP cases was sufficient to support treatment decisions. Caution is required when making these comparisons, as the current study assessed a different diagnostic target (GN vs non-GN cases). Despite this limitation and the moderate discriminatory ability of the ELISA, its sensitivity (75%) was comparable to several of the currently available point-of-care tests. However, specificity was lower (68%) than most published alternatives (Se/Sp: 0.84/0.75 for Biplate, 0.76/0.90 for Accumast, 0.89/0.79 for Check-Up, 0.67/0.83 for Petrifilm, and 0.55/0.81 for Mastatest). While the ELISA would correctly identify a reasonable proportion of true Gram-negative cases, the lower specificity indicates a greater number of false-positive results. In this context, false positives represent non-GN cases incorrectly classified as GN. As the purpose of the test is to aid treatment selection, this could result in approximately one third of the Gram-positive cases being incorrectly considered less likely to benefit from antimicrobial therapy, potentially reducing appropriate treatment allocation. Reducing antimicrobial use overall is beneficial in a ONE Health context, but can also reduce cow health and welfare when its application is warranted.
Positive associations between sLPS/IgG concentration and both NAGase and LDH activity were observed within Gram-negative, Gram-positive, no-growth and contamination groups (Figure 12: Figure 13). Although sLPS/IgG concentrations were somewhat higher among Gram-negative cases, the persistence of these associations within non-Gram-negative groups suggests that sLPS/IgG may reflect not only exposure to Gram-negative bacterial LPS but also the severity of the host inflammatory response. NAGase and LDH appear to be correlated with each other to a similar level, regardless of Gram status (Figure 14).
Figure 12. Relationship between NAGase activity and sLPS/IgG optical density (OD) within Gram groups. Points represent individual samples and solid lines represent fitted trends. Both axes are presented on the log10 scale to aid visualisation.
Figure 13. Relationship between LDH activity and sLPS/IgG optical density (OD) within Gram groups. Points represent individual samples and solid lines represent fitted trends. Both axes are presented on the log10 scale to aid visualisation.
Figure 14. Relationship between NAGase activity and LDH within Gram groups. Points represent individual samples and solid lines represent fitted trends. Both axes are presented on the log10 scale to aid visualisation.
2.2 Scatterplots by pathogen group
There are positive associations between LDH activity, NAGase activity, and sLPS/IgG optical density across most pathogen groups (Figure 15; Figure 16; Figure 17). As expected, due to the LPS in their outer cell membranes, these relationships were evident across all GN pathogens. However, they were also observed for the GP pathogens, S. aureus and the Streptococcus spp. and the No growth and Contamination categories. Relationships were weaker for No growth and Contamination, although the presence of a slight positive relationship may suggest that poor sample quality prevented culturing of the causative pathogen, the infection was associated with low bacterial numbers or the inflammatory response was still evident even after bacterial clearance. The flat regression line for non-aureus Staphylococcus species may suggest that these cases are generally less severe. The consistency of these positive trends indicate that sLPS/IgG concentration reflects not only pathogen classification but also the severity of the host inflammatory response. There appears to be a generic inflammatory response to these major pathogens. Localised inflammation in the mammary gland may trigger a systemic response causing leaky gut (pro inflammatory cytokines released into the bloodstream degrade tight junctions), leading to the detection of LPS originating from the GN bacteria in the gut microbiome rather than the mastitis pathogen itself (references? other explanations? come back to this…).
NAGase and LDH appear to be correlated with each other to a similar level, regardless of pathogen (Figure 17). Reflections of SCC? (references? other explanations? come back to this…).
Figure 15. Relationship between NAGase activity and sLPS/IgG optical density (OD) within pathogen groups. Points represent individual samples and solid lines represent fitted trends. Both axes are presented on the log10 scale to aid visualisation. Rare Gram-negative pathogens are combined in the ‘Other GN’ category (Pasteurella multocida and Serratia spp.).
Figure 16. Relationship between LDH activity and sLPS/IgG optical density (OD) within pathogen groups. Points represent individual samples and solid lines represent fitted trends. Both axes are presented on the log10 scale to aid visualisation. Rare Gram-negative pathogens are combined in the ‘Other GN’ category (Pasteurella multocida and Serratia spp.).
Figure 17. Relationship between NAGase activity and LDH activity within pathogen groups. Points represent individual samples and solid lines represent fitted trends. Both axes are presented on the log10 scale to aid visualisation. Rare Gram-negative pathogens are combined in the ‘Other GN’ category (Pasteurella multocida and Serratia spp.).
2.3 Scatterplots by year
Plots in section 2.2 show some evidence of clustering at high sLPS/IgG values. To explore whether the high values are associated with severe clinical mastitis, samples will be plotted by pathogen per year. All severe clinical mastitis cases in this dataset appeared in 2022 and were associated with K. pneuomiae and S. uberis.
Samples culture-positive for Gram-negative pathogens, particularly E. coli and K. pneumoniae, tended to exhibit higher sLPS/IgG OD values at increasing NAGase activity, suggesting a positive relationship between inflammatory activity and anti-LPS antibody response. In contrast, no-growth, contamination, and most Gram-positive pathogen groups generally showed lower sLPS/IgG OD values across the observed range of NAGase activity, although a small number of high-value outliers were present. Similar patterns were observed across collection years.
Figure 18. Relationship between NAGase activity and sLPS/IgG optical density (OD) across pathogen groups. Each point represents an individual milk sample, coloured by collection year. NAGase activity and sLPS/IgG OD are shown on log-transformed scales.
Figure 19. Relationship between LDH activity and sLPS/IgG optical density (OD) across pathogen groups. Each point represents an individual milk sample, coloured by collection year. LDH activity and sLPS/IgG OD are shown on log-transformed scales.
Figure 20. Relationship between NAGase activity and sLPS/IgG optical density (OD) for Klebsiella pneumoniae and Streptococcus uberis. Each point represents an individual milk sample, coloured by collection year. NAGase activity and sLPS/IgG OD are shown on log-transformed scales.
Figure 21. Relationship between LDH activity and sLPS/IgG optical density (OD) for Klebsiella pneumoniae and Streptococcus uberis. Each point represents an individual milk sample, coloured by collection year. LDH activity and sLPS/IgG OD are shown on log-transformed scales.
To explore whether the high values are associated with severe clinical mastitis, samples will be plotted by pathogen per year. All severe clinical mastitis cases in this dataset appeared in 2022 and were associated with K. pneuomiae and S. uberis.
While exact severity classification of cases is unavailable, high biomarker values do appear to be associated with the more severe clinical mastitis cases sampled in 2022 (Figures 18-21).
2.4 Boxplots by pathogen group
Contamination and no growth categories appear to have lowest inflammatory marker activities and sLPS/IgG, GN pathogens tend to have slightly higher median levels, and levels vary greatly within the same pathogen group (Figure 22; Figure 23; Figure 24).
Figure 22. Distribution of sLPS/IgG optical density among pathogen groups isolated from mastitis samples. Boxplots display the median, interquartile range, and observations within 1.5 × the interquartile range, with individual outliers shown as points. sLPS/IgG is presented on a log10 scale to improve visualisation of the highly skewed distribution. Boxes are shaded according to Gram status. The dashed horizontal line indicates the optimal sLPS/IgG cut-point identified from ROC analysis for discriminating Gram-negative from non-Gram-negative infections (0.0247).
Figure 23. Distribution of NAGase activity among pathogen groups isolated from mastitis samples. Boxplots display the median, interquartile range, and observations within 1.5 × the interquartile range, with individual outliers shown as points. NAGase activity is presented on a log10 scale to improve visualisation of the highly skewed distribution. Boxes are shaded according to Gram status. The dashed horizontal line indicates the optimal NAGase cut-point identified from ROC analysis for discriminating Gram-negative from non-Gram-negative infections (1515.34).
Figure 24. Distribution of LDH among pathogen groups isolated from mastitis samples. Boxplots display the median, interquartile range, and observations within 1.5 × the interquartile range, with individual outliers shown as points. LDH activity is presented on a log10 scale to improve visualisation of the highly skewed distribution. Boxes are shaded according to Gram status. The dashed horizontal line indicates the optimal LDH cut-point identified from ROC analysis for discriminating Gram-negative from non-Gram-negative infections (0.3300).
2.5 Statistical comparisons - pathogen groups within biomarkers
Code
kruskal.test(sLPS_IgG ~ pathogen, data = koru_df_1_filtered)
Kruskal-Wallis rank sum test
data: sLPS_IgG by pathogen
Kruskal-Wallis chi-squared = 133.33, df = 7, p-value < 2.2e-16
Code
kruskal.test(NAGase_activity ~ pathogen, data = koru_df_1_filtered)
Kruskal-Wallis rank sum test
data: NAGase_activity by pathogen
Kruskal-Wallis chi-squared = 58.176, df = 7, p-value = 3.488e-10
Code
kruskal.test(LDH_activity ~ pathogen, data = koru_df_1_filtered)
Kruskal-Wallis rank sum test
data: LDH_activity by pathogen
Kruskal-Wallis chi-squared = 193, df = 7, p-value < 2.2e-16
Estimated biomarker levels do differ across pathogen groups [sLPS/IgG OD (p < 0.001); NAGase activity (p < 0.001); LDH activity (p < 0.001)].
Compared to No growth, all pathogens other than Staphylococcus species (S. aureus (p = 0.3511); non aureus (p = 0.1135)) result in significantly higher inflammation when measured by sLPS/IgG OD (p < 0.05). There is no significant difference in inflammation between pathogens in the GN group (p = 0.10847). Within the GP group, most pathogens do not differ significantly in inflammation level. There is weak evidence that Staphylococcus spp. (non aureus) and Streptococcus dysgalactiae differ in NAGase levels (p = 0.04993) (where inflammation associated with S. dysgalactiae tends to be higher).
Compared to No growth, most pathogens result in significantly higher inflammation when measured by NAGase activity (p < 0.05). There is no significant difference in inflammation between No Growth and Staphylococcus spp. (non aureus) (p = 0.6570). There is no significant difference in inflammation between pathogens in the GN group (p = 0.9264). Within the GP group, most pathogens do not differ significantly in inflammation level. The only GP pathogens that differ significantly are Staphylococcus spp. (non aureus) and Streptococcus dysgalactiae (p = 0.0271) (where inflammation with S. dysgalactiae is higher).
Compared to No growth, all pathogens result in significantly higher inflammation when measured by LDH activity (p < 0.05). There is weak evidence that there is a difference in inflammation between pathogens in the GN group (p = 0.5429). Within the GP group, most pathogens do not differ significantly in inflammation level. The only GP pathogens that differ significantly are Staphylococcus spp. (non aureus) and S. ubris (p < 0.001) (where inflammation with S. ubris is higher) and Streptococcus uberis and Streptococcus dysgalactiae (p = 0.0484) (where inflammation with S. dysgalactiae is higher).
2.6 Distribution of raw data
From previous sections, it is clear that there are some differences in inflammatory response between pathogen groups but biomarkers overlap in distibution substantially. Therefore, diagnostic performance is moderate. Here we attempt to understand why this may occur by investigating the relationships between biomarkers.
Figure 26. Locally estimated scatterplot smoothing (LOESS) curves describing the relationships between (A) LDH activity and sLPS/IgG and (B) NAGase activity and sLPS/IgG. The y-axis is presented on a logarithmic scale to improve visualisation of the highly right-skewed distribution of sLPS/IgG. Points represent individual milk samples and solid lines represent LOESS-smoothed trends.
What is the relationship when different combinations of variables are transformed?
Code
## sLPS/IgG vs LDH # Raw vs RawL1 <-ggplot(df_model, aes(x = LDH_activity, y = sLPS_IgG)) +geom_point(alpha =0.6) +geom_smooth() +labs(title ="Raw vs Raw", x ="LDH activity", y ="sLPS/IgG")# Log X onlyL2 <-ggplot(df_model, aes(x = LDH_activity, y = log_LPS)) +geom_point(alpha =0.6) +geom_smooth() +labs(title ="Log Y only", x ="LDH activity", y ="log(sLPS/IgG)")# Log Y onlyL3 <-ggplot(df_model, aes(x = log_LDH, y = sLPS_IgG)) +geom_point(alpha =0.6) +geom_smooth() +labs(title ="Log X only", x ="log(LDH activity)", y ="sLPS/IgG")# Log–LogL4 <-ggplot(df_model, aes(x = log_LDH, y = log_LPS)) +geom_point(alpha =0.6) +geom_smooth(method ="lm") +labs(title ="Log–Log", x ="log(LDH activity)", y ="log(sLPS/IgG)")# Combine into panel(L1 + L2) / (L3 + L4)
Code
## sLPS/IgG vs NAGase# Raw vs RawN1 <-ggplot(df_model, aes(x = NAGase_activity, y = sLPS_IgG)) +geom_point(alpha =0.6) +geom_smooth() +labs(title ="Raw vs Raw", x ="NAGase activity", y ="sLPS/IgG")# Log X onlyN2 <-ggplot(df_model, aes(x = NAGase_activity, y = log_LPS)) +geom_point(alpha =0.6) +geom_smooth() +labs(title ="Log Y only", x ="NAGase activity", y ="log(sLPS/IgG)")# Log Y onlyN3 <-ggplot(df_model, aes(x = log_NAG, y = sLPS_IgG)) +geom_point(alpha =0.6) +geom_smooth() +labs(title ="Log X only", x ="log(NAGase activity)", y ="sLPS/IgG")# Log–LogN4 <-ggplot(df_model, aes(x = log_NAG, y = log_LPS)) +geom_point(alpha =0.6) +geom_smooth(method ="lm") +labs(title ="Log–Log", x ="log(NAGase activity)", y ="log(sLPS/IgG)")# Combine into panel(N1 + N2) / (N3 + N4)
Increasing relationships seen for raw data, log-Y, and log-log transformed data. No improvement from raw data compared to log transformed X values.
Models using raw data, log Y, and log-log transformed data are compared.
2.8 Group pathogens for linear models
Pathogen was identified as a possible effect modifier/confounder (COME BACK TO THIS) so will be added as a covariate in certain models to assess performance.
Q1. Does the choice of model family matter?
Q2. Does controlling for pathogen matter?
Q3. Does clustering in Cow ID and/or Farm matter?
Q4. Do log transformations make a difference to model fit?
Code
all_models <-list(lm_nag =lm(sLPS_IgG ~ NAGase_activity, data = df_model),lm_nag_path =lm(sLPS_IgG ~ NAGase_activity + diagnosis_group, data = df_model_pathgroup),lmer_nag_cow =lmer(sLPS_IgG ~ NAGase_activity + (1|Cow_ID), data = df_model),lmer_nag_farm =lmer(sLPS_IgG ~ NAGase_activity + (1|Farm), data = df_model),lmer_nag_both =lmer(sLPS_IgG ~ NAGase_activity + (1|Cow_ID) + (1|Farm), data = df_model),lmer_nag_cowpath =lmer(sLPS_IgG ~ NAGase_activity + diagnosis_group + (1|Cow_ID), data = df_model_pathgroup),lmer_nag_farmpath =lmer(sLPS_IgG ~ NAGase_activity + diagnosis_group + (1|Farm), data = df_model_pathgroup),lmer_nag_bothpath =lmer(sLPS_IgG ~ NAGase_activity + diagnosis_group + (1|Cow_ID) + (1|Farm), data = df_model_pathgroup),glm_nag =glm(sLPS_IgG ~ NAGase_activity, family =Gamma(link ="log"), data = df_model),glm_nag_path =glm(sLPS_IgG ~ NAGase_activity + diagnosis_group, family =Gamma(link ="log"), data = df_model_pathgroup),glm_nag_identity =glm(sLPS_IgG ~ NAGase_activity, family =Gamma(link ="identity"), data = df_model),glm_nag_pathidentity =glm(sLPS_IgG ~ NAGase_activity + diagnosis_group, family =Gamma(link ="identity"), data = df_model_pathgroup),mod_nag_logY =lm(log_LPS ~ NAGase_activity, data = df_model),mod_nag_logXY =lm(sLPS_IgG ~ log_NAG, data = df_model),mod_nag_logY_path =lm(log_LPS ~ NAGase_activity + diagnosis_group, data = df_model_pathgroup),mod_nag_logXY_path =lm(log_LPS ~ log_NAG + diagnosis_group, data = df_model_pathgroup),lm_ldh =lm(sLPS_IgG ~ LDH_activity, data = df_model),lm_ldh_path =lm(sLPS_IgG ~ LDH_activity + diagnosis_group, data = df_model_pathgroup),lmer_ldh_cow =lmer(sLPS_IgG ~ LDH_activity + (1|Cow_ID), data = df_model),lmer_ldh_farm =lmer(sLPS_IgG ~ LDH_activity + (1|Farm), data = df_model),lmer_ldh_both =lmer(sLPS_IgG ~ LDH_activity + (1|Cow_ID) + (1|Farm), data = df_model),lmer_ldh_cowpath =lmer(sLPS_IgG ~ LDH_activity + diagnosis_group + (1|Cow_ID), data = df_model_pathgroup),lmer_ldh_farmpath =lmer(sLPS_IgG ~ LDH_activity + diagnosis_group + (1|Farm), data = df_model_pathgroup),lmer_ldh_bothpath =lmer(sLPS_IgG ~ LDH_activity + diagnosis_group + (1|Cow_ID) + (1|Farm), data = df_model_pathgroup),glm_ldh =glm(sLPS_IgG ~ LDH_activity, family =Gamma(link ="log"), data = df_model),glm_ldh_path =glm(sLPS_IgG ~ LDH_activity + diagnosis_group, family =Gamma(link ="log"), data = df_model_pathgroup),glm_ldh_identity =glm(sLPS_IgG ~ LDH_activity, family =Gamma(link ="identity"), data = df_model),glm_ldh_pathidentity =glm(sLPS_IgG ~ LDH_activity + diagnosis_group, family =Gamma(link ="identity"), data = df_model_pathgroup),mod_ldh_logY =lm(log_LPS ~ LDH_activity, data = df_model),mod_ldh_logXY =lm(sLPS_IgG ~ log_LDH, data = df_model),mod_ldh_logY_path =lm(log_LPS ~ LDH_activity + diagnosis_group, data = df_model_pathgroup),mod_ldh_logXY_path =lm(log_LPS ~ log_LDH + diagnosis_group, data = df_model_pathgroup),null_cow =lmer(sLPS_IgG ~ (1| Cow_ID), data = df_model),null_farm =lmer(sLPS_IgG ~ (1| Farm), data = df_model))
ldh_compare_table <- ldh_compare %>%mutate(Estimate =sprintf("%.7f", Estimate),LowerCI =sprintf("%.7f", LowerCI),UpperCI =sprintf("%.7f", UpperCI),`95% CI`=paste0(LowerCI, " to ", UpperCI),`P-value`=format.pval(p.value, digits =3, eps =0.001) ) %>%select( Model, Estimate,`95% CI`,`P-value` )kable( ldh_compare_table,caption ="Table 8. Comparison of LDH model estimates and 95% confidence intervals across linear, mixed-effects, and generalized linear modelling approaches.",booktabs =TRUE,align =c("l", "c", "c", "c")) %>%kable_styling(full_width =FALSE,position ="center" )
Table 8. Comparison of LDH model estimates and 95% confidence intervals across linear, mixed-effects, and generalized linear modelling approaches.
Model
Estimate
95% CI
P-value
lm_ldh
0.1437476
0.1315262 to 0.1559690
<0.001
lm_ldh_path
0.1479150
0.1340708 to 0.1617592
<0.001
lmer_ldh_cow
0.1426066
0.1304114 to 0.1548018
<0.001
lmer_ldh_farm
0.1411458
0.1287845 to 0.1535070
<0.001
lmer_ldh_both
0.1402691
0.1279304 to 0.1526077
<0.001
lmer_ldh_cowpath
0.1479154
0.1340594 to 0.1617713
<0.001
lmer_ldh_farmpath
0.1458462
0.1319836 to 0.1597089
<0.001
lmer_ldh_bothpath
0.1450147
0.1311380 to 0.1588913
<0.001
glm_ldh
0.9747019
0.8112846 to 1.1524772
<0.001
glm_ldh_path
0.8721448
0.7336041 to 1.0203876
<0.001
glm_ldh_identity
0.0734226
0.0619486 to 0.0869013
<0.001
glm_ldh_pathidentity
0.0596506
NA to NA
<0.001
mod_ldh_logY
0.7392484
0.6752899 to 0.8032069
<0.001
mod_ldh_logXY
0.2768743
0.2454682 to 0.3082803
<0.001
mod_ldh_logY_path
0.6840188
0.6137678 to 0.7542698
<0.001
mod_ldh_logXY_path
1.5370789
1.3643791 to 1.7097788
<0.001
For all tested models (raw-scale, partially log-transformed, and log-log linear), the relationship between the inflammatory biomarker and sLPS/IgG is positive and significant. Confidence intervals do not include zero for any model. The gamma GLM using an identity link and including pathogen groups for LDH failed to calculate confidence intervals, likely because the link allowed the algorithm to test impossible negative values. Log transformation and Gamma GLMs did not alter the final conclusions and are not preferred because of their added complexity (model fit compared below). Retaining pathogen group in the LM NAGase model results in a change in estimate of ~12%, and so this model is preferred. For consistency and given pathogen group was identified as a possible confounder, the same model structure will be adopted for LDH, despite a change in estimate of <10%.
Model assumtions
Raw scale vs log transformations in LMs (pathogen adjusted)
Weak farm clustering and substantial cow clustering appears to exist prior to the inclusion of explanatory variables. Check when variables are added to the model:
After adjustment for biomarker activity (NAGase or LDH) and pathogen group, the estimated cow-level ICC fell to 0 for both NAGase and LDH models, while farm-level ICCs were low (NAGase: 0.027; LDH: 0.020). These findings indicate that the apparent clustering observed in the null models was largely explained by measured covariates rather than dependence among observations from the same cow or farm. Therefore, inclusion of random intercepts for cow or farm provided little additional explanatory value, supporting the use of simpler fixed-effects models for primary inference.
Figure 27. Predicted relationships between NAGase activity and sLPS/IgG OD obtained from candidate linear, mixed-effects, and generalised linear models. Models included unadjusted models, pathogen-adjusted models, and models incorporating cow and/or farm as random effects. The close agreement among fitted regression lines indicates that the estimated association between NAGase activity and sLPS/IgG was largely robust to model specification.
Figure 28. Predicted relationships between LDH activity and sLPS/IgG OD obtained from candidate linear, mixed-effects, and generalised linear models. Models included unadjusted models, pathogen-adjusted models, and models incorporating cow and/or farm as random effects. The close agreement among fitted regression lines indicates that the estimated association between LDH activity and sLPS/IgG was largely robust to model specification.
For both biomarkers, LM and LMMs are almost identical, and cow ID and farm contribute essentially no variation. Gamma and log transformed models show modest improvements in diagnostic performance but the underlying relationship is not altered in terms of direction, statistical significance, or biological interpretation. Over the majority of the observed range, the Gamma, log-transformed LMs and raw-scale LM fits are fairly similar (Figure 27; Figure 28). However, Gamma and log-transformed models tend to be influenced more strongly by the skewed distribution, resulting in a sharp uptick at high values. As inference is unchanged and raw-scale models are more readily interpretable, untransformed LM models will be retained for primary reporting.
After controlling for pathogen group, NAGase activity remained positively associated with sLPS/IgG OD (β = 1.95 × 10-5, p < 0.001). This equates to an increase in sLPS/IgG of approximately 0.02 units for every 1000-unit increase in NAGase activity. This model explains approximately 32% of variation in sLPS/IgG OD.
After controlling for pathogen group, LDH activity remained positively associated with sLPS/IgG OD (β = 0.148, p < 0.001). This model explains approximately 48% of the variation in sLPS/IgG. LDH explained substantially more variation in sLPS/IgG OD than NAGase.
mod_nag_lm_path_enrol <-lm(sLPS_IgG ~ NAGase_activity + diagnosis_group, data = df_lm_pathgroup_enrol)
There is no difference in the conclusions drawn from these models. Increasing NAGase activity is associated with increasing sLPS/IgG OD. There is a slight increase in NAGase estimate when removing follow-up samples but confidence intervals overlap and the direction and magnitude of effect remained similar.
Code
nag_enrol_compare <-bind_rows(tidy(all_models$lm_nag_path, conf.int =TRUE) %>%mutate(Model ="LM + pathogen"),tidy(mod_nag_lm_path_enrol, conf.int =TRUE) %>%mutate(Model ="LM + pathogen (enrolment only)")) %>%filter(term =="NAGase_activity") %>%select( Model,Estimate = estimate,LowerCI = conf.low,UpperCI = conf.high, p.value )nag_compare_table <- nag_enrol_compare %>%mutate(p.value =ifelse(p.value <0.001, "<0.001", as.character(signif(p.value, 3))) )kable( nag_compare_table,caption ="Table 9. Comparison of NAGase model estimates and 95% confidence intervals for the full dataset and enrolment samples only dataset.",booktabs =TRUE,align =c("l", "c", "c", "c", "c")) %>%kable_styling(full_width =FALSE,position ="center" )
Table 9. Comparison of NAGase model estimates and 95% confidence intervals for the full dataset and enrolment samples only dataset.
Model
Estimate
LowerCI
UpperCI
p.value
LM + pathogen
1.95e-05
1.66e-05
2.23e-05
<0.001
LM + pathogen (enrolment only)
2.38e-05
2.02e-05
2.73e-05
<0.001
Code
mod_ldh_lm_path_enrol <-lm(sLPS_IgG ~ LDH_activity + diagnosis_group, data = df_lm_pathgroup_enrol)
Code
ldh_enrol_compare <-bind_rows(tidy(all_models$lm_ldh_path, conf.int =TRUE) %>%mutate(Model ="LM + pathogen"),tidy(mod_ldh_lm_path_enrol, conf.int =TRUE) %>%mutate(Model ="LM + pathogen (enrolment only)")) %>%filter(term =="LDH_activity") %>%select( Model,Estimate = estimate,LowerCI = conf.low,UpperCI = conf.high, p.value )ldh_compare_table <- ldh_enrol_compare %>%mutate(p.value =ifelse(p.value <0.001, "<0.001", as.character(signif(p.value, 3))) )kable( ldh_compare_table,caption ="Table 10. Comparison of LDH model estimates and 95% confidence intervals for the full dataset and enrolment samples only dataset.",booktabs =TRUE,align =c("l", "c", "c", "c", "c")) %>%kable_styling(full_width =FALSE,position ="center" )
Table 10. Comparison of LDH model estimates and 95% confidence intervals for the full dataset and enrolment samples only dataset.
Model
Estimate
LowerCI
UpperCI
p.value
LM + pathogen
0.1479150
0.1340708
0.1617592
<0.001
LM + pathogen (enrolment only)
0.1527455
0.1364615
0.1690296
<0.001
There is no difference in the conclusions drawn from these models. Increasing LDH activity is associated with increasing sLPS/IgG OD. There is a slight increase in LDH estimate when removing follow-up samples but confidence intervals overlap substantially and direction and magnitude of effect remained similar.
2.12 Objective 2 conclusions
Inflammatory marker activities and sLPS/IgG OD differed across some pathogen groups, indicating that the severity and nature of inflammation may vary slightly depending on the causative organism. However, descriptive and non-parametric analyses demonstrated variability in biomarker activity between pathogens and overlap in inflammatory responses across pathogen categories. Overall, these findings suggest that while certain pathogens may be associated with differing levels of inflammation, the relationship is not strongly discriminatory, and substantial variability exists within groups. This supports the interpretation that pathogen identity alone does not fully explain variation in inflammatory marker activities or sLPS/IgG OD, and that other host or contextual factors (e.g. immune competence, age, extent of tissue damage, pathogen load) likely contribute to observed responses. The substantial overlap among pathogen groups for all three biomarkers supports the results of Objective 1, where pathogen identification was not achievable solely on the basis of inflammatory biomarker concentrations.
Modelling results indicated that both LDH and NAGase activity were positively associated with sLPS/IgG OD, suggesting that increasing inflammatory activity corresponds to increasing ELISA signal. After adjustment for pathogen group, both NAGase activity and LDH activity remained positively associated with sLPS/IgG OD (p < 0.001 for both models), demonstrating that sLPS/IgG reflects inflammation independently of the causative organism. The estimated NAGase coefficient was modestly reduced (~11%) following pathogen adjustment, whereas the LDH coefficient remained largely unchanged, indicating minimal confounding. The LDH model explained a greater proportion of the variation in sLPS/IgG OD (adjusted R² = 0.483) than the NAGase model (adjusted R² = 0.315), suggesting a stronger relationship between LDH activity and ELISA response.
Rowe, S., House, J. K., Pooley, H., Bullen, S., Humphris, M., Ingenhoff, L., Norris, J. M., & Zadoks, R. N. (2024). Evaluation of point-of-care tests for identification of pathogens to inform clinical mastitis treatment decisions in pasture- and confinement-managed dairy cows in Australia. Journal of Dairy Science, 107(10), 8271–8285. https://doi.org/10.3168/jds.2023-24612