150 likes | 158 Views
This project utilizes Javaspace technology to reassemble DNA strands that have been split apart for sequencing. Features of Javaspace, algorithm description, performance evaluation, lessons learned, and suggestions for improvements are discussed.
E N D
DNA REASSEMBLY Using Javaspace Sung-Ho Maeung Laura Neureuter
Overview • Project Description • Features of Javaspace • Framework • - Master/Worker Model • - Design Diagram • - Remote Method Invocation ( RMI ) • Description of Algorithm • Performance • Lessons Learned • Improvements • Questions
Project Description After DNA strand has been split apart by the “shotgun” approach in order to perform sequencing , it needs to be put back together into original sequence. We used Javaspace to do this “putting back together” of the individual segments.
Features of Javaspace Javaspaces technology is a simple mechanism for dynamic communication, coordination, and sharing of objects between Java clients and servers. In a distributed application, Javaspace acts as a virtual space between providers and requesters of objects. One Advantage: Provides synchronization Javaspace is similar to C-Linda approach, except uses Java. Workers store and access “objects” rather than “tuples”.
Framework – Application Patterns Many different types of patterns can be represented using Javaspace: - The Replicated-Worker Pattern - The Command Pattern - The Marketplace Pattern - others. We chose to use the Master/Worker approach to solving the reassembly problem.
Framework – Remote Method Invocation(RMI) 1/3 • Distributed System using Javaspace • Worker as Server • Master as Client • RMIEntry • Host name • Port
Framework – RMI 2/3 • Worker • Put RMIEntry into javaspace • Host name , port • Master • Get the RMIEntry from javasapce • Make RMI connection • Execute a function of the worker
Algorithm Description • We parse a file into random length segments with overlaps. • Each worker is assigned a random segment by the master. The rest are thrown out into javaspace. • Each worker then reads a segment from javaspace and checks to see if its ends match the one it is holding. • If yes, it combines the segments, and uses this new one to match against. • If not, it reads another. • This continues until each worker has checked all segments. (exhaustive). • When all work is done, master gathers results and prints
What We Learned • JavaSpace Technology • RMI Technology • Javaspace is fun (but slow) • Javaspace might not be the right technology to do reassembly • Not a huge efficiency difference between “parallel” and “distributed” with this type of problem.
Improvements • Algorithm needs work. • Methods of synchronization need to be worked on. • Load balancing • Fuzzy matching implementation