# Attach packages
knitr::opts_chunk$set(echo=TRUE)
library(knitr)
library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(tibble)
library(forcats)
library(stringr)
library(ggtree)
## ggtree v4.0.4 Learn more at https://yulab-smu.top/contribution-tree-data/
## 
## Please cite:
## 
## Shuangbin Xu, Lin Li, Xiao Luo, Meijun Chen, Wenli Tang, Li Zhan, Zehan
## Dai, Tommy T. Lam, Yi Guan, Guangchuang Yu. Ggtree: A serialized data
## object for visualization of a phylogenetic tree and annotation data.
## iMeta 2022, 1(4):e56. doi:10.1002/imt2.56
## 
## Attaching package: 'ggtree'
## The following object is masked from 'package:tidyr':
## 
##     expand
library(ggtreeExtra)
## ggtreeExtra v1.20.1 Learn more at https://yulab-smu.top/contribution-tree-data/
## 
## Please cite:
## 
## S Xu, Z Dai, P Guo, X Fu, S Liu, L Zhou, W Tang, T Feng, M Chen, L
## Zhan, T Wu, E Hu, Y Jiang, X Bo, G Yu. ggtreeExtra: Compact
## visualization of richly annotated phylogenetic data. Molecular Biology
## and Evolution. 2021, 38(9):4039-4042. doi: 10.1093/molbev/msab166
library(ape)
## 
## Attaching package: 'ape'
## The following object is masked from 'package:ggtree':
## 
##     rotate
## The following object is masked from 'package:dplyr':
## 
##     where
library(phangorn)
library(scales)
library(ggnewscale)
library(sf)
## Linking to GEOS 3.13.1, GDAL 3.11.4, PROJ 9.7.0; sf_use_s2() is TRUE
library(ggspatial)
library(purrr)
## 
## Attaching package: 'purrr'
## The following object is masked from 'package:scales':
## 
##     discard
library(patchwork)
library(ComplexHeatmap)
## Loading required package: grid
## ========================================
## ComplexHeatmap version 2.26.1
## Bioconductor page: http://bioconductor.org/packages/ComplexHeatmap/
## Github page: https://github.com/jokergoo/ComplexHeatmap
## Documentation: http://jokergoo.github.io/ComplexHeatmap-reference
## 
## If you use it in published research, please cite either one:
## - Gu, Z. Complex Heatmap Visualization. iMeta 2022.
## - Gu, Z. Complex heatmaps reveal patterns and correlations in multidimensional 
##     genomic data. Bioinformatics 2016.
## 
## 
## The new InteractiveComplexHeatmap package can directly export static 
## complex heatmaps into an interactive Shiny app with zero effort. Have a try!
## 
## This message can be suppressed by:
##   suppressPackageStartupMessages(library(ComplexHeatmap))
## ========================================
library(circlize)
## ========================================
## circlize version 0.4.17
## CRAN page: https://cran.r-project.org/package=circlize
## Github page: https://github.com/jokergoo/circlize
## Documentation: https://jokergoo.github.io/circlize_book/book/
## 
## If you use it in published research, please cite:
## Gu, Z. circlize implements and enhances circular visualization
##   in R. Bioinformatics 2014.
## 
## This message can be suppressed by:
##   suppressPackageStartupMessages(library(circlize))
## ========================================
## 
## Attaching package: 'circlize'
## The following object is masked from 'package:ape':
## 
##     degree
library(grid)
library(FSA)
## ## FSA v0.10.1. See citation('FSA') if used in publication.
## ## Run fishR() for related website and fishR('IFAR') for related book.
library(ggpubr)
## Registered S3 methods overwritten by 'car':
##   method       from
##   hist.boot    FSA 
##   confint.boot FSA
## 
## Attaching package: 'ggpubr'
## The following object is masked from 'package:ape':
## 
##     rotate
## The following object is masked from 'package:ggtree':
## 
##     rotate
library(igraph)
## 
## Attaching package: 'igraph'
## The following object is masked from 'package:circlize':
## 
##     degree
## The following objects are masked from 'package:purrr':
## 
##     compose, simplify
## The following object is masked from 'package:phangorn':
## 
##     diversity
## The following objects are masked from 'package:ape':
## 
##     degree, edges, mst, ring
## The following object is masked from 'package:tibble':
## 
##     as_data_frame
## The following object is masked from 'package:tidyr':
## 
##     crossing
## The following objects are masked from 'package:dplyr':
## 
##     as_data_frame, groups, union
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
library(ggraph)

Participant data

# Import and tidy the participant data

# Import the data
part_data <- read.csv("Data/Participant_data.csv", na.strings = "")

# Set missing data to NA
part_data[part_data == 99 ] <- NA

# Tidy up categorical variables
part_data$sex <- as.factor(part_data$sex)
part_data$follow_up <- as.factor(part_data$follow_up)
part_data$where_defecate <- as.factor(part_data$where_defecate)
part_data <- part_data %>%
  mutate(
    where_defecate = case_when(
      where_defecate %in% c("bush", "other") ~ "other",
      TRUE ~ where_defecate
    )
  )
part_data$drinking_water_source <- as.factor(part_data$drinking_water_source)

# Re-name variables for colonisation in 2023 (baseline) and 2024 (follow-up)
names(part_data)[names(part_data) == "baseline_ESBL_E_coli"] <- "2023"
names(part_data)[names(part_data) == "fu_ESBL_E_coli"] <- "2024"

# Convert and label categories
part_data$district <- factor(part_data$district, levels = c(0, 1), labels = c('Nsanje', 'Mangochi'))
part_data$'2023' <- factor(part_data$'2023', levels = c(0, 1), labels = c('No', 'Yes'))
part_data$'2024' <- factor(part_data$'2024', levels = c(0, 1), labels = c('No', 'Yes'))
part_data$baseline_network_strain <- factor(part_data$baseline_network_strain, levels = c(0, 1), labels = c('No', 'Yes'))
part_data$fu_network_strain <- factor(part_data$fu_network_strain, levels = c(0, 1), labels = c('No', 'Yes'))

# Make variables for colonisation with non-network strains at each time point
part_data$baseline_non_network_strain <- ifelse(
  part_data$`2023` == "No",
  "No",
  ifelse(
    part_data$baseline_network_strain == "Yes",
    "No",
    "Yes"
  )
)

part_data$fu_non_network_strain <- ifelse(
  part_data$`2024` == "No",
  "No",
  ifelse(
    part_data$fu_network_strain == "Yes",
    "No",
    "Yes"
  )
)
# Age
summary(part_data$age_at_baseline)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    2.00    4.00    6.00   11.92   16.50   47.00
# Categorical summaries
categorical_vars <- c(
  "sex",
  "follow_up",
  "where_defecate",
  "drinking_water_source"
)

# Generate summary of categorical variables
lapply(categorical_vars, function(v) {
  part_data %>%
    count(.data[[v]]) %>%
    mutate(percent = round(100 * n / sum(n), 1))
})
## [[1]]
##      sex   n percent
## 1 female 122    57.8
## 2   male  89    42.2
## 
## [[2]]
##   follow_up   n percent
## 1        no  58    27.5
## 2       yes 153    72.5
## 
## [[3]]
##   where_defecate   n percent
## 1        missing   1     0.5
## 2          other  28    13.3
## 3         toilet 182    86.3
## 
## [[4]]
##                     drinking_water_source   n percent
## 1                                borehole 204    96.7
## 2                                 missing   1     0.5
## 3 unprotected_shallow_well_river_dam_lake   6     2.8

Per district

Mangochi

# Filter the data
part_data_mangochi <- part_data %>%
  filter(district == "Mangochi")
# Age
summary(part_data_mangochi$age_at_baseline)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     2.0     4.0     6.0    10.2    12.0    47.0
# Generate summary of categorical variables
lapply(categorical_vars, function(v) {
  part_data_mangochi %>%
    count(.data[[v]]) %>%
    mutate(percent = round(100 * n / sum(n), 1))
})
## [[1]]
##      sex  n percent
## 1 female 85    52.1
## 2   male 78    47.9
## 
## [[2]]
##   follow_up   n percent
## 1        no  40    24.5
## 2       yes 123    75.5
## 
## [[3]]
##   where_defecate   n percent
## 1        missing   1     0.6
## 2          other  22    13.5
## 3         toilet 140    85.9
## 
## [[4]]
##                     drinking_water_source   n percent
## 1                                borehole 156    95.7
## 2                                 missing   1     0.6
## 3 unprotected_shallow_well_river_dam_lake   6     3.7

Nsanje

# Filter the data
part_data_nsanje <- part_data %>%
  filter(district == "Nsanje")
# Age
summary(part_data_nsanje$age_at_baseline)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    3.00    7.00   14.00   17.77   26.25   46.00
# Generate summary of categorical variables
lapply(categorical_vars, function(v) {
  part_data_nsanje %>%
    count(.data[[v]]) %>%
    mutate(percent = round(100 * n / sum(n), 1))
})
## [[1]]
##      sex  n percent
## 1 female 37    77.1
## 2   male 11    22.9
## 
## [[2]]
##   follow_up  n percent
## 1        no 18    37.5
## 2       yes 30    62.5
## 
## [[3]]
##   where_defecate  n percent
## 1          other  6    12.5
## 2         toilet 42    87.5
## 
## [[4]]
##   drinking_water_source  n percent
## 1              borehole 48     100

Differences between locations

# Age
wilcox.test(
  age_at_baseline ~ district,
  data = part_data %>% filter(district %in% c("Mangochi", "Nsanje"))
)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  age_at_baseline by district
## W = 5746, p-value = 7.286e-07
## alternative hypothesis: true location shift is not equal to 0
# Sex
sex_tab <- table(
  part_data$sex,
  part_data$district
)

fisher.test(sex_tab)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  sex_tab
## p-value = 0.002559
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  1.413660 7.156798
## sample estimates:
## odds ratio 
##   3.071026
# Follow-up
fu_tab <- table(
  part_data$follow_up,
  part_data$district
)

fisher.test(fu_tab)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  fu_tab
## p-value = 0.09744
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.8679588 3.8373770
## sample estimates:
## odds ratio 
##   1.839286
# Latrine
latrine_tab <- table(
  part_data$where_defecate,
  part_data$district
)

fisher.test(latrine_tab)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  latrine_tab
## p-value = 1
## alternative hypothesis: two.sided
# Drinking water
water_tab <- table(
  part_data$drinking_water_source,
  part_data$district
)

fisher.test(water_tab)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  water_tab
## p-value = 0.4904
## alternative hypothesis: two.sided

Carriage dynamics

# Mutate data to show dynamics in participants followed-up
fu_part_data <- part_data %>%
  filter(follow_up == "yes") %>%
  mutate('change' = case_when(
    `2023` == "No" & `2024` == "No" ~ "Stayed negative",
    `2023` == "Yes" & `2024` == "Yes" ~ "Stayed positive",
    `2023` == "No" & `2024` == "Yes" ~ "Became positive",
    `2023` == "Yes" & `2024` == "No" ~ "Became negative"
  ))

# Set the levels for the change variable to the desired order
fu_part_data$change <- factor(fu_part_data$change, 
                              levels = c("Stayed negative", "Became positive", "Became negative", "Stayed positive"))

# Summarise counts of participants for each type of change, and negate values for "negative" changes
summary_data <- fu_part_data %>%
  count(change) %>%
  mutate(n = ifelse(change %in% c("Stayed negative", "Became negative"), -n, n))

# Add the 'baseline' column based on the conditions
summary_data <- summary_data %>%
  mutate(baseline = case_when(
    change %in% c('Stayed negative', 'Became positive') ~ 'Negative',
    change %in% c('Stayed positive', 'Became negative') ~ 'Positive'
  ))

# Create the plot
ESBL_dynamics <- ggplot(summary_data, aes(x = change, y = n)) +
  geom_bar(stat = "identity", aes(fill = baseline), colour = "black", linewidth = 0.3, width = 0.7) +
  scale_y_continuous(labels = abs) +
  scale_fill_manual(values = c("Negative" = "cornflowerblue", 
                                "Positive" = "firebrick")) +
  labs(fill = "Baseline status") +
  labs(x = "ESBL carriage dynamic", 
       y = "Number of participants") +
  theme_minimal() +
  theme(
    axis.title.x = element_text(margin = margin(t = 10)),  # Space above x-axis label
    axis.title.y = element_text(margin = margin(r = 10)),  # Space to the right of y-axis label
    plot.margin = margin(r = 30)  # Extra space on the right of the plot for legend
  ) +
  geom_hline(yintercept = 0, linetype = "dashed")

# Save the plot
ggsave("Figures/ESBL_dynamics.png", ESBL_dynamics, height = 5, dpi = 600)
## Saving 7 x 5 in image
# Print the plot
print(ESBL_dynamics)

Change in prevalence

# Specify columns to look at prevalence in
cols <- c("2023", "2024", "baseline_network_strain", "baseline_non_network_strain", "fu_network_strain", "fu_non_network_strain")

# Calculate prevalences in 2023 and 2024 of colonisation, colonisation with a network strain, and colonisation with a non_network strain
prevalence <- sapply(part_data[cols], function(x) {
  mean(x == "Yes", na.rm = TRUE)
})

print(prevalence)
##                        2023                        2024 
##                   0.3412322                   0.5424837 
##     baseline_network_strain baseline_non_network_strain 
##                   0.1706161                   0.1706161 
##           fu_network_strain       fu_non_network_strain 
##                   0.2549020                   0.2875817
# Calculate prevalences in participants followed-up
prevalence <- sapply(fu_part_data[cols], function(x) {
  mean(x == "Yes", na.rm = TRUE)
})

print(prevalence)
##                        2023                        2024 
##                   0.3333333                   0.5424837 
##     baseline_network_strain baseline_non_network_strain 
##                   0.1568627                   0.1764706 
##           fu_network_strain       fu_non_network_strain 
##                   0.2549020                   0.2875817
# Check for significant rise in prevalence in colonisation follow-up participants using McNemar's test for paired data
colonisation_tab <- table(fu_part_data$'2023', fu_part_data$'2024')
mcnemar.test(colonisation_tab)
## 
##  McNemar's Chi-squared test with continuity correction
## 
## data:  colonisation_tab
## McNemar's chi-squared = 11.174, df = 1, p-value = 0.0008293

Prevalence differences between locations

# Baseline prevalence
bl_prev_tab <- table(
  part_data$"2023",
  part_data$district
)

bl_prev_tab
##      
##       Nsanje Mangochi
##   No      32      107
##   Yes     16       56
chisq.test(bl_prev_tab, correct = FALSE)
## 
##  Pearson's Chi-squared test
## 
## data:  bl_prev_tab
## X-squared = 0.017246, df = 1, p-value = 0.8955
# Follow-up prevalence
fu_prev_tab <- table(
  fu_part_data$"2024",
  fu_part_data$district
)

fu_prev_tab
##      
##       Nsanje Mangochi
##   No      12       58
##   Yes     18       65
chisq.test(fu_prev_tab, correct = FALSE)
## 
##  Pearson's Chi-squared test
## 
## data:  fu_prev_tab
## X-squared = 0.49739, df = 1, p-value = 0.4806

Prevalence summaries with confidence intervals

All participants

# Define the variables of interest
vars <- c("2023", "2024")

# Initialize the summary dataframe
prevalence_summary <- data.frame(
  Variable = vars,
  Positive_Count = NA,
  Total_N = NA,
  Prevalence_Percent = NA,
  CI_Lower = NA,
  CI_Upper = NA
)

# Loop through variables and calculate values
for (i in seq_along(vars)) {
  var <- vars[i]
  x <- part_data[[var]]
  pos <- sum(x %in% c("Yes"), na.rm = TRUE)
  total <- sum(!is.na(x))
  test <- prop.test(pos, total)

  prevalence_summary$Positive_Count[i] <- pos
  prevalence_summary$Total_N[i] <- total
  prevalence_summary$Prevalence_Percent[i] <- round(100 * pos / total, 1)
  prevalence_summary$CI_Lower[i] <- round(100 * test$conf.int[1], 1)
  prevalence_summary$CI_Upper[i] <- round(100 * test$conf.int[2], 1)
}

# Print the table
print(prevalence_summary)
##   Variable Positive_Count Total_N Prevalence_Percent CI_Lower CI_Upper
## 1     2023             72     211               34.1     27.8     41.0
## 2     2024             83     153               54.2     46.0     62.3

Baseline prevalence in follow-up participants

# Define the variables of interest
vars <- c("2023")

# Initialize the summary dataframe
prevalence_summary <- data.frame(
  Variable = vars,
  Positive_Count = NA,
  Total_N = NA,
  Prevalence_Percent = NA,
  CI_Lower = NA,
  CI_Upper = NA
)

# Loop through variables and calculate values
for (i in seq_along(vars)) {
  var <- vars[i]
  x <- fu_part_data[[var]]
  pos <- sum(x %in% c("Yes"), na.rm = TRUE)
  total <- sum(!is.na(x))
  test <- prop.test(pos, total)

  prevalence_summary$Positive_Count[i] <- pos
  prevalence_summary$Total_N[i] <- total
  prevalence_summary$Prevalence_Percent[i] <- round(100 * pos / total, 1)
  prevalence_summary$CI_Lower[i] <- round(100 * test$conf.int[1], 1)
  prevalence_summary$CI_Upper[i] <- round(100 * test$conf.int[2], 1)
}

# Print the table
print(prevalence_summary)
##   Variable Positive_Count Total_N Prevalence_Percent CI_Lower CI_Upper
## 1     2023             51     153               33.3     26.1     41.5

Mangochi District

# Define the variables of interest
vars <- c("2023", "2024")

# Initialize the summary dataframe
prevalence_summary <- data.frame(
  Variable = vars,
  Positive_Count = NA,
  Total_N = NA,
  Prevalence_Percent = NA,
  CI_Lower = NA,
  CI_Upper = NA
)

# Loop through variables and calculate values
for (i in seq_along(vars)) {
  var <- vars[i]
  x <- part_data_mangochi[[var]]
  pos <- sum(x %in% c("Yes"), na.rm = TRUE)
  total <- sum(!is.na(x))
  test <- prop.test(pos, total)

  prevalence_summary$Positive_Count[i] <- pos
  prevalence_summary$Total_N[i] <- total
  prevalence_summary$Prevalence_Percent[i] <- round(100 * pos / total, 1)
  prevalence_summary$CI_Lower[i] <- round(100 * test$conf.int[1], 1)
  prevalence_summary$CI_Upper[i] <- round(100 * test$conf.int[2], 1)
}

# Print the table
print(prevalence_summary)
##   Variable Positive_Count Total_N Prevalence_Percent CI_Lower CI_Upper
## 1     2023             56     163               34.4     27.2     42.2
## 2     2024             65     123               52.8     43.7     61.8

Nsanje District

# Define the variables of interest
vars <- c("2023", "2024")

# Initialize the summary dataframe
prevalence_summary <- data.frame(
  Variable = vars,
  Positive_Count = NA,
  Total_N = NA,
  Prevalence_Percent = NA,
  CI_Lower = NA,
  CI_Upper = NA
)

# Loop through variables and calculate values
for (i in seq_along(vars)) {
  var <- vars[i]
  x <- part_data_nsanje[[var]]
  pos <- sum(x %in% c("Yes"), na.rm = TRUE)
  total <- sum(!is.na(x))
  test <- prop.test(pos, total)

  prevalence_summary$Positive_Count[i] <- pos
  prevalence_summary$Total_N[i] <- total
  prevalence_summary$Prevalence_Percent[i] <- round(100 * pos / total, 1)
  prevalence_summary$CI_Lower[i] <- round(100 * test$conf.int[1], 1)
  prevalence_summary$CI_Upper[i] <- round(100 * test$conf.int[2], 1)
}

# Print the table
print(prevalence_summary)
##   Variable Positive_Count Total_N Prevalence_Percent CI_Lower CI_Upper
## 1     2023             16      48               33.3     20.8     48.5
## 2     2024             18      30               60.0     40.8     76.8

Isolate data

# Import the isolate data
isolate_data_human <- read.csv("Data/Malawi_ESBL_E_coli_isolates.csv")

# Label and tidy ESBL isolate data from 2023
isolate_data_human$District <- as.factor(isolate_data_human$District)
isolate_data_human$Year <- as.factor(isolate_data_human$Year)
isolate_data_human$ST <- as.factor(isolate_data_human$ST)
isolate_data_human$popPUNK_cluster <- as.factor(isolate_data_human$popPUNK_cluster)
isolate_data_human$Phylogroup <- as.factor(isolate_data_human$Phylogroup)
isolate_data_human$fu_participant <- factor(isolate_data_human$fu_participant, levels = c(0, 1), labels = c('No', 'Yes'))

# Generate lineage column combining ST and popPUNK cluster
isolate_data_human$Lineage <- paste0("ST", isolate_data_human$ST, "_popPUNK", isolate_data_human$popPUNK_cluster)
isolate_data_human$Lineage <- as.factor(isolate_data_human$Lineage)

Lineages

# Print a summary of the lineages
summary(isolate_data_human$Lineage)
##        ST10_popPUNK5       ST10_popPUNK92     ST1015_popPUNK11 
##                    4                    6                   10 
##  ST10955_popPUNK1410   ST1139_popPUNK1409    ST1158_popPUNK453 
##                    1                    2                    1 
##  ST12714_popPUNK1408      ST131_popPUNK25       ST131_popPUNK4 
##                    2                   10                    9 
##  ST13823_popPUNK1407     ST1421_popPUNK62    ST1485_popPUNK135 
##                    8                    1                    1 
##       ST167_popPUNK5    ST1722_popPUNK190      ST189_popPUNK35 
##                    5                    3                    2 
## ST206_popPUNK41_1328    ST2161_popPUNK133    ST2172_popPUNK271 
##                   14                    1                    1 
##     ST2852_popPUNK18     ST295_popPUNK107      ST315_popPUNK20 
##                    5                    2                    1 
##      ST349_popPUNK73     ST3580_popPUNK18       ST38_popPUNK20 
##                    1                    5                   23 
##      ST44_popPUNK223      ST443_popPUNK61    ST5614_popPUNK251 
##                    6                    1                   10 
##       ST58_popPUNK11     ST5909_popPUNK46      ST617_popPUNK60 
##                    8                    3                    2 
##     ST6359_popPUNK60     ST636_popPUNK140      ST648_popPUNK31 
##                    3                    1                    3 
##        ST73_popPUNK8      ST8025_popPUNK5 
##                    1                    3
# STs belonging to more than one popPUNK cluster
ST_multiple_popPUNK <- isolate_data_human %>%
  group_by(ST) %>%
  summarise(n_popPUNK = n_distinct(popPUNK_cluster)) %>%
  filter(n_popPUNK > 1)
ST_multiple_popPUNK
## # A tibble: 2 Ă— 2
##   ST    n_popPUNK
##   <fct>     <int>
## 1 10            2
## 2 131           2
# popPUNK clusters belonging to more than one ST
popPUNK_multiple_ST <- isolate_data_human %>%
  group_by(popPUNK_cluster) %>%
  summarise(n_ST = n_distinct(ST)) %>%
  filter(n_ST > 1)
popPUNK_multiple_ST
## # A tibble: 5 Ă— 2
##   popPUNK_cluster  n_ST
##   <fct>           <int>
## 1 11                  2
## 2 18                  2
## 3 20                  2
## 4 5                   3
## 5 60                  2

Sequence types (MLST)

# Plot STs of all isolates
ST_plot <- ggplot(isolate_data_human, aes(x = fct_rev(fct_infreq(ST)), fill = Phylogroup)) +
  geom_bar(color = "black", linewidth = 0.3) +
  coord_flip() +
  theme_bw() +
  labs(x = "ST", y = "Number of Isolates") +
  scale_fill_brewer(palette = "Set2")

# Save the plot
ggsave("Figures/ST_plot.png", ST_plot, width = 4, height = 5, dpi = 600)

# Print the plot
print(ST_plot)

# Add year breakdown to ST plot

# Define the number of isolates per year
isolate_totals <- c(`2023` = 76, `2024` = 83)

# Create a dataset of all possible combinations of ST and Year (2023, 2024)
all_st_year_combinations <- expand.grid(ST = unique(isolate_data_human$ST), Year = c(2023, 2024))
all_st_year_combinations$Year <- as.factor(all_st_year_combinations$Year)

# Summarize ST rates per 100 isolates per year
ST_summary_data <- isolate_data_human %>%
  group_by(ST, Year) %>%
  summarise(Count = n(), .groups = "drop") %>%
  full_join(all_st_year_combinations, by = c("ST", "Year")) %>%  # Ensure all ST-Year combinations exist
  mutate(Count = replace_na(Count, 0)) %>%  # Fill missing values with 0
  mutate(rate_per_100 = (Count / isolate_totals[as.character(Year)]) * 100)

# Calculate total counts of each ST to enable plot ordering
ST_summary_data <- ST_summary_data %>%
  group_by(ST) %>%
  mutate(total_count = sum(Count)) %>%
  ungroup()

# Reorder samples in highest to lowest total isolate count order to match the first ST plot
ST_summary_data <- ST_summary_data %>%
  mutate(ST = fct_rev(fct_reorder(ST, total_count, .desc = TRUE)))

# Plot ST rates per 100 participants per year
ST_plot_years <- ggplot(ST_summary_data, aes(x = ST, y = rate_per_100, fill = factor(Year))) +
  geom_bar(color = "black", linewidth = 0.3, stat = "identity", position = position_dodge(width = 0.8)) +
  coord_flip() +
  theme_bw() +
  labs(x = "ST", y = "Percentage of isolates per year", fill = "Year")

# Save the plot
ggsave("Figures/ST_plot_years.png", ST_plot_years, width = 4, height = 5, dpi = 600)

# Print the plot
print(ST_plot_years)

# Fisher exact test with Monte Carlo simulation
st_year_tab <- xtabs(Count ~ ST + Year, data = ST_summary_data)
set.seed(1)
fisher.test(st_year_tab, simulate.p.value = TRUE, B = 1e4)
## 
##  Fisher's Exact Test for Count Data with simulated p-value (based on
##  10000 replicates)
## 
## data:  st_year_tab
## p-value = 9.999e-05
## alternative hypothesis: two.sided

