/* * This method is called to wind down the simulation. */ public void finish() { super.finish(); System.out.println("Terminating the simulation"); /* * write CSV and XML output from simulation */ File csvDataFile = new File(resultFilePath + "/" + description + "/" + runFilePath + "/simOutputData.csv"); System.out.println("Output written to " + csvDataFile); // File xmlDataFile = new File(resultFilePath + "/" + description + "/Results/" + runFilePath + // "/simOutputData.xml"); PrintWriter dataOutput; try { dataOutput = new PrintWriter(csvDataFile); dataOutput.print(dataStore.compileTableToString()); dataOutput.close(); // dataStore.compileXMLOutput(xmlDataFile); } catch (Exception e) { e.printStackTrace(); } System.out.println("Run took " + (System.currentTimeMillis() - startTime) + " milliseconds"); }
/** * This method is called to start the simulation. the run parameters are copied to the results * output directory. The run output file is created ready for writing. */ public void start() { super.start(); // call supertype's start method. // System.out.println("In main on CBSimulation class"); // need to read the parameter file readParameters(true); // And I want to write the random number seed used for this run - for record keeping PrintWriter dataOutput; new File(resultFilePath + "/" + description + "/" + runFilePath).mkdirs(); File runSeedFile = new File(resultFilePath + "/" + description + "/" + runFilePath + "/simRunSeed"); System.out.println("Creating output file " + runSeedFile.getName()); String paramCopyFile = resultFilePath + "/" + description + "/" + runFilePath + "/" + paramCopyName; copyFile(xmlFileLocation, paramCopyFile); try { dataOutput = new PrintWriter(runSeedFile); dataOutput.print(seed); dataOutput.close(); } catch (Exception e) { e.printStackTrace(); } // I'll need to instantiate the data store here // I'll schedule it from the constructor... dataStore = new DataStore(this); // System.out.println("Created DataStore object " + dataStore); }
public void readParameters(boolean ic) { try { // open the xmlFileLocation to read input DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); Document doc = docBuilder.parse(new File(xmlFileLocation)); Element setupComponent = (Element) doc.getElementsByTagName("simulation_setup").item(0); processSetupParams(setupComponent); // locate the <cistromes> tag Element cistromesComponent = (Element) doc.getElementsByTagName("cistromes").item(0); // process this into details of individual cistromes processCistromesComponent(cistromesComponent); // we'll pass the Cistrome components on to the Cell Object to make sense of... // if(instantiateCell) // { // We'll set up a Cell object to hold our Cistrome(s) // System.out.println("Cistrome data sources are " + sources); cell = new Cell(sources, this); // System.out.println("Created cell object " + cell); // } // System.out.println("Fetching cistrome data from " + cell); ArrayList<Cistrome> cistromeList = cell.getCistromeList(); for (int c = 0; c < cistromeList.size(); c++) { Cistrome thisCistrome = ((Cistrome) cistromeList.get(c)); // System.out.println("Cistrome " + c); thisCistrome.setName(names.get(c)); // System.out.println("Name: " + names.get(c)); thisCistrome.setBranchingRate(branchingRates.get(c)); // System.out.println("Branching rate: " + branchingRates.get(c)); thisCistrome.setInitialReds(numsInitialReds.get(c)); // System.out.println("Initial reds: " + numsInitialReds.get(c)); } } catch (Exception e) { e.printStackTrace(); } }