3 import java.io.IOException;
4 import java.util.Scanner;
7 * This class contains the brain of the analyser program, and contains a number
8 * of commands for the processing of data.
14 public class ProbabilityAnalyserKickstarter
17 public static void main(String[] args)
18 throws IOException, InterruptedException
21 // this does all of the processing
22 HMMProbabilityDistributionAnalyser analyser = new HMMProbabilityDistributionAnalyser();
24 boolean running = true;
25 System.out.println("ACTIVATED");
28 Scanner keyboard = new Scanner(System.in);
29 String command = keyboard.nextLine();
31 Scanner inputScanner = new Scanner(command);
32 // prints family to console. Syntax is printFam <index>
33 if (command.indexOf("printFam") > -1)
38 int index = inputScanner.nextInt();
39 analyser.printFam(index);
43 System.out.println("Command failed");
47 // prints HMM to console. Syntax is printHMM <index>
48 if (command.indexOf("printHMM") > -1)
53 int index = inputScanner.nextInt();
54 analyser.printHMM(index);
58 System.out.println("Command failed");
61 // prints family to file in current folder. Syntax is exportFam <index>.
62 if (command.indexOf("exportFam") > -1)
67 int index = inputScanner.nextInt();
68 String location = inputScanner.next();
69 analyser.exportFam(index, location);
73 System.out.println("Command failed");
76 // prints HMM to file in current folder. Syntax is exportHMM <index>.
77 if (command.indexOf("exportHMM") > -1)
82 int index = inputScanner.nextInt();
83 String location = inputScanner.next();
84 analyser.exportHMM(index, location);
88 System.out.println("Command failed");
91 // Processes data. Syntax is run <number of loops> <increments>. The
92 // number loops specifies the number of increments the program will run.
93 // After each increment, the data stored currently in the program is
94 // exported and re-read back into the program. This is to ensure that the
95 // program can be terminated without losing a large quantity of data. The
96 // increment is the number of families read per 'save'.
97 if (command.indexOf("run") > -1)
104 int loops = inputScanner.nextInt();
105 int increments = inputScanner.nextInt();
106 boolean keepRaw = inputScanner.nextBoolean();
108 for (int i = 0; i < loops; i++)
110 analyser.run(increments, keepRaw);
111 System.out.println("Saved");
113 System.out.println("Task completed");
115 } catch (Exception e)
117 System.out.println("Command failed");
120 // terminates program. Syntax is terminate.
121 if (command.indexOf("terminate") > -1)
126 // clears files in current directory (Only a specific set of files).
128 if (command.indexOf("clear") > -1)
133 // changes current directory. Syntax is cd <directory>
134 if (command.indexOf("cd") > -1)
139 analyser.setFolder(inputScanner.next());
140 } catch (Exception e)
142 System.out.println("Command failed");
146 if (command.indexOf("getFamName") > -1)
151 System.out.println(analyser.getFamilyName(inputScanner.nextInt()));
152 inputScanner.close();
154 } catch (Exception e)
156 System.out.println("Command failed");
159 if (command.indexOf("sortIntoClans") > -1)
162 analyser.sortIntoClans(inputScanner.next());