ARGs

# Import and clean ARG data

# Import data
ARGs <- read.csv("Data/ARGs.csv", check.names = FALSE)

# Remove '.fasta' from all entries in column 1
ARGs[, 1] <- gsub("\\.fasta", "", ARGs[, 1])

# Apply transformations to all columns except 'Isolate' names so ARGs are present (1) or absent (0)
ARGs[, -1] <- apply(ARGs[, -1], 2, function(x) {
  ifelse(is.na(as.numeric(x)), 0, 1)
})
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
# Clean column names
colnames(ARGs) <- gsub("bla", "", colnames(ARGs))  # Remove 'bla'
colnames(ARGs) <- sapply(colnames(ARGs), function(x) {
  paste0(toupper(substring(x, 1, 1)), substring(x, 2))
})  # Capitalize first letter

# Create a base name without suffixes for grouping
base_names <- sub("_.*", "", colnames(ARGs))

# Create a list of indices for columns to merge based on cleaned names
cols_to_merge_list <- split(seq_along(colnames(ARGs)), base_names)

# Track columns to delete after summing
cols_to_delete <- c()

# Sum values into the first column for each group and mark columns for deletion
for (col_indices in cols_to_merge_list) {
  if (length(col_indices) > 1) {
    # Sum values into the first column
    summed_column <- rowSums(ARGs[, col_indices], na.rm = TRUE)
    
    # Set to 1 if total is greater than 1
    summed_column[summed_column > 1] <- 1
    
    # Replace the first occurrence with the summed column
    ARGs[, col_indices[1]] <- summed_column
    
    # Mark all other columns except the first for deletion
    cols_to_delete <- c(cols_to_delete, col_indices[-1])
  }
}

# Delete the marked columns all at once after the loop
ARGs <- ARGs[, -cols_to_delete]

# Clean column names (remove everything after and including '_')
colnames(ARGs) <- gsub("_.*", "", colnames(ARGs))

# Mutate the data to have Isolate and ARG columns
ARGs_long <- ARGs %>%
  pivot_longer(
    cols = -Isolate,
    names_to = "ARG",
    values_to = "Presence"
  )

# Filter for only relevant rows (where presence is 1)
ARGs_long <- ARGs_long %>%
  dplyr::filter(Presence == 1) %>%
  dplyr::select(-Presence)

# Print all unique AMR determinants in data set
(colnames(ARGs)[-1])
##  [1] "ARR-3"         "Aac(3)-IIa"    "Aac(3)-IId"    "Aac(3)-IVa"   
##  [5] "Aac(6')-Ib-cr" "AadA16"        "AadA2"         "AadA5"        
##  [9] "Ant(3'')-Ia"   "Aph(3'')-Ib"   "Aph(4)-Ia"     "Aph(6)-Id"    
## [13] "CTX-M-14"      "CTX-M-14b"     "CTX-M-15"      "CTX-M-27"     
## [17] "CTX-M-55"      "CTX-M-65"      "DHA-1"         "OXA-1"        
## [21] "TEM-141"       "TEM-1B"        "CatA1"         "DfrA12"       
## [25] "DfrA14"        "DfrA17"        "DfrA1"         "DfrA27"       
## [29] "DfrA5"         "DfrA7"         "DfrA8"         "Erm(B)"       
## [33] "FloR"          "FosA3"         "Mph(A)"        "QepA1"        
## [37] "QepA4"         "QnrB1"         "QnrB4"         "QnrB6"        
## [41] "QnrS1"         "Sul1"          "Sul2"          "Tet(A)"       
## [45] "Tet(B)"        "Tet(D)"
# Define the AMR classes and their associated genes
aminoglycoside = "Aac|Aad|Ant|Aph"
beta_lactam_AmpC = "DHA"
beta_lactam_ESBL = "CTX"
beta_lactam_other = "OXA|TEM"
chloramphenicol = "Cat|FloR"
fosfomycin = "Fos"
macrolide = "Mph"
MDR = "Erm"
quinolone = "Qnr|Qep"
rifampicin = "ARR"
sulphonamide = "Sul"
tetracycline = "Tet"
trimethoprim = "Dfr"
# Calculate the absolute abundance (counting only where Presence is 1) and label ARG classes
ARG_abundance <- ARGs_long %>%
  group_by(ARG) %>%
  summarise(Count = n(), .groups = "drop") %>%
  mutate(class = case_when(
    str_detect(ARG, aminoglycoside) ~ "Aminoglycoside",
    str_detect(ARG, beta_lactam_AmpC) ~ "Beta-lactam (AmpC)",
    str_detect(ARG, beta_lactam_ESBL) ~ "Beta-lactam (ESBL)",
    str_detect(ARG, beta_lactam_other) ~ "Beta-lactam (other)",
    str_detect(ARG, chloramphenicol) ~ "Chloramphenicol",
    str_detect(ARG, fosfomycin) ~ "Fosfomycin",
    str_detect(ARG, macrolide) ~ "Macrolide",
    str_detect(ARG, MDR) ~ "MDR",
    str_detect(ARG, quinolone) ~ "Quinolone",
    str_detect(ARG, rifampicin) ~ "Rifampicin",
    str_detect(ARG, sulphonamide) ~ "Sulphonamide",
    str_detect(ARG, tetracycline) ~ "Tetracycline",
    str_detect(ARG, trimethoprim) ~ "Trimethoprim",
    TRUE ~ NA_character_
  ))

# Reorder ARGs for plotting: first by class, then by count (highest to lowest)
ARG_abundance <- ARG_abundance %>%
  arrange(class, desc(Count)) %>%
  mutate(ARG = factor(ARG, levels = ARG))

# Reverse the order of classes and ARGs for top-to-bottom plotting
ARG_abundance <- ARG_abundance %>%
  mutate(class = factor(class, levels = sort(unique(class)))) %>%
  mutate(ARG = factor(ARG, levels = rev(ARG[order(ARG_abundance$class, -ARG_abundance$Count)])))

# Create the bar plot
AMR_plot <- ggplot(ARG_abundance, aes(y = ARG, x = Count, fill = class)) +
  geom_bar(color = "black", linewidth = 0.3, stat = "identity") +
  labs(y = "AMR Determinant", x = "Number of Isolates") +
  theme_bw() +
  guides(fill = guide_legend(title = "Class")) +  
  theme(axis.text.y = element_text(size = 10),
        plot.background = element_rect(fill = "transparent", colour = NA),
        legend.background = element_rect(fill = "transparent", colour = NA)
        ) +
  scale_fill_manual(values=c("#1b9e77", "#fdbf6f", "#7570b3", "#d95f02",
                   "#66a61e", "#e6ab02", "#a6761d", "#e7298a",
                   "#1f78b4", "#b2df8a", "#fb9a99", "#666666",
                   "#cab2d6", "#ffff99")) 

# Save the plot
ggsave("Figures/AMR_plot.png", AMR_plot, height = 7, width = 6, dpi = 600)

# Print the plot
print(AMR_plot)

# Add year breakdown in follow-up participants to ARG plot

# Add year to follow-up ARG data
ARGs <- ARGs %>%
  mutate(Year = case_when(
    grepl("^c", Isolate) ~ 2023,
    grepl("^f", Isolate) ~ 2024,
    TRUE ~ NA_real_
  ))

# Convert to long format
ARGs_fu_long <- ARGs %>%
  pivot_longer(cols = -c(Isolate, Year), names_to = "ARG", values_to = "Presence")

# Summarize counts for each gene per year
ARG_summary_data <- ARGs_fu_long %>%
  group_by(ARG, Year) %>%
  summarize(Count = sum(Presence), .groups = "drop") %>%
  mutate(rate_per_100 = (Count / isolate_totals[as.character(Year)]) * 100) %>%
  mutate(class = case_when(
    str_detect(ARG, aminoglycoside) ~ "Aminoglycoside",
    str_detect(ARG, beta_lactam_AmpC) ~ "Beta-lactam (AmpC)",
    str_detect(ARG, beta_lactam_ESBL) ~ "Beta-lactam (ESBL)",
    str_detect(ARG, beta_lactam_other) ~ "Beta-lactam (other)",
    str_detect(ARG, chloramphenicol) ~ "Chloramphenicol",
    str_detect(ARG, fosfomycin) ~ "Fosfomycin",
    str_detect(ARG, macrolide) ~ "Macrolide",
    str_detect(ARG, MDR) ~ "MDR",
    str_detect(ARG, quinolone) ~ "Quinolone",
    str_detect(ARG, rifampicin) ~ "Rifampicin",
    str_detect(ARG, sulphonamide) ~ "Sulphonamide",
    str_detect(ARG, tetracycline) ~ "Tetracycline",
    str_detect(ARG, trimethoprim) ~ "Trimethoprim",
    TRUE ~ NA_character_
  ))

# Calculate total counts of each ARG to enable plot ordering
ARG_summary_data <- ARG_summary_data %>%
  group_by(ARG) %>%
  mutate(total_count = sum(Count)) %>%
  ungroup() %>%
  filter(total_count > 0)

# Reverse the order of classes and ARGs for top-to-bottom plotting
ARG_summary_data <- ARG_summary_data %>%
  mutate(class = factor(class, levels = sort(unique(class)))) %>%
  group_by(ARG) %>% 
  slice_max(total_count, n = 1) %>%
  ungroup() %>%
  arrange(class, desc(total_count)) %>%
  mutate(ARG = factor(ARG, levels = rev(unique(ARG))))

# Plot ST rates per 100 participants per year
ARG_plot_years <- ggplot(ARG_summary_data, aes(x = ARG, y = rate_per_100, fill = factor(Year))) +
  geom_bar(color = "black", linewidth = 0.3, stat = "identity", position = position_dodge(width = 0.8)) +
  coord_flip() +
  theme_bw() +
  labs(x = "AMR Determinant", y = "Percentage of isolates per year", fill = "Year") +
  theme(axis.text.y = element_text(size = 10))  # Adjust y-axis text size for better readability

# Save the plot
ggsave("Figures/ARG_plot_years.png", ARG_plot_years, height = 7, width = 6, dpi = 600)

# Print the plot
print(ARG_plot_years)

# Fisher exact test with Monte Carlo simulation
arg_year_tab <- xtabs(Count ~ ARG + Year, data = ARG_summary_data)
set.seed(1)
fisher.test(arg_year_tab, simulate.p.value = TRUE, B = 1e4)
## 
##  Fisher's Exact Test for Count Data with simulated p-value (based on
##  10000 replicates)
## 
## data:  arg_year_tab
## p-value = 9.999e-05
## alternative hypothesis: two.sided

Plasmid types

# Import and can plasmid type data

# Import data
plasmids <- read.csv("Data/Plasmid_data.csv", check.names = FALSE)

# Remove '.fasta' from all entries in column 1
plasmids[, 1] <- gsub("\\.fasta", "", plasmids[, 1])

# Apply transformations to all columns except 'Isolate' names plasmids are present (1) or absent (0)
plasmids[, -1] <- apply(plasmids[, -1], 2, function(x) {
  ifelse(is.na(as.numeric(x)), 0, 1)
})
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
# Create a base name without suffixes for grouping
base_names <- sub("_.*", "", colnames(plasmids))

# Create a list of indices for columns to merge based on cleaned names
cols_to_merge_list <- split(seq_along(colnames(plasmids)), base_names)

# Track columns to delete after summing
cols_to_delete <- c()

# Sum values into the first column for each group and mark columns for deletion
for (col_indices in cols_to_merge_list) {
  if (length(col_indices) > 1) {
    # Sum values into the first column
    summed_column <- rowSums(plasmids[, col_indices], na.rm = TRUE)
    
    # Set to 1 if total is greater than 1
    summed_column[summed_column > 1] <- 1
    
    # Replace the first occurrence with the summed column
    plasmids[, col_indices[1]] <- summed_column
    
    # Mark all other columns except the first for deletion
    cols_to_delete <- c(cols_to_delete, col_indices[-1])
  }
}

# Delete the marked columns all at once after the loop
plasmids <- plasmids[, -cols_to_delete]

# Clean column names (remove everything after and including '_')
colnames(plasmids) <- gsub("_.*", "", colnames(plasmids))

# Mutate the data to have Isolate and ARG columns
plasmids_long <- plasmids %>%
  pivot_longer(
    cols = -Isolate,
    names_to = "Plasmid",
    values_to = "Presence"
  )

# filter for only relevant rows (where presence is 1)
plasmids_long <- plasmids_long %>%
  dplyr::filter(Presence == 1) %>%
  dplyr::select(-Presence)

# print all unique AMR determinants in data set
(colnames(plasmids)[-1])
##  [1] "IncA/C2"    "IncA/C"     "IncB/O/K/Z" "IncFIA"     "IncFIB"    
##  [6] "IncFIC"     "IncFII"     "IncHI1A"    "IncHI1B"    "IncHI2A"   
## [11] "IncHI2"     "IncI1"      "IncI2"      "IncIÎł"      "IncX1"     
## [16] "IncY"
# Calculate the absolute abundance (counting only where Presence is 1) of plasmids
plasmid_abundance <- plasmids_long %>%
  group_by(Plasmid) %>%                 
  summarise(Count = n(), .groups = "drop")

# Reorder plasmids based on Count
plasmid_abundance <- plasmid_abundance %>%
  mutate(Plasmid = fct_reorder(Plasmid, Count))

# Create the plot
plasmid_plot <- ggplot(plasmid_abundance, aes(y = Plasmid, x = Count)) +
  geom_bar(colour = "black", linewidth = 0.3, stat = "identity") +
  labs(y = "Plasmid Replicon", x = "Number of Isolates") +
  theme_bw() + 
  theme(axis.text.y = element_text(size = 10))


# Save the plot
ggsave("Figures/Plasmid_plot.png", plasmid_plot, height = 5, width = 4, dpi = 600)

# Print the plot
print(plasmid_plot)

Virulence

# Import data
virulence <- read.csv("Data/virulence.csv", check.names = FALSE)

# Remove '.fasta' from all entries in column 1
virulence[, 1] <- gsub("\\.fasta", "", virulence[, 1])

