Skip to content

modeling of updated DNA extension; updating guidance to demo nested events #213

Description

@sformel-usgs

TL;DR I've created a toy dataset to help model publishing of DNA with hierachical events. I wasn't sure of the best place to communicate this, so I chose this repo. Happy to share it through any other channels that are useful.

occurrenceID was recently added to the DNA extension (gbif/rs.gbif.org#136). @pieterprovoost and I spoke about the need for an example dataset to model this in OBIS. I'm not sure if GBIF already has other examples they are working with, but perhaps this example dataset will also be useful for the MDT (@tobiasgf ) and DwC2 (@timrobertson100 ). We also need to update the Publishing DNA guide to demonstrate this utility.

I've created a toy dataset with IPT 3.1.0 that uses Event Core + Occurrence Extension + DNA Extension:

dwca-test_addition_occurrenceid_dna_extension-v1.5.zip

A couple of notes:

  1. I thought it would be more useful to have a balanced, simple dataset than a real-world example, for now. This includes 160 occurrences nested in 6 parent events (Cruise > Site > Station > Sample > Replicate > Library).
  2. There are a few terms, like fieldNotes, samplingProtocol, and footprintWKT that only apply to a few parent events.
  3. One of the things I realized in making this dataset is that the term DNA_sequence keeps us from realizing any reduction in the number of rows of the DNA extension, because it is 1:1 with occurrenceID. However, I think most (if not all) other terms can be linked to parent events (e.g. water sample, library prep) rather than the occurrence. Maybe there is some way to separate these chunks of information and reduce the volume of the extension.

Here is what the event structure looks like:

graph LR

subgraph event["Event Core"]

  Cruise --> Site1 & Site2

  Site1 --> Station1A & Station1B
  Site2 --> Station2A & Station2B

  Station1A --> 1ASS["Surface Sample"] & 1ABS["Bottom Sample"]
  Station1B --> 1BSS["Surface Sample"] & 1BBS["Bottom Sample"]
  Station2A --> 2ASS["Surface Sample"] & 2ABS["Bottom Sample"]
  Station2B --> 2BSS["Surface Sample"] & 2BBS["Bottom Sample"]
  
  1ASS --> 1ASSA["Replicate A"] & 1ASSB["Replicate B"]
  1ABS --> 1ABSA["Replicate A"] & 1ABSB["Replicate B"]
  1BSS --> 1BSSA["Replicate A"] & 1BSSB["Replicate B"]
  1BBS --> 1BBSA["Replicate A"] & 1BBSB["Replicate B"]
  2ASS --> 2ASSA["Replicate A"] & 2ASSB["Replicate B"]
  2ABS --> 2ABSA["Replicate A"] & 2ABSB["Replicate B"]
  2BSS --> 2BSSA["Replicate A"] & 2BSSB["Replicate B"]
  2BBS --> 2BBSA["Replicate A"] & 2BBSB["Replicate B"]

  1ASSA --> 1ASSA16S["16S Library"] & 1ASSACOI["COI Library"]
  1ABSA --> 1ABSA16S["16S Library"] & 1ABSACOI["COI Library"]
  1BSSA --> 1BSSA16S["16S Library"] & 1BSSACOI["COI Library"]
  1BBSA --> 1BBSA16S["16S Library"] & 1BBSACOI["COI Library"]
  2ASSA --> 2ASSA16S["16S Library"] & 2ASSACOI["COI Library"]
  2ABSA --> 2ABSA16S["16S Library"] & 2ABSACOI["COI Library"]
  2BSSA --> 2BSSA16S["16S Library"] & 2BSSACOI["COI Library"]
  2BBSA --> 2BBSA16S["16S Library"] & 2BBSACOI["COI Library"]
  1ASSB --> 1ASSB16S["16S Library"] & 1ASSBCOI["COI Library"]
  1ABSB --> 1ABSB16S["16S Library"] & 1ABSBCOI["COI Library"]
  1BSSB --> 1BSSB16S["16S Library"] & 1BSSBCOI["COI Library"]
  1BBSB --> 1BBSB16S["16S Library"] & 1BBSBCOI["COI Library"]
  2ASSB --> 2ASSB16S["16S Library"] & 2ASSBCOI["COI Library"]
  2ABSB --> 2ABSB16S["16S Library"] & 2ABSBCOI["COI Library"]
  2BSSB --> 2BSSB16S["16S Library"] & 2BSSBCOI["COI Library"]
  2BBSB --> 2BBSB16S["16S Library"] & 2BBSBCOI["COI Library"]

end

subgraph occ["Occurrence Extension"]

  1ASSA16S --> occ1["5 occurrences (ASVs)"]
  1ASSACOI --> occ2["5 occurrences (ASVs)"]
  1ABSA16S --> occ3["5 occurrences (ASVs)"]
  1ABSACOI --> occ4["5 occurrences (ASVs)"]
  1BSSA16S --> occ5["5 occurrences (ASVs)"]
  1BSSACOI --> occ6["5 occurrences (ASVs)"]
  1BBSA16S --> occ7["5 occurrences (ASVs)"]
  1BBSACOI --> occ8["5 occurrences (ASVs)"]
  2ASSA16S --> occ9["5 occurrences (ASVs)"]
  2ASSACOI --> occ10["5 occurrences (ASVs)"]
  2ABSA16S --> occ11["5 occurrences (ASVs)"]
  2ABSACOI --> occ12["5 occurrences (ASVs)"]
  2BSSA16S --> occ13["5 occurrences (ASVs)"]
  2BSSACOI --> occ14["5 occurrences (ASVs)"]
  2BBSA16S --> occ15["5 occurrences (ASVs)"]
  2BBSACOI --> occ16["5 occurrences (ASVs)"]
  1ASSB16S --> occ21["5 occurrences (ASVs)"]
  1ASSBCOI --> occ22["5 occurrences (ASVs)"]
  1ABSB16S --> occ23["5 occurrences (ASVs)"]
  1ABSBCOI --> occ24["5 occurrences (ASVs)"]
  1BSSB16S --> occ25["5 occurrences (ASVs)"]
  1BSSBCOI --> occ26["5 occurrences (ASVs)"]
  1BBSB16S --> occ27["5 occurrences (ASVs)"]
  1BBSBCOI --> occ28["5 occurrences (ASVs)"]
  2ASSB16S --> occ29["5 occurrences (ASVs)"]
  2ASSBCOI --> occ30["5 occurrences (ASVs)"]
  2ABSB16S --> occ31["5 occurrences (ASVs)"]
  2ABSBCOI --> occ32["5 occurrences (ASVs)"]
  2BSSB16S --> occ33["5 occurrences (ASVs)"]
  2BSSBCOI --> occ34["5 occurrences (ASVs)"]
  2BBSB16S --> occ35["5 occurrences (ASVs)"]
  2BBSBCOI --> occ36["5 occurrences (ASVs)"]
end

Loading

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions