subnames.append(repl_name) submasks.append(tr_repl_mask) subgroups = zip(subnames, submasks) groups.append([tr.name, subgroups]) """ # define necessary parameters for this module (see parameter_utils.py for details) # # __dict__ = sys.modules[__name__].__dict__ # utils.register_module(__name__, 'Grouping of cell objects', __dict__) # utils.add_required_state(__name__, importer.__name__, 'imported') # utils.register_parameter(__name__, 'custom_get_treatment_groups_src', utils.PARAM_LONGSTR, 'Function defining the grouping of cell objects by treatment', param_default=default_get_treatment_groups_src) # utils.register_parameter(__name__, 'custom_get_well_groups_src', utils.PARAM_LONGSTR, 'Function defining the grouping of cell objects by well', param_default=default_get_well_groups_src) # utils.register_parameter(__name__, 'custom_get_replicate_groups_src', utils.PARAM_LONGSTR, 'Function defining the grouping of cell objects by replicate', param_default=default_get_replicate_groups_src) # utils.register_parameter(__name__, 'custom_get_treatment_replicate_groups_src', utils.PARAM_LONGSTR, 'Function defining the grouping of cell objects by treatment and replicate', param_default=default_get_treatment_replicate_groups_src) # #utils.register_parameter(__name__, 'custom_get_groups_dict_src', utils.PARAM_DICT, 'Dictionary defining custom groupings of cell objects', param_default={}, hidden=True) # utils.register_parameter(__name__, 'reject_treatments', utils.PARAM_TREATMENTS, 'Treatments not to be used', param_default=[]) custom_get_groups_dict = {} custom_get_groups_dict_src = {}
object_file_postfixes.append(object_file_postfix) pdc = import_cp2_csv_results(cp2_csv_path, image_file_postfix, object_file_postfixes, csv_delimiter, csv_extension) Importer().set_pdc(pdc) utils.update_state(importer.__name__, 'imported') print 'Finished importing data from CellProfiler' return 'Finished importing data from CellProfiler' __dict__ = sys.modules[__name__].__dict__ utils.register_module(__name__, 'CellProfiler import', __dict__, utils.DEFAULT_STATE) utils.register_parameter(__name__, 'image_cp2_file', utils.PARAM_INPUT_FILE, 'Image CSV file from CellProfiler 2', optional=True) utils.set_parameter_hook(__name__, 'image_cp2_file', importer.filename_hook) utils.register_parameter(__name__, 'object_cp2_csv_files', utils.PARAM_INPUT_FILES, 'Object CSV files from CellProfiler 2', optional=True) utils.set_parameter_hook(__name__, 'object_cp2_csv_files', importer.filename_hook) utils.register_parameter(__name__, 'cp2_csv_path', utils.PARAM_PATH, 'Path to CellProfiler 2 CSV files', optional=True) utils.set_parameter_hook(__name__, 'cp2_csv_path', importer.filename_hook) utils.register_parameter(__name__, 'csv_delimiter', utils.PARAM_STR, 'Delimiter for the CSV files', ',') utils.register_parameter(__name__, 'csv_extension', utils.PARAM_STR, 'Extension for the CSV files', '.csv') utils.register_action(__name__, 'import_cp', 'Import data from CellProfiler CSV files', import_data_from_cp)
else: values = param_value for i, value in enumerate(values): if not os.path.isabs(value): values[i] = os.path.join(os.path.dirname(yaml_filename), value) if type(param_value) == str: return values[0] else: return values __dict__ = sys.modules[__name__].__dict__ utils.register_module(__name__, 'Data import', __dict__, utils.DEFAULT_STATE) utils.register_parameter(__name__, 'hdf5_input_file', utils.PARAM_INPUT_FILE, 'YACA HDF5 input file', optional=True) utils.set_parameter_hook(__name__, 'hdf5_input_file', filename_hook) utils.register_parameter(__name__, 'optional_hdf5_input_files', utils.PARAM_INPUT_FILES, 'Further YACA HDF5 input files', optional=True) utils.set_parameter_hook(__name__, 'optional_hdf5_input_files', filename_hook) utils.register_parameter(__name__, 'hdf5_output_file', utils.PARAM_OUTPUT_FILE, 'YACA HDF5 output file', optional=True) utils.set_parameter_hook(__name__, 'hdf5_output_file', filename_hook) utils.register_action(__name__, 'load_hdf5', 'Load data from a YACA HDF5 file', load_hdf5) utils.register_action(__name__, 'save_hdf5', 'Save data as YACA HDF5 file', save_hdf5) utils.register_action(__name__, 'normalize_intensities', 'Normalize intensity features to mean control cell intensity', normalize_intensities) utils.set_module_state_callback(__name__, set_state)
# define necessary parameters for this module (see parameter_utils.py for details) # import parameter_utils as utils # __dict__ = sys.modules[__name__].__dict__ # utils.register_module(__name__, "Analysis of images", __dict__) # import importer utils.add_required_state(__name__, importer.__name__, "imported") # utils.register_parameter(__name__, "control_treatment_names", utils.PARAM_TREATMENTS, "Names of the control treatments") # utils.register_parameter(__name__, "run_mahal_dist", utils.PARAM_BOOL, "Run Mahalanobis filter?", False) # utils.register_parameter( __name__, "mahal_dist_cutoff_fraction", utils.PARAM_FLOAT, "Fraction of control cells to use for mahalanobis distance", 0.9, 0.0, 1.0, ) # utils.register_parameter( __name__, "threshold_fraction", utils.PARAM_FLOAT, "Fraction considered as showing a phenotype", 0.2, 0.0, 1.0
def connect_to_database(): from sqlalchemy import create_engine, MetaData, Table try: database_url except: raise utils.ParameterException( 'You need to specify the url of the database!') try: print 'Connecting to database: {}'.format(database_url) engine = create_engine(database_url) metadata = MetaData(bind=engine) metadata.create_all() images_table = Table('images', metadata, autoload=True, autoload_with=engine) objects_table = Table('objects', metadata, autoload=True, autoload_with=engine) DBConnection(engine, metadata, images_table, objects_table) utils.register_action(__name__, 'reload_db_schema', 'Reload database schema', reload_db_schema) utils.register_parameter( __name__, 'use_plate_filter', utils.PARAM_BOOL, 'Select plates to import?', False, hook=use_filter_hook) utils.register_parameter( __name__, 'use_well_filter', utils.PARAM_BOOL, 'Select wells to import?', False, hook=use_filter_hook) utils.register_parameter( __name__, 'use_replicate_filter', utils.PARAM_BOOL, 'Select replicates to import?', False, hook=use_filter_hook) utils.register_parameter( __name__, 'use_position_filter', utils.PARAM_BOOL, 'Select positions to import?', False, hook=use_filter_hook) utils.register_parameter( __name__, 'use_treatment_filter', utils.PARAM_BOOL, 'Filter treatments to import?', False, hook=use_filter_hook) utils.register_parameter( __name__, 'image_id_db_column', utils.PARAM_STR, 'Image id column in the image table', items=[]) utils.register_parameter( __name__, 'object_img_id_db_column', utils.PARAM_STR, 'Image id column in the object table', items=[]) utils.register_parameter( __name__, 'position_x_db_column', utils.PARAM_STR, 'Position X column in the image table', items=[]) utils.register_parameter( __name__, 'position_y_db_column', utils.PARAM_STR, 'Position Y column in the image table', items=[]) utils.register_parameter( __name__, 'plate_db_column', utils.PARAM_STR, 'Plate column in the image table', items=[], hook=db_column_hook) utils.register_parameter( __name__, 'well_db_column', utils.PARAM_STR, 'Well column in the image table', items=[], hook=db_column_hook) utils.register_parameter( __name__, 'replicate_db_column', utils.PARAM_STR, 'Replicate column in the image table', items=[], hook=db_column_hook) utils.register_parameter( __name__, 'position_db_column', utils.PARAM_STR, 'Position column in the image table', items=[], hook=db_column_hook) utils.register_parameter( __name__, 'treatment_db_column', utils.PARAM_STR, 'Treatment column in the image table', items=[]) utils.register_parameter( __name__, 'images_db_columns', utils.PARAM_STRS, 'Columns to extract from the image table', items=[]) utils.register_parameter( __name__, 'objects_db_columns', utils.PARAM_STRS, 'Columns to extract from the objects table', items=[]) utils.register_parameter( __name__, 'image_files_db_columns', utils.PARAM_STRS, 'File and Path columns in the image table', items=[]) utils.register_action(__name__, 'import_db', 'Import data from database', import_data_from_db) reload_db_schema() except: logger.error('Unable to connect to the database') raise return 'Successfully connected to database'
pdc.objFeatures.resize(objFeatureShape) importer.Importer().set_pdc(pdc) utils.update_state(importer.__name__, 'imported') print 'Finished importing data from database' return 'Finished importing data from database' __dict__ = sys.modules[__name__].__dict__ utils.register_module(__name__, 'Database import', __dict__, utils.DEFAULT_STATE) utils.register_parameter(__name__, 'database_url', utils.PARAM_STR, 'URL specifying a database', 'mysql://localhost/YACA') utils.register_action(__name__, 'connect_to_database', 'Connect to database', connect_to_database) utils.register_parameter( __name__, 'use_plate_filter', utils.PARAM_BOOL, 'Select plates to import?', False, hidden=True) utils.register_parameter( __name__, 'plate_filter', utils.PARAM_STRS, 'Plates to import from the database', optional=True, hidden=True, items=[]) utils.register_parameter( __name__, 'use_well_filter', utils.PARAM_BOOL, 'Select wells to import?', False, hidden=True) utils.register_parameter(
QUALITY_CONTROL_NOT_ENOUGH_VALID_CELLS : 'not enough valid cells', QUALITY_CONTROL_TOO_MANY_CELLS : 'too many cells', QUALITY_CONTROL_NOT_ENOUGH_BG_PIXELS : 'not enough background pixels' } import parameter_utils as utils __dict__ = sys.modules[__name__].__dict__ utils.register_module(__name__, 'Quality control of cells and images', __dict__) import importer utils.add_required_state(__name__, importer.__name__, 'imported') utils.register_parameter(__name__, 'positionX', utils.PARAM_OBJ_FEATURE, 'Feature ID for the x coordinate of a cell (in pixel)', 'nucleus_Location_Center_X') utils.register_parameter(__name__, 'positionY', utils.PARAM_OBJ_FEATURE, 'Feature ID for the y coordinate of a cell (in pixel)', 'nucleus_Location_Center_Y') utils.register_parameter(__name__, 'cellArea', utils.PARAM_OBJ_FEATURE, 'Feature ID for the area of a cell (in pixel)', 'cell_AreaShape_Area') utils.register_parameter(__name__, 'nucleusArea', utils.PARAM_OBJ_FEATURE, 'Feature ID for the area of a nucleus (in pixel)', 'nucleus_AreaShape_Area') utils.register_parameter(__name__, 'nucleusSolidity', utils.PARAM_OBJ_FEATURE, 'Feature ID for the solidity of a nucleus', 'nucleus_AreaShape_Solidity') utils.register_parameter(__name__, 'minAreaBg', utils.PARAM_INT, 'Minimum number of background pixels', 50000, 0, None) utils.register_parameter(__name__, 'minNucArea', utils.PARAM_INT, 'Minimum area of nuclei in pixels', 1000, 0, None) utils.register_parameter(__name__, 'maxNucArea', utils.PARAM_INT, 'Maximum area of nuclei in pixels', 4000, 0, None) utils.register_parameter(__name__, 'minNucSolidity', utils.PARAM_FLOAT, 'Minimum nuclei solidity', 0.9, 0.0, 1.0) utils.register_parameter(__name__, 'minDistLeft', utils.PARAM_INT, 'Minimum distance of cells to left image margin', 100, 0, None) utils.register_parameter(__name__, 'minDistRight', utils.PARAM_INT, 'Minimum distance of cells to right image margin', 100, 0, None)