O'Really?

April 25, 2008

WWW2008: The Great Firewall of China

Passage [The Great Wall / Beijing] by d'n'cThe seventeenth international World Wide Web conference (WWW2008.org) is currently finishing in Beijing, China. There are some interesting papers this year. Thankfully, the Great Firewall of China doesn’t prevent these papers reaching the rest of the world. It’s One World, One Web (allegedly). Here are some brief highlights from the conference. (more…)

April 4, 2008

myScience: “social software” for scientists

myExperimentWith apologies to Jonathan Swift:

“Great sites have little sites upon their back to bite ’em
And little sites have lesser sites, and so ad infinitum…”

So what happened was, Carole Goble asked on the myExperiment mailing list, “is there a list of scientist social networking sites”? Here is first attempt at such a list (not comprehensive), you’ll have to decide for yourself which are the great, greater, little and lesser sites.
(more…)

September 5, 2007

Semantic Biomedical Mashups with Connotea


Mashup or Shutup

The Journal of Biomedical Informatics (JBI), will soon be publishing their special issue on Semantic Biomedical Mashups (can you fit any more buzzwords into a Call For Papers?!). Ben Good and friends have submitted a paper on their Entity Describer which extends connotea using some Semantic Web goodness. They’d appreciate your comments on their submitted manuscript over at i9606. As Ben says, their pre-publication turns out to be an interesting experiment “figuring out how blogging might fit into the academic publishing landscape”. If this interests you, get commenting now!

Update: Just spotted this interesting graphic of the Elsevier / Evilsevier logo (snigger), who are the publishers of JBI…

August 6, 2007

Scifoo day three: Genome Voyeurism with Lincoln Stein

On day three of Science Foo Camp (scifoo) biologist Lincoln Stein (picture right) gave a presenation on what he calls “genome voyeurism”, using Jim Watsons genome as an example. This session demonsrated the current and future possibilities of individuals having their own DNA sequenced, what has been called “personal genomics“.

Unlike the session on genomics yesterday on day two, where George Church, Eric Lander, 23andme, Sergey and Larry (and even Sergey’s pet dog) are all present, today they are conspicuously absent.

Lincolns presentation starts with a video (see youtube video below) of Jim Watson receiving his genome on a disk from Baylor College of Medicine, Houston. Lincoln tells how Jim puts his genome (stored on a hard drive) next to his Nobel prize medallion in his office. After all the press publicity, Jim deposits the data in GenBank, and it becomes available worldwide. (more…)

Scifoo day two: Good Morning Mashup

Vince Smith, Brian Berman, Paul Ginsparg, Linda Miller, John SantiniSome of the most interesting conversations you have at Science Foo Camp (scifoo) are in the corridors, foo bars and even the bus that shuttles between the Googleplex and the hotel…On Saturday, for example, I ride the bus with David Hawkins who is a laywer working in the area of climate change. He tells me all about the legal issues, how climate modelling works and little on Bjørn Lomborg, who is also here. I tell him about workflows on the web and bioinformatics. We work in completely different areas, and we’d never normally meet. But in a short conversation, we manage to learn a little from each other and find connections. The problems that climateprediction.net face, turn out to be quite similar to the problems that genomics faces in integrating data on the web. When we arrive at the Googleplex, it’s time for Open Science… (more…)

June 2, 2006

Debugging Web Services

Filed under: biotech,informatics — Duncan Hull @ 11:19 pm
Tags: , , , , , , , , ,

IMGP4014There are a growing number of biomedical services out there on Wild Wild Web for performing various computations on DNA, RNA and proteins as well as the associated scientific literature. Currently, using and debugging these services can be hard work. SOAP UI (SOAP User Interface) is newish and handy free tool to help debug services and get your in silico experiments and analyses done, hopefully more easily.

So why should bioinformaticans care about Web Services? Three of the most important advantages are:

  1. They can reduce the need to install and maintain hundreds of tools and databases locally on desktop(s) or laboratory server(s) as these resources are programmatically accessible over the web.
  2. They can remove the need for tedious and error-prone screen-scraping, or worse, “cut-and-paste” of data between web applications that don’t have fully programmatic interfaces.
  3. It is possible to compose and orchestrate services into workflows or pipelines, which are repeatable and verifiable descriptions of your experiments that you can share. Needless to say, sharing repeatable experiments has always been important part of science, its shouldn’t be any different on the Web of Science.

All this distributed computing goodness comes at a price though and there are several disadvantages of using web services. We will focus on one here: Debugging services, which can be problematic. In order to do this, bioinformaticians need to understand a little bit about how web services work and how to debug them.

Death by specification

