def _openFile(self): try: import CompuCellSetup fileHandle, fullFileName = CompuCellSetup.openFileInSimulationOutputDirectory(self._fileName, "a") except IOError: print "Could not open file ", self._fileName, " for writing. Check if you have necessary permissions." return fileHandle
def __openParameterfile(self, filename): """ Writes all parameters to a file. :param filename: :return: """ #TODO: change from pure text file to xml? try: import CompuCellSetup self.__fileHandle, self.__fullFileName = CompuCellSetup.openFileInSimulationOutputDirectory(filename, "a") except IOError: print "Could not open file ", filename, \ " for writing. Check if you have necessary permissions."
def step(self,mcs): fileName="diffusion_output/FGF_"+str(mcs)+".dat" field=CompuCell.getConcentrationField(self.simulator,"FGF") if field: try: import CompuCellSetup fileHandle,fullFileName=CompuCellSetup.openFileInSimulationOutputDirectory(fileName,"w") except IOError: print "Could not open file ", fileName," for writing. Check if you have necessary permissions" for i,j,k in self.everyPixel(): fileHandle.write("%d\t%d\t%d\t%f\n"%(i,j,k,field[i,j,k])) fileHandle.close()
def step(self, mcs): if self.execConfig.interuptMCS(mcs): sumFitness_a = [] totalVolume = 0 umbrellaVolume = 0 intermediateVolume = 0 basalStemVolume = 0 mediumVolume = self.latticeSize for cell in self.cellList: if cell.type == self.BASALMEMBRANE: mediumVolume -= cell.volume if cell.type > self.BASALMEMBRANE: totalVolume += cell.volume if cell.type == self.UMBRELLA: umbrellaVolume += cell.volume mediumVolume -= cell.volume elif cell.type == self.INTERMEDIATE: intermediateVolume += cell.volume mediumVolume -= cell.volume else: basalStemVolume += cell.volume mediumVolume -= cell.volume if totalVolume == 0 or mediumVolume == 0: fitness_v = 0.0 # print "No more cell in simulation" self.stopSimulation() else: fitness_v = ( ( self.latticeSize / ((float(self.idealUmbrellaCellsVol) - float(umbrellaVolume)) ** 2.0 / 3.0 + self.latticeSize) ) + ( self.latticeSize / ( (float(self.idealIntermediateCellsVol) - float(intermediateVolume)) ** 2.0 / 3.0 + self.latticeSize ) ) + ( self.latticeSize / ( (float(self.idealBasalStemCellsVol) - float(basalStemVolume)) ** 2.0 / 3.0 + self.latticeSize ) ) ) / 3.0 for x in xrange(13, self.execConfig.xDimension, 20): swaps = 0 layers = 0 cells_in_order = [] for y in xrange(3, self.execConfig.yDimension, 7): # Gives the mode of a cell ID in a 5x3 pixels rectangle mode_of_cellIDs = [] for width in xrange(0, 2, 1): for height in xrange(0, 2, 1): if self.cellField[x + width, y + height, 0] is not None: mode_of_cellIDs.append(self.cellField[x + width, y + height, 0].id) # If mode ID exists and in not already in cell_in_order list it will be added if len(mode_of_cellIDs) > 0: cellToCheck = self.attemptFetchingCellById(self.mode(mode_of_cellIDs)) exist = False for cell in cells_in_order: if cellToCheck.id == cell.id: exist = True if not exist: cells_in_order.append(cellToCheck) layers = len(cells_in_order) if layers == 0: fitness_a = 0 else: if cells_in_order[layers - 1].type == self.UMBRELLA: lastLayer = 1 layers -= 1 else: lastLayer = 0 if cells_in_order[0].type == self.STEM or cells_in_order[0].type == self.BASAL: firstLayer = 1 layers -= 1 else: firstLayer = 0 layersInBetween = layers for x in range(firstLayer, len(cells_in_order) - 1 - lastLayer, 1): if cells_in_order[x].type != self.INTERMEDIATE: layersInBetween -= 1 fitness_a = 1.0 / ( (1.0 - float(firstLayer)) + (1.0 - float(lastLayer)) + (layers - layersInBetween) + 1.0 ) sumFitness_a.append(fitness_a) if len(sumFitness_a) == 0: self.optimum.append(0 + 1.0 / 2.0 * fitness_v) else: fitness_a = sum(sumFitness_a) / len(sumFitness_a) self.optimum.append(1.0 / 2.0 * fitness_a + 1.0 / 2.0 * fitness_v) if len(self.optimum) == 0: fitness = 0 else: fitness = sum(self.optimum) / len(self.optimum) fileName = "FitnessPlot.dat" try: import CompuCellSetup fileHandle, fullFileName = CompuCellSetup.openFileInSimulationOutputDirectory(fileName, "a") except IOError: print "Could not open file ", fileName, " for writing. Check if you have necessary permissions" fileHandle.write("%s " % (float(mcs) / 1440.0)) fileHandle.write("%s " % (fitness)) fileHandle.write("\n") fileHandle.close() fileName = "FitnessArrangement.dat" try: import CompuCellSetup fileHandle, fullFileName = CompuCellSetup.openFileInSimulationOutputDirectory(fileName, "a") except IOError: print "Could not open file ", fileName, " for writing. Check if you have necessary permissions" fileHandle.write("%s " % (float(mcs) / 1440.0)) fileHandle.write("%s " % (fitness_a)) fileHandle.write("\n") fileHandle.close() fileName = "FitnessVolume.dat" try: import CompuCellSetup fileHandle, fullFileName = CompuCellSetup.openFileInSimulationOutputDirectory(fileName, "a") except IOError: print "Could not open file ", fileName, " for writing. Check if you have necessary permissions" fileHandle.write("%s " % (float(mcs) / 1440.0)) fileHandle.write("%s " % (fitness_v)) fileHandle.write("\n") fileHandle.close() del self.optimum[:]