Ejemplo n.º 1
0
'''
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
Ejemplo n.º 2
0
def get_phagename_and_refseq(row, phage_finder):
    phage = Phage(row, phage_finder)
    return phage.name, phage.refseq
Ejemplo n.º 3
0
    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(
Ejemplo n.º 4
0
 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()
Ejemplo n.º 6
0
def test_phage_finder(phage_finder, input, refseq, name):
    result = Phage(input, phage_finder)
    assert refseq == result.refseq
    assert name == result.name