Team:Potsdam Bioware/Software
From 2011.igem.org
(→BioLog app) |
(→Download) |
||
Line 262: | Line 262: | ||
== Download == | == Download == | ||
- | Here you can [[Media:BioLog_v_0_4_4.zip|download]] the BioLog software. | + | Here you can '''[[Media:BioLog_v_0_4_4.zip|download]]''' the BioLog software. |
The .zip archive contains the app, the protocols and a readme.txt file which contains instructions for installing the app. | The .zip archive contains the app, the protocols and a readme.txt file which contains instructions for installing the app. |
Revision as of 00:36, 22 September 2011
Software
BioLog app
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?
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 which is preset to the correct time already. You do not even have to worry about the equipment you might need for your experiment, because needed equipment is listed in the beginning of each protocol. The best thing is, you can have all your protocols that you already performed or intend 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!
The recent version of the app is available on our [http://www.syntbio.net/igem homepage].
Check out the video of the app in action below!
Short Introduction
BioLog App
When following a standard operating procedure or just a protocol, it is easy to get the correct result at the end, because that's why the standard operating procedure exists. When following such procedures or protocols, it is common to
- write down variations of the protocol that you did,
- start and stop lab timers,
- make small calculations for correct mixing of the needed ingredients,
- have multiple protocols overlap each other,
- replace the original standard operating procedure with your own version e.g. which uses the same ingredients in better available quantities
- print out the original or changed procedure to have a clean, uncommented printout version of the procedure.
If that all sounds familiar to you, then BioLog is the software you may have been waiting for.
It is designed as a software that helps you keep track of the protocol steps and logs all your steps while doing them. This way, you can be sure that you followed the procedure, can find out which timer difference caused which result change and even keep track of multiple overlapping procedures without loosing control. It runs on your favorite mobile device and has a lot of features and standard operating procedures.
Features:
- Browsing in the list of available protocols (or standard operating procedures)
- Download of the protocols from a server
- Selection of a protocol for following it
- Checkmarks for all steps that have been completed while following the protocol
- The time when the step was marked as completed is logged - to allow later research if something went wrong
- Starting and stopping of timers included in the protocol
- Fast switching between multiple followed protocols
- All steps can be commented
But let's have a walk through of the features!
The Protocol List View
This view contains two separated lists. The first list is called "Active Protocols" and contains all current running protocols and lists them with their names. By clicking on one of them, you can jump directly to the view for executing the protocol. The second list is called "Available Protocols" and contains all protocols available on the device for further selection. This list can be extended with content downloaded from a server. Every item from the second list can be chosen as a new active protocol. By tapping on "DNA Extraction for PCR", a plus sign appears on the right hand side of the protocol (see picture on the left) and by tapping on the plus, this protocol is added to the active protocol list (see picture on the right).
Protocol execution View
This view presents all active protocols easily accessible through separated tabs at the bottom of the screen. Each tab represents one active protocol. We have placed the tab at the bottom of the display for 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.
The protocol can contain checklists, comments on each item, tables, timers and logging information such as the time you checked-off one of the checklist items. 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.
A timer occurs when it is required by a step in the protocol. The timer can be pre-set to the required time (coming soon). The timer can be started and stopped by the user but can not be paused. 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 Existing Features
2.1.1 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.2 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.3 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.4 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.5 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.6 Note Taking enabled everywhere
2.1.7 Screen Timer off Feature The software should shut off the screen timer to disable the locking of the current screen.
2.1.8 Exact time, when a feature was ticked-off is noted
2.2 Planned Features
2.2.1 Units and Conversion Tools (coming soon)
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 (first version available)
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 - Warning Signs when higher Risk Procedures are used in all Steps and Sections
2.2.8 Protocol Detail - „Yes, I Know“ Dialog, when using higher Risk Procedures
2.2.9 Photo or Video note taking (if supported by mobile device)
Automatically appended to the „Appendices“ section.
2.2.10 Audio Note Taking
Automatically appended to the „Appendices“ section.
2.2.11 Log in Feature
User has its own account where his workspace (with current protocols and their change-log) is administered.
2.2.12 List of all iGEM parts by using the online data base „partsregistry.org“
2.2.13 For risky procedure parts, the screen changes color
2.2.14 Remote alarm either as mail / invitation to cell phone
2.2.15 Print out of procedures and logs from the database
2.2.16 Visibility of log is settable
2.2.17 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.
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
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
Here you can download the BioLog software.
The .zip archive contains the app, the protocols and a readme.txt file which contains instructions for installing the app.
We tested the App on the following devices:
- HTC Desire
- HTC Wildfire
- Samsung Galaxy S2
- Samsung G5500
- Samsung Galaxy Tab (first version)
- Sony Xperia
Feedback on other devices where the app is working or not, is welcome. Thanks!