Skip to content

DeepWaterIMR/BioticExplorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

133 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Biotic Explorer

A Shiny app to explore Biotic data within the Institute of Marine Research Norway (IMR) database. Version 0.8.0, 2026-05-19.

Biotic Explorer is a Shiny app for examining and manipulating Norwegian Maritime Data Center (NMD) standard Biotic XML files and the IMR Biotic database. It operates in two modes:

  • File mode — open local NMD Biotic v3 XML files directly from your computer, no database required.
  • Database mode — connect to a DuckDB database compiled by BioticExplorerServer to query the full IMR Biotic dataset. The database must be installed to the default location (~/IMR_biotic_BES_database) for BioticExplorer to detect it automatically at startup.

The server version

There is currently no server version of Biotic Explorer running. Run it locally on your computer by following the instructions below.

Installation of the desktop version

The app requires R and RStudio / Posit. Install these following the instructions on their respective websites. Then install the Shiny package in R:

install.packages("shiny")

Running the app for the first time automatically installs and loads all required packages. If you encounter installation problems, read the error messages carefully or contact the app maintainer.

Running the app from your hard drive

Click the green Code button on GitHub → Download ZIP. Extract the ZIP to a desired location, open app.R in RStudio, and click Run App.

Running the app directly from GitHub

You may also run the app directly from GitHub without downloading it first:

library(shiny)
shiny::runGitHub("BioticExplorer", "DeepWaterIMR")

Usage

The Biotic Explorer interface consists of the sidebar, main panel, process symbol, and help button (Figure 1). The sidebar consists of tabs. The main panel consists of different elements depending on the active tab. The data interface consists of data selection fields, a data overview, and subset buttons.

Figure 1. The Biotic Explorer interface consists of the sidebar (1), main panel (2), process symbol (3), and help button (4). The sidebar consists of tabs (1a). The main panel consists of different elements depending on tab selection. The data interface consists of data selection fields (2a), data overview (2b), and subset buttons (2c).

Figure 1. The Biotic Explorer interface consists of the sidebar (1), main panel (2), process symbol (3), and help button (4). The sidebar consists of tabs (1a). The main panel consists of different elements depending on tab selection. The data interface consists of data selection fields (2a), data overview (2b), and subset buttons (2c).

The process symbol has two states: the IMR logo and a BUSY icon (Figure 2). The BUSY icon means the app is processing data — avoid clicking tabs, boxes, or buttons while this is active. Note that internal R processing and GUI rendering are separate steps, so it may take a moment for the app to become responsive after the BUSY symbol disappears.

Figure 2. Process symbol states. The app is ready when the IMR logo is shown (left). The app is busy when the BUSY icon is shown (right). Avoid clicking anything while the app is busy.Figure 2. Process symbol states. The app is ready when the IMR logo is shown (left). The app is busy when the BUSY icon is shown (right). Avoid clicking anything while the app is busy.

Figure 2. Process symbol states. The app is ready when the IMR logo is shown (left). The app is busy when the BUSY icon is shown (right). Avoid clicking anything while the app is busy.

Read data

Download data from the database

Click Load data & filter → From the database. Use the filter controls to narrow down the dataset, then click Send inquiry. The BUSY symbol disappears when the operation is done — this may take time for large selections. An overview of the selected data and station positions is shown on the right. You can further narrow the selection with the Subset button, or return to the full database selection with Reset.

Read NMD Biotic XML files

Click Load data & filter → From files → Browse.. and select one or more .xml files from your computer. An overview and station map appear below. Use the Filter data by fields to select the data you want to keep and click Subset. The Reset button restores the full loaded dataset.

Resume a previous session

Click Load data & filter → From files → Browse.. and open an .rds file previously saved from BioticExplorer (see Export data). The session resumes with all data and filter selections intact.

Examine data

Cruise overview

The Cruise overview tab shows all cruises (the mission element of NMD Biotic files) in a searchable table.

Stations & catches

The Stations & catches section contains three tabs:

  • Overview — summary plots of catch composition, catch weights, gear types, and station depths derived from the fishstation and catchsample elements.
  • Map of catches — interactive leaflet map of catch weight per station, with a species selector and a catch composition map.
  • Examine data — the full merged station and catch dataset in a searchable table.

