knetmaps
Version:
Interactive network visualization tool for intuitive exploratory analysis of heterogeneous knowledge graphs
2 lines • 41.4 kB
JavaScript
var KNETMAPS=KNETMAPS||{};KNETMAPS.ConceptsLegend=function(){var e=KNETMAPS.Stats(),t=function(){};return t.conName=function(e){return map={Biological_Process:"BioProc",Molecular_Function:"MolFunc",Cellular_Component:"CellComp","Trait Ontology":"TO",PlantOntologyTerm:"PO","Enzyme Classification":"EC","Quantitative Trait Locus":"QTL","Protein Domain":"Domain"},result=map[e],null!=result?result:e},t.populateConceptLegend=function(){var e=$("#cy").cytoscape("get"),t=e.nodes(),n=[];t.forEach(function(e){n.indexOf(e.data("conceptType"))===-1&&n.push(e.data("conceptType"))});var o={};n.forEach(function(n,a){var i=t.filterFn(function(e){return e.data("conceptType")===n}).size(),s=e.collection();t.filter('node[conceptType="'+n+'"]').forEach(function(e){e.hasClass("ShowEle")&&(s=s.add(e))});var c=$(s).length;o[n]=c+"/"+i});var a='<div class="knetInteractiveLegend"><div class="knetLegend_row"><div class="knetLegend_cell"><b>Interactive Legend:</b></div>';for(var i in o){var s=KNETMAPS.ConceptsLegend().conName(i),c=KNETMAPS.ConceptsLegend().conNameFormat(i),r=KNETMAPS.ConceptsLegend().nodeClassesOnGraph(e,c),l=r.hiddenEdges,d=r.hiddenNodes,p=r.visibleNodes,u=$(d.edgesWith(p)).length;a=0==u&&l>=0?a+'<div class="knetLegend_cell"><input type="submit" value="" id="'+i.replace(/ /g,"_")+'" title="Show or remove all '+i.replace(/_/g," ")+'(s)" class="knetCon_'+i.replace(/ /g,"_")+' opacity_class" style="vertical-align:middle" ontouchmove="KNETMAPS.ConceptsLegend().hideConnectedByType(this.id);" ondblclick="KNETMAPS.ConceptsLegend().hideConnectedByType(this.id);" onclick="KNETMAPS.ConceptsLegend().showConnectedByType(this.id);"><span class="icon_caption">'+o[i]+"<br>"+s+"</span></div>":a+'<div class="knetLegend_cell"><input type="submit" value="" id="'+i.replace(/ /g,"_")+'" title="Show or remove all '+i.replace(/_/g," ")+'(s)" class="knetCon_'+i.replace(/ /g,"_")+'" style="vertical-align:middle" ontouchmove="KNETMAPS.ConceptsLegend().hideConnectedByType(this.id);" ondblclick="KNETMAPS.ConceptsLegend().hideConnectedByType(this.id);" onclick="KNETMAPS.ConceptsLegend().showConnectedByType(this.id);"><span class="icon_caption">'+o[i]+"<br>"+s+"</span></div>"}a+="</div></div>",$("#knetLegend").html(a)},t.conNameFormat=function(e){return"Trait_Ontology"===e||"Enzyme_Classification"===e||"Quantitative_Trait_Locus"===e||"Protein_Domain"===e?e.replace(/_/g," "):"Biological Process"===e||"Molecular Function"===e||"Cellular Component"===e?e.replace(/ /g,"_"):e},t.nodeClassesOnGraph=function(e,t){var n=e.collection(),o=n,a=n,i=n,s=KNETMAPS.ConceptsLegend().conName(t);e.nodes().filter('node[conceptType="'+t+'"]').forEach(function(e){e.hasClass("ShowEle")&&(n=n.add(e)),e.hasClass("HideEle")&&(o=o.add(e))}),e.nodes().forEach(function(e){e.hasClass("ShowEle")&&(a=a.add(e)),e.hasClass("HideEle")&&(i=i.add(e))});var c=$(n).length+$(o).length,r=$(o.edgesWith(i)).length;return{hiddenNodes:o,visibleNodes:a,visibleOfSameType:n,total:c,text:s,hiddenEdges:r}},t.conceptCount=function(e,t,n,o){$(document).ready(function(){var a=e.collection();e.nodes().filter('node[conceptType="'+t+'"]').forEach(function(e){e.hasClass("ShowEle")&&(a=a.add(e))});var i=" "+$(a).length+"/"+o+"<br>"+n;$("span.icon_caption").each(function(){$(this).text().includes(n)&&$(this).html(i)}),0===$(a).length&&$("#infoDialog").html("")})},t.showConnectedByType=function(t){$("#infoDialog").html("");var n=$("#cy").cytoscape("get"),o=KNETMAPS.ConceptsLegend().conNameFormat(t);console.log("ID is: "+o);var a=KNETMAPS.ConceptsLegend().nodeClassesOnGraph(n,o),i=a.hiddenNodes,s=a.visibleNodes,c=a.text,r=a.total,l=a.hiddenEdges;$("#"+o.replace(/ /g,"_")).removeClass("opacity_class");var d=$(i.edgesWith(s)).length;d>0&&(i.edgesWith(s).connectedNodes().addClass("ShowEle").removeClass("HideEle"),i.edgesWith(s).addClass("ShowEle").removeClass("HideEle"),KNETMAPS.ConceptsLegend().populateConceptLegend()),l>=0&&0==d&&(KNETMAPS.ConceptsLegend().populateConceptLegend(),$("#infoDialog").html('<font color="red">Can\'t show more '+c+" concept nodes. Please check your graph.</font>").show(),$("#"+o.replace(/ /g,"_")).addClass("opacity_class")),e.updateKnetStats(),KNETMAPS.ConceptsLegend().conceptCount(n,o,c,r)},t.hideConnectedByType=function(t){$("#infoDialog").html("");var n=$("#cy").cytoscape("get"),o=KNETMAPS.ConceptsLegend().conNameFormat(t),a=KNETMAPS.ConceptsLegend().nodeClassesOnGraph(n,o),i=a.visibleOfSameType,s=a.visibleNodes,c=a.text;a.total;$("#"+o.replace(/_/g," ")).removeClass("opacity_class");var r=$(i.edgesWith(s)).length;0==c.includes("Gene")?(n.nodes().forEach(function(e){e.data("conceptType")===o&&e.removeClass("ShowEle").addClass("HideEle")}),e.updateKnetStats()):c.includes("Gene")?n.nodes().forEach(function(t){t.hasClass("FlaggedGene")?$("#infoDialog").html('<font color="red">Can\'t remove the main Gene Concept node.</font>').show():t.data("conceptType")==o&&(t.removeClass("ShowEle").addClass("HideEle"),$("#infoDialog").html(""),e.updateKnetStats())}):r>0&&0==c.includes("Gene")&&$("#infoDialog").html(""),KNETMAPS.ConceptsLegend().populateConceptLegend()},t};var KNETMAPS=KNETMAPS||{};KNETMAPS.Container=function(){var e=KNETMAPS.Stats(),t=KNETMAPS.ItemInfo(),n=KNETMAPS.ConceptsLegend(),o=(KNETMAPS.Layouts(),function(){});return o.load_reload_Network=function(o,a,i){console.log("load the cytoscapeJS network... isJSON: "+i);var s=window.cy=cytoscape({container:document.getElementById("cy"),style:a,elements:o,layout:i?{name:"preset"}:"",textureOnViewport:!1,pixelRatio:1,zoomingEnabled:!0,zoom:1,wheelSensitivity:.05,panningEnabled:!0,touchTapThreshold:8,desktopTapThreshold:4,autolock:!1,autoungrabify:!1,autounselectify:!1,motionBlur:!0,ready:function(){i===!1&&KNETMAPS.Menu().rerunLayout(),window.cy=this}});s.boxSelectionEnabled(!1),s.elements().qtip({content:function(){var e="";try{if(this.isNode())e="<b>Concept:</b> "+this.data("value")+"<br/><b>Type:</b> "+this.data("conceptType");else if(this.isEdge()){e="<b>Relation:</b> "+this.data("label");var t=this.data("source");e=e+"<br/><b>From:</b> "+s.$("#"+t).data("value")+" ("+s.$("#"+t).data("conceptType").toLowerCase()+")";var n=this.data("target");e=e+"<br/><b>To:</b> "+s.$("#"+n).data("value")+" ("+s.$("#"+n).data("conceptType").toLowerCase()+")"}}catch(o){e="Selected element is neither a Concept nor a Relation"}return e},style:{classes:"qtip-bootstrap",tip:{width:12,height:6}}}),s.on("tap",function(e){var n=e.cyTarget,o="";try{if(n.isNode())o="<b>Concept:</b> "+n.data("value")+"<br/><b>Type:</b> "+n.data("conceptType");else if(n.isEdge()){o="<b>Relation:</b> "+this.data("label");var a=this.data("source");o=o+"<br/><b>From:</b> "+s.$("#"+a).data("value")+" ("+s.$("#"+a).data("conceptType").toLowerCase();var i=this.data("target");o=o+"<br/><b>To:</b> "+s.$("#"+i).data("value")+" ("+s.$("#"+i).data("conceptType").toLowerCase()+")"}}catch(c){o="Selected element is neither a Concept nor a Relation"}t.showItemInfo(n)});var c={menuRadius:80,selector:"*",commands:[{content:"Show Info",select:function(){t.openItemInfoPane(),t.showItemInfo(this)}},{content:"Show Links",select:function(){this.isNode()&&(t.showLinks(this),e.updateKnetStats())}},{content:"Hide",select:function(){this.removeClass("ShowEle"),this.addClass("HideEle"),e.updateKnetStats(),n.populateConceptLegend()}},{content:"Highlighter on/off",select:function(){this.isNode()&&"1"==this.css("text-background-opacity")?this.css({"text-background-opacity":"0"}):this.isNode()&&"0"==this.css("text-background-opacity")&&this.css({"text-background-opacity":"1"})}},{content:"Label on/ off by Type",select:function(){var e,t,n;this.isNode()?(e=this.data("conceptType"),t="conceptType",n=s.nodes()):this.isEdge()&&(e=this.data("label"),t="label",n=s.edges()),this.hasClass("LabelOff")?n.forEach(function(n){n.data(t)===e&&n.hasClass("LabelOff")&&(n.removeClass("LabelOff"),n.addClass("LabelOn"))}):this.hasClass("LabelOn")&&n.forEach(function(n){n.data(t)===e&&n.hasClass("LabelOn")&&(n.removeClass("LabelOn"),n.addClass("LabelOff"))})}},{content:"Label on/ off",select:function(){this.hasClass("LabelOff")?(this.removeClass("LabelOff"),this.addClass("LabelOn")):this.hasClass("LabelOn")&&(this.removeClass("LabelOn"),this.addClass("LabelOff"))}}],fillColor:"rgba(0, 0, 0, 0.75)",activeFillColor:"rgba(92, 194, 237, 0.75)",activePadding:2,indicatorSize:15,separatorWidth:3,spotlightPadding:3,minSpotlightRadius:5,maxSpotlightRadius:10,itemColor:"white",itemTextShadowColor:"black",zIndex:9999};s.cxtmenu(c),$("#infoDialog").click(function(){$("#infoDialog").slideToggle(300)})},o};var KNETMAPS=KNETMAPS||{},graphJSON=graphJSON||"",allGraphData=allGraphData||"";KNETMAPS.Generator=function(){var stats=KNETMAPS.Stats(),iteminfo=KNETMAPS.ItemInfo(),container=KNETMAPS.Container(),legend=KNETMAPS.ConceptsLegend(),my=function(){};return my.generateNetworkGraph=function(e,t,n){graphJSON=e,allGraphData=t,my.initializeNetworkView(graphJSON,allGraphData,n),my.blurNodesWithHiddenNeighborhood(),my.colorGeneLabelsByTaxID(allGraphData),stats.updateKnetStats(),legend.populateConceptLegend()},my.generateNetworkGraphRaw=function(json_blob){eval(json_blob+"; my.initializeNetworkView(graphJSON, allGraphData); my.blurNodesWithHiddenNeighborhood(); my.colorGeneLabelsByTaxID(allGraphData); stats.updateKnetStats(); legend.populateConceptLegend();")},my.initializeNetworkView=function(e,t,n){graphJSON=e,allGraphData=t;var o="",a=!1;null!=n||void 0!=n?(o=n,a=!0):o=cytoscape.stylesheet().selector("node").css({content:"data(displayValue)","text-background-color":"data(conceptTextBGcolor)","text-background-opacity":"data(conceptTextBGopacity)","text-wrap":"wrap","border-style":"data(conceptBorderStyle)","border-width":"data(conceptBorderWidth)","border-color":"data(conceptBorderColor)","font-size":"16px",shape:"data(conceptShape)",width:"data(conceptSize)",height:"data(conceptSize)","background-color":"data(conceptColor)",display:"data(conceptDisplay)","text-opacity":"0"}).selector("edge").css({content:"data(label)","font-size":"16px","curve-style":"unbundled-bezier","control-point-step-size":"10px","control-point-distance":"20px","control-point-weight":"50",width:"data(relationSize)","line-color":"data(relationColor)","line-style":"solid","target-arrow-shape":"triangle","target-arrow-color":"gray",display:"data(relationDisplay)","text-opacity":"0"}).selector(".highlighted").css({"background-color":"#61bffc","line-color":"#61bffc","target-arrow-color":"#61bffc","transition-property":"background-color, line-color, target-arrow-color","transition-duration":"0.5s"}).selector(":selected").css({"border-width":"4px","border-color":"#CCCC33"}).selector(".BlurNode").css({"shadow-blur":"25","shadow-color":"black","shadow-opacity":"0.9"}).selector(".HideEle").css({display:"none"}).selector(".ShowEle").css({display:"element"}).selector(".LabelOn").css({"text-opacity":"1"}).selector(".LabelOff").css({"text-opacity":"0"}).selector(".darkgreyEdge").css({"line-color":"darkGrey"}).selector(".orangeEdge").css({"line-color":"orange"}).selector(".dashedEdge").css({"line-style":"dashed"}).selector(".FlaggedGene").css({"text-background-color":"#FFFF00","text-background-opacity":"1"}),$(function(){console.log("initialising..."),container.load_reload_Network(e,o,a),my.append_visibility_and_label_classes()})},my.append_visibility_and_label_classes=function(){var e=$("#cy").cytoscape("get");e.nodes().forEach(function(e){"element"===e.data("conceptDisplay")?e.addClass("ShowEle"):e.addClass("HideEle"),"0"===e.style("text-opacity")?e.addClass("LabelOff"):e.addClass("LabelOn"),"true"===e.data("flagged")&&(e.removeClass("LabelOff").addClass("LabelOn"),e.addClass("FlaggedGene"))}),e.edges().forEach(function(e){"element"===e.data("relationDisplay")?e.addClass("ShowEle"):e.addClass("HideEle"),"0"===e.style("text-opacity")?e.addClass("LabelOff"):e.addClass("LabelOn")}),e.nodes().forEach(function(e){"Gene"!==e.data("conceptType")&&"Biological_Process"!==e.data("conceptType")&&"Trait"!==e.data("conceptType")&&"Trait Ontology"!==e.data("conceptType")||"element"===e.data("conceptDisplay")&&e.removeClass("LabelOff").addClass("LabelOn")}),e.nodes().forEach(function(e){"black"===e.data("conceptTextBGcolor")&&e.data("conceptTextBGcolor","lightGreen")}),e.edges().forEach(function(e){"xref"===e.data("label")&&e.addClass("darkgreyEdge"),"associated_with"===e.data("label")&&e.addClass("darkgreyEdge"),"occurs_in"===e.data("label")&&e.addClass("orangeEdge");var t=["cooccurs_with","occurs_in","regulates","has_similar_sequence","enriched_for"];t.includes(e.data("label"))&&e.addClass("dashedEdge")})},my.blurNodesWithHiddenNeighborhood=function(){var e=$("#cy").cytoscape("get");e.nodes().forEach(function(e){var t,n=e,o=0;try{t=n.id();var a=n.connectedEdges(),i=a.connectedNodes().filter('node[conceptDisplay = "none"]');o=i.length,o>1&&n.addClass("BlurNode")}catch(s){console.log("Error occurred while adding Shadow to concepts with connected, hidden elements. \nError Details: "+s.stack)}})},my.colorGeneLabelsByTaxID=function(e){var t=$("#cy").cytoscape("get"),n=["#e6f5fe","#82cbfc","#50b7fb","lightBlue","#0598fa","#74b9e7","#64bcf7"],o=[];t.nodes().forEach(function(t){if("Gene"===t.data("conceptType"))for(var n="",a=0;a<e.ondexmetadata.concepts.length;a++)if(t.data("id")===e.ondexmetadata.concepts[a].id)for(var i=0;i<e.ondexmetadata.concepts[a].attributes.length;i++)"TAXID"!==e.ondexmetadata.concepts[a].attributes[i].attrname&&"TX"!==e.ondexmetadata.concepts[a].attributes[i].attrnameName||(n=e.ondexmetadata.concepts[a].attributes[i].value,o.indexOf(n)===-1&&o.push(n))});for(var a=new Map,i=0,s=0;s<o.length;s++)a.set(o[s],n[s]),i+=1,i>n.length&&(i=0);t.nodes().forEach(function(t){if("Gene"===t.data("conceptType")){for(var n="",o=0;o<e.ondexmetadata.concepts.length;o++)if(t.data("id")===e.ondexmetadata.concepts[o].id)for(var i=0;i<e.ondexmetadata.concepts[o].attributes.length;i++)"TAXID"!==e.ondexmetadata.concepts[o].attributes[i].attrname&&"TX"!==e.ondexmetadata.concepts[o].attributes[i].attrnameName||(n=e.ondexmetadata.concepts[o].attributes[i].value);var s=a.get(n);t.data("conceptTextBGcolor",s),t.css({"text-background-opacity":"1"})}})},my};var KNETMAPS=KNETMAPS||{};KNETMAPS.ItemInfo=function(){var e=function(){};return e.showItemInfo=function(e){var t="",n=allGraphData,o=!1;try{var a=$("#cy").cytoscape("get");document.getElementById("itemInfo_Table").style.display="inline";var i=document.getElementById("itemInfo_Table").getElementsByTagName("tbody")[0];if(i.innerHTML="",e.isNode()){conID=e.id(),conValue=e.data("value"),a.$(":selected").nodes().unselect(),a.$("#"+conID).select();var s=i.insertRow(0),c=s.insertCell(0),r=s.insertCell(1);c.innerHTML="Concept Type:",r.innerHTML=e.data("conceptType"),""!==e.data("annotation")&&(s=i.insertRow(1),c=s.insertCell(0),r=s.insertCell(1),c.innerHTML="Annotation:",r.innerHTML=e.data("annotation"));for(var l=0;l<n.ondexmetadata.concepts.length;l++)if(e.id()===n.ondexmetadata.concepts[l].id){s=i.insertRow(i.rows.length),c=s.insertCell(0),r=s.insertCell(1),c.innerHTML="Source:",r.innerHTML=n.ondexmetadata.concepts[l].elementOf;var d="";s=i.insertRow(i.rows.length),c=s.insertCell(0),r=s.insertCell(1),c.innerHTML="Evidence:";for(var p=0;p<n.ondexmetadata.concepts[l].evidences.length;p++)""!==n.ondexmetadata.concepts[l].evidences[p]&&(d=d+n.ondexmetadata.concepts[l].evidences[p]+", ");r.innerHTML=d.substring(0,d.length-2),""!==n.ondexmetadata.concepts[l].description&&(s=i.insertRow(i.rows.length),c=s.insertCell(0),r=s.insertCell(1),c.innerHTML="Description:",r.innerHTML=n.ondexmetadata.concepts[l].description);var u="";s=i.insertRow(i.rows.length),c=s.insertCell(0),r=s.insertCell(1),c.innerHTML="<b>Synonyms:</b>";for(var p=0;p<n.ondexmetadata.concepts[l].conames.length;p++){var h=n.ondexmetadata.concepts[l].conames[p].name,m=h;if(""!==h){m.indexOf("<span")>-1&&(m="<html>"+m+"</html>",m=jQuery(m).text());var g=h+' <input type="submit" value="" class="knetSynonym" id="'+m+'" onclick="KNETMAPS.ItemInfo().useAsPreferredConceptName(this.id);" onmouseover="KNETMAPS.Menu().onHover($(this));" onmouseout="KNETMAPS.Menu().offHover($(this));" title="Use as concept Label"/><br/>';u+=g}}r.innerHTML=u,s=i.insertRow(i.rows.length),c=s.insertCell(0),c.innerHTML="<b>Attributes:</b>";for(var p=0;p<n.ondexmetadata.concepts[l].attributes.length;p++){if("size"!==n.ondexmetadata.concepts[l].attributes[p].attrname&&"visible"!==n.ondexmetadata.concepts[l].attributes[p].attrname&&"flagged"!==n.ondexmetadata.concepts[l].attributes[p].attrname&&!n.ondexmetadata.concepts[l].attributes[p].attrname.includes("exp_")){if(s=i.insertRow(i.rows.length),c=s.insertCell(0),r=s.insertCell(1),attrName=n.ondexmetadata.concepts[l].attributes[p].attrname,attrValue=n.ondexmetadata.concepts[l].attributes[p].value,"TAXID"===attrName||"TX"===attrName)for(var b=0;b<url_mappings.html_acc.length;b++)url_mappings.html_acc[b].cv!==attrName&&"TX"!==url_mappings.html_acc[b].cv||(attrUrl=url_mappings.html_acc[b].weblink+attrValue,attrValue='<a href="'+attrUrl+'" onclick="window.open(this.href,\'_blank\');return false;">'+attrValue+"</a>");else if("iri"===attrName){var f=attrValue;attrValue="",f=f.split("/").pop(),f=f.replace(/\s/g,"");var v=f.split(",");v.forEach(function(e,t){attrValue=attrValue+'<a href="http://knetminer.org/data/rdf/resources/'+e+'" onclick="window.open(this.href,\'_blank\');return false;">'+e+"</a>,<br/>"}),attrValue=attrValue.substring(0,attrValue.lastIndexOf("<")-1)}else if("URL"===attrName){attrName="URL(s)";var y=attrValue;attrValue="",y=y.replace(/\s/g,"");var w=y.split(",");w.forEach(function(e,t){attrValue=attrValue+'<a href="'+e+'" onclick="window.open(this.href,\'_blank\');return false;">'+e+"</a>,<br/>"}),attrValue=attrValue.substring(0,attrValue.lastIndexOf("<")-1)}else if(attrName.includes("AA")){attrName="Aminoacid sequence ("+attrName+")",aaSeq=attrValue.match(/.{1,10}/g),counter=0,attrValue="<span style= \"font-family: 'Courier New', Courier, monospace\">";for(var C=0;C<aaSeq.length;C++)attrValue=attrValue+aaSeq[C]+" ",counter+=1,counter%3===0&&(attrValue+="<br/>");attrValue+="</span>"}c.innerHTML=attrName,r.innerHTML=attrValue}n.ondexmetadata.concepts[l].attributes[p].attrname.includes("exp_")&&(o=!0)}s=i.insertRow(i.rows.length),c=s.insertCell(0),c.innerHTML="<b>Accessions:</b>";for(var p=0;p<n.ondexmetadata.concepts[l].coaccessions.length;p++){s=i.insertRow(i.rows.length),c=s.insertCell(0),r=s.insertCell(1),accessionID=n.ondexmetadata.concepts[l].coaccessions[p].elementOf,co_acc=n.ondexmetadata.concepts[l].coaccessions[p].accession,accession=co_acc;for(var b=0;b<url_mappings.html_acc.length;b++)url_mappings.html_acc[b].cv===accessionID&&(coAccUrl=url_mappings.html_acc[b].weblink+co_acc,"WHEATEXP"===accessionID&&(coAccUrl=coAccUrl.replace("TRAES","Traes")+"&search_by=gene"),"CO"===accessionID&&(coAccUrl+="/"),coAccUrl=coAccUrl.replace("TO:","").replace("PO:",""),coAccUrl=coAccUrl.replace(/\s/g,""),co_acc='<a href="'+coAccUrl+'" onclick="window.open(this.href,\'_blank\');return false;">'+co_acc+"</a>");co_acc=co_acc+" <input type='submit' value='' class='knetSynonym' id='"+accession+"' onclick='KNETMAPS.ItemInfo().useAsPreferredConceptName(this.id);' onmouseover='KNETMAPS.Menu().onHover($(this));' onmouseout='KNETMAPS.Menu().offHover($(this));' title='Use as concept Label'/>",c.innerHTML=accessionID,r.innerHTML=co_acc}if(o){s=i.insertRow(i.rows.length),c=s.insertCell(0),c.innerHTML="<b>Gene Expression:</b>";for(var p=0;p<n.ondexmetadata.concepts[l].attributes.length;p++)n.ondexmetadata.concepts[l].attributes[p].attrname.includes("exp_")&&(s=i.insertRow(i.rows.length),c=s.insertCell(0),r=s.insertCell(1),attrName=n.ondexmetadata.concepts[l].attributes[p].attrname,attrValue=n.ondexmetadata.concepts[l].attributes[p].value,c.innerHTML=attrName,r.innerHTML=attrValue)}}}else if(e.isEdge()){var s=i.insertRow(0),c=s.insertCell(0),r=s.insertCell(1);c.innerHTML="Type:",r.innerHTML=e.data("label"),s=i.insertRow(1),c=s.insertCell(0),r=s.insertCell(1),c.innerHTML="From:";var E=e.data("source");r.innerHTML=a.$("#"+E).data("value")+" ("+a.$("#"+E).data("conceptType").toLowerCase()+")",s=i.insertRow(2),c=s.insertCell(0),r=s.insertCell(1),c.innerHTML="To:";var N=e.data("target");r.innerHTML=a.$("#"+N).data("value")+" ("+a.$("#"+N).data("conceptType").toLowerCase()+")";for(var l=0;l<n.ondexmetadata.relations.length;l++)if(e.id()===n.ondexmetadata.relations[l].id){var T="";s=i.insertRow(i.rows.length),c=s.insertCell(0),r=s.insertCell(1),c.innerHTML="Evidence:";for(var p=0;p<n.ondexmetadata.relations[l].evidences.length;p++)if(""!==n.ondexmetadata.relations[l].evidences[p]){var L=n.ondexmetadata.relations[l].evidences[p];if(L.includes("ECO:")){L=L.replace(/\s/g,"");var k="http://ols.wordvis.com/q="+L;L='<a href="'+k+'" onclick="window.open(this.href,\'_blank\');return false;">'+L+"</a>"}T=T+L+", "}r.innerHTML=T.substring(0,T.length-2),s=i.insertRow(i.rows.length),c=s.insertCell(0),c.innerHTML="<b>Attributes:</b>";for(var p=0;p<n.ondexmetadata.relations[l].attributes.length;p++)if("size"!==n.ondexmetadata.relations[l].attributes[p].attrname&&"visible"!==n.ondexmetadata.relations[l].attributes[p].attrname){if(s=i.insertRow(i.rows.length),c=s.insertCell(0),r=s.insertCell(1),attrName=n.ondexmetadata.relations[l].attributes[p].attrname,attrValue=n.ondexmetadata.relations[l].attributes[p].value,"PMID"===attrName||"PubMed"===attrName){for(var S="",b=0;b<url_mappings.html_acc.length;b++)url_mappings.html_acc[b].cv===attrName&&(S=url_mappings.html_acc[b].weblink);var _="",M=attrValue.split(",");M.forEach(function(e,t){e=e.replace(/\s/g,""),attrUrl=S+e,_=_+'<a href="'+attrUrl+'" onclick="window.open(this.href,\'_blank\');return false;">'+e+"</a>,<br/>"}),_=_.substring(0,_.lastIndexOf("<")-1),attrValue=_}else if("iri"===attrName){var f=attrValue;attrValue="",f=f.split("/").pop(),f=f.replace(/\s/g,"");var v=f.split(",");v.forEach(function(e,t){attrValue=attrValue+'<a href="http://knetminer.org/data/rdf/resources/'+e+'" onclick="window.open(this.href,\'_blank\');return false;">'+e+"</a>,<br/>"}),attrValue=attrValue.substring(0,attrValue.lastIndexOf("<")-1)}c.innerHTML=attrName,r.innerHTML=attrValue}}}}catch(A){t="Selected element is neither a Concept nor a Relation",t=t+"<br/>Error details:<br/>"+A.stack}},e.openItemInfoPane=function(){var e="slide",t={direction:"right"},n=500;"none"===$("#itemInfo").css("display")&&$("#itemInfo").toggle(e,t,n)},e.closeItemInfoPane=function(){$("#itemInfo").hide()},e.removeNodeBlur=function(e){var t=e;try{t.hasClass("BlurNode")&&t.removeClass("BlurNode")}catch(n){console.log("Error occurred while removing Shadow from concepts with connected, hidden elements. \nError Details: "+n.stack)}},e.showLinks=function(t){var n=t;n.connectedEdges().connectedNodes().removeClass("HideEle"),n.connectedEdges().connectedNodes().addClass("ShowEle"),n.connectedEdges().removeClass("HideEle"),n.connectedEdges().addClass("ShowEle"),e.removeNodeBlur(n),n.connectedEdges().connectedNodes().forEach(function(t){var n=t.connectedEdges().connectedNodes().filter('node[conceptDisplay = "none"]'),o=n.length;o<1&&e.removeNodeBlur(t)});try{var o=n.boundingBox(),a={name:"circle",radius:2,boundingBox:o,avoidOverlap:!0,fit:!0,handleDisconnected:!0,padding:10,animate:!1,counterclockwise:!1,rStepSize:1,ready:function(){cy.center(),cy.fit()},stop:void 0};n.neighborhood().filter('node[conceptDisplay = "none"]').layout(a)}catch(i){console.log("Error occurred while setting layout on selected element's neighborhood: "+i.stack)}},e.useAsPreferredConceptName=function(e){try{var t=$("#cy").cytoscape("get");t.nodes().forEach(function(t){t.selected()&&(e.length>30&&(e=e.substr(0,29)+"..."),t.data("displayValue",e),"0"===t.style("text-opacity")&&t.style({"text-opacity":"1"}))})}catch(n){console.log("Error occurred while altering preferred concept name. \nError Details: "+n.stack)}},e};var KNETMAPS=KNETMAPS||{};KNETMAPS.LayoutDefaults=function(){var e=!0,t=function(){};return t.coseNetworkLayout={name:"cose",ready:function(){},stop:function(){},animate:e,animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,randomize:!0,componentSpacing:100,nodeRepulsion:4e5,nodeOverlap:10,idealEdgeLength:10,edgeElasticity:100,nestingFactor:5,gravity:80,numIter:1e3,initialTemp:200,coolingFactor:.95,minTemp:1,useMultitasking:!0},t.coseNetworkLayout_old={name:"cose",animate:e,handleDisconnected:!0,avoidOverlap:!0,idealEdgeLength:100,nodeOverlap:20},t.ngraph_forceNetworkLayout={name:"cytoscape-ngraph.forcelayout",animate:e,fit:!0,async:{maxIterations:1e3,stepsPerCycle:30,waitForStep:!1},physics:{springLength:130,springCoeff:8e-4,gravity:-1.2,theta:.8,dragCoeff:.02,timeStep:20,iterations:1e4,fit:!0,stableThreshold:9e-6},iterations:1e4,refreshInterval:16,refreshIterations:10,stableThreshold:2},t.circleNetworkLayout={name:"circle",padding:10,avoidOverlap:!0,boundingBox:void 0,handleDisconnected:!0,animate:e,fit:!0,counterclockwise:!1,radius:3,rStepSize:2},t.concentricNetworkLayout={name:"concentric",fit:!0,padding:10,startAngle:1.5*Math.PI,counterclockwise:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,height:void 0,width:void 0,concentric:function(){return this.degree()},levelWidth:function(e){return.5},animate:e,animationDuration:500,ready:void 0,stop:void 0,radius:5},t.coseBilkentNetworkLayout={name:"cose-bilkent",ready:function(){},stop:function(){},fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:200,tile:!0,animate:!1,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8},t.coseBilkentNetworkLayout_old={name:"cose-bilkent",handleDisconnected:!0,avoidOverlap:!0},t.presetLayout={name:"preset"},t.presetLayout_advanced={name:"preset",positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}},t};var KNETMAPS=KNETMAPS||{};KNETMAPS.Layouts=function(){var e=KNETMAPS.LayoutDefaults(),t=function(){},n=!0;return t.setLayoutAnimationSetting=function(){n=!!document.getElementById("animateLayout").checked},t.setCoseLayout=function(t){t.layout(e.coseNetworkLayout)},t.setNgraphForceLayout=function(t){t.layout(e.ngraph_forceNetworkLayout)},t.setCircleLayout=function(t){t.layout(e.circleNetworkLayout)},t.setConcentricLayout=function(t){t.layout(e.concentricNetworkLayout)},t.setCoseBilkentLayout=function(t){t.layout(e.coseBilkentNetworkLayout)},t.setPresetLayout=function(t){console.log("use preset layout..."),t.layout(e.presetLayout)},t.setDefaultLayout=function(){var e=$("#cy").cytoscape("get");t.setCoseLayout(e.$(":visible")),e.reset().fit()},t};var KNETMAPS=KNETMAPS||{};KNETMAPS.MaskLoader=function(){var e=function(){};return e.showNetworkLoader=function(e){$(e).maskLoader({fade:!0,"z-index":"999",background:"white",opacity:"0.6",position:"absolute",imgLoader:!1,autoCreate:!0,textAlert:!1})},e.removeNetworkLoader=function(e){var t=$(e).maskLoader();t.destroy()},e};var KNETMAPS=KNETMAPS||{};KNETMAPS.Menu=function(){var iteminfo=KNETMAPS.ItemInfo(),container=KNETMAPS.Container(),stats=KNETMAPS.Stats(),conceptLegend=KNETMAPS.ConceptsLegend(),my=function(){};my.onHover=function(e){$(e).removeClass("unhover").addClass("hover")},my.offHover=function(e){$(e).removeClass("hover").addClass("unhover")},my.popupItemInfo=function(){iteminfo.openItemInfoPane(),iteminfo.showItemInfo(this)},my.openKnetHelpPage=function(){var e="https://github.com/Rothamsted/knetmaps.js/wiki/KnetMaps.js";window.open(e,"_blank")},my.resetGraph=function(){$("#cy").cytoscape("get").reset().fit()},my.exportAsImage=function(){var e=$("#cy").cytoscape("get"),t=e.png({scale:6,output:"base64"}),n=document.createElement("a");n.href=t,n.download="knet_image.png",n.click()},my.showAll=function(){var e=$("#cy").cytoscape("get");e.elements().removeClass("HideEle"),e.elements().addClass("ShowEle"),my.rerunLayout(),e.nodes().forEach(function(e){iteminfo.removeNodeBlur(e)}),stats.updateKnetStats(),conceptLegend.populateConceptLegend()},my.rerunLayout=function(){var e=cy.$(":visible");my.rerunGraphLayout(e),my.resetGraph()};var layouts=KNETMAPS.Layouts();return my.rerunGraphLayout=function(e){var t=$("#layouts_dropdown").val();"circle_layout"===t?layouts.setCircleLayout(e):"cose_layout"===t?layouts.setCoseLayout(e):"coseBilkent_layout"===t?layouts.setCoseBilkentLayout(e):"concentric_layout"===t?layouts.setConcentricLayout(e):"ngraph_force_layout"===t&&layouts.setNgraphForceLayout(e)},my.changeLabelFontSize=function(e){try{var t=$("#cy").cytoscape("get");t.style().selector("node").css({"font-size":e}).update(),t.style().selector("edge").css({"font-size":e}).update()}catch(n){console.log("Error occurred while altering label font size. \nError Details: "+n.stack)}},my.showHideLabels=function(e){"Concepts"===e?my.displayConceptLabels():"Relations"===e?my.displayRelationLabels():"Both"===e?my.displayConRelLabels():"None"===e&&my.hideConRelLabels()},my.displayConceptLabels=function(){var e=$("#cy").cytoscape("get");e.nodes().removeClass("LabelOff").addClass("LabelOn"),e.edges().removeClass("LabelOn").addClass("LabelOff")},my.displayRelationLabels=function(){var e=$("#cy").cytoscape("get");e.nodes().removeClass("LabelOn").addClass("LabelOff"),e.edges().removeClass("LabelOff").addClass("LabelOn")},my.displayConRelLabels=function(){var e=$("#cy").cytoscape("get");e.nodes().removeClass("LabelOff").addClass("LabelOn"),e.edges().removeClass("LabelOff").addClass("LabelOn")},my.hideConRelLabels=function(){var e=$("#cy").cytoscape("get");e.nodes().removeClass("LabelOn").addClass("LabelOff"),e.edges().removeClass("LabelOn").addClass("LabelOff")},my.OnMaximizeClick=function(){var e=$("#cy").cytoscape("get"),t=e.elements().jsons(),n=e.style().json();$("#knet-maps").hasClass("full_screen")?($("#maximizeOverlay").removeClass("min").addClass("max"),$("#knet-maps").removeClass("full_screen"),container.load_reload_Network(t,n,!1),iteminfo.closeItemInfoPane()):($("#maximizeOverlay").removeClass("max").addClass("min"),$("#knet-maps").addClass("full_screen"),container.load_reload_Network(t,n,!1),iteminfo.openItemInfoPane())},my.importJson=function(){$("#openNetworkFile").trigger("click")},my.OpenKnetFile=function(e){var t=e.target.files[0],n=new FileReader;n.onload=function(e){my.drawWithJson(e.target.result)},n.readAsText(t)},my.drawWithJson=function(fileContents){var selectedFileContents=JSON.parse(fileContents),eles_jsons=selectedFileContents.graph.graphJSON.elements,eles_styles=selectedFileContents.graph.graphJSON.style,metaJSON=selectedFileContents.graph.allGraphData;allGraphData=metaJSON,container.load_reload_Network(eles_jsons,eles_styles,!0),eval("stats.updateKnetStats(); conceptLegend.populateConceptLegend();")},my};var KNETMAPS=KNETMAPS||{};KNETMAPS.Stats=function(){var e=function(){};return e.updateKnetStats=function(){var e=$("#cy").cytoscape("get"),t=e.nodes().size(),n=e.$(":visible").nodes().size(),o="Concepts: "+n+" ("+t+")",a=e.edges().size(),i=e.$(":visible").edges().size();o=o+"; Relations: "+i+" ("+a+")",$("#statsLegend span").text(o)},e};var KNETMAPS=KNETMAPS||{};KNETMAPS.KnetMaps=function(){var e=KNETMAPS.MaskLoader(),t=KNETMAPS.Generator(),n=function(e){$(e).html("<div id='knetmaps-menu'><input type='submit' id='maximizeOverlay' class='max unhover' value='' title='Toggle full screen' onclick='KNETMAPS.Menu().OnMaximizeClick();' onmouseover='KNETMAPS.Menu().onHover($(this));' onmouseout='KNETMAPS.Menu().offHover($(this));'><input type='submit' id='showAll' value='' class='unhover' onclick='KNETMAPS.Menu().showAll();' title='Show all the concept & relations in the Network' onmouseover='KNETMAPS.Menu().onHover($(this));' onmouseout='KNETMAPS.Menu().offHover($(this));'><input type='submit' id='openItemInfoBtn' value='' class='unhover' onclick='KNETMAPS.Menu().popupItemInfo();' title='Show Info box' onmouseover='KNETMAPS.Menu().onHover($(this));' onmouseout='KNETMAPS.Menu().offHover($(this));'><input type='submit' id='relayoutNetwork' value='' class='unhover' onclick='KNETMAPS.Menu().rerunLayout();' title='Re-run the Layout' onmouseover='KNETMAPS.Menu().onHover($(this));' onmouseout='KNETMAPS.Menu().offHover($(this));'><input type='submit' id='resetNetwork' value='' class='unhover' onclick='KNETMAPS.Menu().resetGraph();' title='Reposition (reset and re-fit) the graph' onmouseover='KNETMAPS.Menu().onHover($(this));' onmouseout='KNETMAPS.Menu().offHover($(this));'><span class='knet-dropdowns'><select id='layouts_dropdown' class='knet-dropdowns' onChange='KNETMAPS.Menu().rerunLayout();' title='Select network layout'><option value='cose_layout' selected='selected' title='using CoSE layout algorithm (useful for larger networks with clustering)'>CoSE layout</option><option value='ngraph_force_layout' title='using ngraph_force layout (works well on planar graphs)'>Force layout</option><option value='circle_layout'>Circular layout</option><option value='concentric_layout'>Concentric layout</option><option value='coseBilkent_layout' title='using CoSE-Bilkent layout (with node clustering, but performance-intensive for larger networks)'>CoSE-Bilkent layout</option></select><select id='changeLabelVisibility' class='knet-dropdowns' onChange='KNETMAPS.Menu().showHideLabels(this.value);' title='Select label visibility'><option value='None' selected='selected'>Labels: None</option><option value='Concepts'>Labels: Concepts</option><option value='Relations'>Labels: Relations</option><option value='Both'>Labels: Both</option></select><select id='changeLabelFont' class='knet-dropdowns' onChange='KNETMAPS.Menu().changeLabelFontSize(this.value);' title='Select label font size'><option value='8'>Label size: 8px</option><option value='12'>Label size: 12px</option><option value='16' selected='selected'>Label size: 16px</option><option value='20'>Label size: 20px</option><option value='24'>Label size: 24px</option><option value='28'>Label size: 28px</option><option value='32'>Label size: 32px</option><option value='36'>Label size: 36px</option><option value='40'>Label size: 40px</option></select></span><input type='submit' id='helpURL' value='' class='unhover' onclick='KNETMAPS.Menu().openKnetHelpPage();' title='Go to help documentation' onmouseover='KNETMAPS.Menu().onHover($(this));' onmouseout='KNETMAPS.Menu().offHover($(this));'></div> <!-- KnetMaps Menubar --><div id='itemInfo' class='infoDiv' style='display:none;'> <!-- Item Info pane --><table id='itemInfo_Table' class='infoTable' cellspacing=1><thead><th>Info box:</th><th><input type='submit' id='btnCloseItemInfoPane' value='' onclick='KNETMAPS.ItemInfo().closeItemInfoPane();'></th></thead><tbody></tbody></table></div><!-- The core cytoscapeJS container --><div id='cy'></div><!-- interactive, dynamic Legend to show all concept of a particular type --><div id='knetLegend' title='Hover over icons to see corresponding Concept type & click an icon to show all such Concepts connected to visible Concepts in this network'><span>Concepts:</span></div><!-- dynamically updated Legend to show number of shown/ hidden concepts --><div id='statsLegend' style='width: 350px; margin: auto;'><span>KnetMaps</span></div><div id='infoDialog'></div> <!-- popup dialog -->");
},o=function(e){$(e).css("display","block")},a=function(){};return a.drawRaw=function(a,i){n(a),o(a),e.showNetworkLoader(a),t.generateNetworkGraphRaw(i),e.removeNetworkLoader(a)},a.draw=function(a,i,s,c){n(a),o(a),e.showNetworkLoader(a),t.generateNetworkGraph(i,s,c),e.removeNetworkLoader(a)},a};var url_mappings={comment:"#CV, weblink, CC_Restriction, taxidpostfix",html_acc:[{cv:"AC",weblink:"http://pmn.plantcyc.org/ARA/NEW-IMAGE?type=NIL&object=",cc_restriction:""},{cv:"AspGD",weblink:"http://www.aspergillusgenome.org/cgi-bin/locus.pl?dbid=",cc_restriction:""},{cv:"AraPheno",weblink:"https://arapheno.1001genomes.org/phenotype/",cc_restriction:""},{cv:"ARAPHENO",weblink:"https://arapheno.1001genomes.org/phenotype/",cc_restriction:""},{cv:"AraGWAS",weblink:"https://aragwas.1001genomes.org/#/study/",cc_restriction:""},{cv:"ARAGWAS",weblink:"https://aragwas.1001genomes.org/#/study/",cc_restriction:""},{cv:"CHEBI",weblink:"http://www.ebi.ac.uk/chebi/searchId.do?chebiId=",cc_restriction:""},{cv:"CHEMBL",weblink:"https://www.ebi.ac.uk/chembldb/compound/inspect/",cc_restriction:""},{cv:"CHEMBLASSAY",weblink:"https://www.ebi.ac.uk/chembldb/assay/inspect/",cc_restriction:""},{cv:"CHEMBLTARGET",weblink:"https://www.ebi.ac.uk/chembldb/target/inspect/",cc_restriction:""},{cv:"CIRAD",weblink:"http://sugarcane-genome.cirad.fr/feature/",cc_restriction:""},{cv:"CO",weblink:"http://www.cropontology.org/terms/CO_321:",cc_restriction:""},{cv:"DOI",weblink:"http://dx.doi.org/",cc_restriction:""},{cv:"DrugBank",weblink:"https://www.drugbank.ca/drugs/",cc_restriction:""},{cv:"EC",weblink:"http://www.expasy.org/enzyme/",cc_restriction:""},{cv:"EMBL",weblink:"http://www.ebi.ac.uk/ena/data/view/",cc_restriction:""},{cv:"ENSEMBL",weblink:"http://plants.ensembl.org/Search/Results?q=",cc_restriction:""},{cv:"ENSEMBL-PLANTS",weblink:"http://plants.ensembl.org/Search/Results?q=",cc_restriction:""},{cv:"ENSV",weblink:"http://plants.ensembl.org/Search/Results?q=",cc_restriction:""},{cv:"ENSEMBL-HUMAN",weblink:"https://www.ensembl.org/Human/Search/Results?q=",cc_restriction:""},{cv:"ENSV-HUMAN",weblink:"http://www.ensembl.org/Homo_sapiens/Variation/Explore?db=core;v=",cc_restriction:""},{cv:"ENSEMBL-MOUSE",weblink:"http://www.ensembl.org/Mus_musculus/Gene/Summary?db=core;g=",cc_restriction:""},{cv:"EBI-GXA",weblink:"https://www.ebi.ac.uk/gxa/experiments/",cc_restriction:""},{cv:"GENB",weblink:"http://www.ncbi.nlm.nih.gov/sites/entrez?db=nuccore&cmd=search&term=",cc_restriction:""},{cv:"GENOSCOPE",weblink:"http://www.genoscope.cns.fr/brassicanapus/cgi-bin/gbrowse/colza/?name=",cc_restriction:""},{cv:"GO",weblink:"http://www.ebi.ac.uk/QuickGO/term/",cc_restriction:""},{cv:"INTACT",weblink:"http://www.ebi.ac.uk/intact/pages/interactions/interactions.xhtml?query=",cc_restriction:""},{cv:"IPRO",weblink:"http://www.ebi.ac.uk/interpro/entry/",cc_restriction:""},{cv:"KEGG",weblink:"http://www.genome.jp/dbget-bin/www_bget?cpd:",cc_restriction:"Comp"},{cv:"MC",weblink:"http://metacyc.org/META/substring-search?type=NIL&object=",cc_restriction:""},{cv:"NC_GE",weblink:"http://www.ncbi.nlm.nih.gov/sites/entrez?db=gene&term=",cc_restriction:""},{cv:"NC_NM",weblink:"http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?id=",cc_restriction:""},{cv:"NC_NP",weblink:"http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?db=protein&id=",cc_restriction:""},{cv:"NLM",weblink:"http://www.ncbi.nlm.nih.gov/pubmed/",cc_restriction:""},{cv:"OMIM",weblink:"http://omim.org/entry/",cc_restriction:""},{cv:"PDB",weblink:"http://www.rcsb.org/pdb/explore/explore.do?structureId=",cc_restriction:""},{cv:"PFAM",weblink:"http://pfam.sanger.ac.uk/family/",cc_restriction:""},{cv:"PlnTFDB",weblink:"http://plntfdb.bio.uni-potsdam.de/v3.0/get_id.php?seq_id=",cc_restriction:""},{cv:"PMID",weblink:"http://www.ncbi.nlm.nih.gov/pubmed/",cc_restriction:""},{cv:"PO",weblink:"http://purl.obolibrary.org/obo/PO_",cc_restriction:""},{cv:"Poplar-JGI",weblink:"http://genome.jgi-psf.org/cgi-bin/dispGeneModel?db=Poptr1_1&id=",cc_restriction:""},{cv:"PoplarCyc",weblink:"http://pmn.plantcyc.org/POPLAR/NEW-IMAGE?object=",cc_restriction:""},{cv:"PRINTS",weblink:"http://www.bioinf.manchester.ac.uk/cgi-bin/dbbrowser/PRINTS/DoPRINTS.pl?cmd_a=Display&fun_a=Text&qst_a=",cc_restriction:""},{cv:"PRODOM",weblink:"http://prodom.prabi.fr/prodom/current/cgi-bin/request.pl?question=DBEN&query=",cc_restriction:""},{cv:"PROSITE",weblink:"http://www.expasy.org/prosite/",cc_restriction:""},{cv:"PUBCHEM",weblink:"http://pubchem.ncbi.nlm.nih.gov/summary/summary.cgi?cid=",cc_restriction:""},{cv:"PubMed",weblink:"http://www.ncbi.nlm.nih.gov/pubmed/",cc_restriction:""},{cv:"REAC",weblink:"http://www.reactome.org/entitylevelview/PathwayBrowser.html#DB=gk_current&ID=",cc_restriction:""},{cv:"SCOP",weblink:"http://scop.mrc-lmb.cam.ac.uk/scop/search.cgi?sid=",cc_restriction:""},{cv:"SGD",weblink:"http://www.yeastgenome.org/locus/",cc_restriction:""},{cv:"SOYCYC",weblink:"http://www.soybase.org:8082/SOY/NEW-IMAGE?type=COMPOUND&object=",cc_restriction:"Comp"},{cv:"SOYCYC",weblink:"http://www.soybase.org:8082/SOY/NEW-IMAGE?type=PATHWAY&object=",cc_restriction:"Path"},{cv:"SOYCYC",weblink:"http://www.soybase.org:8082/SOY/NEW-IMAGE?type=REACTION&object=",cc_restriction:"Reaction"},{cv:"TAIR",weblink:"http://www.arabidopsis.org/servlets/TairObject?type=locus&name=",cc_restriction:""},{cv:"TO",weblink:"http://purl.obolibrary.org/obo/TO_",cc_restriction:""},{cv:"TX",weblink:"http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id=",cc_restriction:""},{cv:"UNIPROTKB",weblink:"http://www.uniprot.org/uniprot/",cc_restriction:""},{cv:"YeastCyc",weblink:"https://yeast.biocyc.org/YEAST/NEW-IMAGE?type=NIL&object=",cc_restriction:""},{cv:"HumanCyc",weblink:"https://humancyc.org/HUMAN/substring-search?type=NIL&object=",cc_restriction:""},{cv:"UNIPROTKB-COV",weblink:"https://covid-19.uniprot.org/uniprotkb/",cc_restriction:""},{cv:"WHEATEXP",weblink:"http://www.wheat-expression.com/genes/show?gene_set=RefSeq1.1&name=",cc_restriction:""},{cv:"HPO",weblink:"https://hpo.jax.org/app/browse/term/",cc_restriction:""}]};