Skip to content

Class: JGI Isolate Genome (JgiIsolateGenomeInterface)

JGI submission metadata for isolate GENOME sequencing projects. Shared JGI logistics plus ribosomal strain-verification sequences and fungal screening.

URI: nmdc_sub_schema:JgiIsolateGenomeInterface

classDiagram class JgiIsolateGenomeInterface click JgiIsolateGenomeInterface href "../JgiIsolateGenomeInterface/" DhMultiviewCommonColumnsMixin <|-- JgiIsolateGenomeInterface click DhMultiviewCommonColumnsMixin href "../DhMultiviewCommonColumnsMixin/" JgiIsolateCommonMixin <|-- JgiIsolateGenomeInterface click JgiIsolateCommonMixin href "../JgiIsolateCommonMixin/" DhInterface <|-- JgiIsolateGenomeInterface click DhInterface href "../DhInterface/" JgiIsolateGenomeInterface : analysis_type JgiIsolateGenomeInterface --> "1..*" AnalysisTypeEnum : analysis_type click AnalysisTypeEnum href "../AnalysisTypeEnum/" JgiIsolateGenomeInterface : biosafety_mat_cat JgiIsolateGenomeInterface --> "1" JgiIsolateMaterialKindEnum : biosafety_mat_cat click JgiIsolateMaterialKindEnum href "../JgiIsolateMaterialKindEnum/" JgiIsolateGenomeInterface : collection_site_or_growth_conditions JgiIsolateGenomeInterface : cont_type JgiIsolateGenomeInterface --> "1" JgiContTypeEnum : cont_type click JgiContTypeEnum href "../JgiContTypeEnum/" JgiIsolateGenomeInterface : cont_well JgiIsolateGenomeInterface : container_name JgiIsolateGenomeInterface : dna_isolate_meth JgiIsolateGenomeInterface : dnase JgiIsolateGenomeInterface --> "1" YesNoEnum : dnase click YesNoEnum href "../YesNoEnum/" JgiIsolateGenomeInterface : estimated_size JgiIsolateGenomeInterface : host_genus JgiIsolateGenomeInterface : host_species JgiIsolateGenomeInterface : host_strain JgiIsolateGenomeInterface : host_taxid JgiIsolateGenomeInterface : isolate_fungal_16s_screening JgiIsolateGenomeInterface --> "0..1" YesNoEnum : isolate_fungal_16s_screening click YesNoEnum href "../YesNoEnum/" JgiIsolateGenomeInterface : isolate_its_match_unite JgiIsolateGenomeInterface --> "0..1" YesNoEnum : isolate_its_match_unite click YesNoEnum href "../YesNoEnum/" JgiIsolateGenomeInterface : isolate_ribosomal_seq JgiIsolateGenomeInterface : isolate_ribosomal_seq_comments JgiIsolateGenomeInterface : isolate_ribosomal_seq_type JgiIsolateGenomeInterface --> "0..1 _recommended_" RibosomalSequenceTypeEnum : isolate_ribosomal_seq_type click RibosomalSequenceTypeEnum href "../RibosomalSequenceTypeEnum/" JgiIsolateGenomeInterface : isolate_second_ribosomal_seq JgiIsolateGenomeInterface : isolate_second_ribosomal_seq_comments JgiIsolateGenomeInterface : isolate_second_ribosomal_seq_type JgiIsolateGenomeInterface --> "0..1" RibosomalSequenceTypeEnum : isolate_second_ribosomal_seq_type click RibosomalSequenceTypeEnum href "../RibosomalSequenceTypeEnum/" JgiIsolateGenomeInterface : jgi_project_pi JgiIsolateGenomeInterface : jgi_proposal_id JgiIsolateGenomeInterface : jgi_samp_id JgiIsolateGenomeInterface : jgi_sample_contact JgiIsolateGenomeInterface : jgi_sample_format JgiIsolateGenomeInterface --> "1" JGISampleFormatEnum : jgi_sample_format click JGISampleFormatEnum href "../JGISampleFormatEnum/" JgiIsolateGenomeInterface : jgi_sample_name JgiIsolateGenomeInterface : jgi_sample_volume JgiIsolateGenomeInterface : jgi_seq_project JgiIsolateGenomeInterface : jgi_seq_project_name JgiIsolateGenomeInterface : nuc_acid_absorb1 JgiIsolateGenomeInterface : nuc_acid_absorb2 JgiIsolateGenomeInterface : nuc_acid_concentration JgiIsolateGenomeInterface : reference_genome JgiIsolateGenomeInterface : replicate_group JgiIsolateGenomeInterface : samp_name JgiIsolateGenomeInterface : sample_isolated_from JgiIsolateGenomeInterface : source_mat_id

Inheritance

Slots

