Starting with a VCF

Starting file should not contain multiallelic variants. The VT tool should be pre-run to decompose variants before file transformation.

Upload your VCF file and preview

Add VMC Unique Identifiers

The following VMC-standard identifiers will be added to the info field of each variant in the file.
INFO entries for each will also be added to the meta-information section of the file.

VMCGSID ##INFO=<ID=VMCGSID,Number=1,Type=String,Description="VMC Sequence identifier">
VMCGLID ##INFO=<ID=VMCGLID,Number=1,Type=String,Description="VMC Location identifier">
VMCGAID ##INFO=<ID=VMCGAID,Number=1,Type=String,Description="VMC Allele identifier">

All identifiers are generated using the VMC digest algorithm (see specification). Select the reference build and push button to add the identifiers.

Add identifiers

Download transformed VCF

Generate a JSON VMC bundle representation of your file.

Below is the JSON schema used to represent the VMC bundle object, taken from

{
   "$schema": "http://json-schema.org/schema#",
   "additionalProperties": false,
   "definitions": {
      "Allele": {
         "additionalProperties": false,
         "description": "A contiguous change at a Location.",
         "example": {
            "id": "A03bc",
            "location_id": "VMC:GL_01234",
            "state": "A"
         },
         "properties": {
            "id": {
               "$ref": "#/definitions/Id"
            },
            "location_id": {
               "$ref": "#/definitions/Id"
            },
            "state": {
               "type": "string"
            }
         },
         "type": "object",
         "xml": {
            "name": "Allele"
         }
      },
      "Completeness": {
         "description": "Declares the `completeness` of haplotype or genotype definitions.",
         "enum": [
            "UNKNOWN",
            "PARTIAL",
            "COMPLETE"
         ],
         "type": "string"
      },
      "DateTime": {
         "format": "date-time",
         "type": "string"
      },
      "Genotype": {
         "additionalProperties": false,
         "description": "A list of Haplotypes.",
         "example": {
            "completeness": "COMPLETE",
            "haplotype_ids": [
               "H1220",
               "H19f4"
            ],
            "id": "G310a"
         },
         "properties": {
            "completeness": {
               "$ref": "#/definitions/Completeness"
            },
            "haplotype_ids": {
               "items": {
                  "$ref": "#/definitions/Id"
               },
               "type": "array"
            },
            "id": {
               "$ref": "#/definitions/Id"
            }
         },
         "type": "object"
      },
      "Haplotype": {
         "additionalProperties": false,
         "description": "A set of zero or more Alleles on a single instance of a Sequence.",
         "example": {
            "allele_ids": [
               "A0123",
               "A0124"
            ],
            "completeness": "PARTIAL"
         },
         "properties": {
            "allele_ids": {
               "items": {
                  "$ref": "#/definitions/Id"
               },
               "type": "array"
            },
            "completeness": {
               "$ref": "#/definitions/Completeness"
            },
            "id": {
               "$ref": "#/definitions/Id"
            },
            "location_id": {
               "$ref": "#/definitions/Id"
            }
         },
         "type": "object"
      },
      "Id": {
         "description": "Uniquely identifies a specific instance of an object within a document.",
         "example": "X0123abcd",
         "type": "string",
         "xml": {
            "attribute": true
         }
      },
      "Identifier": {
         "additionalProperties": false,
         "description": "A <namespace,accession> pair that refers to an object.",
         "properties": {
            "accession": {
               "description": "unique key within namespace",
               "example": "NM_000551.3",
               "type": "string"
            },
            "namespace": {
               "description": "authority",
               "example": "NCBI",
               "type": "string"
            }
         },
         "required": [
            "namespace",
            "accession"
         ],
         "type": "object"
      },
      "Identifiers": {
         "additionalProperties": false,
         "description": "A list of Identifiers",
         "example": {
            "H1220": [
               {
                  "accession": "APOE-\u03b52",
                  "namespace": "whoknows"
               }
            ],
            "H19f4": [
               {
                  "accession": "APOE-\u03b51",
                  "namespace": "whoknows"
               }
            ],
            "S491f": [
               {
                  "accession": "NM_000551.2",
                  "namespace": "NCBI"
               },
               {
                  "accession": "BLAHBLAH",
                  "namespace": "ENST"
               }
            ]
         },
         "patternProperties": {
            "^.": {
               "items": {
                  "$ref": "#/definitions/Identifier"
               },
               "type": "array"
            }
         },
         "type": "object"
      },
      "Interval": {
         "additionalProperties": false,
         "description": "A <start,end> position pair, using interbase coordinates.",
         "example": {
            "end": 42,
            "start": 42
         },
         "properties": {
            "end": {
               "type": "integer"
            },
            "start": {
               "type": "integer"
            }
         },
         "required": [
            "end",
            "start"
         ],
         "type": "object"
      },
      "Location": {
         "additionalProperties": false,
         "description": "An Interval on a Sequence.",
         "example": {
            "id": "VMC:GL01234",
            "interval": {
               "end": 23,
               "start": 22
            },
            "sequence_id": "VMC:GS01234"
         },
         "properties": {
            "id": {
               "$ref": "#/definitions/Id"
            },
            "interval": {
               "$ref": "#/definitions/Interval"
            },
            "sequence_id": {
               "$ref": "#/definitions/Id"
            }
         },
         "required": [
            "interval",
            "sequence_id"
         ],
         "type": "object"
      },
      "Meta": {
         "properties": {
            "generated_at": {
               "$ref": "#/definitions/DateTime"
            },
            "version": {
               "default": "0",
               "type": "string"
            }
         },
         "type": "object"
      },
      "Sequence": {
         "type": "string"
      }
   },
   "properties": {
      "alleles": {
         "patternProperties": {
            "^.": {
               "$ref": "#/definitions/Allele"
            }
         },
         "type": "object"
      },
      "genotypes": {
         "patternProperties": {
            "^.": {
               "$ref": "#/definitions/Genotype"
            }
         },
         "type": "object"
      },
      "haplotypes": {
         "patternProperties": {
            "^.": {
               "$ref": "#/definitions/Haplotype"
            }
         },
         "type": "object"
      },
      "identifiers": {
         "$ref": "#/definitions/Identifiers"
      },
      "locations": {
         "patternProperties": {
            "^.": {
               "$ref": "#/definitions/Location"
            }
         },
         "type": "object"
      },
      "meta": {
         "$ref": "#/definitions/Meta"
      }
   },
   "required": [
      "meta",
      "locations",
      "alleles",
      "haplotypes",
      "genotypes",
      "identifiers"
   ],
   "title": "VMCBundle",
   "type": "object"
}

Generate JSON

Download VMC JSON





Starting without a VCF

Generate a VMC bundle from a HGVS string.

Result is a JSON representation of the VMC bundle described in the specification (see above for example). Code used in conversion is taken from the VMC GitHub repo file vmc-python/vmc/conversions.py found here.

**Using a single sequence ID for each entry until a base of accessions are mapped to sequence identifiers**

HGVS string:

Validate your VMC Identifier

A thorough explanation of what they will need to provide in order for this to work and a disclaimer that we already convert things for you but that we would be happy to check if your implementation is generating correct identifiers.

Identifier: