def setup(session): """ populate database with essential GenAF data, mostly taken from FATools constants """ EK.bulk_insert(ek_initlist, dbsession=session) # get default group, which is system adm_group = Group.search("_DataAdm_", dbsession=session) # create undefined marker marker = Marker(code="undefined", species="X") cerr("INFO - marker 'undefined' created.") session.add(marker) # create ladder marker marker = Marker(code="ladder", species="X") cerr("INFO - marker 'ladder' created.") session.add(marker) # create combined marker marker = Marker(code="combined", species="X") cerr("INFO - marker 'combined' created.") session.add(marker) # create default panel panel = Panel(code="undefined", group_id=adm_group.id) cerr("INFO - panel 'undefined' created.") session.add(panel) # create default batch batch = Batch(code="default", group_id=adm_group.id, assay_provider_id=adm_group.id, species="X") cerr("INFO - default batch created.") session.add(batch)
def update(self, obj): self._update(obj) session = object_session(self) or self._dbh_session_ if type(obj) == dict: if 'group' in obj: with session.no_autoflush: group = Group.search(obj['group'], session) self.group = group else: raise NotImplementedError() # verify that each marker in data exists session = object_session(self) or self._dbh_session_ for m_code in self.data['markers']: m = Marker.search(m_code, session) if m is None: cerr("ERR: can't find marker: %s" % m_code) sys.exit(1)