Team:Potsdam Bioware/Software

From 2011.igem.org

(Difference between revisions)
(BioLog app)
(BioLog app)
 
(53 intermediate revisions not shown)
Line 5: Line 5:
===BioLog app===
===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 on the market?
+
In a world full of smartphones you have apps for almost everything: apps for recognizing songs from the radio or apps for shopping lists. But what is missing? What about an useful app, an app for lab-work, an app where you can upload your protocols and which guides you 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!
+
We developed the solution for this problem! During our iGEM project we created an application for smartphones that helps you to keep your lab book on your smartphone!
-
<center>[[File:UP app01.png|150px]] [[File:UP app02.png|150px]] [[File:UP app04.png|150px]]  [[File:UP app05.png|150px]]    [[File:UP app11.png|150px]]</center>
+
<center>[[File:UP_app01.png|150px]] [[File:UP_app02.png|150px]] [[File:UP_app03.png|150px]]  [[File:UP_app04.png|150px]]    [[File:UP_app05.png|150px]]</center>
-
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!
+
You can download a protocol for your running an 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!
+
 
 +
'''[[Media:BioLog_v0.5.3.1.zip|Download]] it, try it, be thrilled!'''<br><br>
 +
After iGEM 2011, the most recent version of the app is available on our web-site '''[http://www.betterprotocols.org http://www.betterprotocols.org]'''.
Check out the video of the app in action below!
Check out the video of the app in action below!
=== Short Introduction ===
=== Short Introduction ===
-
<html><div align="center"><iframe width="420" height="315" src="http://www.youtube.com/embed/stYaIdpwqF4" frameborder="0" allowfullscreen> </iframe></div></html>
+
<center><html><iframe width="560" height="315" src="http://www.youtube.com/embed/tIJvrmP-xjc" frameborder="0" allowfullscreen></iframe></html></center>
 +
<br><br>
== BioLog App ==
== BioLog App ==
-
Features:
+
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 <br>
 +
- write down variations of the protocol that you did, <br>
 +
- start and stop lab timers, <br>
 +
- make small calculations for correct mixing of the needed ingredients, <br>
 +
- have multiple protocols overlap each other,  <br>
 +
- replace the original standard operating procedure with your own version e.g. which uses the same ingredients in better available quantities  <br>
 +
- print out the original or changed procedure to have a clean, uncommented printout version of the procedure.  <br>
 +
If that all sounds familiar to you, then BioLog is the software you may have been waiting for.
-
Protocol list
+
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.
-
This view contains two separated lists. The first list contains all
+
Features:
-
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
+
- Browsing in the list of available protocols (or standard operating procedures)<br>
 +
- Download of the protocols from a server<br>
 +
- Selection of a protocol for following it<br>
 +
- Checkmarks for all steps that have been completed while following the protocol<br>
 +
- The time when the step was marked as completed is logged - to allow later research if something went wrong<br>
 +
- Starting and stopping of timers included in the protocol<br>
 +
- Fast switching between multiple followed protocols<br>
 +
- All steps can be commented<br>
-
In this view all list views containing the current running protocols
+
But let's have a walk through of the features!
-
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
+
<div style="float:left; padding-right:20px">
-
protocol. Beside some information about the current state it contains
+
[[File:UP_app01.png|150px]]
-
a history with detailed information about actions that has taken
+
</div><div style="float:right; padding-left:20px">
-
place within the protocol. This data in addition with meta data will be
+
[[File:UP_app02.png|150px]]
-
stored in a copy of the processed protocol.  This view is available for
+
</div>
-
all active and recently active protocols.
+
'''The Protocol List View'''
-
Protocol 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).
-
Every active protocol content is displayed within a list view. The
+
<p style="clear:both">
-
subitems of the protocol are displayed as a  section within the main
+
<br>
-
list view. In turn a section is also handled as a list containing the
+
<div style="float:left; padding-right:20px">
-
elements from the subitems of the protocol. To build the protocol view
+
[[File:UP_app11.png|150px]]
-
some special views are used to display its content e.g. tables or steps
+
</div>
-
of a procedure.  The type and content of every item in a view / section
+
'''Protocol execution View'''
-
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
+
 +
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.
 +
</p>
 +
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
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
need to select this item and then push the menu button to gain access
Line 80: Line 80:
written the text can be edited and removed.
written the text can be edited and removed.
-
Timer
+
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
-
A timer can occur when it is required by a step in the protocol. The
+
the user but can not be paused. It is possible that a timer expires,
-
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.
in that case it counts the elapsed time since expiration.
 +
<br><br>
== Detailed Description ==
== Detailed Description ==
-
1 Purpose
+
 
 +
'''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.
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 Feature Description'''
-
2.1 Mandatory (must have) Features: Needed for the product in order to be successful
+
 