Individuals & ages

The Individuals & ages section contains three tabs:

  • Overview — length and weight distribution plots across all species with sufficient data, plus a summary table of measurement counts per species.
  • Species plots — life-history plots for a selected species: length–weight relationship, age–length growth model, L50 maturity, sex ratio map, geographic size distribution, sex-specific length distribution, and stage-specific length distribution. Plots appear only when enough data are available.
  • Examine data — the full merged individual and age dataset in a searchable table.

Hierarchical data tables

The Hierarchical data tables section exposes the raw NMD Biotic elements (fishstation, catchsample, individual, agedetermination) in their original tabular form without the cross-table merging applied in the other views.

Download

Export data

Use the Download → Data tab to export the current session. To reopen the data in BioticExplorer or in R, choose R format — this saves an .rds file readable with readRDS(). Data can also be exported as ZIP-compressed CSV files or as a multi-sheet Excel workbook.

Export figures

Use the Download → Figures tab to export any combination of figures as PNG, JPEG, or PDF. The following figure groups are available:

  • Station overview figures — species composition, summed/mean/range catch weights, mean specimen weight, catch counts, gear-type catch totals, station depth, and fishing depth by species.
  • Station maps — total catch map (by species or all species combined) and catch composition pie-chart map.
  • Individual overview — length and weight distributions across all species with sufficient measurements.
  • Species-specific figures — select a species from the dropdown to export any of: length–weight relationship, age–length growth curve (von Bertalanffy, Gompertz, or Logistic), 50% maturity at length (L50), sex ratio map, geographic size distribution map, sex-specific length distribution, and stage-specific length distribution. Figures for which the selected species lacks sufficient data are silently skipped.

Leaflet map figures are rendered as static images via mapview. To modify figures beyond the options offered in the app, download BioticExplorer and edit R/figure_functions.R.

Contributions and contact information

Contributions are welcome. Please contact the app maintainer Mikko Vihtakari (mikko.vihtakari@hi.no) to discuss ideas or report issues, or open an issue on the GitHub repository.

Dependencies

The app automatically installs the following packages on first run:

  • shiny: The Shiny web application framework.
  • shinydashboard: Dashboard layout for Shiny.
  • bsplus: Bootstrap extensions for tooltips and collapsible panels.
  • shinyFiles: File up- and download utilities for Shiny.
  • DT: Interactive data tables.
  • data.table: Fast in-memory data manipulation.
  • dtplyr: dplyr syntax for data.table objects.
  • tidyverse: Data manipulation and plotting (dplyr, ggplot2, tidyr, etc.).
  • RstoxData: Reads NMD Biotic XML files.
  • leaflet: Interactive maps.
  • leaflet.minicharts: Pie-chart and bar-chart markers for leaflet maps.
  • mapview: Renders leaflet maps to static image files for download.
  • plotly: Interactive plots.
  • openxlsx: Writes Excel files.
  • scales: Axis scaling helpers for ggplot2.
  • fishmethods: Fits growth models (von Bertalanffy, Gompertz, Logistic).
  • viridis: Viridis colour scales for size distribution maps.
  • DBI: Database interface.
  • duckdb: DuckDB driver for the BioticExplorer database.
  • devtools: Used to install packages not available on CRAN.

News

2026-05-19 Bumped to version 0.8.0. Introduced all.x = TRUE merge for stations without catch (empty-catch stations now retained with commonname = NA). Bug fixes and completed figure download. Fixed download format detection, file-mode mission type filter, database-mode column existence guards, cruise series label lookup, and several smaller issues. All figure types in Download → Figures are now fully functional. Git repository moved to DeepWaterIMR.

2025-01-21 Migrated BioticExplorer to DuckDB. The app now works on all commonly used operating systems.

2020-05-13 Added complete database support. All planned features incorporated; bug-fixing and polish remain.

2020-01-22 Update preparing for beta-release. Many new features. Unstable and undocumented.

2019-07-11 Fixed Windows-related problems. The app should work on most institutional machines.

2019-07-08 First alpha version uploaded. Works but incomplete; intended for internal testing.

About

A Shiny app to explore Biotic data within the Institute of Marine Research Norway (IMR) database

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages