Delicious geohashes … mmmm … tagging *drool*

Since I got a new toy for Christmas, I’ve become interested in geolocation and the fun things you can do when you have an internet-connected GPS-enabled device in your pocket. I’m also a compulsive delicious tagger, so I quickly discovered the existing practice for geotagging delicious bookmarks.

Essentially, this seems to be: add the tag ‘geotagged‘, along with the tags ‘geo:lat=X.xxx‘ and ‘geo:lon=X.xxx‘, where the X.xxx‘s are the latitude and longtitude numbers that are likely to come straight out of your GPS, in decimal degrees (WGS84).

This is all very nice, but the problem with tags in this format is that there is no easy or efficient way to use them to retrieve all items tagged for a particular locality. Sure, if I’m standing right on top of the Eureka Tower at -37.821362,144.964213, I can search for tags geo:lat=-37.821362 and geo:lon=144.964213 to find all the geotagged links for that exact location, but what if I’m standing 50 metres across the street looking up at the tower and want to search for links near my current location ? Continue reading

Searching bioinformatic databases with YubNub

You may already be familiar with YubNub; it describes itself as “the social command line for the web”. Most commands consist of two (or more) words … one for the search engine, the other for the query.

For example, typing:

gg open science on friendfeed

into the YubNub search box searches Google for “open science on friendfeed“, via YubNub.

I thought I’d highlight a few life science- and bioinformatics-related YubNub commands I find myself using quite often in my day-to-day work. Some are commands I created, others someone else created. This is the beauty of YubNub … often someone has already made the ‘obvious’ command … it’s worth just trying to search with a command you expect to exist, since it often does.

Onward, with the list:

Continue reading

Software review: producing two dimensional diagrams of membrane proteins

E. coli LamB, presented using TMRPres2D. Not that the cytoplasmic/extracellular labels are incorrect, and should say extracellular/periplasmic.

I recently needed to make a simple, two dimensional figure of a beta-barrel membrane protein. I went hunting for programs that might take a sequence and/or structure and produce a pretty looking diagram to save me constructing everything by hand. Here are two I found and tried.

Continue reading

ResolveRef updated : now with auto-suggest and source code

I updated ResolveRef last night and checked in the most current sourcecode to svn at Google Code.

New features include:

ResolveRef, now prettier, with comments box by disqus.

  • Suggest/autocomplete for journal title field, using the journal title lists provided by PubMed.
  • A “Verify” button. Allows a ResolveRef URL to be constructed with the web form and verified as working and valid without actually forwarding the user to the article.
  • Some bugfixes (handled the case where there is no DOI in the PubMed record, handled network timeouts to PubMed)
  • Refreshed visuals
  • Disqus comments box for feedback

In the interest of just getting something working quickly, I implemented the suggest feature in the laziest, possibly most RAM and CPU hungry way possible (the “JQuery Suggest” code queries the web app with substrings as you type each character. At the server side, the app uses a regex to scan a ~1.5 Mb list of journal titles held in RAM). I’ve already noticed a few “This request used a high amount of CPU” warnings in the logs, with the threat “High CPU requests have a small quota, and if you exceed this quota, your app will be temporarily disabled“. If my nasty hack starts heating up Google’s datacentre too much, I might have to disable the ‘suggest’ feature until I can implement it “properly”.

Continue reading

ResolveRef : looking at the logs

One of the nice features of Google App Engine is you can easily view logs for your application to quickly see requests generating errors. Browsing the logs of ResolveRef, I’ve been able to identify an few classes of query which for one reason or another, weren’t working.

Continue reading