#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 "<a title='View this SNP on the B97 browser' href='https://jbrowse.maizegdb.org?data=B97&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the CML103 browser' href='https://jbrowse.maizegdb.org?data=CML103&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the CML228 browser' href='https://jbrowse.maizegdb.org?data=CML228&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the CML247 browser' href='https://jbrowse.maizegdb.org?data=CML247&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the CML277 browser' href='https://jbrowse.maizegdb.org?data=CML277&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the CML322 browser' href='https://jbrowse.maizegdb.org?data=CML322&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the CML333 browser' href='https://jbrowse.maizegdb.org?data=CML333&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the CML52 browser' href='https://jbrowse.maizegdb.org?data=CML52&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the CML69 browser' href='https://jbrowse.maizegdb.org?data=CML69&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the HP301 browser' href='https://jbrowse.maizegdb.org?data=HP301&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the IL14H browser' href='https://jbrowse.maizegdb.org?data=IL14H&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the Ki11 browser' href='https://jbrowse.maizegdb.org?data=Ki11&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the Ki3 browser' href='https://jbrowse.maizegdb.org?data=Ki3&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the Ky21 browser' href='https://jbrowse.maizegdb.org?data=Ky21&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the M162W browser' href='https://jbrowse.maizegdb.org?data=M162W&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the M37W browser' href='https://jbrowse.maizegdb.org?data=M37W&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the Mo18W browser' href='https://jbrowse.maizegdb.org?data=Mo18W&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the Ms71 browser' href='https://jbrowse.maizegdb.org?data=Ms71&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the NC350 browser' href='https://jbrowse.maizegdb.org?data=NC350&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the NC358 browser' href='https://jbrowse.maizegdb.org?data=NC358&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the Oh43 browser' href='https://jbrowse.maizegdb.org?data=Oh43&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the Oh7B browser' href='https://jbrowse.maizegdb.org?data=Oh7B&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the P39 browser' href='https://jbrowse.maizegdb.org?data=P39&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the Tx303 browser' href='https://jbrowse.maizegdb.org?data=Tx303&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } 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 "<a title='View this SNP on the Tzi8 browser' href='https://jbrowse.maizegdb.org?data=Tzi8&loc="+loc+"&highlight="+highlight+"&tracks=gwas_snps%2Cgene_models'>"+highlight+"</a>"; } #EVA links for GWAS Chinese SNP track evalinks = function(allele_rs, feature) { if(allele_rs != "NA") { return "<a href='https://www.ebi.ac.uk/eva/?variant&accessionID="+allele_rs+"&species=zmays_agpv4&assemblyAccession=GCA_000005005.6' target='_blank'>"+allele_rs+"</a>"; } 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] + ": <a href='https://www.ncbi.nlm.nih.gov/gene/?term=" + id_parts[1] +"' target='_blank'>"+id_parts[1]+"</a>"; } if (dbxref_arr.length > 1) { if (dbxref_arr[1].includes("miRBase")) { var id_parts = dbxref_arr[1].split(":"); html += id_parts[0] + ": <a href='http://www.mirbase.org/cgi-bin/mirna_entry.pl?acc=" + id_parts[1] + "' target='_blank'>"+id_parts[1]+"</a>"; } } 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<len; i++) { var id = dbxref[i].split(":"); html += "<a href='https://www.ncbi.nlm.nih.gov/nuccore/"+id[1]+"' target='_blank'>"+dbxref[i]+"</a><br>"; } } else { var id = dbxref.split(":"); html += "<a href='https://www.ncbi.nlm.nih.gov/nuccore/"+id[1]+"' target='_blank'>"+dbxref+"</a><br>"; } 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 "<a href='https://www.maizegdb.org/data_center/stock/"+stock+"' target='_blank'>Order the stock</a> containing "+name+" from the Stock Center."; } return "Contact <a href='https://www.maizegdb.org/person/16898' target='_blank'>Erik Vollbrecht</a> 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<len; i++) { if (img[i] != "None") { if (i > 0) { img_html += "<br>"; } img_html += "<a href='https://images.maizegdb.org/BonnMuImages2024/"+img[i]+".JPG' target='_blank'>"+stock[i]+"<br><img height='200px' src='https://images.maizegdb.org/BonnMuImages2024/"+img[i]+".JPG'/></a>"; } } } else { img_html = (img == "None") ? img : "<a href='https://images.maizegdb.org/BonnMuImages2024/"+img+".JPG' target='_blank'>"+stock+"<br><img height='230px' src='https://images.maizegdb.org/BonnMuImages2024/"+img+".JPG'/></a>"; } 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 "<a title='View this SNP on the B73v4 browser' href='https://www.maizegdb.org/gbrowse/maize_v4?q="+loc+";l=dbSNP;h_feat="+highlight+"' target='_blank'>"+v4_coords+"</a>"; } 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 "<a title='View this SNP on the B73v3 browser' href='https://www.maizegdb.org/gbrowse/maize_v3?q="+loc+";l=50SNP_dbSNP;h_feat="+highlight+"' target='_blank'>"+v3_coords+"</a>"; } #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<len; i++) { stocks_html += "<a href='https://www.maizegdb.org/data_center/stock/"+stocks[i]+"' target='_blank'>"+stocks[i]+"</a><br>"; } } else { stocks_html += "<a href='https://www.maizegdb.org/data_center/stock/"+stocks+"' target='_blank'>"+stocks+"</a>"; } 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<len; i++) { mu_html += "<a href='/?data=v5test&loc="+mu[i]+"' target='_blank'>"+mu[i]+"</a><br>"; } } else { mu_html += "<a href='/?data=v5test&loc="+mu+"' target='_blank'>"+mu+"</a>"; } 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_old = 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)"; } uniprotcolors = function(feature) { var identity = parseFloat(feature.get('Identity')); if (identity >= 0.75) { return "blue"; } else if (identity < 0.75 && identity >= 0.50) { return "lightskyblue"; } else if (identity < 0.50 && identity >= 0.25) { return "gold"; } else { return "darkorange"; } } #Uniprot names uniprotnames = function(name, feature) { var gene_id = feature.get('gene_id'); var uniprot_desc = feature.get('uniprot_desc'); var name = feature.get('name'); var desc = (gene_id == "NA") ? "("+uniprot_desc+")" : "("+gene_id+", "+uniprot_desc+")"; return "<a href='https://www.uniprot.org/uniprot/"+name+"' target='_blank'>"+name+"</a> " + desc; } #Color code for new Uniprot tracks (from Laura Tibbs-Cortes) uniprotcolors2 = function(feature) { var identity = parseFloat(feature.get('Identity')); var blue, green, red = 0; const MAX_COLOR = 255; if (identity >= 0.75) { blue = 0; red = MAX_COLOR; green = MAX_COLOR * (1 - identity) * 2; } else if (identity < 0.75 && identity >= 0.50) { red = MAX_COLOR * (0.25 + identity); blue = MAX_COLOR * (0.75 - identity) * 2; green = MAX_COLOR - 20; } else if (identity < 0.50 && identity >= 0.25) { green = MAX_COLOR; blue = MAX_COLOR * (0.5 + identity); red = 0; } else { blue = MAX_COLOR; green = MAX_COLOR * (identity * 2); red = 0; } return "rgb("+red+", "+green+", 0)"; } #TF links for Transcription Factor annotation track tflinks = function(name, feature) { return "<a href='https://grassius.org/proteininfor/Maize/"+name+"' target='_blank'>"+name+"</a>"; } #TF links for Transcription Factor annotation track tffamilylinks = function(name, feature) { return "<a href='https://grassius.org/family/Maize/"+name+"' target='_blank'>"+name+"</a>"; } #TF links for Transcription Factor annotation track tfclonelinks = function(name, feature) { if (name === "N/A") { return name; } return "<a href='https://grassius.org/tfomeinfor/"+name+"' target='_blank'>"+name+"</a>"; } #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 "<a href='https://db.systemsbiology.net/sbeams/cgi/PeptideAtlas/GetPeptide?_tab=3&atlas_build_id=564&searchWithinThis=Peptide+Name&searchForThis="+name[0]+"&action=QUERY' target='_blank'>"+feature.get('Id')+"</a>"; } #Links for PeptideAtlas peptidegenelinks = function(pangenome, feature) { var name = feature.get('Alias'); return "<a href='https://db.systemsbiology.net/sbeams/cgi/PeptideAtlas/GetProtein?action=QUERY&protein_name="+name+"_P001' target='_blank'>"+name+"_P001</a>"; } #Links for TF Grotewold2024 track TFNamelinks = function(name, feature) { if(name != "N/A") { return "<a href='https://grassius.org/proteininfor/Maize/"+name+"' target='_blank'>"+name+"</a>"; } return name; } #Links for TF Grotewold2024 track TFClonelinks = function(name, feature) { if(name != "N/A") { return "<a href='https://grassius.org/tfomeinfor/"+name+"' target='_blank'>"+name+"</a>"; } return name; } #Links for TF Grotewold2024 track TFFamilylinks = function(name, feature) { if(name != "N/A") { return "<a href='https://grassius.org/family/Maize/"+name+"' target='_blank'>"+name+"</a>"; } 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.length; i++) { console.log("i = " + i); if (i > 0) { ret_string += ", "; } switch(genome_id) { case "Zm00001eb": ret_string += "<a href='https://jbrowse.maizegdb.org?data=v5&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00018ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=B97&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00019ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=CML52&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00020ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=CML69&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00021ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=CML103&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00022ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=CML228&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00023ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=CML247&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00024ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=CML277&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00025ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=CML322&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00026ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=CML333&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00027ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=HP301&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00028ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=Il14H&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00029ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=Ki3&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00030ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=Ki11&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00031ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=Ky21&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00032ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=M37W&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00033ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=M162W&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00034ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=Mo18W&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00035ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=Ms71&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00036ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=NC350&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00037ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=NC358&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00038ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=Oh7B&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00039ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=Oh43&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00040ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=P39&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00041ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=Tx303&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; break; case "Zm00042ab": ret_string += "<a href='https://jbrowse.maizegdb.org?data=Tzi8&loc="+gene_arr[i]+"' target='_blank'>"+gene_arr[i]+"</a>"; 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); } #Marand2025 track colors marand2025colors = function (feature) { let colors = { 'L1_leaf_primordia_boundary' : '#000075', 'abaxial_bundle_sheath' : '#008080', 'adaxial_lateral_organ_primordia_boundary' : '#3cb44b', 'adaxial_leaf_primordia' : '#4363d8', 'axillary_meristem' : '#46f0f0', 'bundle_sheath' : '#800000', 'cortex' : '#808000', 'dividing_leaf_primordia' : '#808080', 'ground_meristem' : '#911eb4', 'guard_mother_cell' : '#9a6324', 'hypodermal_sclerenchyma' : '#8adfa3', 'mesophyll' : '#ace608', 'mesophyll_precursors' : '#f71504', 'phloem_SE_procambial_precursors' : '#e6beff', 'pith_parenchyma' : '#f032e6', 'procambial_meristem' : '#f58231', 'protodermal_cell' : '#fabebe', 'protophloem_SE' : '#efc8a1', 'rib_meristem_SAM' : '#ffe119', 'xylem_parenchyma' : '#dfdaa8' }; var name = feature.get('celltype'); return colors[name]; }