Name Cardinality and Range Description Inheritance
isolate_ribosomal_seq 0..1 recommended
String
Primary ribosomal sequence for strain verification direct
isolate_ribosomal_seq_type 0..1 recommended
RibosomalSequenceTypeEnum
Type of the first ribosomal sequence provided direct
isolate_ribosomal_seq_comments 0..1
String
Additional information about the first ribosomal sequence direct
isolate_second_ribosomal_seq 0..1
String
Optional secondary ribosomal sequence for additional strain verification direct
isolate_second_ribosomal_seq_type 0..1
RibosomalSequenceTypeEnum
Type of the second ribosomal sequence provided direct
isolate_second_ribosomal_seq_comments 0..1
String
Additional information about the second ribosomal sequence direct
isolate_fungal_16s_screening 0..1
YesNoEnum
For fungal draft samples only — was 16S screening performed to check for bact... direct
isolate_its_match_unite 0..1
YesNoEnum
For fungal draft samples only -- does the ITS sequence match taxonomy in the ... direct
dna_isolate_meth 1
String
Describe the method/protocol/kit used to extract DNA/RNA direct
estimated_size 1
Float
Provide an estimate of the genome size in megabases direct
analysis_type 1..*
AnalysisTypeEnum
Select all the data types associated or available for this biosample DhMultiviewCommonColumnsMixin
samp_name 1
String
A local identifier or name that for the material sample collected DhMultiviewCommonColumnsMixin
source_mat_id 0..1
String
A globally unique identifier assigned to the parent sample or sample that is ... DhMultiviewCommonColumnsMixin
replicate_group 0..1 recommended
String
Samples that are biological replicates should have the same group name JgiIsolateCommonMixin
jgi_samp_id 1
String
JgiIsolateCommonMixin
jgi_sample_name 1
String
Give the JGI sample a name that is meaningful to you JgiIsolateCommonMixin
jgi_seq_project 1
Float
JgiIsolateCommonMixin
jgi_seq_project_name 1
String
JgiIsolateCommonMixin
jgi_sample_contact 1
String
JgiIsolateCommonMixin
jgi_project_pi 1
String
JgiIsolateCommonMixin
jgi_proposal_id 1
String
JgiIsolateCommonMixin
nuc_acid_absorb1 0..1 recommended
Float
260/280 measurement of nucleic acid sample purity JgiIsolateCommonMixin
nuc_acid_absorb2 0..1 recommended
Float
260/230 measurement of nucleic acid sample purity JgiIsolateCommonMixin
nuc_acid_concentration 1
Float
JgiIsolateCommonMixin
jgi_sample_volume 1
Float
JgiIsolateCommonMixin
cont_type 1
JgiContTypeEnum
Tube or plate (96-well) JgiIsolateCommonMixin
cont_well 0..1 recommended
String
JgiIsolateCommonMixin
container_name 1
String
JgiIsolateCommonMixin
jgi_sample_format 1
JGISampleFormatEnum
Solution in which the JGI sample has been suspended JgiIsolateCommonMixin
dnase 1
YesNoEnum
JgiIsolateCommonMixin
biosafety_mat_cat 1
JgiIsolateMaterialKindEnum
JGI material category, labeled "Biosafety Material Category" on the form and ... JgiIsolateCommonMixin
reference_genome 0..1
String
Genome record to use as a reference for read alignment or assembly scaffoldin... JgiIsolateCommonMixin
sample_isolated_from 1
String
Free-text description of what the organism was isolated from JgiIsolateCommonMixin
collection_site_or_growth_conditions 0..1
String
Free-text description of the collection site or growth conditions for the iso... JgiIsolateCommonMixin
host_taxid 0..1
String
NCBI taxon id of the host, e JgiIsolateCommonMixin
host_genus 0..1
String
Genus of the host organism that the sample was collected from JgiIsolateCommonMixin
host_species 0..1
String
Species of the host organism that the sample was collected from JgiIsolateCommonMixin
host_strain 0..1
String
Strain of the host organism that the sample was collected from JgiIsolateCommonMixin

Usages

used by used in type used
SampleData jgi_isolate_genome_data range JgiIsolateGenomeInterface

Rules

ribosomal_seq_type_other_requires_comments

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'isolate_ribosomal_seq_type': {'equals_string': 'Other'}} {'isolate_ribosomal_seq_comments': {'pattern': '.+'}}

second_ribosomal_seq_type_requires_sequence

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'isolate_second_ribosomal_seq_type': {'pattern': '.+'}} {'isolate_second_ribosomal_seq': {'pattern': '.+'}}

second_ribosomal_seq_type_other_requires_comments

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'isolate_second_ribosomal_seq_type': {'equals_string': 'Other'}} {'isolate_second_ribosomal_seq_comments': {'pattern': '.+'}}

microbial_estimated_size_cap

Rule Applied Preconditions Postconditions Elseconditions
slot_conditions {'biosafety_mat_cat': {'range': 'MicrobialBiosafetyMaterialCategoryEnum', 'value_presence': 'PRESENT', 'equals_string_in': ['Archaea', 'Bacteria', 'Fungi', 'Plasmid', 'Virus', 'Synthetic Construct']}} {'estimated_size': {'maximum_value': 5000}}

Identifier and Mapping Information

Annotations

property value
excel_worksheet_name JGI Isolate Genome

Schema Source

Mappings

Mapping Type Mapped Value
self nmdc_sub_schema:JgiIsolateGenomeInterface
native nmdc_sub_schema:JgiIsolateGenomeInterface

LinkML Source

Direct

name: JgiIsolateGenomeInterface
annotations:
  excel_worksheet_name:
    tag: excel_worksheet_name
    value: JGI Isolate Genome
description: JGI submission metadata for isolate GENOME sequencing projects. Shared
  JGI logistics plus ribosomal strain-verification sequences and fungal screening.
title: JGI Isolate Genome
from_schema: https://example.com/nmdc_submission_schema
is_a: DhInterface
mixins:
- DhMultiviewCommonColumnsMixin
- JgiIsolateCommonMixin
slots:
- isolate_ribosomal_seq
- isolate_ribosomal_seq_type
- isolate_ribosomal_seq_comments
- isolate_second_ribosomal_seq
- isolate_second_ribosomal_seq_type
- isolate_second_ribosomal_seq_comments
- isolate_fungal_16s_screening
- isolate_its_match_unite
- dna_isolate_meth
- estimated_size
slot_usage:
  isolate_ribosomal_seq:
    name: isolate_ribosomal_seq
    slot_group: jgi_dna_isolate_section
  isolate_ribosomal_seq_type:
    name: isolate_ribosomal_seq_type
    slot_group: jgi_dna_isolate_section
  isolate_ribosomal_seq_comments:
    name: isolate_ribosomal_seq_comments
    slot_group: jgi_dna_isolate_section
  isolate_second_ribosomal_seq:
    name: isolate_second_ribosomal_seq
    slot_group: jgi_dna_isolate_section
  isolate_second_ribosomal_seq_type:
    name: isolate_second_ribosomal_seq_type
    slot_group: jgi_dna_isolate_section
  isolate_second_ribosomal_seq_comments:
    name: isolate_second_ribosomal_seq_comments
    slot_group: jgi_dna_isolate_section
  isolate_fungal_16s_screening:
    name: isolate_fungal_16s_screening
    slot_group: jgi_dna_isolate_section
  isolate_its_match_unite:
    name: isolate_its_match_unite
    slot_group: jgi_dna_isolate_section
  dna_isolate_meth:
    name: dna_isolate_meth
    slot_group: jgi_dna_isolate_section