# Apply transformations to all columns except 'Isolate' names so gene names are present (1) or absent (0)
virulence[, -1] <- apply(virulence[, -1], 2, function(x) {
  ifelse(is.na(as.numeric(x)), 0, 1)
})
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
## Warning in ifelse(is.na(as.numeric(x)), 0, 1): NAs introduced by coercion
# Inspect data
virulence
##      #FILE NUM_FOUND aap/aspU afaA afaB-I afaC-I afaD afaE-I afaE-V afaF-III
## 1    cM10a         1        0    0      0      0    0      0      0        0
## 2    cM12a         1        0    0      0      0    0      0      0        0
## 3    cM19a         1        0    0      0      0    0      0      0        0
## 4    cM20a         1        0    0      0      0    0      0      0        0
## 5     cM2a         1        0    0      0      0    0      0      0        0
## 6    cM34a         1        0    0      0      0    0      0      0        0
## 7    cM35a         1        0    0      0      0    0      0      0        0
## 8     cM3a         1        0    0      0      0    0      0      0        0
## 9    cM41a         1        0    0      0      0    0      0      0        0
## 10   cM42a         1        0    0      0      0    0      0      0        0
## 11   cM42b         1        0    0      0      0    0      0      0        0
## 12   cM44b         1        0    0      0      0    0      0      0        0
## 13   cM59a         1        0    0      0      0    0      0      0        0
## 14   cM59b         1        0    0      0      0    0      0      0        0
## 15    cM5a         1        0    0      0      0    0      0      0        0
## 16    cM7b         1        0    0      0      0    0      0      0        0
## 17    cM8a         1        0    0      0      0    0      0      0        0
## 18    cM9b         1        0    0      0      0    0      0      0        0
## 19  cS100a         1        0    0      0      0    0      0      0        0
## 20  cS103a         1        0    0      0      0    0      0      0        0
## 21  cS104a         1        0    0      0      0    0      0      0        0
## 22  cS107a         1        0    0      0      0    0      0      0        0
## 23  cS108a         1        0    0      0      0    0      0      0        0
## 24  cS109a         1        0    0      0      0    0      0      0        0
## 25   cS10a         1        0    0      0      0    0      0      0        0
## 26  cS113a         1        1    0      0      0    0      0      0        0
## 27  cS115a         1        0    0      0      0    0      0      0        0
## 28  cS116a         1        0    0      0      0    0      0      0        0
## 29   cS11a         1        0    0      0      0    0      0      0        0
## 30  cS129a         1        0    0      0      0    0      0      0        0
## 31  cS132a         1        1    0      0      0    1      0      0        1
## 32  cS142a         1        0    0      0      0    0      0      0        0
## 33  cS153a         1        1    0      0      0    0      0      0        0
## 34  cS157a         1        0    0      0      0    0      0      0        0
## 35   cS15a         1        0    0      0      0    0      0      0        0
## 36  cS162a         1        1    0      0      0    1      0      0        1
## 37  cS164a         1        0    0      0      0    0      0      0        0
## 38  cS165a         1        0    0      0      0    0      0      0        0
## 39  cS168a         1        0    1      1      1    1      0      0        0
## 40  cS172a         1        1    0      0      0    1      0      0        1
## 41  cS178a         1        1    0      0      0    1      0      0        1
## 42  cS184a         1        0    0      0      0    0      0      0        0
## 43   cS27b         1        0    0      0      0    0      0      0        0
## 44   cS28a         1        0    0      0      0    0      0      0        0
## 45   cS30a         1        0    0      0      0    0      0      0        0
## 46   cS33a         1        0    0      0      0    0      0      0        0
## 47   cS35a         1        0    0      0      0    0      0      0        0
## 48   cS37a         1        0    0      0      0    0      0      0        0
## 49   cS39c         1        0    0      0      0    0      0      0        0
## 50   cS45a         1        0    0      0      0    0      0      0        0
## 51   cS46a         1        0    0      0      0    0      0      0        0
## 52    cS4a         1        0    0      0      0    0      0      0        0
## 53   cS51a         1        1    0      0      0    1      0      0        1
## 54   cS53a         1        0    0      0      0    0      0      0        0
## 55   cS58a         1        0    0      0      0    0      0      0        0
## 56   cS60a         1        0    0      0      0    0      0      0        0
## 57   cS61a         1        0    0      0      0    0      0      0        0
## 58   cS63a         1        0    0      0      0    0      0      0        0
## 59   cS65a         1        0    0      0      0    0      0      0        0
## 60   cS66a         1        0    0      0      0    0      0      0        0
## 61   cS68a         1        0    0      0      0    0      0      0        0
## 62    cS6a         1        0    0      0      0    0      0      0        0
## 63   cS71a         1        0    0      0      0    0      0      0        0
## 64   cS71b         1        0    0      0      0    0      0      0        0
## 65   cS72c         1        1    0      0      0    1      0      0        1
## 66   cS76a         1        0    0      0      0    0      0      0        0
## 67   cS80a         1        0    1      1      1    1      0      0        0
## 68   cS83a         1        1    0      0      0    1      0      0        1
## 69   cS86a         1        0    0      1      1    0      0      1        0
## 70   cS86b         1        0    0      0      0    0      0      0        0
## 71   cS87a         1        0    0      0      0    0      0      0        0
## 72   cS88a         1        0    0      0      0    0      0      0        0
## 73    cS8b         1        0    0      0      0    0      0      0        0
## 74   cS91a         1        0    1      1      1    1      0      0        0
## 75   cS97a         1        0    0      0      0    0      0      0        0
## 76   cS99a         1        1    0      0      0    0      0      0        0
## 77   fM10a         1        0    0      0      0    0      0      0        0
## 78   fM16a         1        1    0      0      0    1      0      0        1
## 79   fM19a         1        0    0      0      0    0      0      0        0
## 80   fM21a         1        0    0      0      0    0      0      0        0
## 81   fM23b         1        0    0      0      0    0      0      0        0
## 82   fM24a         1        0    0      0      0    0      0      0        0
## 83   fM27b         1        0    0      0      0    0      0      0        0
## 84   fM29a         1        0    0      0      0    0      0      0        0
## 85   fM30a         1        0    1      1      1    0      0      0        0
## 86   fM31a         1        0    0      0      0    0      0      0        0
## 87   fM35a         1        0    0      0      0    0      0      0        0
## 88   fM40a         1        0    0      0      0    0      0      0        0
## 89   fM41b         1        0    0      0      0    0      0      0        0
## 90   fM48a         1        0    0      0      0    0      0      0        0
## 91   fM51a         1        0    0      0      0    0      0      0        0
## 92   fM54a         1        0    0      0      0    0      0      0        0
## 93   fM59a         1        0    0      0      0    0      0      0        0
## 94   fM60a         1        0    0      0      0    0      0      0        0
## 95  fS100a         1        0    0      0      0    0      0      0        0
## 96  fS101a         1        0    0      0      0    0      0      0        0
## 97  fS102a         1        0    0      0      0    0      0      0        0
## 98   fS10a         1        1    0      0      0    0      0      0        0
## 99  fS111a         1        0    0      0      0    0      0      0        0
## 100 fS117a         1        0    0      0      0    0      0      0        0
## 101  fS11a         1        1    0      0      0    0      0      0        0
## 102 fS121a         1        0    0      0      0    0      0      0        0
## 103 fS122a         1        0    1      1      1    1      1      0        0
## 104 fS128a         1        1    0      0      0    0      0      0        0
## 105  fS12a         1        1    0      0      0    0      0      0        0
## 106 fS133b         1        0    0      0      0    0      0      0        0
## 107 fS139a         1        0    0      0      0    0      0      0        0
## 108  fS13a         1        1    0      0      0    0      0      0        0
## 109 fS143a         1        0    0      0      0    0      0      0        0
## 110 fS144a         1        0    0      0      0    0      0      0        0
## 111 fS146a         1        0    0      0      0    0      0      0        0
## 112 fS148a         1        0    0      0      0    0      0      0        0
## 113 fS149a         1        0    0      0      0    0      0      0        0
## 114  fS14a         1        0    0      0      0    0      0      0        0
## 115 fS155a         1        0    0      0      0    0      0      0        0
## 116 fS157a         1        0    0      0      0    0      0      0        0
## 117 fS158a         1        0    0      0      0    0      0      0        0
## 118 fS159a         1        0    0      0      0    0      0      0        0
## 119 fS165a         1        0    0      0      0    0      0      0        0
## 120 fS170a         1        0    0      0      0    0      0      0        0
## 121 fS171a         1        0    0      0      0    0      0      0        0
## 122 fS174a         1        0    0      0      0    0      0      0        0
## 123 fS177a         1        0    0      0      0    0      0      0        0
## 124 fS190a         1        0    0      0      0    0      0      0        0
## 125 fS191a         1        0    0      1      1    0      0      0        0
## 126  fS24a         1        1    0      0      0    0      0      0        0
## 127  fS25a         1        0    0      0      0    0      0      0        0
## 128  fS34a         1        0    0      0      0    0      0      0        0
## 129  fS35a         1        0    0      0      0    0      0      0        0
## 130  fS37a         1        1    0      0      0    0      0      0        0
## 131  fS39a         1        1    0      0      0    0      0      0        0
## 132  fS41a         1        1    0      0      0    0      0      0        0
## 133  fS42a         1        0    0      0      0    0      0      0        0
## 134  fS46a         1        1    0      0      0    0      0      0        0
## 135   fS4a         1        0    0      0      0    0      0      0        0
## 136  fS50a         1        0    0      1      1    0      0      0        0
## 137  fS54a         1        0    0      1      1    0      0      0        0
## 138  fS56a         1        0    0      0      0    0      0      0        0
## 139  fS58a         1        0    0      0      0    0      0      0        0
## 140  fS62a         1        1    0      0      0    0      0      0        0
## 141  fS63b         1        1    0      0      0    0      0      0        0
## 142  fS64a         1        1    0      0      0    0      0      0        0
## 143   fS6a         1        0    0      0      0    0      0      0        0
## 144  fS70a         1        0    0      0      0    0      0      0        0
## 145  fS72b         1        0    0      1      1    0      0      0        0
## 146  fS73a         1        0    0      1      1    0      0      0        0
## 147  fS74a         1        1    0      0      0    0      0      0        0
## 148  fS79a         1        0    0      1      1    0      0      0        0
## 149  fS80a         1        0    0      0      0    0      0      0        0
## 150  fS81a         1        0    0      1      1    0      0      0        0
## 151  fS83a         1        0    1      1      1    1      1      0        0
## 152  fS84a         1        0    0      0      0    0      0      0        0
## 153  fS85a         1        0    1      1      1    1      0      0        0
## 154  fS86a         1        0    1      1      1    1      0      0        0
## 155  fS92a         1        0    0      0      0    0      0      0        0
## 156  fS93a         1        1    0      0      0    0      0      0        0
## 157  fS95a         1        0    0      0      0    0      0      0        0
## 158  fS97a         1        1    0      0      0    0      0      0        0
## 159  fS99a         1        1    0      0      0    0      0      0        0
##     afaF-VII agg3A agg3B agg3C agg3D aggB aggC aggD aslA astA cesAB cesD cesD2
## 1          0     0     0     0     0    0    0    0    0    0     0    0     0
## 2          0     0     0     0     0    0    0    0    1    0     0    0     0
## 3          0     0     0     0     0    0    0    0    1    0     0    0     0
## 4          0     0     0     0     0    0    0    0    1    0     0    0     0
## 5          0     0     0     0     0    0    0    0    1    0     0    0     0
## 6          0     0     0     0     0    0    0    0    1    0     0    0     0
## 7          0     0     0     0     0    0    0    0    1    0     0    0     0
## 8          0     0     0     0     0    0    0    0    1    0     0    0     0
## 9          0     0     0     0     0    0    0    0    1    0     0    0     0
## 10         0     0     0     0     0    0    0    0    1    0     0    0     0
## 11         0     0     0     0     0    0    0    0    1    0     0    0     0
## 12         0     0     0     0     0    0    0    0    1    0     0    0     0
## 13         0     0     0     0     0    0    0    0    1    0     0    0     0
## 14         0     0     0     0     0    0    0    0    1    0     0    0     0
## 15         0     0     0     0     0    0    0    0    1    0     0    0     0
## 16         0     0     0     0     0    0    0    0    1    0     0    0     0
## 17         0     0     0     0     0    0    0    0    1    0     0    0     0
## 18         0     0     0     0     0    0    0    0    1    0     0    0     0
## 19         1     0     0     0     0    0    0    0    1    1     0    0     0
## 20         0     0     0     0     0    0    0    0    1    1     0    0     0
## 21         0     0     0     0     0    0    0    0    1    0     0    0     0
## 22         0     0     0     0     0    0    0    0    0    0     0    0     0
## 23         0     0     0     0     0    0    0    0    0    0     0    0     0
## 24         0     0     0     0     0    0    0    0    0    0     0    0     0
## 25         0     0     0     0     0    0    0    0    1    0     0    0     0
## 26         0     0     0     0     0    1    1    1    0    0     0    0     0
## 27         0     0     0     0     0    0    0    0    0    0     0    0     0
## 28         0     0     0     0     0    0    0    0    1    1     0    0     0
## 29         0     0     0     0     0    0    0    0    1    0     0    0     0
## 30         0     0     0     0     0    0    0    0    0    0     0    0     0
## 31         0     0     0     0     0    0    0    0    1    0     0    0     0
## 32         0     0     0     0     0    0    0    0    0    0     0    0     0
## 33         0     0     0     0     0    0    0    0    1    1     0    0     0
## 34         0     0     0     0     0    0    0    0    0    0     0    0     0
## 35         0     0     0     0     0    0    0    0    1    1     0    0     0
## 36         0     0     0     0     0    0    0    0    1    0     0    0     0
## 37         0     0     0     0     0    0    0    0    0    0     0    0     0
## 38         0     0     0     0     0    0    0    0    1    0     0    0     0
## 39         0     0     0     0     0    0    0    0    1    0     0    0     0
## 40         0     0     0     0     0    0    0    0    1    0     0    0     0
## 41         0     0     0     0     0    0    0    0    1    0     0    0     0
## 42         0     0     0     0     0    0    0    0    0    0     0    0     0
## 43         0     0     0     0     0    0    0    0    0    0     0    0     0
## 44         0     0     0     0     0    0    0    0    1    0     0    0     0
## 45         0     0     0     0     0    0    0    0    0    0     0    0     0
## 46         0     0     0     0     0    0    0    0    0    0     0    0     0
## 47         0     0     0     0     0    0    0    0    1    0     0    0     0
## 48         0     0     0     0     0    0    0    0    0    0     0    0     0
## 49         0     0     0     0     0    0    0    0    1    0     0    0     0
## 50         0     0     0     0     0    0    0    0    1    0     0    0     0
## 51         0     0     0     0     0    0    0    0    1    0     1    1     1
## 52         0     0     0     0     0    0    0    0    0    0     0    0     0
## 53         0     0     0     0     0    0    0    0    1    0     0    0     0
## 54         0     0     0     0     0    0    0    0    1    0     0    0     0
## 55         1     0     0     0     0    0    0    0    1    1     0    0     0
## 56         0     0     0     0     0    0    0    0    1    0     0    0     0
## 57         0     0     0     0     0    0    0    0    1    0     0    0     0
## 58         0     0     0     0     0    0    0    0    1    0     0    0     0
## 59         0     0     0     0     0    0    0    0    1    0     0    0     0
## 60         0     0     0     0     0    0    0    0    1    0     0    0     0
## 61         0     0     0     0     0    0    0    0    1    0     0    0     0
## 62         0     0     0     0     0    0    0    0    0    0     0    0     0
## 63         1     0     0     0     0    0    0    0    1    1     0    0     0
## 64         0     0     0     0     0    0    0    0    1    0     1    1     1
## 65         0     0     0     0     0    0    0    0    1    0     0    0     0
## 66         0     0     0     0     0    0    0    0    1    0     0    0     0
## 67         0     0     0     0     0    0    0    0    1    0     0    0     0
## 68         0     0     0     0     0    0    0    0    1    0     0    0     0
## 69         0     0     0     0     0    0    0    0    1    0     0    0     0
## 70         0     0     0     0     0    0    0    0    1    0     0    0     0
## 71         0     0     0     0     0    0    0    0    1    0     0    0     0
## 72         0     0     0     0     0    0    0    0    1    0     0    0     0
## 73         0     0     0     0     0    0    0    0    0    0     0    0     0
## 74         0     0     0     0     0    0    0    0    1    0     0    0     0
## 75         0     0     0     0     0    0    0    0    0    0     0    0     0
## 76         0     0     0     0     0    1    1    1    0    0     0    0     0
## 77         0     0     0     0     0    0    0    0    1    0     0    0     0
## 78         0     0     0     0     0    0    0    0    1    0     0    0     0
## 79         0     0     0     0     0    0    0    0    0    0     0    0     0
## 80         0     0     0     0     0    0    0    0    1    0     0    0     0
## 81         0     0     0     0     0    0    0    0    1    0     0    0     0
## 82         0     0     0     0     0    0    0    0    0    0     0    0     0
## 83         0     0     0     0     0    0    0    0    1    0     0    0     0
## 84         0     0     0     0     0    0    0    0    0    0     1    1     1
## 85         0     0     0     0     0    0    0    0    1    0     0    0     0
## 86         0     0     0     0     0    0    0    0    1    0     0    0     0
## 87         0     0     0     0     0    0    0    0    0    0     0    0     0
## 88         0     0     0     0     0    0    0    0    1    0     0    0     0
## 89         0     0     0     0     0    0    0    0    1    0     0    0     0
## 90         0     0     0     0     0    0    0    0    0    0     0    0     0
## 91         0     0     0     0     0    0    0    0    0    0     0    0     0
## 92         0     0     0     0     0    0    0    0    1    0     0    0     0
## 93         0     0     0     0     0    0    0    0    1    0     0    0     0
## 94         0     0     0     0     0    0    0    0    1    0     0    0     0
## 95         0     0     0     0     0    0    0    0    0    0     1    1     1
## 96         0     0     0     0     0    0    0    0    1    0     0    0     0
## 97         0     0     0     0     0    0    0    0    1    0     0    0     0
## 98         0     0     1     1     1    0    0    0    1    0     0    0     0
## 99         0     0     0     0     0    0    0    0    1    0     0    0     0
## 100        0     0     0     0     0    0    0    0    1    1     0    0     0
## 101        0     0     1     1     1    0    0    0    1    0     0    0     0
## 102        0     0     0     0     0    0    0    0    0    0     0    0     0
## 103        0     0     0     0     0    0    0    0    1    0     0    0     0
## 104        0     0     0     0     0    1    1    1    1    0     0    0     0
## 105        0     0     1     1     1    0    0    0    1    0     0    0     0
## 106        0     0     0     0     0    0    0    0    0    0     0    0     0
## 107        0     0     0     0     0    0    0    0    1    0     0    0     0
## 108        0     0     1     1     1    0    0    0    1    0     0    0     0
## 109        0     0     0     0     0    0    0    0    0    0     0    0     0
## 110        0     0     0     0     0    0    0    0    0    0     0    0     0
## 111        0     0     0     0     0    0    0    0    0    0     0    0     0
## 112        0     0     0     0     0    0    0    0    1    0     0    0     0
## 113        0     0     0     0     0    0    0    0    1    0     0    0     0
## 114        0     0     0     0     0    0    0    0    0    0     1    1     1
## 115        0     0     0     0     0    0    0    0    0    0     1    1     1
## 116        0     0     0     0     0    0    0    0    0    0     0    0     0
## 117        0     0     0     0     0    0    0    0    1    0     0    0     0
## 118        0     0     0     0     0    0    0    0    1    0     0    0     0
## 119        0     0     0     0     0    0    0    0    0    0     0    0     0
## 120        0     0     0     0     0    0    0    0    0    0     0    0     0
## 121        0     0     0     0     0    0    0    0    0    0     0    0     0
## 122        0     0     0     0     0    0    0    0    0    0     1    1     1
## 123        0     0     0     0     0    0    0    0    0    0     1    1     1
## 124        0     0     0     0     0    0    0    0    1    0     0    0     0
## 125        0     0     0     0     0    0    0    0    0    0     0    0     0
## 126        0     1     1     1     1    0    0    0    0    0     0    0     0
## 127        0     0     0     0     0    0    0    0    0    0     1    1     1
## 128        0     0     0     0     0    0    0    0    0    0     0    0     0
## 129        0     0     0     0     0    0    0    0    1    0     0    0     0
## 130        0     0     1     1     1    0    0    0    1    0     0    0     0
## 131        0     0     1     1     1    0    0    0    1    0     0    0     0
## 132        0     0     1     1     1    0    0    0    1    0     0    0     0
## 133        0     0     0     0     0    0    0    0    1    0     0    0     0
## 134        0     0     1     1     1    0    0    0    1    0     0    0     0
## 135        0     0     0     0     0    0    0    0    0    0     0    0     0
## 136        0     0     0     0     0    0    0    0    0    0     0    0     0
## 137        0     0     0     0     0    0    0    0    0    0     0    0     0
## 138        0     0     0     0     0    0    0    0    0    0     0    0     0
## 139        0     0     0     0     0    0    0    0    0    0     0    0     0
## 140        0     0     1     1     1    0    0    0    1    0     0    0     0
## 141        0     0     1     1     1    0    0    0    1    0     0    0     0
## 142        0     0     1     1     1    0    0    0    1    0     0    0     0
## 143        0     0     0     0     0    0    0    0    1    0     0    0     0
## 144        0     0     0     0     0    0    0    0    0    0     0    0     0
## 145        0     0     0     0     0    0    0    0    0    0     0    0     0
## 146        0     0     0     0     0    0    0    0    0    0     0    0     0
## 147        0     0     1     1     1    0    0    0    1    0     0    0     0
## 148        0     0     0     0     0    0    0    0    0    0     0    0     0
## 149        0     0     0     0     0    0    0    0    0    0     1    1     1
## 150        0     0     0     0     0    0    0    0    0    0     0    0     0
## 151        0     0     0     0     0    0    0    0    1    0     0    0     0
## 152        0     0     0     0     0    0    0    0    0    0     0    0     0
## 153        0     0     0     0     0    0    0    0    1    0     0    0     0
## 154        0     0     0     0     0    0    0    0    1    0     0    0     0
## 155        0     0     0     0     0    0    0    0    1    0     0    0     0
## 156        0     0     1     1     1    0    0    0    1    0     0    0     0
## 157        0     0     0     0     0    0    0    0    0    0     1    1     1
## 158        0     0     1     1     1    0    0    0    1    0     0    0     0
## 159        0     0     1     1     1    0    0    0    1    0     0    0     0
##     cesL cesT chuA chuS chuT chuU chuV chuW chuX chuY cif cnf1 daaF draA draB
## 1      0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 2      0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 3      0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 4      0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 5      0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 6      0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 7      0    0    1    1    1    1    1    1    1    1   0    1    0    0    0
## 8      0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 9      0    0    0    1    1    1    1    1    0    1   0    0    0    0    0
## 10     0    0    0    1    1    1    1    1    0    1   0    0    0    0    0
## 11     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 12     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 13     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 14     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 15     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 16     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 17     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 18     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 19     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 20     0    0    0    1    0    0    0    0    0    0   0    0    0    0    0
## 21     0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 22     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 23     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 24     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 25     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 26     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 27     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 28     0    0    0    1    1    1    1    1    1    1   0    0    0    0    0
## 29     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 30     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 31     0    0    0    1    0    1    1    1    0    1   0    0    0    1    1
## 32     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 33     0    0    0    0    0    1    1    1    0    1   0    0    0    0    0
## 34     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 35     0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 36     0    0    0    1    0    1    1    1    0    1   0    0    0    1    1
## 37     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 38     0    0    0    1    1    1    1    1    1    1   0    0    0    0    0
## 39     0    0    1    1    1    1    1    1    1    1   0    0    1    0    0
## 40     0    0    0    1    0    1    1    1    0    1   0    0    0    1    1
## 41     0    0    0    1    0    1    1    1    0    1   0    0    0    1    1
## 42     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 43     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 44     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 45     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 46     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 47     0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 48     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 49     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 50     0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 51     1    1    0    0    0    0    0    0    0    0   1    0    0    0    0
## 52     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 53     0    0    0    1    0    1    1    1    0    1   0    0    0    1    1
## 54     0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 55     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 56     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 57     0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 58     0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 59     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 60     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 61     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 62     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 63     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 64     1    1    0    0    0    0    0    0    0    0   1    0    0    0    0
## 65     0    0    0    1    0    1    1    1    0    1   0    0    0    1    1
## 66     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 67     0    0    1    1    1    1    1    1    1    1   0    0    1    0    0
## 68     0    0    0    1    0    1    1    1    0    1   0    0    0    1    1
## 69     0    0    1    1    1    1    1    1    1    1   0    0    1    0    0
## 70     0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 71     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 72     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 73     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 74     0    0    1    1    1    1    1    1    1    1   0    0    1    0    0
## 75     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 76     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 77     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 78     0    0    0    1    0    1    1    1    0    1   0    0    0    1    1
## 79     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 80     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 81     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 82     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 83     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 84     1    1    0    0    0    0    0    0    0    0   0    0    0    0    0
## 85     0    0    0    1    1    1    1    1    1    1   0    0    1    0    0
## 86     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 87     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 88     0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 89     0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 90     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 91     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 92     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 93     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 94     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 95     1    1    0    0    0    0    0    0    0    0   0    0    0    0    0
## 96     0    0    0    0    0    1    1    1    0    1   0    0    0    0    0
## 97     0    0    0    1    1    1    1    1    0    1   0    0    0    0    0
## 98     0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 99     0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 100    0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 101    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 102    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 103    0    0    0    1    1    1    1    1    0    1   0    0    1    0    0
## 104    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 105    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 106    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 107    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 108    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 109    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 110    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 111    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 112    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 113    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 114    1    1    0    0    0    0    0    0    0    0   0    0    0    0    0
## 115    1    1    0    0    0    0    0    0    0    0   0    0    0    0    0
## 116    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 117    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 118    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 119    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 120    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 121    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 122    1    1    0    0    0    0    0    0    0    0   0    0    0    0    0
## 123    1    1    0    0    0    0    0    0    0    0   0    0    0    0    0
## 124    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 125    0    0    0    0    0    0    0    0    0    0   0    0    1    1    0
## 126    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 127    1    1    0    0    0    0    0    0    0    0   0    0    0    0    0
## 128    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 129    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 130    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 131    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 132    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 133    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 134    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 135    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 136    0    0    0    0    0    0    0    0    0    0   0    0    1    1    0
## 137    0    0    0    0    0    0    0    0    0    0   0    0    1    1    0
## 138    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 139    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 140    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 141    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 142    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 143    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 144    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 145    0    0    0    0    0    0    0    0    0    0   0    0    1    1    0
## 146    0    0    0    0    0    0    0    0    0    0   0    0    1    1    0
## 147    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 148    0    0    0    0    0    0    0    0    0    0   0    0    1    1    0
## 149    1    1    0    0    0    0    0    0    0    0   0    0    0    0    0
## 150    0    0    0    0    0    0    0    0    0    0   0    0    1    1    0
## 151    0    0    1    1    1    1    1    1    1    1   0    0    1    0    0
## 152    0    0    0    0    0    0    0    0    0    0   0    0    0    0    0
## 153    0    0    1    1    1    1    1    1    1    1   0    0    1    0    0
## 154    0    0    1    1    1    1    1    1    1    1   0    0    1    0    0
## 155    0    0    1    1    1    1    1    1    1    1   0    0    0    0    0
## 156    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 157    1    1    0    0    0    0    0    0    0    0   0    0    0    0    0
## 158    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
## 159    0    0    0    1    0    1    1    1    0    1   0    0    0    0    0
##     draC draD draE2 draP eae eltA eltB entA entB entC entD entE entF entS escC
## 1      0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 2      0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 3      0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 4      0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 5      0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 6      0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 7      0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 8      0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 9      0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 10     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 11     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 12     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 13     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 14     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 15     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 16     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 17     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 18     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 19     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 20     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 21     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 22     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 23     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 24     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 25     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 26     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 27     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 28     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 29     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 30     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 31     1    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 32     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 33     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 34     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 35     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 36     1    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 37     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 38     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 39     0    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 40     1    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 41     1    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 42     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 43     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 44     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 45     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 46     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 47     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 48     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 49     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 50     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 51     0    0     0    0   0    0    0    1    1    1    1    1    1    1    1
## 52     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 53     1    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 54     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 55     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 56     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 57     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 58     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 59     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 60     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 61     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 62     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 63     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 64     0    0     0    0   0    0    0    1    1    1    1    1    1    1    1
## 65     1    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 66     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 67     0    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 68     1    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 69     0    1     0    1   0    0    0    1    1    1    1    1    1    1    0
## 70     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 71     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 72     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 73     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 74     0    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 75     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 76     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 77     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 78     1    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 79     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 80     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 81     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 82     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 83     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 84     0    0     0    0   1    0    0    1    1    1    1    1    1    1    1
## 85     0    1     0    1   0    0    0    1    1    1    1    1    1    1    0
## 86     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 87     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 88     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 89     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 90     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 91     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 92     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 93     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 94     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 95     0    0     0    0   1    0    0    1    1    1    1    1    1    1    1
## 96     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 97     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 98     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 99     0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 100    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 101    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 102    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 103    0    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 104    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 105    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 106    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 107    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 108    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 109    0    0     0    0   0    1    1    1    1    1    1    1    1    1    0
## 110    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 111    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 112    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 113    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 114    0    0     0    0   1    0    0    1    1    1    1    1    1    1    1
## 115    0    0     0    0   1    0    0    1    1    1    1    1    1    1    1
## 116    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 117    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 118    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 119    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 120    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 121    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 122    0    0     0    0   1    0    0    1    1    1    1    1    1    1    1
## 123    0    0     0    0   1    0    0    1    1    1    1    1    1    1    1
## 124    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 125    0    1     1    1   0    0    0    1    1    1    1    1    1    1    0
## 126    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 127    0    0     0    0   1    0    0    1    1    1    1    1    1    1    1
## 128    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 129    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 130    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 131    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 132    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 133    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 134    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 135    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 136    0    1     1    1   0    0    0    1    1    1    1    1    1    1    0
## 137    0    1     1    1   0    0    0    1    1    1    1    1    1    1    0
## 138    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 139    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 140    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 141    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 142    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 143    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 144    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 145    0    1     1    1   0    0    0    1    1    1    1    1    1    1    0
## 146    0    1     1    1   0    0    0    1    1    1    1    1    1    1    0
## 147    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 148    0    1     1    1   0    0    0    1    1    1    1    1    1    1    0
## 149    0    0     0    0   1    0    0    1    1    1    1    1    1    1    1
## 150    0    1     1    1   0    0    0    1    1    1    1    1    1    1    0
## 151    0    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 152    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 153    0    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 154    0    0     0    1   0    0    0    1    1    1    1    1    1    1    0
## 155    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 156    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 157    0    0     0    0   1    0    0    1    1    1    1    1    1    1    1
## 158    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
## 159    0    0     0    0   0    0    0    1    1    1    1    1    1    1    0
##     escD escE escF escG escI escJ escL escN escO escP escR escS escT escU escV
## 1      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 2      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 3      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 4      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 5      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 6      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 7      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 8      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 9      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 10     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 11     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 12     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 13     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 14     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 15     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 16     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 17     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 18     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 19     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 20     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 21     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 22     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 23     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 24     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 25     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 26     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 27     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 28     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 29     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 30     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 31     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 32     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 33     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 34     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 35     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 36     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 37     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 38     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 39     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 40     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 41     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 42     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 43     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 44     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 45     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 46     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 47     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 48     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 49     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 50     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 51     1    1    1    1    1    1    1    1    1    0    1    1    1    1    1
## 52     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 53     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 54     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 55     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 56     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 57     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 58     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 59     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 60     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 61     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 62     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 63     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 64     1    1    1    1    1    1    1    1    1    0    1    1    1    1    1
## 65     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 66     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 67     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 68     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 69     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 70     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 71     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 72     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 73     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 74     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 75     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 76     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 77     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 78     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 79     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 80     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 81     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 82     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 83     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 84     1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 85     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 86     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 87     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 88     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 89     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 90     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 91     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 92     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 93     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 94     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 95     1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 96     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 97     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 98     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 99     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 100    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 101    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 102    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 103    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 104    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 105    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 106    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 107    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 108    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 109    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 110    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 111    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 112    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 113    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 114    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 115    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 116    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 117    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 118    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 119    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 120    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 121    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 122    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 123    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 124    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 125    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 126    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 127    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 128    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 129    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 130    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 131    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 132    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 133    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 134    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 135    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 136    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 137    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 138    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 139    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 140    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 141    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 142    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 143    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 144    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 145    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 146    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 147    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 148    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 149    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 150    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 151    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 152    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 153    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 154    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 155    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 156    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 157    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 158    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 159    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
##     espA espB espD espG espJ espL1 espL4 espM2 espR1 espR3 espW espX1 espX2
## 1      0    0    0    0    0     1     0     0     1     0    0     1     0
## 2      0    0    0    0    0     0     0     0     1     0    0     1     0
## 3      0    0    0    0    0     0     0     0     1     0    0     1     0
## 4      0    0    0    0    0     0     0     0     1     0    0     1     0
## 5      0    0    0    0    0     0     0     0     1     0    0     1     0
## 6      0    0    0    0    0     1     1     0     1     0    0     0     0
## 7      0    0    0    0    0     0     0     0     0     0    0     0     0
## 8      0    0    0    0    0     0     0     0     1     0    0     1     0
## 9      0    0    0    0    0     1     0     0     1     0    0     1     0
## 10     0    0    0    0    0     1     0     0     1     0    0     1     0
## 11     0    0    0    0    0     1     1     0     1     0    0     0     0
## 12     0    0    0    0    0     0     0     0     1     0    0     1     0
## 13     0    0    0    0    0     1     1     0     1     0    0     1     0
## 14     0    0    0    0    0     0     0     0     1     0    0     1     0
## 15     0    0    0    0    0     0     0     0     1     0    0     1     0
## 16     0    0    0    0    0     0     0     0     1     0    0     1     0
## 17     0    0    0    0    0     1     1     0     1     0    0     0     0
## 18     0    0    0    0    0     1     1     0     1     0    0     0     0
## 19     0    0    0    0    0     1     1     0     1     0    0     1     0
## 20     0    0    0    0    0     0     0     0     0     0    0     0     0
## 21     0    0    0    0    0     0     0     0     0     0    0     0     0
## 22     0    0    0    0    0     1     0     0     1     0    0     1     0
## 23     0    0    0    0    0     1     0     0     1     0    0     1     0
## 24     0    0    0    0    0     1     0     0     1     0    0     1     0
## 25     0    0    0    0    0     1     1     0     1     0    0     1     0
## 26     0    0    0    0    0     1     0     0     1     0    0     0     0
## 27     0    0    0    0    0     1     0     0     1     0    0     1     0
## 28     0    0    0    0    0     1     0     0     1     0    0     0     0
## 29     0    0    0    0    0     1     1     0     1     0    0     1     0
## 30     0    0    0    0    0     1     0     0     1     0    0     1     0
## 31     0    0    0    0    0     1     1     0     1     0    0     1     0
## 32     0    0    0    0    0     1     0     0     1     0    0     1     0
## 33     0    0    0    0    0     1     1     0     1     0    0     1     1
## 34     0    0    0    0    0     1     0     0     1     0    0     1     0
## 35     0    0    0    0    0     0     0     0     0     0    0     0     0
## 36     0    0    0    0    0     1     1     0     1     0    0     1     0
## 37     0    0    0    0    0     1     0     0     1     0    0     1     0
## 38     0    0    0    0    0     1     0     0     1     0    0     0     0
## 39     0    0    0    0    0     0     0     0     0     0    0     0     0
## 40     0    0    0    0    0     1     1     0     1     0    0     1     0
## 41     0    0    0    0    0     1     1     0     1     0    0     1     0
## 42     0    0    0    0    0     1     0     0     1     0    0     1     0
## 43     0    0    0    0    0     1     0     0     1     0    0     1     0
## 44     0    0    0    0    0     0     0     0     1     0    0     1     0
## 45     0    0    0    0    0     1     0     0     1     0    0     1     0
## 46     0    0    0    0    0     1     0     0     1     0    0     1     0
## 47     0    0    0    0    0     0     0     0     0     0    0     0     0
## 48     0    0    0    0    0     1     0     0     1     0    0     1     0
## 49     0    0    0    0    0     1     1     0     1     0    0     1     0
## 50     0    0    0    0    0     0     0     0     0     0    0     0     0
## 51     0    0    0    1    1     1     0     1     1     0    0     0     0
## 52     0    0    0    0    0     1     0     0     1     0    0     1     0
## 53     0    0    0    0    0     1     1     0     1     0    0     1     0
## 54     0    0    0    0    0     0     0     0     0     0    0     0     0
## 55     0    0    0    0    0     1     1     0     1     0    0     1     0
## 56     0    0    0    0    0     1     1     0     1     0    0     1     0
## 57     0    0    0    0    0     0     0     0     0     0    0     0     0
## 58     0    0    0    0    0     0     0     0     0     0    0     0     0
## 59     0    0    0    0    0     1     1     0     1     0    0     1     0
## 60     0    0    0    0    0     1     1     0     1     0    0     1     0
## 61     0    0    0    0    0     1     1     0     1     0    0     1     0
## 62     0    0    0    0    0     1     0     0     1     0    0     1     0
## 63     0    0    0    0    0     1     1     0     1     0    0     1     0
## 64     0    0    0    1    1     1     0     1     1     0    0     0     0
## 65     0    0    0    0    0     1     1     0     1     0    0     1     0
## 66     0    0    0    0    0     1     1     0     1     0    0     1     0
## 67     0    0    0    0    0     0     0     0     0     0    0     0     0
## 68     0    0    0    0    0     1     1     0     1     0    0     1     0
## 69     0    0    0    0    0     0     0     0     0     0    0     0     0
## 70     0    0    0    0    0     0     0     0     0     0    0     0     0
## 71     0    0    0    0    0     0     0     0     1     0    0     1     0
## 72     0    0    0    0    0     0     0     0     1     0    0     1     0
## 73     0    0    0    0    0     1     0     0     1     0    0     1     0
## 74     0    0    0    0    0     0     0     0     0     0    0     0     0
## 75     0    0    0    0    0     1     0     0     1     0    0     1     0
## 76     0    0    0    0    0     1     0     0     1     0    0     0     0
## 77     0    0    0    0    0     1     1     0     1     0    0     1     0
## 78     0    0    0    0    0     1     1     0     1     0    0     1     0
## 79     0    0    0    0    0     1     0     0     1     0    0     1     0
## 80     0    0    0    0    0     1     1     0     1     0    0     1     0
## 81     0    0    0    0    0     0     0     0     1     0    0     1     0
## 82     0    0    0    0    0     0     0     0     1     0    0     1     0
## 83     0    0    0    0    0     1     1     0     1     0    0     1     0
## 84     0    1    1    1    0     1     0     0     1     0    0     1     0
## 85     0    0    0    0    0     1     0     0     1     0    0     0     0
## 86     0    0    0    0    0     1     1     0     1     0    0     1     0
## 87     0    0    0    0    0     1     0     0     1     0    0     1     0
## 88     0    0    0    0    0     0     0     0     0     0    0     0     0
## 89     0    0    0    0    0     0     0     0     0     0    0     0     0
## 90     0    0    0    0    0     1     0     0     1     0    0     1     0
## 91     0    0    0    0    0     1     0     0     1     0    0     1     0
## 92     0    0    0    0    0     0     0     0     1     0    0     1     0
## 93     0    0    0    0    0     1     1     0     1     0    0     1     0
## 94     0    0    0    0    0     1     1     0     1     0    0     1     0
## 95     1    1    1    1    0     1     0     0     1     1    0     1     0
## 96     0    0    0    0    0     1     1     0     1     0    0     1     0
## 97     0    0    0    0    0     1     0     0     1     0    0     1     0
## 98     0    0    0    0    0     1     1     0     1     0    0     1     0
## 99     0    0    0    0    0     1     1     0     1     0    0     1     0
## 100    0    0    0    0    0     0     0     0     0     0    0     0     0
## 101    0    0    0    0    0     1     1     0     1     0    0     1     0
## 102    0    0    0    0    0     1     0     0     1     0    0     1     0
## 103    0    0    0    0    0     1     0     0     1     0    0     1     0
## 104    0    0    0    0    0     1     1     0     1     0    0     1     0
## 105    0    0    0    0    0     1     1     0     1     0    0     1     0
## 106    0    0    0    0    0     1     0     0     1     0    0     1     0
## 107    0    0    0    0    0     1     1     0     1     0    0     1     0
## 108    0    0    0    0    0     1     1     0     1     0    0     1     0
## 109    0    0    0    0    0     1     0     0     1     0    0     1     0
## 110    0    0    0    0    0     1     0     0     1     0    0     1     0
## 111    0    0    0    0    0     1     0     0     1     0    0     1     0
## 112    0    0    0    0    0     1     1     0     1     0    0     1     0
## 113    0    0    0    0    0     1     1     0     1     0    0     1     0
## 114    1    1    1    1    0     1     0     0     1     1    0     1     0
## 115    1    1    1    1    0     1     0     0     1     1    0     1     0
## 116    0    0    0    0    0     1     0     0     1     0    0     1     0
## 117    0    0    0    0    0     1     1     0     1     0    0     0     0
## 118    0    0    0    0    0     1     1     0     1     0    0     0     0
## 119    0    0    0    0    0     1     0     0     1     0    0     1     0
## 120    0    0    0    0    0     1     0     0     1     0    0     1     0
## 121    0    0    0    0    0     1     0     0     1     0    0     1     0
## 122    1    1    1    1    0     1     0     0     1     1    0     1     0
## 123    1    1    1    1    0     1     0     0     1     1    0     1     0
## 124    0    0    0    0    0     1     1     0     1     0    0     1     0
## 125    0    0    0    0    0     1     0     0     1     0    0     1     0
## 126    0    0    0    0    0     1     0     0     1     0    0     1     0
## 127    1    1    1    1    0     1     0     1     1     1    1     1     0
## 128    0    0    0    0    0     1     0     0     1     0    0     1     0
## 129    0    0    0    0    0     1     1     0     1     0    0     1     0
## 130    0    0    0    0    0     1     1     0     1     0    0     1     0
## 131    0    0    0    0    0     1     1     0     1     0    0     1     0
## 132    0    0    0    0    0     1     1     0     1     0    0     1     0
## 133    0    0    0    0    0     1     1     0     1     0    0     1     0
## 134    0    0    0    0    0     1     1     0     1     0    0     1     0
## 135    0    0    0    0    0     1     0     0     1     0    0     1     0
## 136    0    0    0    0    0     1     0     0     1     0    0     1     0
## 137    0    0    0    0    0     1     0     0     1     0    0     1     0
## 138    0    0    0    0    0     1     0     0     1     0    0     1     0
## 139    0    0    0    0    0     1     0     0     1     0    0     1     0
## 140    0    0    0    0    0     1     1     0     1     0    0     1     0
## 141    0    0    0    0    0     1     1     0     1     0    0     1     0
## 142    0    0    0    0    0     1     1     0     1     0    0     1     0
## 143    0    0    0    0    0     1     1     0     1     0    0     1     0
## 144    0    0    0    0    0     1     0     0     1     0    0     1     0
## 145    0    0    0    0    0     1     0     0     1     0    0     1     0
## 146    0    0    0    0    0     1     0     0     1     0    0     1     0
## 147    0    0    0    0    0     1     1     0     1     0    0     1     0
## 148    0    0    0    0    0     1     0     0     1     0    0     1     0
## 149    1    1    1    1    0     1     0     1     1     1    1     1     0
## 150    0    0    0    0    0     1     0     0     1     0    0     1     0
## 151    0    0    0    0    0     0     0     0     0     0    0     0     0
## 152    0    0    0    0    0     1     0     0     1     0    0     1     0
## 153    0    0    0    0    0     0     0     0     0     0    0     0     0
## 154    0    0    0    0    0     0     0     0     0     0    0     0     0
## 155    0    0    0    0    0     0     0     0     0     0    0     0     0
## 156    0    0    0    0    0     1     1     0     1     0    0     1     0
## 157    1    1    1    1    0     1     0     1     1     1    1     1     0
## 158    0    0    0    0    0     1     1     0     1     0    0     1     0
## 159    0    0    0    0    0     1     1     0     1     0    0     1     0
##     espX4 espX5 espY1 espY2 espY3 espY4 etgA etpB faeD faeE faeF faeJ fdeC fepA
## 1       0     1     0     0     0     0    0    0    0    0    0    0    1    1
## 2       1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 3       1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 4       1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 5       1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 6       1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 7       0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 8       1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 9       1     0     1     1     0     0    0    0    0    0    0    0    1    1
## 10      1     0     1     1     0     0    0    0    0    0    0    0    1    1
## 11      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 12      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 13      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 14      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 15      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 16      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 17      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 18      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 19      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 20      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 21      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 22      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 23      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 24      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 25      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 26      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 27      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 28      1     0     0     1     0     0    0    0    0    0    0    0    1    1
## 29      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 30      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 31      1     1     1     1     1     1    0    0    0    1    1    1    1    1
## 32      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 33      1     1     0     0     1     1    0    0    0    0    0    0    1    1
## 34      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 35      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 36      1     1     1     1     1     1    0    0    0    1    1    1    1    1
## 37      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 38      1     0     0     1     0     0    0    0    0    0    0    0    1    1
## 39      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 40      1     1     1     1     1     1    0    0    0    1    1    1    1    1
## 41      1     1     1     1     1     1    0    0    0    1    1    1    1    1
## 42      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 43      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 44      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 45      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 46      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 47      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 48      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 49      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 50      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 51      1     1     0     0     0     0    1    0    0    0    0    0    1    1
## 52      0     1     0     0     0     0    0    0    0    0    0    0    1    1
## 53      1     1     1     1     1     1    0    0    0    1    1    1    1    1
## 54      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 55      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 56      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 57      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 58      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 59      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 60      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 61      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 62      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 63      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 64      1     1     0     0     0     0    1    0    0    0    0    0    1    1
## 65      1     1     1     1     1     1    0    0    1    1    1    1    1    1
## 66      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 67      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 68      1     1     1     1     1     1    0    0    0    1    1    1    1    1
## 69      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 70      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 71      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 72      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 73      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 74      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 75      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 76      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 77      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 78      1     1     1     1     1     1    0    0    0    1    1    1    1    1
## 79      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 80      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 81      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 82      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 83      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 84      1     1     0     0     0     0    1    0    0    0    0    0    1    1
## 85      1     0     0     1     0     0    0    0    0    0    0    0    1    1
## 86      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 87      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 88      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 89      0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 90      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 91      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 92      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 93      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 94      1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 95      1     1     0     0     0     0    1    0    0    0    0    0    0    1
## 96      1     1     0     0     1     1    0    0    0    0    0    0    1    1
## 97      1     0     1     1     0     0    0    0    0    0    0    0    1    1
## 98      1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 99      1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 100     0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 101     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 102     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 103     1     0     1     1     0     0    0    0    0    0    0    0    1    1
## 104     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 105     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 106     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 107     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 108     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 109     1     1     0     0     0     0    0    1    0    0    0    0    1    1
## 110     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 111     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 112     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 113     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 114     1     1     0     0     0     0    1    0    0    0    0    0    0    1
## 115     1     1     0     0     0     0    1    0    0    0    0    0    0    1
## 116     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 117     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 118     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 119     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 120     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 121     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 122     1     1     0     0     0     0    1    0    0    0    0    0    0    1
## 123     1     1     0     0     0     0    1    0    0    0    0    0    0    1
## 124     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 125     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 126     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 127     1     1     0     0     0     0    1    0    0    0    0    0    0    1
## 128     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 129     1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 130     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 131     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 132     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 133     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 134     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 135     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 136     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 137     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 138     1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 139     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 140     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 141     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 142     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 143     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 144     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 145     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 146     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 147     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 148     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 149     1     1     0     0     0     0    1    0    0    0    0    0    0    1
## 150     1     1     0     0     0     0    0    0    0    0    0    0    1    1
## 151     0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 152     1     1     0     0     0     0    0    0    0    0    0    0    0    1
## 153     0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 154     0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 155     0     0     0     0     0     0    0    0    0    0    0    0    1    1
## 156     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 157     1     1     0     0     0     0    1    0    0    0    0    0    0    1
## 158     1     1     1     1     1     1    0    0    0    0    0    0    1    1
## 159     1     1     1     1     1     1    0    0    0    0    0    0    1    1
##     fepB fepC fepD fepG fes fimA fimB fimC fimD fimE fimF fimG fimH fimI focA
## 1      1    1    1    1   1    1    0    1    1    1    1    1    1    1    0
## 2      1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 3      1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 4      1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 5      1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 6      1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 7      1    1    1    1   1    1    1    1    1    1    1    1    1    1    1
## 8      1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 9      1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 10     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 11     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 12     1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 13     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 14     1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 15     1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 16     1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 17     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 18     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 19     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 20     1    1    1    1   1    1    0    1    1    1    1    1    1    1    0
## 21     1    1    1    1   1    1    0    1    1    1    1    1    1    1    0
## 22     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 23     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 24     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 25     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 26     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 27     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 28     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 29     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 30     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 31     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 32     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 33     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 34     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 35     1    1    1    1   1    1    0    1    1    1    1    1    1    1    0
## 36     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 37     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 38     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 39     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 40     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 41     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 42     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 43     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 44     1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 45     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 46     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 47     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 48     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 49     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 50     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 51     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 52     1    1    1    1   1    0    0    0    0    0    1    1    1    0    0
## 53     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 54     1    1    1    1   1    1    0    1    1    1    1    1    1    1    0
## 55     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 56     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 57     1    1    1    1   1    1    0    1    1    1    1    1    1    1    0
## 58     1    1    1    1   1    1    0    1    1    1    1    1    1    1    0
## 59     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 60     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 61     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 62     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 63     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 64     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 65     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 66     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 67     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 68     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 69     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 70     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 71     1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 72     1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 73     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 74     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 75     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 76     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 77     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 78     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 79     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 80     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 81     1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 82     1    1    1    1   1    0    0    0    0    0    1    1    1    0    0
## 83     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 84     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 85     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 86     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 87     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 88     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 89     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 90     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 91     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 92     1    1    1    1   1    0    0    0    1    0    1    1    1    0    0
## 93     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 94     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 95     1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 96     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 97     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 98     1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 99     1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 100    1    1    1    1   1    1    0    1    1    1    1    1    1    1    0
## 101    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 102    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 103    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 104    1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 105    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 106    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 107    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 108    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 109    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 110    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 111    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 112    1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 113    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 114    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 115    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 116    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 117    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 118    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 119    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 120    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 121    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 122    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 123    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 124    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 125    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 126    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 127    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 128    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 129    1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 130    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 131    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 132    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 133    1    1    1    1   1    0    0    0    0    0    0    0    0    0    0
## 134    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 135    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 136    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 137    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 138    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 139    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 140    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 141    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 142    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 143    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 144    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 145    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 146    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 147    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 148    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 149    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 150    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 151    1    1    1    1   1    1    0    1    1    1    1    1    1    1    0
## 152    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 153    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 154    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 155    1    1    1    1   1    1    0    1    1    1    1    1    1    1    0
## 156    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 157    1    1    1    1   1    0    1    1    1    1    1    1    1    1    0
## 158    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
## 159    1    1    1    1   1    1    1    1    1    1    1    1    1    1    0
##     focC focD focG fyuA gspC gspD gspE gspF gspG gspH gspI gspJ gspK gspL gspM
## 1      0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 2      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 3      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 4      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 5      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 6      0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 7      1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 8      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 9      0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 10     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 11     0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 12     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 13     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 14     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 15     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 16     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 17     0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 18     0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 19     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 20     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 21     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 22     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 23     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 24     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 25     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 26     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 27     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 28     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 29     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 30     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 31     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 32     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 33     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 34     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 35     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 36     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 37     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 38     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 39     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 40     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 41     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 42     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 43     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 44     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 45     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 46     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 47     0    0    0    1    0    0    0    0    0    0    0    0    0    1    1
## 48     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 49     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 50     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 51     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 52     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 53     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 54     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 55     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 56     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 57     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 58     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 59     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 60     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 61     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 62     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 63     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 64     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 65     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 66     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 67     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 68     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 69     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 70     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 71     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 72     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 73     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 74     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 75     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 76     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 77     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 78     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 79     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 80     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 81     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 82     0    0    0    0    0    0    0    0    0    1    1    1    1    1    1
## 83     0    0    0    0    0    1    1    1    1    1    1    1    1    1    1
## 84     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 85     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 86     0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 87     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 88     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 89     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 90     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 91     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 92     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 93     0    0    0    0    0    1    1    1    1    1    1    1    1    1    1
## 94     0    0    0    0    0    1    1    1    1    1    1    1    1    1    1
## 95     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 96     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 97     0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 98     0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 99     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 100    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 101    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 102    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 103    0    0    0    1    0    0    0    0    0    0    0    0    0    1    1
## 104    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 105    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 106    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 107    0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 108    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 109    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 110    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 111    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 112    0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 113    0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 114    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 115    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 116    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 117    0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 118    0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 119    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 120    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 121    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 122    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 123    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 124    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 125    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 126    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 127    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 128    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 129    0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 130    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 131    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 132    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 133    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 134    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 135    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 136    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 137    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 138    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 139    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 140    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 141    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 142    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 143    0    0    0    1    0    0    0    0    0    0    0    0    0    0    0
## 144    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 145    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 146    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 147    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 148    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 149    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 150    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 151    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 152    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 153    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 154    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 155    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 156    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 157    0    0    0    0    1    1    1    1    1    1    1    1    1    1    1
## 158    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
## 159    0    0    0    1    1    1    1    1    1    1    1    1    1    1    1
##     gtrA hlyA hlyB hlyC hlyD iroB iroC iroD iroE iroN irp1 irp2 iucA iucB iucC
## 1      0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 2      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 3      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 4      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 5      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 6      0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 7      0    1    1    1    1    1    1    1    1    1    1    1    1    1    1
## 8      0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 9      0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 10     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 11     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 12     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 13     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 14     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 15     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 16     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 17     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 18     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 19     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 20     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 21     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 22     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 23     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 24     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 25     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 26     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 27     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 28     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 29     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 30     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 31     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 32     0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 33     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 34     0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 35     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 36     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 37     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 38     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 39     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 40     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 41     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 42     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 43     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 44     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 45     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 46     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 47     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 48     0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 49     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 50     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 51     0    0    0    0    0    0    0    0    0    0    1    0    0    0    0
## 52     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 53     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 54     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 55     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 56     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 57     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 58     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 59     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 60     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 61     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 62     0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 63     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 64     0    0    0    0    0    0    0    0    0    0    1    0    0    0    0
## 65     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 66     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 67     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 68     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 69     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 70     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 71     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 72     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 73     0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 74     0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 75     0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 76     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 77     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 78     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 79     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 80     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 81     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 82     1    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 83     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 84     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 85     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 86     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 87     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 88     0    0    0    1    0    0    0    0    0    0    1    1    1    1    1
## 89     0    0    0    1    0    0    0    0    0    0    1    1    1    1    1
## 90     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 91     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 92     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 93     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 94     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 95     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 96     0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 97     0    0    0    0    0    1    1    1    1    1    0    0    1    1    1
## 98     0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 99     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 100    0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 101    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 102    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 103    0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 104    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 105    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 106    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 107    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 108    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 109    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 110    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 111    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 112    0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 113    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 114    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 115    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 116    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 117    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 118    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 119    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 120    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 121    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 122    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 123    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 124    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 125    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 126    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 127    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 128    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 129    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 130    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 131    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 132    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 133    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 134    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 135    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 136    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 137    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 138    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 139    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 140    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 141    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 142    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 143    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 144    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 145    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 146    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 147    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 148    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 149    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 150    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1
## 151    0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 152    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 153    0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 154    0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 155    0    0    0    0    0    0    0    0    0    0    1    1    1    1    1
## 156    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 157    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
## 158    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
## 159    0    0    0    0    0    0    0    0    0    0    1    1    0    0    0
##     iucD iutA kpsD kpsM kpsT map nleA nleA/espI nleB2 nleG7' nleH1 ompA papB
## 1      1    0    0    0    0   0    0         0     0      0     0    1    0
## 2      0    0    0    0    0   0    0         0     0      0     0    1    0
## 3      0    0    0    0    0   0    0         0     0      0     0    1    0
## 4      0    0    0    0    0   0    0         0     0      0     0    1    0
## 5      0    0    0    0    0   0    0         0     0      0     0    1    0
## 6      1    1    0    0    0   0    0         0     0      0     0    1    0
## 7      1    0    1    1    0   0    0         0     0      0     0    1    0
## 8      0    0    0    0    0   0    0         0     0      0     0    1    0
## 9      1    0    1    1    0   0    0         0     0      0     0    1    1
## 10     1    0    1    1    0   0    0         0     0      0     0    1    1
## 11     1    1    0    0    0   0    0         0     0      0     0    1    0
## 12     0    0    0    0    0   0    0         0     0      0     0    1    0
## 13     0    0    0    0    0   0    0         0     0      0     0    1    0
## 14     0    0    0    0    0   0    0         0     0      0     0    1    0
## 15     0    0    0    0    0   0    0         0     0      0     0    1    0
## 16     0    0    0    0    0   0    0         0     0      0     0    1    0
## 17     1    1    0    0    0   0    0         0     0      0     0    1    0
## 18     1    1    0    0    0   0    0         0     0      0     0    1    0
## 19     1    0    0    0    0   0    0         0     0      0     0    1    0
## 20     1    0    1    1    0   0    0         0     0      0     0    1    1
## 21     1    0    1    1    0   0    0         0     0      0     0    1    1
## 22     0    0    0    0    0   0    0         0     0      0     0    1    0
## 23     0    0    0    0    0   0    0         0     0      0     0    1    0
## 24     0    0    0    0    0   0    0         0     0      0     0    1    0
## 25     0    0    0    0    0   0    0         0     0      0     0    1    0
## 26     0    0    0    0    0   0    0         0     0      0     0    1    0
## 27     0    0    0    0    0   0    0         0     0      0     0    1    0
## 28     0    0    1    0    0   0    0         0     0      0     0    1    0
## 29     0    0    0    0    0   0    0         0     0      0     0    1    0
## 30     0    0    0    0    0   0    0         0     0      0     0    1    0
## 31     0    0    1    1    0   0    0         0     0      0     0    1    0
## 32     1    1    0    0    0   0    0         0     0      0     0    1    0
## 33     0    0    1    1    0   0    0         0     0      0     0    1    0
## 34     1    1    0    0    0   0    0         0     0      0     0    1    0
## 35     1    0    1    1    0   0    0         0     0      0     0    1    1
## 36     0    0    1    1    0   0    0         0     0      0     0    1    0
## 37     0    0    0    0    0   0    0         0     0      0     0    1    0
## 38     0    0    1    0    0   0    0         0     0      0     0    1    0
## 39     1    0    1    1    0   0    0         0     0      0     0    1    0
## 40     0    0    1    1    0   0    0         0     0      0     0    1    0
## 41     0    0    1    1    0   0    0         0     0      0     0    1    0
## 42     0    0    0    0    0   0    0         0     0      0     0    1    0
## 43     0    0    0    0    0   0    0         0     0      0     0    1    0
## 44     0    0    0    0    0   0    0         0     0      0     0    1    0
## 45     0    0    0    0    0   0    0         0     0      0     0    1    0
## 46     0    0    0    0    0   0    0         0     0      0     0    1    0
## 47     1    0    1    1    0   0    0         0     0      0     0    1    1
## 48     1    1    0    0    0   0    0         0     0      0     0    1    0
## 49     1    0    0    0    0   0    0         0     0      0     0    1    0
## 50     1    0    1    1    0   0    0         0     0      0     0    1    0
## 51     0    0    0    0    0   0    1         1     1      0     1    1    0
## 52     0    0    0    0    0   0    0         0     0      0     0    1    0
## 53     0    0    1    1    0   0    0         0     0      0     0    1    0
## 54     1    0    1    1    0   0    0         0     0      0     0    1    1
## 55     1    0    0    0    0   0    0         0     0      0     0    1    0
## 56     1    0    0    0    0   0    0         0     0      0     0    1    0
## 57     1    0    1    1    0   0    0         0     0      0     0    1    1
## 58     1    0    1    1    0   0    0         0     0      0     0    1    1
## 59     1    0    0    0    0   0    0         0     0      0     0    1    0
## 60     1    0    0    0    0   0    0         0     0      0     0    1    0
## 61     1    0    0    0    0   0    0         0     0      0     0    1    0
## 62     1    1    0    0    0   0    0         0     0      0     0    1    0
## 63     1    0    0    0    0   0    0         0     0      0     0    1    0
## 64     0    0    0    0    0   0    1         1     1      0     1    1    0
## 65     0    0    1    1    0   0    0         0     0      0     0    1    0
## 66     1    0    0    0    0   0    0         0     0      0     0    1    0
## 67     1    0    1    1    0   0    0         0     0      0     0    1    0
## 68     0    0    1    1    0   0    0         0     0      0     0    1    0
## 69     1    0    1    0    0   0    0         0     0      0     0    1    0
## 70     1    0    1    1    0   0    0         0     0      0     0    1    1
## 71     0    0    0    0    0   0    0         0     0      0     0    1    0
## 72     0    0    0    0    0   0    0         0     0      0     0    1    0
## 73     1    1    0    0    0   0    0         0     0      0     0    1    0
## 74     1    0    1    1    0   0    0         0     0      0     0    1    0
## 75     1    1    0    0    0   0    0         0     0      0     0    1    0
## 76     0    0    0    0    0   0    0         0     0      0     0    1    0
## 77     0    0    0    0    0   0    0         0     0      0     0    1    0
## 78     0    0    1    1    0   0    0         0     0      0     0    1    0
## 79     0    0    0    0    0   0    0         0     0      0     0    1    0
## 80     0    0    0    0    0   0    0         0     0      0     0    1    0
## 81     0    0    0    0    0   0    0         0     0      0     0    1    0
## 82     0    0    0    0    0   0    0         0     0      0     0    1    0
## 83     0    0    0    0    0   0    0         0     0      0     0    1    0
## 84     0    0    0    0    0   0    0         0     0      0     0    1    0
## 85     0    0    1    0    0   0    0         0     0      0     0    1    0
## 86     0    0    0    0    0   0    0         0     0      0     0    1    0
## 87     0    0    0    0    0   0    0         0     0      0     0    1    0
## 88     1    0    1    1    0   0    0         0     0      0     0    1    0
## 89     1    0    1    1    0   0    0         0     0      0     0    1    0
## 90     0    0    0    0    0   0    0         0     0      0     0    1    0
## 91     0    0    0    0    0   0    0         0     0      0     0    1    0
## 92     0    0    0    0    0   0    0         0     0      0     0    1    0
## 93     0    0    0    0    0   0    0         0     0      0     0    1    0
## 94     0    0    0    0    0   0    0         0     0      0     0    1    0
## 95     0    0    0    0    0   1    0         0     0      1     0    1    0
## 96     1    0    1    1    1   0    0         0     0      0     0    1    0
## 97     1    0    1    1    0   0    0         0     0      0     0    1    1
## 98     0    0    1    1    0   0    0         0     0      0     0    1    0
## 99     0    0    0    0    0   0    0         0     0      0     0    1    0
## 100    1    0    1    1    0   0    0         0     0      0     0    1    1
## 101    0    0    1    1    0   0    0         0     0      0     0    1    0
## 102    0    0    0    0    0   0    0         0     0      0     0    1    0
## 103    1    0    1    1    0   0    0         0     0      0     0    1    0
## 104    0    0    1    1    0   0    0         0     0      0     0    1    0
## 105    0    0    1    1    0   0    0         0     0      0     0    1    0
## 106    0    0    0    0    0   0    0         0     0      0     0    1    0
## 107    0    0    0    0    0   0    0         0     0      0     0    1    0
## 108    0    0    1    1    0   0    0         0     0      0     0    1    0
## 109    0    0    0    0    0   0    0         0     0      0     0    1    0
## 110    1    1    0    0    0   0    0         0     0      0     0    1    0
## 111    1    1    0    0    0   0    0         0     0      0     0    1    0
## 112    1    0    0    0    0   0    0         0     0      0     0    1    0
## 113    0    0    0    0    0   0    0         0     0      0     0    1    0
## 114    0    0    0    0    0   1    0         0     0      1     0    1    0
## 115    0    0    0    0    0   1    0         0     0      0     0    1    0
## 116    0    0    0    0    0   0    0         0     0      0     0    1    0
## 117    1    1    0    0    0   0    0         0     0      0     0    1    0
## 118    1    1    0    0    0   0    0         0     0      0     0    1    0
## 119    0    0    0    0    0   0    0         0     0      0     0    1    0
## 120    0    0    0    0    0   0    0         0     0      0     0    1    0
## 121    0    0    0    0    0   0    0         0     0      0     0    1    0
## 122    0    0    0    0    0   1    0         0     0      1     0    1    0
## 123    0    0    0    0    0   1    0         0     0      1     0    1    0
## 124    0    0    0    0    0   0    0         0     0      0     0    1    0
## 125    1    0    0    0    0   0    0         0     0      0     0    1    0
## 126    0    0    0    0    0   0    0         0     0      0     0    1    0
## 127    0    0    0    0    0   0    0         0     0      1     0    1    0
## 128    1    1    0    0    0   0    0         0     0      0     0    1    0
## 129    0    0    0    0    0   0    0         0     0      0     0    1    0
## 130    0    0    1    1    0   0    0         0     0      0     0    1    0
## 131    0    0    1    1    0   0    0         0     0      0     0    1    0
## 132    0    0    1    1    0   0    0         0     0      0     0    1    0
## 133    0    0    0    0    0   0    0         0     0      0     0    1    0
## 134    0    0    1    1    0   0    0         0     0      0     0    1    0
## 135    1    1    0    0    0   0    0         0     0      0     0    1    0
## 136    1    0    0    0    0   0    0         0     0      0     0    1    0
## 137    1    0    0    0    0   0    0         0     0      0     0    1    0
## 138    0    0    0    0    0   0    0         0     0      0     0    1    0
## 139    0    0    0    0    0   0    0         0     0      0     0    1    0
## 140    0    0    1    1    0   0    0         0     0      0     0    1    0
## 141    0    0    1    1    0   0    0         0     0      0     0    1    0
## 142    0    0    1    1    0   0    0         0     0      0     0    1    0
## 143    0    0    0    0    0   0    0         0     0      0     0    1    0
## 144    1    1    0    0    0   0    0         0     0      0     0    1    0
## 145    1    0    0    0    0   0    0         0     0      0     0    1    0
## 146    1    0    0    0    0   0    0         0     0      0     0    1    0
## 147    0    0    1    1    0   0    0         0     0      0     0    1    0
## 148    1    0    0    0    0   0    0         0     0      0     0    1    0
## 149    0    0    0    0    0   0    0         0     0      1     0    1    0
## 150    1    0    0    0    0   0    0         0     0      0     0    1    0
## 151    1    0    1    1    0   0    0         0     0      0     0    1    1
## 152    0    0    0    0    0   0    0         0     0      0     0    1    0
## 153    1    0    1    1    0   0    0         0     0      0     0    1    1
## 154    1    0    1    1    0   0    0         0     0      0     0    1    1
## 155    1    0    1    1    0   0    0         0     0      0     0    1    1
## 156    0    0    1    1    0   0    0         0     0      0     0    1    0
## 157    0    0    0    0    0   0    0         0     0      1     0    1    0
## 158    0    0    1    1    0   0    0         0     0      0     0    1    0
## 159    0    0    1    1    0   0    0         0     0      0     0    1    0
##     papC papD papE papF papG papH papI papJ papK papX pet pic sat senB sepD
## 1      0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 2      0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 3      0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 4      0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 5      0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 6      0    0    0    0    0    0    0    0    0    0   1   1   1    1    0
## 7      1    1    0    1    1    1    0    1    1    1   0   1   1    0    0
## 8      0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 9      0    0    0    0    0    0    1    0    0    1   0   0   1    1    0
## 10     0    0    0    0    0    0    1    0    0    1   0   0   1    1    0
## 11     0    0    0    0    0    0    0    0    0    0   1   1   1    1    0
## 12     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 13     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 14     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 15     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 16     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 17     0    0    0    0    0    0    0    0    0    0   1   1   1    1    0
## 18     0    0    0    0    0    0    0    0    0    0   1   1   1    1    0
## 19     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 20     1    1    0    1    1    1    0    1    1    1   0   0   1    1    0
## 21     1    1    0    1    1    1    0    1    1    0   0   0   1    1    0
## 22     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 23     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 24     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 25     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 26     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 27     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 28     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 29     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 30     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 31     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 32     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 33     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 34     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 35     1    1    0    1    1    1    0    1    1    1   0   0   1    1    0
## 36     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 37     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 38     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 39     1    1    0    1    1    1    0    1    1    1   0   0   1    1    0
## 40     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 41     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 42     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 43     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 44     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 45     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 46     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 47     0    0    0    0    0    0    1    0    0    1   0   0   1    1    0
## 48     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 49     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 50     1    1    1    1    1    1    0    1    1    1   0   0   1    1    0
## 51     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 52     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 53     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 54     1    1    0    1    1    1    0    1    1    0   0   0   1    1    0
## 55     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 56     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 57     1    1    0    1    1    1    0    1    1    0   0   0   1    1    0
## 58     1    1    0    1    1    1    0    1    1    0   0   0   1    1    0
## 59     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 60     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 61     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 62     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 63     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 64     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 65     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 66     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 67     1    1    0    1    1    1    0    1    1    1   0   0   1    1    0
## 68     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 69     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 70     0    0    0    0    0    0    1    0    0    1   0   0   1    1    0
## 71     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 72     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 73     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 74     1    1    0    1    1    1    0    1    1    1   0   0   1    1    0
## 75     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 76     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 77     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 78     0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 79     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 80     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 81     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 82     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 83     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 84     0    0    0    0    0    0    0    0    0    0   0   0   1    0    1
## 85     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 86     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 87     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 88     1    1    1    1    1    1    0    1    1    1   0   0   1    1    0
## 89     1    1    1    1    1    1    0    1    1    1   0   0   1    1    0
## 90     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 91     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 92     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 93     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 94     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 95     0    0    0    0    0    0    0    0    0    0   0   0   0    0    1
## 96     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 97     0    0    0    0    0    0    1    0    0    0   0   0   0    0    0
## 98     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 99     0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 100    1    1    0    1    1    1    0    1    1    1   0   0   1    1    0
## 101    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 102    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 103    0    0    0    0    0    0    0    0    0    1   0   0   0    0    0
## 104    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 105    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 106    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 107    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 108    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 109    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 110    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 111    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 112    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 113    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 114    0    0    0    0    0    0    0    0    0    0   0   0   0    0    1
## 115    0    0    0    0    0    0    0    0    0    0   0   0   0    0    1
## 116    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 117    0    0    0    0    0    0    0    0    0    0   1   1   1    1    0
## 118    0    0    0    0    0    0    0    0    0    0   1   1   1    1    0
## 119    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 120    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 121    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 122    0    0    0    0    0    0    0    0    0    0   0   0   0    0    1
## 123    0    0    0    0    0    0    0    0    0    0   0   0   0    0    1
## 124    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 125    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 126    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 127    0    0    0    0    0    0    0    0    0    0   0   0   0    0    1
## 128    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 129    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 130    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 131    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 132    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 133    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 134    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 135    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 136    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 137    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 138    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 139    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 140    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 141    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 142    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 143    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 144    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 145    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 146    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 147    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 148    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 149    0    0    0    0    0    0    0    0    0    0   0   0   0    0    1
## 150    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 151    0    0    0    0    0    0    1    0    0    1   0   0   1    1    0
## 152    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 153    0    0    0    0    0    0    1    0    0    1   0   0   1    1    0
## 154    0    0    0    0    0    0    1    0    0    1   0   0   1    1    0
## 155    1    1    0    1    1    1    0    1    1    0   0   0   1    1    0
## 156    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 157    0    0    0    0    0    0    0    0    0    0   0   0   0    0    1
## 158    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
## 159    0    0    0    0    0    0    0    0    0    0   0   0   0    0    0
##     sepL sepQ/escQ sepZ/espZ sfaB sfaC sfaD sfaG sfaY shuA shuS shuT shuX sigA
## 1      0         0         0    0    0    0    0    0    0    0    0    0    0
## 2      0         0         0    0    0    0    0    0    0    0    0    0    0
## 3      0         0         0    0    0    0    0    0    0    0    0    0    0
## 4      0         0         0    0    0    0    0    0    0    0    0    0    0
## 5      0         0         0    0    0    0    0    0    0    0    0    0    0
## 6      0         0         0    0    0    0    0    0    0    0    0    0    0
## 7      0         0         0    1    1    1    1    1    0    0    0    0    0
## 8      0         0         0    0    0    0    0    0    0    0    0    0    0
## 9      0         0         0    0    0    0    0    0    1    0    0    1    0
## 10     0         0         0    0    0    0    0    0    1    0    0    1    0
## 11     0         0         0    0    0    0    0    0    0    0    0    0    0
## 12     0         0         0    0    0    0    0    0    0    0    0    0    0
## 13     0         0         0    0    0    0    0    0    0    0    0    0    0
## 14     0         0         0    0    0    0    0    0    0    0    0    0    0
## 15     0         0         0    0    0    0    0    0    0    0    0    0    0
## 16     0         0         0    0    0    0    0    0    0    0    0    0    0
## 17     0         0         0    0    0    0    0    0    0    0    0    0    0
## 18     0         0         0    0    0    0    0    0    0    0    0    0    0
## 19     0         0         0    0    0    0    0    0    0    0    0    0    0
## 20     0         0         0    0    0    0    0    0    0    0    0    0    0
## 21     0         0         0    0    0    0    0    0    0    0    0    0    0
## 22     0         0         0    0    0    0    0    0    0    0    0    0    0
## 23     0         0         0    0    0    0    0    0    0    0    0    0    0
## 24     0         0         0    0    0    0    0    0    0    0    0    0    0
## 25     0         0         0    0    0    0    0    0    0    0    0    0    0
## 26     0         0         0    0    0    0    0    0    0    0    0    0    0
## 27     0         0         0    0    0    0    0    0    0    0    0    0    0
## 28     0         0         0    0    0    0    0    0    1    0    0    0    0
## 29     0         0         0    0    0    0    0    0    0    0    0    0    0
## 30     0         0         0    0    0    0    0    0    0    0    0    0    0
## 31     0         0         0    0    0    0    0    0    1    0    1    1    0
## 32     0         0         0    0    0    0    0    0    0    0    0    0    1
## 33     0         0         0    0    0    0    0    0    1    1    1    1    0
## 34     0         0         0    0    0    0    0    0    0    0    0    0    1
## 35     0         0         0    0    0    0    0    0    0    0    0    0    0
## 36     0         0         0    0    0    0    0    0    1    0    1    1    0
## 37     0         0         0    0    0    0    0    0    0    0    0    0    0
## 38     0         0         0    0    0    0    0    0    1    0    0    0    0
## 39     0         0         0    0    0    0    0    0    0    0    0    0    0
## 40     0         0         0    0    0    0    0    0    1    0    1    1    0
## 41     0         0         0    0    0    0    0    0    1    0    1    1    0
## 42     0         0         0    0    0    0    0    0    0    0    0    0    0
## 43     0         0         0    0    0    0    0    0    0    0    0    0    0
## 44     0         0         0    0    0    0    0    0    0    0    0    0    0
## 45     0         0         0    0    0    0    0    0    0    0    0    0    0
## 46     0         0         0    0    0    0    0    0    0    0    0    0    0
## 47     0         0         0    0    0    0    0    0    0    0    0    0    0
## 48     0         0         0    0    0    0    0    0    0    0    0    0    1
## 49     0         0         0    0    0    0    0    0    0    0    0    0    0
## 50     0         0         0    0    0    0    0    0    0    0    0    0    0
## 51     1         0         0    0    0    0    0    0    0    0    0    0    0
## 52     0         0         0    0    0    0    0    0    0    0    0    0    0
## 53     0         0         0    0    0    0    0    0    1    0    1    1    0
## 54     0         0         0    0    0    0    0    0    0    0    0    0    0
## 55     0         0         0    0    0    0    0    0    0    0    0    0    0
## 56     0         0         0    0    0    0    0    0    0    0    0    0    0
## 57     0         0         0    0    0    0    0    0    0    0    0    0    0
## 58     0         0         0    0    0    0    0    0    0    0    0    0    0
## 59     0         0         0    0    0    0    0    0    0    0    0    0    0
## 60     0         0         0    0    0    0    0    0    0    0    0    0    0
## 61     0         0         0    0    0    0    0    0    0    0    0    0    0
## 62     0         0         0    0    0    0    0    0    0    0    0    0    1
## 63     0         0         0    0    0    0    0    0    0    0    0    0    0
## 64     1         0         0    0    0    0    0    0    0    0    0    0    0
## 65     0         0         0    0    0    0    0    0    1    0    1    1    0
## 66     0         0         0    0    0    0    0    0    0    0    0    0    0
## 67     0         0         0    0    0    0    0    0    0    0    0    0    0
## 68     0         0         0    0    0    0    0    0    1    0    1    1    0
## 69     0         0         0    0    0    0    0    0    0    0    0    0    0
## 70     0         0         0    0    0    0    0    0    0    0    0    0    0
## 71     0         0         0    0    0    0    0    0    0    0    0    0    0
## 72     0         0         0    0    0    0    0    0    0    0    0    0    0
## 73     0         0         0    0    0    0    0    0    0    0    0    0    1
## 74     0         0         0    0    0    0    0    0    0    0    0    0    0
## 75     0         0         0    0    0    0    0    0    0    0    0    0    1
## 76     0         0         0    0    0    0    0    0    0    0    0    0    0
## 77     0         0         0    0    0    0    0    0    0    0    0    0    0
## 78     0         0         0    0    0    0    0    0    1    0    1    1    0
## 79     0         0         0    0    0    0    0    0    0    0    0    0    0
## 80     0         0         0    0    0    0    0    0    0    0    0    0    0
## 81     0         0         0    0    0    0    0    0    0    0    0    0    0
## 82     0         0         0    0    0    0    0    0    0    0    0    0    0
## 83     0         0         0    0    0    0    0    0    0    0    0    0    0
## 84     1         1         0    0    0    0    0    0    0    0    0    0    0
## 85     0         0         0    0    0    0    0    0    1    0    0    0    0
## 86     0         0         0    0    0    0    0    0    0    0    0    0    0
## 87     0         0         0    0    0    0    0    0    0    0    0    0    0
## 88     0         0         0    0    0    0    0    0    0    0    0    0    0
## 89     0         0         0    0    0    0    0    0    0    0    0    0    0
## 90     0         0         0    0    0    0    0    0    0    0    0    0    0
## 91     0         0         0    0    0    0    0    0    0    0    0    0    0
## 92     0         0         0    0    0    0    0    0    0    0    0    0    0
## 93     0         0         0    0    0    0    0    0    0    0    0    0    0
## 94     0         0         0    0    0    0    0    0    0    0    0    0    0
## 95     1         1         1    0    0    0    0    0    0    0    0    0    0
## 96     0         0         0    0    0    0    0    0    1    1    1    1    0
## 97     0         0         0    0    0    0    0    0    1    0    0    1    0
## 98     0         0         0    0    0    0    0    0    1    0    1    1    0
## 99     0         0         0    0    0    0    0    0    0    0    0    0    0
## 100    0         0         0    0    0    0    0    0    0    0    0    0    0
## 101    0         0         0    0    0    0    0    0    1    0    1    1    0
## 102    0         0         0    0    0    0    0    0    0    0    0    0    0
## 103    0         0         0    0    0    0    0    0    1    0    0    1    0
## 104    0         0         0    0    0    0    0    0    1    0    1    1    0
## 105    0         0         0    0    0    0    0    0    1    0    1    1    0
## 106    0         0         0    0    0    0    0    0    0    0    0    0    0
## 107    0         0         0    0    0    0    0    0    0    0    0    0    0
## 108    0         0         0    0    0    0    0    0    1    0    1    1    0
## 109    0         0         0    0    0    0    0    0    0    0    0    0    0
## 110    0         0         0    0    0    0    0    0    0    0    0    0    1
## 111    0         0         0    0    0    0    0    0    0    0    0    0    1
## 112    0         0         0    0    0    0    0    0    0    0    0    0    0
## 113    0         0         0    0    0    0    0    0    0    0    0    0    0
## 114    1         1         1    0    0    0    0    0    0    0    0    0    0
## 115    1         1         1    0    0    0    0    0    0    0    0    0    0
## 116    0         0         0    0    0    0    0    0    0    0    0    0    0
## 117    0         0         0    0    0    0    0    0    0    0    0    0    0
## 118    0         0         0    0    0    0    0    0    0    0    0    0    0
## 119    0         0         0    0    0    0    0    0    0    0    0    0    0
## 120    0         0         0    0    0    0    0    0    0    0    0    0    0
## 121    0         0         0    0    0    0    0    0    0    0    0    0    0
## 122    1         1         1    0    0    0    0    0    0    0    0    0    0
## 123    1         1         1    0    0    0    0    0    0    0    0    0    0
## 124    0         0         0    0    0    0    0    0    0    0    0    0    0
## 125    0         0         0    0    0    0    0    0    0    0    0    0    0
## 126    0         0         0    0    0    0    0    0    0    0    0    0    0
## 127    1         1         1    0    0    0    0    0    0    0    0    0    0
## 128    0         0         0    0    0    0    0    0    0    0    0    0    1
## 129    0         0         0    0    0    0    0    0    0    0    0    0    0
## 130    0         0         0    0    0    0    0    0    1    0    1    1    0
## 131    0         0         0    0    0    0    0    0    1    0    1    1    0
## 132    0         0         0    0    0    0    0    0    1    0    1    1    0
## 133    0         0         0    0    0    0    0    0    0    0    0    0    0
## 134    0         0         0    0    0    0    0    0    1    0    1    1    0
## 135    0         0         0    0    0    0    0    0    0    0    0    0    1
## 136    0         0         0    0    0    0    0    0    0    0    0    0    0
## 137    0         0         0    0    0    0    0    0    0    0    0    0    0
## 138    0         0         0    0    0    0    0    0    0    0    0    0    0
## 139    0         0         0    0    0    0    0    0    0    0    0    0    0
## 140    0         0         0    0    0    0    0    0    1    0    1    1    0
## 141    0         0         0    0    0    0    0    0    1    0    1    1    0
## 142    0         0         0    0    0    0    0    0    1    0    1    1    0
## 143    0         0         0    0    0    0    0    0    0    0    0    0    0
## 144    0         0         0    0    0    0    0    0    0    0    0    0    1
## 145    0         0         0    0    0    0    0    0    0    0    0    0    0
## 146    0         0         0    0    0    0    0    0    0    0    0    0    0
## 147    0         0         0    0    0    0    0    0    1    0    1    1    0
## 148    0         0         0    0    0    0    0    0    0    0    0    0    0
## 149    1         1         1    0    0    0    0    0    0    0    0    0    0
## 150    0         0         0    0    0    0    0    0    0    0    0    0    0
## 151    0         0         0    0    0    0    0    0    0    0    0    0    0
## 152    0         0         0    0    0    0    0    0    0    0    0    0    0
## 153    0         0         0    0    0    0    0    0    0    0    0    0    0
## 154    0         0         0    0    0    0    0    0    0    0    0    0    0
## 155    0         0         0    0    0    0    0    0    0    0    0    0    0
## 156    0         0         0    0    0    0    0    0    1    0    1    1    0
## 157    1         1         1    0    0    0    0    0    0    0    0    0    0
## 158    0         0         0    0    0    0    0    0    1    0    1    1    0
## 159    0         0         0    0    0    0    0    0    1    0    1    1    0
##     tcpC tir vat yagV/ecpE yagW/ecpD yagX/ecpC yagY/ecpB yagZ/ecpA ybtA ybtE
## 1      0   0   0         1         1         1         1         1    1    1
## 2      0   0   0         1         1         1         1         1    0    0
## 3      0   0   0         1         1         1         1         1    0    0
## 4      0   0   0         1         1         1         1         1    0    0
## 5      0   0   0         1         1         1         1         1    0    0
## 6      0   0   0         1         1         1         1         1    1    1
## 7      1   0   1         1         1         1         1         1    1    1
## 8      0   0   0         1         1         1         1         1    0    0
## 9      0   0   0         1         1         1         1         1    1    1
## 10     0   0   0         1         1         1         1         1    1    1
## 11     0   0   0         1         1         1         1         1    1    1
## 12     0   0   0         1         1         1         1         1    0    0
## 13     0   0   0         1         1         1         1         1    0    0
## 14     0   0   0         1         1         1         1         1    0    0
## 15     0   0   0         1         1         1         1         1    0    0
## 16     0   0   0         1         1         1         1         1    0    0
## 17     0   0   0         1         1         1         1         1    1    1
## 18     0   0   0         1         1         1         1         1    1    1
## 19     0   0   0         1         1         1         1         1    1    1
## 20     0   0   0         1         1         1         1         1    1    1
## 21     0   0   0         1         1         1         1         1    1    1
## 22     0   0   0         1         1         1         1         1    0    0
## 23     0   0   0         1         1         1         1         1    0    0
## 24     0   0   0         1         1         1         1         1    0    0
## 25     0   0   0         1         1         1         1         1    0    0
## 26     0   0   0         1         1         1         1         1    0    0
## 27     0   0   0         1         1         1         1         1    0    0
## 28     0   0   0         1         1         1         1         1    0    0
## 29     0   0   0         1         1         1         1         1    0    0
## 30     0   0   0         1         1         1         1         1    0    0
## 31     0   0   0         1         1         1         1         1    1    1
## 32     0   0   0         1         1         1         1         1    0    0
## 33     0   0   0         1         1         1         1         1    0    0
## 34     0   0   0         1         1         1         1         1    0    0
## 35     0   0   0         1         1         1         1         1    1    1
## 36     0   0   0         1         1         1         1         1    1    1
## 37     0   0   0         1         1         1         1         1    0    0
## 38     0   0   0         1         1         1         1         1    0    0
## 39     0   0   0         1         1         1         1         1    1    1
## 40     0   0   0         1         1         1         1         1    1    1
## 41     0   0   0         1         1         1         1         1    1    1
## 42     0   0   0         1         1         1         1         1    0    0
## 43     0   0   0         1         1         1         1         1    0    0
## 44     0   0   0         1         1         1         1         1    0    0
## 45     0   0   0         1         1         1         1         1    0    0
## 46     0   0   0         1         1         1         1         1    0    0
## 47     0   0   0         1         1         1         1         1    1    1
## 48     0   0   0         1         1         1         1         1    0    0
## 49     0   0   0         1         1         1         1         1    1    1
## 50     0   0   0         1         1         1         1         1    1    1
## 51     0   0   0         1         1         1         1         1    1    1
## 52     0   0   0         1         1         1         1         1    0    0
## 53     0   0   0         1         1         1         1         1    1    1
## 54     0   0   0         1         1         1         1         1    1    1
## 55     0   0   0         1         1         1         1         1    1    1
## 56     0   0   0         1         1         1         1         1    1    1
## 57     0   0   0         1         1         1         1         1    1    1
## 58     0   0   0         1         1         1         1         1    1    1
## 59     0   0   0         1         1         1         1         1    1    1
## 60     0   0   0         1         1         1         1         1    1    1
## 61     0   0   0         1         1         1         1         1    1    1
## 62     0   0   0         1         1         1         1         1    0    0
## 63     0   0   0         1         1         1         1         1    1    1
## 64     0   0   0         1         1         1         1         1    1    1
## 65     0   0   0         1         1         1         1         1    1    1
## 66     0   0   0         1         1         1         1         1    1    1
## 67     0   0   0         1         1         1         1         1    1    1
## 68     0   0   0         1         1         1         1         1    1    1
## 69     1   0   1         1         1         1         1         1    1    1
## 70     0   0   0         1         1         1         1         1    1    1
## 71     0   0   0         1         1         1         1         1    0    0
## 72     0   0   0         1         1         1         1         1    0    0
## 73     0   0   0         1         1         1         1         1    0    0
## 74     0   0   0         1         1         1         1         1    1    1
## 75     0   0   0         1         1         1         1         1    0    0
## 76     0   0   0         1         1         1         1         1    0    0
## 77     0   0   0         1         1         1         1         1    0    0
## 78     0   0   0         1         1         1         1         1    1    1
## 79     0   0   0         1         1         1         1         1    0    0
## 80     0   0   0         1         1         1         1         1    0    0
## 81     0   0   0         1         1         1         1         1    0    0
## 82     0   0   0         0         0         0         0         0    0    0
## 83     0   0   0         1         1         1         1         1    0    0
## 84     0   0   0         1         1         1         1         1    0    0
## 85     0   0   0         1         1         1         1         1    0    0
## 86     0   0   0         1         1         1         1         1    1    1
## 87     0   0   0         1         1         1         1         1    0    0
## 88     0   0   0         1         1         1         1         1    1    1
## 89     0   0   0         1         1         1         1         1    1    1
## 90     0   0   0         1         1         1         1         1    0    0
## 91     0   0   0         1         1         1         1         1    0    0
## 92     0   0   0         1         1         1         1         1    0    0
## 93     0   0   0         1         1         1         1         1    0    0
## 94     0   0   0         1         1         1         1         1    0    0
## 95     0   1   0         0         0         0         0         0    0    0
## 96     0   0   0         1         1         1         1         1    0    0
## 97     0   0   0         1         1         1         1         1    0    0
## 98     0   0   0         1         1         1         1         1    1    1
## 99     0   0   0         1         1         1         1         1    0    0
## 100    0   0   0         1         1         1         1         1    1    1
## 101    0   0   0         1         1         1         1         1    1    1
## 102    0   0   0         1         1         1         1         1    0    0
## 103    0   0   0         1         1         1         1         1    1    1
## 104    0   0   0         1         1         1         1         1    1    1
## 105    0   0   0         1         1         1         1         1    1    1
## 106    0   0   0         1         1         1         1         1    0    0
## 107    0   0   0         1         1         1         1         1    1    1
## 108    0   0   0         1         1         1         1         1    1    1
## 109    0   0   0         1         1         1         1         1    0    0
## 110    0   0   0         1         1         1         1         1    0    0
## 111    0   0   0         1         1         1         1         1    0    0
## 112    0   0   0         1         1         1         1         1    1    1
## 113    0   0   0         1         1         1         1         1    1    1
## 114    0   1   0         0         0         0         0         0    0    0
## 115    0   1   0         0         0         0         0         0    0    0
## 116    0   0   0         1         1         1         1         1    0    0
## 117    0   0   0         1         1         1         1         1    1    1
## 118    0   0   0         1         1         1         1         1    1    1
## 119    0   0   0         1         1         1         1         1    0    0
## 120    0   0   0         1         1         1         1         1    0    0
## 121    0   0   0         1         1         1         1         1    0    0
## 122    0   1   0         0         0         0         0         0    0    0
## 123    0   1   0         0         0         0         0         0    0    0
## 124    0   0   0         1         1         1         1         1    0    0
## 125    0   0   0         1         1         1         1         1    0    0
## 126    0   0   0         1         1         1         1         1    0    0
## 127    0   1   0         0         0         0         0         0    0    0
## 128    0   0   0         1         1         1         1         1    0    0
## 129    0   0   0         0         0         0         0         0    1    1
## 130    0   0   0         1         1         1         1         1    1    1
## 131    0   0   0         1         1         1         1         1    1    1
## 132    0   0   0         1         1         1         1         1    1    1
## 133    0   0   0         1         1         1         1         1    0    0
## 134    0   0   0         1         1         1         1         1    1    1
## 135    0   0   0         1         1         1         1         1    0    0
## 136    0   0   0         1         1         1         1         1    0    0
## 137    0   0   0         1         1         1         1         1    0    0
## 138    0   0   0         0         0         0         0         0    0    0
## 139    0   0   0         1         1         1         1         1    0    0
## 140    0   0   0         1         1         1         1         1    1    1
## 141    0   0   0         1         1         1         1         1    1    1
## 142    0   0   0         1         1         1         1         1    1    1
## 143    0   0   0         1         1         1         1         1    1    1
## 144    0   0   0         1         1         1         1         1    0    0
## 145    0   0   0         1         1         1         1         1    0    0
## 146    0   0   0         1         1         1         1         1    0    0
## 147    0   0   0         1         1         1         1         1    1    1
## 148    0   0   0         1         1         1         1         1    0    0
## 149    0   1   0         0         0         0         0         0    0    0
## 150    0   0   0         1         1         1         1         1    0    0
## 151    0   0   0         1         1         1         1         1    1    1
## 152    0   0   0         0         0         0         0         0    0    0
## 153    0   0   0         1         1         1         1         1    1    1
## 154    0   0   0         1         1         1         1         1    1    1
## 155    0   0   0         1         1         1         1         1    1    1
## 156    0   0   0         1         1         1         1         1    1    1
## 157    0   1   0         0         0         0         0         0    0    0
## 158    0   0   0         1         1         1         1         1    1    1
## 159    0   0   0         1         1         1         1         1    1    1
##     ybtP ybtQ ybtS ybtT ybtU ybtX ykgK/ecpR
## 1      1    1    1    1    1    1         1
## 2      0    0    0    0    0    0         1
## 3      0    0    0    0    0    0         1
## 4      0    0    0    0    0    0         1
## 5      0    0    0    0    0    0         1
## 6      1    1    1    1    1    1         1
## 7      1    1    1    1    1    1         1
## 8      0    0    0    0    0    0         1
## 9      1    1    1    1    1    1         1
## 10     1    1    1    1    1    1         1
## 11     1    1    1    1    1    1         1
## 12     0    0    0    0    0    0         1
## 13     0    0    0    0    0    0         1
## 14     0    0    0    0    0    0         1
## 15     0    0    0    0    0    0         1
## 16     0    0    0    0    0    0         1
## 17     1    1    1    1    1    1         1
## 18     1    1    1    1    1    1         1
## 19     1    1    1    1    1    1         1
## 20     1    1    1    1    1    1         1
## 21     1    1    1    1    1    1         1
## 22     0    0    0    0    0    0         1
## 23     0    0    0    0    0    0         1
## 24     0    0    0    0    0    0         1
## 25     0    0    0    0    0    0         1
## 26     0    0    0    0    0    0         1
## 27     0    0    0    0    0    0         1
## 28     0    0    0    0    0    0         1
## 29     0    0    0    0    0    0         1
## 30     0    0    0    0    0    0         1
## 31     1    1    1    1    1    1         1
## 32     0    0    0    0    0    0         1
## 33     0    0    0    0    0    0         1
## 34     0    0    0    0    0    0         1
## 35     1    1    1    1    1    1         1
## 36     1    1    1    1    1    1         1
## 37     0    0    0    0    0    0         1
## 38     0    0    0    0    0    0         1
## 39     1    1    1    1    1    1         1
## 40     1    1    1    1    1    1         1
## 41     1    1    1    1    1    1         1
## 42     0    0    0    0    0    0         1
## 43     0    0    0    0    0    0         1
## 44     0    0    0    0    0    0         1
## 45     0    0    0    0    0    0         1
## 46     0    0    0    0    0    0         1
## 47     1    1    1    1    1    1         1
## 48     0    0    0    0    0    0         1
## 49     1    1    1    1    1    1         1
## 50     1    1    1    1    1    1         1
## 51     1    1    1    1    1    1         1
## 52     0    0    0    0    0    0         1
## 53     1    1    1    1    1    1         1
## 54     1    1    1    1    1    1         1
## 55     1    1    1    1    1    1         1
## 56     1    1    1    1    1    1         1
## 57     1    1    1    1    1    1         1
## 58     1    1    1    1    1    1         1
## 59     1    1    1    1    1    1         1
## 60     1    1    1    1    1    1         1
## 61     1    1    1    1    1    1         1
## 62     0    0    0    0    0    0         1
## 63     1    1    1    1    1    1         1
## 64     1    1    1    1    1    1         1
## 65     1    1    1    1    1    1         1
## 66     1    1    1    1    1    1         1
## 67     1    1    1    1    1    1         1
## 68     1    1    1    1    1    1         1
## 69     1    1    1    1    1    1         1
## 70     1    1    1    1    1    1         1
## 71     0    0    0    0    0    0         1
## 72     0    0    0    0    0    0         1
## 73     0    0    0    0    0    0         1
## 74     1    1    1    1    1    1         1
## 75     0    0    0    0    0    0         1
## 76     0    0    0    0    0    0         1
## 77     0    0    0    0    0    0         1
## 78     1    1    1    1    1    1         1
## 79     0    0    0    0    0    0         1
## 80     0    0    0    0    0    0         1
## 81     0    0    0    0    0    0         1
## 82     0    0    0    0    0    0         0
## 83     0    0    0    0    0    0         1
## 84     0    0    0    0    0    0         1
## 85     0    0    0    0    0    0         1
## 86     1    1    1    1    1    1         1
## 87     0    0    0    0    0    0         1
## 88     1    1    1    1    1    1         1
## 89     1    1    1    1    1    1         1
## 90     0    0    0    0    0    0         1
## 91     0    0    0    0    0    0         1
## 92     0    0    0    0    0    0         1
## 93     0    0    0    0    0    0         1
## 94     0    0    0    0    0    0         1
## 95     0    0    0    0    0    0         0
## 96     0    0    0    0    0    0         1
## 97     0    0    0    0    0    0         1
## 98     1    1    1    1    1    1         1
## 99     0    0    0    0    0    0         1
## 100    1    1    1    1    1    1         1
## 101    1    1    1    1    1    1         1
## 102    0    0    0    0    0    0         1
## 103    1    1    1    1    1    1         1
## 104    1    1    1    1    1    1         1
## 105    1    1    1    1    1    1         1
## 106    0    0    0    0    0    0         1
## 107    1    1    1    1    1    1         1
## 108    1    1    1    1    1    1         1
## 109    0    0    0    0    0    0         1
## 110    0    0    0    0    0    0         1
## 111    0    0    0    0    0    0         1
## 112    1    1    1    1    1    1         1
## 113    1    1    1    1    1    1         1
## 114    0    0    0    0    0    0         0
## 115    0    0    0    0    0    0         0
## 116    0    0    0    0    0    0         1
## 117    1    1    1    1    1    1         1
## 118    1    1    1    1    1    1         1
## 119    0    0    0    0    0    0         1
## 120    0    0    0    0    0    0         1
## 121    0    0    0    0    0    0         1
## 122    0    0    0    0    0    0         0
## 123    0    0    0    0    0    0         0
## 124    0    0    0    0    0    0         1
## 125    0    0    0    0    0    0         1
## 126    0    0    0    0    0    0         1
## 127    0    0    0    0    0    0         0
## 128    0    0    0    0    0    0         1
## 129    1    1    1    1    1    1         0
## 130    1    1    1    1    1    1         1
## 131    1    1    1    1    1    1         1
## 132    1    1    1    1    1    1         1
## 133    0    0    0    0    0    0         1
## 134    1    1    1    1    1    1         1
## 135    0    0    0    0    0    0         1
## 136    0    0    0    0    0    0         1
## 137    0    0    0    0    0    0         1
## 138    0    0    0    0    0    0         0
## 139    0    0    0    0    0    0         1
## 140    1    1    1    1    1    1         1
## 141    1    1    1    1    1    1         1
## 142    1    1    1    1    1    1         1
## 143    1    1    1    1    1    1         1
## 144    0    0    0    0    0    0         1
## 145    0    0    0    0    0    0         1
## 146    0    0    0    0    0    0         1
## 147    1    1    1    1    1    1         1
## 148    0    0    0    0    0    0         1
## 149    0    0    0    0    0    0         0
## 150    0    0    0    0    0    0         1
## 151    1    1    1    1    1    1         1
## 152    0    0    0    0    0    0         0
## 153    1    1    1    1    1    1         1
## 154    1    1    1    1    1    1         1
## 155    1    1    1    1    1    1         1
## 156    1    1    1    1    1    1         1
## 157    0    0    0    0    0    0         0
## 158    1    1    1    1    1    1         1
## 159    1    1    1    1    1    1         1

