def final_data(exp, sequences, mass, runtime): """Output final run statistics""" import Parameters """Write Polymer list to file""" filename = ('%s/%i_run_statistics.txt' % (Parameters.dirname, exp)) file = open(filename, 'w') file.write("Run parameters \n") s = 'Total mass = ' + str(mass) + '\n' file.write(s) s = 'Length of Sequences = ' + str(Parameters.R_L) + '\n' file.write(s) s = 'kr = ' + str(Parameters.kr) + '\n' file.write(s) s = 'kh = ' + str(Parameters.kh) + '\n' file.write(s) s = 'km = ' + str(Parameters.km) + '\n' file.write(s) s = 'kc = ' + str(Parameters.kc) + '\n' file.write(s) s = 'ks = ' + str(Parameters.ks) + '\n' file.write(s) s = 'mu = ' + str(Parameters.mu) + '\n' file.write(s) s = 'k_ch = ' + str(Parameters.k_ch) + '\n' file.write(s) s = 'k_ca = ' + str(Parameters.k_ca) + '\n' file.write(s) s = 'k_cs = ' + str(Parameters.k_cs) + '\n' file.write(s) s = 'Run seed = ' + str(Parameters.run_seed) + '\n' #file.write(s) #s = 'Number of Steps = ' + str(Parameters.tot_step) + '\n' + '\n' file.write("Information about kMC run including run statistics: \n \n") file.write("Total run time = ") s= str(runtime) + ' sec' file.write(s) file.write('\n') file.write('\n') file.write("Number of replication events = ") s = str(Parameters.kr_events) file.write(s) file.write('\n') file.write("Number of error-prone replication events = ") s = str(Parameters.mr_events) file.write(s) file.write('\n') file.write('\n') file.write("Number of degradation events = ") s = str(Parameters.kh_events) file.write(s) file.write('\n') file.write("Number of mutagenic events ") s = str(Parameters.km_events) file.write(s) file.write('\n') file.write('\n') file.write("Number of cross-over/recombination events ") s = str(Parameters.kc_events) file.write(s) file.write('\n') file.write('\n') file.write("Number of spontaneous assembly events ") s = str(Parameters.ks_events) file.write(s) file.write('\n') file.write('\n') file.write("Number of catalyzed recycling events ") s = str(Parameters.kch_events) file.write(s) file.write('\n') file.write('\n') file.write("Number of catalyzed recombination events ") s = str(Parameters.kca_events) file.write(s) file.write('\n') file.write('\n') file.write("Number of catalyzed assembly events ") s = str(Parameters.kcs_events) file.write(s) file.write('\n') file.write('\n') file.write("Final number of monomers = ") s = str(Parameters.Nmono) file.write(s) file.write('\n') file.write("Final number of polymers = ") s = str(Parameters.Npoly) file.write(s) file.write('\n') file.write("Null Replication events = ") s = str(Parameters.null_event) file.write(s) file.write('\n') file.close() ''' Save a list of all initial and final replicator composition at the end of the run ''' initial_composition = [0, 0, 0, 0] surviving_composition = [0, 0, 0, 0] filename = ('%s/%i_surviving_species.dat' % (Parameters.dirname, exp)) file = open(filename, 'w') for ID in range(len(sequences)): if sequences[ID].tot_count !=0: s = sequences[ID].sequence + ' ' +str(sequences[ID].seq_ID) surviving_composition = np.add(sequences[ID].tot_count*np.array(sequences[ID].seq_list), surviving_composition) file.write(s) file.write('\n') file.close() for ID in range(len(Parameters.initial_replicators)): initial_composition = np.add(Parameters.R_N*np.array(sequences[ID].seq_list), initial_composition) compositions = zip(initial_composition, surviving_composition) filename = ('%s/%i_compositions.dat' % (Parameters.dirname, exp)) np.savetxt(filename, compositions) if Parameters.output_plots == True: import Plotting Plotting.output_plots(exp, sequences, Parameters.catalysts, Parameters.substrates)