Publishing eDNA Data in OBIS

From sequences to a global open biodiversity record

Emilie Boulanger, Elizabeth Lawrence, Stephen Formel, Saara Suominen

2026-10-27

Agenda

  • What is OBIS
  • What are relevant data standards for eDNA
  • How to format an eDNA dataset for OBIS and GBIF
  • How publish DNA-derived data to OBIS

If we have enough time

  • The OBIS eDNA QC tool
  • Mapping molecular data to Darwin Core

What is OBIS?

Ocean Biodiversity Information System

  • Global open-access data system for marine life
  • UNESCO Intergovernmental Oceanographic Commission
  • > 199 M occurrence records from >7,000 datasets
  • Data flows to GBIF — easy to publish once, reach both

Free to use. Free to contribute.

A Mature Global Community

OBIS is the world’s largest open-access repository
for marine biodiversity data.



36 nodes
across 99 countries
representing 1,000+ institutions
and 6,000+ scientists.

eDNA data in OBIS

  • OBIS currently holds 128 datasets with eDNA-derived occurrences, including 44,5 million records
  • About 2 million distinct sequences
  • That is 2% of all datasets, but 25% of all occurrence records in OBIS

What is special about DNA-derived data?

Enormous potential…

  • Expands access to biodiversity data at scale
  • Captures environmental, specimen, and bulk-sample DNA
  • Raw sequences already widely shared in NCBI

…but NCBI alone is not enough

  • Raw sequences cannot be searched by species in time and space
  • No link to spatial coordinates or sampling date
  • Cannot support distribution maps, trend analyses, or MPA assessments

How do we make sure we understand data from different sources?

eDNA data standards

Two major eDNA data standards exist

1. MIxS

Minimum Information about any (x) Sequence — for raw sequences

Used by
INSDC NCBI ENA DDBJ

2. Darwin Core (DwC)

Community vocabulary for biodiversity data — species, location, date, basis of record

Used by
OBIS GBIF ALA

Developing landscape

  • Rapidly changing field
  • For OBIS future directions include the DWC-DP and FAIReDNA terms

What is Darwin Core?

  • Stable, shared vocabulary for biodiversity data
    • Standardized field names, identifiers, & definitions
  • Maintained by TDWG, used by OBIS, GBIF, and the wider biodiversity community
  • Not a database itself - a set of agreed-upon terms (e.g. scientificName, eventDate, decimalLatitude)

Think of it as everyone agreeing to call the same column the same thing - so your data and someone else’s can sit in the same table!

🤝

Core & Extension tables

  • Every Darwin Core Archive has one core table: either Event or Occurrence
  • Plus zero, one, or more extension tables (eMoF, DNA extension…)
  • Extensions link back to the core via an ID

What about eDNA data?

Darwin Core + DNA Derived Data Extension

  • Darwin Core: shared vocabulary for biodiversity data
  • DNA Extension: adds MIxS terms for sequences, primers, methods
  • Developed jointly by GBIF, OBIS, and the genomics community

meta.xml ← links all tables
eml.xml ← metadata (who, what, where, when, how)
occurrence.csv ← the occurrence records
dna_derived.csv ← the DNA extension

Five DNA data categories

Which one fits your data?

# Category Example
1 DNA-derived occurrences Metabarcoding (ASVs/OTUs assigned to taxa)
2 Enriched occurrences Voucher specimen + barcoded
3 Targeted species detection qPCR / ddPCR assays
4 Name references Sequence in GenBank only
5 Metadata only Dataset without sequences

🔎 Use the GBIF decision tree to confirm your category

Key Metadata: eDNA Metabarcoding

From field collection to taxonomy — what to capture at each step

⛵ Field Sampling

  • Date, Coordinates, Environmental measurements

🧪 Biomarker / PCR

  • Primer sequence, primer reference, target gene, PCR conditions, length of product, concentration,

🧬 DNA Extraction

  • Concentration, Extraction method, Extracted amount

💻 Sequences & Taxonomy

  • Sequencing platform, Library layout, Public repositry ID (NCBI, ENA)
  • Taxonomy, annotation confidence and reference, Pipeline, Reference library

Category 1 — DNA-derived occurrences · basisOfRecord = MaterialSample

Key Metadata: Quantitative PCR (qPCR)

Targeted species detection — additional fields vs metabarcoding

⛵ Field Sampling

  • Date, Coordinates, Environmental measurements