rules:
- preconditions:
    slot_conditions:
      isolate_ribosomal_seq_type:
        name: isolate_ribosomal_seq_type
        equals_string: Other
  postconditions:
    slot_conditions:
      isolate_ribosomal_seq_comments:
        name: isolate_ribosomal_seq_comments
        pattern: .+
  description: If the first ribosomal sequence type is Other, comments are required.
  title: ribosomal_seq_type_other_requires_comments
- preconditions:
    slot_conditions:
      isolate_second_ribosomal_seq_type:
        name: isolate_second_ribosomal_seq_type
        pattern: .+
  postconditions:
    slot_conditions:
      isolate_second_ribosomal_seq:
        name: isolate_second_ribosomal_seq
        pattern: .+
  description: If a second ribosomal sequence type is provided, the sequence itself
    must also be provided.
  title: second_ribosomal_seq_type_requires_sequence
- preconditions:
    slot_conditions:
      isolate_second_ribosomal_seq_type:
        name: isolate_second_ribosomal_seq_type
        equals_string: Other
  postconditions:
    slot_conditions:
      isolate_second_ribosomal_seq_comments:
        name: isolate_second_ribosomal_seq_comments
        pattern: .+
  description: If the second ribosomal sequence type is Other, comments are required.
  title: second_ribosomal_seq_type_other_requires_comments
- preconditions:
    slot_conditions:
      biosafety_mat_cat:
        name: biosafety_mat_cat
        range: MicrobialBiosafetyMaterialCategoryEnum
        value_presence: PRESENT
        equals_string_in:
        - Archaea
        - Bacteria
        - Fungi
        - Plasmid
        - Virus
        - Synthetic Construct
  postconditions:
    slot_conditions:
      estimated_size:
        name: estimated_size
        maximum_value: 5000
  description: For microbial biosafety categories (Archaea, Bacteria, Fungi, Plasmid,
    Virus, Synthetic Construct), JGI caps the estimated genome size at 5000 Mb. Eukaryotic
    categories are not capped here and remain bounded only by the estimated_size outer
    maximum of 100000 Mb.
  title: microbial_estimated_size_cap
  notes:
  - The precondition lists the six microbial categories twice, with range and equals_string_in,
    because the two validators honor different keywords inside a rule precondition.
    linkml-validate (JSON-Schema path) honors equals_string_in (it becomes a JSON-Schema
    enum) and drops range here (a range in a precondition emits an empty schema that
    matches any value). DataHarmonizer 1.7.0 honors range (enum membership) and has
    no handling for equals_string_in. Supplying both lets each validator use the keyword
    it understands. Keep both lists in sync with MicrobialBiosafetyMaterialCategoryEnum.

Induced

name: JgiIsolateGenomeInterface
annotations:
  excel_worksheet_name:
    tag: excel_worksheet_name
    value: JGI Isolate Genome
description: JGI submission metadata for isolate GENOME sequencing projects. Shared
  JGI logistics plus ribosomal strain-verification sequences and fungal screening.
title: JGI Isolate Genome
from_schema: https://example.com/nmdc_submission_schema
is_a: DhInterface
mixins:
- DhMultiviewCommonColumnsMixin
- JgiIsolateCommonMixin
slot_usage:
  isolate_ribosomal_seq:
    name: isolate_ribosomal_seq
    slot_group: jgi_dna_isolate_section
  isolate_ribosomal_seq_type:
    name: isolate_ribosomal_seq_type
    slot_group: jgi_dna_isolate_section
  isolate_ribosomal_seq_comments:
    name: isolate_ribosomal_seq_comments
    slot_group: jgi_dna_isolate_section
  isolate_second_ribosomal_seq:
    name: isolate_second_ribosomal_seq
    slot_group: jgi_dna_isolate_section
  isolate_second_ribosomal_seq_type:
    name: isolate_second_ribosomal_seq_type
    slot_group: jgi_dna_isolate_section
  isolate_second_ribosomal_seq_comments:
    name: isolate_second_ribosomal_seq_comments
    slot_group: jgi_dna_isolate_section
  isolate_fungal_16s_screening:
    name: isolate_fungal_16s_screening
    slot_group: jgi_dna_isolate_section
  isolate_its_match_unite:
    name: isolate_its_match_unite
    slot_group: jgi_dna_isolate_section
  dna_isolate_meth:
    name: dna_isolate_meth
    slot_group: jgi_dna_isolate_section
