A Bioinformatics App on iPhone
The App demostrates a few of basic functions and algorthms for Bioinformatics.
- Manage Nucleotides sequences. User may download them from GenBank by accession numbers
- Translate DNA sequences to RNA/protein sequences
- k-mer generating/counting/charting
- Local/global alignment for protein strings
- Xcode 6.3 / Swift 1.2
- iOS 8
An initial table view shows a list of DNA sequences. A few samples are provided for the first-time user. Each row shows the accession number, version and description of a sequence. Further information can be found here.
The Edit button on the up-right is used to delete records. The deleting is persistent.
Add a new record
The "+" button on the up-left creates a new record. The details view is shown for editing. When finishing editing, use the save button on the up-right to apply the change. The changes are persistent on the device.
User may edit an existing record by selecting the row, it takes user to the same detail view as the "+" button.
Creating a record mannually is tedious, the Download button right next to "+" let user to download a record from GenBank. Just input the accession number and click Download. The function is implemented using NCBI Entrez Programming Utilities webservices.
Translating DNA to RNA/Protein
The RNA and Protein buttons on the buttom toolbar of Details view let user to translating the DNA sequences to RNA and Proten.
The k-mer button on the toolbar takes user to a tabbar view for k-mer related function.
The setting tab lets user change the k-mer size. The default size is 4. When click Calculate, the underlying k-mer data is re-generated.
The k-mer Freq tab shows a table of ordered frequencies.
The Profile tab shows the count frequencies.
Finally the Chart tab shows the histogram chart for the count frequencies.
The Align button first shows the alignment setting view.
User needs to choose another sequence to align with. When clicking Select button, a picker view shown lets user to make the selection.
User may also:
- choose a score matrix between BLOSUM62 and PAM250
- choose Global or Local alignment
- change the gap penalty. Note that the penalty can not be negative.
Show the result
Finishing making all the choices, Go button shows the alignment result in a table view. The aligned sequences are divided into short lines to make it easy to read.
The App applies ios-charts to draw histogram chart for k-mer profiles.
The App uses NCBI Entrez Programming Utilities webservices to download data from GenBank
- Bioinformatics: https://en.wikipedia.org/wiki/Bioinformatics
- GenBank: http://www.ncbi.nlm.nih.gov/genbank/
- FASTA format: https://en.wikipedia.org/wiki/FASTA_format
- K-mer: https://en.wikipedia.org/wiki/K-mer
- Sequence alignment: https://en.wikipedia.org/wiki/Sequence_alignment
- David Mark , Jack Nutting , Kim Topley , Fredrik Olsson , Jeff LaMarche. Beginning iPhone Development with Swift: Exploring the iOS SDK(2014). ISBN13: 978-1-484204-10-8