예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
    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: