OMA Orthology database

Usefulness / Support for Turtle Data Format

Started at: 2024-11-20 14:06:52 UTC
Finished at: 2024-11-20 14:06:54 UTC

The endpoint does not support content negotiation for text/turtle

Elapsed time1.773 [s]
RequestMethod
POST
URL
https://sparql.omabrowser.org/sparql
Headers
User-Agent: Umaka-Crawler/1.0.0 by DBCLS (umakadata@dbcls.jp)
Accept: application/sparql-results+json, application/sparql-results+xml, text/boolean, text/tab-separated-values;q=0.8, text/csv;q=0.2, */*;q=0.1
Content-Type: application/x-www-form-urlencoded
Body
query=SELECT+%3Fs+WHERE+%7B+GRAPH+%3Fg+%7B+%3Fs+%3Fp+%3Fo+.+FILTER%28STRSTARTS%28STR%28%3Fs%29%2C+%22https%3A%2F%2Fomabrowser.org%2Foma%2Finfo%2F%22%29%29+%7D+%7D+LIMIT+1
ResponseURL
https://sparql.omabrowser.org/sparql/
Status
200
Headers
Server: nginx/1.27.1
Date: Wed, 20 Nov 2024 14:06:38 GMT
Content-Type: application/sparql-results+json
Content-Length: 197
Connection: keep-alive
Accept-Ranges: bytes
Content-Disposition: filename=sparql_2024-11-20_14-06-38Z.json
Strict-Transport-Security: max-age=31536000
Body

{ "head": { "link": [], "vars": ["s"] },
  "results": { "distinct": false, "ordered": true, "bindings": [
    { "s": { "type": "uri", "value": "https://omabrowser.org/oma/info/ACACA00379" }} ] } }
Elapsed time2.356 [s]
RequestMethod
GET
URL
https://omabrowser.org/oma/info/ACACA00379
Headers
User-Agent: Umaka-Crawler/1.0.0 by DBCLS (umakadata@dbcls.jp)
Accept: text/turtle
Body
ResponseURL
https://omabrowser.org/oma/info/ACACA00379/
Status
200
Headers
Date: Wed, 20 Nov 2024 14:06:53 GMT
Server: nginx
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Type: text/html; charset=utf-8
X-Frame-Options: SAMEORIGIN
Vary: Cookie
Set-Cookie: csrftoken=cot11w8xIyb1gum2lod4SSh03SO4OYD8SQQJNLaUVBa0QTlbwFsp6SygrUvQB1rX; expires=Wed, 19 Nov 2025 14:06:53 GMT; Max-Age=31449600; Path=/; SameSite=Lax
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Transfer-Encoding: chunked
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&amp;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]
Elapsed time1.773 [s]
RequestMethod
POST
URL
https://sparql.omabrowser.org/sparql
Headers
User-Agent: Umaka-Crawler/1.0.0 by DBCLS (umakadata@dbcls.jp)
Accept: application/sparql-results+json, application/sparql-results+xml, text/boolean, text/tab-separated-values;q=0.8, text/csv;q=0.2, */*;q=0.1
Content-Type: application/x-www-form-urlencoded
Body
query=SELECT+%3Fs+WHERE+%7B+GRAPH+%3Fg+%7B+%3Fs+%3Fp+%3Fo+.+FILTER%28STRSTARTS%28STR%28%3Fs%29%2C+%22https%3A%2F%2Fomabrowser.org%2Foma%2Finfo%2F%22%29%29+%7D+%7D+LIMIT+1
ResponseURL
https://sparql.omabrowser.org/sparql/
Status
200
Headers
Server: nginx/1.27.1
Date: Wed, 20 Nov 2024 14:06:38 GMT
Content-Type: application/sparql-results+json
Content-Length: 197
Connection: keep-alive
Accept-Ranges: bytes
Content-Disposition: filename=sparql_2024-11-20_14-06-38Z.json
Strict-Transport-Security: max-age=31536000
Body

{ "head": { "link": [], "vars": ["s"] },
  "results": { "distinct": false, "ordered": true, "bindings": [
    { "s": { "type": "uri", "value": "https://omabrowser.org/oma/info/ACACA00379" }} ] } }
Elapsed time2.356 [s]
RequestMethod
GET
URL
https://omabrowser.org/oma/info/ACACA00379
Headers
User-Agent: Umaka-Crawler/1.0.0 by DBCLS (umakadata@dbcls.jp)
Accept: text/turtle
Body
ResponseURL
https://omabrowser.org/oma/info/ACACA00379/
Status
200
Headers
Date: Wed, 20 Nov 2024 14:06:53 GMT
Server: nginx
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Type: text/html; charset=utf-8
X-Frame-Options: SAMEORIGIN
Vary: Cookie
Set-Cookie: csrftoken=cot11w8xIyb1gum2lod4SSh03SO4OYD8SQQJNLaUVBa0QTlbwFsp6SygrUvQB1rX; expires=Wed, 19 Nov 2025 14:06:53 GMT; Max-Age=31449600; Path=/; SameSite=Lax
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Transfer-Encoding: chunked
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&amp;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]