#gene_center links for official gene model tracks genelinks = function(name, feature) { if(feature.get('type') == 'gene') { return ""+feature.get('id')+""; } else if(feature.get('type') == 'teM') { var nameArr = name.split("_"); return ""+nameArr[0]+""; } else if(feature.get('type') == 'mRNA') { return name.replace("transcript:", ""); } return name; } genelinks2 = function(name, feature) { if(feature.get('type') == 'gene' || feature.get('type') == 'teM') { return ""+name+""; } else if(feature.get('type') == 'mRNA') { return name.replace("transcript:", ""); } return name; } #gene_center links for official gene model tracks genecolors = function(feature) { var gene_colors = { 'Zm00001eb': 'goldenrod', 'Zm00018ab': '#4169E1', 'Zm00031ab': '#4169E1', 'Zm00033ab': '#4169E1', 'Zm00035ab': '#4169E1', 'Zm00039ab': '#4169E1', 'Zm00038ab': '#4169E1', 'Zm00021ab': '#32CD32', 'Zm00022ab': '#32CD32', 'Zm00023ab': '#32CD32', 'Zm00024ab': '#32CD32', 'Zm00025ab': '#32CD32', 'Zm00026ab': '#32CD32', 'Zm00019ab': '#32CD32', 'Zm00020ab': '#32CD32', 'Zm00030ab': '#32CD32', 'Zm00029ab': '#32CD32', 'Zm00036ab': '#32CD32', 'Zm00037ab': '#32CD32', 'Zm00042ab': '#32CD32', 'Zm00027ab': '#DA70D6', 'Zm00028ab': '#FF4500', 'Zm00040ab': '#FF4500', 'Zm00032ab': '#787878', 'Zm00034ab': '#787878', 'Zm00041ab': '#787878', 'Zd00001aa': 'saddlebrown', 'Zd00003aa': 'saddlebrown', 'Zh00001aa': 'peru', 'Zn00001aa': 'saddlebrown', 'Zv00001aa': 'peru', 'Zv00002aa': 'peru', 'Zx00002aa': 'peru', 'Zx00003aa': 'peru', 'Av00001aa': 'yellowgreen', 'Zm00106aa': '#32CD32', 'Zm00107aa': '#32CD32', 'Zm00108aa': '#32CD32', 'Zm00112aa': 'indigo', 'Zm00109aa': 'indigo', 'Zm00110aa': '#8800FF', 'Zm00111aa': '#8800FF' }; var feat = feature.get('Id'); var name; if (feat == null) { return; } else { name = feature.get('Id').substring(0,9); } return gene_colors[name]; } #gene subparts, non_coding gff does not have CDS so set it as exon genesubparts = function(feature) { return "CDS"; } mrnalabels = function(name, feature) { if(feature.get('type') == 'mRNA') { return name.replace("transcript:", ""); } return name; } #displays table of QI (Quality Index) scores that comes with the official gene model GFFs qitable = function(_qi) { var qi_split = _qi.split("|"); var qi_table = [ "Length of the 5' UTR: ", "% of splice sites confirmed by an EST/mRNA-seq alignment: ", "% of exons that match an EST/mRNA-seq alignment: ", "% of exons that overlap EST/mRNA-seq or protein-alignments: ", "% of splice sites confirmed by ab initio gene prediction: ", "% of exons overlaping an ab initio gene prediction: ", "Number of exons in the mRNA: ", "Length of the 3' UTR: ", "Length of the protein sequence produced by the mRNA: " ]; var ret_html = ""; var i, len; for (i=0, len = qi_split.length; i < len; i++) { if (i >= 1 && i <= 5) { qi_split[i] = (qi_split[i] == -1) ? "N/A" : eval(parseFloat(qi_split[i]) * 100) + "%"; } ret_html += ""; } ret_html += "
"+qi_table[i]+""+qi_split[i]+"
"; return ret_html; } #create v5 links for the non-B73 SNP Tracks v5coords = function(B73_v5_coords) { var coords_split = B73_v5_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+""; } #Links for golden gate genetic_markers track goldenlinks = function(pangenome, feature) { var genomes = [ "B97", "CML103", "CML228", "CML247", "CML277", "CML322", "CML333", "CML52", "CML69", "HP301", "IL14H", "Ki11", "Ki3", "Ky21", "M162W", "M37W", "Ms71", "Mo18W", "NC350", "NC358", "Oh43", "Oh7B", "P39", "Tx303", "Tzi8" ]; var feature_name = feature.get('name'); var menu_html = "'; /*var jquery_selector = ""; #jp note: select2 is difficult to work with here*/ var i, len; for (i=0, len=genomes.length; i"+genomes[i]+""; } menu_html += ""; return "View " + feature_name + " on the " + menu_html + " browser. " + button_html; } #Links for pangenome markers track panlinks = function(pangenome, feature) { var genomes = [ "B73v5", "B97", "CML103", "CML228", "CML247", "CML277", "CML322", "CML333", "CML52", "CML69", "HP301", "IL14H", "Ki11", "Ki3", "Ky21", "M162W", "M37W", "Ms71", "Mo18W", "NC350", "NC358", "Oh43", "Oh7B", "P39", "Tx303", "Tzi8" ]; var menu_html = ""; var markers = feature.get('alias'); var marker_menu_html = ""; if (typeof markers == "object") { marker_menu_html = ""; button_onclick += "'+document.getElementById('markers').value, '_blank');\""; } else { marker_menu_html = markers; button_onclick += markers + "', '_blank');\""; } var button_html = '?GO!!!'; return "View " + marker_menu_html + " on the " + menu_html + " browser " + button_html; } traitcolors = function (feature) { var trait_colors = { '100_Kernel_weight': '#DDB500', 'Anthesis-silking_interval': 'mediumorchid', 'Average_internode_length_(above_ear)': '#89BC21', 'Average_internode_length_(below_ear)': '#89BC21', 'Average_internode_length_(whole_plant)': '#89BC21', 'Boxcox-transformed_leaf_angle': 'coral', 'Chlorophyll_A': 'forestgreen', 'Chlorophyll_B': 'forestgreen', 'Cob_diameter': '#DDB500', 'Days_to_anthesis': 'mediumpurple', 'Days_to_silk': 'mediumorchid', 'Ear_height': '#DDB500', 'Ear_row_number': '#DDB500', 'Fructose': 'deepskyblue', 'Fumarate': 'blueviolet', 'Glucose': 'deepskyblue', 'Glutamate': 'blueviolet', 'Height_above_ear': '#DDB500', 'Height_per_day_(until_flowering)': 'teal', 'Leaf_length': 'darkgreen', 'Leaf_width': 'darkgreen', 'Malate': 'blueviolet', 'Nitrate': 'blueviolet', 'Nodes_above_ear': '#32BC3A', 'Nodes_per_plant': '#32BC3A', 'Nodes_to_ear': '#32BC3A', 'Northern_Leaf_Blight': 'orangered', 'PCA_of_metabolites:_PC1': 'mediumslateblue', 'PCA_of_metabolites:_PC2': 'mediumslateblue', 'Photoperiod_growing-degree_days_to_anthesis': 'mediumpurple', 'Photoperiod_Growing-degree_days_to_silk': 'mediumorchid', 'Plant_height': 'teal', 'Protein': '#4E8DFF', 'Ratio_of_ear_height_to_total_height': '#DDB500', 'Southern_leaf_blight': 'orangered', 'Stalk_strength': 'darksalmon', 'Starch': 'deepskyblue', 'Sucrose': 'deepskyblue', 'Tassel_branch_number': 'rebeccapurple', 'Tassel_length': 'rebeccapurple', 'Total_amino_acids': '#4E8DFF' }; var name = feature.get('name'); return trait_colors[name]; } chinatraitcolors = function (feature) { var trait_colors = { 'axis' : 'yellowgreen', 'dried stalk' : 'yellowgreen', 'husk' : 'yellowgreen', 'shoot' : 'yellowgreen', 'stem' : 'yellowgreen', 'cob' : 'gold', 'ear' : 'gold', 'kernel' : 'goldenrod', 'seed' : 'goldenrod', 'seedling' : 'goldenrod', 'grain' : 'goldenrod', 'bract' : 'indigo', 'tassel' : 'indigo', 'silk' : 'indigo', 'flower' : 'darkorange', 'fruit' : 'darkorange', 'root' : 'saddlebrown', 'leaf' : 'green', 'plant' : 'green', 'NA' : 'gray' }; var tissue = feature.get('tissue').toLowerCase(); return trait_colors[tissue]; } #Links for core bin markers track cbmlinks = function(pangenome, feature) { var markers = feature.get('name'); var genomes = [ "B73v5", "B97", "CML103", "CML228", "CML247", "CML277", "CML322", "CML333", "CML52", "CML69", "HP301", "IL14H", "Ki11", "Ki3", "Ky21", "M162W", "M37W", "Ms71", "Mo18W", "NC350", "NC358", "Oh43", "Oh7B", "P39", "Tx303", "Tzi8" ]; var menu_html = ""; var marker_menu_html = markers; var button_html = '?GO!!!'; return "View " + marker_menu_html + " on the " + menu_html + " browser " + button_html; } #Link RS IDs to EVA evalinks = function(allele_rs, feature) { if(allele_rs != "NA") { return ""+allele_rs+""; } return allele_rs; } #Methylome UMR color intensity; formula for color intensity = 255 * (score / 25) umrcolors = function (feature) { var score = feature.get('percent_methyl'); if (score > 20) return "crimson"; if (score > 15) return "orangered"; if (score > 10) return "darkgoldenrod"; if (score > 5) return "forestgreen"; return "royalblue"; } #Methylome UMR color intensity; formula for color intensity = 255 * (score / 25) umrcolorsold = function (feature) { var score = Math.round(255 * (Math.round(feature.get('percent_methyl')) / 25)); var min_transparency = 0.33; var new_score = Math.round(feature.get('percent_methyl')) / 25; new_score = (new_score < min_transparency) ? min_transparency : new_score; var color = "#" + ("0" + score.toString(16)).substr(-2) + "FF00"; var new_color = "rgba(0,0,255,"+new_score+")"; return new_color; } #TE colors tecolors = function (feature) { var te_colors = { 'knob' : 'saddlebrown', 'CACTA_TIR_transposon' : 'orangered', 'Copia_LTR_retrotransposon' : 'seagreen', 'Gypsy_LTR_retrotransposon' : 'seagreen', 'helitron' : 'darkgoldenrod', 'hAT_TIR_transposon' : 'orangered', 'L1_LINE_retrotransposon' : 'royalblue', 'LINE_element' : 'royalblue', 'long_terminal_repeat' : 'gray', 'LTR_retrotransposon' : 'seagreen', 'Mutator_TIR_transposon' : 'orangered', 'PIF_Harbinger_TIR_transposon' : 'orangered', 'rDNA_intergenic_spacer_element' : 'crimson', 'repeat_region' : 'gray', 'RTE_LINE_retrotransposon' : 'royalblue', 'subtelomere' : 'darkpurple', 'target_site_duplication' : 'darkgray', 'Tc1_Mariner_TIR_transposon' : 'orangered' }; var type = feature.get('type'); return te_colors[type]; } gapcolors = function (feature) { var gap_colors = { 'sequencing_gap': '#CC1121', '100N': '#44AA21', '13N': '#6611FF' }; var gap_type = feature.get('gap_type'); return gap_colors[gap_type]; } knobcolors = function (feature) { var knob_colors = { 'AF013103.1': 'gray', 'cenH3': 'orange', 'CL569186.1': 'silver', 'knob180': 'saddlebrown', 'TR-1': '#099966' }; var feature_type = feature.get('repeat_type'); return knob_colors[feature_type]; } svcolors = function (feature) { var sv_colors = { 'DUP': 'gray', 'DEL': 'firebrick', 'INS': 'forestgreen', 'CENT': 'orange', 'INV': 'blueviolet', 'KNOB180': 'saddlebrown', 'TR1': '#099966' }; var feature_type = feature.get('feature_type'); return sv_colors[feature_type]; } #Dooner Ac/Ds color-code doonercolors = function(feature) { var feature_type = ""; var num_hits = feature.get('num_hits'); var hit_type = feature.get('type'); feature_type = (hit_type[1] == "perfect" || hit_type[1] == "strong") ? num_hits+"_"+hit_type[1] : num_hits; var colors = { 'multi' : 'crimson', 'single_strong' : 'darkgoldenrod', 'single_perfect' : 'forestgreen' }; return colors[feature_type]; } #Link GO golinks = function(go_term, feature) { var ret = ""; if (typeof go_term == "object") { var i; for (i=0;i"+go_term[i]+"
"; } } else { ret = ""+go_term+""; } return ret; } #GO Term descriptions godescriptions = function(go_descriptions, feature) { var ret = ""; var go_term = feature.get('go_id'); if (typeof go_descriptions == "object") { var i; for (i=0;i"+go_term[i]+": " + go_descriptions[i] + "
"; } } else { ret = ""+go_term+"" + go_descriptions; } return ret; } #Uniprot links uniprotlinks = function(uniprot, feature) { var ret = ""; if (uniprot.includes(";")) { uniprot = uniprot.split("; "); } if (typeof uniprot == "object") { var i; for (i=0;i"+uniprot[i]+"
"; } } else { ret = ""+uniprot+""; } return ret; } #colors for uniprot tracks 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 ""+name+" " + desc; } #Hyperlink GO terms in text LinkGO = function(text, feature) { const regex = /(GO:[0-9]*)/; if (typeof(text) == "string") { if (!text.includes("href")) { text = text.replace(regex, "$1"); } } else { if (!text[0].includes("href")) { for (var i=0; i$1"); } } } return text; } #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]; } #Color code for TE-like methylation tracks gent2022methylcolors = function(feature) { var ratio = parseFloat(feature.get('Chg_methylation_ratio')); var blue, red = 0; const constant = 122; var min = 0.4; var max = 0.9; var ratio_normalized = (ratio - min) * (ratio + max); if (ratio_normalized < 0.5) { blue = 255 - (Math.abs(ratio_normalized) * 255); blue = (blue > 255) ? 255 : blue; red = 255 - blue; } else { red = Math.abs(ratio_normalized) * 255; red = (red > 255) ? 255 : red; blue = 255 - red; } return "rgb("+red+", 0, "+blue+")"; } #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)"; } #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]; } #gene_center links for official gene model tracks liftoffcolors = function(feature) { var gene_colors = { 'Zm00001e': 'goldenrod', 'Zm00018a': '#4169E1', 'Zm00031a': '#4169E1', 'Zm00033a': '#4169E1', 'Zm00035a': '#4169E1', 'Zm00039a': '#4169E1', 'Zm00038a': '#4169E1', 'Zm00021a': '#32CD32', 'Zm00022a': '#32CD32', 'Zm00023a': '#32CD32', 'Zm00024a': '#32CD32', 'Zm00025a': '#32CD32', 'Zm00026a': '#32CD32', 'Zm00019a': '#32CD32', 'Zm00020a': '#32CD32', 'Zm00030a': '#32CD32', 'Zm00029a': '#32CD32', 'Zm00036a': '#32CD32', 'Zm00037a': '#32CD32', 'Zm00042a': '#32CD32', 'Zm00027a': '#DA70D6', 'Zm00028a': '#FF4500', 'Zm00040a': '#FF4500', 'Zm00032a': '#787878', 'Zm00034a': '#787878', 'Zm00041a': '#787878', 'Zd00001a': 'saddlebrown', 'Zd00003a': 'saddlebrown', 'Zh00001a': 'peru', 'Zn00001a': 'saddlebrown', 'Zv00001a': 'peru', 'Zv00002a': 'peru', 'Zx00002a': 'peru', 'Zx00003a': 'peru', 'Av00001a': 'yellowgreen', 'Zm00067a': 'orchid', 'Zm00106a': '#32CD32', 'Zm00107a': '#32CD32', 'Zm00108a': '#32CD32', 'Zm00112a': 'indigo', 'Zm00109a': 'indigo', 'Zm00111a': '#8800FF', 'Zm00110a': '#8800FF' }; var type = feature.get('Type'); var parent = feature.parent(); var synteny_status = parent.get('synteny_status'); var name; if (synteny_status == null && type != "mRNA") { synteny_status = parent.parent().get('synteny_status'); name = parent.parent().get('Id').substring(0,8); } else { name = feature.get('Id').substring(0,8); } if (synteny_status == "putatively_nonsyntenic") { return "black"; } return gene_colors[name]; } #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) { 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); for (let i=0; i 0) { ret_string += ", "; } switch(genome_id) { case "Zm00001eb": ret_string += ""+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; } 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); }