Tests if a list of tables contains correct information on MOTU abundances, MOTU characteristics, PCR characteristics, and sample characteristics to be classed as a metabarlist object.

check_metabarlist(metabarlist)

Arguments

metabarlist

a metabarlist object

Value

check_metabarlist returns TRUE if metabarlist fulfills of conditions to be of class metabarlist` (see details). If not, the function throws a stop.

Details

The function check_metabarlist checks if metabarlist has all the properties required to be a well formed metabarlist object:

  • metabarlist should be a list with four tables named `reads`, `motus`, `pcrs` and `samples`.

  • the `reads` table should be a numeric matrix.

  • the `motus`, `pcrs` and `samples` tables should be data frames.

  • the `reads` table row names should be exactly the same as row names in the `pcrs` table.

  • the `reads` table column names should be exactly the same as row names in the `motus` table.

  • the `pcrs` table should contain the mandatory columns required, i.e. `sample_id`, `type` and `control_type`.

  • values in `type` should be properly defined: they can only be `sample` or `control`.

  • values in `control_type` should be properly defined: they can only be `sequencing`, `pcr`, `extraction`, `positive`, (or NA for samples).

The function will stop if these basic criteria are not met.

check_metabarlist also issues warnings if tables lack columns which are non-mandatory for the metabaR package to run, but that are mandatory (or have a mandatory format) for specific functions (e.g., ggpcrplate)

  • the column `sequence` for the `motus` table.

  • the columns `tag_fwd`, `tag_rev`, `primer_fwd`, `primer_rev`, `plate_no`, `plate_col`, and `plate_row` for the `pcrs` table.

In addition, the function issues a warning if any PCR or MOTU has a total count of 0 across the entire dataset.

Author

Clément Lionnet & Frédéric Boyer & Lucie Zinger

Examples


data(soil_euk)
check_metabarlist(soil_euk)
#> Warning: Some PCRs in soil_euk have a number of reads of zero in table `reads`!
#> [1] TRUE