def __import_time_series_csv_datatype(self, hrf_folder, connectivity_gid, patient, user_tag): path = os.path.join(hrf_folder, self.TIME_SERIES_CSV_FILE) with open(path) as csv_file: csv_reader = csv.reader( csv_file, delimiter=CSVDelimiterOptionsEnum.COMMA.value) ts = list(csv_reader) ts_data = np.array(ts, dtype=np.float64).reshape( (len(ts), 1, len(ts[0]), 1)) ts_time = np.random.rand(ts_data.shape[0], ) project = dao.get_project_by_id(self.current_project_id) ts_gid = uuid.uuid4() h5_path = "TimeSeries_{}.h5".format(ts_gid.hex) operation_folder = self.storage_interface.get_project_folder( project.name, str(self.operation_id)) h5_path = os.path.join(operation_folder, h5_path) conn = h5.load_from_gid(connectivity_gid) ts = TimeSeriesRegion() ts.data = ts_data ts.time = ts_time ts.gid = ts_gid ts.connectivity = conn generic_attributes = GenericAttributes() generic_attributes.user_tag_1 = user_tag generic_attributes.state = DEFAULTDATASTATE_RAW_DATA with TimeSeriesRegionH5(h5_path) as ts_h5: ts_h5.store(ts) ts_h5.nr_dimensions.store(4) ts_h5.subject.store(patient) ts_h5.store_generic_attributes(generic_attributes) ts_index = TimeSeriesIndex() ts_index.gid = ts_gid.hex ts_index.fk_from_operation = self.operation_id ts_index.time_series_type = "TimeSeriesRegion" ts_index.data_length_1d = ts_data.shape[0] ts_index.data_length_2d = ts_data.shape[1] ts_index.data_length_3d = ts_data.shape[2] ts_index.data_length_4d = ts_data.shape[3] ts_index.data_ndim = len(ts_data.shape) ts_index.sample_period_unit = 'ms' ts_index.sample_period = TimeSeries.sample_period.default ts_index.sample_rate = 1024.0 ts_index.subject = patient ts_index.state = DEFAULTDATASTATE_RAW_DATA ts_index.labels_ordering = json.dumps( list(TimeSeries.labels_ordering.default)) ts_index.labels_dimensions = json.dumps( TimeSeries.labels_dimensions.default) ts_index.visible = False # we don't want to show these TimeSeries because they are dummy dao.store_entity(ts_index) return ts_gid
def prepare_metadata(algo_category, burst=None, current_ga=GenericAttributes()): """ Gather generic_metadata from submitted fields and current to be execute algorithm. Will populate STATE, GROUP, etc in generic_metadata """ generic_metadata = GenericAttributes() generic_metadata.state = algo_category.defaultdatastate generic_metadata.parent_burst = burst generic_metadata.fill_from(current_ga) return generic_metadata
def _prepare_metadata(algo_category, submit_data, operation_group=None, burst=None): """ Gather generic_metadata from submitted fields and current to be execute algorithm. Will populate STATE, GROUP, etc in generic_metadata """ generic_metadata = GenericAttributes() generic_metadata.state = algo_category.defaultdatastate generic_metadata.parent_burst = burst if DataTypeMetaData.KEY_OPERATION_TAG in submit_data: generic_metadata.operation_tag = submit_data[DataTypeMetaData.KEY_OPERATION_TAG] if DataTypeMetaData.KEY_TAG_1 in submit_data: generic_metadata.user_tag_1 = submit_data[DataTypeMetaData.KEY_TAG_1] if operation_group is not None: generic_metadata.user_tag_3 = operation_group.name return generic_metadata
def __import_pearson_coefficients_datatype(self, fc_folder, patient, user_tag, ts_gid): path = os.path.join(fc_folder, self.FC_MAT_FILE) result = ABCUploader.read_matlab_data(path, self.FC_DATASET_NAME) result = result.reshape((result.shape[0], result.shape[1], 1, 1)) project = dao.get_project_by_id(self.current_project_id) user = dao.get_user_by_id(project.fk_admin) pearson_gid = uuid.uuid4() h5_path = "CorrelationCoefficients_{}.h5".format(pearson_gid.hex) operation_folder = self.storage_interface.get_project_folder( project.name, str(self.operation_id)) h5_path = os.path.join(operation_folder, h5_path) generic_attributes = GenericAttributes() generic_attributes.user_tag_1 = user_tag generic_attributes.state = DEFAULTDATASTATE_RAW_DATA with CorrelationCoefficientsH5(h5_path) as pearson_correlation_h5: pearson_correlation_h5.array_data.store(result) pearson_correlation_h5.gid.store(pearson_gid) pearson_correlation_h5.source.store(ts_gid) pearson_correlation_h5.labels_ordering.store( CorrelationCoefficients.labels_ordering.default) pearson_correlation_h5.subject.store(patient) pearson_correlation_h5.store_generic_attributes(generic_attributes) pearson_correlation_index = CorrelationCoefficientsIndex() pearson_correlation_index.gid = pearson_gid.hex pearson_correlation_index.fk_from_operation = self.operation_id pearson_correlation_index.subject = patient pearson_correlation_index.state = DEFAULTDATASTATE_RAW_DATA pearson_correlation_index.ndim = 4 pearson_correlation_index.fk_source_gid = ts_gid.hex # we need a random gid here to store the index pearson_correlation_index.has_valid_time_series = False dao.store_entity(pearson_correlation_index)