Team:Johns Hopkins-Software/Cloud
From 2012.igem.org
(Difference between revisions)
(8 intermediate revisions not shown) | |||
Line 30: | Line 30: | ||
</div> | </div> | ||
<br> | <br> | ||
- | + | We collaborated with Autodesk and implemented our cloud algorithm through their Project Saturn API and Autodesk Cloud services. Saturn is a new framework designed to provide customers with single- and multi-objective global optimization-driven algorithms. It features the capability to be fully integrated in engineering products as a multi-language and multi-platform optimization library, and to communicate with the framework running on the Autodesk Cloud, thereby actualizing the possibility of seamlessly and efficiently integrating custom solutions and scalable systems able to carry out any optimization taks demanded by users. | |
+ | <br> | ||
+ | <br> | ||
+ | In our project, we wrote both frontend and backend components to carry out the Smith-Waterman local alignments on the cloud at rapid speeds on demand by utilizing a two-tier algorithm which splits up the tasks and runs the subjobs in parallel. Users are able to upload a plasmid sequence and specify a (n) number of subjobs in which to split the alignment process. The plasmid sequence is then temporarily stored as a resource in the cloud, along with an existing table of features previously and permanently uploaded to cut down on file transfer time. In the first tier of the algorithm, the stored features table is accessed and split into the specified (n) number of subjobs and initiates (n) subjobs to run in the second tier. This requires the activation of (n) machines on the cloud to most efficiently execute the alignment process. At each branch of the second tier algorithm, we utilize the EMBOSS Water tool to run the Smith-Waterman algorithm against the plasmid sequence and the designated set of features. A unique result resource is created for each subjob, and alignment results are filtered through a threshold of 98% identity before being appended to this file. The results are then reformated into a JSON array before being passed to the first tier. With the completion of each subjob, the first tier of the algorithm sends back partial results to the client, which then appends each of these JSON arrays together and returns a final result with all the completed alignments together. | ||
+ | <br> | ||
<br> | <br> | ||
Line 40: | Line 44: | ||
</div> | </div> | ||
<br> | <br> | ||
- | We have tested this on an alignment of the PUC18 plasmid, which consists of a sequence of 2,680 letters, against a library of 17,498 yeast features, each about 400 base-pairs long. Running conventionally without the cloud, we found that it takes a local machine 39 minutes to complete this alignment. | + | We have tested this on an alignment of the PUC18 plasmid, which consists of a sequence of 2,680 letters, against a library of 17,498 yeast features, each about 400 base-pairs long. Running conventionally without the cloud, we found that it takes a local machine 39 minutes to complete this alignment. Implementing the cloud in over 80 timed executions with very little standard error values, we found that running it on the cloud with 10 processors cut the time to three minutes, and running it with 30 processors cut it to nearly one minute. PUC18 is a relatively unintimidating-sized sequence. Considering how many sequences of interest can be up to thousands of letters in length, and how libraries can have countless features, which could cause alignments to take weeks to complete, certain alignment tasks would require more memory than a local machine would be able to handle, so this is the kind of job that could only be done through a cloud server. With this kind of improvement, we are making the impossible in biology possible. |
<br><br> | <br><br> | ||
Line 48: | Line 52: | ||
- | <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> | + | <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> |
- | + | ||
</html> | </html> | ||
{{:Team:Johns_Hopkins-Software/header}} | {{:Team:Johns_Hopkins-Software/header}} |