<jupyter_start><jupyter_text>The Setup* One TA module (MazEF dynamics)* One inducible protein (CFP)* Two proteolytic pathways (ClpXP, ClpAP, Lon)* TA module is targeted to both pathways mostly symmetrically* Inducible protein is tunably targeted to both pathways* Aim to suggest a picture by which targeting CFP to one pathway or another may increase or decrease persistence Punchlines:Whether a tag such as LAA is present is important to force proteolytic queueing with respect to module components. Such tags can asymmetrically target module components, thus asymmetrically affecting toxic state probability with respect to particular proteolytic pathways. Asymmetry of module component proteolytic affinity can drastically affect how this competition influences persistence despite a module component (e.g. toxin) constituting only a small fraction of proteolytic load. If competition is sufficient to interfere with antitoxin or complex degradation, it can prevent persistence entirely by ensuring free antitoxin is always available to neutralize free toxin. The threshold of inducible protein (e.g. CFP) affinity which either increases or decreases persistence is likely dependent on production rate of the protein (i.e. can be intentionally modulated with an inducer such as IPTG). Interpreting Parameters eta_p* eta_p modulates to which proteolytic pathway CFP is targeted.* eta_p represents the asymmetric targeting associated with one degradation tag over another.* When eta_p = 0.0, all CFP traffic is targeted through pathway 2.* When eta_p = 1.0, all CFP traffic is targeted through pathway 1.* When eta_p = 0.5, all CFP traffic is equally targeted to both pathways. kappa_I* kappa_I modulate how strongly CFP is targeted for proteolysis.* Without LAA, CFP is less targeted than toxin.* With LAA, CFP is more targeted.* kappa_I represents this difference in a continuous way. phi* When phi = 1, all toxin traffic is equally targeted to both pathways; the system should be symmetric with respect to eta_p.* When phi = 10, all toxin traffic is targeted 10 fold more toward pathway 2 than pathway 1.* When phi = 100, all toxin traffic is targeted 100 fold more toward pathway 2 than pathway 1.* phi  1 represents an asymmetry in how toxin is degraded.* Even with phi = 100, complex is is 100 fold more targeted for protoelysis.<jupyter_code>from plot import heat

pscan = pscans[0]

phi_values = (1, 10, 100)


xaxis = 'kappa_I'
yaxis = 'eta_p'
zaxis = 'Toxic Probability'

f, axes = plt.subplots(2, 2, figsize=(24, 20))

target = 'T_free'

for phi, ax in zip(phi_values, (axes[0, 0], axes[0, 1], axes[1, 0])):
    subspace = {'phi': phi}
    selection = pscan_view(pscan, subspace, target)
    selection.shape, selection.columns
    
    ax = heat(f, ax, selection, xaxis, yaxis, zaxis,
              xscale='log', 
              title='%s (phi: %0.1f)' % (zaxis, phi))

    kappa_T_1 = 0.00001
    kappa_T_2 = phi * kappa_T_1
    ax.plot([kappa_T_1, kappa_T_1], [0, 1], lw=4, color='r')
    ax.plot([kappa_T_2, kappa_T_2], [0, 1], lw=4, color='r')

    
subspace = {'kappa_I': 0.1, 'phi': 1.0, 'eta_p': 1.0}
trajectory = 0

targets = ('time', 'T_free')
selection = pscan_view(pscan, subspace, *targets)
selection.shape, selection.columns
time_selection = selection.loc[selection['Target'] == 'time'].reset_index()
target_selection = selection.loc[selection['Target'] == target].reset_index()
    
axes = [axes[-1, -1]]
for (t, time), (l, location), ax in zip(time_selection.iterrows(), target_selection.iterrows(), axes):
    subspace = location[pspace.columns]
    subspace = ', '.join(('%s: %s' % (i, j)) for i, j in zip(subspace.index, subspace.values))
    ax.set_title('location: %s' % subspace)
    counts = location['Batch'][trajectory, :]
    time = time['Batch'][trajectory, :]
    ax.plot(time, counts, linewidth=3)
    events = location['Events']
    if events and sum([len(e) for e in events]):
        parameters = location['Parameters']
        high, low = parameters['high'], parameters['low']
        medium = (high + low) / 2.0
        ax.plot([time[0] - 1, time[-1] + 1], [low, low], color='k', ls='--')
        ax.plot([time[0] - 1, time[-1] + 1], [medium, medium], color='k', ls='--')
        ax.plot([time[0] - 1, time[-1] + 1], [high, high], color='k', ls='--')
        for i, j in events[trajectory]:
            ax.plot([time[i], time[j]], [medium, medium], color='r', lw=5, marker='s')
    ax.set_xlim((1000 + 0.2 * time.shape[0], min(1000 + 0.2 * time.shape[0] + 200, time[-1])))<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11768587769467664, 'fraction_numerical': 0.024857017157941048, 'mean_word_length': 4.214449541284404, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '381823', 'license': 'MIT', 'n_tokens_mistral': 1536, 'n_tokens_neox': 1364, 'n_words': 547, 'path': 'TAmodule_aim2_plot.ipynb', 'repo_name': 'ctogle/mini_gillespiem', 'size': '4546'}