Body |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Information for ACACA00379</title>
<meta name="description"
content="For ACACA00379 OMA stores the following information about the gene/protein.">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="keywords" content="orthology,evolutionary gene relations,evolution,paralogy,inference,non-specific serine/threonine protein kinase,ACA1_290110,1257118.L8HJ53">
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(["setCookieDomain", "*.omabrowser.org"]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://matomo.sib.swiss/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '6']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="https://matomo.sib.swiss/matomo.php?idsite=6&rec=1" style="border:0;" alt="" /></p></noscript>
<!-- End Matomo Code -->
<link rel="shortcut icon" href="/static/image/favicon.ico" type="image/x-icon">
<!-- css includes -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Dosis:400,800%7CNoto+Sans:400,700%7CRopa+Sans%7CMaterial+Icons">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha256-eSi1q2PG6J7g7ib17yAaWMcrr5GrtohYChqibrV7PBE=" crossorigin="anonymous">
<link rel="stylesheet" href="/static/css/oma_styles.css">
<!-- js includes -->
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"
integrity="sha256-E/V4cWE4qvAeO5MOhjtGtqDzPndRO1LBk8lJ/PR7CA4=" crossorigin="anonymous"></script>
<script>const static_root = "/static/";</script>
<!-- AA: not sure which of those libs will still be needed. I suspect autocomplete.min.js for sure, rest probably not -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.11.2/css/all.css">
<script src="/static/js/jquery.autocomplete.min.js"></script>
<script id="release_char-data" type="application/json">"E"</script>
</head>
<body class="">
<nav class="navbar fixed-top navbar-expand-xl bg-light navbar-light topnav">
<div class="logos-navbar mr-auto">
<a href="https://www.sib.swiss/"><img src="/static/image/logo-SIB.png" alt="Logo SIB"/></a>
<a href="/oma/home/"><img src="/static/image/logo-oma-mobile.svg" alt="Logo OMA small"/></a>
</div>
<span class="oma-main-search-header">
<script src="/static/js/vue.js"></script>
<style>
.button_search {
cursor:pointer;
align-self: center;
height: 100%;
background-color: transparent;
border: none;
margin-right: 4px;
margin-left: auto;
order: 2;
}
.button_search:disabled {
cursor:not-allowed;
}
.help_icon {
align-self: center;
font-size: 1.5em;
margin: 4px;
cursor: pointer;
}
.prefix-dropdown {
border: none;
background-color: transparent;
}
.vl {
border-left: 2px solid grey;
margin-left: 4px;
margin-right: 4px;
}
#search_nav_input_part {
display: flex;
border: 1px solid #eee;
font-size: 0.9em;
box-sizing: border-box;
padding: 0 0 0 4px;
border-radius: 500px;
}
.ml-input{}
.sl-input{height: 50px;}
.token-input__tag {
height: 30px;
display: inline-block;
margin-right: 10px;
background-color: #eee;
margin-top: 10px;
line-height: 30px;
padding: 0 5px;
border-radius: 5px;
}
.token-input__tag > span {
cursor: pointer;
opacity: 0.75;
}
.token-input__text {
border: none;
outline: none;
font-size: 0.9em;
line-height: 50px;
flex-grow: 1;
background: transparent;
}
.token-delete {
margin-left: 4px;
color: red;
}
#token-container_search_nav{
overflow: scroll;
display: inline;
}
.ml-token-con{margin-bottom: 8px;}
.sl-token-con{white-space: nowrap;}
</style>
<script type="module">
const {createApp} = Vue
window.search_token_vue_search_nav = createApp({
data() {
return {
tokens: [], //{query: 'HUMAN', single_term: true, prefix: "Species", type: "Taxon"}
prefixes: {
'Protein': ['proteinid','xref','go','ec','description','domain','sequence'],
'Taxon': ['species','taxid', 'taxon'],
'HOG': ['hog','sequence'],
'OMA_Group': ['og', 'fingerprint','sequence'],
},
default_prefix : 'description',
show_error: false,
error_message : " Error.",
post_query_search_nav: '',
multiline: false,
wild_card: 'sequence',
placeholder: ' "Blue-light photoreceptor" | proteinid:P53_RAT | species:"Drosophila melanogaster" ', //'P53_RAT | Insulin | species:HUMAN | "auxin response factor"',
placeholder_default: 'proteinid:P53_RAT | "Blue-light photoreceptor" | species:"Drosophila melanogaster" ' //'P53_RAT | Insulin | species:HUMAN | "auxin response factor"',
}
},
compilerOptions: {
delimiters: ["$[", "]$"]
},
methods: {
get_list_prefixes(lowercase=false){
let lp = [].concat(...Object.values(this.prefixes));
if (lowercase){
lp = lp.map(element => {return element.toLowerCase();});
}
return lp
},
get_prefix_used(){
return this.tokens.map(x => this.get_type_prefix(x.prefix));
},
get_type_prefix(prefix){
for (var key in this.prefixes) {
if (this.prefixes.hasOwnProperty(key)) {
if (this.prefixes[key].includes(prefix.toLowerCase())){
return key
}
}
}
return null
},
addToken(event) {
event.preventDefault()
let val = event.target.value.trim();
if (val.length === 0 && this.tokens.length > 0){
this.collect_token()
// wanted to auto search if press and empty + token but post request miss post_query data
}
else {
var sinle_term = val[0] !== '"';
var multi_term_closed = (val.length > 1 && val[val.length - 1] === '"')
var has_prefix = val.includes(':')
var prefix_end = val[val.length - 1] === ':'
var p = has_prefix ? val.split(':')[0].toLowerCase() : this.default_prefix;
// If prefix but not valid
if (has_prefix && !this.get_list_prefixes(true).includes(p.toLowerCase())) {
this.show_error = true;
this.error_message = "Error: Incorrect prefix."
return;
} else {
this.show_error = false;
}
// If something typed
if (val.length > 0) {
// Multiple word query
if (!sinle_term) {
// STOP if multiple not closed
if (!multi_term_closed) {
if (event.code === "Space") {
event.target.value = val + ' '
}
return
}
}
// STOP if the prefix is fine and we are at :
if (prefix_end) {
return
}
// has a prefix
if (has_prefix) {
var tmp = val.split(':')[1].trim()
sinle_term = tmp[0] !== '"';
multi_term_closed = (val.length > 1 && tmp[tmp.length - 1] === '"')
// multiple term
if (!sinle_term) {
// STOP if not closed
if (!multi_term_closed) {
if (event.code === "Space") {
event.target.value = val + ' '
}
return
}
}
val = tmp
}
if (this.validate_token(val.replaceAll('"', ''), sinle_term, p)) {
val = val.replaceAll('"', '')
this.tokens.push({
query: val,
…
[Trailing bodies are truncated]
|
---|