Phylogenetic tree with annotation

# Read in the treefile
tree <- read.tree("Data/human_esbl_core_snps.aln.treefile")

# Root the tree at midpoint
tree <- midpoint(tree)

# Extract isolate metadata for tree
phylogroup_data <- isolate_data_human[, c("Isolate", "Phylogroup")]

# Reorder metadata to match tree tip order
phylogroup_data <- phylogroup_data[match(tree$tip.label, phylogroup_data$Isolate), ]
rownames(phylogroup_data) <- phylogroup_data$Isolate

# Extract District data for plotting
district_data <- isolate_data_human[, c("Isolate", "District")]

# Extract Year data for plotting
year_data <- isolate_data_human[, c("Isolate", "Year")]

# Prepare and reorder ESBL gene data for tree_plotting
tree_arg_data <- ARGs
selected_columns <- grep("Isolate|CTX", colnames(tree_arg_data), value = TRUE)
tree_arg_data <- tree_arg_data[, selected_columns]

# Mutate the ESBL gene data to have Isolate and ARG columns
ESBL_genes_long <- tree_arg_data %>%
  pivot_longer(
    cols = -Isolate,
    names_to = "ARG",
    values_to = "Presence"
  )

# Filter for only relevant rows (where presence is 1)
ESBL_genes_long <- ESBL_genes_long %>%
  dplyr::filter(Presence == 1) %>%
  dplyr::select(-Presence)

