Interesting online and mobile/tablet applications:
Illumina MyGenome: https://itunes.apple.com/us/app/mygenome/id516405838?mt=8
Which language should you build your app in? http://mashable.com/2012/07/11/language-app/
Open a project:
Select Window -> Show view -> Package explorer.
Select project / application in Package explorer tab.
- AndroidManifest.xml: A file declaring various properties of an application. All activities and services of the application must be declared in AndroidManifest.xml. The file also declares the required permission for the program.
- Intent: an object that provides runtime binding between separate components (such as two activities). See http://developer.android.com/reference/android/content/Intent.html Most often used to start another activity.
- Resources: Resource files like images can be kept separate from the source code, and are stored in a res/ folder. Individual resources can be accessed using the Resources class. Every resource has a corresponding resource object in the project's gen/R.java file. The R.java file is generated by the SDK when the app is compiled.
- Resource object: A unique integer name associated with an app resource (for example a bitmap, layout file or string). See http://developer.android.com/training/basics/firstapp/building-ui.html
- ADV: Android Virtual Device.
- ADB: Android Debug Bride. Command line tool that facilitates communication between Ecclipse and Android device (physical or virtual). Invoked by DDMS. See http://developer.android.com/tools/help/adb.html Can be used to install an application with the command adb install <path_to_apk> To see connected devises, enter "adb devices" in the directory sdk\platform-tools. Packages can be uninstalled with the uninstall command: adb uninstall <apk_name>
- DDMS: Dalvik Debug Monitor Server.
- View object: Usually a UI element like a button or text field.
- viewGroup: Invisible containers for view objects which define their layout.
Android specific methods and functions
intent.putExtra(key,value): Adds a key-value pair as an "extra" key-value pair to the intent.
startActivity (Intent, options): Start a new activity.
getIntent() : Returns the intent that started the activity.
Layout can be declared in xml, or in code by creating and manipulating view objects.
Android Development Tutorial Based on Android 4.2: http://www.vogella.com/articles/Android/article.html
Solutions for common Android development problems: http://www.vogella.com/articles/AndroidDevelopmentProblems/article.html
- Ligation mix calculator.
- pH adjustment volume calculator
- Pipette operation planner. Determine the most practical/"optimal" way to perform pipetting operations, given specified objectives (volume accuracy, concentration accuracy, minimize waste).
- Twitter filter. List twitter users fulfilling certain criteria, such as having certain keyword in their description (f.ex., "bioinforamatics"), follower/following ratio, etc.
- Twitterati. Network analysis and display of data from Twitter. For an inspiration, see https://nodexlgraphgallery.org/Pages/Graph.aspx?graphID=5717
- Bibliographer. Given a citation database, visualize a citation network.
- Backtracker: For a webpage selected from browsing history, show how you ended up there.
- Speciator: Group sequences by average nucleotide identity. Will the grouping agree with existing species classifications? See http://www.biomedcentral.com/1471-2180/12/302
- ResourcePlanner: Set project priorities and allocate time use.
- Article scraper: Fetch articles that are linked to in a Twitter feed or appear in other data streams (recent.ly, etc.)
- JobGuide: Gather and present job postings from several job portals.
- Lab wizard. "Evidence based (= rational) lab management"? Estimate probabilities of success based on emperical data or user-entered estimates (ex: What is the likelyhood that a given reaction will succeed?), and calculate the most rational work plan, taking into account the estimated time use for each operation.
For example: If one procedure takes 10 min and has 60 % chance of success, and another takes 3 h and has 90 % of success, both yielding the same product, what procedure should be chosen? Depending on number of samples to be processed?
Elements which must be defined:
Operations: Time use, probability of success. Necessary materials.
- Sample tracker (barcodes?)
A scrollable lab chart/tree, showing relationship of samples, experiment and results.
Example: Far left, start with initial sample(s)/material(s) as root(s) of the tree(s). As work progresses the tree/graph branches out (one sample used several times) and re-combines (several samples used in one operation). Chart must be scrollable both horizontally (time) and vertically (to allow for many samples tree)
Horizontal line would show at least date/time. Could also incorporate milestones and events. Elements in the tree should be collapsable for easier viewing. Could also consider showing planned operations. (integrate with a "lab wizard"?)
- Data clustering and visualization agent.
Query a database of experiments with associated data, and perform visualization and clustering of experiments/data. For example, show all experiments that used medium X. Compare data of type Y (example, growth rate) between experiments using mediums A and B. Rank experimental conditions by the value of one output (for example, which growth medium gave highest growth rate)? For a heterogenous collection of experiments, cluster experiments by similarity in conditions (criteria for clustering/computing distance must be decided).
A sequence result evaluator? :
- Estimate average error rates for sequencing results.
- Based on above, define null hypothesis as "Real sequence is identical to the theoretical sequence", and use sequencing data to attempt to refute the null hypothesis. Use basecall quality values to estimate the probability that any given base is wrong.
Cloning plan helper:
Verification "wizard": Input: Plasmid sequence, region of plasmid considered insert, available restriction enzymes. Output: Suggested restriction digest for verifying insert (taking into account minimum fragment length to achieve visualization on gel).