Пример #1
0
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]
Пример #2
0
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]
Пример #5
0
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]
Пример #6
0
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]
Пример #7
0
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]
Пример #10
0
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]
Пример #11
0
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]