Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Need new workbench / kickouts to Textpresso to accomplish round trips #283

Closed
kltm opened this issue Feb 2, 2016 · 59 comments
Closed

Need new workbench / kickouts to Textpresso to accomplish round trips #283

kltm opened this issue Feb 2, 2016 · 59 comments

Comments

@kltm
Copy link
Member

kltm commented Feb 2, 2016

Essentially, as part of the workflow as described by @vanaukenk, we'd like to have a user looking at either an annoton or edge be able to get to a Textpresso page to create annotations (that will be fed back into noctua).

The details of these Textpresso access points are still TBD, but the details will be provided by @goldturtle and will minimally include a URL, method requirements, and parameter/arg requirements. These access points must also accept a "barista_token" arguement and a "model_id" arguement (names can be changed).

This is very closely related to #282 (get the workbench framework in place) and #147 (what Textpresso will say back to us).

Tagging @goldturtle and @vanaukenk.

@kltm
Copy link
Member Author

kltm commented Mar 7, 2016

From [deleted]

Some thoughts on what kinds of Texptresso searches I'd like to have available for curators from within annotons:

  1. If a gene product is entered, curators would be able to search using the gene product name as a keyword and a combination of categories for identifying experimental evidence for:
    MF - enzymatic activities
    MF - macromolecular interactions
    MF - union of one or more types (i.e., enzymatic activities AND macromolecular interactions)
    CC - subcellular localization
    Case sensitivity, or other differences between gene and gene product names, can be critical for getting decent precision so we may need to make it easy for curators to toggle between upper and lower cases wrt keyword, or devise some other rules for how to populate genes vs gene products as keywords (rules seem harder than toggles, though).

  2. If gene product is not known, could perform search with entire category of gene and/or protein names for a given species using the same categories as above.
    Best source of entity names and synonyms? UniProt?

Other types of MF categories, e.g. transporters, will be included in the future.

@kltm
Copy link
Member Author

kltm commented Mar 7, 2016

[deleted] you want to be targeting this ticket for the Textpresso interaction.

@vanaukenk
Copy link

@kltm - sorry not quite following. Should I put this on a different ticket?

@kltm
Copy link
Member Author

kltm commented Mar 7, 2016

[deleted] No everything on this ticket--you had previously been commenting on #282 (unrelated), but I've cleaned that out, deleted it, and re-added it here.

@kltm kltm modified the milestones: 2016-02-push , 2016-03-push Mar 7, 2016
@vanaukenk
Copy link

Okay, got it. Thx.

@goldturtle
Copy link

Hi there,

sorry for the delay, we have been busy developing the site in other
areas. Here is an example link with the maximal # of parameter for
searching TPC.

http://sandbox.textpresso.org/cgi-bin/tc/tpc/search?scope=sentence&literature=C.%20elegans&category=duration%20%28PATO:0001309%29&keyword=eggs&author=Davis&year=2008-05&accession=18336629&journal=Alcohol&exclude=acute

Not all parameters have to be provided. The shortest link would be

http://sandbox.textpresso.org/cgi-bin/tc/tpc/search?keyword=eggs

All text input parameters and the category parameter can be repeated to
include more item.

Let me know if you have further questions.
Michael.

On 03/07/2016 12:20 PM, vanaukenk wrote:

Okay, got it. Thx.


Reply to this email directly or view it on GitHub
#283 (comment).

@kltm
Copy link
Member Author

kltm commented Apr 7, 2016

@goldturtle Great, thank you. I was wrapped up this week finalizing the AmiGO release, but should be able to turn back to Noctua this upcoming week. I'll try to get this addition in as soon as the workbench/plugin system has been reviewed.

@kltm kltm modified the milestones: 2016-03-push , 2016-04-push (biocurator conference) Apr 12, 2016
@kltm
Copy link
Member Author

kltm commented Apr 12, 2016

I've taken a quick look at the URLs that you've provided. Does one have to be logged in to see results? I tried a few variations, but could not see much.

Also, should the variable "barista_token" be passed as well, so that the data push can occur?

@kltm
Copy link
Member Author

kltm commented Apr 12, 2016

[NOTE: Edited out all comments to/about the other vanauken so it stops coming up in my autocomplete.]
Ouch, sorry. Noted and we'll try and be more careful.

@goldturtle
Copy link

Oops.Yes, you need to be logged in. Just implemented literature access permission yesterday. Need to design it differently then.

barista_token should be passed. It's being passed back to noctua for the roundtrip.

