# Using FLORAL with phyloseq data

Phyloseq is a popular package for working with microbiome data. Here we show how to use the `phy_to_floral_data` helper function to convert phyloseq data into a format accepted by FLORAL.

The following code downloads data described in this paper and turns it into a phyloseq object. The tax_glom step here takes some time, and can be replaced with `speedyseq::tax_glom` for better performace.

    samples <- get0("samples", envir = asNamespace("FLORAL"))
    counts <- get0("counts", envir = asNamespace("FLORAL"))
    taxonomy <- get0("taxonomy", envir = asNamespace("FLORAL"))

    phy <- phyloseq(
      sample_data(samples %>% column_to_rownames("SampleID")),
      tax_table(taxonomy %>% select(ASV, Kingdom:Genus) %>% column_to_rownames("ASV") %>% as.matrix()),
      otu_table(counts  %>% pivot_wider(names_from = "SampleID", values_from = "Count", values_fill = 0) %>% column_to_rownames("ASV") %>% as.matrix(), taxa_are_rows = TRUE)
    ) %>%  subset_samples(DayRelativeToNearestHCT > -30 & DayRelativeToNearestHCT < 0) %>%
      tax_glom("Genus")

Next, we convert that phyloseq object into a list of results to be used by FLORAL; we have to specify the main outcome of interest as `y`, and any metadata columns (from `sample_data(phy)`) to use as covariates. Note that the analysis described here is just an example for using the function; this

    dat <- FLORAL::phy_to_floral_data(phy, covariates=c("Consistency"), y = "DayRelativeToNearestHCT")

The resulting list has named entities for the main arguments to FLORAL:

    res <- FLORAL::FLORAL(y = dat$y, x = dat$xcount, ncov = dat$ncov, family = "gaussian", ncv=NULL, progress=FALSE)