PMSB Project with possible Bachelor Project. Some experience with Javascript is required, some experience with C or C++ is recommended.


Since modern web-browsers are used for all kinds of tasks they have gone through an immense amount of optimization in the past years, especially the javascript engines. They are now comparable in speed with many ahead-of-time-compiled languages. [1] Modern browsers also offer access to disk-space and most of the computers available RAM so they are indeed useful for scientific applications.

While many SeqAn-based applications are used on large servers, many smaller workloads could actually be done on Laptops and Desktops. There, however, software deployment is often a problem and command-line tools or platform-dependent executables prevent easy adoption.

By creating browser-based apps from SeqAn-apps one could bridge this gap and hopefully provide a useful service to many users. In any case high-performance biological applications are an interesting test case for the current browser technologies and the involved software.

Goals of the PMSB

  • study the two common available methods, (I) Emscripten, the LLVM-to-Javascript compiler[2] and (II) Google Native Client / NaCl [3]
  • find out which have been used in high-performance workloads before and how they compare regarding performance (compared to original code), platform-independence (all browsers, all architectures?), compatibility (do they support all of C++? what about parallelization?) and ease of implementation
  • decide on one mechanism and try to port a small SeqAn-Demo or write your own proof-of-concept
  • document all of the work in detail

Outcome for student

  • learn how read and understand online documentation, messageboards et cetera
  • learn how to write basic SeqAn code and how to read advanced SeqAn code
  • learn how the SeqAn project works, i.e. development, documentation, communication in team...

Possible continuation as Bachelor's Project

  • do extensive tests with demos
  • think on how to interface with the program, if possible create a browser interface based on the command-line parser, so all SeqAn tools would be supported
  • compare run-times for simple tasks like computing an alignment or performing a search
  • make an existing SeqAn-application like Lambda run with the chosen technology and compare the performance

  • do this with both aforementioned technologies and compare them
  • provide an automatic way for porting SeqAn-apps to a browser-technology of your choice

Expected outcome after Bachelor's thesis

  • learn advanced development methods, compiler tuning...
  • learn how to write a thesis
  • possibly contribute valuable experience to SeqAn that will be used in future projects




[1] see for example the table on [2] [3]

Topic revision: r1 - 26 Jan 2016, HannesHauswedell
  • Printable version of this topic (p) Printable version of this topic (p)