API submission schema
Below is the complete submission API schema:
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "http://example.com/example.json",
"type": "object",
"title": "HLA Submission Schema",
"description": "A schema for validating HLA submission data, including metadata, sequence information, cell information, and methodology details.",
"required": [
"submission_metadata",
"sequence_info",
"cell_info",
"methodology_info"
],
"properties": {
"submission_metadata": {
"type": "object",
"title": "Submission Metadata",
"description": "Metadata related to the submission, including INSDC entries, hold submission flag, and submitter information.",
"required": ["submitter", "local_name"],
"properties": {
"submitter": {
"type": "object",
"title": "Submitter Information",
"description": "Information about the submitter, including submitter_id and email.",
"required": ["submitter_id", "emails"],
"properties": {
"submitter_id": {
"type": "string",
"title": "Submitter ID",
"description": "Submitter ID provided at registration.",
"pattern": "^[0-9]{5}[A-Z][0-9]{2}$"
},
"emails": {
"type": "array",
"title": "Submitter Emails",
"description": "List of Email addresses of the submitter.",
"minItems": 1,
"items": {
"type": "string",
"format": "email"
}
}
}
},
"local_name": {
"type": "string",
"title": "Local Name",
"description": "Local name of a sequence before official designation"
},
"hold_submission": {
"type": "boolean",
"title": "Hold Submission",
"description": "Flag indicating whether to keep sequence confidential in the next IPD-IMGT/HLA Database release. Sequences can be held confidential for a single IPD-IMGT/HLA Database release before being made public.",
"default": false
}
},
"oneOf": [
{
"required": ["insdc_entries"],
"properties": {
"insdc_entries": {
"type": "array",
"title": "INSDC Entries",
"description": "List of Internation Nucleotide Sequence Database Collaboration (INSDC) entries associated with the submission.",
"minItems": 1,
"items": {
"type": "object",
"required": ["accession"],
"properties": {
"accession": {
"type": "string",
"description": "INSDC accession number.",
"title": "INSDC Accession",
"pattern": "^[A-Z]{1,2}[0-9]{5,6}$"
},
"insdc_database": {
"type": "string",
"enum": ["ENA", "DDBJ", "GenBank"],
"description": "INSDC Database Name",
"title": "INSDC Database"
},
"public": {
"type": "boolean",
"description": "Is sequence public in INSDC",
"title": "INSDC Public"
}
}
}
}
}
},
{
"required": ["ena_study_accession", "broker_submission"],
"properties": {
"ena_study_accession": {
"type": "string",
"title": "ENA Study Accession",
"description": "An ENA Study Accession registered through IPD-IMGT/HLA",
"pattern": "^PRJEB[0-9]{5}$"
},
"broker_submission": {
"type": "boolean",
"title": "Broker Submission",
"description": "Flag indicating agreement for IPD-IMGT/HLA to broker this sequence with ENA",
"const": true
}
}
}
]
},
"sequence_info": {
"type": "object",
"title": "Sequence Information",
"description": "Contains information about the sequence, including level, contiguous, sequence, locus, description, and sequence coordinates.",
"required": ["level", "contiguous", "sequence", "locus", "comparative_allele", "description", "sequence_coordinates"],
"properties": {
"level": {
"type": "string",
"enum": ["CDS", "GEN"],
"title": "Sequence Level",
"description": "The level of the sequence being submitted, CDS only or Genomic."
},
"contiguous": {
"type": "boolean",
"title": "Contiguous Sequence",
"description": "Indicates whether the sequence is contiguous."
},
"sequence": {
"type": "string",
"title": "Sequence",
"description": "The nucleotide sequence to be submitted."
},
"locus": {
"type": "string",
"title": "Locus",
"description": "This locus being submitted. The HLA typing for this cell (cell_info.cells.hla_typing.typing) must have \"SUBMITTED\" for one of the typings for this locus."
},
"comparative_allele": {
"type": "string",
"title": "Comparative Allele",
"description": "An existing allele in the IPD-IMGT/HLA Database for use in describing the sequence. This value must be in the sequence_info.description field. Genomic sequences must be compared to an existing allele with genomic sequence."
},
"description": {
"type": "string",
"title": "Description",
"description": "Description of the submitted sequence compared to an existing allele. This field must contain the sequence_info.comparative_allele value, but can contain additional context."
},
"sequence_coordinates": {
"type": "object",
"title": "Sequence Coordinates",
"description": "Exon/intron coordinates in the submitted sequence. These can be generated using the IPD-IMGT/HLA Sequence Feature Annotation Tool.",
"required": ["cds_coords", "feature_coords"],
"properties": {
"cds_coords": {
"type": "array",
"title": "Coding Sequence Coordinates",
"description": "The coordinates of the coding sequence in a submitted sequence.",
"minItems": 1,
"items": {
"type": "object",
"required": ["start", "length"],
"properties": {
"start": {
"type": "integer",
"title": "Start",
"description": "The starting coordinate for a coding feature."
},
"length": {
"type": "integer",
"title": "Length",
"description": "The length of a coding feature."
}
}
}
},
"feature_coords": {
"type": "array",
"title": "Feature Coordinates",
"description": "The complete UTR/exon/intron coordinates in a submitted sequence.",
"minItems": 1,
"items": {
"type": "object",
"required": ["start", "length", "number", "type"],
"properties": {
"start": {
"type": "integer",
"title": "Start",
"description": "The starting coordinate for a coding feature."
},
"length": {
"type": "integer",
"title": "Length",
"description": "The length of a coding feature."
},
"number": {
"type": "string",
"description": "The number of a UTR, exon or intron feature (1,2,3,4/5). For UTR features this should be \"5\" or \"3\"",
"title": "Feature Number"
},
"type": {
"type": "string",
"enum": ["utr", "exon", "intron"]
}
}
}
}
}
}
}
},
"cell_info": {
"type": "object",
"description": "Contains information about cells, including their ID, ancestry, available material, and other attributes.",
"required": ["cells"],
"properties": {
"cells": {
"type": "array",
"description": "A list of cell objects.",
"items": {
"type": "object",
"required": [
"cell_id",
"other_names",
"ancestry",
"sex",
"consanguineous",
"homozygous",
"comments",
"lab_of_origin",
"lab_contact",
"material_available",
"hla_typing"
],
"properties": {
"cell_id": {
"type": "string",
"description": "The unique identifier for the cell."
},
"other_names": {
"type": "string",
"description": "Other names or aliases for the cell."
},
"ancestry": {
"type": "object",
"description": "Ancestry information of the cell.",
"required": ["broad"],
"properties": {
"broad": {
"type": "string",
"anyOf": [
"Aboriginal Australian",
"Admixed",
"African",
"African - Sub-Saharan African",
"African descent",
"African descent - African American",
"African descent - Afro-Caribbean",
"African or African Descent",
"Asian",
"Asian - Central Asia",
"Asian - East Asian",
"Asian - South Asian",
"Asian - South East Asian",
"European",
"Greater Middle Eastern",
"Hispanic or Latin American",
"Native American",
"Oceanian",
"Undefined"
],
"description": "Broad ancestry category."
},
"region": {
"type": "string",
"description": "Region of ancestry.",
"anyOf": [
"Africa",
"Asia",
"Australia And New Zealand",
"Caribbean",
"Central Africa",
"Central America",
"Central Asia",
"Eastern Africa",
"Eastern Asia",
"Eastern Europe",
"Europe",
"Melanesia",
"Micronesia",
"North America",
"Northern Africa",
"Northern Europe",
"Polynesia",
"South America",
"Southern Africa",
"Southern Asia",
"Southern Europe",
"South-Eastern Asia",
"Western Africa",
"Western Asia",
"Western Europe",
"Undefined"
]
},
"country": {
"type": "string",
"description": "Country of ancestry."
},
"local_designation": {
"type": "string",
"description": "Local designation of ancestry."
}
}
},
"sex": {
"type": "string",
"description": "Sex of the cell donor.",
"anyOf": [
"Male",
"Female",
"Other"
]
},
"consanguineous": {
"type": "string",
"description": "Indicates if the cell donor is consanguineous.",
"anyOf": [
"Yes",
"No",
"Unknown"
]
},
"homozygous": {
"type": "string",
"description": "Indicates if the cell donor is homozygous.",
"anyOf": [
"Yes",
"No",
"Unknown"
]
},
"comments": {
"type": "string",
"description": "Additional comments about the cell."
},
"lab_of_origin": {
"type": "string",
"description": "The lab where the cell originated."
},
"lab_contact": {
"type": "string",
"description": "Contact information for the lab of origin."
},
"material_available": {
"type": "string",
"description": "Information about available material."
},
"cell_bank": {
"type": "string",
"description": "The cell bank where the cell is stored."
},
"ihw": {
"type": "boolean",
"description": "Indicates if the cell is part of the International Histocompatibility Workshop."
},
"hla_typing": {
"type": "array",
"description": "HLA typing information for the cell.",
"items": {
"type": "object",
"required": [
"locus",
"typing",
"described"
],
"properties": {
"locus": {
"type": "string",
"description": "The HLA locus."
},
"typing": {
"type": "string",
"description": "The HLA typing result."
},
"described": {
"type": "boolean",
"description": "Indicates the HLA typing for the sequence included in the submission."
}
}
}
},
"hla_serology": {
"type": "array",
"description": "Serology information for the cell.",
"items": {
"type": "object",
"required": [
"locus",
"serology"
],
"properties": {
"locus": {
"type": "string",
"description": "The serology locus."
},
"serology": {
"type": "string",
"description": "The serology result."
}
}
}
}
}
},
"minLength": 1
}
}
},
"methodology_info": {
"type": "object",
"description": "Contains information about the methodologies used, including sequencing and confirmation methods.",
"required": [
"sequencing_methods",
"confirmation_methods"
],
"properties": {
"sequencing_methods": {
"type": "array",
"description": "A list of sequencing methods used.",
"items": {
"type": "object",
"required": [
"method",
"source",
"minimum_requirements",
"pcr_reaction_count",
"primers"
],
"properties": {
"method": {
"type": "string",
"description": "The sequencing method used.",
"anyOf": [
"NGS Short Read",
"NGS Long Read (PacBio)",
"NGS Long Read (ONT)",
"NGS Dual Methodology",
"NGS Other",
"Non-NGS",
"WGS"
]
},
"source": {
"type": "string",
"description": "The DNA source used for sequencing.",
"anyOf": [
"PCR (Allele specific)",
"PCR (Locus specific)",
"Hybrid Capture"
]
},
"minimum_requirements": {
"type": "boolean",
"description": "Indicates if the method meets minimum requirements."
},
"pcr_reaction_count": {
"type": "integer",
"description": "The number of PCR reactions performed."
},
"primers": {
"type": "array",
"description": "A list of primers used in the sequencing method.",
"items": {
"type": "string"
}
}
}
},
"minLength": 2
},
"confirmation_methods": {
"type": "array",
"description": "A list of confirmation methods used.",
"items": {
"type": "string",
"anyOf": [
{
"const": "PCR-SSO",
"description": "PCR-SSO confirmation used."
},
{
"const": "PCR-SSP",
"description": "PCR-SSP confirmation used."
},
{
"const": "Reverse-SSOP",
"description": "Reverse-SSOP confirmation used."
},
{
"const": "SBT",
"description": "SBT confirmation used."
}
]
}
}
}
}
}
}