Bioinformatics on iPhone
Swift C++
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

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

Development Environment

  • Xcode 6.3 / Swift 1.2
  • iOS 8


Data management

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.

show DNA sequence


The Edit button on the up-right is used to delete records. The deleting is persistent.

delete DNA sequence

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.

add DNA sequence


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.

download DNA sequence

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.


k-mer functions

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.

kmer settings

k-mer Freq

The k-mer Freq tab shows a table of ordered frequencies.

kmer freq

Count Freq

The Profile tab shows the count frequencies.

count freq


Finally the Chart tab shows the histogram chart for the count frequencies.

count chart



The Align button first shows the alignment setting view.

alignment settings

User needs to choose another sequence to align with. When clicking Select button, a picker view shown lets user to make the selection.

alignment choose

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.

alignment score

Project Reference

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


  1. Bioinformatics:
  2. GenBank:
  3. FASTA format:
  4. K-mer:
  5. Sequence alignment:
  6. 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