Skip to contents

Modality Comparison Analysis for digital pathology validation studies. Compare agreement between different diagnostic modalities (e.g., glass slides vs digital images) with specialized metrics for pathology applications including discordance pattern analysis and HER2 scoring validation.

Usage

modalitycomparison(
  data,
  modality1_var,
  modality2_var,
  case_id = NULL,
  modality1_name = "Modality 1",
  modality2_name = "Modality 2",
  show_discordance_analysis = TRUE,
  score_categories = "auto",
  show_contingency_table = TRUE,
  calculate_weighted_kappa = FALSE,
  confidence_intervals = TRUE,
  directional_analysis = TRUE,
  low_end_focus = FALSE,
  show_plots = TRUE
)

Arguments

data

The data as a data frame with paired observations from two modalities.

modality1_var

Variable containing scores/ratings from the first modality (e.g., glass slides).

modality2_var

Variable containing scores/ratings from the second modality (e.g., digital images).

case_id

Optional case identifier variable for tracking individual cases.

modality1_name

Descriptive name for the first modality (e.g., "Glass Slides").

modality2_name

Descriptive name for the second modality (e.g., "Digital Images").

show_discordance_analysis

Perform detailed analysis of discordance patterns between modalities.

score_categories

Category system for score interpretation and analysis.

show_contingency_table

Display detailed cross-tabulation of scores between modalities.

calculate_weighted_kappa

Calculate weighted kappa for ordinal scores (requires ordered categories).

confidence_intervals

Calculate and display 95\ for agreement statistics.

directional_analysis

Analyze systematic bias in one direction (e.g., higher scores on digital vs glass).

low_end_focus

Perform specialized analysis focusing on agreement at low expression levels (relevant for HER2-low/null distinction).

show_plots

Generate scatter plots and agreement visualization.

Value

A results object containing:

results$todoa html
results$overviewTablea table
results$agreementTablea table
results$contingencyTablea table
results$discordanceTablea table
results$directionalBiasTablea table
results$lowEndAnalysisTablea table
results$caseDetailTablea table
results$agreementPlotan image
results$discordancePlotan image

Tables can be converted to data frames with asDF or as.data.frame. For example:

results$overviewTable$asDF

as.data.frame(results$overviewTable)

Examples

# Basic modality comparison
result1 <- modalitycomparison(
  data = data,
  modality1_var = "glass_slides",
  modality2_var = "digital_images",
  case_id = "case_number"
)

# HER2 scoring comparison with 5-category analysis
result2 <- modalitycomparison(
  data = her2_data,
  modality1_var = "glass_score",
  modality2_var = "digital_score",
  case_id = "case_id",
  score_categories = "her2_5cat",
  show_discordance_analysis = TRUE
)