B iological S cripting L anguage Jared Eng Jay Kota Igor Marfin Amna Qaiser Jared Eng Jay Kota Igor Marfin Amna Qaiser BSL
Background / Overview Sequence handling DNA, RNA, amino acid etc… Nucleotides A, C, G, T, U, F, L, S, Y, C, etc … Sizeable number Massive amounts
BSL Functionality Specializes in sequence manipulation, translation, and analysis Methods Access Search Align Map Translate
Sample Script /* Here is a test script */ start method int TestMethod (Sequence a, Sequence b) Print: a, “myfile.txt”; return 0; end method; new Sequence dnaSeq1 type DNA = “AGGGAACCTT”; new Sequence dnaSeq2 type DNA = “AGGAACTC”; new int dnaSum; dnaSum = TestMethod: dnaSeq1, dnaSeq2; Print: dnaSum; /* End script */
Syntax and Semantics Primitives and BSL objects (int vs Sequence) Sequence has “type” associated with it Properties: length, type, value Method calls: Align: Sequence, Sequence; User defined methods (Overloading)
Architecture Overview Used ANTLR Invoke using java BSL_TreeParser Input:.bsl file Outputs java file and compiles the file
BSL Implementation Method symbol tables Java Classes handle method calls Align is taken care of by Aligner Uses Smith-Waterman Algorithm Approach to implementation Modularity allowed for faster coding time Easier testing
Testing Plan Phase I BSL Libraries Lexer and Parser (Grammar) Phase II Code Generator Combined Testing
Lessons and Future Goals Start early Keep minutes Stay focused Incorporate more algorithms Access online databases Make millions and retire early