I wrote this Genome Query Displayer to read a large data file full of readings and display the results of queries on those readings. Each reading consisted of a chromosome, start offset, end offset, and value. My program read the raw text files with data, structured the data so that it was easy to run fast queries, then displayed the results of those queries in various ways. I was explicitly forbidden from using databases.
The program makes use of:
- B-Trees to store large amounts of readings.
- Lambda expressions (new in Java 8) to extract features from readings.
- Swing for the GUI
- Threads to load and process the data more quickly
- Regular Expressions for file parsing
- Abstract classes, interfaces, polymorphism, factory classes, singletons, enums, file input/output