200 likes | 209 Vues
JCluster is a program that efficiently sorts, analyzes, and visually displays data for mapping the neuro-network of dragonflies. It uses a robust clustering algorithm and OpenGL library for 3D graphics. Written in C++, JCluster provides multi-variant analysis and textural representation of information, helping users interpret the data effectively.
E N D
Cluster Sorting, Analysis and 3D-Display For the Mapping of the Dragonfly’s Neuro-Network Advisor: Prof. Hannay Client: Prof. Olberg (Biology)
Agenda • Background • Problem • Solution
Background • Learning more about Dragonflies • Current Procedure
Problem • How can I interpret this data • Current Solutions
My Solution • Develop a program that sorts, analyses, and displays data.
Priorities • Good sorting algorithm • Good graphical displays • Meets requirements of client • Robustness, Modularity • Completed program
JCluster • Written in C++ • Uses OpenGL library for 3D graphics • Clustering Algorithm
Why C++ • Documented as still the “faster” language • Allows for Object-Oriented design • Works very well with OpenGL graphics
OpenGL • Widely used graphics library • Allows for 3-dimensional graphics display • Language very similar to C++
Program Design • 4 Main Parts: GUI, Algorithm (Back-End), I/O, and Graphics
GUI • Created using MFC as part of Visual C++ • One of many potential designs
Algorithm • Euclidean Distances used • Variables Standardized • Admittance based on centroid distance • Variable Reduction on high-dimensional graphs
Back-End Procedure • Data comes in as streams on numbers • Converted into Peak classes • Peak variables are given values • Peaks are sorted into clusters
Graphics • Clusters of Peaks are sent to graphics object • Clusters are color coded • Window is 360o rotation around X and Y-axis
Log File • File gives text representation of data • Identifies each cluster and the number of peaks • Average values within clusters • Factors taken into consideration • Date and Time
What does JCluster do for me? • Cluster Sorting • Multi-Variant Analysis • 3-Dimensional and Textural representation of information
Problems • Finding GUI library • Finding right algorithm • Design • Transition to C++
What Have I Learned • More proficient at C++ • Greater sense of “larger”-scale programs • Better understanding of algorithms • Interaction with client • Time Management for long-term projects
What’s Next? • List of add-on’s • Looking for better GUI library • User manual and help pages