-
Notifications
You must be signed in to change notification settings - Fork 0
/
PCRan.py
45 lines (35 loc) · 1.62 KB
/
PCRan.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from os import listdir, remove, mkdir
from os.path import join, isdir
import logging
logging.basicConfig(filename='.log', filemode='w', level=logging.ERROR)
try:
from code.extractor import extract_config, extract_raw_data, extract_data_for_linear_fit
from code.prosessor import amplification_data_process, linear_fit_data_process, plot_linear_approximation, \
get_linear_fit_data
# clear old results
if isdir("results"):
for file in listdir("results"):
remove(join("results", file))
else:
mkdir("results")
config = extract_config()
if config["mode"] in ["rampl", "all"]:
# well extracting
data = extract_raw_data(config["filename"])
# ct, drfu calculations process
ttr_data = amplification_data_process(config["x_name"], config["x"], config["wells"], data,
config["detection"], config["threshold"], config["pmod"])
line_fit_data = get_linear_fit_data(config["x_name"], config["y_name"], ttr_data)
elif config["mode"] == "lfd":
# data extracting
line_fit_data = extract_data_for_linear_fit(config["filename"])
line_fit_data["x_name"] = config["x_name"]
line_fit_data["y_name"] = config["y_name"]
else:
raise AttributeError(f"Unsupported mode: {config['mode']}")
# plot linear fit
if config["mode"] in ["lfd", "all"]:
linear_fit_data_process(line_fit_data, method=config["method"],
log_x=config["need_log_x"], eff=config["need_eff"])
except Exception as e:
logging.exception("Exception occurred")