5. Růst bakterie E. Coli#
V této úloze bude praktická ukázka Pythonu. Ukážeme si jednoduchý výpočet a vizualizaci výsledku.
Michael Crichton (autor scénáře k Jurskému parku) ve svém převratném sci-fi Kmen Andromeda (1969) napsal: Matematika neomezeného růstu je děsivá. Jediná buňka bakterie E. coli se za příznivých okolností dělí každých dvacet minut. Na tom není nic tak zlého, pokud si neuvědomíme, že se bakterie dělí geometrickou řadou. Z jedné vzniknou dvě, ze dvou čtyři, ze čtyř osm a tak dále. Takto lze dojít k závěru, že by se za jeden den mohla jedna buňka rozrůst do superkolonie velikosti a váhy celé planety Země.
V něčem měl spisovatel pravdu. Bakterie E. coli se za optimálních podmínek dělí každých dvacet minut. Tj. za příhodné teploty, pH a při dostatku potravy z každé bakterie během dvaceti minut vzniknou bakterie dvě. Za hodinu tento proces proběhne třikrát.
Následující kód ověřuje, zda je pravdivý i zbytek. Uvažujeme na začátku jednu jedinou bakterii a určíme, kolik bakterií bude po uplynutí jednoho dne. Výsledek srovnáváme s hmotnostmi některých objektů, data jsou převzata z článku Orders of magnitude (mass) na Wikipedii.
Bakterie E. coli je přítomna v lidském organismu ve střevech a většina jejích kmenů je neškodná. Její případná přítomnost například v pitné vodě je indikátorem fekálního znečištění. Jedná se o dobře prozkoumanou bakterii, která se využívá v genovém inženýrství a biotechnologiích.
Úkol: Prostudujte si uvedený kód. Soustřeďte se na nastavení parametrů a jejich použití ve výpočtu. v prvních dvou blocích kódu oddělených prázdným řádkem. Hvězdička znamená násobení, dvě hvězdičky umocňování. Na začátku jsou nastaveny proměnné, poté je vypočtena cílová hodnota a nakonec je hodnota spolu s dalšími srovnávacími daty prezentována graficky. Modifikujte kód tak, aby simuloval vývoj během dvou dnů namísto jednoho dne. Nemusíte detailně rozumět každému řádku. Cílem je vzít existující funkční kód, opravit v něm nějaké detaily a nový kód spustit.
pocet_dnu = 1
pocet_deleni_za_hodinu = 3
hmotnost_bakterie = 10**-12
pocet_deleni = pocet_dnu * 24 * pocet_deleni_za_hodinu
pocet_bakterii = 2**pocet_deleni
hmotnost = pocet_bakterii * hmotnost_bakterie
import matplotlib.pyplot as plt
import pandas as pd
data = {"slon": 6000.0,"Boeing 747": 1.83*10**5, "lidstvo": 6.0*10**11,"Pluto": 1.3*10**22,"Země": 6.0*10**24,"kolonie E.Coli":hmotnost}
df = pd.DataFrame.from_dict(data,orient='index')
df.columns = ["hmotnost"]
fig = plt.bar(df.index, df["hmotnost"])
fig[-1].set_color('C1')
plt.gca().set(yscale='log')