🧪 PCR Protocol

  • PCR conditions

🧬 DNA Extraction

  • Concentration, Extraction method, Extracted amount

🎯 Target & Quantity

  • Target gene region, primers
  • Copy number, LOD, Cq, baseline

Category 3 — Targeted species detection · basisOfRecord = MaterialSample

How do we publish DNA-derived data ?

Your data needs to be in the right format + using the right vocabulary

The DNA publishing guide

Publishing DNA-derived data through biodiversity data platforms

From raw outputs → long format

DNA data is more complex than a lat/lon + species name

Your typical metabarcoding outputs:

File Content
OTU/ASV table Sequences × Samples (read counts)
Taxonomy table Sequence [ID] → taxon assignment
Sample metadata Location, date, method
FASTA file Actual DNA sequences

The transformation:

One row = one unique sequence in one sample = one occurrence record

Example transformation

Table structure options

Option A — Occurrence Core

occurrence.csv 
  └── dna_derived.csv  (linked via occurrenceID)
  └── emof.csv         (linked via occurrenceID)

Option B — Event Core (recommended for eDNA)

event.csv
  └── occurrence.csv        (linked via eventID)
       └── dna_derived.csv  (linked via occurrenceID)
  └── emof.csv              (linked via eventID or occurrenceID)

Why Event Core? Sample-level metadata (location, date, method) is recorded once per sampling event rather than repeated in every row.

Key DwC fields to include: Event

Event core (mandatory fields)

  • eventID — unique, stable ID
  • eventDate — YYYY-MM-DD
  • decimalLatitude, decimalLongitude

Event table (strongly recommended fields)

  • minimumDepthInMeters, maximumDepthInMeters
  • sampleSizeValue (volume of sample)
  • sampleSizeUnit (units of volume sampled)
  • samplingProtocol - (link to your field sampling SOP)

→ the 📍where, 🕒when & 🧪how of collection

Key DwC fields to include: Occurrence

Occurrence (core) table (mandatory fields)

  • occurrenceID — unique, stable ID
  • scientificName — taxon name to lowest possible taxon rank
  • basisOfRecord = “MaterialSample”
  • occurrenceStatus = “present”

If Occurrence core, also: eventDate, decimalLatitude, decimalLongitude

Occurrence table (strongly recommended fields)

  • scientificNameID (WoRMS AphiaID)
  • organismQuantity (read count of sequence)
  • organismQuantityType = “DNA sequence reads”
  • sampleSizeValue (total read count in sample)
  • sampleSizeUnit = “DNA sequence reads”
  • samplingProtocol - (link to your SOP)
  • associatedSequences (link to e.g. GenBank or ENA accession)

→ what organism was detected 🐠🪸🪼

Key fields to include: DNA Extension

DNA Extension (example key fields)

  • DNA_sequence — ASV/OTU sequence
  • target_gene — e.g. “COI”, “18S rRNA”
  • pcr_primer_name_forward — and reverse
  • seq_meth — e.g. “Illumina MiSeq”
  • otu_class_appr — e.g. “DADA2 v1.18”
  • otu_db — reference database
  • sop — link to your protocol

→ 🧬the molecular context

All tables linked by eventID and occurrenceID

eMoF extension table

  • Table to record all types of measurements (abiotic, biotic, environmental, sampling…)
  • Measurements recorded in long format
    • measurementType, measurementValue, measurementUnit
  • Linking sampling info to eventIDs decreases duplication
  • Use controlled vocabulary whenever possible!
eventID occurrenceID measurementType measurementValue measurementUnit
YEARsite1samp1 temperature 25 C
measurementTypeID measurementUnitID
http://vocab.nerc.ac.uk/collection/P01/current/TEMPPR01/ http://vocab.nerc.ac.uk/collection/P06/current/UPAA/

Resources for DNA terms

Resource Link
DNA Extension term definitions rs.gbif.org/extension/gbif/1.0/dna_derived_data_2024-07-11.xml
DwC Term Quick Reference Guide dwc.tdwg.org/terms/
OBIS Manual (DNA chapter) manual.obis.org/dna_data.html
GBIF DNA publishing guide doi.org/10.35035/DOC-VF1A-NR22

Publishing to OBIS

Quality control

