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,...