def data(evaluate=False, verbose = 0): from figure_analysis import FigureData d13 = FigureData('Dabby (2013)\n4-way strand displacement') d13.fname = 'Dabby2013-4way' current = d13 pilp = [(0, 2), (2, 2), (2, 0), (4, 2), (4, 0), (0, 4), (2, 4), (6, 2), (0, 6), (4, 4), (6, 0), (2, 6), (4, 6), (6, 4), (6, 6)] litr = [(0.047), (0.10), (0.033), (0.93), (0.039), (0.97), (56), (490), (58), (770), (5.0), (9.4e3), (7.0e4), (2.8e5), (6.9e5)] for (pil, rate) in zip(pilp, litr): pilstring = dabby2013_4way_displacement(pil) exp_result = 'rep + clx -> pr1 + pr2 [k={}]'.format(rate) current.add_reaction_rate_setup(pilstring, exp_result, pil) current.pepperargs['default'] = current.pepperargs['condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) return [d13]
def data(evaluate=False, verbose = 0): from figure_analysis import FigureData # Default pilsimulator call psim = "pilsimulator --no-jacobian --nxy --header --atol 1e-10 --rtol 1e-10 --mxstep 10000 --t8 18000 --t-lin 18000" rates = {'k_slow': 1e-5, 'k_fast': 0.1} # Setup F3 = FigureData('Yin et al. (2008) Fig. 3 - Autocatalytic hairpin system (varying initiator)') F3.fname = 'Yin2008-F3' current = F3 template = yin2008_F3_pil sims = [psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=20', psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=6', psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=2', psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=1', psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=0.6', psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=0.4', psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=0.2', psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=0.1', psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=0.06', psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=0.02', psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=0.01'] #psim + ' --pyplot-labels A B C D I --p0 A=20 B=20 C=20 D=20 I=0'] # Diagonal crossing diagX = [ (297.38, 3.30), (2256.56, 5.23), (4411.66, 7.37), (5811.08, 8.72), (6930.61, 9.83), (7546.36, 10.45), (8302.04, 11.17), (8973.76, 11.76), (9281.63, 12.11), (9561.52, 12.38), (9701.46, 12.52), (9841.40, 12.66)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'A' metric = 'diagonal-crossing-time' tmax = '18000' cmax = '2;-20' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('I='):]) # Half completion halfC = [ (45.48, -10.00), (1067.06, -10.00), (3488.05, -10.00), (5321.28, -10.00), (6874.64, -10.00), (7700.29, -10.00), (8847.81, -10.00), (9729.45, -10.00), (10247.23, -10.00), (10681.05, -10.00), (10876.97, -10.00), (11086.88, -10.00)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'A' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '-10', res, simargs=sim[sim.find('I='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) return [F3]
def data(evaluate=False, verbose=0): from figure_analysis import FigureData # Default pilsimulator call psim = "pilsimulator --nxy --header --atol 1e-13 --rtol 1e-13 --mxstep 10000" psim += " --t8 18000 --t-lin 18000" # Setup F1E = FigureData( 'Zhang et al. (2007) Fig. 1 - Single-layer catalytic DSD system (varying catalyst)' ) F1E.fname = 'Zhang2007-F1' current = F1E template = zhang2007_F1_pil sims = [ psim + ' --pyplot-labels ROX S F OR C --p0 S=10 F=13 OR=30 C=10', psim + ' --pyplot-labels ROX S F OR C --p0 S=10 F=13 OR=30 C=5', psim + ' --pyplot-labels ROX S F OR C --p0 S=10 F=13 OR=30 C=2', psim + ' --pyplot-labels ROX S F OR C --p0 S=10 F=13 OR=30 C=1', psim + ' --pyplot-labels ROX S F OR C --p0 S=10 F=13 OR=30 C=0.5', psim + ' --pyplot-labels ROX S F OR C --p0 S=10 F=13 OR=30 C=0.2', psim + ' --pyplot-labels ROX S F OR C --p0 S=10 F=13 OR=30 C=0.1', psim + ' --pyplot-labels ROX S F OR C --p0 S=10 F=13 OR=30 C=0.05', psim + ' --pyplot-labels ROX S F OR C --p0 S=10 F=13 OR=30 C=0.02' ] # DIAGONAL CROSSING diagX = [(1216.44, 7.44), (1660.27, 6.83), (2457.53, 5.78), (3435.62, 4.49), (4364.38, 3.26), (5424.66, 1.88), (6073.97, 1.03), (6386.30, 0.57), (6550.68, 0.32)] #(6715.07, 0.09) 0 input for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'diagonal-crossing-time' tmax = '7200' cmax = '10' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C='):]) # Half completion halfC = [(550.68, 5.00), (953.42, 5.00), (1906.85, 5.00), (4076.71, 5.00)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '5', res, simargs=sim[sim.find('C='):]) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F3 = FigureData( 'Zhang et al. (2007) Fig. 3 - Two-layer feedforward DSD system (varying catalyst)' ) F3.fname = 'Zhang2007-F3' current = F3 template = zhang2007_F3_pil sims = [ psim + ' --pyplot-labels ROX S0 S1 F0 F1 OR C0 --p0 S1=10 F1=13 S0=10 F0=13 OR=30 C0=10', psim + ' --pyplot-labels ROX S0 S1 F0 F1 OR C0 --p0 S1=10 F1=13 S0=10 F0=13 OR=30 C0=5', psim + ' --pyplot-labels ROX S0 S1 F0 F1 OR C0 --p0 S1=10 F1=13 S0=10 F0=13 OR=30 C0=2', psim + ' --pyplot-labels ROX S0 S1 F0 F1 OR C0 --p0 S1=10 F1=13 S0=10 F0=13 OR=30 C0=1', psim + ' --pyplot-labels ROX S0 S1 F0 F1 OR C0 --p0 S1=10 F1=13 S0=10 F0=13 OR=30 C0=0.5', psim + ' --pyplot-labels ROX S0 S1 F0 F1 OR C0 --p0 S1=10 F1=13 S0=10 F0=13 OR=30 C0=0.2', psim + ' --pyplot-labels ROX S0 S1 F0 F1 OR C0 --p0 S1=10 F1=13 S0=10 F0=13 OR=30 C0=0.1', psim + ' --pyplot-labels ROX S0 S1 F0 F1 OR C0 --p0 S1=10 F1=13 S0=10 F0=13 OR=30 C0=0.05', psim + ' --pyplot-labels ROX S0 S1 F0 F1 OR C0 --p0 S1=10 F1=13 S0=10 F0=13 OR=30 C0=0.02', psim + ' --pyplot-labels ROX S0 S1 F0 F1 OR C0 --p0 S1=10 F1=13 S0=10 F0=13 OR=30 C0=0.01' ] #Diagonal Dataset diagX = [ (1860.53, 6.56), (2302.30, 5.98), (2744.07, 5.40), (3066.90, 4.98), (3856.99, 3.92), (4519.65, 3.07), (4910.44, 2.54), (5607.08, 1.63), (5904.42, 1.23), (6065.84, 1.02) ] #(6320.71, 0.66), # 0x #(6720.00, 0.15)] # control for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'diagonal-crossing-time' tmax = '7200' cmax = '10' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C0='):]) # Half completion halfC = [(1257.35, 5.00), (1852.04, 5.00), (2514.69, 5.00), (3066.90, 5.00), (4850.97, 5.00)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '5', res, simargs=sim[sim.find('C0='):]) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F4 = FigureData( 'Zhang et al. (2007) Fig. 4 - Autocatalytic DSD system (varying autocatalyst)' ) F4.fname = 'Zhang2007-F4' current = F4 template = zhang2007_F4_pil sims = [ psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=10', psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=7', psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=5', psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=3', psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=2', psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=1', psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=0.7', psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=0.5', psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=0.3', psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=0.2', psim + ' --pyplot-labels TET S F SR A --p0 S=10 F=13 SR=20 A=0.1' ] #Diagonal Dataset diagX = [(496.08, 7.62), (600.76, 7.32), (655.37, 7.16), (855.63, 6.61), (910.24, 6.45), (1064.98, 6.04), (1206.07, 5.64), (1237.93, 5.54), (1333.50, 5.26), (1392.67, 5.10), (1465.49, 4.91)] #(1756.76, 4.10)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'TET' metric = 'diagonal-crossing-time' tmax = '3600' cmax = '10' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('A='):]) #Half completion halfC = [(241.21, 5.0), (350.44, 5.0), (393.68, 5.0), (609.86, 5.0), (694.06, 5.0), (892.04, 5.0), (1087.74, 5.0), (1121.87, 5.0), (1276.61, 5.0), (1376.74, 5.0), (1470.04, 5.0)] #(1966.12, 5.0)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'TET' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '5', res, simargs=sim[sim.find('A='):]) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) return [F1E, F3, F4]
def data(evaluate=False, verbose=0): from figure_analysis import FigureData rates = {'k_slow': 0.01, 'k_fast': 1} seesaw_on = { 'ssw_rxns': 'seesaw-T25-utbr-leak-reduced', 'ssw_expl': False, 'ssw_conc': 50e-9, 'dry_run': True } seesaw_off = { 'ssw_rxns': None, 'ssw_expl': False, 'ssw_conc': 50e-9, 'dry_run': False } # Default pilsimulator call psim = "pilsimulator --no-jacobian --nxy --header --atol 1e-13 --rtol 1e-13 --mxstep 1000 --t8 36000 --t-lin 18000" # Setup SF31 = FigureData('Sup. Fig. 31: Integer 4-bit square-root circuit') SF31.fname = 'Qian2011-SF31' current = SF31 template = qian2011_SF31 sims = [ psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=45 x4_1=5 x3_0=45 x3_1=5 x2_0=45 x2_1=5 x1_0=45 x1_1=5', # 0000 psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=45 x4_1=5 x3_0=45 x3_1=5 x2_0=45 x2_1=5 x1_0=5 x1_1=45', # 0001 psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=45 x4_1=5 x3_0=45 x3_1=5 x2_0=5 x2_1=45 x1_0=45 x1_1=5', # 0010 psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=45 x4_1=5 x3_0=45 x3_1=5 x2_0=5 x2_1=45 x1_0=5 x1_1=45', # 0011 psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=45 x4_1=5 x3_0=5 x3_1=45 x2_0=45 x2_1=5 x1_0=45 x1_1=5', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=45 x4_1=5 x3_0=5 x3_1=45 x2_0=45 x2_1=5 x1_0=5 x1_1=45', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=45 x4_1=5 x3_0=5 x3_1=45 x2_0=5 x2_1=45 x1_0=45 x1_1=5', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=45 x4_1=5 x3_0=5 x3_1=45 x2_0=5 x2_1=45 x1_0=5 x1_1=45', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=5 x4_1=45 x3_0=45 x3_1=5 x2_0=45 x2_1=5 x1_0=45 x1_1=5', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=5 x4_1=45 x3_0=45 x3_1=5 x2_0=45 x2_1=5 x1_0=5 x1_1=45', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=5 x4_1=45 x3_0=45 x3_1=5 x2_0=5 x2_1=45 x1_0=45 x1_1=5', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=5 x4_1=45 x3_0=45 x3_1=5 x2_0=5 x2_1=45 x1_0=5 x1_1=45', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=5 x4_1=45 x3_0=5 x3_1=45 x2_0=45 x2_1=5 x1_0=45 x1_1=5', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=5 x4_1=45 x3_0=5 x3_1=45 x2_0=45 x2_1=5 x1_0=5 x1_1=45', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=5 x4_1=45 x3_0=5 x3_1=45 x2_0=5 x2_1=45 x1_0=45 x1_1=5', psim + ' --pyplot-labels y1_0 y1_1 y2_0 y2_1 --p0 x4_0=5 x4_1=45 x3_0=5 x3_1=45 x2_0=5 x2_1=45 x1_0=5 x1_1=45' ] simargs = [ '0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111' ] litr = [('y1_0', [(4.2 * 3600, 50 * 0.42), (7.1 * 3600, 50 * 0.1), (7.1 * 3600, 50 * 0.1), (7.1 * 3600, 50 * 0.1), (3.9 * 3600, 50 * 0.55), (4.1 * 3600, 50 * 0.45), (4.1 * 3600, 50 * 0.45), (4.1 * 3600, 50 * 0.45), (4.5 * 3600, 50 * 0.42), (7.3 * 3600, 50 * 0.1), (7.3 * 3600, 50 * 0.1), (7.3 * 3600, 50 * 0.1), (7.3 * 3600, 50 * 0.1), (7.3 * 3600, 50 * 0.1), (7.3 * 3600, 50 * 0.1), (7.3 * 3600, 50 * 0.1)]), ('y1_1', [(7.1 * 3600, 50 * 0.1), (5.0 * 3600, 50 * 0.4), (5.0 * 3600, 50 * 0.4), (4.2 * 3600, 50 * 0.42), (7.3 * 3600, 50 * 0.08), (7.3 * 3600, 50 * 0.08), (7.3 * 3600, 50 * 0.08), (7.3 * 3600, 50 * 0.08), (6.9 * 3600, 50 * 0.1), (4.0 * 3600, 50 * 0.5), (4.0 * 3600, 50 * 0.5), (3.8 * 3600, 50 * 0.6), (6.0 * 3600, 50 * 0.25), (4.0 * 3600, 50 * 0.51), (4.0 * 3600, 50 * 0.51), (3.5 * 3600, 50 * 0.6)]), ('y2_0', [(3.1 * 3600, 50 * 0.55), (3.0 * 3600, 50 * 0.6), (3.0 * 3600, 50 * 0.6), (3.0 * 3600, 50 * 0.6), (6.8 * 3600, 50 * 0.1), (6.8 * 3600, 50 * 0.1), (6.8 * 3600, 50 * 0.1), (6.8 * 3600, 50 * 0.1), (7.0 * 3600, 50 * 0.11), (7.0 * 3600, 50 * 0.11), (7.0 * 3600, 50 * 0.11), (7.0 * 3600, 50 * 0.11), (7.2 * 3600, 50 * 0.08), (7.2 * 3600, 50 * 0.08), (7.2 * 3600, 50 * 0.08), (7.2 * 3600, 50 * 0.08)]), ('y2_1', [(7.0 * 3600, 50 * 0.10), (7.0 * 3600, 50 * 0.10), (7.0 * 3600, 50 * 0.10), (7.0 * 3600, 50 * 0.10), (2.0 * 3600, 50 * 0.75), (2.0 * 3600, 50 * 0.75), (2.0 * 3600, 50 * 0.75), (2.0 * 3600, 50 * 0.75), (1.8 * 3600, 50 * 0.8), (1.8 * 3600, 50 * 0.8), (1.8 * 3600, 50 * 0.8), (1.8 * 3600, 50 * 0.8), (2.0 * 3600, 50 * 0.8), (2.0 * 3600, 50 * 0.8), (2.0 * 3600, 50 * 0.8), (2.0 * 3600, 50 * 0.8), (1.5 * 3600, 50 * 0.85), (1.5 * 3600, 50 * 0.85), (1.5 * 3600, 50 * 0.85), (1.5 * 3600, 50 * 0.85)])] for (rep, results) in litr: for (sim, arg, res) in zip(sims, simargs, results): pilstring = template(None) simulation = sim reporter = rep metric = 'diagonal-crossing-time' tmax = '36000' cmax = '50' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=rep + '-' + arg) current.pepperargs['default'] = current.pepperargs['CONDENSED'].copy() #current.pepperargs['default'].update(rates) current.pepperargs['default'].update(seesaw_off) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) return [SF31]
def data(evaluate=False, verbose=0): from figure_analysis import FigureData # Setup Experiment 1 z09_3way = FigureData( 'Zhang and Winfree (2009)\n3-way strand displacement') z09_3way.fname = 'Zhang2009-3way' current = z09_3way k3way_exp = [ #((n, m), k) #((0, 15), 1.40), ((1, 14), 8.17), ((2, 13), 144), ((3, 12), 1.08e3), ((4, 11), 5.05e4), ((5, 10), 9.64e5), ((6, 9), 2.36e6), ((7, 8), 3.22e6), ((8, 9), 3.15e6), ((9, 8), 2.77e6), ((10, 7), 2.83e6), ((15, 0), 4.78e6) ] for (pil, rate) in k3way_exp: pilstring = zhang2009_3way_displacement(pil) exp_result = 'X + S -> Y + L [k={}]'.format(rate) current.add_reaction_rate_setup(pilstring, exp_result, pil) current.pepperargs['default'] = current.pepperargs['condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup Experiment 2 z09_3wayX = FigureData('Zhang and Winfree (2009)\n3-way toehold exchange') z09_3wayX.fname = 'Zhang2009-3wayX' current = z09_3wayX k3wayX_exp = [((1, 4), 7.70), ((1, 3), 5.48), ((1, 2), 23.5), ((1, 1), 18.9), ((2, 5), 43.6), ((2, 4), 214.05), ((2, 3), 273.0), ((2, 2), 249.0), ((2, 1), 231.0), ((3, 6), 66.9), ((3, 5), 215.0), ((3, 4), 939.0), ((3, 3), 974.0), ((3, 2), 907.0), ((3, 1), 846.0), ((4, 7), 131.0), ((4, 6), 407.0), ((4, 5), 4.25e3), ((4, 4), 2.13e4), ((4, 3), 2.41e4), ((4, 2), 2.29e4), ((4, 1), 1.97e4), ((5, 7), 3.59e3), ((5, 6), 9.72e4), ((5, 5), 3.45e5), ((5, 4), 1.53e6), ((5, 3), 1.58e6), ((5, 2), 1.58e6), ((5, 1), 1.73e6), ((6, 7), 1.61e5), ((6, 6), 4.05e5), ((6, 5), 1.48e6), ((6, 4), 3.04e6), ((6, 3), 2.59e6), ((6, 2), 3.00e6), ((7, 7), 4.7e5), ((7, 6), 1.11e6), ((7, 5), 2.90e6), ((7, 4), 3.57e6), ((8, 7), 1.94e6), ((8, 6), 2.68e6), ((8, 5), 3.14e6), ((8, 4), 3.37e6)] for (pil, rate) in k3wayX_exp: pilstring = zhang2009_3way_exchange(pil) exp_result = 'X + S -> Y + L [k={}]'.format(rate) current.add_reaction_rate_setup(pilstring, exp_result, pil) current.pepperargs['default'] = current.pepperargs['condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) return [z09_3way, z09_3wayX]
def data(evaluate=False, verbose = 0): from figure_analysis import FigureData # Default pilsimulator call psim = "pilsimulator --no-jacobian --nxy --header" psim += " --atol 1e-12 --rtol 1e-12 --mxstep 1000" psim += " --t8 18000 --t-lin 18000" rates = {'k_slow': 1e-5, 'k_fast': 0.1} rc = {'release_cutoff': 15} # Setup F3 = FigureData('Zhang & Winfree (2009) Fig. 3 - Single strand displacement reactions (varying toehold length)') F3.fname = 'Zhang2009-F3' current = F3 template = zhang2009_F1DF_displacement_pil sims = [psim + ' --pyplot-labels F R S X --p0 R=3 S=1 X=0.6', psim + ' --pyplot-labels F R S X --p0 R=3 S=1 X=0.4', psim + ' --pyplot-labels F R S X --p0 R=3 S=1 X=0.2'] diagX = [(1260, 0.31), (1867, 0.27), (3498, 0.17)] for (sim, res) in zip(sims, diagX): pilstring = template(5) simulation = sim reporter = 'F' metric = 'diagonal-crossing-time' tmax = '7200' cmax = '0.4' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('X='):]) # Half completion halfC = [(1241.01, 0.30), (2430.95, 0.30)] for (sim, res) in zip(sims, halfC): pilstring = template(5) simulation = sim reporter = 'F' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '0.3', res, simargs=sim[sim.find('X='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F4 = FigureData('Zhang & Winfree (2009) Fig. 4 - Single toehold exchange reactions (varying toehold lengths)') F4.fname = 'Zhang2009-F4' current = F4 template = zhang2009_F1DF_exchange_pil pilp = [(4,7), (5,7), (6,7), (7,7)] halfC = [ (527.64, 0.20), (578.28, 0.20), (983.36, 0.20), (1877.93, 0.20)] for (pip, res) in zip(pilp, halfC): pilstring = template(pip) simulation = psim + ' --pyplot-labels F R S X --p0 R=3 S=1 X=0.4' reporter = 'F' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '0.2', res, simargs=sim[sim.find('X='):]) diagX = [(785, 0.28), (823, 0.27), (1192, 0.23), (1622, 0.18)] for (pip, res) in zip(pilp, diagX): pilstring = template(pip) simulation = psim + ' --pyplot-labels F R S X --p0 R=3 S=1 X=0.4' reporter = 'F' metric = 'diagonal-crossing-time' tmax = '3600' cmax = '0.4' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('X='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F5 = FigureData('Zhang & Winfree (2009) Fig. 5 - Catalytic DSD system (varying toehold lengths)') F5.fname = 'Zhang2009-F5' current = F5 template = zhang2009_F5_pil pilp = [6,7,5,8,4,9,3,2] diagX = [ (2825.85, 7.53), (3485.78, 7.09), (4737.96, 6.19), (9103.64, 3.20), (10728.08, 2.08), (11269.57, 1.71), (13300.12, 0.30), (13672.39, 0.08)] for (pip, res) in zip(pilp, diagX): pilstring = template(pip) simulation = psim + ' --pyplot-labels F R S Z X --p0 R=30 S=10 Z=100 X=1' reporter = 'F' metric = 'diagonal-crossing-time' tmax = '14400' cmax = '10' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('X='):]) halfC = [ (1066.04, 5.01), (1472.15, 5.01), (3096.59, 5.01)] for (pip, res) in zip(pilp, halfC): pilstring = template(pip) simulation = psim + ' --pyplot-labels F R S Z X --p0 R=30 S=10 Z=100 X=1' reporter = 'F' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '5.01', res, simargs=sim[sim.find('X='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) return [F3, F4, F5]
def data(evaluate=False, verbose=0): from figure_analysis import FigureData # Default pilsimulator call psim = "pilsimulator --no-jacobian --nxy --header" psim += " --atol 1e-10 --rtol 1e-10 --mxstep 1000" psim += " --t8 54000 --t-lin 54000" rates = {'k_slow': 0.001, 'k_fast': 0.1} # Setup F3A = FigureData('Zhang (2011) Fig. 3A - Cooperative strand displacement') F3A.fname = 'Zhang2011-F3A' current = F3A template = zhang2011_F1_pil sims = [ psim + ' --pyplot-labels R D1 T1 T2 F --p0 R=60 D1=20 T1=18 T2=18', psim + ' --pyplot-labels R D1 T1 T2 F --p0 R=60 D1=20 T1=12 T2=12', psim + ' --pyplot-labels R D1 T1 T2 F --p0 R=60 D1=20 T1=6 T2=6' ] diagX = [(409.46, 9.15), (425.68, 6.14), (300.00, 3.25)] diagXe = [('1800', '12'), ('1800', '8'), ('1800', '4')] for (sim, res, tc) in zip(sims, diagX, diagXe): pilstring = template(None) simulation = sim reporter = 'F' metric = 'diagonal-crossing-time' tmax = tc[0] cmax = tc[1] current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('T1='):]) halfC = [(381.08, 9.02), (385.14, 6.01), (263.51, 3.02)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'F' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '50%', res, simargs=sim[sim.find('T1='):]) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() current.pepperargs['default'].update(rates) if evaluate: current.eval(verbose=verbose) if verbose: for df in current.get_dataframes(): print(df) return [F3A]
def data(evaluate=False, verbose=0): from figure_analysis import FigureData psim = "pilsimulator --no-jacobian --header --nxy --atol 1e-13 --rtol 1e-13 --mxstep 10000 " psim += "--t-lin 10000 --t8 1000" rates = {'k_slow': 1e-10, 'k_fast': 0.01} G11_F3 = FigureData('Fig. 3: |a|=14, |b|=22, varying: |n|, |m|') G11_F3.fname = 'Genot2011-F3' current = G11_F3 template = genot2011_F3_pil pilp = [(8, 7), (17, 17), (20, 20), (23, 23)] # original # After 30% of the reaction has gone to completion, the signal dropped to 70%. litr = [(42, 1.98), (48, 1.98), (100, 1.98), (91, 1.98)] # seconds for (pil, res) in zip(pilp, litr): pilstring = template(pil) simulation = psim + " --pyplot-labels S I T W --p0 S=6.6 I=660" reporter = 'T' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '1.98', res) #, simargs='pilname') current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) G11_F4A = FigureData('Fig. 4A: |n|=|m|=0, either |a|=11 or |a|=9') G11_F4A.fname = 'Genot2011-F4A' current = G11_F4A template = genot2011_F4A_pil pilp = [11, 9] #litr = [(32, 0.58*6.6), (38, 0.58*6.6)] litr = [(2, 1.98), (3, 1.98)] for (pil, res) in zip(pilp, litr): pilstring = template(pil) simulation = psim + " --pyplot-labels S I T W --p0 S=6.6 I=22" reporter = 'T' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '1.98', res) #, simargs='pilname') current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) G11_F4B = FigureData('Fig. 4B: |n|=|m|=1, either |a|=11 or |a|=9') G11_F4B.fname = 'Genot2011-F4B' current = G11_F4B template = genot2011_F4B_pil pilp = [11, 9] #litr = [(44, 3.3), (182, 3.3)] litr = [(15, 1.98), (75, 1.98)] for (pil, res) in zip(pilp, litr): pilstring = template(pil) simulation = psim + " --pyplot-labels S I T W --p0 S=6.6 I=22" reporter = 'T' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '1.98', res) #, simargs='pilname') current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) G11_F4C = FigureData('Fig. 4C: |n|=|m|=0, |a|=6, varying: [invader]$_0$') G11_F4C.fname = 'Genot2011-F4C' current = G11_F4C template = genot2011_F4C_pil sims = [ psim + " --pyplot-labels S I T W --p0 S=6.6 I=330", psim + " --pyplot-labels S I T W --p0 S=6.6 I=145", psim + " --pyplot-labels S I T W --p0 S=6.6 I=66" ] #litr = [(69, 3.3), (177, 3.3), (347, 3.3)] litr = [(25, 1.98), (75, 1.98), (150, 1.98)] for (sim, res) in zip(sims, litr): pilstring = template(None) simulation = sim reporter = 'T' metric = 'completion-time' current.add_system_simulation_setup( pilstring, simulation, reporter, metric, '1.98', res) #, simargs=sim[sim.find('I='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) G11_F4D = FigureData('Fig. 4D: |n|=|m|=17, |a|=14, varying: [invader]$_0$') G11_F4D.fname = 'Genot2011-F4D' current = G11_F4D template = genot2011_F4D_pil sims = [ psim + " --pyplot-labels S I T W --p0 S=6.6 I=330", psim + " --pyplot-labels S I T W --p0 S=6.6 I=145", psim + " --pyplot-labels S I T W --p0 S=6.6 I=66" ] #litr = [(176, 3.3), (213, 3.3), (248, 3.3)] litr = [(51, 1.98), (55, 1.98), (60, 1.98)] for (sim, res) in zip(sims, litr): pilstring = template(None) simulation = sim reporter = 'T' metric = 'completion-time' current.add_system_simulation_setup( pilstring, simulation, reporter, metric, '1.98', res) #, simargs=sim[sim.find('I='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) G11_SF4A = FigureData('Sup. Fig. 4A: |a|=14, |b|=22 varying: |n|,|m|') G11_SF4A.fname = 'Genot2011-SF4A' current = G11_SF4A template = genot2011_SF4A_pil pilp = [17, 20, 23] #litr = [(9088, 5), (13927, 5), (28681, 5)] litr = [(4249, 3), (6492, 3), (12157, 3)] psim = "pilsimulator --nxy --header --atol 1e-12 --rtol 1e-12 --mxstep 10000 --t-lin 100000 --t8 1e5" for (pil, res) in zip(pilp, litr): pilstring = template(pil) simulation = psim + " --pyplot-labels S X R F --p0 R=30 X=40 S=10" reporter = 'F' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '3', res) current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) G11_SF5 = FigureData('Sup. Fig. 5: |m|=|n|=20, varying: |a|') G11_SF5.fname = 'Genot2011-SF5' current = G11_SF5 template = genot2011_SF5_pil pilp = [14, 10, 8, 6, 4, 2] litr = [(25382, 6.94), (35273, 5.76), (68655, 1.87), (77018, 0.91), (76218, 0.99), (77818, 0.79)] psim = "pilsimulator --nxy --header --atol 1e-12 --rtol 1e-12 --mxstep 10000 --t-lin 100000 --t8 1e5" for (pil, res) in zip(pilp, litr): pilstring = template(pil) simulation = psim + " --pyplot-labels S X R F --p0 R=30 X=40 S=10" reporter = 'F' metric = 'diagonal-crossing-time' tmax = '86400' cmax = '10' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res) current.pepperargs['default'] = current.pepperargs['detailed'].copy() current.pepperargs['default'].update({'k_slow': 1e-10, 'k_fast': 1e-5}) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) return [G11_F3, G11_F4A, G11_F4B, G11_F4C, G11_F4D, G11_SF4A] #, G11_SF5]
def data(evaluate=False, verbose=0): from figure_analysis import FigureData # Default pilsimulator call psim = "pilsimulator --no-jacobian --nxy --header" psim += " --atol 1e-10 --rtol 1e-10 --mxstep 1000" psim += " --t8 86500 --t-lin 86500" rates = {'k_slow': 1e-5, 'k_fast': 0.1} # Setup F3A = FigureData( 'Zhang & Winfree (2010) Fig. 3A - Catalytic DSD system with 100 nM substrates (varying catalyst)' ) F3A.fname = 'Zhang2010-F3A' current = F3A template = zhang2007_F1_pil sims = [ psim + ' --pyplot-labels S F OR C ROX --p0 S=100 F=200 OR=300 C=10', psim + ' --pyplot-labels S F OR C ROX --p0 S=100 F=200 OR=300 C=1' ] diagX = [(2557.53, 88.07), (11842.47, 44.61)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'diagonal-crossing-time' tmax = '21600' cmax = '100' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C='):]) halfC = [(611.58, 50.00), (15956.76, 50.00)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '50', res, simargs=sim[sim.find('C='):]) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F3B = FigureData( 'Zhang & Winfree (2010) Fig. 3B - Catalytic DSD system 30 nM substrates (varying catalyst)' ) F3B.fname = 'Zhang2010-F3B' current = F3B template = zhang2007_F1_pil sims = [ psim + ' --pyplot-labels S F OR C ROX --p0 S=30 F=60 OR=90 C=3', psim + ' --pyplot-labels S F OR C ROX --p0 S=30 F=60 OR=90 C=0.9' ] diagX = [(4200.75, 24.15), (9051.94, 17.45)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'diagonal-crossing-time' tmax = '21600' cmax = '30' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C='):]) halfC = [(1571.89, 15), (6938.02, 15)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '15', res, simargs=sim[sim.find('C='):]) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F3C = FigureData( 'Zhang & Winfree (2010) Fig. 3C - Catalytic DSD system with 3 nM substrates (varying catalyst)' ) F3C.fname = 'Zhang2010-F3C' current = F3C template = zhang2007_F1_pil sims = [ psim + ' --pyplot-labels S F OR C ROX --p0 S=3 F=6 OR=9 C=0.9', psim + ' --pyplot-labels S F OR C ROX --p0 S=3 F=6 OR=9 C=0.3' ] diagX = [(10199.26, 2.30), (17034.36, 1.82)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'diagonal-crossing-time' tmax = '43200' cmax = '3' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C='):]) halfC = [(4485.54, 1.50), (12388.63, 1.50)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '1.5', res, simargs=sim[sim.find('C='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F3D = FigureData( 'Zhang & Winfree (2010) Fig. 3D - Catalytic DSD system with 1 nM substrates (varying catalyst)' ) F3D.fname = 'Zhang2010-F3D' current = F3D template = zhang2007_F1_pil sims = [ psim + ' --pyplot-labels S F OR C ROX --p0 S=1 F=2 OR=3 C=1', psim + ' --pyplot-labels S F OR C ROX --p0 S=1 F=2 OR=3 C=0.1' ] diagX = [(14382.50, 0.83), (40417.98, 0.53)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'diagonal-crossing-time' tmax = '86400' cmax = '1' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C='):]) halfC = [(5354.07, 0.50), (36323.69, 0.50)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '0.5', res, simargs=sim[sim.find('C='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F10C = FigureData( 'Zhang & Winfree (2010) Fig. 10C -- Catalytic DSD system with four-letter alphabet (varying catalyst)' ) F10C.fname = 'Zhang2010-F10C' current = F10C template = zhang2010_F10A_pil sims = [ psim + ' --pyplot-labels S4 F4 OR4 C4 ROX --p0 S4=30 F4=60 OR4=90 C4=3', psim + ' --pyplot-labels S4 F4 OR4 C4 ROX --p0 S4=30 F4=60 OR4=90 C4=0.09', psim + ' --pyplot-labels S4 F4 OR4 C4 ROX --p0 S4=30 F4=60 OR4=90 C4=0.03' ] diagX = [(14893.10, 11.70), (25416.48, 5.91), (31189.31, 2.72)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'ROX' metric = 'diagonal-crossing-time' tmax = '36000' cmax = '20' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C4='):]) #NOTE: That doesn't make sense! #halfC = [(10663.70, 10.01)] #for (sim, res) in zip(sims, halfC): # pilstring = template(None) # simulation = sim # reporter = 'ROX' # metric = 'completion-time' # current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '10', # res, simargs=sim[sim.find('C4='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F10F = FigureData( 'Zhang & Winfree (2010) Fig. 10F -- Catalytic DSD system with three and four-letter alphabet (varying catalyst)' ) F10F.fname = 'Zhang2010-F10F' current = F10F template = zhang2010_F10D_pil sims = [ psim + ' --pyplot-labels S43 F43 OR43 C43 RG --p0 S43=10 F43=20 OR43=30 C43=3', psim + ' --pyplot-labels S43 F43 OR43 C43 RG --p0 S43=10 F43=20 OR43=30 C43=0.09', psim + ' --pyplot-labels S43 F43 OR43 C43 RG --p0 S43=10 F43=20 OR43=30 C43=0.03' ] diagX = [(3545.01, 4.06), (5321.74, 2.07), (6277.79, 1.01)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'RG' metric = 'diagonal-crossing-time' tmax = '7200' cmax = '8' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C43='):]) #NOTE: That doesn't make sense! #halfC = [(3426.56, 4.00)] #for (sim, res) in zip(sims, halfC): # pilstring = template(None) # simulation = sim # reporter = 'RG' # metric = 'completion-time' # current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '4', # res, simargs=sim[sim.find('C43='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) return [F3A, F3B, F3C, F3D] #, F10C, F10F]
def data(evaluate=False, verbose=0): from figure_analysis import FigureData # Default pilsimulator call psim = "pilsimulator --no-jacobian --nxy --header --atol 1e-12 --rtol 1e-12 --mxstep 1000" h10l = " --t0 0 --t8 36000 --t-lin 18000" h20l = " --t0 0 --t8 72000 --t-lin 18000" h30log = " --t0 0.1 --t8 108000 --t-log 18000" # Setup k17_F2 = FigureData( 'Kotani & Hughes (2017) Fig. 2 - Single-layer catalytic DSD with 4-way branch migration (varying catalyst)' ) k17_F2.fname = 'Kotani2017-F2' current = k17_F2 template = kotani2017_F2_pil sims = [ psim + h10l + " --pyplot-labels D S1 S2 R C1 --p0 S1=10 S2=10 R=20 C1=1", psim + h10l + " --pyplot-labels D S1 S2 R C1 --p0 S1=10 S2=10 R=20 C1=0.5", psim + h10l + " --pyplot-labels D S1 S2 R C1 --p0 S1=10 S2=10 R=20 C1=0.05" ] #litr = [(7733, 7.42), (11333, 6.18), (25533, 1.40)] diagX = [(4893.97, 7.49), (9388.93, 6.29), (27435.62, 1.35)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'D' metric = 'diagonal-crossing-time' cmax = '10' tmax = '32400' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C1='):]) halfC = [(555.34, 5.00), (4514.48, 5.00)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'D' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '5', res, simargs=sim[sim.find('C1='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default']['release_cutoff'] = 7 current.pepperargs['default']['max_complex_size'] = 8 if evaluate: current.eval(cmpfig=True) if verbose: for df in current.get_dataframes(): print(df) # Setup k17_F3 = FigureData( 'Kotani & Hughes (2017) Fig. 3 - Two-layer feedforward DSD system with 4-way branch migration (varying catalyst)' ) k17_F3.fname = 'Kotani2017-F3' current = k17_F3 template = kotani2017_F3_pil sims = [ psim + h30log + " --pyplot-labels D S1 S2 S3 S4 R C1 --p0 S1=10 S2=10 S3=10 S4=10 R=20 C1=0.1", psim + h30log + " --pyplot-labels D S1 S2 S3 S4 R C1 --p0 S1=10 S2=10 S3=10 S4=10 R=20 C1=0.01", psim + h30log + " --pyplot-labels D S1 S2 S3 S4 R C1 --p0 S1=10 S2=10 S3=10 S4=10 R=20 C1=0.001" ] #litr = [(21220, 7.72), (64203, 3.12), (86996, 0.69)] diagX = [(21370.60, 7.78), (66095.66, 3.17), (90663.66, 0.74)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'D' metric = 'diagonal-crossing-time' cmax = '10' tmax = '97200' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C1='):]) halfC = [(12994.28, 5)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'D' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '5', res, simargs=sim[sim.find('C1='):]) current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default']['release_cutoff'] = 7 current.pepperargs['default']['max_complex_size'] = 8 if evaluate: current.eval(cmpfig=True) if verbose: for df in current.get_dataframes(): print(df) # Setup k17_F4 = FigureData( 'Kotani & Hughes (2017) Fig. 4 - Autocatalytic DSD system with 4-way branch migration (varying autocatalyst)' ) k17_F4.fname = 'Kotani2017-F4' current = k17_F4 template = kotani2017_F4_pil sims = [ psim + h20l + " --pyplot-labels D S5 S6 R C1 --p0 S5=10 S6=10 R=20 C1=0.1", psim + h20l + " --pyplot-labels D S5 S6 R C1 --p0 S5=10 S6=10 R=20 C1=0.01", psim + h20l + " --pyplot-labels D S5 S6 R C1 --p0 S5=10 S6=10 R=20 C1=0.001", psim + h20l + " --pyplot-labels D S5 S6 R C1 --p0 S5=10 S6=10 R=20 C1=0" ] diagX = [(6800.87, 6.11), (9054.78, 4.88), (10322.61, 4.21), (10921.30, 3.85)] for (sim, res) in zip(sims, diagX): pilstring = template(None) simulation = sim reporter = 'D' metric = 'diagonal-crossing-time' cmax = '10' tmax = '18000' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=sim[sim.find('C1='):]) halfC = [(6131.74, 5), (9125.22, 5), (10780.43, 5), (11520.00, 5)] for (sim, res) in zip(sims, halfC): pilstring = template(None) simulation = sim reporter = 'D' metric = 'completion-time' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, '5', res, simargs=sim[sim.find('C1='):]) current.pepperargs['default'] = current.pepperargs['CONDENSED'].copy() current.pepperargs['default']['max_complex_size'] = 24 current.pepperargs['default']['k_slow'] = 1e-4 current.pepperargs['default']['k_fast'] = 1e-3 if evaluate: current.eval(cmpfig=True) if verbose: for df in current.get_dataframes(): print(df) return [k17_F2, k17_F3, k17_F4]
def data(evaluate=False, verbose = 0): """ """ from figure_analysis import FigureData rates = {'k_slow': 0.01, 'k_fast': 1} seesaw = {'ssw_rxns': None, #'T20-utbr-leak-reduced', 'ssw_expl': False, 'ssw_conc': 100e-9, 'dry_run': False} # Default pilsimulator call psim = "pilsimulator --no-jacobian --nxy --header" psim += " --atol 1e-12 --rtol 1e-12" # + " --mxstep 10000" h1l = " --t8 3600 --t-lin 3600" h5l = " --t8 18000 --t-lin 9000" h10l = " --t8 36000 --t-lin 18000" h12l = " --t8 43200 --t-lin 21600" # Setup SF22 = FigureData('Sup. Fig. 22: Single catalyst, no threshold') SF22.fname='Qian2011-SF22' current = SF22 template = qian2011_SF22 sims = [psim + h1l + " --pyplot-labels I O --p0 I=100", psim + h1l + " --pyplot-labels I O --p0 I=90", psim + h1l + " --pyplot-labels I O --p0 I=80", psim + h1l + " --pyplot-labels I O --p0 I=70", psim + h1l + " --pyplot-labels I O --p0 I=60", psim + h1l + " --pyplot-labels I O --p0 I=50", psim + h1l + " --pyplot-labels I O --p0 I=40", psim + h1l + " --pyplot-labels I O --p0 I=30", psim + h1l + " --pyplot-labels I O --p0 I=20", psim + h1l + " --pyplot-labels I O --p0 I=10"] litr = [(738.55, 72.89), (766.03, 71.75), (796.95, 70.62), (834.73, 69.18), (886.26, 67.22), (951.53, 65.05), (1040.84, 61.75), (1157.63, 57.32), (1353.44, 50.31), (1700.38, 37.53)] for (sim, res) in zip(sims, litr): pilstring = template(None) simulation = sim reporter = 'O' metric = 'diagonal-crossing-time' tmax = '2700' cmax = '100' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res) current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) current.pepperargs['default'].update(seesaw) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup SF23 = FigureData('Sup. Fig. 23: Single catalyst and threshold') SF23.fname='Qian2011-SF23' current = SF23 template = qian2011_SF23 sims = [psim + h5l + " --pyplot-labels I O --p0 I=100", psim + h5l + " --pyplot-labels I O --p0 I=90", psim + h5l + " --pyplot-labels I O --p0 I=80", psim + h5l + " --pyplot-labels I O --p0 I=70", psim + h5l + " --pyplot-labels I O --p0 I=60", psim + h5l + " --pyplot-labels I O --p0 I=50", psim + h5l + " --pyplot-labels I O --p0 I=40", psim + h5l + " --pyplot-labels I O --p0 I=30", psim + h5l + " --pyplot-labels I O --p0 I=20", psim + h5l + " --pyplot-labels I O --p0 I=10"] litr = [(1808, 83.24), (2081, 80.66), (2587, 76.28), (3516, 67.37), (6590, 39.12), (9828, 9.05), (10115, 6.21), (10265, 4.41), (10497, 2.47), (10648, 1.31)] for (sim, res) in zip(sims, litr): pilstring = template(None) simulation = sim reporter = 'O' metric = 'diagonal-crossing-time' tmax = '10800' cmax = '100' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res) current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) current.pepperargs['default'].update(seesaw) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F2C_OR = FigureData('Fig. 2C: Two-input OR gate') F2C_OR.fname='Qian2011-F2C-OR' current = F2C_OR template = qian2011_F2 sims = [psim + h5l + " --pyplot-labels x1 x2 y --p0 x1=90 x2=90", psim + h5l + " --pyplot-labels x1 x2 y --p0 x1=10 x2=90", psim + h5l + " --pyplot-labels x1 x2 y --p0 x1=90 x2=10", psim + h5l + " --pyplot-labels x1 x2 y --p0 x1=10 x2=10"] litr = [(3245, 85), (4733, 68), (4733, 68), (10530, 0.4)] for (sim, res) in zip(sims, litr): pilstring = template(None) simulation = sim reporter = 'y' metric = 'diagonal-crossing-time' tmax = '18000' cmax = '100' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res) current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) current.pepperargs['default'].update(seesaw) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup F2C_AND = FigureData('Fig. 2C: Two-input AND gate') F2C_AND.fname='Qian2011-F2C-AND' current = F2C_AND template = qian2011_F2 sims = [ #T2_5 = 120 * 1.1 = 132 psim + h12l + " --t8 45000 --pyplot-labels x1 x2 y --p0 x1=90 x2=90 T2_5=132", psim + h12l + " --t8 45000 --pyplot-labels x1 x2 y --p0 x1=10 x2=90 T2_5=132", psim + h12l + " --t8 45000 --pyplot-labels x1 x2 y --p0 x1=90 x2=10 T2_5=132", psim + h12l + " --t8 45000 --pyplot-labels x1 x2 y --p0 x1=10 x2=10 T2_5=132"] litr = [(13797, 68), (41022, 0.7), (41022, 0.7), (42239, 0.4)] for (sim, res) in zip(sims, litr): pilstring = template(None) simulation = sim reporter = 'y' metric = 'diagonal-crossing-time' tmax = '43200' cmax = '100' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res) current.pepperargs['default'] = current.pepperargs['condensed'].copy() current.pepperargs['default'].update(rates) current.pepperargs['default'].update(seesaw) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup SF26 = FigureData('Sup. Fig. 26: Three-layer OR cascade') SF26.fname = 'Qian2011-SF26' current = SF26 template = qian2011_SF26 sims = [psim + h10l + " --pyplot-labels x1 x2 x3 x4 y --p0 x1=90 x2=90 x3=90 x4=90", psim + h10l + " --pyplot-labels x1 x2 x3 x4 y --p0 x1=10 x2=10 x3=90 x4=10", psim + h10l + " --pyplot-labels x1 x2 x3 x4 y --p0 x1=10 x2=90 x3=10 x4=10", psim + h10l + " --pyplot-labels x1 x2 x3 x4 y --p0 x1=10 x2=10 x3=10 x4=10"] simargs = ['((1 or 1) or 1) or 1', '((0 or 0) or 1) or 0', '((0 or 1) or 0) or 0', '((0 or 0) or 0) or 0'] litr = [(3326.32, 84.49), (7368.42, 65.71), (9557.89, 55.51), (20842.11, 3.67)] for (sim, arg, res) in zip(sims, simargs, litr): pilstring = template(None) simulation = sim reporter = 'y' metric = 'diagonal-crossing-time' tmax = '21600' cmax = '100' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=arg) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() current.pepperargs['default'].update(rates) current.pepperargs['default'].update(seesaw) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup SF27 = FigureData('Sup. Fig. 27: Four-layer OR cascade') SF27.fname = 'Qian2011-SF27' current = SF27 template = qian2011_SF27 sims = [psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 y --p0 x1=90 x2=90 x3=90 x4=90 x5=90", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 y --p0 x1=10 x2=10 x3=90 x4=10 x5=10", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 y --p0 x1=10 x2=90 x3=10 x4=10 x5=10", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 y --p0 x1=10 x2=10 x3=10 x4=10 x5=10"] simargs = ['(((1 or 1) or 1) or 1) or 1', '(((0 or 0) or 1) or 0) or 0', '(((0 or 1) or 0) or 0) or 0', '(((0 or 0) or 0) or 0) or 0'] litr = [(3558.62, 82.89), (9848.28, 53.83), (12082.76, 43.88), (20937.93, 3.28)] for (sim, arg, res) in zip(sims, simargs, litr): pilstring = template(None) simulation = sim reporter = 'y' metric = 'diagonal-crossing-time' tmax = '21600' cmax = '100' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=arg) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() current.pepperargs['default'].update(rates) current.pepperargs['default'].update(seesaw) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup SF28 = FigureData('Sup. Fig. 28: Five AND/OR gates, four layers') SF28.fname = 'Qian2011-SF28' current = SF28 template = qian2011_SF28 sims = [psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=90 x2=90 x3=90 x4=90 x5=90 x6=90", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=90 x2=10 x3=90 x4=90 x5=10 x6=10", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=90 x2=90 x3=10 x4=90 x5=10 x6=10", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=10 x2=10 x3=10 x4=90 x5=10 x6=90", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=10 x2=10 x3=10 x4=10 x5=90 x6=90", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=90 x2=10 x3=90 x4=10 x5=90 x6=10", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=10 x2=90 x3=90 x4=10 x5=10 x6=10", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=90 x2=90 x3=10 x4=10 x5=10 x6=90", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=90 x2=10 x3=10 x4=10 x5=90 x6=10", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=10 x2=90 x3=10 x4=10 x5=10 x6=90", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=10 x2=10 x3=90 x4=10 x5=90 x6=10", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y --p0 x1=10 x2=10 x3=10 x4=10 x5=10 x6=10"] simargs = ['(((1 or 1) and 1) or 1) or (1 and 1)', '(((1 or 0) and 1) or 1) or (0 and 0)', '(((1 or 1) and 0) or 1) or (0 and 0)', '(((0 or 0) and 0) or 1) or (0 and 1)', '(((0 or 0) and 0) or 0) or (1 and 1)', '(((1 or 0) and 1) or 0) or (1 and 0)', '(((0 or 1) and 1) or 0) or (0 and 0)', '(((1 or 1) and 0) or 0) or (0 and 1)', '(((1 or 0) and 0) or 0) or (1 and 0)', '(((0 or 1) and 0) or 0) or (0 and 1)', '(((0 or 0) and 1) or 0) or (1 and 0)', '(((0 or 0) and 0) or 0) or (0 and 0)'] litr = [(4467.98, 83.76), (7541.50, 73.47), (8224.51, 71.49), (8822.13, 69.50), (12151.78, 57.23), (13944.66, 51.29), (16420.55, 42.57), (28031.62, 2.57), (28031.62, 2.57), (28031.62, 2.57), (28031.62, 2.57), (28031.62, 2.57)] for (sim, arg, res) in zip(sims, simargs, litr): pilstring = template(None) simulation = sim reporter = 'y' metric = 'diagonal-crossing-time' tmax = '28800' cmax = '100' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=arg) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() current.pepperargs['default'].update(rates) current.pepperargs['default'].update(seesaw) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup SF29_OR = FigureData('Sup. Fig. 29: Four-input OR gates') SF29_OR.fname = 'Qian2011-SF29-OR' current = SF29_OR template = qian2011_SF29_OR sims = [ # Threshold = 60 * 1.1 psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=90 x2=10 x3=90 x4=10 x5=90 x6=10 x7=90 x8=10 T2_5=66", psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=90 x2=10 x3=90 x4=10 x5=90 x6=10 x7=10 x8=10 T2_5=66", psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=90 x2=10 x3=90 x4=10 x5=10 x6=10 x7=10 x8=10 T2_5=66", psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=10 x2=10 x3=10 x4=10 x5=10 x6=10 x7=90 x8=10 T2_5=66", psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=10 x2=10 x3=10 x4=10 x5=90 x6=10 x7=10 x8=10 T2_5=66", psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=10 x2=10 x3=90 x4=10 x5=10 x6=10 x7=10 x8=10 T2_5=66", psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=90 x2=10 x3=10 x4=10 x5=10 x6=10 x7=10 x8=10 T2_5=66", psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=10 x2=10 x3=10 x4=10 x5=10 x6=10 x7=10 x8=10 T2_5=66"] simargs = ['(1 or 0) or (1 or 0) or (1 or 0) or (1 or 0)', '(1 or 0) or (1 or 0) or (1 or 0) or (0 or 0)', '(1 or 0) or (1 or 0) or (0 or 0) or (0 or 0)', '(0 or 0) or (0 or 0) or (0 or 0) or (1 or 0)', '(0 or 0) or (0 or 0) or (1 or 0) or (0 or 0)', '(0 or 0) or (1 or 0) or (0 or 0) or (0 or 0)', '(1 or 0) or (0 or 0) or (0 or 0) or (0 or 0)', '(0 or 0) or (0 or 0) or (0 or 0) or (0 or 0)'] litr = [(1925.58, 81.20), (2302.33, 78.40), (2679.07, 74.80), (3809.30, 63.60), (4102.33, 61.20), (4311.63, 59.20), (4479.07, 58.00), (10548.84, 3.60)] for (sim, arg, res) in zip(sims, simargs, litr): pilstring = template(None) simulation = sim reporter = 'y' metric = 'diagonal-crossing-time' tmax = '10800' cmax = '100' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=arg) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() current.pepperargs['default'].update(rates) current.pepperargs['default'].update(seesaw) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # Setup SF29_AND = FigureData('Sup. Fig. 29: Four-input AND gates') SF29_AND.fname = 'Qian2011-SF29-AND' current = SF29_AND template = qian2011_SF29_AND sims = [ # Threshold = 320 * 1.1 psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=90 x2=10 x3=90 x4=10 x5=90 x6=10 x7=90 x8=10 T2_5=352", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=90 x2=10 x3=90 x4=10 x5=90 x6=10 x7=10 x8=10 T2_5=352", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=90 x2=10 x3=90 x4=10 x5=10 x6=10 x7=10 x8=10 T2_5=352", psim + h10l + " --pyplot-labels x1 x2 x3 x4 x5 x6 x7 x8 y --p0 x1=90 x2=10 x3=10 x4=10 x5=10 x6=10 x7=10 x8=10 T2_5=352"] simargs = ['(1 or 0) and (1 or 0) and (1 or 0) and (1 or 0)', '(1 or 0) and (1 or 0) and (1 or 0) and (0 or 0)', '(1 or 0) and (1 or 0) and (0 or 0) and (0 or 0)', '(1 or 0) and (1 or 0) and (0 or 0) and (0 or 0)'] litr = [(15947.37, 55.33), (31894.74, 11.07), (34263.16, 5.79), (35052.63, 2.94)] for (sim, arg, res) in zip(sims, simargs, litr): pilstring = template(None) simulation = sim reporter = 'y' metric = 'diagonal-crossing-time' tmax = '36000' cmax = '100' current.add_system_simulation_setup(pilstring, simulation, reporter, metric, ':'.join([tmax, cmax]), res, simargs=arg) current.pepperargs['default'] = current.pepperargs['Condensed'].copy() current.pepperargs['default'].update(rates) current.pepperargs['default'].update(seesaw) if evaluate: current.eval() if verbose: for df in current.get_dataframes(): print(df) # SF30_OR = FigureData('Qian2011-SF30-OR') # current = SF30_OR # template = qian2011_SF30_OR # sims = [ # Threshold = 320 * 1.1 # psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 --p0 x1=90 x2=90 x3=10 x4=10 x5=10 x6=10", # psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 --p0 x1=90 x2=10 x3=10 x4=10 x5=10 x6=10", # psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 --p0 x1=10 x2=90 x3=10 x4=10 x5=10 x6=10", # psim + h5l + " --pyplot-labels x1 x2 x3 x4 x5 x6 y1 y2 y3 y4 --p0 x1=10 x2=10 x3=10 x4=10 x5=10 x6=10"] # litr = [('y1', [(4034.90, 0.61), (5387.92, 0.48), (5387.92, 0.48), (10413.42, 0.01)])] # for (rep, results) in litr: # for (sim, res) in zip(sims, results): # pilstring = template(None) # simulation = sim # reporter = rep # metric = 'diagonal-crossing-time' # tmax = '10800' # cmax = '1' # current.add_system_simulation_setup(pilstring, simulation, reporter, metric, # ':'.join([tmax, cmax]), res) # current.pepperargs['default'] = current.pepperargs['CONDENSED'].copy() # current.pepperargs['default'].update(rates) # if evaluate: # current.eval() # if verbose: # for df in current.get_dataframes(): # print(df) return [SF22, SF23, F2C_OR, F2C_AND, SF26, SF27, SF28, SF29_OR, SF29_AND]#, SF30_OR]