# Generate the basic tree with phylogroup data
p <- ggtree(tree) %<+% phylogroup_data +
  geom_tippoint(
    aes(fill = Phylogroup),
    shape = 21,
    color = "black",
    stroke = 0.3,
    size = 2.0
  ) +
  scale_fill_brewer(palette = "Set2") +
  geom_treescale(x = 0.02, y = 100, width = 0.01, fontsize = 3, linesize = 0.5)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## ℹ The deprecated feature was likely used in the ggtree package.
##   Please report the issue at <https://github.com/YuLab-SMU/ggtree/issues>.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Add District
p1 <- p +
  new_scale_fill() + 
      geom_fruit(
        data = district_data,
        geom = geom_tile,
        mapping = aes(y = Isolate, x = District, fill = District),
        color = "black",
        offset = 0.03,   # The distance between external layers, default is 0.03 times of x range of tree.
        pwidth = 0.04 # width of the external layer, default is 0.2 times of x range of tree.
      ) +
  scale_fill_brewer(palette = "Set1")

# Add Year
p2 <- p1 +
  new_scale_fill() + 
      geom_fruit(
        data = year_data,
        geom = geom_tile,
        mapping = aes(y = Isolate, x = Year, fill = Year),
        color = "black",
        offset = 0.04,   # The distance between external layers, default is 0.03 times of x range of tree.
        pwidth = 0.04 # width of the external layer, default is 0.2 times of x range of tree.
      ) +
  scale_fill_brewer(palette = "Set3")
        