Debugging services sounds straightforward, but many publicly available biomedical services, are not the simpler RESTian type, but the more complex SOAP-and-WSDL type of web service. Consequently, debugging usually requires a basic understanding these protocols and interfaces, the so-called Simple” Object Access Protocol (SOAP) and Web Services Description Language (WSDL). However these specifications are both big, complicated and being superceded by newer versions so you might lose the will-to-live while reading them. Also, individual services described in WSDL are easier for machines to read, than for humans, and therefore give humble bioinformaticians a big headache. As an example, have a look at the WSDL for BLAST at the DNA Databank of Japan (DDBJ).

So, if you’re not intimately familiar with the WSDL 1.1 specification (frankly, life is too short and they keep moving the goal-posts anyway), it is not very clear what is going on here. WSDL describes messages, port types, end points, part-names, bindings, bla-bla-bla, and lots of other seemingly unnecessary abstractions. To add insult to injury WSDL is used in several different styles and is expressed in verbose XML. Down with the unnecessary abstractions! But the problems don’t stop there. From looking at this WSDL, you have to make several leaps of imagination to understand what the corresponding SOAP messages this BLAST service accepts and responds with will look like. So when you are analysing your favourite protein sequence(s) with BLAST or perhaps InterProScan it can be difficult or impossible to work out what went wrong.

Using SOAPUI

This is where SOAPUI, can make life easier. You can launch SOAPUI using the Java Web Start, load a WSDL in and you can begin to see what is going on. One of the nice features, is it will show you what the SOAP messages look like, which saves you having to work it out in your head. So, going back to our BLAST example…

  1. Launch the SOAPUI tool and select File then New WSDL Project (Give project a name and save it when prompted).
  2. Right click on the Project folder and select add WSDL from URL
  3. Type in http://xml.nig.ac.jp/wsdl/Blast.wsdl or your own favourite from this list of molecular biology wsdl.
  4. When asked: Create default requests for all operations select Yes
  5. The progress bar will whizz away while it imports the file, once its done, you can see a list of operations
  6. If you click on one of them e.g. searchParam then Request1, then select Open Request Editor it spawns two new windows…
  7. The first (left-hand) window shows the SOAP request that is sent to the BLAST service:
    <soapenv:Envelope
    	... boring namespace declarations ... >
    	 <soapenv:Body>
    
    		<blas:searchParam soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    			<!-- use BLASTp -->
    			<program xsi:type="xsd:string">blastp</program>
    
    			<!-- Use SWISSPROT data  -->
    			<database xsi:type="xsd:string">SWISS</database>
    
    			<!-- protein sequence -->
    			<query xsi:type="xsd:string">MHLEGRDGRR YPGAPAVELL QTSVPSGLAE LVAGKRRLPR GAGGADPSHS</query>
    
    			<!-- no parameters -->
    			<param xsi:type="xsd:string"></param>
    		</blas:searchParam>
    
    	</soapenv:Body>
    </soapenv:Envelope>
  8. When you click on the green request button, this message is sent to the service. Note: you have to fill in the parameters values as they default to: “?”.
  9. After submitting the request above, the SOAP response appears in the second (right-hand) window:
    <soap:Envelope
    ... namespace declarations... >
       <soap:Body>
    
          <n:searchParamResponse xmlns:n="http://tempuri.org/Blast">
             <Result xsi:type="xsd:string">BLASTP 2.2.12 [Aug-07-2005] ...
    		 Sequences producing significant alignments:                      (bits) Value
    		 sp|Q04671|P_HUMAN P protein (Melanocyte-specific transporter pro...   104   8e-23 ...
    		 </Result>
          </n:searchParamResponse>
       </soap:Body>
    </soap:Envelope>

Not all users of web services will want the gory details of SOAP, but for serious users, its a handy tool for understanding how any given web service works. This can be invaluable in working out what happened if, or more probably when, an individual service behaves unexpectedly. If you know of any other tools that make web services easier to use and debug, I’d be interested to hear about them.

Conclusions: It’s not rocket science

In my experience, small tools (like SOAPUI) can make a BIG difference. I’ve used a deliberately simple (and relatively reliable) BLAST service for demonstration purposes, but the interested reader / hacker might want to use this tool to play with more complex programs like the NCBI Web Services or InterProScan at the EBI. Using such services often requires good testing and debugging support, for example, when you compose (or “mashup”) services into complex workflows, using a client such as the Taverna workbench. This is where SOAP UI might just help you test and debug web services provided by other laboratories and data centres around the world, so you can use them reliably in your in silico experiments.

Creative Commons License

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.

Blog at WordPress.com.