-
2.1.1 Title Screen – log in
+
'''2.1 Existing Features'''
-
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
+
'''2.1.1 Protocol Detail - Purpose Description Section'''
-
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.
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
+
'''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.
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
+
'''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.
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.
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
+
'''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.
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
+
 
 +
'''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.
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.1.6 Note Taking enabled everywhere'''
-
2.2.1 Units and Conversion Tools
+
 
 +
'''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.
Conversion tool with presets and unit detection while typing.
-
2.2.2 General Protocol Management – time saving processing of several protocols
+
 
 +
'''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.  
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.
+
'''2.2.3 Protocol Detail - Timer Tool (first version available)'''
-
The timer alarms, when it is ready.
+
 
-
The alarm will be repeated until acknowledged.
+
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.<br>
-
The alarm can be acknowledged and thus be stopped.
+
The timer alarms, when it is ready.<br>
-
The timer can be stopped and is halted at the current position. It can be continued or re-started.
+
The alarm will be repeated until acknowledged.<br>
-
2.2.4 Protocol Detail - Reminder Alarm
+
The alarm can be acknowledged and thus be stopped.<br>
 +
The timer can be stopped and is halted at the current position. It can be continued or re-started.<br>
 +
 
 +
'''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.
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
+
 
 +
'''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
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.6 Protocol Detail - Check Boxes for Checking off Needed Equipment in „Equipment Needed“ 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.7 Protocol Detail - Warning Signs when higher Risk Procedures are used in all Steps and Sections'''
-
2.2.10 Note Taking enabled everywhere
+
 
-
2.2.11 Photo or Video note taking (if supported by mobile device)
+
'''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.
Automatically appended to the „Appendices“ section.
-
2.2.12 Audio Note Taking
+
 
 +
'''2.2.10 Audio Note Taking'''
 +
 
Automatically appended to the „Appendices“ section.
Automatically appended to the „Appendices“ section.
-
2.2.13 Log in Feature
+
 
 +
'''2.2.11 Log in Feature'''
 +
 
User has its own account where his workspace (with current protocols and their change-log) is administered.
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.12 List of all iGEM parts by using the online data base „partsregistry.org“'''
-
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.13 For risky procedure parts, the screen changes color'''
-
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.14 Remote alarm either as mail / invitation to cell phone'''
-
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.15 Print out of procedures and logs from the database'''
-
2.2.21 Comment for each step of the procedure
+
 
-
2.2.22 Print out of procedures and logs from the database
+
'''2.2.16 Visibility of log is settable'''
-
2.2.23 Visibility of log is settable
+
 
-
2.2.24 Other Software
+
'''2.2.17 Protocol editor'''
-
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.  
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 Product use'''
-
3.1 Use areas
+
 
 +
'''3.1 Use areas'''
 +
 
Biologist will use this Software on their mobile device when they are doing procedures in the lab.
Biologist will use this Software on their mobile device when they are doing procedures in the lab.
-
3.2 User Story #1
+
'''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.
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.
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.
Line 185: Line 201:
When I am done, I finally can comment the outcome as being “correct / as planned”, “wrong / not as planned” or inconclusive.  
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
+
'''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.
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
+
'''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.
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.
 +
<br><br>
== Code ==
== 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
General Description
Line 247: Line 262:
The Content Array
The Content Array
This is the main item for carrying the data
This is the main item for carrying the data
 +
<br><br>
== Download ==
== Download ==
-
download [[Media:BioLog_v.0.4.2.zip|here]]
+
Here you can '''[[Media:BioLog_v0.5.3.1.zip|download]]''' the BioLog software.
 +
 
 +
The recent version of the app is available on our site'''[http://www.betterprotocols.org http://www.betterprotocols.org]'''.
 +
 
 +
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:<br>
 +
- HTC Desire<br>
 +
- HTC Wildfire<br>
 +
- Samsung Galaxy S2<br>
 +
- Samsung G5500<br>
 +
- Samsung Galaxy Tab (first version)<br>
 +
- Sony Xperia<br>
 +
- Packard Bell Liberty Tab G100<br>
-
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.
+
Feedback on other devices where the app is working or not, is welcome. Thanks!

Latest revision as of 02:52, 29 October 2011

Software

BioLog app

In a world full of smartphones you have apps for almost everything: apps for recognizing songs from the radio or apps for shopping lists. But what is missing? What about an useful app, an app for lab-work, an app where you can upload your protocols and which guides you 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 you to keep your lab book on your smartphone!

UP app01.png UP app02.png UP app03.png UP app04.png UP app05.png

You can download a protocol for your running an 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!

After iGEM 2011, the most recent version of the app is available on our web-site [http://www.betterprotocols.org http://www.betterprotocols.org].

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!


UP app01.png

UP app02.png

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).


UP app11.png

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 recent version of the app is available on our site[http://www.betterprotocols.org http://www.betterprotocols.org].

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
- Packard Bell Liberty Tab G100

Feedback on other devices where the app is working or not, is welcome. Thanks!