def get_reagent_columns(dataset_id): col_field_info = {} for fi in FieldInformation.objects.all().filter( table__in=['smallmolecule','protein','cell','antibody','otherreagent', 'smallmoleculebatch','proteinbatch','cellbatch','antibodybatch','otherreagentbatch']): col_field_info[fi.get_camel_case_dwg_name()] = { 'reagentType': fi.table, 'dwgName': fi.dwg_field_name, 'description': fi.description } data_columns = ( DataColumn.objects.filter(dataset_id=dataset_id) .filter(data_type__in=[ 'small_molecule','cell','protein','antibody','otherreagent']) ) reagent_fields = OrderedDict() meta_field_info = get_listing(DataColumn(),['datacolumn']) for dc in data_columns.order_by('display_order'): specific_name = dc.name field_schema = {} for item in meta_field_info.items(): meta_fi_attr = item[0] meta_fi = item[1]['fieldinformation'] field_schema[meta_fi.get_camel_case_dwg_name()] = ( getattr(dc,meta_fi_attr) ) reagent_fields[specific_name] = field_schema reagent_fields[specific_name]['columns'] = {} for dwg_name in DataSetDataResource2.datapoint_cols[dc.data_type]: col_name = '%s_%s' % (specific_name,dwg_name) reagent_fields[specific_name]['columns'][col_name] = col_field_info.get(dwg_name, {}) return reagent_fields
def get_datapoint_fields(dataset_id): data_columns = ( DataColumn.objects.filter(dataset_id=dataset_id) .exclude(data_type__in=[ 'small_molecule','cell','protein','antibody','otherreagent', 'omero_image']) .exclude(unit__in=['day','hour','minute','second']) ) datapoint_fields = OrderedDict() meta_field_info = get_listing(DataColumn(),['datacolumn']) for dc in data_columns.order_by('display_order'): specific_name = dc.name field_schema = {} for item in meta_field_info.items(): meta_fi_attr = item[0] meta_fi = item[1]['fieldinformation'] field_schema[meta_fi.get_camel_case_dwg_name()] = ( getattr(dc,meta_fi_attr) ) datapoint_fields[specific_name] = field_schema return datapoint_fields
dataset = DataSet(**metadata) logger.info('dataset to save %s' % dataset) dataset.save() logger.debug('read data columns...') col_to_definitions = read_datacolumns(book) small_molecule_col = None col_to_dc_map = {} for i, dc_definition in enumerate(col_to_definitions): dc_definition['dataset'] = dataset if (not 'display_order' in dc_definition or dc_definition['display_order'] == None): dc_definition['display_order'] = i datacolumn = DataColumn(**dc_definition) datacolumn.save() if not small_molecule_col and datacolumn.data_type == 'small_molecule': small_molecule_col = datacolumn logger.debug('datacolumn created: %r' % datacolumn) if datacolumn.worksheet_column: col_to_dc_map[int_for_col( datacolumn.worksheet_column)] = datacolumn logger.debug('final data columns: %s' % col_to_dc_map) logger.debug('read the Data sheet') data_sheet = book.sheet_by_name('Data') for i, label in enumerate(data_sheet.row_values(0)): logger.debug('find datasheet label %r:%r' % (colname(i), label)) if label in meta_columns: