Team:Potsdam Bioware/Software

From 2011.igem.org

Revision as of 19:58, 21 September 2011 by UP Paul (Talk | contribs)

Software

In a world full of smartphones you have apps for anything. Recognizing songs from radio or apps for shopping lists, you can find almost everything. But what is missing? What about an useful app, an app for lab-work, an app where you can upload your protocols following it during your work step by step? Don’t you think something like that is missing on the market?

We developed the solution for this problem! During our iGEM project we created an application for smartphones that helps to keep your lab book on your smartphone!

You can download a protocol for your running experiment and then just follow it step by step. Check marks help you to assign steps you already finished. And if something unusual or something interesting or unexpected happens while you are performing a step from the protocol you can write and store comments within every item of a protocol list. Of course your comments can be edited or removed completely! Steps which require incubation have a timer that can be presetted if necessary. You do not even have to worry about the equipment you might need for your experiment, because it is listed in the beginning of each protocol. The best thing is you can have all your protocols that you already performed or attend to perform, in your pocket. You can plan your experiments while having a beer with your friends, discuss protocols while having lunch with your colleagues or check the safety issues of an experiment during a ride to the lab!

Download it, try it, be thrilled

Short Introduction

BioLog App

Features:

Protocol list

This view contains two separated lists. The first list contains all current running protocols (which are displayed in the tab view). On click of one of the items you can jump directly to the tab in the tab view containing the protocol. The second list contains all protocols available on the device. This list can be extended with content downloaded from a server. Every item from the second list can be choosed as a new active protocol. This protocol will be added as a tab to the tab view.

Tab view

In this view all list views containing the current running protocols are accessible through separated tabs. Each tab represents one active protocol. In contrast from most other Android applications the tab bar is placed at the bottom of the display. This has two main reasons: on the one hand it is easier to reach the tabs when working with only one hand, on the other hand the handling of the app should be the same on iOS and Android because on iOS the tab bar is also placed at the bottom.

Progress report view

This view contains several informations about the current status of a protocol. Beside some information about the current state it contains a history with detailed information about actions that has taken place within the protocol. This data in addition with meta data will be stored in a copy of the processed protocol. This view is available for all active and recently active protocols.

Protocol view

Every active protocol content is displayed within a list view. The subitems of the protocol are displayed as a section within the main list view. In turn a section is also handled as a list containing the elements from the subitems of the protocol. To build the protocol view some special views are used to display its content e.g. tables or steps of a procedure. The type and content of every item in a view / section is determined by the underlying Property List (short PList). To make the content exchangeable between iOS and Android the data is described using an XML file.

Selecting entries

Every list item in the protocol view can be selected for further modification.

Commenting

A comment can be stored within every item of a protocol list. First you need to select this item and then push the menu button to gain access to the comment function. When you are done writing, the comment will be attached as a sub element of the selected item. Once a comment was written the text can be edited and removed.

Timer

A timer can occur when it is required by a step in the protocol. The timer can be presetted or not. The timer can be started and stopped by the user but is not interruptible. It is possible that a timer expires, in that case it counts the elapsed time since expiration.

Detailed Description

1 Purpose

BioLog is a program for mobile devices that helps to keep your lab book, your lab minutes and helps you prepare and execute your procedures. It is connected to a server which contains all procedures in a database. Like a logbook it takes the minutes of what happens in your procedures and gives you hints on what to do next. It contains some useful tools like timers and unit converters, that help you do your procedures. It also warns you about the risks and records that you have acknowledged them. Any action during processing the procedures are recorded and saved in separated log files. For documentation purposes the log files can be exported as plain text.

2 Feature Description
2.1 Mandatory (must have) Features: Needed for the product in order to be successful
2.1.1 Title Screen – log in

For first / new use of this application the owner have to register / log in to an account.

2.1.2 Title follow Screen – protocol list

After logging in, the user is able to select standard protocols from a list. In Addition, recently used protocols or currently running processes are shown in a history list. Selecting one of the protocols changes the view to the Protocol Detail view.

2.1.3 General Views – menu button and menu

To navigate through the application and through protocols the user has the ability to press the menu button which will let the menu to appear. The content of the menu differs depending on the view from which the menu has been called. A menu has two parts in general. The first part lets you navigate through the main application views just like the protocol list or the preferences. The second part holds design and navigational features for the current section of a protocol (e.g. taking notes to the current step of a procedure, switch over to the progress report section).

2.1.4 General Views – tab-oriented multitasking of protocol procedures

In order to work more efficient in the laboratory the user has the ability to process more then one protocol at the same time. Each protocol which needs to be processed can be chosen from the protocol list and is automatically added to an assortment of the current running procedures which is shown to the user as an apposition of tabs. Every tab represents a protocol and its content has the same appearance as if the user is working with a single protocol. Tabs must appear to the user only if more then one protocol is active at the same time. Basically tabs intends to let the user switch between two ore more currently active protocols without any restrictions.

2.1.5 General Protocol-Related - progress report section

While processing the steps of a procedure every action done related to the procedure will be recorded in chronological order by the system. Recorded actions can be: starting time, end point, time of entering and leaving a step, activation of buttons (e.g. timer, check marks), drafting and changing comments, timed and triggered notifications and warnings (e.g. expiring timers, risks), interruption and continuation of a procedure. Each record is listed in chronological order and can be shown to the user. In order to prevent losing the track the presented listing can be rearranged after various kinds of records (e.g. only comments, comments and process of the procedure).

2.1.6 Protocol Detail - Purpose Description Section

A plain text is shown to the user and informs about purpose and scope of the used procedure / method. This section is short and is eventually hidden if no information are available for this section.

2.1.7 Protocol Detail - Equipment Needed Section

A complex view which basically consists of editable text passages and a list / table. Editable means that values, which appear in this view can be changed dependent on their units.

2.1.8 Protocol Detail - Steps in Procedure Section

This view contains a list of steps which are processed by the user step by step. Every step can have independent or dependent notifications for critical, hazardous or difficult actions or actions under varying conditions. Dependencies to previous or following steps in procedure are visible to the user. Each step consist of one or more of the following kinds of views: plain text, text with editable values and units, a programmable timer and eventually a pipetting aid. If the users actions differs from the regular process he is able to comment each step and to edit values. All changes to the underlying process are logged by the system for further retrieval.

2.1.9 Protocol Detail - Risk Statement Section

This section contains two different views: plain text and text with checkmarks. The predefined checkmarks could be checked and unchecked by the user and every modification will be logged by the system. It is also possible to comment the checkmark and plain text regions in this view.

2.1.10 Protocol Detail - Documentation Section

This section only contains a editable text area. If the user wants to document something relating to the whole standard operating procedure right on the device. Every modification to this text area will be recorded by the system.

2.1.11 Protocol Detail - Related Procedures Section

Related procedures are linked and accessible over this view.

2.1.12 Protocol Detail - Notes Section

Like in 3.1.7 this section contains relevant information and links to other documents.

2.1.13 Protocol Detail - Appendices Section

This section contains documents and multimedia content

2.1.14 Protocol Detail - Start and Stop Time Recording/Bookkeeping Feature

This function is used in 3.1.4 and is used for steps which need to be done in a specific lapse of time. There are two types in general: to finish the current step the timer needs to be elapsed or stopped; further steps which are not related to a step with timer can be processed while the timer is running.

2.2 Optional (may have) Features: Nice to have, but not essential for the product success
2.2.1 Units and Conversion Tools

Conversion tool with presets and unit detection while typing.

2.2.2 General Protocol Management – time saving processing of several protocols

This feature tries to offer the best way to the user to handle and process all protocols dependent on time and effort. This feature is not meant to dictate the best way to the user and forces him to do it this way, however it offers hints to the user but leaves him free to decide to follow this hints. Hints can be shown as text or through colours. As example if a process of a protocol is blocked by a timer, protocol tabs are emphasized which can be processed while waiting for a timer to expire.

2.2.3 Protocol Detail - Timer Tool

The User can start a countdown timer that is pre-loaded with the time given in the procedure and will count down as soon as the user starts the timer. The timer alarms, when it is ready. The alarm will be repeated until acknowledged. The alarm can be acknowledged and thus be stopped. The timer can be stopped and is halted at the current position. It can be continued or re-started.

2.2.4 Protocol Detail - Reminder Alarm

If the application is closed while a timer is running a system wide notification timer will be set and reminds the user when the time is elapsed.

2.2.5 Email Reminder and Alarm

If the duration of the timer is relatively long the user can be optional reminded via email before the timer expires

2.2.6 Protocol Detail - Check Boxes for Checking off Needed Equipment in „Equipment Needed“ Section
2.2.7 Protocol Detail - Check Boxes for Checking off Done Procedure Steps in „Steps in Procedure“ Section
2.2.8 Protocol Detail - Warning Signs when higher Risk Procedures are used in all Steps and Sections
2.2.9 Protocol Detail - „Yes, I Know“ Dialog, when using higher Risk Procedures
2.2.10 Note Taking enabled everywhere
2.2.11 Photo or Video note taking (if supported by mobile device)

Automatically appended to the „Appendices“ section.

2.2.12 Audio Note Taking

Automatically appended to the „Appendices“ section.

2.2.13 Log in Feature

User has its own account where his workspace (with current protocols and their change-log) is administered.

2.2.14 List of all iGEM parts by using the online data base „partsregistry.org“
2.2.15 Search features
2.2.16 Screen Timer off Feature

The software should shut off the screen timer to disable the locking of the current screen.

2.2.17 Exact time, when a feature was ticked-off is noted
2.2.18 For risky procedure parts, the screen changes color
2.2.19 Remote alarm either as mail / invitation to cell phone
2.2.20 Ticker / counter feature for Experiments using multiple parts to count, where you are
2.2.21 Comment for each step of the procedure
2.2.22 Print out of procedures and logs from the database
2.2.23 Visibility of log is settable
2.2.24 Other Software
2.2.24.1 Protocol editor