@goldturtle
Copy link

This is fixed now in a sense that it leads you to a login popup if you are not logged in. You can check a 'remember me' box, so you only need to do a login once. The 'remember me' function lasts for 4 weeks before you need to reenter your credentials again.

@kltm
Copy link
Member Author

kltm commented Jun 16, 2016

@goldturtle Okay, I got a chance to look at this. I can now login...but there doesn't seem to be much loaded at this point? From here, is the expectation that there would be a button to kick back to Noctua after annotation?

@goldturtle
Copy link

I have changed the permissions for you so you can search some
literatures now.

Indeed, the curation form will be specified by a curator to send it back
to noctua. Any token sent to us will be returned.

Michael.

On 06/16/2016 04:52 AM, kltm wrote:

@goldturtle https://github.com/goldturtle Okay, I got a chance to
look at this. I can now login...but there doesn't seem to be much
loaded at this point? From here, is the expectation that there would
be a button to kick back to Noctua after annotation?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#283 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/AIPBGyPvJQGfVe9pQxsgNquAiNe19jT1ks5qMTj5gaJpZM4HR9CL.

Hans-Michael Muller, PhD
Scientific Analysis
M/C 156-29
California Institute of Technology
Pasadena, Ca 91125

@kltm
Copy link
Member Author

kltm commented Jun 17, 2016

Okay, I'm now getting results. Playing with the environment in the first link (#283 (comment)), it does seem that the variable are preserved, but I'm having trouble getting the payload to export; I tried exporting, had no luck, and then was unable to view papers to try more. So two questions: 1) is there an expectation to be able to get back into Noctua at this point and 2) is it possible that I crashed the sandbox system?

@goldturtle
Copy link

  1. Supposedly, but it might have to be better documented. We have never
    tried out the complete loop, I thought we would try it out with Noctua.
    So I am eager to do this, however, I am on vacation next week, so it
    would have to wait until the week of 6/27.

  2. No, you didn't crash the system. If you are on a slow internet
    connection, then it can take a minute or more to load the paper in your
    browser. There is a lot to be loaded, as the viewer is very interactive,
    so a lot of javascript (each word is clickable, some have actions when
    you mouse-over etc).

M.

On 06/16/2016 11:59 PM, kltm wrote:

Okay, I'm now getting results. Playing with the environment in the
first link (#283 (comment)
#283 (comment)),
it does seem that the variable are preserved, but I'm having trouble
getting the payload to export; I tried exporting, had no luck, and
then was unable to view papers to try more. So two questions: 1) is
there an expectation to be able to get back into Noctua at this point
and 2) is it possible that I crashed the sandbox system?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#283 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/AIPBGzQLbsdyoQu2URlU5X4Xcn6hxDUhks5qMkXGgaJpZM4HR9CL.

@kltm
Copy link
Member Author

kltm commented Jun 20, 2016

Great--thank you. We're going to work out a couple of other things here--there is plenty for us to work on until you get back.

@goldturtle
Copy link

Hi there,
I'd like to test the Noctua-Textpresso loop now. I think I would need an account on Noctua. The linkout to Textpresso would be:

http://sandbox.textpresso.org/cgi-bin/tc/tpc/search?token=abcdefg

Could you place it under the workbenches tab for now? Also if you have a development server, I would prefer to work on that. I don't want much traffic from outsiders on our dev server (which the above url leads to). For the way back from Textpresso to Noctua, it would be sufficient for now to land on a splash page, displaying all parameters sent back to you (either as JSON or URI).

Let me know what you think.
Michael.

@kltm
Copy link
Member Author

kltm commented Jan 13, 2017

@goldturtle Sorry, it might take a minute to get my head back in the headspace again, but I'll work from this command above as a reference: #283 (comment) .

Looking at that, it seems that you're trying to use the /outgoing/ parameters as an argument, rather than the specified incoming ones. To rewrite what you're doing with the current API would be:

http --json noctua.berkeleybop.org/tractorbeam token=fp77a1l4if76y0tcg0p4 x-model-id=gomodel:584b49fa00000194 x-client-id=tpc requests:='[{"database-id":"UniProtKB:A0A005", "evidence-id":"ECO:0000314", "class-id":"GO:0050689", "reference-id":"PMID:666333", "external-id":"TPDBID:0123456", "comments":"yo!"}]'

Appearing correctly(?) at: http://noctua.berkeleybop.org/editor/graph/gomodel:584b49fa00000194