Before publishing — check for:

  • ✅ Taxonomy matched to WoRMS (AphiaID required for marine taxa)
  • ✅ Coordinates in decimal degrees, in the ocean
  • ✅ Dates in ISO 8601 format (YYYY-MM-DD)
  • ✅ Unique, stable occurrenceID and eventID
  • ✅ Table linkages consistent (eventID, occurrenceID)

Tools:

Tool What it checks
obistools (R package) Taxonomy, geography, required fields
GBIF data validator Darwin Core Archive structure
WoRMS Taxon Match Tool Scientific names → AphiaIDs

Publishing workflow

Integrated Publishing Toolkits (IPT) are hosted by OBIS nodes — you do not need to run your own server. OBIS has nodes covering most world regions. Find yours at obis.org/nodes.

Special cases

Unknown sequences

  • Many sequences in any given study will remain uncharacterized
  • Populate the scientificName field with Biota incertae sedis
  • Or the lowest taxonomic information if available
    • e.g. only assigned to Class level, scientificName = Teleostei, scientificNameID = urn:lsid:marinespecies.org:taxname:293496
  • For Biota incertea sedis, scientificNameID should be populated with urn:lsid:marinespecies.org:taxname:12.
  • Recommend that you populate verbatimIdentification with the name that was originally documented (e.g. phototrophic eukaryote).

Sequences without a WoRMS ID (AphiaID)

  • WoRMS is an extensive database of linnean names of marine species, confirmed by experts in each taxonomic group
  • Within eDNA datasets there are usually many taxonomic assignments (protists, prokaryotes) that cannot be found in the WoRMS database currently (i.e. no AphiaID available)
  • The name might be available and mapped to GBIF, making sharing datasets between GBIF and OBIS complicated
  • The submitter of the data may in these cases record the known species name, in scientificName, the ID of the taxon in another database in taxonConceptID and leave scientificNameID empty

Control samples

  • Control samples are important for quality control of resulting data
  • Currently, there is no feature for this implemented in the IPT
  • In the future, OBIS and GBIF are working on a solution to submit them as separate files within the same dataset
  • They will then not be mapped, to avoid that they end up in the GBIF or OBIS occurrence indexes, but will be available for anyone looking for that information

Metadata with no DwC terms

  • A lot of information, especially detailed parameters e.g. of bioinformatic workflow, do not have controlled vocabulary fields yet
  • The FAIRe project, “making eDNA data FAIR”, is in the process of developing new metadata fields to record all the relevant information of eDNA projects
  • The checklist is already available online: https://fair-edna.github.io/download.html
  • A lot of existing fields, a lot of new fields
  • Currently, the new fields are dropped from the IPT. But in the process of adding them to DwC and MIxS. In the meantime, they can be added in eMoF (extendedMeasurementOrFact)

A note on sensitive data

Common cases:

  • Endangered or commonly poached species locations
  • Species/locations with economic sensitivity

Options → you don’t have to choose between “share everything” or “share nothing”:

  • Generalize location - provide a region or polygon (footprintWKT) instead of an exact point
  • Delay publication - prepare to publish but set an embargo for later
  • Generalize taxonomic name - provide a higher taxon name

Note: Generalizations should be documented alongside your data! See OBIS Manual & GBIF Guide for more details

Resources

Tools to Help You

GBIF Metabarcoding Data Toolkit

Automates DwC mapping from bioinformatic outputs

mdt.gbif.org

robis (R package)

Query OBIS; retrieve DNA records with unnest_extension()

github.com/iobis/robis

obistools (R package)

Validation, QC, WoRMS matching, archive structure checks

github.com/iobis/obistools

OBIS R tutorial

Transform raw DNA data into a Darwin Core-compliant dataset

iobis.github.io/edna-training-beginner-track

Structure an eDNA Dataset in R

OBIS R tutorial: Transform raw DNA data into a Darwin Core-compliant dataset

time: ~90 min

🎯 By the end of this tutorial, you will be able to:

  • Read a raw ASV table, taxonomy file, and sample metadata sheet into R.
  • Combine these tables into a Darwin Core Occurrence table, mapping raw fields to Darwin Core terms.
  • Use the obistools package to match taxon names against WoRMS, and check coordinates, dates, and required fields.
  • Build the ExtendedMeasurementOrFact and DNADerivedData extension tables.
  • Write out a complete Darwin Core Archive.

What can FAIR data do?

Geographic outlier detection - OBIS eDNA taxonomy QC tool

dataset quality profile: alignment of species detections to known distribution and thermal ranges

What can FAIR data do?