# Add ESBL genes
p3 <- p2 +
  new_scale_fill() + 
      geom_fruit(
        data = ESBL_genes_long,
        geom = geom_tile,
        mapping = aes(y = Isolate, x = ARG, fill = ARG),
        color = "black",
        offset = 0.04,   # The distance between external layers, default is 0.03 times of x range of tree.
        pwidth = 0.2 # width of the external layer, default is 0.2 times of x range of tree.
      ) +
  scale_fill_brewer(name = "ESBL gene", palette = "Set2")

# Save the plot
ggsave("Figures/Tree.png", p3, width = 12, height = 6.5, dpi = 600)

# Print the plot
print(p3)

Mapping lineages between households

# Import data

# Read in household GPS data
households <- read.csv("data/Households_Jittered.csv")

# Read in lineages
interhousehold_lineages <- read.csv("data/Household_clusters.csv")

Samama (Mangochi District) Maps

## Create the base map

# Convert Samama household coordinates to sf object and project
samama_sf <- households %>%
  filter(district == "Mangochi") %>%
  st_as_sf(coords = c("GPS_E", "GPS_S"), crs = 4326)

samama_sf_proj <- st_transform(samama_sf, 32736)

# Define and project bounding box
rectangle_coords_samama <- matrix(c(
  35.2166, -14.4150,
  35.2260, -14.4150,
  35.2260, -14.4230,
  35.2166, -14.4230,
  35.2166, -14.4150
), ncol = 2, byrow = TRUE)

rectangle_samama <- st_polygon(list(rectangle_coords_samama)) %>%
  st_sfc(crs = 4326) %>%
  st_transform(32736)

box_samama <- st_bbox(rectangle_samama)
rectangle_samama_proj <- st_as_sfc(box_samama)

# Plot the base map
samama_base_map <- ggplot() +
  geom_sf(data = rectangle_samama_proj, fill = "cornsilk", color = "black") +
  geom_sf(data = samama_sf_proj, color = "black", size = 1.8) +
  annotation_scale(location = "bl", pad_x = unit(0.5, "in"), pad_y = unit(0.4, "in")) +
  annotation_north_arrow(
    location = "bl",
    pad_x = unit(0.4, "in"), pad_y = unit(0.8, "in"),
    style = north_arrow_fancy_orienteering
  ) +
  theme_void()

# Save the base map
ggsave("Figures/Samama_map.png", plot = samama_base_map, width = 5, height = 5, dpi = 600)

# Print the base map
print(samama_base_map)

Samama (Mangochi District) lineages

Here, we plot lineages (where groups of isolates are from the same ST and popPUNK cluster) in Mangochi District. Selected lineages must be represented in at least 3 households in either 2023 or 2024.

# Prepare the data
samama_clusters <- interhousehold_lineages %>%
  filter(district == "Mangochi")

samama_clusters <- samama_clusters %>%
  left_join(
    households %>% select(household, GPS_S, GPS_E),
    by = "household"
  )

# Convert Samama household coordinates to sf object and project
samama_clusters_sf <- samama_clusters %>%
  st_as_sf(coords = c("GPS_E", "GPS_S"), crs = 4326)

samama_clusters_sf_proj <- st_transform(samama_clusters_sf, 32736)

# Plot the clusters

# Set custom colors for year
year_colors <- c(
  "2023" = "blue",
  "2024" = "red",
  "Both years" = "green3"
)

# Define the clusters to include
clusters_to_plot <- c("ST10_popPUNK5", "ST38_popPUNK20", "ST44_popPUNK223", "ST58_popPUNK11", "ST131_popPUNK4", "ST131_popPUNK25", "ST1015_popPUNK11", "ST2852_popPUNK18", "ST3580_popPUNK18", "ST5614_popPUNK251", "ST8025_popPUNK5", "ST13823_popPUNK1407")

# Create individual plots
cluster_plots <- map(clusters_to_plot, function(clust) {
  cluster_data <- samama_clusters_sf_proj %>%
    filter(cluster == clust)

  ggplot() +
    geom_sf(data = rectangle_samama_proj, fill = "cornsilk", color = "black") +
    geom_sf(data = samama_sf_proj, color = "black", size = 1.5) +
    geom_sf(data = cluster_data, aes(color = year), size = 4.0,
            show.legend = clust == "ST5614_popPUNK251") +  # Show legend only for this cluster
    scale_color_manual(
      values = year_colors,
      breaks = names(year_colors),
      name = "Household colonisation year"
    ) +
    labs(title = paste(clust)) +
    theme_void() +
    theme(
      plot.title = element_text(hjust = 0.5, size = 14),
      legend.position = "bottom",
      legend.text = element_text(size = 14),
      legend.title = element_text(size = 14)
    ) +
    guides(color = guide_legend(override.aes = list(size = 4)))
})

# Combine plots into one panel with a single shared legend
samama_panel_plot <- wrap_plots(cluster_plots, ncol = 4, nrow = 3) +
  plot_layout(guides = "collect") &
  theme(legend.position = "bottom")

# Save the panel
ggsave("Figures/Samama_lineage_panel_map.png", plot = samama_panel_plot, width = 12, height = 12, dpi = 600)

print(samama_panel_plot)

Mthawira (Nsanje District)

## Create the base map

# Convert Mthawira household coordinates to sf object and project
mthawira_sf <- households %>%
  filter(district == "Nsanje") %>%
  st_as_sf(coords = c("GPS_E", "GPS_S"), crs = 4326)

mthawira_sf_proj <- st_transform(mthawira_sf, 32736)

# Define and project bounding box
rectangle_coords_mthawira <- matrix(c(
  35.2850, -16.8440,
  35.3020, -16.8440,
  35.3020, -16.8580,
  35.2850, -16.8580,
  35.2850, -16.8440
), ncol = 2, byrow = TRUE)

rectangle_mthawira <- st_polygon(list(rectangle_coords_mthawira)) %>%
  st_sfc(crs = 4326) %>%
  st_transform(32736)

box_mthawira <- st_bbox(rectangle_mthawira)
rectangle_mthawira_proj <- st_as_sfc(box_mthawira)

# Plot the base map
mthawira_base_map <- ggplot() +
  geom_sf(data = rectangle_mthawira_proj, fill = "cornsilk", color = "black") +
  geom_sf(data = mthawira_sf_proj, color = "black", size = 1.8) +
  annotation_scale(location = "bl", pad_x = unit(0.5, "in"), pad_y = unit(0.4, "in")) +
  annotation_north_arrow(
    location = "bl",
    pad_x = unit(0.4, "in"), pad_y = unit(0.8, "in"),
    style = north_arrow_fancy_orienteering
  ) +
  theme_void()

# Save the base map
ggsave("Figures/Mthawira_map.png", plot = mthawira_base_map, width = 5, height = 5, dpi = 600)

# Print the base map
print(mthawira_base_map)

Mthawira (Nsanje District) lineages

Here, we plot lineages (where groups of isolates are from the same ST and popPUNK cluster) in Nsanje District. Selected lineages must be represented in at least 3 households in either 2023 or 2024.

# Prepare the data
mthawira_clusters <- interhousehold_lineages %>%
  filter(district == "Nsanje")

mthawira_clusters <- mthawira_clusters %>%
  left_join(
    households %>% select(household, GPS_S, GPS_E),
    by = "household"
  )

# Convert Mthawira household coordinates to sf object and project
mthawira_clusters_sf <- mthawira_clusters %>%
  st_as_sf(coords = c("GPS_E", "GPS_S"), crs = 4326)

mthawira_clusters_sf_proj <- st_transform(mthawira_clusters_sf, 32736)

# Plot the clusters

# Set custom colors for year
year_colors <- c(
  "2023" = "blue",
  "2024" = "red",
  "Both years" = "green3"
)

# Define the clusters to include
clusters_to_plot <- c("ST10_popPUNK92", "ST206_popPUNK41_1328", "ST1015_popPUNK11")

# Create individual plots
cluster_plots <- map(clusters_to_plot, function(clust) {
  cluster_data <- mthawira_clusters_sf_proj %>%
    filter(cluster == clust)

  ggplot() +
    geom_sf(data = rectangle_mthawira_proj, fill = "cornsilk", color = "black") +
    geom_sf(data = mthawira_sf_proj, color = "black", size = 1.5) +
    geom_sf(data = cluster_data, aes(color = year), size = 4.0,
            show.legend = clust == "ST206_popPUNK41_1328") +  # Show legend only for this cluster
    scale_color_manual(
      values = year_colors,
      breaks = names(year_colors),
      name = "Household colonisation year"
    ) +
    labs(title = paste(clust)) +
    theme_void() +
    theme(
      plot.title = element_text(hjust = 0.5, size = 14),
      legend.position = "bottom",
      legend.text = element_text(size = 14),
      legend.title = element_text(size = 14)
    ) +
    guides(color = guide_legend(override.aes = list(size = 4)))
})

# Combine plots into one panel with a single shared legend
mthawira_panel_plot <- wrap_plots(cluster_plots, ncol = 4, nrow = 1) +
  plot_layout(guides = "collect") &
  theme(legend.position = "bottom")

# Save the panel
ggsave("Figures/Mthawira_lineage_panel_map.png", plot = mthawira_panel_plot, width = 12, height = 4, dpi = 600)

print(mthawira_panel_plot)

Strain-level analysis

Strain identification

# Read ANI matrix
ani <- read.csv("Data/ANI_matrix.csv", row.names = 1)

# Convert ANI to distance
ani_dist_matrix <- 1 - (as.matrix(ani) / 100)

# Convert to "dist" object
ani_dist_obj <- as.dist(ani_dist_matrix)

# Perform hierarchical clustering (average linkage)
hc <- hclust(ani_dist_obj, method = "average")

# Cut tree at ANI > 99.99% (distance < 0.0001)
clusters <- cutree(hc, h = 0.0001)

# Combine results
strain_groups <- split(names(clusters), clusters)