attributes:
  isolate_ribosomal_seq:
    name: isolate_ribosomal_seq
    description: Primary ribosomal sequence for strain verification. For microbial
      drafts must be >1300 nt; for single cells >220 bp with <10% Ns; for fungal ITS
      >450 nt with <2% Ns. Use only A, C, G, T, or N with no FASTA header line.
    title: first ribosomal sequence
    notes:
    - JGI requires the ribosomal sequence for draft genome products but not for resequencing,
      methylation, or transcriptome products. submission-schema does not enforce that
      as a rule because the requirement keys on the JGI Sequencing Product, which
      the schema does not carry as a slot. Tracked in https://github.com/microbiomedata/nmdc-server/issues/2177.
    - The product-specific length and N-content thresholds in the description (>1300
      nt microbial drafts, >220 bp <10% Ns single cells, >450 nt <2% Ns fungal ITS)
      are not enforced; the flat pattern checks only 200-5000 A/C/G/T/N. Product-aware
      checks would live in nmdc-server (validation.ts).
    comments:
    - At least one ribosomal sequence is required for strain verification and must
      come from the actual sample to be shipped to JGI.  Please use only A, C, G,
      T or N, with no header.  Sequence of insufficient quality may delay the completion
      of the project. 16s sequence is required for all microbial drafts and single
      cells.  For microbial drafts, sequence MUST be >1300 nt; for single cells the
      sequence MUST be >220 bp, with <10% Ns.
    - ITS sequence is required for all samples for fungal drafts for strain verification.
      ITS sequence must be >450 nt with <2% Ns.
    examples:
    - value: AAATTGAAGAGTTTGATCATGGCTCAGATTGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAACGGTAACAGGAAGAAGCTTGCTCTTTGCTGACGAGTGGCGGACGGGTGAGTAATGTCTGGGAAACTGCCTGATGGAGGGGGATAACTACTGGAAACGGTAGCTAATACCGCATAACGTCGCAAGACCAAAGAGGGGGACCTTCGGGCCTCTTGCCATCGGATGTGCCCAGATGGGATTAGCTAGTAGGTGGGGTAACGGCTCACCTAGGCGACGTTGAGGCGTGGCTTCCGGAGCTAACGCGTTAAGTCGACCGCCTGGGGAGTACGGCCGCAAGGTTAAAACT
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - First ribosomal sequence
    rank: 32
    alias: isolate_ribosomal_seq
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateGenomeInterface
    slot_group: jgi_dna_isolate_section
    range: string
    recommended: true
    pattern: ^[ATCGN]{200,5000}$
  isolate_ribosomal_seq_type:
    name: isolate_ribosomal_seq_type
    description: Type of the first ribosomal sequence provided.
    title: first ribosomal sequence type
    notes:
    - Conditionally required for draft genome products only, for the same reason as
      isolate_ribosomal_seq, and not enforced here. Tracked in https://github.com/microbiomedata/nmdc-server/issues/2177.
    comments:
    - Required for draft genome products (microbial and fungal genome drafts); not
      required for resequencing, methylation, or transcriptome products.
    examples:
    - value: 16S
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - First ribosomal sequence type
    rank: 33
    alias: isolate_ribosomal_seq_type
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateGenomeInterface
    slot_group: jgi_dna_isolate_section
    range: RibosomalSequenceTypeEnum
    recommended: true
  isolate_ribosomal_seq_comments:
    name: isolate_ribosomal_seq_comments
    description: Additional information about the first ribosomal sequence.
    title: first ribosomal sequence comments
    comments:
    - Required if ribosomal sequence type is Other.
    examples:
    - value: Partial 16S, 850 nt
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - First ribosomal sequence comments
    rank: 34
    alias: isolate_ribosomal_seq_comments
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateGenomeInterface
    slot_group: jgi_dna_isolate_section
    range: string
    pattern: ^.{0,256}$
  isolate_second_ribosomal_seq:
    name: isolate_second_ribosomal_seq
    description: Optional secondary ribosomal sequence for additional strain verification.
      For 28S must be >300 nt with <10% Ns. Use only A, C, G, T, or N with no FASTA
      header line.
    title: second ribosomal sequence
    comments:
    - Other types of ribosomal sequence may be provided as a secondary check.  Sequence
      MUST come from the actual sample to be shipped to JGI.  For 28s, the sequence
      must be >300 nt with <10% Ns. Please use only A, C, G, T or N, with no header.
    examples:
    - value: AAATTGAAGAGTTTGATCATGGCTCAGATTGAACGCTGGCGGCAGGCCTAACACATGCAAGTCGAACGGTAACAGGAAGAAGCTTGCTCTTTGCTGACGAGTGGCGGACGGGTGAGTAATGTCTGGGAAACTGCCTGATGGAGGGGGATAACTACTGGAAACGGTAGCTAATACCGCATAACGTCGCAAGACCAAAGAGGGGGACCTTCGGGCCTCTTGCCATCGGATGTGCCCAGATGGGATTAGCTAGTAGGTGGGGTAACGGCTCACCTAGGCGACGTTGAGGCGTGGCTTCCGGAGCTAACGCGTTAAGTCGACCGCCTGGGGAGTACGGCCGCAAGGTTAAAACT
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - Second ribosomal sequence
    rank: 35
    alias: isolate_second_ribosomal_seq
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateGenomeInterface
    slot_group: jgi_dna_isolate_section
    range: string
    pattern: ^[ATCGN]{200,5000}$
  isolate_second_ribosomal_seq_type:
    name: isolate_second_ribosomal_seq_type
    description: Type of the second ribosomal sequence provided.
    title: second ribosomal sequence type
    examples:
    - value: ITS
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - Second ribosomal sequence type
    rank: 36
    alias: isolate_second_ribosomal_seq_type
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateGenomeInterface
    slot_group: jgi_dna_isolate_section
    range: RibosomalSequenceTypeEnum
  isolate_second_ribosomal_seq_comments:
    name: isolate_second_ribosomal_seq_comments
    description: Additional information about the second ribosomal sequence.
    title: second ribosomal sequence comments
    comments:
    - Required if second ribosomal sequence type is Other.
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - Second ribosomal sequence comments
    rank: 37
    alias: isolate_second_ribosomal_seq_comments
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateGenomeInterface
    slot_group: jgi_dna_isolate_section
    range: string
    pattern: ^.{0,256}$
  isolate_fungal_16s_screening:
    name: isolate_fungal_16s_screening
    description: For fungal draft samples only — was 16S screening performed to check
      for bacterial contamination?
    title: 16S screening performed
    notes:
    - JGI requires this for fungal draft products. submission-schema does not enforce
      that as a rule because the requirement keys on the JGI Sequencing Product, which
      the schema does not carry as a slot. Tracked in https://github.com/microbiomedata/nmdc-server/issues/2177.
    comments:
    - Required for fungal light, minimal, standard, and improved drafts.
    - Leave blank for non-fungal samples.
    examples:
    - value: 'yes'
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - For fungal draft samples, was 16S screening performed?
    rank: 38
    alias: isolate_fungal_16s_screening
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateGenomeInterface
    slot_group: jgi_dna_isolate_section
    range: YesNoEnum
  isolate_its_match_unite:
    name: isolate_its_match_unite
    description: For fungal draft samples only -- does the ITS sequence match taxonomy
      in the UNITE database?
    title: ITS matches UNITE
    notes:
    - JGI requires this for fungal draft products. submission-schema does not enforce
      that as a rule because the requirement keys on the JGI Sequencing Product, which
      the schema does not carry as a slot. Tracked in https://github.com/microbiomedata/nmdc-server/issues/2177.
    comments:
    - Required for fungal light, minimal, standard, and improved drafts.
    - Screen at https://unite.ut.ee/ before submitting.
    - Leave blank for non-fungal samples.
    examples:
    - value: 'yes'
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - For fungal draft samples, does ITS match taxonomy in UNITE?
    rank: 39
    alias: isolate_its_match_unite
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateGenomeInterface
    slot_group: jgi_dna_isolate_section
    range: YesNoEnum
  dna_isolate_meth:
    name: dna_isolate_meth
    description: Describe the method/protocol/kit used to extract DNA/RNA.
    title: DNA isolation method
    examples:
    - value: phenol/chloroform extraction
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - Sample Isolation Method
    rank: 16
    alias: dna_isolate_meth
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiIsolateGenomeInterface
    slot_group: jgi_dna_isolate_section
    range: string
    required: true
    recommended: false
  estimated_size:
    name: estimated_size
    description: Provide an estimate of the genome size in megabases
    title: Estimated genome size (Mb)
    notes:
    - Required for all DNA isolate products (draft genomes, resequencing, methylation)
      per JGI; on the genome interface, not the shared IsolateInterface, so transcriptome
      isolates are not asked for it. Float Mb at the JGI submission gate; nmdc-schema
      stores estimated_size as integer bp.
    comments:
    - JGI reports values in megabases (Mb); NMDC stores them in base pairs (bp).
    examples:
    - value: '4.6'
    in_subset:
    - jgi_isolate
    from_schema: https://example.com/nmdc_submission_schema
    structured_aliases:
      Estimated Genome Size (Mb):
        literal_form: Estimated Genome Size (Mb)
        predicate: BROAD_SYNONYM
        notes:
        - Exact JGI form template is access-restricted; source is the public submission
          overview.
        - 'Per @aclum: Mb is a coarser unit than bp, so a single Mb value covers many
          possible bp values; the alias is broader in granularity.'
        source: https://jgi.doe.gov/user-programs/pmo-overview/project-materials-submission-overview/
    rank: 21
    keywords:
    - size
    slot_uri: MIXS:0000024
    alias: estimated_size
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateGenomeInterface
    slot_group: jgi_isolate_section
    range: float
    required: true
    minimum_value: 1.0e-06
    maximum_value: 100000
    unit:
      ucum_code: Mbase
  analysis_type:
    name: analysis_type
    description: Select all the data types associated or available for this biosample
    title: analysis/data type
    comments:
    - MIxS:investigation_type was included as a `see_also` but that term doesn't resolve
      any more
    examples:
    - value: metagenomics; metabolomics; metaproteomics
    from_schema: https://example.com/nmdc_submission_schema
    rank: 3
    alias: analysis_type
    owner: JgiIsolateGenomeInterface
    domain_of:
    - DhMultiviewCommonColumnsMixin
    slot_group: sample_id_section
    range: AnalysisTypeEnum
    required: true
    multivalued: true
  samp_name:
    name: samp_name
    annotations:
      Preferred_unit:
        tag: Preferred_unit
        value: ''
    description: A local identifier or name that for the material sample collected.
      Refers to the original material collected or to any derived sub-samples.
    title: sample name
    comments:
    - It can have any format, but we suggest that you make it concise, unique and
      consistent within your lab, and as informative as possible.
    - If multiple sample environments (soil, water, etc) are used, these values must
      be unique across all environments.
    examples:
    - value: Rock core CB1178(5-6) from NSW
    from_schema: https://example.com/nmdc_submission_schema
    rank: 1
    keywords:
    - sample
    slot_uri: MIXS:0001107
    identifier: true
    alias: samp_name
    owner: JgiIsolateGenomeInterface
    domain_of:
    - DhMultiviewCommonColumnsMixin
    slot_group: sample_id_section
    range: string
    required: true
  source_mat_id:
    name: source_mat_id
    annotations:
      Expected_value:
        tag: Expected_value
        value: 'for cultures of microorganisms: identifiers for two culture collections;
          for other material a unique arbitrary identifer'
    description: A globally unique identifier assigned to the parent sample or sample
      that is the source of this sample.
    title: source material identifier
    todos:
    - Currently, the comments say to use UUIDs. However, if we implement assigning
      NMDC identifiers with the minter we dont need to require a GUID. It can be an
      optional field to fill out only if they already have a resolvable ID.
    comments:
    - Identifiers must be prefixed. Possible FAIR prefixes are IGSNs (http://www.geosamples.org/getigsn),
      NCBI biosample accession numbers, ARK identifiers (https://arks.org/). These
      IDs enable linking to derived analytes and subsamples. If you have not assigned
      FAIR identifiers to your samples, you can generate UUIDs (https://www.uuidgenerator.net/).
    - 'Prefixed FAIR identifiers are preferred where available: `igsn` for International
      Generic Sample Numbers (http://www.geosamples.org/getigsn), `biosample` for
      NCBI biosample accession IDs, `gold` for GOLD identifiers. The format is not
      constrained, so culture collection identifiers such as "DSM 6724" or "ATCC 5680"
      are also accepted.'
    examples:
    - value: igsn:AU1243
    - value: biosample:SAMEA2397676
    from_schema: https://example.com/nmdc_submission_schema
    rank: 2
    keywords:
    - identifier
    - material
    - source
    slot_uri: MIXS:0000026
    alias: source_mat_id
    owner: JgiIsolateGenomeInterface
    domain_of:
    - DhMultiviewCommonColumnsMixin
    - IsolateInterface
    slot_group: sample_id_section
    range: string
    multivalued: false
  replicate_group:
    name: replicate_group
    description: Samples that are biological replicates should have the same group
      name.  If your project does not contain biological replicates, give each sample
      its own group name.
    title: Biological replicate/sample group Name
    notes:
    - JGI requires this for RNA expression, IsoSeq, ChIP, Bisulphite-Seq, and methylation
      products. submission-schema does not enforce that as a rule because the requirement
      keys on the JGI Sequencing Product, which the schema does not carry as a slot.
      Tracked in https://github.com/microbiomedata/nmdc-server/issues/2177.
    comments:
    - Required for RNA expression, IsoSeq, ChIP, Bisulphite-Seq, and methylation projects.
    examples:
    - value: SampleGroup1
    from_schema: https://example.com/nmdc_submission_schema
    rank: 5
    alias: replicate_group
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
    recommended: true
  jgi_samp_id:
    name: jgi_samp_id
    title: JGI sample ID
    comments:
    - Do not edit these values. A template will be provided by NMDC in which these
      values have been pre-filled. If you do not have these values, please contact
      your NMDC POC & your JGI PM.
    examples:
    - value: '187654'
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_samp_id
    - rna_samp_id
    rank: 3
    alias: jgi_samp_id
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
    required: true
  jgi_sample_name:
    name: jgi_sample_name
    description: Give the JGI sample a name that is meaningful to you. Sample names
      must be unique across all JGI projects and contain a-z, A-Z, 0-9, - and _ only.
    title: JGI sample name
    examples:
    - value: JGI_pond_041618
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_sample_name
    - rna_sample_name
    rank: 4
    alias: jgi_sample_name
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
    required: true
    pattern: ^[-_.a-zA-Z0-9]*$
  jgi_seq_project:
    name: jgi_seq_project
    title: JGI seq project ID
    comments:
    - Do not edit these values. A template will be provided by NMDC in which these
      values have been pre-filled. If you do not have these values, please contact
      your NMDC POC & your JGI PM.
    examples:
    - value: '1191234'
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - Seq Project ID
    - dna_seq_project
    - rna_seq_project
    rank: 1
    alias: jgi_seq_project
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: float
    required: true
  jgi_seq_project_name:
    name: jgi_seq_project_name
    title: JGI seq project name
    comments:
    - Do not edit these values. A template will be provided by NMDC in which these
      values have been pre-filled. If you do not have these values, please contact
      your NMDC POC & your JGI PM.
    examples:
    - value: JGI Pond metagenomics
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_seq_project_name
    - rna_seq_project_name
    rank: 2
    alias: jgi_seq_project_name
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
    required: true
  jgi_sample_contact:
    name: jgi_sample_contact
    title: DNA sample contact
    examples:
    - value: Jordan James
    from_schema: https://example.com/nmdc_submission_schema
    rank: 18
    alias: jgi_sample_contact
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
    required: true
  jgi_project_pi:
    name: jgi_project_pi
    title: JGI sequencing project PI
    examples:
    - value: Jordan James
    from_schema: https://example.com/nmdc_submission_schema
    rank: 19
    alias: jgi_project_pi
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
    required: true
  jgi_proposal_id:
    name: jgi_proposal_id
    title: JGI proposal number
    examples:
    - value: PR123456
    - value: '123456'
    from_schema: https://example.com/nmdc_submission_schema
    rank: 20
    alias: jgi_proposal_id
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
    required: true
    pattern: ^[A-Z0-9]+$
  nuc_acid_absorb1:
    name: nuc_acid_absorb1
    description: 260/280 measurement of nucleic acid sample purity
    title: nucleic acid absorbance 260/280
    notes:
    - JGI requires absorbance for plant/algal drafts, fungal standard/improved drafts,
      microbial improved drafts, methylation, and any PacBio libraries. submission-schema
      does not enforce that as a rule because the requirement keys on the JGI Sequencing
      Product, which the schema does not carry as a slot. Tracked in https://github.com/microbiomedata/nmdc-server/issues/2177.
    comments:
    - Recommended value is between 1 and 3.
    - Required for plant/algal drafts, fungal standard/improved drafts, microbial
      improved draft, methylation, or any PacBio libraries.
    examples:
    - value: '2.02'
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_absorb1
    - rna_absorb1
    rank: 7
    alias: nuc_acid_absorb1
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: float
    recommended: true
    minimum_value: 0.0001
  nuc_acid_absorb2:
    name: nuc_acid_absorb2
    description: 260/230 measurement of nucleic acid sample purity
    title: nucleic acid absorbance 260/230
    notes:
    - JGI requires absorbance for plant/algal drafts, fungal standard/improved drafts,
      microbial improved drafts, methylation, and any PacBio libraries. submission-schema
      does not enforce that as a rule because the requirement keys on the JGI Sequencing
      Product, which the schema does not carry as a slot. Tracked in https://github.com/microbiomedata/nmdc-server/issues/2177.
    comments:
    - Recommended value is between 1 and 3.
    - Required for plant/algal drafts, fungal standard/improved drafts, microbial
      improved draft, methylation, or any PacBio libraries.
    examples:
    - value: '2.02'
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_absorb2
    - nuc_acid_absorb2
    rank: 9
    alias: nuc_acid_absorb2
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: float
    recommended: true
    minimum_value: 0.0001
  nuc_acid_concentration:
    name: nuc_acid_concentration
    title: nucleic acid concentration in ng/ul
    comments:
    - Units must be in ng/uL. Enter the numerical part only. Must be calculated using
      a fluorometric method. Acceptable values are greater than zero and at most 2000.
    examples:
    - value: '100'
    from_schema: https://example.com/nmdc_submission_schema
    see_also:
    - nmdc:nucleic_acid_concentration
    aliases:
    - dna_concentration
    - rna_concentration
    rank: 6
    alias: nuc_acid_concentration
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: float
    required: true
    minimum_value: 0.0001
    maximum_value: 2000
    unit:
      descriptive_name: nanograms per microliter
      ucum_code: ng/uL
  jgi_sample_volume:
    name: jgi_sample_volume
    title: JGI sample volume in ul
    comments:
    - Units must be in uL. Enter the numerical part only. Value must be greater than
      zero and at most 1000. This form accepts values < 25, but JGI may refuse to
      process them unless permission has been granted by a project manager.
    examples:
    - value: '25'
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_volume
    - rna_volume
    rank: 8
    alias: jgi_sample_volume
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: float
    required: true
    minimum_value: 0.0001
    maximum_value: 1000
    unit:
      descriptive_name: microliters
      ucum_code: uL
  cont_type:
    name: cont_type
    description: Tube or plate (96-well)
    title: JGI container type
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_cont_type
    - rna_cont_type
    rank: 11
    alias: cont_type
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: JgiContTypeEnum
    required: true
  cont_well:
    name: cont_well
    title: plate position
    comments:
    - Required when 'plate' is selected for container type.
    - Leave blank if the sample will be shipped in a tube.
    - JGI will not process samples in corner wells, so A1, A12, H1 and H12 will not
      pass validation.
    - Fill plate in column-wise format. B1-G1,A2-H2,A3-D3 (NOT A2-A11,B1-B8).
    examples:
    - value: B2
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_cont_well
    - rna_cont_well
    rank: 12
    alias: cont_well
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
    recommended: true
    pattern: ^(?!A1$|A12$|H1$|H12$)(([A-H][1-9])|([A-H]1[0-2]))$
  container_name:
    name: container_name
    title: container name
    comments:
    - Must be unique across all tubes and plates, and <20 characters.
    - All samples in a plate should have the same plate name.
    examples:
    - value: Pond_MT_041618
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_container_id
    - rna_container_id
    rank: 10
    alias: container_name
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
    required: true
    pattern: ^[-_.a-zA-Z0-9]{1,20}$
  jgi_sample_format:
    name: jgi_sample_format
    description: Solution in which the JGI sample has been suspended
    title: JGI sample format
    examples:
    - value: Water
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_sample_format
    - rna_sample_format
    rank: 13
    alias: jgi_sample_format
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: JGISampleFormatEnum
    required: true
  dnase:
    name: dnase
    title: DNase treatment
    comments:
    - Note DNase treatment is required for all RNA samples.
    examples:
    - value: 'no'
    from_schema: https://example.com/nmdc_submission_schema
    aliases:
    - dna_dnase
    - dnase_rna
    rank: 15
    alias: dnase
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: YesNoEnum
    required: true
  biosafety_mat_cat:
    name: biosafety_mat_cat
    description: JGI material category, labeled "Biosafety Material Category" on the
      form and used for internal routing rather than as a biosafety level. The permissible
      values are set by the slot's range; the isolate interfaces narrow that range
      to organism kinds.
    title: JGI Biosafety Material Category
    notes:
    - The slot name is kept to match the JGI form even though the values are categories,
      not biosafety levels.
    from_schema: https://example.com/nmdc_submission_schema
    structured_aliases:
      Biosafety Material Category:
        literal_form: Biosafety Material Category
        predicate: EXACT_SYNONYM
        notes:
        - Exact JGI form template is access-restricted; source is the public submission
          overview.
        source: https://jgi.doe.gov/user-programs/pmo-overview/project-materials-submission-overview/
    rank: 17
    alias: biosafety_mat_cat
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiMgInterface
    - JgiMgLrInterface
    - JgiMtInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: JgiIsolateMaterialKindEnum
    required: true
  reference_genome:
    name: reference_genome
    description: Genome record to use as a reference for read alignment or assembly
      scaffolding. Preferred formats are IMG taxon OID, Mycocosm/Phycocosm/ Phytozome
      ID, or NCBI assembly accession (GCF_/GCA_). Free-text.
    title: Reference Genome
    notes:
    - Local slot pending promotion to nmdc-schema; see https://github.com/microbiomedata/submission-schema/issues/447
    - JGI requires this for resequencing, gene expression, IsoSeq, and methylation
      products. submission-schema does not enforce that as a rule because analysis_type
      is identical ("isolate genome sequencing") for draft and resequencing, so a
      rule keyed on it cannot single out resequencing. Tracked in https://github.com/microbiomedata/nmdc-server/issues/2177.
    comments:
    - Provide a reference if one exists; helps JGI with assembly and QC even for de
      novo projects.
    - Required for resequencing, gene expression, IsoSeq, and methylation projects.
    examples:
    - value: '2648501807'
      description: IMG taxon OID
    - value: GCF_000195995.2
      description: NCBI RefSeq assembly accession
    - value: Mycocosm:Aspni7
      description: Mycocosm ID
    from_schema: https://example.com/nmdc_submission_schema
    structured_aliases:
      Reference Genome:
        literal_form: Reference Genome
        predicate: EXACT_SYNONYM
        notes:
        - Exact JGI form template is access-restricted; source is the public submission
          overview.
        source: https://jgi.doe.gov/user-programs/pmo-overview/project-materials-submission-overview/
    rank: 40
    alias: reference_genome
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
  sample_isolated_from:
    name: sample_isolated_from
    description: Free-text description of what the organism was isolated from.
    title: Sample Isolated From
    examples:
    - value: soil
    - value: leaf
    - value: seawater
    - value: single colony isolate
    - value: DSM 3658
    - value: Sorghum bicolor - root
    from_schema: https://example.com/nmdc_submission_schema
    structured_aliases:
      Sample Isolated From:
        literal_form: Sample Isolated From
        predicate: EXACT_SYNONYM
        notes:
        - Exact JGI form template is access-restricted; source is the public submission
          overview.
        source: https://jgi.doe.gov/user-programs/pmo-overview/project-materials-submission-overview/
    rank: 40
    alias: sample_isolated_from
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
    required: true
  collection_site_or_growth_conditions:
    name: collection_site_or_growth_conditions
    description: Free-text description of the collection site or growth conditions
      for the isolate.
    title: Collection Site or Growth Conditions
    comments:
    - Required for RNA and methylation samples.
    examples:
    - value: Field
    - value: Greenhouse
    - value: Deep well
    - value: Liquid culture from a frozen stock
    - value: JGI grown culture
    from_schema: https://example.com/nmdc_submission_schema
    structured_aliases:
      Collection Site or Growth Conditions:
        literal_form: Collection Site or Growth Conditions
        predicate: EXACT_SYNONYM
        notes:
        - Exact JGI form template is access-restricted; source is the public submission
          overview.
        source: https://jgi.doe.gov/user-programs/pmo-overview/project-materials-submission-overview/
    rank: 41
    alias: collection_site_or_growth_conditions
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
  host_taxid:
    name: host_taxid
    annotations:
      Expected_value:
        tag: Expected_value
        value: NCBI taxon identifier
    description: NCBI taxon id of the host, e.g. 9606
    title: host taxid
    comments:
    - Homo sapiens [NCBITaxon:9606] would be a reasonable has_raw_value
    from_schema: https://example.com/nmdc_submission_schema
    structured_aliases:
      Host NCBI Taxonomy ID:
        literal_form: Host NCBI Taxonomy ID
        predicate: EXACT_SYNONYM
        notes:
        - Exact JGI form template is access-restricted; source is the public submission
          overview.
        source: https://jgi.doe.gov/user-programs/pmo-overview/project-materials-submission-overview/
    rank: 48
    keywords:
    - host
    - host.
    - taxon
    slot_uri: MIXS:0000250
    alias: host_taxid
    owner: JgiIsolateGenomeInterface
    domain_of:
    - HostAssociatedInterface
    - PlantAssociatedInterface
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
  host_genus:
    name: host_genus
    description: Genus of the host organism that the sample was collected from.
    notes:
    - GOLD organism_v2 host_name "Zea mays" (n=432 records, queried 2026-04-30)
    - GOLD organism_v2 host_name "Escherichia coli K-12" (Go0084483 Escherichia phage
      JSE, queried 2026-04-30)
    comments:
    - Free-text submitter-provided host genus. For an ontology-grounded host identification,
      use `host_taxid` (MIXS:0000250) on the same class.
    examples:
    - value: Zea
    - value: Escherichia
    in_subset:
    - jgi_isolate
    from_schema: https://example.com/nmdc_submission_schema
    structured_aliases:
      Host Genus:
        literal_form: Host Genus
        predicate: EXACT_SYNONYM
        notes:
        - Exact JGI form template is access-restricted; source is the public submission
          overview.
        source: https://jgi.doe.gov/user-programs/pmo-overview/project-materials-submission-overview/
    rank: 45
    alias: host_genus
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
  host_species:
    name: host_species
    description: Species of the host organism that the sample was collected from.
    notes:
    - GOLD organism_v2 host_name "Zea mays" (n=432 records, queried 2026-04-30)
    - GOLD organism_v2 host_name "Escherichia coli K-12" (Go0084483 Escherichia phage
      JSE, queried 2026-04-30)
    comments:
    - Free-text submitter-provided host species. For an ontology-grounded host identification,
      use `host_taxid` (MIXS:0000250) on the same class.
    examples:
    - value: mays
    - value: coli
    in_subset:
    - jgi_isolate
    from_schema: https://example.com/nmdc_submission_schema
    structured_aliases:
      Host Species:
        literal_form: Host Species
        predicate: EXACT_SYNONYM
        notes:
        - Exact JGI form template is access-restricted; source is the public submission
          overview.
        source: https://jgi.doe.gov/user-programs/pmo-overview/project-materials-submission-overview/
    rank: 46
    alias: host_species
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
  host_strain:
    name: host_strain
    description: Strain of the host organism that the sample was collected from.
    notes:
    - GOLD organism_v2 host_name "Escherichia coli K-12" (Go0084483 Escherichia phage
      JSE, queried 2026-04-30)
    comments:
    - Free-text submitter-provided host strain. For an ontology-grounded host identification,
      use `host_taxid` (MIXS:0000250) on the same class.
    examples:
    - value: K-12
    in_subset:
    - jgi_isolate
    from_schema: https://example.com/nmdc_submission_schema
    structured_aliases:
      Host Strain:
        literal_form: Host Strain
        predicate: EXACT_SYNONYM
        notes:
        - Exact JGI form template is access-restricted; source is the public submission
          overview.
        source: https://jgi.doe.gov/user-programs/pmo-overview/project-materials-submission-overview/
    rank: 47
    alias: host_strain
    owner: JgiIsolateGenomeInterface
    domain_of:
    - JgiIsolateCommonMixin
    slot_group: jgi_isolate_section
    range: string
rules:
- preconditions:
    slot_conditions:
      isolate_ribosomal_seq_type:
        name: isolate_ribosomal_seq_type
        equals_string: Other
  postconditions:
    slot_conditions:
      isolate_ribosomal_seq_comments:
        name: isolate_ribosomal_seq_comments
        pattern: .+
  description: If the first ribosomal sequence type is Other, comments are required.
  title: ribosomal_seq_type_other_requires_comments
- preconditions:
    slot_conditions:
      isolate_second_ribosomal_seq_type:
        name: isolate_second_ribosomal_seq_type
        pattern: .+
  postconditions:
    slot_conditions:
      isolate_second_ribosomal_seq:
        name: isolate_second_ribosomal_seq
        pattern: .+
  description: If a second ribosomal sequence type is provided, the sequence itself
    must also be provided.
  title: second_ribosomal_seq_type_requires_sequence
- preconditions:
    slot_conditions:
      isolate_second_ribosomal_seq_type:
        name: isolate_second_ribosomal_seq_type
        equals_string: Other
  postconditions:
    slot_conditions:
      isolate_second_ribosomal_seq_comments:
        name: isolate_second_ribosomal_seq_comments
        pattern: .+
  description: If the second ribosomal sequence type is Other, comments are required.
  title: second_ribosomal_seq_type_other_requires_comments
- preconditions:
    slot_conditions:
      biosafety_mat_cat:
        name: biosafety_mat_cat
        range: MicrobialBiosafetyMaterialCategoryEnum
        value_presence: PRESENT
        equals_string_in:
        - Archaea
        - Bacteria
        - Fungi
        - Plasmid
        - Virus
        - Synthetic Construct
  postconditions:
    slot_conditions:
      estimated_size:
        name: estimated_size
        maximum_value: 5000
  description: For microbial biosafety categories (Archaea, Bacteria, Fungi, Plasmid,
    Virus, Synthetic Construct), JGI caps the estimated genome size at 5000 Mb. Eukaryotic
    categories are not capped here and remain bounded only by the estimated_size outer
    maximum of 100000 Mb.
  title: microbial_estimated_size_cap
  notes:
  - The precondition lists the six microbial categories twice, with range and equals_string_in,
    because the two validators honor different keywords inside a rule precondition.
    linkml-validate (JSON-Schema path) honors equals_string_in (it becomes a JSON-Schema
    enum) and drops range here (a range in a precondition emits an empty schema that
    matches any value). DataHarmonizer 1.7.0 honors range (enum membership) and has
    no handling for equals_string_in. Supplying both lets each validator use the keyword
    it understands. Keep both lists in sync with MicrobialBiosafetyMaterialCategoryEnum.