Configuration#
To tell seal what data it is supposed to analyse and how, it is necessary to provide it with a file called taskfile in TOML format. A documented example is provided below.
example-taskfile.toml#
# Path to dataset with encounters
# Expected columns in the dataset: coord_x, coord_y, species
# Optional columns:
# locality: can be used to filter data based on locality, country, treatment, etc.
# direction: if samples are collected as transects, you can mark down direction of collection and choose which to use
# morph: contains name of morphospecies in case of cryptic species or species which cannot be told apart
# individuals: number of individuals
# significant_size: individuals larger than certain threshold are marked as 1, other as 0
# family: family (or other taxonomical unit) of the species
# phase: categories of life cycle (e.g. juvenile - adult - terminal)
# date: in ISO 8601 format (yyyy-mm-dd)
# optional columns are only supported for filtering or preprocess checks
# Any other field will be ignored.
# Mandatory argument
encounters = "./datasets/data-bmd-sl.csv"
# List of quadrats present in given locality
# Must contain coord_x and coord_y columns with quadrat_type being optional
# This ensures even quadrats with no encountered species (and logically
# missing from the dataset with encounters) are included in analysis with 0 richness.
# Quadrat list will be inferred from supplied encounters dataset otherwise.
# Leaving this empty may negatively influence the accuracy of results.
# Optional
quadrat-list = "./datasets/qlists/kayankerni-20220605.csv"
# List of levels to analyse
# Used in every analysis
# options: 1-inf
# Mandatory
levels = [ 1 ]
# How to create levels for analysis
# default: striped-transect-merging
# options: nested-quadrats, repeated-transect-merging, striped-transect-merging
# see https://mmatous.codeberg.page/seal-tool/methodology/strategies.html for more details
level-strategy = "striped-transect-merging"
# Dimensions of a quadrat
# Used in a1, a2, a3, a6
# Mandatory
quadrat-sides = { x = 10, y = 10 }
# Categorical dataset column to analyse
# Used in every analysis
# default: species
categorical-col = "species"
# Quantitative dataset column to analyse
# Used in a1 (optional), a8 (mandatory)
# default: individuals
quantity-col = "individuals"
# Which analyses to perform
# It is possible to specify an analysis multiple times with different parameters.
# see https://mmatous.codeberg.page/seal-tool/methodology/analyses.html for more details
# Mandatory
analyses = [
{ type = "a1" },
{ type = "a2", permutations = 200 },
# an analysis may be specified multiple times with different parameters
{ type = "a2", permutations = 2 },
{ type = "a3", interval = 10 },
{ type = "a4"},
{ type = "a5" },
{ type = "a6" },
{ type = "a7" },
{ type = "a8" },
]
# Directory to write results into
# Will be created if necessary and seal is used as CLI tool
# Must be created manually if seal is used as a library.
# default "./results"
out-dir = "./example-results"
# Distance function to use
# Used in a3, a4, a6, a7
# options:
# chebyshev - chebyshev distance between two quadrat's farthest sides, used in the original P&W paper
# euclid-centroid - euclidean distance between two quadrat's centroids
# euclid-diagonal - euclidean distance between two quadrat's farthest corners
# default: euclid-diagonal
distance-type = "euclid-diagonal"
# Filter sampling direction
# Used in every analysis
# options any, forward, backward or richer (direction with more species encountered, per-quadrat)
# default: any
direction = "richer"
# Include small individuals (include individuals where significant_size == 0 in provided dataset)
# Used in every analysis
# default: false
include-tiny = true
# Include quadrats of given types with richness set to 0 even if they are not present in encounters dataset
# Used in every analysis
# options: no-reef, normal, riptide, shallows
# default: do not filter anything
quadrat-types = [ "normal", "shallows", "no-reef" ]
# Disregard transect info (x coordinate) for analysis -> zones are ignored, transects merge into one quadrat
# Used in every analysis
# default: false for nested-quadrats strategy, forced true otherwise
discard-transect-info = false
# Disregard zone (y coordinate) for analysis -> zones across transect merge into one quadrat
# Used in every analysis
# default: false
discard-zone-info = false
# Drop all indistinguishable encounters from dataset (species ends with ' .sp')
# Used in every analysis
# default: false
discard-indistinguishable = true
# Drop all encounters with listed families from the dataset
# Used in every analysis
# default: []
exclude-families = [ "Caesionidae", "Gobiidae" ]
# Drop all encounters except the ones with listed families from the dataset
# Used in every analysis
# default: [] (retains every family)
include-families = [ ]
# Drop all encounters with listed life phases from the dataset
# Used in every analysis
# default: []
exclude-phases = [ "juv" ]
# Replace species column with data from morph column
# Used in every analysis
# default: false
use-morph = false
# Seed RNG with specified value for reproducible output
# default: None
seed = 8001
# Filter on matching locality attribute in input dataset
# Optional
locality-name = "Kayankerni"
# Analyse only encounters between from and to dates, bounds included.
# Must be in ISO 8601 format
# default: no filter
from = 2022-06-05
to = 2022-06-09
# Configuration specific to plotting
[plot]
# Denote error using given type
# Options: ci, pi, sd, se
# default: ci
error-type = "ci"
# Denote error using given style
# Options: bars, band
# default: band
error-style = "bars"
# Use logarithmic scale for x-axis, a2 (SAR) only
# default: true
logscale-x = true
# Select graph output format
# Options: png, svg
# default: svg
output_format = 'png'