Source code for om_code.admin
# General admin functions
# generating and updating dataframes and the progress dictionary
import pandas as pd
[docs]def initialiseprogress(self, experiment):
"""
Initialises progress dictionary.
"""
self.progress["ignoredwells"][experiment] = []
self.progress["negativevalues"][experiment] = False
self.progress["gc"][experiment] = None
###
[docs]def makewellsdf(df_r):
"""
Makes a dataframe that stores the contents of
the wells
"""
df = df_r[["experiment", "condition", "strain", "well"]].drop_duplicates()
df = df.reset_index(drop=True)
return df
###
[docs]def make_s(self, tmin=None, tmax=None):
"""
Generate s datafram by calculating means and variances of all datatypes
from raw data
"""
# restrict time
if tmin and not tmax:
rdf = self.r[self.r.time >= tmin]
elif tmax and not tmin:
rdf = self.r[self.r.time <= tmax]
elif tmin and tmax:
rdf = self.r[(self.r.time >= tmin) & (self.r.time <= tmax)]
else:
rdf = self.r
# find means
df1 = (
rdf.groupby(["experiment", "condition", "strain", "time"])
.mean()
.reset_index()
)
for exp in self.allexperiments:
for dtype in self.datatypes[exp]:
df1 = df1.rename(columns={dtype: dtype + " mean"})
# find errors
df2 = (
rdf.groupby(["experiment", "condition", "strain", "time"])
.std()
.reset_index()
)
for exp in self.allexperiments:
for dtype in self.datatypes[exp]:
df2 = df2.rename(columns={dtype: dtype + " err"})
return pd.merge(df1, df2)
###
[docs]def update_s(self):
"""
Updates means and errors of all datatypes from raw data
"""
# find tmin and tmax in case restrict_time has been called
tmin = self.s.time.min()
tmax = self.s.time.max()
# recalculate s dataframe
self.s = make_s(self, tmin, tmax)
###