ebi-ait / checklist

Template repository for checklists
Apache License 2.0
1 stars 0 forks source link

Change json schema conversion templates to Biosamples format #42

Closed Jeena-Rajan closed 3 months ago

theisuru commented 3 months ago

Starting from the existing biosamples template, need to add:

theisuru commented 3 months ago

This is complete (minor improvements needed). Example schema for ERC000022

{
  "$schema" : "http://json-schema.org/draft-07/schema#",
  "$id" : "https://www.ebi.ac.uk/biosamples/schemas/ENA-GSC_MIxS_soil/1.0.0",
  "title" : "GSC MIxS soil",
  "description" : "Genomic Standards Consortium package extension for reporting of measurements and observations obtained from the environment where the sample was obtained. By choosing the environmental package, a selection of fields can be made from a relevant subsets of the GSC terms.",
  "type" : "object",
  "properties" : {
    "name" : {
      "type" : "string"
    },
    "accession" : {
      "type" : "string"
    },
    "characteristics" : {
      "type" : "object",
      "properties" : {
        "trophic level" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "enum" : [ "autotroph", "carboxydotroph", "chemoautotroph", "chemoheterotroph", "chemolithoautotroph", "chemolithotroph", "chemoorganoheterotroph", "chemoorganotroph", "chemosynthetic", "chemotroph", "copiotroph", "diazotroph", "facultative autotroph", "heterotroph", "lithoautotroph", "lithoheterotroph", "lithotroph", "methanotroph", "methylotroph", "mixotroph", "obligate chemoautolithotroph", "oligotroph", "organoheterotroph", "organotroph", "photoautotroph", "photoheterotroph", "photolithoautotroph", "photolithotroph", "photosynthetic", "phototroph" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "observed biotic relationship" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "enum" : [ "commensal", "free living", "mutualism", "parasite", "symbiont" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "known pathogenicity" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "relationship to oxygen" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "enum" : [ "aerobe", "anaerobe", "facultative", "microaerophilic", "microanaerobe", "obligate aerobe", "obligate anaerobe" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "propagation" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "sample collection device" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "sample collection method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "sample storage conditions" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "soil_taxonomic/FAO classification" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "soil_taxonomic/local classification" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "soil_taxonomic/local classification method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "soil type" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "enum" : [ "Acrisol", "Albeluvisol", "Alisol", "Andosol", "Anthrosol", "Arenosol", "Calcisol", "Cambisol", "Chernozem", "Cryosol", "Durisol", "Ferralsol", "Fluvisol", "Gleysol", "Gypsisol", "Histosol", "Kastanozem", "Leptosol", "Lixisol", "Luvisol", "Nitisol", "Phaeozem", "Planosol", "Plinthosol", "Podzol", "Regosol", "Solonchak", "Solonetz", "Stagnosol", "Technosol", "Umbrisol", "Vertisol" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "soil type method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "soil texture measurement" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              },
              "unit" : {
                "enum" : [ "% sand/silt/clay" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "soil texture method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "microbial biomass" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "g/kg" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "project name" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "ploidy" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "number of replicons" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "[+-]?[0-9]+"
              }
            },
            "required" : [ "text" ]
          }
        },
        "extrachromosomal elements" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "[+-]?[0-9]+"
              }
            },
            "required" : [ "text" ]
          }
        },
        "estimated size" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "[+-]?[0-9]+"
              }
            },
            "required" : [ "text" ]
          }
        },
        "target gene" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "target subfragment" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "multiplex identifiers" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "sequence quality check" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "enum" : [ "manual", "none", "software" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "chimera check software" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "relevant electronic resources" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "relevant standard operating procedures" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "collection date" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(^[12][0-9]{3}(-(0[1-9]|1[0-2])(-(0[1-9]|[12][0-9]|3[01])(T[0-9]{2}:[0-9]{2}(:[0-9]{2})?Z?([+-][0-9]{1,2})?)?)?)?(/[0-9]{4}(-[0-9]{2}(-[0-9]{2}(T[0-9]{2}:[0-9]{2}(:[0-9]{2})?Z?([+-][0-9]{1,2})?)?)?)?)?$)|(^not collected$)|(^not provided$)|(^restricted access$)|(^missing: control sample$)|(^missing: sample group$)|(^missing: synthetic construct$)|(^missing: lab stock$)|(^missing: third party data$)|(^missing: data agreement established pre-2023$)|(^missing: endangered species$)|(^missing: human-identifiable$)"
              }
            },
            "required" : [ "text" ]
          }
        },
        "altitude" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "((0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?)|((^not collected$)|(^not provided$)|(^restricted access$)|(^missing: control sample$)|(^missing: sample group$)|(^missing: synthetic construct$)|(^missing: lab stock$)|(^missing: third party data$)|(^missing: data agreement established pre-2023$)|(^missing: endangered species$)|(^missing: human-identifiable$))"
              },
              "unit" : {
                "enum" : [ "m" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "geographic location (country and/or sea)" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "enum" : [ "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Arctic Ocean", "Argentina", "Armenia", "Aruba", "Ashmore and Cartier Islands", "Atlantic Ocean", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Baker Island", "Baltic Sea", "Bangladesh", "Barbados", "Bassas da India", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Borneo", "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", "Christmas Island", "Clipperton Island", "Cocos Islands", "Colombia", "Comoros", "Cook Islands", "Coral Sea Islands", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", "Curacao", "Cyprus", "Czechia", "Czech Republic", "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Europa Island", "Falkland Islands (Islas Malvinas)", "Faroe Islands", "Fiji", "Finland", "France", "French Guiana", "French Polynesia", "French Southern and Antarctic Lands", "Gabon", "Gambia", "Gaza Strip", "Georgia", "Germany", "Ghana", "Gibraltar", "Glorioso Islands", "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guernsey", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Howland Island", "Hungary", "Iceland", "India", "Indian Ocean", "Indonesia", "Iran", "Iraq", "Ireland", "Isle of Man", "Israel", "Italy", "Jamaica", "Jan Mayen", "Japan", "Jarvis Island", "Jersey", "Johnston Atoll", "Jordan", "Juan de Nova Island", "Kazakhstan", "Kenya", "Kerguelen Archipelago", "Kingman Reef", "Kiribati", "Kosovo", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mediterranean Sea", "Mexico", "Micronesia", "Midway Islands", "Moldova", "Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Navassa Island", "Nepal", "Netherlands", "New Caledonia", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "North Sea", "Northern Mariana Islands", "Norway", "Oman", "Pacific Ocean", "Pakistan", "Palau", "Palmyra Atoll", "Panama", "Papua New Guinea", "Paracel Islands", "Paraguay", "Peru", "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar", "Republic of the Congo", "Reunion", "Romania", "Ross Sea", "Russia", "Rwanda", "Saint Helena", "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon", "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", "Sint Maarten", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea", "Southern Ocean", "Spain", "Spratly Islands", "Sri Lanka", "Sudan", "Suriname", "Svalbard", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Tasman Sea", "Thailand", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tromelin Island", "Tunisia", "Turkey", "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "USA", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Viet Nam", "Virgin Islands", "Wake Island", "Wallis and Futuna", "West Bank", "Western Sahara", "Yemen", "Zambia", "Zimbabwe", "missing: control sample", "missing: data agreement established pre-2023", "missing: endangered species", "missing: human-identifiable", "missing: lab stock", "missing: sample group", "missing: synthetic construct", "missing: third party data", "not applicable", "not collected", "not provided", "restricted access" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "geographic location (latitude)" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(^[+-]?[0-9]+.?[0-9]{0,8}$)|(^not collected$)|(^not provided$)|(^restricted access$)|(^missing: control sample$)|(^missing: sample group$)|(^missing: synthetic construct$)|(^missing: lab stock$)|(^missing: third party data$)|(^missing: data agreement established pre-2023$)|(^missing: endangered species$)|(^missing: human-identifiable$)"
              },
              "unit" : {
                "enum" : [ "DD" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "geographic location (longitude)" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(^[+-]?[0-9]+.?[0-9]{0,8}$)|(^not collected$)|(^not provided$)|(^restricted access$)|(^missing: control sample$)|(^missing: sample group$)|(^missing: synthetic construct$)|(^missing: lab stock$)|(^missing: third party data$)|(^missing: data agreement established pre-2023$)|(^missing: endangered species$)|(^missing: human-identifiable$)"
              },
              "unit" : {
                "enum" : [ "DD" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "geographic location (region and locality)" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "broad-scale environmental context" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "local environmental context" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "environmental medium" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "elevation" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "([+-]?(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?)|((^not collected$)|(^not provided$)|(^restricted access$)|(^missing: control sample$)|(^missing: sample group$)|(^missing: synthetic construct$)|(^missing: lab stock$)|(^missing: third party data$)|(^missing: data agreement established pre-2023$)|(^missing: endangered species$)|(^missing: human-identifiable$))"
              },
              "unit" : {
                "enum" : [ "m" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "amount or size of sample collected" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "L", "g", "kg", "m2", "m3" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "sieving" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "microbial biomass method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "horizon method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "extreme_unusual_properties/heavy metals" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "extreme_unusual_properties/heavy metals method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "extreme_unusual_properties/Al saturation" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "%" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "extreme_unusual_properties/Al saturation method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "host disease status" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "host scientific name" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "link to climate information" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "link to classification information" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "links to additional analysis" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "current land use" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "current vegetation" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "current vegetation method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "soil horizon" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "enum" : [ "A horizon", "B horizon", "E horizon", "O horizon", "Permafrost", "R layer" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "drainage classification" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "enum" : [ "excessively drained", "moderately well", "poorly", "somewhat poorly", "very poorly", "well" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "temperature" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "[+-]?(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "ºC" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "pH" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              }
            },
            "required" : [ "text" ]
          }
        },
        "pH method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "water content" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "%", "cm3/cm3", "g/g" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "slope gradient" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "%" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "slope aspect" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "profile position" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "enum" : [ "backslope", "footslope", "shoulder", "summit", "toeslope" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "water content method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "total organic carbon method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "total nitrogen content method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "organic matter" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "µg/L" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "organic nitrogen" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "µg/L" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "total organic carbon" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "g/kg" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "total nitrogen content" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "µg/L", "µmol/L" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "salinity method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "source material identifiers" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "history/previous land use" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "previous land use method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "history/crop rotation" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "history/agrochemical additions" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "history/tillage" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "enum" : [ "chisel", "cutting disc", "disc plough", "drill", "mouldboard", "ridge till", "strip tillage", "tined", "zonal tillage" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "history/fire" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "history/flooding" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "history/extreme events" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "mean seasonal temperature" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "[+-]?(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "°C" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "mean seasonal precipitation" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "mm" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "mean annual precipitation" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "mm" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "mean annual temperature" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "[+-]?(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "ºC" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "host specificity or range" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "perturbation" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "negative control type" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "positive control type" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "experimental factor" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "encoded traits" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "subspecific genetic lineage" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "taxonomic classification" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "isolation and growth condition" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "annotation source" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "reference for biomaterial" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "sample pooling" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "sample material processing" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "sample volume or weight for DNA extraction" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "(0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?"
              },
              "unit" : {
                "enum" : [ "g", "mL", "mg", "ng" ]
              }
            },
            "required" : [ "text" ]
          }
        },
        "nucleic acid extraction" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "nucleic acid amplification" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "library size" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "[+-]?[0-9]+"
              }
            },
            "required" : [ "text" ]
          }
        },
        "library reads sequenced" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "[+-]?[0-9]+"
              }
            },
            "required" : [ "text" ]
          }
        },
        "library construction method" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "library vector" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "library screening strategy" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "pcr conditions" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "pcr primers" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "adapters" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string"
              }
            },
            "required" : [ "text" ]
          }
        },
        "depth" : {
          "type" : "array",
          "items" : {
            "properties" : {
              "text" : {
                "type" : "string",
                "pattern" : "((0|((0\\.)|([1-9][0-9]*\\.?))[0-9]*)([Ee][+-]?[0-9]+)?)|((^not collected$)|(^not provided$)|(^restricted access$)|(^missing: control sample$)|(^missing: sample group$)|(^missing: synthetic construct$)|(^missing: lab stock$)|(^missing: third party data$)|(^missing: data agreement established pre-2023$)|(^missing: endangered species$)|(^missing: human-identifiable$))"
              },
              "unit" : {
                "enum" : [ "m", "mm" ]
              }
            },
            "required" : [ "text" ]
          }
        }
      },
      "allOf" : [ {
        "oneOf" : [ {
          "required" : [ "project name" ]
        } ]
      }, {
        "oneOf" : [ {
          "required" : [ "collection date" ]
        }, {
          "required" : [ "Event Date/Time" ]
        }, {
          "required" : [ "collection_date" ]
        } ]
      }, {
        "oneOf" : [ {
          "required" : [ "geographic location (country and/or sea)" ]
        }, {
          "required" : [ "geographic location (country and/or sea)" ]
        } ]
      }, {
        "oneOf" : [ {
          "required" : [ "geographic location (latitude)" ]
        } ]
      }, {
        "oneOf" : [ {
          "required" : [ "geographic location (longitude)" ]
        } ]
      }, {
        "oneOf" : [ {
          "required" : [ "broad-scale environmental context" ]
        }, {
          "required" : [ "environment (biome)" ]
        } ]
      }, {
        "oneOf" : [ {
          "required" : [ "local environmental context" ]
        }, {
          "required" : [ "environment (feature)" ]
        } ]
      }, {
        "oneOf" : [ {
          "required" : [ "environmental medium" ]
        }, {
          "required" : [ "environment (material)" ]
        } ]
      }, {
        "oneOf" : [ {
          "required" : [ "elevation" ]
        }, {
          "required" : [ "geographic location (elevation)" ]
        } ]
      }, {
        "oneOf" : [ {
          "required" : [ "depth" ]
        }, {
          "required" : [ "Depth" ]
        }, {
          "required" : [ "geographic location (depth)" ]
        } ]
      } ]
    }
  },
  "required" : [ "name", "characteristics" ]
}