X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FProbabilityAnalyserKickstarter.java;h=59c0a9f71ebcc98b7584ba8b0613dcd01f563691;hb=f79386294ab0078db7bd88d294d646c990dcfbcf;hp=fd83e3a5a2b07a9336857812df9a864d5311c237;hpb=bbb12f31b7130e384a3e930b265a561ffe29902d;p=jalview.git diff --git a/src/jalview/util/ProbabilityAnalyserKickstarter.java b/src/jalview/util/ProbabilityAnalyserKickstarter.java index fd83e3a..59c0a9f 100644 --- a/src/jalview/util/ProbabilityAnalyserKickstarter.java +++ b/src/jalview/util/ProbabilityAnalyserKickstarter.java @@ -3,6 +3,14 @@ package jalview.util; import java.io.IOException; import java.util.Scanner; +/** + * This class contains the brain of the analyser program, and contains a number + * of commands for the processing of data. + * + * @author TZVanaalten + * + */ + public class ProbabilityAnalyserKickstarter { @@ -10,6 +18,7 @@ public class ProbabilityAnalyserKickstarter throws IOException, InterruptedException { + // this does all of the processing HMMProbabilityDistributionAnalyser analyser = new HMMProbabilityDistributionAnalyser(); boolean running = true; @@ -20,76 +29,188 @@ public class ProbabilityAnalyserKickstarter String command = keyboard.nextLine(); Scanner inputScanner = new Scanner(command); + // prints family to console. Syntax is printFam if (command.indexOf("printFam") > -1) { - inputScanner.next(); - int index = inputScanner.nextInt(); - analyser.printFam(index); - continue; - } + try + { + inputScanner.next(); + int index = inputScanner.nextInt(); + analyser.printFam(index); + continue; + } catch (Exception e) + { + System.out.println("Command failed"); + } + } + // prints HMM to console. Syntax is printHMM if (command.indexOf("printHMM") > -1) { - + try + { inputScanner.next(); int index = inputScanner.nextInt(); analyser.printHMM(index); continue; + } catch (Exception e) + { + System.out.println("Command failed"); + } } - + // prints family to file in current folder. Syntax is exportFam . if (command.indexOf("exportFam") > -1) { - + try + { inputScanner.next(); int index = inputScanner.nextInt(); - String location = inputScanner.next(); - analyser.printFamToFile(index); + String location = inputScanner.next(); + analyser.exportFam(index, location); continue; + } catch (Exception e) + { + System.out.println("Command failed"); + } } - + // prints HMM to file in current folder. Syntax is exportHMM . if (command.indexOf("exportHMM") > -1) { - + try + { inputScanner.next(); int index = inputScanner.nextInt(); - String location = inputScanner.next(); - analyser.printHMMToFile(index); + String location = inputScanner.next(); + analyser.exportHMM(index, location); continue; + } catch (Exception e) + { + System.out.println("Command failed"); + } } - - if (command.indexOf("run") > -1) + // Processes data. Syntax is run . The + // number loops specifies the number of increments the program will run. + // After each increment, the data stored currently in the program is + // exported and re-read back into the program. This is to ensure that the + // program can be terminated without losing a large quantity of data. The + // increment is the number of families read per 'save'. + if (command.indexOf("run") > -1 && !(command.indexOf("ToEnd") > -1)) { + try + { + inputScanner.next(); int loops = inputScanner.nextInt(); int increments = inputScanner.nextInt(); + boolean keepRaw = inputScanner.nextBoolean(); for (int i = 0; i < loops; i++) { - analyser.run(increments); + analyser.run(increments, keepRaw); + System.out.println("Saved"); + } + System.out.println("Task completed"); + continue; + } catch (Exception e) + { + System.out.println("Command failed"); } continue; } + if ((command.indexOf("runToEnd") > -1)) + { + try + { + inputScanner.next(); + int minCount = inputScanner.nextInt(); + int maxCount = inputScanner.nextInt(); + boolean keepRaw = inputScanner.nextBoolean(); + boolean forClans = inputScanner.nextBoolean(); + analyser.runToEnd(minCount, maxCount, keepRaw, forClans); + System.out.println("Task completed"); + } catch (Exception e) + { + System.out.println("Command failed"); + } + continue; + } + // terminates program. Syntax is terminate. if (command.indexOf("terminate") > -1) { running = false; continue; } - + // clears files in current directory (Only a specific set of files). + // Syntax is clear. if (command.indexOf("clear") > -1) { analyser.clear(); continue; } - + // changes current directory. Syntax is cd if (command.indexOf("cd") > -1) { + try + { inputScanner.next(); analyser.setFolder(inputScanner.next()); + } catch (Exception e) + { + System.out.println("Command failed"); + + } + continue; + } + + if (command.indexOf("getFamName") > -1) + { + try + { + inputScanner.next(); + System.out.println(analyser.getFamilyName(inputScanner.nextInt())); + + } catch (Exception e) + { + System.out.println("Command failed"); + } + continue; + } + if (command.indexOf("sortIntoClans") > -1) + { + inputScanner.next(); + analyser.sortIntoClans(inputScanner.next()); + continue; + } - inputScanner.close(); - continue; + if (command.indexOf("setFamilies") > -1) + { + inputScanner.next(); + analyser.setFamilies(inputScanner.next()); + continue; + + } + + if (command.indexOf("setHMMs") > -1) + { + inputScanner.next(); + analyser.setHmms(inputScanner.next()); + continue; + + } + + if (command.indexOf("alignWithinClans") > -1) + { + inputScanner.next(); + String export = inputScanner.next(); + String clans = inputScanner.next(); + analyser.alignWithinClan(export, clans); + continue; + + } + + System.out.println("Unrecognised command"); }