''' Generate a list of all pairwise comparisons of the exact matches ''' import sys import re from phage import Phage phage = Phage() try: f = sys.argv[1] except: sys.exit("Exact match file, probably phage.kmers.bacteria.rc.txt") bg = phage.completeBacteriaIDs() pg = phage.phageIDs() matches = {} for p in pg: matches[p] = {} for b in bg: matches[p][b] = 0 with open(f, 'r') as fin: for l in fin: p = l.strip().split("\t") m = re.findall('NC_\d+', l) if len(m) != 2: #sys.stderr.write("Error parsing two NC ids from " + l) continue
def get_phagename_and_refseq(row, phage_finder): phage = Phage(row, phage_finder) return phage.name, phage.refseq
else: return np.exp(-0.5 * (np.square(x - mu) / sigma_r)) # gaussian r: ~(39.7, 10) new_host = Host( c0=10**5, g_max=0.036, #lit: 0.012 yield_coeff=0.000000000001, half_sat=0.00000125, death_rate=0.001, t_dep=temperature_dependency_new_host, ) original_phage = Phage( c0=10**9, adsorption_rate=0.000000000001, burst_size=100, death_rate=0.00272, ) new_phage = Phage( c0=10**6, adsorption_rate=0.0000000001, burst_size=100, death_rate=0.00272, ) s0 = 0.0000025 #stock concentration of nutrient (g/mL) #0.0000025 R_pnn = 1 / 1000 # fraction of new phage in library def c_nutr_b(tt, c_host_b, c_inf_poo, c_inf_pnn, c_nutr_a): return -new_host.yield_coeff * new_host.per_cell_growth_rate(
def lyse(self): model.things = set([i for i in model.things if i != self]) for i in range(self._burst_size): model.add(Phage(self.get_location()[0], self.get_location()[1]))
def __init__(self): # simulation time and resolution of samples self.dt = 0.1 self.xs = np.linspace(0, 120, 120 / self.dt) self.fluxA = 0.0 self.fluxB = 0.0 self.new_host = Host( c0=10**5, g_max=0.036, # lit: 0.012 yield_coeff=0.000000000001, half_sat=0.00000125, death_rate=0.001, t_dep=self.temperature_dependency_new_host, ) self.original_phage = Phage( c0=10**9, adsorption_rate=0.000000000001, burst_size=100, death_rate=0.00272, ) self.new_phage = Phage( c0=10**6, adsorption_rate=0.0000000001, burst_size=100, death_rate=0.00272, ) self.s0 = 0.0000025 # stock concentration of nutrient (g/mL) #0.0000025 self.R_pnn = 1 / 1000 # fraction of new phage in library self.myinterpolator = scipy.interpolate.interp1d( np.array([0 - 1, 0]), # X np.array([0, 1]).T, # Y kind="linear", bounds_error=False, fill_value=0) self.d = 13.3 # lysis time delay self.dd = 13 # dt *=10 self.q_h_inf_poo = deque([0]) self.q_h_inf_pnn = deque([0]) for i in range(100): self.q_h_inf_poo.append(0) self.q_h_inf_pnn.append(0) data = ddeint(self.model, self.initial_conditions, self.xs, fargs=(self.d, )) plt.figure(figsize=(16, 16)) plt.subplot(3, 3, 1) plt.plot(self.xs, [data[t][0] for t in range(len(self.xs))], label="reactor A") plt.xlabel('time [min]') plt.ylabel('concentration [#bacteria/mL]') plt.title('Host Concentration A over Time') plt.legend() plt.subplot(3, 3, 2) plt.plot(self.xs, [data[t][1] for t in range(len(self.xs))], label="reactor A") plt.xlabel('time [min]') plt.ylabel('concentration [g/mL]') plt.title('Nutrient A over Time') plt.legend() plt.subplot(3, 3, 3) plt.plot(self.xs, [data[t][2] for t in range(len(self.xs))]) plt.xlabel('time [min]') plt.ylabel('concentration [#bacteria/mL]') plt.title('Host Concentration B over Time') plt.subplot(3, 3, 4) plt.plot(self.xs, [data[t][3] for t in range(len(self.xs))]) plt.xlabel('time [min]') plt.ylabel('concentration [g/mL]') plt.title('Nutrient B over Time') plt.subplot(3, 3, 5) plt.plot(self.xs, [data[t][4] for t in range(len(self.xs))]) plt.xlabel('time [min]') plt.ylabel('concentration [#bacteria/mL]') plt.title('Host infected OO over Time') plt.subplot(3, 3, 6) plt.plot(self.xs, [data[t][5] for t in range(len(self.xs))]) plt.xlabel('time [min]') plt.ylabel('concentration [#bacteria/mL]') plt.title('Host infected NN over Time') plt.subplot(3, 3, 8) plt.plot(self.xs, [data[t][6] for t in range(len(self.xs))]) plt.xlabel('time [min]') plt.ylabel('concentration [#phage/mL]') plt.title('Phage OO over Time') plt.subplot(3, 3, 9) plt.plot(self.xs, [data[t][7] for t in range(len(self.xs))]) plt.xlabel('time [min]') plt.ylabel('concentration [#phage/mL]') plt.title('Phage NN over Time') plt.subplot(3, 3, 7) plt.plot(self.xs, [data[t][6] for t in range(len(self.xs))], label="original") plt.plot(self.xs, [data[t][7] for t in range(len(self.xs))], label="new") plt.xlabel('time [min]') plt.ylabel('concentration [#phage/mL]') plt.title('Phage over Time') plt.legend() plt.subplots_adjust(wspace=0.4, hspace=0.4) plt.show()
def test_phage_finder(phage_finder, input, refseq, name): result = Phage(input, phage_finder) assert refseq == result.refseq assert name == result.name