Managing Track Hubs with the Registry - An Overview

A single track data hub is formed by a set of files (i.e. hub.txt, genomes.txt) describing the hub structure and content and one or more directories with genome assembly specific data (bigBed, bigWig etc files) and configuration referred to as track data bases. The configuration of a track data base is described in a file, usually named trackDB.txt, defining the location of all the binary indexed track data for each assembly and directives controlling the display of these data on a genome browser.

The Registry is designed to provide users with the ability to discover track hubs of interest and easily load them into a genome browser. From this point of view, the purpose of the Registry is not to store a complete representation of a track hub, but to introduce a convenient representation with metadata to support search and that can be easily sent to (due to its limited size) and parsed by a genome browser, thus overcoming some of the challenges involved when parsing track data hubs.

A user is generally interested in displaying data for a particular assembly of a particular species, and a browser just needs to do that, without having to deal with all possible assemblies managed by a given hub. Within this perspective, the unit of information modelled by the Registry is given by track database (trackDb) settings used in a Track Hub's trackDb.txt file, which specifies display and configuration options for data pertaining to a certain genome assembly. This is enough to allow the browser to organise the display, as the data referred to in the trackDb settings reside at the original hub URL or somewhere in another remote location. Therefore, this is the only information stored in Registry.

The Registry stores assembly track database settings in a JSON document, with metadata attributes and a simple tree-based structure facilitating parsing with complex track organisations. Some of the document attributes identify the hub the trackDb belongs to, so that a track data hub is implicitly represented by the set of trackDb documents referring to it.

The following section presents an interactive diagram of the trackDb JSON schema against which all trackDbs submitted to Registry are validated (read about the submission process to know more). To access the original schema document, click here.

Track database schema


{
"$schema":
string"http://json-schema.org/draft-04/schema#"
"title":
string"TrackHub Schema v.1.0"
"description":
string"The schema which describes valid TrackHub track database JSON documents."
"type":
string"object"
"properties":{
"public":{
"type":
string"boolean"
"description":
string"Whether the trackDb is to made available for search or not"
}
"type":{
"type":
string"string"
"description":
string"The trackdb generic main data type."
"enum":[
0
:
string"genomics"
1
:
string"epigenomics"
2
:
string"transcriptomics"
3
:
string"proteomics"
]
}
"hub":{
"type":
string"object"
"description":
string"Information about the hub the track database belongs to"
"properties":{
"name":{
"type":
string"string"
}
"shortLabel":{
"type":
string"string"
}
"longLabel":{
"type":
string"string"
}
"url":{
"type":
string"string"
"format":
string"uri"
}
"assembly":{
"type":
string"number"
}
}
"additionalProperties":
booltrue
"required":[
0
:
string"name"
1
:
string"shortLabel"
2
:
string"longLabel"
]
}
"description":{
"type":
string"string"
}
"version":{
"type":
string"string"
"description":
string"The version of the JSON track database document."
"enum":[
0
:
string"v1.0"
]
}
"source":{
"type":
string"object"
"description":
string"Describes the original trackDb file, in case the JSON has been created from it."
"properties":{
"url":{
"type":
string"string"
"format":
string"uri"
}
"checksum":{
"type":
string"string"
}
}
"required":[
0
:
string"url"
]
}
"species":{
"type":
string"object"
"title":
string"The organism/species of this collection of tracks."
"properties":{
"tax_id":{
"oneOf":[
0:{
"type":
string"integer"
"minimum":
int0
"exclusiveMinimum":
booltrue
}
1:{
"type":
string"string"
"pattern":
string"^[1-9][0-9]+?$"
}
]
}
"scientific_name":{
"type":
string"string"
}
"common_name":{
"type":
string"string"
}
}
"additionalProperties":
boolfalse
"required":[
0
:
string"tax_id"
1
:
string"scientific_name"
]
}
"assembly":{
"type":
string"object"
"title":
string"Assembly"
"description":
string"Information which identifies the assembly referred to by this set of tracks."
"properties":{
"accession":{
"type":
string"string"
"title":
string"NCBI Assembly accession ID"
"description":
string"The NCBI assembly identifier (accession and version)"
"pattern":
string"^G(CA|CF)_[0-9]+.[0-9]+$|^NA$"
}
"name":{
"type":
string"string"
}
"long_name":{
"type":
string"string"
}
"synonyms":{
"type":
string"string"
}
}
"additionalProperties":
boolfalse
"required":[
0
:
string"accession"
1
:
string"name"
]
}
"data":{
"type":
string"array"
"title":
string"Track metadata"
"description":
string"Contains metadata for a collection of tracks defined in the TrackHub. Each track metadata has an id attribute which is used as a property key to fetch the corresponding configuration in the configuration object."
"items":{
"$ref":
string"#/definitions/track_metadata"
}
"minItems":
int1
"uniqueItems":
booltrue
}
"configuration":{
"type":
string"object"
"title":
string"Track configuration"
"description":
string"Contains display and configuration properties for the tracks in the data hub."
"patternProperties":{
"^[a-zA-z][a-zA-Z0-9_-]+$":{
"$ref":
string"#/definitions/track_configuration"
}
}
"additionalProperties":
booltrue
}
}
"additionalProperties":
booltrue
"required":[
0
:
string"version"
1
:
string"hub"
2
:
string"species"
3
:
string"assembly"
4
:
string"configuration"
]
"definitions":{
"track_metadata":{
"type":
string"object"
"title":
string"Track metadata definition."
"patternProperties":{
"^[a-zA-z][a-zA-Z0-9_-]+$":{
"type":
string"string"
}
}
"additionalProperties":
booltrue
}
"track_configuration":{
"title":
string"Track display and configuration properties."
"type":
string"object"
"description":
string"Contains display and configuration properties for all track types."
"properties":{
"members":{
"type":
string"object"
"patternProperties":{
"^[a-zA-z][a-zA-Z0-9_-]*?$":{
"$ref":
string"#/definitions/track_configuration"
}
}
}
}
"additionalProperties":
booltrue
"patternProperties":{
"^[a-zA-z][a-zA-Z0-9_-]*?$":{
"oneOf":[
0:{
"type":
string"string"
}
1:{
"type":
string"number"
}
2:{
"type":
string"array"
"items":{
"oneOf":[
0:{
"type":
string"string"
}
1:{
"type":
string"number"
}
]
}
}
3:{
"type":
string"object"
}
]
}
}
}
}
}

Status:

API v, UI v0.9.1


Copyright © EMBL-EBI 2025.

This website uses cookies. By continuing to browse this site, you are agreeing to the use of our site cookies. We also collect some limited personal information when you browse the site. You can find the details in our Privacy Policy.