We're looking for a full-stack web/applications developer who can build solutions for our laboratories and bioinformatics teams. One useful way for us to get a sense for your skill in these areas is in the form of a working code sample. Here's what should be a fairly straightforward exercise:
- Build a simple web page that performs a web BLAST query against nt using a DNA sequence read in via a form field (or from a file in FASTA format if you like).
- It should validate the input to be of valid FASTA format.
- Once the results are available, they should be displayed in a simple table. Include the fields that you think are most informative.
Requirements
- Use Flask or FastAPI
- Use Bootstrap
- Either server-side templated pages or a client/api architecture is fine.
- Use the biopython BLAST api: https://biopython.org/docs/latest/api/Bio.Blast.NCBIWWW.html. The first two arguments are 'blastn' and 'nt'.
Please make sure the application can be run locally!
Here are some example input sequences to try out:
>NC_009085_A1S_r15 NC_009085.1 Acinetobacter baumannii ATCC 17978 chromosome, complete genome. ATTGAACGCTGGCGGCAGGCTTAACACATGCAAGTCGAGCGGGGGAAGGTAGCTTGCTAC TGGACCTAGCGGCGGACGGGTGAGTAATGCTTAGGAATCTGCCTATTAGTGGGGGACAAC ATCTCGAAAGGGATGCTAATACCGCATACGTCCTACGGGAGAAAGCAGGGGATCTTCGGA CCTTGCGCTAATAGATGAGCCTAAGTCGGATTAGCTAGTTGGTGGGGTAAAGGCCTACCA AGGCGACGATCTGTAGCGGGTCTGAGAGGATGATCCGCCACACTGGGACTGAGACACGGC CCAGA >NC_003909_BCE_5738 NC_003909.8 Bacillus cereus ATCC 10987, complete genome. GATGAACGCTGGCGGCGTGCCTAATACATGCAAGTCGAGCGAATGGATTAAGAGCTTGCT CTTATGAAGTTAGCGGCGGACGGGTGAGTAACACGTGGGTAACCTGCCCATAAGACTGGG ATAACTCCGGGAAACCGGGGCTAATACCGGATAACATTTTGAACCGCATGGTTCGAAATT GAAAGGCGGCTTCGGCTGTCACTTATGGATGGACCCGCGTCGCATTAGCTAGTTGGTGAG GTAACGGCTCACCAAGGCAACGATGCGTAGCCGACCTGAGAGGGTGATCGGCCACACTGG GACTGAGACACGGCCCAGA
This isn't meant to consume a lot of your time - a minimal solution is fine.
I think this is the official one: https://biopython.org/docs/latest/api/Bio.Blast.NCBIWWW.html