Team:Freiburg software/Project depricated

The transmission and manipulation of common data like graphics, rich text documents, videos and other media is based on widely adopted standards. Not so for scientific data. You cannot embedded protein data into a website easily. You can send it by E-Mail to other scientists, but their mail clients have no idea how to handle this data. For manipulating and even displaying synthetic biological information, users are still dependent on their individual software environment.

State of the art
Modern ways of communication and collaboration in the web are stamped by the following characteristics:
 * Usage of rich internet applications (RIA). They can be accessed by a browser via the internet but their look-and-feel reminds the user of desktop applications.
 * Normalized usage of data such as rich text documents and other media such as picture, video, music.
 * Semantically annotated and linked data so that data can be understood in its context.
 * A strong tendency to multi-user conversation and collaboration. Everybody is welcome to contribute content.
 * Minimal effort needed to participate.

TODO: state of art from the biology side...
 * Biological data is stored in many different and specialized formats on many different locations both in form of files and databases.
 * Sequence analysis and manipulation is only possible in expensive, purpose-build desktop applications or low-level software suits like EMBOSS, conatining huge amounts of little commandline driven programs which need improved knowledge on bioinformatic scripting.
 * Arising connection between different databases but only in form of metadatabases and new and currently less supported standards.
 * Only separated User-to-user communication.
 * Much effort needed to communicate and collaborate with biological data. Barely more then emails, business trips and the good old phone call.

our work


When we first heard of Google Wave, we instantly noticed it could be the solid basis we were looking for to build such a next level biological software-suite. As we got access to its developer preview version later, we were quite confirmed in this approach but soon noticed that we would need a lot of features not yet build-in in Wave, some not yet even planned.

As far as we know, SynBioWave is the only approach to write a collaborative web-based biological software, as well as the only bigger project based on Google Wave. Entering that unknown territory gave us lots of problems to bother our heads about:


 * We spend weeks to go deep down to the fundamentals of wave in order to implement basic things like file up- and download. SynBioWave is the only Wave development that managed to do this so far!
 * We are the first (and maybe only) Developers creating a project consisting of multiple Wave-Robots and therefor had to think about a way to make this robots communicate with each other. Google has not foreseen this need of Robot-Robot-Communication and has not even decided to add this to their Robot-API.
 * We took time exploring Google Wave to get a feeling for Wave and its typical, conversation-like workflow that feels very natural. We worked closely with the biologist of the Freiburg Bioware Team and different labs at Freiburg University to create a new wave-y way of doing bioinformatical tasks. Easy and clear usability is of high importance for us!
 * In order to create some of this usability, we created a highly dynamic menu-system, which allows users to add the functions they need (in form of robots) to a wave. Such an approach is absolutely unique in Google Wave.
 * To lay ground for an successful open source project, we wrapped all these efforts into an easy to implement framework, allowing developers to contribute to SynBioWave. One key feature of this framework is an abstract template class which can be used for the implementation of additional functionality without worrying about the issues mentioned above.

Additionally, we created a basic stack of Robots to prove and demonstrate the concept of SynBioWave.

The resulting software


The result of four month development is enjoyable! We have extended Wave to handle synthetic biological data. Biologists can not only document research results, but also record and share the process of creating these. Moreover scientists can collaboratively perform basic biosynthetic tasks using SynBioWave.

For example, users can start conversations, invite participants, import sequences from several resources, comment data, perform some tasks and display or export the results. Each participant experiences the others' actions in real time. New participants track back the hole process using the playback function. And all you need is a browser connected to the internet. Could it be easer to invite colleges to your research?

Key features of SynBioWave
 * open source, free web application accessible from every computer connected to the internet
 * strong communication and collaboration functionality
 * embedding of common data like rich text documents, pictures, videos, formulas and many more (using other extensions of wave)
 * embedding of synthetic biological data possible
 * basic synthetic biology functionality
 * new participants track back history using the playback function
 * easyly extendable framework, custom/additional biosythetic functions are easy to implement

=Concept=

Our concept is to create a collaborative software suite called SynBioWave for synthetic biology purpose. SynBioWave is a Google Wave extension using BioJava to add synthetic biology functionality, giving synthetic biological research access to the collaborative and interactive web 2.0. Using SynBioWave, scientists can share their results in Waves or even conduct research together from different places around the world. Users can add and modify sequences within conversations while others observe the progress or even interact. Participants can be invited to a conversation any time and track back the collaboration process using the playback function, which fully supports all biosynthetic contents.

SynBioWave makes use of Wave's powerful communication and collaboration functionality and is designed to be be easily extended with new synthetic biology functionality. Mashing up the reinvention of the email with a major library for processing synthetic biology data, raises science collaboration to a new level.

Our small team of three developers will not be able to create a full-value synthetic biology software by iGEM Jamboree 2009. Our goal is to lay the foundation for a robust software suite and to demonstrate the benefits of this wave approach for synthetic biological research. Moreover we implement some basic biological functionality to demonstrate this concept.

SynBioWaves' key features

 * open source, free web application accessible from every computer connected to the internet
 * strong communication and collaboration functionality
 * basic synthetic biology functionality
 * easy to extended with additional synthetic biology functionality

The road to success
TODO: Grafik

For addressing a wide audience of users and contributers, SynBioWave is published under a free licence. This will attract other developers creating new functions or modify the software for their own purpose.

One of the key goals of SynBioWave is the feature of easy-extendibility. We want to create a framework that allows other developers to contribute new biosynthetic functionality with a minimum knowledge of Wave development. For this purpose SynBioWave offers an abstract robot class which can be regarded as a template for biosynthetic functions. This concept has very nice side-effect: SynBioWave can be easily customized by adding and removing robots which represent certain function.

SynBioWave will not only be a simple mashup, a synthetic biological software running inside a wavelet. It will be a perfect symbioses of Wave and BioJava. The look and feel of SynBiowave will perfectly fit in the Wave concept. Waves real-time-editing, multi-user-editing functions as well as the playback function must work in harmony with SynBioWave. This sounds quite trivial. But looking at the current Wave extensions gives reason to be concerned about this.

Benefits of the symbioses
Building SynBioWave as mashup of Wave and BioJava brings up certain benefits:
 * no need for building the whole application from scratch
 * get the communication and collaboration features for nothing (wave)
 * get multi-user editing for nothing (wave)
 * get real-time editing for nothing (wave)
 * as a web application, SynBioWave can be accessed from any computer connected to the internet.
 * easy to setup. No local installation is needed
 * get many key bio features for nothing (biojava)
 * robust and high quality software basis
 * As Google's latest child, wave is going to be talked of a lot. As one of the first application using google wave, SynBioWave has probably a huge audience

challenge and difficulties

 * With the begin of SynBioWave's development, wave is in a very unstable Alpha version available. Even the API is still weak and might change. There is not much documentation and discussion yet, many Bugs and "no-yet-implemented-features" often nearly drove us crazy.
 * At the moment, Google forces developers to host Robots trough their AppEngine-project. AppEngine has every strict limitations build-in, making it incredible hard for us to implement even simple features like file up- and download. Nearly no existing bioinformatic Java-class works on AppEngine without modifications. When Google opens Wave for own robot-servers, these problems will instantly vanish. They have announced to do so in the foreseeable future.
 * Developing a collaborative web application faces programmers special challenges and difficulties. For example, multi-user editing and real-time editing issues the challenge of synchronising user input. What happens, for example, if two users submit contrary input at the same time?