#' Summarize an orthofinder TSV file
#'
#' @param tsv_path The path to the Orthogroups/Orthogroups.tsv file in the standard orthofinder output
#'
#' @export
orthofinder_summary = function(tsv_path) {
  require(tidyverse)
  orthogroups = read_delim(tsv_path, delim = "\t") %>%
    pivot_longer(cols = -contains('Orthogroup'), names_to = "GENOME", values_to = "GENE") %>%
    drop_na() %>%
    group_by(Orthogroup, GENOME) %>%
    mutate(GENE = length(unlist(strsplit(GENE, ',')))) %>%
    pivot_wider(names_from = GENOME, values_from = GENE)
  return(orthogroups)
}
#' Summarize single copy and orthogroups found in all
#'
#' @param tsv_path The path to the Orthogroups/Orthogroups.tsv file in the standard orthofinder output
#'
#' @export
orthofinder_complete_clusters = function(o) {
  single_copy = o %>%
    pivot_longer(cols = -contains('Orthogroup'), names_to = "GENOME", values_to = "GENE") %>%
    mutate(GENE = replace_na(GENE, 0)) %>%
    group_by(Orthogroup) %>%
    summarize(MAX = max(GENE), MIN = min(GENE), SUM = sum(GENE)) %>%
    filter(MAX == 1, MIN == 1) %>%
    pull(Orthogroup)
  ubiquitous_orthologs = o %>%
    pivot_longer(cols = -contains('Orthogroup'), names_to = "GENOME", values_to = "GENE") %>%
    drop_na() %>%
    group_by(Orthogroup) %>%
    tally() %>%
    filter(n == max(n)) %>%
    pull(Orthogroup)
    return(list("SINGLE" = single_copy, "UBIQUITOUS" = ubiquitous_orthologs))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.