When I learned Haskell, I was introduced to a whole new way of thinking about computation. Explicit iteration in languages like Java and C seemed so ancient compared to the simple syntax of a map function. Folding and

What it does

Scala is a functional language for the real world. It allows impure code when needed but also offers the powerful constructs and domain modelling capabilities found in stricter functional languages. For this reason I wanted to try and build a small project using the language to evaluate its ecosystem and documentation.

I build a webapp that performs global pairwise sequence alignment on two string representing DNA. This is often the first step in many comparative genetic procedures.

How I built it

Scala 2.12 and play framework 2.8. And googling. Lots of googling.

Challenges we ran into

I didn't know scala or webapp development very well when I started this project. So learning the synatx of scala was hard, but it was made especially difficult by the fact that every web framework sort of has its own DSL. So I had to learn Scala syntax, play framework language, and play framework organization all at the same time.

Accomplishments that we're proud of

The whole thing is dockerized, which I learned how to do yesterday in the docker workshop.

What we learned

Scala. Play framework.

What's next for Simple Sequence Alignment

Lots of things. I'd like to add other alignment algorithms (fitting alignment, local alignment, etc), the ability to align proteins, choose sequences via PDB#, custom scoring matrices, CSS,...

Built With

  • love:)
  • play-framework
  • scala
Share this project: