A python utility to programmatically make trackhub JSON files for a genome browser.
Supported browsers:
- WashU genome browser
git clone https://github.com/kundajelab/hubmaker.git
cd hubmaker
pip install -e .We create track objects for each input genomic track, and collect these in a TrackHub object:
from hubmaker import BigWigTrack, BedTrack, DynSeqTrack, TrackHub
hub = TrackHub(out_dir="./output", out_file="test_trackhub.json")
# Create bigwig tracks
metadata = {"sample": "Glutamatergic_neurons"}
bigwig_track = BigWigTrack(
url="https://example.com/glutamatergic_neurons.signal.bw",
name="Glutamatergic neurons p-value signal",
color="#FF0000",
metadata=metadata
)
# Create bed track
bed_track = BedTrack(
url="https://example.com/glutamatergic_neurons.peaks.bed",
name="Glutamatergic neurons peaks",
color="#0000FF",
metadata=metadata
)
# Create dynseq track
dynseq_track = DynSeqTrack(
url="https://example.com/glutamatergic_neurons.shaps.bw",
name="Glutamatergic neurons contribution scores",
metadata=metadata
)
# Create hub and add tracks
hub.add_track(bigwig_track)
hub.add_track(bed_track)
hub.add_track(dynseq_track)
# Generate the JSON file
hub.generate_hub()This produces the following JSON:
[
{
"type": "bigwig",
"url": "https://example.com/glutamatergic_neurons.signal.bw",
"name": "Glutamatergic neurons p-value signal",
"showOnHubLoad": false,
"options": {
"color": "#FF0000",
"aggregateMethod": "MAX"
},
"metadata": {
"sample": "Glutamatergic_neurons"
}
},
{
"type": "bed",
"url": "https://example.com/glutamatergic_neurons.peaks.bed",
"name": "Glutamatergic neurons peaks",
"showOnHubLoad": false,
"options": {
"color": "#0000FF",
"aggregateMethod": "MAX"
},
"metadata": {
"sample": "Glutamatergic_neurons"
}
},
{
"type": "dynseq",
"url": "https://example.com/glutamatergic_neurons.shaps.bw",
"name": "Glutamatergic neurons contribution scores",
"showOnHubLoad": false,
"options": {
"aggregateMethod": "MAX"
},
"metadata": {
"sample": "Glutamatergic_neurons"
}
}
]