Beispiel #1
0
 def parameters(cls):
     cls.refresh_parameter = ParameterFactory.boolean("refresh",
                                                      "Refresh available " \
                                                      "run reports.",
                                                      default_value=False)
     cls.cart_sn_parameter = ParameterFactory.cartridge_sn()
     cls.start_date = DateParameter("start",
                                    "Start date of the form YYYY_MM_DD.",
                                    allow_multiple=False,
                                    required=False)
     cls.end_date = DateParameter("end",
                                  "End date of the form YYYY_MM_DD.",
                                  allow_multiple=False,
                                  required=False)
     cls.uuid_parameter = ParameterFactory.uuid(required=False,
                                                allow_multiple=False)
     parameters = [
         cls.cart_sn_parameter,
         cls.refresh_parameter,
         cls.start_date,
         cls.end_date,
         cls.uuid_parameter,
         ParameterFactory.format(),
     ]
     return parameters
Beispiel #2
0
    def parameters(cls):
        cls.pa_data_src_param = ParameterFactory.pa_data_source()
        cls.dyes_param = ParameterFactory.dyes()
        cls.device_param = ParameterFactory.device()
        cls.major_param    = ParameterFactory.integer(MAJOR, "Major dye " \
                                                      "profile version",
                                                      minimum=0)
        cls.minor_param    = ParameterFactory.integer(MINOR, "Minor dye " \
                                                      "profile version",
                                                      minimum=0)
        cls.job_name_param = ParameterFactory.lc_string(JOB_NAME, "Unique "\
                                                        "name to give this "
                                                        "job.")
        cls.offset         = ParameterFactory.integer(OFFSETS, "Offset used " \
            "to infer a dye model. The inference will offset the dye profiles " \
            "in a range of (-<offset>,<offset>] to determine the optimal " \
            "offset.", default=abs(DEFAULT_OFFSETS[0]), minimum=1)
        cls.use_iid_param  = ParameterFactory.boolean(USE_IID, "Use IID Peak " \
                                                      "Detection.",
                                                      default_value=False)

        parameters = [
            cls.pa_data_src_param,
            cls.dyes_param,
            cls.device_param,
            cls.major_param,
            cls.minor_param,
            cls.job_name_param,
            cls.offset,
            cls.use_iid_param,
        ]
        return parameters
Beispiel #3
0
 def parameters(cls):
     cls.refresh_parameter = ParameterFactory.boolean("refresh", 
                                                      "Refresh available dyes.",
                                                      default_value=False)
     parameters = [
                   cls.refresh_parameter,
                   ParameterFactory.format(),
                  ]
     return parameters
 def parameters(cls):
     parameters = [
         ParameterFactory.file_uuid(PROBES, PROBES_COLLECTION),
         ParameterFactory.file_uuid(TARGETS, TARGETS_COLLECTION),
         ParameterFactory.boolean("absorb", "Check for absorbed probes."),
         ParameterFactory.integer("num",
                                  "Minimum number of probes for a target.",
                                  default=3,
                                  minimum=1),
         ParameterFactory.lc_string(JOB_NAME,
                                    "Unique name to give this job.")
     ]
     return parameters
    def process_request(cls, params_dict):
        probes_file_uuid = params_dict[ParameterFactory.file_uuid(
            "probes", PROBES_COLLECTION)][0]
        targets_file_uuid = params_dict[ParameterFactory.file_uuid(
            "targets", TARGETS_COLLECTION)][0]
        absorb = params_dict[ParameterFactory.boolean(
            "absorb", "Check for absorbed probes.")][0]
        num = params_dict[ParameterFactory.integer(
            "num",
            "Minimum number of probes for a target.",
            default=3,
            minimum=1)][0]
        job_name = params_dict[ParameterFactory.lc_string(
            JOB_NAME, "Unique name to give this job.")][0]

        json_response = {
            PROBES: probes_file_uuid,
            TARGETS: targets_file_uuid,
            ABSORB: absorb,
            NUM: num,
            UUID: str(uuid4()),
            STATUS: JOB_STATUS.submitted,  # @UndefinedVariable
            JOB_NAME: job_name,
            DATESTAMP: datetime.today(),
        }
        http_status_code = 200

        if job_name in cls._DB_CONNECTOR.distinct(VALIDATION_COLLECTION,
                                                  JOB_NAME):
            http_status_code = 403
        else:
            try:
                probes_path = cls._DB_CONNECTOR.find_one(
                    PROBES_COLLECTION, UUID, probes_file_uuid)[FILEPATH]
                targets_path = cls._DB_CONNECTOR.find_one(
                    TARGETS_COLLECTION, UUID, targets_file_uuid)[FILEPATH]

                #ADD VALIDATOR JOB TO QUEUE

                cls._DB_CONNECTOR.insert(VALIDATION_COLLECTION,
                                         [json_response])
                del json_response[ID]
            except:
                APP_LOGGER.exception(traceback.format_exc())
                json_response[ERROR] = str(sys.exc_info()[1])
                http_status_code = 500

        return make_clean_response(json_response, http_status_code)
