def _easy_func(self, ep, manager): db=self.manager.db doc = ep.doc('blanks') fits = doc['blank_fit_isotopes'] projects = doc['projects'] unks = [ai for proj in projects for si in db.get_samples(project=proj) for ln in si.labnumbers for ai in ln.analyses] prog=manager.progress # prog = self.manager.open_progress(len(ans) + 1) #bin analyses prog.increase_max(len(unks)) preceding_fits, non_preceding_fits=map(list,partition(fits, lambda x: x['fit']=='preceding')) if preceding_fits: for ai in unks: if prog.canceled: return elif prog.accepted: break l, a, s = ai.labnumber.identifier, ai.aliquot, ai.step prog.change_message('Save preceding blank for {}-{:02n}{}'.format(l, a, s)) hist = db.add_history(ai, 'blanks') ai.selected_histories.selected_blanks = hist for fi in preceding_fits: self._preceding_correct(db, fi, ai, hist) #make figure root dir if doc['save_figures']: root = doc['figure_root'] r_mkdir(root) with no_auto_ctx(self.active_editor): if non_preceding_fits: for ais in bin_analyses(unks): if prog.canceled: return elif prog.accepted: break self.active_editor.set_items(ais, progress=prog) self.active_editor.find_references(progress=prog) #refresh graph invoke_in_main_thread(self.active_editor.rebuild_graph) if not manager.wait_for_user(): return #save a figure if doc['save_figures']: title=self.active_editor.make_title() p=os.path.join(root, add_extension(title,'.pdf')) self.active_editor.save_file(p) self.active_editor.save(progress=prog) self.active_editor.dump_tool() return True
def _easy_func(self, ep, manager): db = self.manager.db doc = ep.doc('ic') # fits = doc['fits'] projects = doc['projects'] atype = doc['atype'] identifiers = doc.get('identifiers') if identifiers: # unks = [ai for proj in projects # for si in db.get_samples(project=proj) # for ln in si.labnumbers # if str(ln.identifier) in identifiers # for ai in ln.analyses # if ai.measurement.mass_spectrometer.name.lower() in ('jan', 'obama')] unks = [ai for ln in identifiers for ai in db.get_labnumber(ln).analyses if not ai.tag=='invalid'] else: unks = [ai for proj in projects for si in db.get_samples(project=proj) for ln in si.labnumbers for ai in ln.analyses if ai.measurement.mass_spectrometer.name.lower() in ('jan', 'obama') and not ai.tag=='invalid'] prog = manager.progress prog.increase_max(len(unks)) # preceding_fits, non_preceding_fits = map(list, partition(fits, lambda x: x['fit'] == 'preceding')) # if preceding_fits: # self.debug('preceding fits for ic_factors not implemented') # for ai in unks: # if prog.canceled: # return # elif prog.accepted: # break # l, a, s = ai.labnumber.identifier, ai.aliquot, ai.step # prog.change_message('Save preceding blank for {}-{:02n}{}'.format(l, a, s)) # hist = db.add_history(ai, 'blanks') # ai.selected_histories.selected_blanks = hist # for fi in preceding_fits: # self._preceding_correct(db, fi, ai, hist) #make figure root dir if doc['save_figures']: root = doc['figure_root'] r_mkdir(root) # if non_preceding_fits: with no_auto_ctx(self.active_editor): for ais in bin_analyses(unks): if prog.canceled: return elif prog.accepted: break self.active_editor.set_items(ais, progress=prog) self._set_analysis_type(atype, progress=prog) self.active_editor.tool.trait_set(analysis_type=atype) if not manager.wait_for_user(): return if not manager.was_skipped(): #save a figure if doc['save_figures']: title = self.active_editor.make_title() p = os.path.join(root, add_extension(title, '.pdf')) self.active_editor.save_file(p) self.active_editor.save(progress=prog) self.active_editor.dump_tool() return True
def _easy_func(self, ep, manager): db = self.manager.db doc = ep.doc('ic') # fits = doc['fits'] projects = doc['projects'] atype = doc['atype'] identifiers = doc.get('identifiers') if identifiers: # unks = [ai for proj in projects # for si in db.get_samples(project=proj) # for ln in si.labnumbers # if str(ln.identifier) in identifiers # for ai in ln.analyses # if ai.measurement.mass_spectrometer.name.lower() in ('jan', 'obama')] unks = [ ai for ln in identifiers for ai in db.get_labnumber(ln).analyses if not ai.tag == 'invalid' ] else: unks = [ ai for proj in projects for si in db.get_samples(project=proj) for ln in si.labnumbers for ai in ln.analyses if ai.measurement.mass_spectrometer.name.lower() in ( 'jan', 'obama') and not ai.tag == 'invalid' ] prog = manager.progress prog.increase_max(len(unks)) # preceding_fits, non_preceding_fits = map(list, partition(fits, lambda x: x['fit'] == 'preceding')) # if preceding_fits: # self.debug('preceding fits for ic_factors not implemented') # for ai in unks: # if prog.canceled: # return # elif prog.accepted: # break # l, a, s = ai.labnumber.identifier, ai.aliquot, ai.step # prog.change_message('Save preceding blank for {}-{:02n}{}'.format(l, a, s)) # hist = db.add_history(ai, 'blanks') # ai.selected_histories.selected_blanks = hist # for fi in preceding_fits: # self._preceding_correct(db, fi, ai, hist) #make figure root dir if doc['save_figures']: root = doc['figure_root'] r_mkdir(root) # if non_preceding_fits: with no_auto_ctx(self.active_editor): for ais in bin_analyses(unks): if prog.canceled: return elif prog.accepted: break self.active_editor.set_items(ais, progress=prog) self._set_analysis_type(atype, progress=prog) self.active_editor.tool.trait_set(analysis_type=atype) if not manager.wait_for_user(): return if not manager.was_skipped(): #save a figure if doc['save_figures']: title = self.active_editor.make_title() p = os.path.join(root, add_extension(title, '.pdf')) self.active_editor.save_file(p) self.active_editor.save(progress=prog) self.active_editor.dump_tool() return True
def _easy_func(self, ep, manager): db = self.manager.db doc = ep.doc('blanks') fits = doc['blank_fit_isotopes'] projects = doc['projects'] unks = [ai for proj in projects for si in db.get_samples(project=proj) for ln in si.labnumbers for ai in ln.analyses if ai.measurement.mass_spectrometer.name == 'MAP' and ai.extraction.extraction_device.name in ('Furnace', 'Eurotherm')] # for proj in projects: # for si in db.get_samples(project=proj): # for ln in si.labnumbers: # for ai in ln.analyses: # print ai.measurement.mass_spectrometer.name,ai.extraction.extraction_device.name # print ai.measurement.mass_spectrometer.name == 'nmgrl map' and ai.extraction.extraction_device.name in ('Furnace','Eurotherm') print len(unks) prog = manager.progress # prog = self.manager.open_progress(len(ans) + 1) #bin analyses prog.increase_max(len(unks)) preceding_fits, non_preceding_fits = map(list, partition(fits, lambda x: x['fit'] == 'preceding')) if preceding_fits: for ai in unks: if prog.canceled: return elif prog.accepted: break l, a, s = ai.labnumber.identifier, ai.aliquot, ai.step prog.change_message('Save preceding blank for {}-{:02n}{}'.format(l, a, s)) hist = db.add_history(ai, 'blanks') ai.selected_histories.selected_blanks = hist for fi in preceding_fits: self._preceding_correct(db, fi, ai, hist) #make figure root dir if doc['save_figures']: root = doc['figure_root'] r_mkdir(root) with no_auto_ctx(self.active_editor): if non_preceding_fits: for fi in self.active_editor.tool.fits: fi.fit = 'average' fi.error_type = 'SEM' fi.filter_outliers = True fi.filter_iterations = 1 fi.filter_std_devs = 2 for ais in bin_analyses(unks): if prog.canceled: return elif prog.accepted: break self.active_editor.set_items(ais, progress=prog) self.active_editor.find_references(progress=prog) #refresh graph # invoke_in_main_thread(self.active_editor.rebuild_graph) # # if not manager.wait_for_user(): # return #save a figure if doc['save_figures']: title = self.active_editor.make_title() p = os.path.join(root, add_extension(title, '.pdf')) self.active_editor.save_file(p) self.active_editor.save(progress=prog) self.active_editor.dump_tool() return True