Converter UI
Get Requests
- There are 3 get requests with different file paths /hub.txt, /genomes.txt, trackDb.txt. The logic for each get request is explained below.
/hub.txt
Url
Logic
- This URL returns the following fields as a response: hub, shortLabel, longLabel, genomesFile, and email.
- hub – Generated from quickLoadUrl + /contents.txt. The contents.txt file contains the available genome assemblies and their titles. The first genome name in contents.txt is considered the hub name and is prefixed with "IGB" to make it unique.
- shortLabel – Same as hub. It is displayed as the Hub name when a track hub URL is added in Connected Hubs in UCSC Track Data Hubs.
- longLabel – Displays the first genome name and the count of the other available genomes. It appears as the description in UCSC Track Data Hubs.
- genomesFile – Always set to genomes.txt.
- email – Always set to igbhelper@gmail.com.
- This URL returns the following fields as a response: hub, shortLabel, longLabel, genomesFile, and email.
/genomes.txt
Url
Logic
- This URL returns the following fields: genome, trackDb, organism, defaultPos, and twoBitPath.
- genome – Generated from quickLoadUrl + /contents.txt. The genome name is validated against UCSC genome names by checking ucsc_synonyms.txt (see the section Generate UCSC Synonyms.txt). If the genome name matches a UCSC genome name, only genome and trackDb are returned. Otherwise, organism, defaultPos, and twoBitPath are also included.
- trackDb – Constructed as genome_name + /trackDb.txt.
- organism – Required only when the genome name is not a UCSC genome name. The value is fetched from species.txt in the integrated-genome-browser repository. The first two words of the genome name (separated by _) are used to search in species.txt. If a match is found, the organism name from the first column of that row is used.
- defaultPos – Fetched from quickLoadUrl + "/" + genome_name + "/genome.txt". The genome.txt file contains chromosome lengths and assembly information. defaultPos is set as <first_chromosome_name>:0-<length_of_first_chromosome>.
- twoBitPath – If a 2bit file exists at quickLoadUrl + "/" + genome_name + "/" + genome_name + ".2bit", that path is used. Otherwise, it is retrieved from annots.xml within the same directory by selecting the <file> tag whose reference attribute is true.
- This URL returns the following fields: genome, trackDb, organism, defaultPos, and twoBitPath.
trackDb.txt
Url
Logic
- This URL returns the following fields: track, bigDataUrl, shortLabel, longLabel, type, and visibility.
- The field values are generated from quickLoadUrl + "/" + genome_name + "/annots.xml".
- Consider only <file> tags where reference="none".
- track – The first word in the title attribute.
- bigDataUrl – The name field of the <file> tag if it is already a URL. Otherwise, it is constructed as quickLoadUrl + "/" + genome_name + "/" + name.
- shortLabel – The last word of the title attribute.
- longLabel – The description field of the <file> tag.
- type – Determined based on the file extension of bigDataUrl.
- genomic_extensions = {
'bigWig': ['bw', 'bigwig'],
'bigBed 12': ['bb', 'bigbed'],
'bigGenePred': ['bb'],
'bigChain': ['bigchain'],
'bigNarrowPeak': ['bb'],
'bigBarChart': ['bb'],
'bigInteract': ['bb'],
'bigPsl': ['bb'],
'bigMaf': ['bb'],
'hic': ['hic'],
'bam': ['bam', 'cram'],
'HAL': ['hal'],
'vcfTabix': ['vcf', 'vcf.gz']
} - Get the extension of bigDataUrl.
- If the extension is present in genomic_extensions and equals "bb", check whether the word before .bb matches a key in genomic_extensions. If yes, return that key (e.g., bigGenePred).
- Example: GSE63189_Catalog_of_lncRNAs_in_MCF-7cells.bigGenePred.bb → bigGenePred.
- Otherwise, if the extension matches a value in genomic_extensions, return the corresponding key.
- If the extension is just .bb, return bigBed 12.
- genomic_extensions = {
- visibility – Always set to "dense".
- This URL returns the following fields: track, bigDataUrl, shortLabel, longLabel, type, and visibility.
Head Request
Logic
- Returns headers and status_code. The status_code is determined by verifying all GET calls.
Purpose
- UCSC makes a HEAD request to validate the URL when it is added to Connected Hubs.
- Go to UCSC Track Data Hubs → Connected Hubs tab.
- When the URL is pasted, UCSC sends a HEAD request to verify the status code.
Generate Ucsc Synonyms.txt
Url
Logic
- Fetch the list of UCSC genomes from:
https://api.genome.ucsc.edu/list/ucscGenomes - Check if these genomes exist in IGB’s synonyms.txt file (path: core/synonym-lookup/src/main/resources/synonyms.txt).
- If a UCSC genome is found in synonyms.txt, add the IGB genome name (first column in synonyms.txt) and the UCSC genome name to a new synonyms.txt in the hub_facade repository (path: igb_trackhub/synonyms.txt).
- Fetch the list of UCSC genomes from:
Page History
Overview
Content Tools