Geographic outlier detection - OBIS eDNA taxonomy QC tool

Mapping molecular data to Darwin Core

Which information is entered where? A short exercise

eDNA Metabarcoding: Key Information

DwC Term Quick Reference Guide | https://dwc.tdwg.org/terms/ |
DNA Extension term definitions | https://rs.gbif.org/extension/gbif/1.0/dna_derived_data_2024-07-11.xml |

Category 1 — DNA-derived occurrences — basisOfRecord = MaterialSample

From field collection to taxonomy — what to capture at each step

Step 1:⛵ Field Sampling

Field Sampling Maps to
Coordinates, location names Event table: ..., ..., ...
Date, time Event table: ..., ...
Environmental measurements (temperature, salinity, depth…) eMoF table: ..., ..., ...
Sampling method / gear Event table: ... and/or eMoF table
Sample volume, filter size DNA table: ... , ...

eDNA Metabarcoding: Key Information

Category 1 — DNA-derived occurrences — basisOfRecord = MaterialSample

From field collection to taxonomy — what to capture at each step

Step 1:⛵ Field Sampling

Field Sampling Maps to
Coordinates, location names Event table: decimalLatitude, decimalLongitude, locality
Date, time Event table: eventDate, eventTime
Environmental measurements (temperature, salinity, depth…) eMoF table: measurementType, measurementValue, measurementUnit
Sampling method / gear Event table: samplingProtocol and/or eMoF table
Sample volume, filter size DNA table: samp_size , size_frac

eDNA Metabarcoding: Key Information

Category 1 — DNA-derived occurrences — basisOfRecord = MaterialSample

From field collection to taxonomy — what to capture at each step

Step 2: 🧬 DNA Extraction

DNA Extraction Maps to
Volume of sample processed DNA table: samp_vol_we_dna_ext
Extraction method / kit DNA table: nucl_acid_ext, nucl_acid_amp
Concentration DNA table: concentration, concentrationUnit
Purity ratio (A260/280) DNA table: ratioOfAbsorbance260_280

eDNA Metabarcoding: Key Information

Category 1 — DNA-derived occurrences — basisOfRecord = MaterialSample

From field collection to taxonomy — what to capture at each step

Step 3: 🧪 DNA Amplification

DNA Amplification Maps to (DNA table)
Target gene (e.g. COI, 18S rRNA) DNA table: target_gene
Primer sequence + primer reference DNA table: pcr_primer_forward, pcr_primer_name_forward, pcr_primer_reverse, pcr_primer_name_reverse + pcr_primer_reference
PCR conditions DNA table: pcr_cond
Length of amplified product DNA table: ampliconSize

eDNA Metabarcoding: Key Information

Category 1 — DNA-derived occurrences — basisOfRecord = MaterialSample

From field collection to taxonomy — what to capture at each step

Step 4: 💻 Sequences

Sequences Maps to
Sequencing platform + library layout DNA table: seq_meth + lib_layout
Sequences per sample DNA table: DNA_sequence (linked by occurrenceID)
Public repository where sequences deposited (NCBI, ENA) Occurrence table: associatedSequences

eDNA Metabarcoding: Key Information

Category 1 — DNA-derived occurrences — basisOfRecord = MaterialSample

From field collection to taxonomy — what to capture at each step

Step 5: 🐠 Taxonomy

Taxonomy Maps to
Taxonomy assignment + annotation confidence Occurrence table: scientificName, taxonID
DNA table: annot
Reference database + pipeline used Occurrence table: identificationRemarks, identificationReferences
DNA table: otu_db + sop
Number of sequence reads per taxon & total Occurence table: organismQuantity, organismQuantityType, & sampleSizeValue, sampleSizeUnit

Key Metadata: Quantitative PCR (qPCR)

Category 3 — Targeted species detection — basisOfRecord = MaterialSample

Targeted species detection — additional fields vs metabarcoding

⛵ Step 1: Field Sampling → same as metabarcoding

🧬 Step 2: DNA Extraction → same as metabarcoding

🧪 Step 3: DNA Amplification → PCR conditions → pcr_cond

🎯 Step 4/5: Target & Quantity

Target & Quantity Maps to
Target gene region target_gene, target_subfragment
Primers pcr_primers
Copy number + concentration estimatedNumberOfCopies + concentration, concentrationUnit
LOD, Cq, baseline pcr_primer_lod, quantificationCycle, baselineValue