You are here: ABI » ThesesHome » BscSeqAnAppInBrowser

BscSeqAnAppInBrowser

Possible Project for a BSc Thesis in Bioinformatics or Computer Science

Introduction

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 in deed 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.

Detailed goals and stretch-goals

  • 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 begin by porting a simple SeqAn application, e.g. a demo
  • think on how to interface with the program, if possible create a browser interface based on the command-line parser
  • 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

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

Depending on the skill of the student, prior knowledge in C++/JavaScript/... and the time given (2 months for Bioinformatics, 3 months for CS) only some of these goals will be attainable. The student should start tackling goals from top to bottom and repeatedly re-evaluate progress with the advisor to decide which features can be realised in the given time.

Expected 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 advanced development methods, compiler tuning…
  • learn how the SeqAn project works, i.e. development, documentation, communication in team…
  • learn how to write a thesis
  • possibly contribute valuable experience to SeqAn that will be used in future projects

Comments

 

References

[1] see for example the table on http://julialang.org/ [2] https://de.wikipedia.org/wiki/Emscripten [3] https://developer.chrome.com/native-client

Comparisons: http://blog.leafsr.com/2013/06/03/comparing-asm-js-and-nacl/ http://www.sable.mcgill.ca/publications/techreports/2015-1/techrep.pdf
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback