Improve
Since the idea of our project this year (BAT, BiobrickAssist Technology) mainly originated in BASE, a biobrick evaluation tool that SJTU-Software programmed in 2015, we have surveyed and tested it in detail and found several shortcomings of its design and performance. While with the main function of evaluation for biobricks working quite well, and we’d like to set up an evaluation system like BASE, we decided to improve BASE for our project. However, due to its poor scalability, we programmed our web-based application under a new framework with Node.js.
We improved BASE both on database and function.First of all, we noticed the database we used in 2015 was out of date, and the data stored was not sufficient for our further improvement of evaluation function. Therefore it may contain wrong information for biobricks. Fortunately we had a chance to discuss with USTC-Software about how to filter bad or even wrong data from the very beginning, that is, we collected new data this year from the official site http://parts.igem.org/ and immediately cut off bad data roughly following the advice of our PI and USTC-Software. Besides, some columns in MySQL database may not be so frequently used and influence little on scoring process (with a less weight), so we deleted them and put more weight on other factors such as submission time. Driven by Node.js’s MySQL pool, the database was accessed more easily and quickly.
At least so far our algorithm running on machine is hard to defeat human’s insight and knowledge, therefore we developed BAT Q/A Community. It’s not only a scalable plugin tied to the main evaluation and search function, but also a indispensable part of BAT, in which users can put forward and answer questions about biobricks, synthetic biology and even the work in the lab. This idea came from our project iMAP in 2016. We have surveyed and noticed that the instant messaging function we developed in 2016 could hardly replace existing ones such as QQ/Wechat, LINE and WhatsApp, and additionally not everyone got used to sending instant messages for academic communication, so email, or a platform like Quora was more suitable for knowledge and information exchange. Users can also search questions by keyword or browse them by categories or tags. Maybe if the algorithm goes wrong, or performs weird compared to our knowledge on synthetic biology or even common sense, users can go to Q/A Community to seek detailed discussion about their interested biobricks and report bugs of our application. So Q/A Community can be the reinforcement of our evaluation system. We evaluate both automatically and manually.
BASE could evaluate a biobrick at part and device level. In ordered to evaluate at higher level, we also improved its core function. We collected more data about biobricks at system level, and merged them into our MySQL database. However, the warning is that the evaluating process may lack accuracy because the additional data about biobricks at system level is too little. The core scoring algorithm is similar but we re-coded it in JavaScript (Node.js) instead of Perl, which can work better if our site has larger visitor volume and combine better with the frontend code (using framework like React.js and Vue.js).