A program which can display the XML based protocol files in highlighted plain text or in an abstracted mode. This mode displays only relevant pieces of information to the user which are separated through colors and text boxes.

2.3 Not planned Features
2.3.1 This product not meant as a mobile Version of the iGEM Web Site
3 Product use
3.1 Use areas

Biologist will use this Software on their mobile device when they are doing procedures in the lab.


3.2 User Story #1

In the morning I get into my Lab. I switch on the mobile device and select the procedure that I want to follow. I select the visibility level (public, private or some other variants) and I scroll down to the necessary parts and ingredients. Part by part I assemble them in front of me and check off the parts that I have, leaving a few open that I need to get from outside my lab. I get then and finally tick them off as well. I am using some part different then described in the recipe and I note this down as a comment – I can always comment each step. Then I follow the procedures step by step, either ticking off each step, or doing a few steps in a row and ticking them off later as a group, when I have one hand free. For exact time measurements, I use the inbuilt timer tool and for unit conversions I use the unit conversion tool. The mobile device keeps track of which parts I have already checked off and which are still open to be done. The log shows me, when I have checked the position as done. When I am close to a very risky procedure part, the screen changes the color in order to warn me, that I now must be careful. After some steps, I have to take a longer break and because I will leave the lab and also leave the mobile device in my lab, I select to get the alarm by email / reminder to my cell phone. The mobile device notes the time, when I leave the lab. In between, I can already see my partial log file on the server and print it out with the comment, that it is not yet done completely. Some hours later, when I am notified that the time needed to wait has passed, I enter the lab and resume the work on the procedure. The mobile device takes the time when I continue my work. I then have to use some matrix-style experiment work and the mobile device knows, that I use a 8x12 matrix. For every one of the 100 pieces, I can tick once on the mobile device and it shows me a matrix with visual feedback where I have already done my work and where I still need to do the experiment. When I am done, I finally can comment the outcome as being “correct / as planned”, “wrong / not as planned” or inconclusive.

3.3 User Story #2

Today I have to get three procedures to be done. I go into my lab an switch on my mobile device and select over the protocol list the procedures I want to process today. All my procedures I want to go through are now listed on my device and are separated through tabs. I prepare all my needed equipments like it is displayed in the “Equipment” section and start with the first step of one of the active protocol procedures. Then I choose the next step to process which can be from any of the three active procedures. I choose the procedure with the next step that I want to process over the tabs. In this step I need to wait until the timer elapses, this prevents me to go on in this procedure. Another tab appears highlighted and suggests me to continue my work with its procedure steps. After some steps I have finished one procedure and the remaining two procedures both have timers, the first timer blocks my procedure for about an hour and the second will also block for over 8 hours. I decide to start the second timer now and activate the first timer from the other procedure tomorrow so that I can leave the lab for today. The day after I came earlier to the lab because my application reminded me that the second timer expires in one hour. I start my application again and can continue where I have left off yesterday because the application restores the last state of process. I finish the step which contains the second timer from yesterday and start the first timer from the other procedure. I go to the protocol list and select new protocols which have to be done today.

3.4 User Story #3

I need to document my work from today. A simple way to do that is to export the log of each procedure I did today. The log contains all the information I need just like a chronological listing of what I have done and from when until when I have done this. Also all my notes are listed so that my effort is confined of editing and commenting the text.

Code

About BioLog

The BioLog App was invented in order to help Biologists and other people in the lab to reduce errors when following procedures or protocols while at the same time allowing to do annotations.

General Description

The XML format (Extensible Markup Language, en.wikipedia.org/wiki/Xml) was chosen because it is very common in the computer science world, it is versatile and a wide variety of editors support it with syntax highlighting. It can be used to describe documents and data structures and here we use it for the latter, although the result is a document.

Used XML Version, file type, header and footer data

We decided to use XML in a variant that is known in the apple world (and beyond) as property lists (.plist). Following this decision, we use xml version 1.0 and encoding UTF-8, which is not only common for apple plist files, but very popular for other XML documents as well. The files carry a .plist ending. The plist header currently consists of these three lines:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0">

The footer consists of one line, matching the <plist …> above:

</plist>

Supported data types

Our plist supports Boolean, Data, Date, Number and String as data type for a single data item. For data collections, we have Array and Dictionary.

Used keywords

The plist structure uses the following keywords for describing their data types: - String a string is surrounded by <string> and </string> and consists of all bytes between them. - Integer a number stored between the integer keywords. - Dictionary

A dictionary is described using the dict start and end keywords, e.g.: <dict> ...content in between... </dict>

A dictionary content consists of key-value pair combinations. To retrieve the value, you need the key, which is guarded by the keywords <key> and </key>. Since the type of the value can be different, the next data type following the key is the value. An entry for a title text would thus look like this example: <key>Title</key> <string>Pride and Prejudice</string> - Array

All keywords that are between the array start and end keywords are counted as array elements.


Root Object We always start with a root object of type Dictionary named "Root" that has at least one key-value pair in its dictionary

Content of the root object The Root object always has an array object named "Content".

The Content Array This is the main item for carrying the data

Download

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.