Genes are the code of life, a sequencing that determines who you are, what you look like, what you do and how you behave. Sequencing is the process of determining the order of bases in an organisms genome. Knowing one's genetic sequence can give insight into inherited genetic disorders, one's ancestry, and even one's approximate lifespan.
Next-generation sequencing (NGS) is a term for the massive advancements made in genetic sequencing technologies made over the past 20 years. Since the first fully sequenced genome was released in 2000, the price of sequencing has dropped drastically, resulting in a wealth of biotech start-ups looking to commercialize this newfound scientific power.
Given that the human genome is very large (about 3 GB for an individual), the combination of computational tools and biology represent a powerful duo for medical and scientific applications. The field of bioinformatics, as it is known, represents a growth area for life sciences that will only increase in years to come.
What it does
Reactive Genetics is a web portal. Individuals who have either paid to have their genes sequenced, or done it themselves (an increasing probability in coming years), can paste in their sequence into the home page of the web portal. It then returns another web page telling them whether they hold a "good" or "bad" gene for one of six common markers of genetic disease.
How I built it
Reactive Genetics uses a flask server that queries the National Center for Biotechnology Information's Basic Local Alignment Search Tool (BLAST) API. "BLASTING" is commonly used in modern biological research to find unknown genes in model organisms. The results are then returned to a React app that tells the user whether they are positive or negative for a certain genetic marker.
Challenges I ran into
The human genome was too large to return reliably or host within the app, so the trivial solution of querying the sequence against the reference genome wasn't possible. We resorted to BLASTing the input sequence and making the return value a boolean about whether the gene is what it "should" be.
Accomplishments that I'm proud of
One team member hopes to enter serious bioinformatics research one day and this is a major first step. Another team member gave a serious shot at learning React, a challenging endeavour given the limited time frame.
What I learned
One team member learned use of the BLAST API. Another team member became familiar with Bootstrap.
What's next for Reactive genetics
The app is currently running both a React development server and a Flask server. Eventually, porting everything over to one language and application would be ideal. More bioinformatics tools are released on a regular basis, so there is potential to use other technologies in the future and/or migrate completely to React.