# Print strain groups
print(strain_groups)
## $`1`
## [1] "cM10a"
## 
## $`2`
## [1] "cM12a" "fM23b"
## 
## $`3`
## [1] "cM19a" "cM7b" 
## 
## $`4`
## [1] "cM20a" "cM2a"  "cM3a"  "cM44b" "cS28a"
## 
## $`5`
## [1] "cM34a"  "cM42b"  "cM8a"   "cM9b"   "fS158a" "fS159a"
## 
## $`6`
## [1] "cM35a"
## 
## $`7`
## [1] "cM41a" "cM42a"
## 
## $`8`
## [1] "cM59a" "fM21a"
## 
## $`9`
## [1] "cM59b" "cM5a" 
## 
## $`10`
## [1] "cS100a" "cS58a"  "cS71a" 
## 
## $`11`
## [1] "cS103a"
## 
## $`12`
## [1] "cS104a" "cS53a"  "cS61a"  "cS63a"  "fS92a" 
## 
## $`13`
## [1] "cS107a" "cS115a"
## 
## $`14`
## [1] "cS108a" "cS109a" "cS129a" "cS164a"
## 
## $`15`
## [1] "cS10a" "cS11a"
## 
## $`16`
## [1] "cS113a"
## 
## $`17`
## [1] "cS116a"
## 
## $`18`
## [1] "cS132a" "cS162a" "cS172a" "cS178a" "cS51a"  "cS83a" 
## 
## $`19`
## [1] "cS142a" "fS146a"
## 
## $`20`
## [1] "cS153a"
## 
## $`21`
## [1] "cS157a"
## 
## $`22`
## [1] "cS15a"
## 
## $`23`
## [1] "cS165a"
## 
## $`24`
## [1] "cS168a" "cS80a"  "cS91a" 
## 
## $`25`
## [1] "cS184a"
## 
## $`26`
## [1] "cS27b" "cS30a" "cS33a" "fM35a"
## 
## $`27`
## [1] "cS35a"
## 
## $`28`
## [1] "cS37a"
## 
## $`29`
## [1] "cS39c" "cS65a" "cS68a" "cS76a"
## 
## $`30`
## [1] "cS45a"
## 
## $`31`
## [1] "cS46a"
## 
## $`32`
## [1] "cS4a"
## 
## $`33`
## [1] "cS60a" "cS66a"
## 
## $`34`
## [1] "cS6a"
## 
## $`35`
## [1] "cS71b"
## 
## $`36`
## [1] "cS72c"
## 
## $`37`
## [1] "cS86a"
## 
## $`38`
## [1] "cS86b"
## 
## $`39`
## [1] "cS87a" "cS88a"
## 
## $`40`
## [1] "cS8b"
## 
## $`41`
## [1] "cS97a"
## 
## $`42`
## [1] "cS99a"
## 
## $`43`
## [1] "fM10a"
## 
## $`44`
## [1] "fM16a"
## 
## $`45`
## [1] "fM19a" "fM48a" "fM51a"
## 
## $`46`
## [1] "fM24a"
## 
## $`47`
## [1] "fM27b" "fM60a"
## 
## $`48`
## [1] "fM29a"
## 
## $`49`
## [1] "fM30a"
## 
## $`50`
## [1] "fM31a"
## 
## $`51`
## [1] "fM40a" "fM41b"
## 
## $`52`
## [1] "fM54a"
## 
## $`53`
## [1] "fM59a"
## 
## $`54`
## [1] "fS100a" "fS14a" 
## 
## $`55`
## [1] "fS101a"
## 
## $`56`
## [1] "fS102a"
## 
## $`57`
##  [1] "fS10a" "fS11a" "fS12a" "fS13a" "fS37a" "fS39a" "fS41a" "fS46a" "fS62a"
## [10] "fS63b" "fS64a" "fS74a" "fS93a" "fS97a" "fS99a"
## 
## $`58`
## [1] "fS111a"
## 
## $`59`
## [1] "fS117a"
## 
## $`60`
## [1] "fS121a"
## 
## $`61`
## [1] "fS122a"
## 
## $`62`
## [1] "fS128a"
## 
## $`63`
## [1] "fS133b"
## 
## $`64`
## [1] "fS139a" "fS149a" "fS6a"  
## 
## $`65`
## [1] "fS143a"
## 
## $`66`
## [1] "fS144a"
## 
## $`67`
## [1] "fS148a"
## 
## $`68`
## [1] "fS155a"
## 
## $`69`
## [1] "fS157a"
## 
## $`70`
## [1] "fS165a" "fS170a" "fS171a" "fS58a" 
## 
## $`71`
## [1] "fS174a" "fS177a"
## 
## $`72`
## [1] "fS190a"
## 
## $`73`
## [1] "fS191a" "fS50a"  "fS54a"  "fS72b"  "fS73a"  "fS79a"  "fS81a" 
## 
## $`74`
## [1] "fS24a"
## 
## $`75`
## [1] "fS25a" "fS80a" "fS95a"
## 
## $`76`
## [1] "fS34a"
## 
## $`77`
## [1] "fS35a"
## 
## $`78`
## [1] "fS42a"
## 
## $`79`
## [1] "fS4a"
## 
## $`80`
## [1] "fS56a" "fS84a"
## 
## $`81`
## [1] "fS70a"
## 
## $`82`
## [1] "fS83a"
## 
## $`83`
## [1] "fS85a" "fS86a"
# Generate a dendrogram of ANI distances

# Open SVG device
svg("Figures/ANI_dendrogram.svg", width = 8, height = 4.5)

# Export dendrogram of ANI hierarchical clustering
plot(hc, main = "ANI Hierarchical Clustering Dendrogram",
     xlab = "Isolate", ylab = "Distance (1 - (ANI/100))", cex = 0.5)

# Close device
dev.off()
## png 
##   2
# Print the plot
plot(hc, main = "ANI Hierarchical Clustering Dendrogram",
     xlab = "Isolate", ylab = "Distance (1 - (ANI/100))", cex = 0.5)

Identification of medoid isolates for long-read sequencing

# Identify medoid isolate from each strain represented in 3+ households

# Define strain IDs of interest
target_strains <- c(4, 5, 10, 12, 14, 18, 24, 26, 29, 45, 57, 64, 70, 73, 75)

# Create empty results data frame
medoids <- data.frame(strain = integer(),
                      n_isolates = integer(),
                      medoid_isolate = character(),
                      mean_distance = numeric(),
                      stringsAsFactors = FALSE)

for (strain_id in target_strains) {
  # Get isolates belonging to this strain
  members <- names(clusters[clusters == strain_id])
  if (length(members) < 2) next  # skip if only one isolate
  
  # Subset distance matrix for this strain
  submat <- ani_dist_matrix[members, members, drop = FALSE]
  
  # Compute average distance to all other members
  mean_dists <- rowMeans(submat, na.rm = TRUE)
  
  # Identify isolate with smallest mean distance (the medoid)
  medoid <- names(which.min(mean_dists))
  
  # Store result
  medoids <- rbind(medoids, data.frame(
    strain = strain_id,
    n_isolates = length(members),
    medoid_isolate = medoid,
    mean_distance = mean_dists[medoid]
  ))
}

# Print medoid isolates per target strain
print(medoids)
##        strain n_isolates medoid_isolate mean_distance
## cM2a        4          5           cM2a  4.676800e-05
## cM8a        5          6           cM8a  3.386333e-05
## cS100a     10          3         cS100a  2.077667e-05
## cS53a      12          5          cS53a  4.184000e-05
## cS108a     14          4         cS108a  1.072000e-05
## cS51a      18          6          cS51a  3.701500e-05
## cS91a      24          3          cS91a  1.836333e-05
## cS33a      26          4          cS33a  3.172000e-05
## cS76a      29          4          cS76a  2.731000e-05
## fM51a      45          3          fM51a  2.507667e-05
## fS10a      57         15          fS10a  3.073600e-05
## fS149a     64          3         fS149a  4.928667e-05
## fS58a      70          4          fS58a  3.223500e-05
## fS54a      73          7          fS54a  4.114429e-05
## fS25a      75          3          fS25a  4.437667e-05

Chromosomal SNP distances within strains (hybrid assembly of above medoid isolate used as reference for each strain )

# Import within-strain genomic distance data
strain_SNPs <- read.csv("Data/Strain_distance.csv", header = TRUE)

# Order strains by maximum pairwise SNPs within each Phylogroup
strain_SNPs$Strain <- factor(
  strain_SNPs$Strain,
  levels = strain_SNPs %>%
    arrange(Phylogroup, desc(Max_pairwise_SNPs_in_strain), Strain) %>%
    pull(Strain) %>%
    unique()
)

# Subset cross-district strains
cross_data <- subset(strain_SNPs, Cross_district_strain == "Yes")

# Dummy data for phylogroup legend
phylo_legend <- data.frame(
  Phylogroup = unique(strain_SNPs$Phylogroup)
)

# Define the number of isolates in each strain
isolate_counts <- data.frame(
  Strain = c("i) ST206", "ii) ST10", "vi) ST10", "xii) ST131", "vii) ST3580",
             "xiv) ST38", "xiii) ST131", "viii) ST1015", "iv) ST44", "xi) ST1015",
             "xv) ST38", "iii) ST8025", "x) ST2852", "ix) ST58", "v) ST13823"),
  Isolates_in_strain = c(5, 6, 3, 5, 4, 6, 3, 4, 4, 3, 15, 3, 4, 7, 3)
)

# Define the number of households each strain was found in
household_counts <- data.frame(
  Strain = c("i) ST206", "ii) ST10", "vi) ST10", "xii) ST131", "vii) ST3580",
             "xiv) ST38", "xiii) ST131", "viii) ST1015", "iv) ST44", "xi) ST1015",
             "xv) ST38", "iii) ST8025", "x) ST2852", "ix) ST58", "v) ST13823"),
  Households = c(5, 4, 3, 5, 3, 6, 3, 4, 4, 3, 13, 3, 3, 7, 3)
)

# Define color for multi-district annotation
arrowe_color <- "#E57373"

# Ensure same factor order
isolate_counts$Strain <- factor(isolate_counts$Strain, levels = levels(strain_SNPs$Strain))

# Plot
Strain_SNP_distance_boxplot <- ggplot(strain_SNPs, aes(x = Strain, y = SNP_distance, fill = Phylogroup)) +
  geom_boxplot(width = 0.6, linewidth = 0.3, outlier.size = 0.6, show.legend = FALSE) +
  ylim(0, 49) +  # extended y-limit to make room for circles
  geom_point(data = cross_data, aes(x = Strain, y = 42),
             shape = 25, fill = arrowe_color, color = arrowe_color, size = 3, show.legend = FALSE) +
  geom_point(data = household_counts, aes(x = Strain, y = 46, size = Households),
             shape = 21, fill = "steelblue", color = "black", show.legend = TRUE) +
  scale_size_continuous(
    name = "No. households",
    range = c(2, 8),
    breaks = c(3, 13)
    ) +
  geom_point(aes(x = NA, y = NA, shape = "Yes"),
             fill = arrowe_color, color = arrowe_color, size = 3) +
  scale_shape_manual(name = "Cross-district strain", values = c("Yes" = 25)) +
  geom_point(data = phylo_legend, aes(x = NA, y = NA, fill = Phylogroup),
             shape = 22, size = 5, color = "black", inherit.aes = FALSE) +
  scale_fill_brewer(palette = "Set3", name = "Phylogroup") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1)) +
  labs(x = "Strain", y = "Genomic distance (no. chromosomal SNPs)")

# Save the plot
ggsave("Figures/Strain_SNP_distance_boxplot.png", Strain_SNP_distance_boxplot, height = 4, width = 10, dpi = 600)
## Warning in geom_point(aes(x = NA, y = NA, shape = "Yes"), fill = arrowe_color, : All aesthetics have length 1, but the data has 215 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
##   a single row.
## Warning: Removed 215 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).
# Print the plot
print(Strain_SNP_distance_boxplot)
## Warning in geom_point(aes(x = NA, y = NA, shape = "Yes"), fill = arrowe_color, : All aesthetics have length 1, but the data has 215 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
##   a single row.
## Warning: Removed 215 rows containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

Strain networks

# Build isolate -> Strain mapping from pairwise table
strain_map <- strain_SNPs %>%
  select(Isolate = Isolate1, Strain) %>%
  bind_rows(
    strain_SNPs %>% select(Isolate = Isolate2, Strain)
  ) %>%
  distinct()

# Keep only the required columns for edges
edges <- strain_SNPs %>%
  select(Isolate1, Isolate2, SNP_distance)

# Categorise SNP distances for edge construction
edges <- edges %>%
  mutate(
    category = case_when(
      SNP_distance <= 10 ~ "≤10",
      SNP_distance <= 25 ~ "11–25",
      SNP_distance > 25  ~ "26-50"
    ),
    category = factor(category,
                      levels = c("≤10", "11–25", "26-50"),
                      ordered = TRUE)
  )

# Prepare node metadata and attach Strain
all_isolates <- unique(c(strain_SNPs$Isolate1, strain_SNPs$Isolate2))

nodes <- isolate_data_human %>%
  filter(Isolate %in% all_isolates) %>%
  select(Isolate, District, Year, Participant.ID) %>%
  left_join(strain_map, by = "Isolate")

# Create igraph object
g <- graph_from_data_frame(d = edges, vertices = nodes, directed = FALSE)

# Set seed for reproducible plotting and compute layout coordinate
set.seed(42)
lay <- create_layout(g, layout = "fr")

# Prepare dataframe for label positions just outside each Strain cluster
lay_df <- as.data.frame(lay) %>% filter(!is.na(Strain))

# Compute centroid per strain
centroids <- lay_df %>%
  group_by(Strain) %>%
  summarise(cx = mean(x), cy = mean(y), .groups = "drop")

# Compute cluster radius (max distance from centroid) per strain
spread_df <- lay_df %>%
  left_join(centroids, by = "Strain") %>%
  group_by(Strain, cx, cy) %>%
  summarise(radius = max(sqrt((x - cx)^2 + (y - cy)^2)), .groups = "drop")

# Join and compute label coordinates (1.8 * radius above cluster)
strain_labels <- spread_df %>%
  mutate(
    label_x = cx - radius * 0,
    label_y = cy + radius * 1.8
  )

# Final plot with labels placed above clusters
network_plot <- ggraph(lay) +
  geom_edge_link(aes(colour = category), width = 0.7, alpha = 0.7) +
  geom_node_point(aes(fill = District, colour = Year),
                  shape = 21, size = 2.5, stroke = 1.0) +
  geom_text(
    data = strain_labels,
    aes(x = label_x, y = label_y, label = Strain),
    inherit.aes = FALSE,
    size = 3
  ) +
  scale_edge_color_manual(
    values = c("≤10" = "red",
               "11–25" = "orange",
               "26-50" = "yellow2"),
    breaks = c("≤10", "11–25", "26-50")
  ) +
  scale_fill_manual(
    values = c("Mangochi" = "dodgerblue3", "Nsanje" = "lightblue")
  ) +
  scale_colour_manual(
    values = c("2023" = "black", "2024" = "pink3")
  ) +
  theme_void() +
  labs(edge_color = "No. chromosomal SNPs", fill = "District")

# Save the plot
ggsave("Figures/Strain_network_plot.png", network_plot, height = 4, width = 5.5, dpi = 600)

# Print the plot
print(network_plot)

Genomic vs geographic distance within villages

# Import within-strain genomic and geographic distance data (for comparisons within same village at the same sampling point)
strain_distance <- read.csv("Data/Strain_distance_within_village.csv", header = TRUE)

# Order ST levels by Phylogroup
strain_distance$ST <- factor(
  strain_distance$ST,
  levels = strain_distance %>%
    dplyr::arrange(Phylogroup, ST) %>%
    dplyr::pull(ST) %>%
    unique()
)

# Remove connections between isolates from the same household (n=6)
strain_distance <- strain_distance %>%
  dplyr::filter(Household1 != Household2)

# Print summary of SNP distances
summary(strain_distance$SNP_distance)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   2.000   3.895   3.000  38.000
# Add geographic distance groupings
strain_distance <- strain_distance %>%
  mutate(dist_group = case_when(
    distance_m < 200 ~ "<200",
    distance_m >= 200 & distance_m <= 400 ~ "200 - 400",
    distance_m > 400 ~ ">400"
  ))
strain_distance <- strain_distance %>%
  mutate(dist_group = factor(dist_group, levels = c("<200", "200 - 400", ">400")))

# Plot geographic distance vs SNP distance (jittering applied to x axis)
SNP_distance_scatter <- ggplot(strain_distance, aes(x = distance_m, y = SNP_distance, fill = Phylogroup)) +
  geom_jitter(height = 0, width = 5, seed = 125, alpha = 0.65, size = 1.8, shape = 21, colour = "black", stroke = 0.15) +
  scale_fill_brewer(palette = "Set3") +
  scale_x_continuous(name = "Distance between households (metres)") +
  scale_y_continuous(name = "Genomic distance (no. chromosomal SNPs)", limits = c(0, 50)) +
  theme_grey()
## Warning in geom_jitter(height = 0, width = 5, seed = 125, alpha = 0.65, :
## Ignoring unknown parameters: `seed`
# Save the plot
ggsave("Figures/SNP_distance_scatter.png", SNP_distance_scatter, height = 4, width = 5, dpi = 600)

# Print the plot
print(SNP_distance_scatter)

# Check for statistical difference in SNP distance between geographic distance groups
kruskal.test(SNP_distance ~ dist_group, data = strain_distance)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  SNP_distance by dist_group
## Kruskal-Wallis chi-squared = 13.117, df = 2, p-value = 0.001418
# Perform post-hoc Dunn's Test with Bonferroni correction for p-values
dunnTest(SNP_distance ~ dist_group, data = strain_distance, method = "bonferroni")
## Dunn (1964) Kruskal-Wallis multiple comparison
##   p-values adjusted with the Bonferroni method.
##         Comparison          Z      P.unadj       P.adj
## 1      <200 - >400 -3.6082383 0.0003082833 0.000924850
## 2 <200 - 200 - 400 -0.8330581 0.4048119620 1.000000000
## 3 >400 - 200 - 400  3.0214407 0.0025157493 0.007547248
# Manually create a table from Dunn's test output
pvals <- data.frame(
  group1 = c("<200", "<200", "200 - 400"),
  group2 = c(">400", "200 - 400", ">400"),
  p.adj  = c(0.000407142, 0.677055724, 0.009048447),
  y.position = c(48, 42, 45)
)
pvals$signif <- cut(
  pvals$p.adj,
  breaks = c(-Inf, 0.001, 0.01, 0.05, Inf),
  labels = c("***", "**", "*", "ns")
)

# Plot a violin plot with an overlayed boxplot
SNP_distance_violin <- ggplot(strain_distance, aes(x = dist_group, y = SNP_distance, fill = dist_group)) +
  geom_violin(alpha = 0.6, color = "black", linewidth = 0.2) +
  ylim(0, 50) +
  scale_fill_brewer(palette = "Set4") +
  labs(x = "Distance between households (metres)", y = "Genomic distance (no. chromosomal SNPs)") +
  theme_minimal() +
  theme(legend.position = "none") +
  stat_pvalue_manual(
    pvals,
    label = "signif",      # shows *, **, ***
    tip.length = 0.02
  )
## Warning: Unknown palette: "Set4"
# Save the plot
ggsave("Figures/SNP_distance_violin.png", SNP_distance_violin, height = 4, width = 3.5, dpi = 600)

# Print the plot
print(SNP_distance_violin)

Interhousehold strain maps

# Prepare the data (make household variable for isolates from strain strains found in 3+ households)
nodes$household <- sub("\\.[0-9]+$", "", nodes$Participant.ID)

Samama (Mangochi District)

# Prepare the data
samama_strains <- nodes %>%
  filter(District == "Mangochi")

samama_strains <- samama_strains %>%
  left_join(
    households %>% select(household, GPS_S, GPS_E),
    by = "household"
  )

# Convert Samama household coordinates to sf object and project
samama_strains_sf <- samama_strains %>%
  st_as_sf(coords = c("GPS_E", "GPS_S"), crs = 4326)

samama_strains_sf_proj <- st_transform(samama_strains_sf, 32736)

# Set custom colors for year
year_colors <- c(
  "2023" = "blue",
  "2024" = "red",
  "Both years" = "green3"
)

# Define the clusters to include
clusters_to_plot <- c("i) ST206", "ii) ST10", "iii) ST8025", "iv) ST44", "v) ST13823",
                      "vi) ST10", "vii) ST3580", "viii) ST1015", "ix) ST58", "x) ST2852",
                      "xii) ST131", "xiii) ST131", "xiv) ST38", "xv) ST38")

# Create individual plots
strain_cluster_plots <- map(clusters_to_plot, function(clust) {
  cluster_data <- samama_strains_sf_proj %>%
    filter(Strain == clust)

  ggplot() +
    geom_sf(data = rectangle_samama_proj, fill = "cornsilk", color = "black") +
    geom_sf(data = samama_sf_proj, color = "black", size = 1.5) +
    geom_sf(data = cluster_data, aes(color = Year), size = 4.0,
            show.legend = clust == "xii) ST131") +  # Show legend only for this cluster
    scale_color_manual(
      values = year_colors,
      breaks = names(year_colors),
      name = "Household colonisation year"
    ) +
    labs(title = paste(clust)) +
    theme_void() +
    theme(
      plot.title = element_text(hjust = 0.5, size = 18),
      legend.position = "bottom",
      legend.text = element_text(size = 22),
      legend.title = element_text(size = 22)
    ) +
    guides(color = guide_legend(override.aes = list(size = 4)))
})

# Combine plots into one panel with a single shared legend
samama_strain_panel_plot <- wrap_plots(strain_cluster_plots, ncol = 5, nrow = 3) +
  plot_layout(guides = "collect") &
  theme(legend.position = "bottom")

# Save the panel
ggsave("Figures/Samama_strain_cluster_panel_map.png", plot = samama_strain_panel_plot, width = 15, height = 12, dpi = 600)

print(samama_strain_panel_plot)

Mthawira (Nsanje District)

# Prepare the data
mthawira_strains <- nodes %>%
  filter(District == "Nsanje")

mthawira_strains <- mthawira_strains %>%
  left_join(
    households %>% select(household, GPS_S, GPS_E),
    by = "household"
  )

# Convert mthawira household coordinates to sf object and project
mthawira_strains_sf <- mthawira_strains %>%
  st_as_sf(coords = c("GPS_E", "GPS_S"), crs = 4326)

mthawira_strains_sf_proj <- st_transform(mthawira_strains_sf, 32736)

# Set custom colors for year
year_colors <- c(
  "2023" = "blue",
  "2024" = "red",
  "Both years" = "green3"
)

# Define the clusters to include
clusters_to_plot <- c("i) ST206", "ii) ST10", "viii) ST1015", "xi) ST1015")

# Create individual plots
strain_cluster_plots <- map(clusters_to_plot, function(clust) {
  cluster_data <- mthawira_strains_sf_proj %>%
    filter(Strain == clust)

  ggplot() +
    geom_sf(data = rectangle_mthawira_proj, fill = "cornsilk", color = "black") +
    geom_sf(data = mthawira_sf_proj, color = "black", size = 1.5) +
    geom_sf(data = cluster_data, aes(color = Year), size = 4.0,
            show.legend = FALSE) +  # Show legend only for this cluster) +
    scale_color_manual(
      values = year_colors,
      breaks = names(year_colors),
      name = "Household colonisation year"
    ) +
    labs(title = paste(clust)) +
    theme_void() +
    theme(
      plot.title = element_text(hjust = 0.5, size = 18),
      legend.position = "bottom",
      legend.text = element_text(size = 22),
      legend.title = element_text(size = 22)
    ) +
    guides(color = guide_legend(override.aes = list(size = 4)))
})

# Combine plots into one panel with a single shared legend
mthawira_strain_panel_plot <- wrap_plots(strain_cluster_plots, ncol = 5, nrow = 1) +
  plot_layout(guides = "collect") &
  theme(legend.position = "bottom")

# Save the panel
ggsave("Figures/Mthawira_strain_cluster_panel_map.png", plot = mthawira_strain_panel_plot, width = 15, height = 4, dpi = 600)

print(mthawira_strain_panel_plot)

ST-specific networks and phylogeny in Malawian context

ST131

# Import ST131 isolate metadata, including isolates from previous studies
ST131_metadata <- read.csv("data/ST131_genomes.csv", header = TRUE, row.names = 1)

# Define the core genome alignment size (columns containing only As, Ts, Cs and Gs)
ST131_cg_size <- 3954219
ST131_recomb_masked_cg_size <- 2834919

Recombination masked core genome SNPs

# Load ST131 SNP distance matrix masking recombination sites
ST131_snp_matrix_recomb_masked <- read.csv("data/ST131_malawi_SNP_dists_recombination_masked.csv", header = TRUE, row.names = 1)

# Convert to distance object and cluster
ST131_snp_dist_recomb_masked <- as.dist(ST131_snp_matrix_recomb_masked)
ST131_hc_recomb_masked <- hclust(ST131_snp_dist_recomb_masked, method = "average")

# Identify SNP thresholds representing strict, moderate and loose transmission networks adjusting for recombination-masking
ST131_strict <- ST131_recomb_masked_cg_size*0.000002
ST131_moderate <- ST131_recomb_masked_cg_size*0.000005
ST131_loose <- ST131_recomb_masked_cg_size*0.00002
print(c(ST131_strict, ST131_moderate, ST131_loose))
## [1]  5.669838 14.174595 56.698380
# Plot a dendrogram of SNP distances that masks recombination

# Open SVG device
svg("Figures/ST131_dendrogram.svg", width = 8, height = 4.5)

# Convert hclust to dendrogram
ST131_dend_recomb_masked <- as.dendrogram(ST131_hc_recomb_masked)

# Generate the dendrogram
plot(ST131_dend_recomb_masked,
     main = "ST131",
     xlab = "",
     ylab = "SNP distance",
     cex = 1,        # leaf labels
     cex.main = 1,   # title
     cex.lab  = 0.8,   # axis labels
     cex.axis = 0.8,   # tick labels
     ylim = c(0, 400))

# Close device
dev.off()
## png 
##   2
# Print the dendrogram
plot(ST131_dend_recomb_masked,
     main = "ST131",
     xlab = "",
     ylab = "SNP distance",
     cex = 1,        # leaf labels
     cex.main = 1,   # title
     cex.lab  = 0.8,   # axis labels
     cex.axis = 0.8,   # tick labels
     ylim = c(0, 400))

# Plot an annotated SNP distance heatmap using the above clustering

# Convert SNP matrix to a matrix object for plotting
mat <- as.matrix(ST131_snp_matrix_recomb_masked)

# Typography for annotations and legends
# Legend / annotation TITLE text (bold)
title_gp <- gpar(
  fontsize = 10,
  fontface = "bold",
  fontfamily = "sans"
)

# Legend / annotation LABEL text (normal)
label_gp <- gpar(
  fontsize = 9,
  fontface = "plain",
  fontfamily = "sans"
)

# Prepare the metadata
annotation <- as.data.frame(ST131_metadata)
annotation <- annotation[, c("Donor", "Location", "Study", "Year"), drop = FALSE]
annotation$Year <- as.numeric(annotation$Year)

# Match metadata and matrix orders
annotation <- annotation[colnames(mat), , drop = FALSE]

# Define heatmap colour mappings
snp_color <- colorRamp2(
  c(0, 400),
  c("white", "red")
)

# Generate the range for continuous year annotation
year_color <- colorRamp2(
  range(annotation$Year, na.rm = TRUE),
  c("lightblue", "darkblue")
)

ha_col <- HeatmapAnnotation(
  df = annotation,
  col = list(
    Location = c(
      "Blantyre (urban)"          = "springgreen",
      "Mangochi District (rural)" = "springgreen3",
      "Nsanje District (rural)"   = "green4"
    ),
    Donor = c(
      "Hospital inpatient"        = "tan4",
      "Recent hospital discharge" = "tan3",
      "Community"                 = "tan1"
    ),
    Study = c(
      "This study"   = "gray80",
      "Lewis et al." = "gray50",
      "Musicha et al." = "gray20"
    ),
    Year = year_color
  ),
  annotation_name_gp   = title_gp,
  annotation_legend_param = list(
    Location = list(title_gp = title_gp, labels_gp = label_gp),
    Donor    = list(title_gp = title_gp, labels_gp = label_gp),
    Study    = list(title_gp = title_gp, labels_gp = label_gp),
    Year     = list(title_gp = title_gp, labels_gp = label_gp)
  ),
  gp = gpar(col = "grey30", lwd = 0.3)
)

# Generate the annotated heatmap
ht <- Heatmap(
  mat,
  name = "SNP distance",
  col = snp_color,
  rect_gp = gpar(col = "grey30", lwd = 0.3),
  cluster_rows = ST131_hc_recomb_masked,
  cluster_columns = ST131_hc_recomb_masked,
  top_annotation = ha_col,
  show_row_dend = FALSE,
  show_column_dend = FALSE,
  show_row_names    = FALSE,
  show_column_names = FALSE,
  row_names_gp = gpar(fontsize = 4.5),
  column_names_gp = gpar(fontsize = 4.5),
  heatmap_legend_param = list(
    title = "SNPs",
    title_gp  = title_gp,
    labels_gp = label_gp,
    at = c(0, 100, 200, 300, 400)
  )
)

# Save the plot
png(
  filename = "Figures/ST131_recombination_masked_SNP_heatmap.png",
  width = 8,
  height = 6,
  units = "in",
  res = 600
)
draw(ht, merge_legend = TRUE)
dev.off()
## png 
##   2
# Print the plot
draw(ht, merge_legend = TRUE)

Recombination masked networks

# Convert matrix to long format
long_snp <- ST131_snp_matrix_recomb_masked %>%
  rownames_to_column(var = "Isolate1") %>%
  pivot_longer(-Isolate1, names_to = "Isolate2", values_to = "SNP_distance")

# Keep only the required columns for edges
edges <- long_snp %>%
  select(Isolate1, Isolate2, SNP_distance)

# Categorise SNP distances for edge construction
edges <- edges %>%
  mutate(
    category = case_when(
      SNP_distance <= ST131_strict ~ "<0.0002% (10 SNPs per 5 Mb)",
      SNP_distance <= ST131_moderate ~ "<0.0005% (25 SNPs per 5 Mb)",
      SNP_distance <= ST131_loose  ~ "<0.002% (100 SNPs per 5 Mb)"
    ),
    category = factor(category,
                      levels = c("<0.0002% (10 SNPs per 5 Mb)",
                                 "<0.0005% (25 SNPs per 5 Mb)",
                                 "<0.002% (100 SNPs per 5 Mb)"),
                      ordered = TRUE)
  ) %>%
  filter(!is.na(category))

# Add weighting to distribute nodes
edges <- edges %>%
  mutate(weight = 1 / (SNP_distance + 1))

# Get node data
nodes <- ST131_metadata %>%
  mutate(
    # Combine Study and isolation year with space + brackets
    `Study (isolation year)` = paste0(Study, " (", Year, ")")
  ) %>%
  rownames_to_column(var = "Isolate")

# Create igraph object
g <- graph_from_data_frame(d = edges, vertices = nodes, directed = FALSE)

# Set seed for reproducible plotting and compute layout coordinate
set.seed(42)
lay <- create_layout(g, layout = "fr")

# Plot networks
network_plot <- ggraph(lay) +
  geom_edge_link(aes(colour = category), width = 0.7, alpha = 0.7) +
  geom_node_point(aes(fill = `Study (isolation year)`, colour = Location),
                  shape = 21, size = 2.5, stroke = 1.0) +
  scale_edge_color_manual(
    values = c("<0.0002% (10 SNPs per 5 Mb)" = "red",
               "<0.0005% (25 SNPs per 5 Mb)" = "orange",
               "<0.002% (100 SNPs per 5 Mb)" = "yellow2"),
    breaks = c("<0.0002% (10 SNPs per 5 Mb)",
               "<0.0005% (25 SNPs per 5 Mb)",
               "<0.002% (100 SNPs per 5 Mb)"
               )
  ) +
  scale_colour_manual(
    values = c("Blantyre (urban)"          = "red",
               "Mangochi District (rural)" = "springgreen",
               "Nsanje District (rural)"   = "green4"
               )
  ) +
  scale_fill_manual(
    values = c('Lewis et al. (2017)' = "grey95",
               'Lewis et al. (2018)' = "grey30",
               'Musicha et al. (2019)' = "pink",
               'Musicha et al. (2020)' = "orange2",
               'This study (2023)' = "skyblue1",
               'This study (2024)' = "blue1"
    )
  ) +
  theme_void() +
  labs(edge_color = "SNPs as % of core genome alignment", color = "Location", fill = "Study (isolation year)")

# Save the plot
ggsave("Figures/ST131_network_plot.png", network_plot, height = 4, width = 7, dpi = 600)

# Print the plot
print(network_plot)

Networks without masking recombination

# Load ST38 SNP distance matrix including recombination sites
ST131_snp_matrix <- read.csv("data/ST131_malawi_SNP_dists.csv", header = TRUE, row.names = 1)

# Identify SNP thresholds representing strict, moderate and loose transmission networks including recombination sites
ST131_strict_with_recomb <- ST131_cg_size*0.000002
ST131_moderate_with_recomb <- ST131_cg_size*0.000005
ST131_loose_with_recomb <- ST131_cg_size*0.00002
print(c(ST131_strict_with_recomb, ST131_moderate_with_recomb, ST131_loose_with_recomb))
## [1]  7.908438 19.771095 79.084380
# Convert matrix to long format
long_snp <- ST131_snp_matrix %>%
  rownames_to_column(var = "Isolate1") %>%
  pivot_longer(-Isolate1, names_to = "Isolate2", values_to = "SNP_distance")

# Keep only the required columns for edges
edges <- long_snp %>%
  select(Isolate1, Isolate2, SNP_distance)

# Categorise SNP distances for edge construction
edges <- edges %>%
  mutate(
    category = case_when(
      SNP_distance <= ST131_strict_with_recomb ~ "<0.0002% (10 SNPs per 5 Mb)",
      SNP_distance <= ST131_moderate_with_recomb ~ "<0.0005% (25 SNPs per 5 Mb)",
      SNP_distance <= ST131_loose_with_recomb  ~ "<0.002% (100 SNPs per 5 Mb)"
    ),
    category = factor(category,
                      levels = c("<0.0002% (10 SNPs per 5 Mb)",
                                 "<0.0005% (25 SNPs per 5 Mb)",
                                 "<0.002% (100 SNPs per 5 Mb)"),
                      ordered = TRUE)
  ) %>%
  filter(!is.na(category))

# Add weighting to distribute nodes
edges <- edges %>%
  mutate(weight = 1 / (SNP_distance + 1))

# Create igraph object
g <- graph_from_data_frame(d = edges, vertices = nodes, directed = FALSE)

# Set seed for reproducible plotting and compute layout coordinate
set.seed(42)
lay <- create_layout(g, layout = "fr")

# Plot networks
network_plot <- ggraph(lay) +
  geom_edge_link(aes(colour = category), width = 0.7, alpha = 0.7) +
  geom_node_point(aes(fill = `Study (isolation year)`, colour = Location),
                  shape = 21, size = 2.5, stroke = 1.0) +
  scale_edge_color_manual(
    values = c("<0.0002% (10 SNPs per 5 Mb)" = "red",
               "<0.0005% (25 SNPs per 5 Mb)" = "orange",
               "<0.002% (100 SNPs per 5 Mb)" = "yellow2"),
    breaks = c("<0.0002% (10 SNPs per 5 Mb)",
               "<0.0005% (25 SNPs per 5 Mb)",
               "<0.002% (100 SNPs per 5 Mb)"
               )
  ) +
  scale_colour_manual(
    values = c("Blantyre (urban)"          = "red",
               "Mangochi District (rural)" = "springgreen",
               "Nsanje District (rural)"   = "green4"
               )
  ) +
  scale_fill_manual(
    values = c('Lewis et al. (2017)' = "grey95",
               'Lewis et al. (2018)' = "grey30",
               'Musicha et al. (2019)' = "pink",
               'Musicha et al. (2020)' = "orange2",
               'This study (2023)' = "skyblue1",
               'This study (2024)' = "blue1"
    )
  ) +
  theme_void() +
  labs(edge_color = "SNPs as % of core genome alignment", color = "Location", fill = "Study (isolation year)")

# Save the plot
ggsave("Figures/ST131_network_plot_inc_recomb_sites.png", network_plot, height = 4, width = 7, dpi = 600)

# Print the plot
print(network_plot)

Tree

# Read in the treefile
ST131_tree <- read.tree("Data/ST131.aln.treefile")

# Root the tree at midpoint
ST131_tree <- midpoint(ST131_tree)

# Extract isolate metadata for tree
tree_metadata <- nodes[, c("Isolate", "Location", "Study (isolation year)")]

# Reorder metadata to match tree tip order
tree_metadata <- tree_metadata[match(ST131_tree$tip.label, tree_metadata$Isolate), ]
rownames(tree_metadata) <- tree_metadata$Isolate

# Colour palette 
study_fill_vals <- c(
  'Lewis et al. (2017)'   = "grey95",
  'Lewis et al. (2018)'   = "grey30",
  'Musicha et al. (2019)' = "pink",
  'Musicha et al. (2020)' = "orange2",
  'This study (2023)'     = "skyblue1",
  'This study (2024)'     = "blue1"
)

# Rename Isolate -> label
tree_metadata_for_join <- tree_metadata %>%
  rename(label = Isolate)

# Plot tree
p <- ggtree(ST131_tree) %<+% tree_metadata_for_join +
  geom_tippoint(
    aes(
      fill  = `Study (isolation year)`,
      shape = Location
    ),
    colour = "black",
    stroke = 0.3,
    size   = 2.0
  ) +
  scale_fill_manual(values = study_fill_vals, drop = FALSE) +
  scale_shape_manual(
    values = c(
      "Blantyre (urban)"          = 21,
      "Mangochi District (rural)" = 22,
      "Nsanje District (rural)"   = 24
    )
  ) +
  theme_tree2() +
  theme(legend.position = "right") +
  labs(
    fill  = "Study (isolation year)",
    shape = "Location"
  ) +
  geom_treescale(
    x = 0.00005, y = 115, width = 0.001,
    fontsize = 3, linesize = 0.5
  )

# Override shape in key so colours are plotted properly
p <- p +
  guides(
    fill = guide_legend(
      override.aes = list(shape = 21, colour = "black")
    )
  )

# Clean x-axis
p <- p +
  theme(
    axis.line.x  = element_blank(),
    axis.text.x  = element_blank(),
    axis.ticks.x = element_blank(),
    axis.title.x = element_blank()
  )

# Add some border space to prevent plot clipping
p <- p + scale_y_continuous(expand = expansion(mult = c(0.03, 0.03)))
## Scale for y is already present.
## Adding another scale for y, which will replace the existing scale.
# Save the plot
ggsave("Figures/ST131_tree.png", p, width = 8, height = 8, dpi = 600)

# Print the plot
print(p)

ST38

# Import ST38 isolate metadata, including isolates from previous studies
ST38_metadata <- read.csv("data/ST38_genomes.csv", header = TRUE, row.names = 1)

# Define the core genome alignment size (columns containing only As, Ts, Cs and Gs)
ST38_cg_size <- 4279355
ST38_recomb_masked_cg_size <- 3472800

Recombination masked core genome SNPs

# Load ST38 SNP distance matrix masking recombination sites
ST38_snp_matrix_recomb_masked <- read.csv("data/ST38_malawi_SNP_dists_recombination_masked.csv", header = TRUE, row.names = 1)

# Convert to distance object and cluster
ST38_snp_dist_recomb_masked <- as.dist(ST38_snp_matrix_recomb_masked)
ST38_hc_recomb_masked <- hclust(ST38_snp_dist_recomb_masked, method = "average")

# Identify SNP thresholds representing strict, moderate and loose transmission networks adjusting for recombination-masking
ST38_strict <- ST38_recomb_masked_cg_size*0.000002
ST38_moderate <- ST38_recomb_masked_cg_size*0.000005
ST38_loose <- ST38_recomb_masked_cg_size*0.00002
print(c(ST38_strict, ST38_moderate, ST38_loose))
## [1]  6.9456 17.3640 69.4560
# Plot a dendrogram of SNP distances that masks recombination

# Open SVG device
svg("Figures/ST38_dendrogram.svg", width = 8, height = 4.5)

# Convert hclust to dendrogram
ST38_dend_recomb_masked <- as.dendrogram(ST38_hc_recomb_masked)

# Generate the dendrogram
plot(ST38_dend_recomb_masked,
     main = "ST38",
     xlab = "",
     ylab = "SNP distance",
     cex = 1,        # leaf labels
     cex.main = 1,   # title
     cex.lab  = 0.8,   # axis labels
     cex.axis = 0.8,   # tick labels
     ylim = c(0, 400))

# Close device
dev.off()
## png 
##   2
# Plot the dendrogram
plot(ST38_dend_recomb_masked,
     main = "ST38",
     xlab = "",
     ylab = "SNP distance",
     cex = 1,        # leaf labels
     cex.main = 1,   # title
     cex.lab  = 0.8,   # axis labels
     cex.axis = 0.8,   # tick labels
     ylim = c(0, 400))

# Plot an annotated SNP distance heatmap using the above clustering

# Convert SNP matrix to a matrix object for plotting
mat <- as.matrix(ST38_snp_matrix_recomb_masked)

# Typography for annotations and legends
# Legend / annotation TITLE text (bold)
title_gp <- gpar(
  fontsize = 10,
  fontface = "bold",
  fontfamily = "sans"
)

# Legend / annotation LABEL text (normal)
label_gp <- gpar(
  fontsize = 9,
  fontface = "plain",
  fontfamily = "sans"
)

# Prepare the metadata
annotation <- as.data.frame(ST38_metadata)
annotation <- annotation[, c("Donor", "Location", "Study", "Year"), drop = FALSE]
annotation$Year <- as.numeric(annotation$Year)

# Match metadata and matrix orders
annotation <- annotation[colnames(mat), , drop = FALSE]

# Define heatmap colour mappings
snp_color <- colorRamp2(
  c(0, 400),
  c("white", "red")
)

# Generate the range for continuous year annotation
year_color <- colorRamp2(
  range(annotation$Year, na.rm = TRUE),
  c("lightblue", "darkblue")
)

ha_col <- HeatmapAnnotation(
  df = annotation,
  col = list(
    Location = c(
      "Blantyre (urban)"          = "springgreen",
      "Mangochi District (rural)" = "springgreen3",
      "Nsanje District (rural)"   = "green4"
    ),
    Donor = c(
      "Hospital inpatient"        = "tan4",
      "Recent hospital discharge" = "tan3",
      "Community"                 = "tan1"
    ),
    Study = c(
      "This study"   = "gray80",
      "Lewis et al." = "gray50",
      "Musicha et al." = "gray20"
    ),
    Year = year_color
  ),
  annotation_name_gp   = title_gp,
  annotation_legend_param = list(
    Location = list(title_gp = title_gp, labels_gp = label_gp),
    Donor    = list(title_gp = title_gp, labels_gp = label_gp),
    Study    = list(title_gp = title_gp, labels_gp = label_gp),
    Year     = list(title_gp = title_gp, labels_gp = label_gp)
  ),
  gp = gpar(col = "grey30", lwd = 0.3)
)


# Generate the annotated heatmap
ht <- Heatmap(
  mat,
  name = "SNP distance",
  col = snp_color,
  rect_gp = gpar(col = "grey30", lwd = 0.3),
  cluster_rows = ST38_hc_recomb_masked,
  cluster_columns = ST38_hc_recomb_masked,
  top_annotation = ha_col,
  show_row_dend = FALSE,
  show_column_dend = FALSE,
  show_row_names    = FALSE,
  show_column_names = FALSE,
  row_names_gp = gpar(fontsize = 4.5),
  column_names_gp = gpar(fontsize = 4.5),
  heatmap_legend_param = list(
    title = "SNPs",
    title_gp  = title_gp,
    labels_gp = label_gp,
    at = c(0, 100, 200, 300, 400)
  )
)

# Save the plot
png(
  filename = "Figures/ST38_recombination_masked_SNP_heatmap.png",
  width = 8,
  height = 6,
  units = "in",
  res = 600
)
draw(ht, merge_legend = TRUE)
dev.off()
## png 
##   2
# Print the plot
draw(ht, merge_legend = TRUE)

Recombination masked networks

# Convert matrix to long format
long_snp <- ST38_snp_matrix_recomb_masked %>%
  rownames_to_column(var = "Isolate1") %>%
  pivot_longer(-Isolate1, names_to = "Isolate2", values_to = "SNP_distance")

# Keep only the required columns for edges
edges <- long_snp %>%
  select(Isolate1, Isolate2, SNP_distance)

# Categorise SNP distances for edge construction
edges <- edges %>%
  mutate(
    category = case_when(
      SNP_distance <= ST38_strict ~ "<0.0002% (10 SNPs per 5 Mb)",
      SNP_distance <= ST38_moderate ~ "<0.0005% (25 SNPs per 5 Mb)",
      SNP_distance <= ST38_loose  ~ "<0.002% (100 SNPs per 5 Mb)"
    ),
    category = factor(category,
                      levels = c("<0.0002% (10 SNPs per 5 Mb)",
                                 "<0.0005% (25 SNPs per 5 Mb)",
                                 "<0.002% (100 SNPs per 5 Mb)"),
                      ordered = TRUE)
  ) %>%
  filter(!is.na(category))

# Add weighting to distribute nodes
edges <- edges %>%
  mutate(weight = 1 / (SNP_distance + 1))

# Get node data
nodes <- ST38_metadata %>%
  mutate(
    # Combine Study and isolation year with space + brackets
    `Study (isolation year)` = paste0(Study, " (", Year, ")")
  ) %>%
  rownames_to_column(var = "Isolate")

# Create igraph object
g <- graph_from_data_frame(d = edges, vertices = nodes, directed = FALSE)

# Set seed for reproducible plotting and compute layout coordinate
set.seed(42)
lay <- create_layout(g, layout = "fr")

# Plot networks
network_plot <- ggraph(lay) +
  geom_edge_link(aes(colour = category), width = 0.7, alpha = 0.7) +
  geom_node_point(aes(fill = `Study (isolation year)`, colour = Location),
                  shape = 21, size = 2.5, stroke = 1.0) +
  scale_edge_color_manual(
    values = c("<0.0002% (10 SNPs per 5 Mb)" = "red",
               "<0.0005% (25 SNPs per 5 Mb)" = "orange",
               "<0.002% (100 SNPs per 5 Mb)" = "yellow2"),
    breaks = c("<0.0002% (10 SNPs per 5 Mb)",
               "<0.0005% (25 SNPs per 5 Mb)",
               "<0.002% (100 SNPs per 5 Mb)"
               )
  ) +
  scale_colour_manual(
    values = c("Blantyre (urban)"          = "red",
               "Mangochi District (rural)" = "springgreen",
               "Nsanje District (rural)"   = "green4"
               )
  ) +
  scale_fill_manual(
    values = c('Lewis et al. (2017)' = "grey95",
               'Lewis et al. (2018)' = "grey30",
               'Musicha et al. (2019)' = "pink",
               'Musicha et al. (2020)' = "orange2",
               'This study (2023)' = "skyblue1",
               'This study (2024)' = "blue1"
    )
  ) +
  theme_void() +
  labs(edge_color = "SNPs as % of core genome alignment", color = "Location", fill = "Study (isolation year)")

# Save the plot
ggsave("Figures/ST38_network_plot.png", network_plot, height = 4, width = 7, dpi = 600)

# Print the plot
print(network_plot)

Networks without masking recombination

# Load ST38 SNP distance matrix including recombination sites
ST38_snp_matrix <- read.csv("data/ST38_malawi_SNP_dists.csv", header = TRUE, row.names = 1)

# Identify SNP thresholds representing strict, moderate and loose transmission networks including recombination sites
ST38_strict_with_recomb <- ST38_cg_size*0.000002
ST38_moderate_with_recomb <- ST38_cg_size*0.000005
ST38_loose_with_recomb <- ST38_cg_size*0.00002
print(c(ST38_strict_with_recomb, ST38_moderate_with_recomb, ST38_loose_with_recomb))
## [1]  8.55871 21.39678 85.58710
# Convert matrix to long format
long_snp <- ST38_snp_matrix %>%
  rownames_to_column(var = "Isolate1") %>%
  pivot_longer(-Isolate1, names_to = "Isolate2", values_to = "SNP_distance")

# Keep only the required columns for edges
edges <- long_snp %>%
  select(Isolate1, Isolate2, SNP_distance)

# Categorise SNP distances for edge construction
edges <- edges %>%
  mutate(
    category = case_when(
      SNP_distance <= ST38_strict_with_recomb ~ "<0.0002% (10 SNPs per 5 Mb)",
      SNP_distance <= ST38_moderate_with_recomb ~ "<0.0005% (25 SNPs per 5 Mb)",
      SNP_distance <= ST38_loose_with_recomb  ~ "<0.002% (100 SNPs per 5 Mb)"
    ),
    category = factor(category,
                      levels = c("<0.0002% (10 SNPs per 5 Mb)",
                                 "<0.0005% (25 SNPs per 5 Mb)",
                                 "<0.002% (100 SNPs per 5 Mb)"),
                      ordered = TRUE)
  ) %>%
  filter(!is.na(category))

# Add weighting to distribute nodes
edges <- edges %>%
  mutate(weight = 1 / (SNP_distance + 1))

# Create igraph object
g <- graph_from_data_frame(d = edges, vertices = nodes, directed = FALSE)

# Set seed for reproducible plotting and compute layout coordinate
set.seed(42)
lay <- create_layout(g, layout = "fr")

# Plot networks
network_plot <- ggraph(lay) +
  geom_edge_link(aes(colour = category), width = 0.7, alpha = 0.7) +
  geom_node_point(aes(fill = `Study (isolation year)`, colour = Location),
                  shape = 21, size = 2.5, stroke = 1.0) +
  scale_edge_color_manual(
    values = c("<0.0002% (10 SNPs per 5 Mb)" = "red",
               "<0.0005% (25 SNPs per 5 Mb)" = "orange",
               "<0.002% (100 SNPs per 5 Mb)" = "yellow2"),
    breaks = c("<0.0002% (10 SNPs per 5 Mb)",
               "<0.0005% (25 SNPs per 5 Mb)",
               "<0.002% (100 SNPs per 5 Mb)"
               )
  ) +
  scale_colour_manual(
    values = c("Blantyre (urban)"          = "red",
               "Mangochi District (rural)" = "springgreen",
               "Nsanje District (rural)"   = "green4"
               )
  ) +
  scale_fill_manual(
    values = c('Lewis et al. (2017)' = "grey95",
               'Lewis et al. (2018)' = "grey30",
               'Musicha et al. (2019)' = "pink",
               'Musicha et al. (2020)' = "orange2",
               'This study (2023)' = "skyblue1",
               'This study (2024)' = "blue1"
    )
  ) +
  theme_void() +
  labs(edge_color = "SNPs as % of core genome alignment", color = "Location", fill = "Study (isolation year)")

# Save the plot
ggsave("Figures/ST38_network_plot_inc_recomb_sites.png", network_plot, height = 4, width = 7, dpi = 600)

# Print the plot
print(network_plot)

Tree

# Read in the treefile
ST38_tree <- read.tree("Data/ST38.aln.treefile")

# Root the tree at midpoint
ST38_tree <- midpoint(ST38_tree)

# Extract isolate metadata for tree
tree_metadata <- nodes[, c("Isolate", "Location", "Study (isolation year)")]

# Reorder metadata to match tree tip order
tree_metadata <- tree_metadata[match(ST38_tree$tip.label, tree_metadata$Isolate), ]
rownames(tree_metadata) <- tree_metadata$Isolate

# Colour palette 
study_fill_vals <- c(
  'Lewis et al. (2017)'   = "grey95",
  'Lewis et al. (2018)'   = "grey30",
  'Musicha et al. (2019)' = "pink",
  'Musicha et al. (2020)' = "orange2",
  'This study (2023)'     = "skyblue1",
  'This study (2024)'     = "blue1"
)

# Rename Isolate -> label
tree_metadata_for_join <- tree_metadata %>%
  rename(label = Isolate)

# Plot tree
p <- ggtree(ST38_tree) %<+% tree_metadata_for_join +
  geom_tippoint(
    aes(
      fill  = `Study (isolation year)`,
      shape = Location
    ),
    colour = "black",
    stroke = 0.3,
    size   = 2.0
  ) +
  scale_fill_manual(values = study_fill_vals, drop = FALSE) +
  scale_shape_manual(
    values = c(
      "Blantyre (urban)"          = 21,
      "Mangochi District (rural)" = 22,
      "Nsanje District (rural)"   = 24
    )
  ) +
  theme_tree2() +
  theme(legend.position = "right") +
  labs(
    fill  = "Study (isolation year)",
    shape = "Location"
  ) +
  geom_treescale(
    x = 0.0005, y = 50, width = 0.001,
    fontsize = 3, linesize = 0.5
  )

# Override shape in key so colours are plotted properly
p <- p +
  guides(
    fill = guide_legend(
      override.aes = list(shape = 21, colour = "black")
    )
  )

# Clean x-axis
p <- p +
  theme(
    axis.line.x  = element_blank(),
    axis.text.x  = element_blank(),
    axis.ticks.x = element_blank(),
    axis.title.x = element_blank()
  )

# Add some border space to prevent plot clipping
p <- p + scale_y_continuous(expand = expansion(mult = c(0.03, 0.03)))
## Scale for y is already present.
## Adding another scale for y, which will replace the existing scale.
# Save the plot
ggsave("Figures/ST38_tree.png", p, width = 8, height = 8, dpi = 600)

# Print the plot
print(p)