(It also looks like you're using and "=" instead of a ":" in the gomodel argument.)

@goldturtle
Copy link

goldturtle commented Jan 14, 2017

@kltm

Does the order of arguments in requests matter? And if so, could we make it such that it does not matter? I will not have much control over the order as users design the TPC curation form and thus the order. See the following, I just switched database-id and evidence-id:

mueller@turtlebook:~$ http --json http://noctua.berkeleybop.org/tractorbeam token=fp77a1l4if76y0tcg0p4 x-client-id=tpc x-model-id=gomodel:584b49fa00000194 requests:='[{"evidence_id":"ECO:0000314", "database_id":"UniProtKB:A0A005", "class_id":"GO:0050689", "reference_id":"PMID:666333", "external_id":"TPDBID:0123456", "comments":"yo!"}]'
HTTP/1.1 404 Not Found
Connection: Keep-Alive
Content-Length: 89
Content-Type: application/json; charset=utf-8
Date: Sat, 14 Jan 2017 03:06:29 GMT
ETag: W/"59-RGZibQRKJtifoI5CQWoliw"
Keep-Alive: timeout=5, max=100
Server: Apache/2.4.18 (Ubuntu)
X-Powered-By: Express

{
    "commentary": "n/a", 
    "message": "insufficient arg data to continue", 
    "message-type": "error"
}

mueller@turtlebook:~$ http --json http://noctua.berkeleybop.org/tractorbeam token=fp77a1l4if76y0tcg0p4 x-client-id=tpc x-model-id=gomodel:584b49fa00000194 requests:='[{"database-id":"UniProtKB:A0A005", "evidence-id":"ECO:0000314", "class-id":"GO:0050689", "reference-id":"PMID:666333", "external-id":"TPDBID:0123456", "comments":"yo!"}]'
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Length: 1882
Content-Type: application/json; charset=utf-8
Date: Sat, 14 Jan 2017 03:06:37 GMT
ETag: W/"75a-9khtXe2uqIuRqg12UzRKQQ"
Keep-Alive: timeout=5, max=100
Server: Apache/2.4.18 (Ubuntu)
X-Powered-By: Express

{
    "data": {
        "annotations": [
            {
                "key": "state", 
                "value": "development"
            }, 
            {
                "key": "title", 
                "value": "MyFunnyModel"
            }, 
            {
                "key": "date", 
                "value": "2017-01-13"
            }, 
            {
                "key": "contributor", 
                "value": "http://orcid.org/0000-0003-1036-3051"
            }, 
            {
                "key": "http://www.geneontology.org/formats/oboInOwl#id", 
                "value": "gomodel:584b49fa00000194"
            }, 
            {
                "key": "contributor", 
                "value": "GOC:kltm"
            }
        ], 
        "facts": [
            {
                "annotations": [
                    {
                        "key": "evidence", 
                        "value": "gomodel:584b49fa00000194/586fc17a00000141", 
                        "value-type": "IRI"
                    }, 
                    {
                        "key": "contributor", 
                        "value": "http://orcid.org/0000-0003-1036-3051"
                    }, 
                    {
                        "key": "date", 
                        "value": "2017-01-13"
                    }, 
                    {
                        "key": "comment", 
                        "value": "TPDBID:0123456"
                    }, 
                    {
                        "key": "comment", 
                        "value": "yo!"
                    }
                ], 
                "object": "gomodel:584b49fa00000194/586fc17a00000140", 
                "property": "RO:0002333", 
                "property-label": "enabled_by", 
                "subject": "gomodel:584b49fa00000194/586fc17a00000139"
            }
        ], 
        "id": "gomodel:584b49fa00000194", 
        "individuals": [
            {
                "annotations": [
                    {
                        "key": "date", 
                        "value": "2017-01-13"
                    }, 
                    {
                        "key": "contributor", 
                        "value": "http://orcid.org/0000-0003-1036-3051"
                    }
                ], 
                "id": "gomodel:584b49fa00000194/586fc17a00000140", 
                "type": [
                    {
                        "id": "UniProtKB:A0A005", 
                        "type": "class"
                    }
                ]
            }, 
            {
                "annotations": [
                    {
                        "key": "source", 
                        "value": "PMID:666333"
                    }, 
                    {
                        "key": "contributor", 
                        "value": "http://orcid.org/0000-0003-1036-3051"
                    }, 
                    {
                        "key": "date", 
                        "value": "2017-01-13"
                    }
                ], 
                "id": "gomodel:584b49fa00000194/586fc17a00000141", 
                "type": [
                    {
                        "id": "ECO:0000314", 
                        "label": "direct assay evidence used in manual assertion", 
                        "type": "class"
                    }
                ]
            }, 
            {
                "annotations": [
                    {
                        "key": "date", 
                        "value": "2017-01-13"
                    }, 
                    {
                        "key": "contributor", 
                        "value": "http://orcid.org/0000-0003-1036-3051"
                    }
                ], 
                "id": "gomodel:584b49fa00000194/586fc17a00000139", 
                "type": [
                    {
                        "id": "GO:0050689", 
                        "label": "negative regulation of defense response to virus by host", 
                        "type": "class"
                    }
                ]
            }
        ], 
        "modified-p": true
    }, 
    "intention": "action", 
    "is-reasoned": false, 
    "message": "success", 
    "message-type": "success", 
    "packet-id": "21653ba07934e430d", 
    "provided-by": [], 
    "signal": "merge", 
    "uid": "http://orcid.org/0000-0003-1036-3051"
}

@kltm
Copy link
Member Author

kltm commented Jan 16, 2017

@goldturtle Those are hash entries, so order does not matter.
However, it would seem that in one case you're using database_id, and in another case database-id. The strings should be in the latter form--underscore versus dash.

@goldturtle
Copy link

goldturtle commented Jan 16, 2017 via email

@kltm
Copy link
Member Author

kltm commented Jan 16, 2017

The examples may have changed over time as we have gone through different methods of doing these ops; it's best to use the most recent example above.
(We'll hopefully get the final bits more concrete and super well documented soon.)

@goldturtle
Copy link

@kltm Perfect. The N-T-N loop works for me now (see attachment).

@vanaukenk I will implement it Tues or Wed on tpc.textpresso.org so you modify your form and try it out.

untitled

@vanaukenk
Copy link

@goldturtle and @kltm - thank you both very much. Looking forward to trying out the loop this week.

@goldturtle
Copy link

@vanaukenk

The loop is now ready for testing. You need to modify your TPC curation form by entering a new URL address: http://tpc.textpresso.org/cgi-bin/tc/NoctuaOut. You also need to change the Format for Sending Data: to URI. When sending data to Noctua choose the button with green text color when you encounter one. Attached is the toy curation form that worked for me.

untitled

@kltm
Copy link
Member Author

kltm commented Jan 18, 2017

This is really exciting. Could you document for us what you're doing at the TPC end as far as posting to us goes? Are you using an application/x-www-form-urlencoded action?

@goldturtle
Copy link

goldturtle commented Jan 18, 2017 via email

@vanaukenk
Copy link

Successful round trip of a ZYG-1 protein serine/threonine kinase annotation from Noctua to TPC and back to Noctua:

slide1

We will need to work on making the TPC form more efficient for curators, but the communication works!

@goldturtle
Copy link

goldturtle commented Jan 20, 2017 via email

@cmungall
Copy link
Member

👍

@vanaukenk
Copy link

Hi @kltm
I was trying the N-T-N roundtrip yesterday and again this morning but was not able to get a response from the Noctua server. @goldturtle also tried yesterday from the command line on his machine and got the following error message:

http: error: ConnectionError: HTTPConnectionPool(host='http%3a%2f%2fnoctua.berkeleybop.org%2ftractorbeam', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f67933f8dd0>: Failed to establish a new connection: [Errno -2] Name or service not known',))

Is there anything we need to update on our end to re-establish a working pipeline? Thx.

@kltm
Copy link
Member Author

kltm commented Apr 28, 2017

Well, there was some brief weirdness with Noctua yesterday, but it was cleared last night, so likely not related.

From the command line right now, as outlined in #283 (comment), I can run the command:

http --json noctua.berkeleybop.org/tractorbeam token=PUTYOUROWNTOKENHERE x-model-id=gomodel:55ad81df00000001 x-client-id=tpc requests:='[{"database-id":"UniProtKB:A0A005", "evidence-id":"ECO:0000314", "class-id":"GO:0050689", "reference-id":"PMID:666333", "external-id":"TPDBID:0123456", "comments":"yo!"}]'

which successfully adds to the Scratch model.

@goldturtle
Copy link

goldturtle commented Apr 28, 2017 via email

@vanaukenk
Copy link

Closing for now, but we could review this ticket for future work on curation tool integration.

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

4 participants