Skip to content

Commit 983ca17

Browse files
committed
Saving new Variables in Data.csv
1 parent 596de6b commit 983ca17

File tree

3 files changed

+67
-19
lines changed

3 files changed

+67
-19
lines changed

Data.csv

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
OR,Promoter,Driver,Transgene,Reporter
12
Endogenous,OR42b,Gal4,Knockin,GCaMP7f
2-
DmOR1,OR47b,Boosted Gal4,Transgene,
3-
DmOR2,OR59b,,other,
4-
DmOR3,OR22ab,,,
5-
DmOR4,ORCO,,,
3+
Empty,OR47b,Boosted Gal4,Transgene,
4+
DmOR1,OR59b,,other,
5+
DmOR2,OR22ab,,,
6+
DmOR3,ORCO,,,
7+
DmOR4,Empty,,,
68
DmOR5,,,,
79
DmOR6,,,,
810
DmOR7,,,,

Lumar_GUI.py

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from tkinter.ttk import *
44
from tkcalendar import *
55
from ttkwidgets.autocomplete import *
6+
import pandas as pd
67
import re
78
import csv
89

@@ -70,7 +71,27 @@ def __init__(self, master):
7071
self.master = master
7172

7273
### Variables for controlled parameters ###
73-
74+
75+
df = pd.read_csv("Data.csv")
76+
77+
self.OR = list(df.OR[df.OR.notna()].values)
78+
self.promotor = list(df.Promoter[df.Promoter.notna()].values)
79+
self.KIKO = list(df.Driver[df.Driver.notna()].values)
80+
self.replaced = list(df.Transgene[df.Transgene.notna()].values)
81+
self.reporter = list(df.Reporter[df.Reporter.notna()].values)
82+
83+
# for row in csv_reader:
84+
# for i in range(len(row)):
85+
# if (i == 0) & (row[i] !=pd.NA): #ORs
86+
# self.OR.append(row[i])
87+
# elif (i == 1) & (row[i] != pd.NA): #Promoter
88+
# self.promotor.append(row[i])
89+
# elif (i == 2) & (row[i] != pd.NA): #Driver
90+
# self.replaced.append(row[i])
91+
# elif (i == 3) & (row[i] != pd.NA): #Transgene
92+
# self.KIKO.append(row[i])
93+
# elif (i == 4) & (row[i] != pd.NA): #Reporter
94+
# self.reporter.append(row[i])
7495

7596

7697

@@ -80,12 +101,6 @@ def __init__(self, master):
80101

81102
self.userDict = {"Nicolas": 1, "Yann": 2,
82103
"Ilham": 3, "Ivan": 4, "Dan": 5,"Axel": 6}
83-
self.Driver = ["OR42b", "OR47b", "OR59b", "OR22ab", "ORCO"]
84-
self.promotor = ["OR42b", "OR47b", "OR59b", "OR22ab", "ORCO"]
85-
self.replaced = ["Gal4","Boosted Gal4"]
86-
self.KIKO = ["Knockin", "Transgene", "other"]
87-
self.OR = ["Endogenous","Empty"] + ["DmOR%d" % id for id in range(1, 30)]
88-
self.reporter = ["GCaMP7f"]
89104
self.T2A = ["F", "TB", "TA"]
90105
self.sex = ["M", "F"]
91106
self.Age = list(range(1, 10))
@@ -536,6 +551,22 @@ def createNewElement(self, Newmaster,category):
536551
globals()[f"{i}"]["values"] = newlist
537552
# set the current selection to the new OR created
538553
globals()[f"{i}"].current((len(globals()[f"{i}"]["values"])-1))
554+
555+
df = pd.read_csv("Data.csv")
556+
NAs = list(df.loc[pd.isna(df[category]),:].index)
557+
if len(NAs) == 0:
558+
print(df.columns.get_loc(category))
559+
col_index = df.columns.get_loc(category)
560+
to_append_df = [pd.NA]*len(df.columns)
561+
to_append_df[col_index] = value
562+
print(to_append_df)
563+
df = df.append(pd.Series(to_append_df, index=df.columns), ignore_index=True)
564+
print(df.head)
565+
else:
566+
index = NAs[0]
567+
df.loc[index,category] = value
568+
569+
df.to_csv("Data.csv",index=False)
539570

540571
Newmaster.destroy() # quit the new window
541572
else:

Write_data.py

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
import csv
22
from itertools import zip_longest
3+
import pandas as pd
34

45
with open ("Data.csv","w", encoding='UTF8', newline='') as f:
56
writer = csv.writer(f,delimiter=",")
67

8+
writer.writerow(["OR","Promoter","Driver","Transgene","Reporter"])
79
OR = ["Endogenous","Empty"] + ["DmOR%d" % id for id in range(1, 30)]
810
promotor = ["OR42b", "OR47b", "OR59b", "OR22ab", "ORCO"]
911
replaced = ["Gal4","Boosted Gal4"]
1012
KIKO = ["Knockin", "Transgene", "other"]
1113
reporter = ["GCaMP7f"]
1214
d = [OR,promotor,replaced,KIKO,reporter]
13-
rows = zip_longest(*d, fillvalue = '')
15+
rows = zip_longest(*d, fillvalue = pd.NA)
1416
writer.writerows(rows)
1517

1618
def load_csv(filename):
@@ -19,13 +21,26 @@ def load_csv(filename):
1921
file = open(filename,"r")
2022
# Reading file
2123
csv_reader = csv.reader(file)
22-
first_line = True
24+
OR = []
25+
Promoter = []
26+
Driver = []
27+
Transgene = []
28+
Reporter = []
29+
2330
for row in csv_reader:
24-
if first_line:
25-
first_line=False
26-
continue
27-
odour[row[0]] = row[1]
28-
29-
return odour
31+
for i in range(len(row)):
32+
if (i == 0) & (row[i] != ''): #ORs
33+
OR.append(row[i])
34+
elif (i == 1) & (row[i] != ''): #Promoter
35+
Promoter.append(row[i])
36+
elif (i == 2) & (row[i] != ''): #Driver
37+
Driver.append(row[i])
38+
elif (i == 3) & (row[i] != ''): #Transgene
39+
Transgene.append(row[i])
40+
elif (i == 4) & (row[i] != ''): #Reporter
41+
Reporter.append(row[i])
42+
43+
return (OR,Promoter,Driver,Transgene,Reporter)
44+
3045

3146
print(load_csv("Data.csv"))

0 commit comments

Comments
 (0)