<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="VariantCallFormat" />
  <url value="http://hl7.org/fhir/StructureDefinition/VCF" />
  <name value="VariantCallFormat" />
  <title value="Variant Call Format" />
  <status value="draft" />
  <purpose value="A logical model of the Variant Call Format model, specifying the format text files used in bioinformatics for storing gene sequence variations." />
  <fhirVersion value="3.0.2" />
  <kind value="logical" />
  <abstract value="false" />
  <type value="VCF" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Element" />
  <derivation value="specialization" />
  <differential>
    <element id="VCF">
      <path value="VCF" />
      <definition value="VCF (root element)" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="VCF.Header">
      <path value="VCF.Header" />
      <definition value="Container for the metainfo of the file" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.fileformat">
      <path value="VCF.Header.fileformat" />
      <definition value="The format of the file and the version number. &#xD;&#xA;Should be given in the following format: &quot;VCFv4.1&quot;" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.contig">
      <path value="VCF.Header.contig" />
      <definition value="A contiguousset of overlapping DNA segments that represent a consensus region of DNA. &#xD;&#xA;A list of IDs for the DNA sequences that appear in the reference genome." />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.contig.ID">
      <path value="VCF.Header.contig.ID" />
      <definition value="Identification tag for the contig segment" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="id" />
      </type>
    </element>
    <element id="VCF.Header.contig.Optional">
      <path value="VCF.Header.contig.Optional" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.contig.Optional.Name">
      <path value="VCF.Header.contig.Optional.Name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.contig.Optional.Value">
      <path value="VCF.Header.contig.Optional.Value" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.INFO">
      <path value="VCF.Header.INFO" />
      <definition value="The info field should be described as follows: ##INFO=&lt;ID=ID, Number=number, Type=type, Description=&quot;description&quot;&gt;" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.INFO.ID">
      <path value="VCF.Header.INFO.ID" />
      <definition value="ID given to the instance" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="id" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.INFO.Number">
      <path value="VCF.Header.INFO.Number" />
      <definition value="Number describes the number of values that can be included in the info field" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="integer" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.INFO.Type">
      <path value="VCF.Header.INFO.Type" />
      <definition value="Type describes the datatype of the field" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.INFO.Description">
      <path value="VCF.Header.INFO.Description" />
      <definition value="Description of the ID" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.INFO.Optional">
      <path value="VCF.Header.INFO.Optional" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.INFO.Optional.Name">
      <path value="VCF.Header.INFO.Optional.Name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.INFO.Optional.Value">
      <path value="VCF.Header.INFO.Optional.Value" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.FILTER">
      <path value="VCF.Header.FILTER" />
      <definition value="Filters that have been applied to the data.&#xD;&#xA;##FILTER=&lt;ID=ID, Description=&quot;description&quot;&gt;" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.FILTER.ID">
      <path value="VCF.Header.FILTER.ID" />
      <definition value="ID given to the instance" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="id" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.FILTER.Description">
      <path value="VCF.Header.FILTER.Description" />
      <definition value="Description of the ID" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.FILTER.Optional">
      <path value="VCF.Header.FILTER.Optional" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.FILTER.Optional.Name">
      <path value="VCF.Header.FILTER.Optional.Name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.FILTER.Optional.Value">
      <path value="VCF.Header.FILTER.Optional.Value" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.FORMAT">
      <path value="VCF.Header.FORMAT" />
      <definition value="Format of the file" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.FORMAT.ID">
      <path value="VCF.Header.FORMAT.ID" />
      <comment value="ID given to the instance" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="id" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.FORMAT.Number">
      <path value="VCF.Header.FORMAT.Number" />
      <definition value="Number describes the number of values that can be included in the format field" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="integer" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.FORMAT.Type">
      <path value="VCF.Header.FORMAT.Type" />
      <definition value="Type describes the datatype of the field" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.FORMAT.Description">
      <path value="VCF.Header.FORMAT.Description" />
      <comment value="Description of the ID" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.FORMAT.Optional">
      <path value="VCF.Header.FORMAT.Optional" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.FORMAT.Optional.Name">
      <path value="VCF.Header.FORMAT.Optional.Name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.FORMAT.Optional.Value">
      <path value="VCF.Header.FORMAT.Optional.Value" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.ALT">
      <path value="VCF.Header.ALT" />
      <definition value="Filters that have been applied to the data.&#xD;&#xA;##FILTER=&lt;ID=ID, Description=&quot;description&quot;&gt;" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.ALT.ID">
      <path value="VCF.Header.ALT.ID" />
      <definition value="ID given to the instance" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="id" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.ALT.Description">
      <path value="VCF.Header.ALT.Description" />
      <definition value="Description of the ID" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Header.ALT.Optional">
      <path value="VCF.Header.ALT.Optional" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.ALT.Optional.Name">
      <path value="VCF.Header.ALT.Optional.Name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.ALT.Optional.Value">
      <path value="VCF.Header.ALT.Optional.Value" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.OPTIONAL">
      <path value="VCF.Header.OPTIONAL" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.OPTIONAL.Name">
      <path value="VCF.Header.OPTIONAL.Name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.OPTIONAL.Value">
      <path value="VCF.Header.OPTIONAL.Value" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.PEDIGREE">
      <path value="VCF.Header.PEDIGREE" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.PEDIGREE.Optional">
      <path value="VCF.Header.PEDIGREE.Optional" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.PEDIGREE.Optional.Name">
      <path value="VCF.Header.PEDIGREE.Optional.Name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.PEDIGREE.Optional.Value">
      <path value="VCF.Header.PEDIGREE.Optional.Value" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.pedigreeDB">
      <path value="VCF.Header.pedigreeDB" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.pedigreeDB.url">
      <path value="VCF.Header.pedigreeDB.url" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.SAMPLE">
      <path value="VCF.Header.SAMPLE" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.SAMPLE.ID">
      <path value="VCF.Header.SAMPLE.ID" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.SAMPLE.Genomes">
      <path value="VCF.Header.SAMPLE.Genomes" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.SAMPLE.Mixture">
      <path value="VCF.Header.SAMPLE.Mixture" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.SAMPLE.Description">
      <path value="VCF.Header.SAMPLE.Description" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.SAMPLE.Optional">
      <path value="VCF.Header.SAMPLE.Optional" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
    </element>
    <element id="VCF.Header.SAMPLE.Optional.Name">
      <path value="VCF.Header.SAMPLE.Optional.Name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Header.SAMPLE.Optional.Value">
      <path value="VCF.Header.SAMPLE.Optional.Value" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Body">
      <path value="VCF.Body" />
      <definition value="Content of the file" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Body.Records">
      <path value="VCF.Body.Records" />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="false" />
    </element>
    <element id="VCF.Body.Records.CHROM">
      <path value="VCF.Body.Records.CHROM" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSetUri value="http://hl7.org/fhir/ValueSet/chromosome-human" />
      </binding>
    </element>
    <element id="VCF.Body.Records.POS">
      <path value="VCF.Body.Records.POS" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Body.Records.ID">
      <path value="VCF.Body.Records.ID" />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Body.Records.REF">
      <path value="VCF.Body.Records.REF" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Body.Records.ALT">
      <path value="VCF.Body.Records.ALT" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Body.Records.QUAL">
      <path value="VCF.Body.Records.QUAL" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Body.Records.FILTER">
      <path value="VCF.Body.Records.FILTER" />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Body.Records.INFO">
      <path value="VCF.Body.Records.INFO" />
      <min value="1" />
      <max value="*" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Body.Records.FORMAT">
      <path value="VCF.Body.Records.FORMAT" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Body.Records.SAMPLE">
      <path value="VCF.Body.Records.SAMPLE" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="BackboneElement" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="VCF.Body.Records.SAMPLE.Name">
      <path value="VCF.Body.Records.SAMPLE.Name" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
    <element id="VCF.Body.Records.SAMPLE.Value">
      <path value="VCF.Body.Records.SAMPLE.Value" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
    </element>
  </differential>
</StructureDefinition>