Configuration#
To tell seal what data it is supposed to analyse and how, it is necessary to desribe its tasks in a configuration file called taskfile in TOML format. A documented example is provided below.
example-taskfile.toml#
## This file exists to demonstrate taskfile syntax and permissible values.
## It is not an overview of sane default for your analysis or any analysis.
## Prune and adjust as necessary.
# 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
# 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, 2 ]
# How to create levels for analysis
# default: nested-transects
# options: nested-quadrats, contiguous-transects, nested-transects
# see https://mmatous.codeberg.page/seal-tool/methodology/strategies.html for more details
level-strategy = "nested-transects"
# Dimensions of a quadrat
# Used in overview, sar, turnover
# 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 overview (optional), abundance (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 = "overview" },
{ type = "sar", permutations = 200 },
# an analysis may be specified multiple times with different parameters
{ type = "sar", permutations = 2 },
# difference (default): pairwise species difference
# simpson: Simpson pairwise dissimilarity
{ type = "turnover", interval = 10, formulas = ["difference", "simpson"] },
{ type = "richness"},
{ type = "spatial" },
# braycurtis: Bray–Curtis dissimilarity, quantity-col must be present in dataset
# jaccard (default): Jaccard's dissimilarity
# sorensen: Sorensen's dissimilarity
{ type = "dissimilarity", interval = 10, formulas = ["braycurtis", "jaccard", "sorensen"] },
{ type = "abundance" },
]
# 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 turnover, richness, dissimilarity
# 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 only quadrats of given types in the analysis
# Quadrats not present in encounters dataset will have richness set to 0
# Used in every analysis
# 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
# 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
# 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
# Only include rows in "encounters" where given column has one of listed values
# Used in every analysis
# default: include everything
include-enc = [
{"locality" = ["Kayankerni"]},
]
# Exclude rows in "encounters" where given column has one of listed values
# Takes precedence over "include" key
# Used in every analysis
# default: exclude nothing
exclude-enc = [
{"family" = ["Caesionidae", "Gobiidae"]},
{"phase" = ["juv"]},
]
# Configuration specific to plotting
[plot]
# Denote error using given type
# alt. ["type", width]
# Options (type): ci, pi, sd, se
# Options (width): ci, pi: 0.0-1.0; sd, se: 1-N
# default widths: ci, pi: 0.95; sd, se: 1
# default type: se
error-type = ["ci", 0.85]
# Select graph output format
# Options: png, svg
# default: svg
output_format = 'png'