#Includes special functions for tracks unique to the v5 browser. Functions that are used for tracks across multiple browsers should go in ../include/functions B97coords = function (B97_coords) { var coords_split = B97_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } CML103coords = function (Cml103_coords) { var coords_split = Cml103_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } CML228coords = function (Cml228_coords) { var coords_split = Cml228_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } CML247coords = function (Cml247_coords) { var coords_split = Cml247_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } CML277coords = function (Cml277_coords) { var coords_split = Cml277_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } CML322coords = function (Cml322_coords) { var coords_split = Cml322_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } CML333coords = function (Cml333_coords) { var coords_split = Cml333_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } CML52coords = function (Cml52_coords) { var coords_split = Cml52_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } CML69coords = function (Cml69_coords) { var coords_split = Cml69_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } HP301coords = function (Hp301_coords) { var coords_split = Hp301_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } IL14Hcoords = function (Il14h_coords) { var coords_split = Il14h_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } Ki11coords = function (Ki11_coords) { var coords_split = Ki11_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } Ki3coords = function (Ki3_coords) { var coords_split = Ki3_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } Ky21coords = function (Ky21_coords) { var coords_split = Ky21_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } M162Wcoords = function (M162w_coords) { var coords_split = M162w_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } M37Wcoords = function (M37w_coords) { var coords_split = M37w_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } Mo18Wcoords = function (Mo18w_coords) { var coords_split = Mo18w_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } Ms71coords = function (Ms71_coords) { var coords_split = Ms71_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } NC350coords = function (Nc350_coords) { var coords_split = Nc350_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } NC358coords = function (Nc358_coords) { var coords_split = Nc358_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } Oh43coords = function (Oh43_coords) { var coords_split = Oh43_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } Oh7Bcoords = function (Oh7b_coords) { var coords_split = Oh7b_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } P39coords = function (P39_coords) { var coords_split = P39_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } Tx303coords = function (Tx303_coords) { var coords_split = Tx303_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } Tzi8coords = function (Tzi8_coords) { var coords_split = Tzi8_coords.split(":"); var chr = coords_split[0]; var pos_split = coords_split[1].split("_"); var start = pos_split[0]; var end = pos_split[1]; var padding = 5000; var loc = chr + ":" + eval(parseInt(start) - padding) + ".." + eval(parseInt(end) + padding); var highlight = chr + ":" + start + ".." + end; return ""+highlight+""; } #EVA links for GWAS Chinese SNP track evalinks = function(allele_rs, feature) { if(allele_rs != "NA") { return ""+allele_rs+""; } return allele_rs; } #NCBI colors ncbicolors = function (feature) { var colors = { 'BestRefSeq' : 'gold', 'Gnomon' : 'mediumseagreen', 'RefSeq' : 'firebrick', 'tRNAscan-SE' : 'royalblue', 'BestRefSeq%2CGnomon' : 'yellowgreen', 'cmsearch' : 'darkorchid', 'Curated Genomic' : 'silver' }; var source = feature.get('source'); return colors[source]; } #DBxref links for the NCBI annotation track ncbidblinks = function(dbxref, feature) { var html = ""; var dbxref_arr = []; if (typeof dbxref == "string") { dbxref_arr[0] = dbxref; } else { dbxref_arr = dbxref; } if (dbxref_arr[0].includes("GeneID")) { var id_parts = dbxref_arr[0].split(":"); html += id_parts[0] + ": "+id_parts[1]+""; } if (dbxref_arr.length > 1) { if (dbxref_arr[1].includes("miRBase")) { var id_parts = dbxref_arr[1].split(":"); html += id_parts[0] + ": "+id_parts[1]+""; } } if (html == "") { console.log("No dbxref links set"); html = dbxref; } return html; } #NCBI Gnomon gene model colors gnomoncolors = function (feature) { var colors = { 'Chainer' : 'crimson', 'Gnomon' : 'mediumseagreen', 'Chainer_GapFilled' : 'orange', 'FullAbInitio' : 'forestgreen', 'PartAbInitio' : 'teal', }; var source = feature.get('source'); return colors[source]; } #Links for dbxref in AcDs track acdslinks = function(pangenome, feature) { var dbxref = feature.get('dbxref'); var html = ""; if (typeof dbxref == "object") { for (i=0, len=dbxref.length; i"+dbxref[i]+"
"; } } else { var id = dbxref.split(":"); html += ""+dbxref+"
"; } return html; } #Color code for single/double placement features in AcDs track acdscolors = function(feature) { var placement = feature.get('placement'); if (placement == "Single") { return "seagreen"; } return "royalblue"; } #Links from Available From in Ac/Ds track availfromlinks = function(name, feature) { var avail = feature.get('Available_from'); var name = feature.get('Name'); var stock = feature.get('Stock'); if (avail == "Stock_Center") { return "Order the stock containing "+name+" from the Stock Center."; } return "Contact Erik Vollbrecht to order the stock containing "+name+"."; } #BonnMu Links bonnmustocklinks = function(name, feature) { var img = feature.get('img'); var name = feature.get('Name'); var stock = feature.get('Stock'); var img_html = ""; if (typeof img == "object") { for (i=0, len=img.length; i 0) { img_html += "
"; } img_html += ""+stock[i]+"
"; } } } else { img_html = (img == "None") ? img : ""+stock+"
"; } return img_html; } dbSNPv4links = function (v4_coords, feature) { var coords_split = v4_coords.split(":"); var name = feature.get('name'); var chr = coords_split[0]; var pos = coords_split[1]; var padding = 50; var start = eval(parseInt(pos) - padding); var end = eval(parseInt(pos) + padding); var loc = chr + ":" + start + ".." + end; var highlight = name + "%40yellow"; return ""+v4_coords+""; } SNP50v3links = function (v3_coords, feature) { var coords_split = v3_coords.split(":"); var name = feature.get('name'); var chr = coords_split[0]; var pos = coords_split[1]; var padding = 50; var start = eval(parseInt(pos) - padding); var end = eval(parseInt(pos) + padding); var loc = chr + ":" + start + ".." + end; var highlight = name + "%40yellow"; return ""+v3_coords+""; } #SNP50 track color code snp50colors = function(feature) { var placement = feature.get('locus_id'); if (placement == "null") { return "black"; } return "darkviolet"; } #Links for Stocks in UniformMu track ufmustocklinks = function(pangenome, feature) { var stocks = feature.get('stock'); var stocks_html = ""; if (typeof stocks == "object") { for (i=0, len=stocks.length; i"+stocks[i]+"
"; } } else { stocks_html += ""+stocks+""; } return stocks_html; } #Links for other Mu positions in UniformMu track ufmulinks = function(pangenome, feature) { var mu = feature.get('mu_pos'); var mu_html = ""; if (typeof mu == "object") { for (i=0, len=mu.length; i"+mu[i]+"
"; } } else { mu_html += ""+mu+""; } return mu_html; } #Sirevirus colors sireviruscolors = function(feature) { var stars = feature.get('Type'); var colors = { 'D12mer' : 'crimson', 'D8mer' : 'darkorange', 'envelope-like' : 'saddlebrown', 'Intergrase_core_domain' : 'indigo', 'long_terminal_repeat' : 'gray', 'P12mer' : 'royalblue', 'P8mer' : 'forestgreen', 'RT_core_domain' : 'violet', 'Sirevirus' : 'goldenrod', }; return colors[stars]; } #alphafold colors alphafoldcolors = function(feature) { var score = feature.get('alphafold_score'); if (!score) { score = feature.get('Esm_score'); } if (score > 90) { return "blue"; } else if (score > 70) { return "lightskyblue"; } else if (score > 50) { return "gold"; } return "darkorange"; } #Tu2022 ARF colors tu2022colors = function(feature) { var type = feature.get('Type'); var colors = { 'region_rep1' : '#8B0013', 'summit_rep1' : '#8B0013', 'region_rep2' : '#138B00', 'summit_rep2' : '#138B00' }; return colors[type]; } #Promoter colors promotercolors = function(feature) { var type = feature.get('Type'); var colors = { 'promoter50' : 'crimson', 'promoter100' : 'darkorange', 'promoter250' : 'gold', 'promoter500' : 'seagreen', 'promoter1000' : 'royalblue', 'nucleotide_motif' : 'indigo' }; return colors[type]; } #Li 2022 SNP colors li2022traitcolors = function (feature) { var trait_colors = { 'anthesis-to-silking interval': 'mediumorchid', 'cob weight': '#DDB500', 'days to anthesis': 'mediumpurple', 'days to silking': 'mediumorchid', 'ear height': '#DDB500', 'ear length': '#DDB500', 'ear weight': '#DDB500', 'ear diameter': '#DDB500', 'grain yield per plant': 'peru', 'hundred kernel volume': 'goldenrod', 'hundred kernel weight': 'goldenrod', 'kernel ratio': 'goldenrod', 'kernel row number': 'goldenrod', 'kernel weight per ear': 'goldenrod', 'kernel number per row': 'goldenrod', 'kernel width': 'goldenrod', 'kernel length': 'goldenrod', 'plant height': 'darkgreen', 'reduced relative ear height': '#DDB500', 'tassel branch number': 'rebeccapurple', 'tassel length': 'rebeccapurple' }; var name = feature.get('trait'); return trait_colors[name]; } #Color code for TE-like methylation tracks uniprotcolors = function(feature) { var identity = parseFloat(feature.get('Identity')); var green, red = 0; const MAX_COLOR = 235; if (identity >= 0.75) { green = MAX_COLOR; red = MAX_COLOR * (1 - identity) * 2; } else if (identity < 0.75 && identity >= 0.50) { green = MAX_COLOR; red = MAX_COLOR * (1 - identity) * 2; } else if (identity < 0.50 && identity >= 0.25) { red = MAX_COLOR; green = MAX_COLOR * (identity * 2); } else { red = MAX_COLOR; green = MAX_COLOR * (identity * 2); } return "rgb("+red+", "+green+", 0)"; } #TF links for Transcription Factor annotation track tflinks = function(name, feature) { return ""+name+""; } #TF links for Transcription Factor annotation track tffamilylinks = function(name, feature) { return ""+name+""; } #TF links for Transcription Factor annotation track tfclonelinks = function(name, feature) { if (name === "N/A") { return name; } return ""+name+""; } #Color code features in PeptideAtlas track peptideatlascolors = function(feature) { var ngenloc = feature.get('NGenLoc'); if (parseInt(ngenloc) > 1) { return "indigo"; } return "crimson"; } #Links for PeptideAtlas peptidelinks = function(pangenome, feature) { var name = feature.get('Id').split("-"); return ""+feature.get('Id')+""; } #Links for PeptideAtlas peptidegenelinks = function(pangenome, feature) { var name = feature.get('Alias'); return ""+name+"_P001"; } #Links for TF Grotewold2024 track TFNamelinks = function(name, feature) { if(name != "N/A") { return ""+name+""; } return name; } #Links for TF Grotewold2024 track TFClonelinks = function(name, feature) { if(name != "N/A") { return ""+name+""; } return name; } #Links for TF Grotewold2024 track TFFamilylinks = function(name, feature) { if(name != "N/A") { return ""+name+""; } return name; } #Links for TF Grotewold2024 track TFgenelinks = function(name, feature) { console.log("TFgenelinks; name = " + name); var ret_string = ""; var gene_arr = new Array(); if (typeof(name) === 'string') { gene_arr[0] = name; } else { gene_arr = name; } var genome_id = gene_arr[0].substring(0,9); console.log("TFgenelinks; genome_id = " + genome_id); console.log("gene_arr length = " + gene_arr.length); for (let i=0; i"+gene_arr[i]+""; break; case "Zm00018ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00019ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00020ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00021ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00022ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00023ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00024ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00025ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00026ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00027ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00028ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00029ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00030ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00031ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00032ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00033ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00034ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00035ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00036ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00037ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00038ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00039ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00040ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00041ab": ret_string += ""+gene_arr[i]+""; break; case "Zm00042ab": ret_string += ""+gene_arr[i]+""; break; default: ret_string += gene_arr[i]; break; } } return ret_string; } #Colors for the reelgene tracks reelgenecolors = function(feature) { var score = parseFloat(feature.get('score')); var type = feature.get('Type'); console.log("colorcode3 type: " + type + "; score: " + score); if (type == "PhyloP") { if (score < -1) { return "darkorange"; } if (score < 1) { return "gold"; } if (score < 3) { return "lightskyblue"; } if (score > 3) { return "blue"; } } else { if (score < 0.2) { return "darkorange"; } else if (score < 0.5) { return "gold"; } else if (score < 0.8) { return "lightskyblue"; } else { return "blue"; } } } reelgenedescription = function(feature) { var score = parseFloat(feature.get('average')); return "Avg. score: " + score.toFixed(3); } repcolors = function(feature) { var name = feature.get('Name'); if (name.includes("Rep1")) { return "royalblue"; } return "crimson"; } peakheight = function(feature) { var sig_val = feature.get('Signalvalue'); var min_height = 1; var sig_val_rounded = Math.round(sig_val * 10) / 10; var sig_val_weight = 10; return min_height + (sig_val_rounded * sig_val_weight); }