Overview
The iRfcb R package offers a suite of tools for managing and performing quality control on plankton data generated by the Imaging FlowCytobot (IFCB). It streamlines the processing and analysis of IFCB data, facilitating the preparation of IFCB data and images for publication (e.g. in GBIF, OBIS, EMODNet, SHARK or EcoTaxa). It is especially useful for researchers using, or partly using, the MATLAB ifcb-analysis package.
Functional Highlights
- Data Management: Functions for reading raw and processed IFCB files, counting and summarizing annotated or classified image data, and accessing, correcting, and merging manually annotated datasets.
- Quality Control: Tools for geospatial quality control of IFCB data and analysis of Particle Size Distribution.
- Image Extraction: Tools to extract and prepare images for publication.
- Image Classification: Functions to classify IFCB images through a CNN model served by a Gradio application.
- Taxonomical Data: Tools for handling and analyzing taxonomic data and calculating biomass concentration from image data.
Installation
You can install iRfcb from CRAN using:
install.packages("iRfcb")Development version
To access a feature from the development version of iRfcb, install the latest development version from GitHub using the remotes package:
# install.packages("remotes")
remotes::install_github("EuropeanIFCBGroup/iRfcb")Documentation and Tutorials
Reference
For a detailed overview of all available iRfcb functions, please visit the reference section:
Python Dependency
Some functions in iRfcb require Python, and you will be notified when you call one of these functions. You can download Python from the official website: python.org/downloads. For details on which functions require Python, please visit the project’s Function Reference.
A Python virtual environment (venv) can be created using the ifcb_py_install() function before calling functions that require Python.
The iRfcb package can also be configured to automatically activate an installed Python venv upon loading by setting an environment variable. This feature is especially useful for users who regularly interact with Python dependencies within the iRfcb package.
USE_IRFCB_PYTHON
-
Description: The
USE_IRFCB_PYTHONenvironment variable controls whether the package automatically activates a pre-installed Python venv (e.g. usingifcb_py_install()) when the package is loaded. The optionalIRFCB_PYTHON_VENVvariable controls which venv is activated. -
Default: By default, neither variable is set. This means that the Python environment will not be loaded automatically, and the user must call the
ifcb_py_install()function manually before using a Python feature. -
Usage: To enable automatic setup of the Python environment when
iRfcbis loaded, setUSE_IRFCB_PYTHONto"TRUE". By default the package activates the first available venv namediRfcbfound inreticulate::virtualenv_root()(as listed byreticulate::virtualenv_list()). To load a specific environment instead, also setIRFCB_PYTHON_VENVto either the name of a venv underreticulate::virtualenv_root()or a full path to a venv directory. IfIRFCB_PYTHON_VENVis set but cannot be resolved, no environment is activated (auto-discovery is not attempted). Both variables must be set beforeiRfcbis loaded.
How to Set These Variables
You can set the variables in your R session or make them persistent across sessions:
-
Temporary for the session: Set the variables before loading
iRfcb:Sys.setenv(USE_IRFCB_PYTHON = "TRUE") Sys.setenv(IRFCB_PYTHON_VENV = "/path/to/my/venv") # optional; or a named venv, e.g. "iRfcb-3.11" -
Permanent across sessions: To ensure these settings persist across R sessions, add them to your
.Renvironfile in your R home directory. You can easily edit the file using:usethis::edit_r_environ("user")Then add the following lines (the second is optional):
USE_IRFCB_PYTHON=TRUE IRFCB_PYTHON_VENV=/path/to/my/venvThis will automatically set the environment variables each time you start an R session.
Getting help
If you encounter a bug or need an IFCB feature that’s missing, please report it on GitHub with a minimal reproducible example.
Repository
For more details and the latest updates, visit the GitHub repository.
