11import pandas as pd
2- import random
32from flapjack import Flapjack
43
54
6- # # this is for testing without flapjack
7- # # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
8- # class id_thing():
9- # def __init__(self, id_in):
10- # self.id = [id_in]
11-
12-
13- # class Flapjack():
14-
15- # def create(self, *args):
16-
17- # # UNCOMMENT ONE OF THE TWO
18- # print(args)
19- # # temp = args
20-
21- # return id_thing(random.randint(1, 100))
22- # # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
23-
24-
255# still requires some work to ensure studies etc created too
26- def flapjack_upload (fj_url , fj_user , fj_pass , excel_path ):
6+ def flapjack_upload (fj_url , fj_user , fj_pass , excel_path , sbol_hash_map = {},
7+ add_sbol_uris = False , flapjack_override = False ,
8+ print_progress = False ):
279 hash_map = {}
2810
2911 # UNCOMMENT BELOW TO USE FLAPJACK
@@ -32,16 +14,14 @@ def flapjack_upload(fj_url, fj_user, fj_pass, excel_path):
3214 fj .log_in (username = fj_user , password = fj_pass )
3315
3416 # read in Excel Data
35- #xls = pd.read_excel(excel_path,sheet_name=None)
3617 xls = pd .ExcelFile (excel_path )
3718 fj_conv_sht = xls .parse ('FlapjackCols' , skiprows = 0 )
3819
3920 # order is important as Chemicals and DNA must be created before
4021 # they can be referenced
4122 types = ['Chemical' , 'DNA' , 'Supplement' , 'Vector' , 'Strain' , 'Media' ,
4223 'Signal' , 'Study' , 'Assay' , 'Sample' , 'Measurement' ]
43- #types = ['DNA', 'Supplement', 'Vector', 'Strain', 'Media',
44- #'Signal', 'Measurement']
24+
4525 # initiate hashmap for linking to chemicals
4626 hash_map = {}
4727
@@ -68,31 +48,25 @@ def flapjack_upload(fj_url, fj_user, fj_pass, excel_path):
6848 # Create a dictionary of the data for flapjack
6949 obj_dict = obj_df .to_dict ('index' )
7050
71- # REMOVE THIS LINE WHEN USING FLAPJACK
72- #fj = Flapjack()
73-
7451 # Upload all the objects to flapjack
7552 for key in obj_dict :
53+ if print_progress :
54+ print (key )
7655 data = obj_dict [key ]
7756
57+ if key in sbol_hash_map and add_sbol_uris :
58+ data ['sboluri' ] = sbol_hash_map [key ]
59+
7860 # Change to flapjack id rather than name for chemicals and dnas
7961 lookups = {'chemical' , 'dnas' , 'study' , 'vector' , 'strain' , 'media' , 'assay' , 'sample' , 'signal' }
8062 lk_inter = lookups .intersection (set (data .keys ()))
81- print (lk_inter )
8263 for it in list (lk_inter ):
8364 data [it ] = hash_map [data [it ]]
8465
85- # CHANGE THIS WHEN USING FLAPJACK
86- # add ** infront of data later when not patched!!!!!!!!
87- print (obj )
8866 data ['model' ] = obj .lower ()
89- print (data )
90-
91- flapjack_id = fj .create (** data )
92- # flapjack_id = fj.create(data)
67+ flapjack_id = fj .create (** data , confirm = not (flapjack_override ))
9368
9469 # add Chemical and DNA to hash map to allow cross referencing
95- print (flapjack_id )
9670 hash_map [key ] = flapjack_id .id [0 ]
9771
9872 return hash_map
0 commit comments