Beispiel #6
0
    def parameters(cls):
        cls.job_uuid_param = ParameterFactory.job_uuid(SA_IDENTITY_COLLECTION)
        cls.job_name_param  = ParameterFactory.lc_string(JOB_NAME, 'Unique '\
                                                         'name to give this '
                                                         'job.')
        cls.exp_defs_param = ParameterFactory.experiment_definition()
        cls.training_param = ParameterFactory.integer(
            TRAINING_FACTOR,
            TRAINING_FACTOR_DESCRIPTION,
            default=AC_TRAINING_FACTOR,
            minimum=1,
            required=True)
        cls.ctrl_thresh = ParameterFactory.float(CTRL_THRESH,
                                                 CTRL_THRESH_DESCRIPTION,
                                                 default=AC_CTRL_THRESHOLD,
                                                 minimum=0.0,
                                                 maximum=100.0)
        cls.ctrl_filter = ParameterFactory.boolean(CTRL_FILTER,
                                                   CTRL_FILTER_DESCRIPTION,
                                                   default_value=False,
                                                   required=True)
        cls.ac_method = ParameterFactory.ac_method(AC_METHOD,
                                                   AC_METHOD_DESCRIPTION)
        cls.ac_model = ParameterFactory.cs_string(
            AC_MODEL,
            AC_MODEL_DESCRIPTION,
            required=False,
            enum=[
                m for model_dict in MODEL_FILES.values() for m in model_dict
            ])

        parameters = [
            cls.job_uuid_param,
            cls.job_name_param,
            cls.exp_defs_param,
            cls.training_param,
            cls.ctrl_thresh,
            cls.ctrl_filter,
            cls.ac_method,
            cls.ac_model,
        ]
        return parameters
    def parameters(cls):
        cls.job_uuid_param  = ParameterFactory.job_uuid(PA_PROCESS_COLLECTION)
        cls.job_name_param  = ParameterFactory.lc_string(JOB_NAME, "Unique "\
                                                         "name to give this "
                                                         "job.")
        cls.pico1_dye_param      = ParameterFactory.dye(PICO1_DYE,
                                                      "Picoinjection 1 dye.")
        cls.pico2_dye_param      = ParameterFactory.dye(PICO2_DYE,
                                                      "Picoinjection 2 dye.")
        cls.assay_dye_param    = ParameterFactory.dye(ASSAY_DYE, "Assay dye.")
        cls.n_probes_param     = ParameterFactory.integer(NUM_PROBES,
                                                        NUM_PROBES_DESCRIPTION,
                                                        default=0, minimum=0)
        cls.training_param     = ParameterFactory.integer(TRAINING_FACTOR,
                                                   TRAINING_FACTOR_DESCRIPTION,
                                                   default=DEFAULT_ID_TRAINING_FACTOR,
                                                   minimum=1)
        cls.dye_levels_param   = ParameterFactory.dye_levels()
        cls.ignored_dyes_param = ParameterFactory.dyes(name=IGNORED_DYES,
                                                       required=False)
        cls.filtered_dyes_param = ParameterFactory.dyes(name=FILTERED_DYES,
                                                        required=False)
        cls.ui_threshold_param = ParameterFactory.float(UI_THRESHOLD,
                                                      UI_THRESHOLD_DESCRIPTION,
                                                      default=UNINJECTED_THRESHOLD,
                                                      minimum=0.0)
        cls.continuous_phase_param   = ParameterFactory.boolean(CONTINUOUS_PHASE,
                                                          CONTINUOUS_PHASE_DESCRIPTION,
                                                          default_value=False,
                                                          required=False)
        cls.dev_mode_param   = ParameterFactory.boolean(DEV_MODE,
                                                        'Use development mode (more forgiving of mistakes).',
                                                        default_value=DEFAULT_DEV_MODE,
                                                        required=False)
        cls.drift_compensate_param   = ParameterFactory.boolean(DRIFT_COMPENSATE,
                                                        'Compensate for data drift.',
                                                        default_value=DEFAULT_DRIFT_COMPENSATE,
                                                        required=False)
        cls.max_ui_ratio_param = ParameterFactory.float(MAX_UNINJECTED_RATIO,
                                                        MAX_UI_RATIO_DESCRIPTION,
                                                        default=UNINJECTED_RATIO,
                                                        minimum=0.0)
        cls.ignore_lowest_barcode = ParameterFactory.boolean(IGNORE_LOWEST_BARCODE,
                                                             IGNORE_LOWEST_BARCODE_DESCRIPTION,
                                                             default_value=DEFAULT_IGNORE_LOWEST_BARCODE,
                                                             required=False)

        parameters = [
                      cls.job_uuid_param,
                      cls.job_name_param,
                      cls.pico1_dye_param,
                      cls.pico2_dye_param,
                      cls.assay_dye_param,
                      cls.n_probes_param,
                      cls.training_param,
                      cls.dye_levels_param,
                      cls.ignored_dyes_param,
                      cls.filtered_dyes_param,
                      cls.ui_threshold_param,
                      cls.continuous_phase_param,
                      cls.max_ui_ratio_param,
                      cls.ignore_lowest_barcode,
                      cls.dev_mode_param,
                      cls.drift_compensate_param,
                     ]
        return parameters
    def parameters(cls):
        # required parameters
        cls.job_name_param = ParameterFactory.lc_string(
            JOB_NAME, 'Unique name for this job.', required=True)
        cls.exp_def_param = ParameterFactory.experiment_definition()
        cls.mask_param = ParameterFactory.cs_string(
            VARIANT_MASK, 'Mask code for variant selection.', required=False)

        # primary analysis parameters
        cls.pa_data_src_param = ParameterFactory.cs_string(
            PA_DATA_SOURCE,
            "Primary analysis data source (HDF5 or image stack).",
            required=True)
        cls.dyes_param = ParameterFactory.dyes(required=False)
        cls.device_param = ParameterFactory.device(required=False,
                                                   default='katahdin')
        cls.major_param = ParameterFactory.integer(MAJOR,
                                                   'Major dye version',
                                                   minimum=0,
                                                   required=False,
                                                   default=1)
        cls.minor_param = ParameterFactory.integer(MINOR,
                                                   'Minor dye version',
                                                   minimum=0,
                                                   required=False,
                                                   default=0)
        cls.offset = ParameterFactory.integer(
            OFFSETS,
            'Offset used to infer a dye model.',
            default=abs(DEFAULT_OFFSETS[0]),
            minimum=1,
            required=False)
        cls.use_iid_param = ParameterFactory.boolean(USE_IID,
                                                     'Use IID Peak Detection.',
                                                     default_value=False,
                                                     required=False)

        # identity parameters
        cls.dye_levels_param = ParameterFactory.dye_levels(required=False)
        cls.ignored_dyes_param = ParameterFactory.dyes(name=IGNORED_DYES,
                                                       required=False)
        cls.filtered_dyes_param = ParameterFactory.dyes(name=FILTERED_DYES,
                                                        required=False)
        cls.pico1_dye_param = ParameterFactory.dye(PICO1_DYE,
                                                   'picoinjection 1 dye.',
                                                   required=False,
                                                   default=None)
        cls.pico2_dye_param = ParameterFactory.dye(PICO2_DYE,
                                                   'picoinjection 2 dye.',
                                                   required=False,
                                                   default=DEFAULT_PICO2_DYE)
        cls.assay_dye_param = ParameterFactory.dye(ASSAY_DYE,
                                                   'Assay dye.',
                                                   required=False,
                                                   default=DEFAULT_ASSAY_DYE)
        cls.n_probes_param = ParameterFactory.integer(NUM_PROBES,
                                                      NUM_PROBES_DESCRIPTION,
                                                      minimum=4,
                                                      required=False)
        cls.id_training_param = ParameterFactory.integer(
            ID_TRAINING_FACTOR,
            TRAINING_FACTOR_DESCRIPTION,
            minimum=1,
            required=False,
            default=DEFAULT_ID_TRAINING_FACTOR,
        )
        cls.ui_threshold_param = ParameterFactory.float(
            UI_THRESHOLD,
            UI_THRESHOLD_DESCRIPTION,
            minimum=0.0,
            required=False,
            default=DEFAULT_UNINJECTED_THRESHOLD)
        cls.continuous_phase_param = ParameterFactory.boolean(
            CONTINUOUS_PHASE,
            CONTINUOUS_PHASE_DESCRIPTION,
            default_value=False,
            required=False)
        cls.max_ui_ratio_param = ParameterFactory.float(
            MAX_UNINJECTED_RATIO,
            MAX_UI_RATIO_DESCRIPTION,
            default=DEFAULT_UNINJECTED_RATIO,
            minimum=0.0)
        cls.ignore_lowest_barcode = ParameterFactory.boolean(
            IGNORE_LOWEST_BARCODE,
            IGNORE_LOWEST_BARCODE_DESCRIPTION,
            default_value=True,
            required=False)
        cls.use_pico1_filter = ParameterFactory.boolean(
            USE_PICO1_FILTER,
            USE_PICO1_FILTER_DESCRIPTION,
            default_value=True,
            required=False)
        cls.use_pico2_filter = ParameterFactory.boolean(
            USE_PICO2_FILTER,
            USE_PICO2_FILTER_DESCRIPTION,
            default_value=True,
            required=False)
        cls.dev_mode_param = ParameterFactory.boolean(
            DEV_MODE,
            'Use development mode (more forgiving of mistakes).',
            default_value=DEFAULT_DEV_MODE,
            required=False)
        cls.drift_compensate_param = ParameterFactory.boolean(
            DRIFT_COMPENSATE,
            'Compensate for data drift.',
            default_value=DEFAULT_DRIFT_COMPENSATE,
            required=False)

        # assay caller params
        cls.ac_training_param = ParameterFactory.integer(
            AC_TRAINING_FACTOR,
            TRAINING_FACTOR_DESCRIPTION,
            minimum=1,
            required=False,
            default=DEFAULT_AC_TRAINING_FACTOR)

        cls.ctrl_thresh = ParameterFactory.float(
            CTRL_THRESH,
            CTRL_THRESH_DESCRIPTION,
            default=DEFAULT_AC_CTRL_THRESHOLD,
            minimum=0.0,
            maximum=100.0)

        cls.ctrl_filter = ParameterFactory.boolean(CTRL_FILTER,
                                                   CTRL_FILTER_DESCRIPTION,
                                                   default_value=False,
                                                   required=True)
        cls.ac_method = ParameterFactory.ac_method(AC_METHOD,
                                                   AC_METHOD_DESCRIPTION)
        cls.ac_model = ParameterFactory.cs_string(
            AC_MODEL,
            AC_MODEL_DESCRIPTION,
            required=False,
            enum=[
                m for model_dict in MODEL_FILES.values() for m in model_dict
            ])

        # genotyper params
        cls.req_drops_param = ParameterFactory.integer(REQUIRED_DROPS,
                                                       REQ_DROPS_DESCRIPTION,
                                                       required=False,
                                                       minimum=0,
                                                       default=0)

        parameters = [
            cls.pa_data_src_param,
            cls.dyes_param,
            cls.device_param,
            cls.major_param,
            cls.minor_param,
            cls.job_name_param,
            cls.offset,
            cls.use_iid_param,
            cls.pico1_dye_param,
            cls.pico2_dye_param,
            cls.assay_dye_param,
            cls.n_probes_param,
            cls.id_training_param,
            cls.dye_levels_param,
            cls.ignored_dyes_param,
            cls.dev_mode_param,
            cls.drift_compensate_param,
            cls.use_pico1_filter,
            cls.use_pico2_filter,
            cls.filtered_dyes_param,
            cls.ui_threshold_param,
            cls.continuous_phase_param,
            cls.max_ui_ratio_param,
            cls.ignore_lowest_barcode,
            cls.ac_training_param,
            cls.ctrl_thresh,
            cls.ctrl_filter,
            cls.ac_method,
            cls.ac_model,
            cls.req_drops_param,
            cls.exp_def_param,
            cls.mask_param,
        ]
        return parameters