def validateField_in_section(self, field_name, new_field_value): """ field validation for a step that acts as a section to another step """ # logger.debug("at validateField_in_section field_name=%s; new_field_value=%s" %(field_name, new_field_value)) if field_name == ReferenceFieldNames.REFERENCE: if new_field_value and new_field_value not in [ref.short_name for ref in self.prepopulatedFields[ReferenceFieldNames.REFERENCES]]: self.prepopulatedFields[ReferenceFieldNames.REFERENCE_MISSING] = True self.validationErrors[field_name] = "Reference Library not found: %s" % new_field_value else: self.prepopulatedFields[ReferenceFieldNames.REFERENCE_MISSING] = False self.validationErrors.pop(field_name, None) # if the plan has been sequenced, do not enforce the target bed file to be selected if self.prepopulatedFields[ReferenceFieldNames.PLAN_STATUS] != "run": if field_name == ReferenceFieldNames.TARGET_BED_FILE: reference = self.savedFields[ReferenceFieldNames.REFERENCE] targetRegionBedFile = new_field_value runType = self.prepopulatedFields[ReferenceFieldNames.RUN_TYPE] if self.prepopulatedFields[ReferenceFieldNames.RUN_TYPE] else "" applicationGroupName = self.prepopulatedFields[ReferenceFieldNames.APPLICATION_GROUP_NAME] logger.debug(" validateField_in_section reference=%s; targetBed=%s; runType=%s; applicationGroupName=%s" % (reference, new_field_value, runType, applicationGroupName)) errors = [] errors = validate_targetRegionBedFile_for_runType(targetRegionBedFile, runType, reference, "", applicationGroupName, "Target Regions BED File") if errors: self.validationErrors[field_name] = ''.join(errors) else: self.validationErrors.pop(field_name, None)
def validateField_in_section(self, field_name, new_field_value): """ field validation for a step that acts as a section to another step """ #logger.debug("at validateField_in_section field_name=%s; new_field_value=%s" %(field_name, new_field_value)) if field_name == ReferenceFieldNames.REFERENCE: if new_field_value in [ref.short_name for ref in self.prepopulatedFields[ReferenceFieldNames.REFERENCES]]: self.prepopulatedFields[ReferenceFieldNames.REFERENCE_MISSING] = False #if the plan has been sequenced, do not enforce the target bed file to be selected if self.prepopulatedFields[ReferenceFieldNames.PLAN_STATUS] != "run": if field_name == ReferenceFieldNames.TARGET_BED_FILE: reference = self.savedFields[ReferenceFieldNames.REFERENCE] targetRegionBedFile = new_field_value runType = self.prepopulatedFields[ReferenceFieldNames.RUN_TYPE] if self.prepopulatedFields[ReferenceFieldNames.RUN_TYPE] else "" applicationGroupName = self.prepopulatedFields[ReferenceFieldNames.APPLICATION_GROUP_NAME] logger.debug(" validateField_in_section reference=%s; targetBed=%s; runType=%s; applicationGroupName=%s" %(reference, new_field_value, runType, applicationGroupName)) errors = [] errors = validate_targetRegionBedFile_for_runType(targetRegionBedFile, runType, reference, "", applicationGroupName, "Target Regions BED File") if errors: self.validationErrors[field_name] = ''.join(errors) else: self.validationErrors.pop(field_name, None)
def validateField(self, field_name, new_field_value): self.validationErrors.pop(field_name, None) errors = None if field_name == SavePlanFieldNames.CHIP_BARCODE_LABEL: errors = validate_chipBarcode(new_field_value) if errors: self.validationErrors[field_name] = '\n'.join(errors) if field_name == SavePlanFieldNames.BARCODE_SAMPLE_TUBE_LABEL: errors = validate_sample_tube_label(new_field_value) if errors: self.validationErrors[field_name] = '\n'.join(errors) # if the plan has been sequenced, do not enforce the target bed file to be selected planStatus = self.getDefaultSectionPrepopulatedFieldDict().get("planStatus", "") if field_name == SavePlanFieldNames.SAMPLES_TABLE: sample_table_list = json.loads(new_field_value) samples_errors = [] applProduct = self.savedObjects[SavePlanFieldNames.APPL_PRODUCT] # applProduct object is not saved yet if applProduct: isTargetRegionSelectionRequired = applProduct.isTargetRegionBEDFileSelectionRequiredForRefSelection else: isTargetRegionSelectionRequired = False applicationGroupName = self.prepopulatedFields[SavePlanFieldNames.APPLICATION_GROUP_NAME] for row in sample_table_list: sample_name = row.get(SavePlanFieldNames.SAMPLE_NAME, '').strip() if sample_name: sample_nucleotideType = row.get(SavePlanFieldNames.BARCODE_SAMPLE_NUCLEOTIDE_TYPE, "") sampleReference = row.get(SavePlanFieldNames.BARCODE_SAMPLE_REFERENCE, "") sampleTargetRegionBedFile = row.get(SavePlanFieldNames.BARCODE_SAMPLE_TARGET_REGION_BED_FILE, "") runType = self.prepopulatedFields[SavePlanFieldNames.RUN_TYPE] logger.debug("barcode_by_sample_step_data.validateField()() runType=%s; sample_nucleotideType=%s; sampleReference=%s; sampleTargetRegionBedFile=%s" % (runType, sample_nucleotideType, sampleReference, sampleTargetRegionBedFile)) errors = [] # if the plan has been sequenced, do not enforce the target bed file to be selected if planStatus != "run": errors = validate_targetRegionBedFile_for_runType(sampleTargetRegionBedFile, runType, sampleReference, sample_nucleotideType, applicationGroupName, "Target Regions BED File for " + sample_name) if errors: samples_errors.append('\n'.join(errors)) if samples_errors: logger.debug("barcode_by_sample_step_data.validateField()() samples_errors=%s" % (samples_errors)) self.validationErrors[field_name] = '\n'.join(samples_errors)
def validateField(self, field_name, new_field_value): self.validationErrors.pop(field_name, None) errors = None if field_name == SavePlanFieldNames.CHIP_BARCODE_LABEL: errors = validate_chipBarcode(new_field_value) if errors: self.validationErrors[field_name] = '\n'.join(errors) if field_name == SavePlanFieldNames.BARCODE_SAMPLE_TUBE_LABEL: errors = validate_sample_tube_label(new_field_value) if errors: self.validationErrors[field_name] = '\n'.join(errors) # if the plan has been sequenced, do not enforce the target bed file to be selected planStatus = self.getDefaultSectionPrepopulatedFieldDict().get("planStatus", "") if field_name == SavePlanFieldNames.SAMPLES_TABLE: sample_table_list = json.loads(new_field_value) samples_errors = [] applProduct = self.savedObjects[SavePlanFieldNames.APPL_PRODUCT] # applProduct object is not saved yet if applProduct: isTargetRegionSelectionRequired = applProduct.isTargetRegionBEDFileSelectionRequiredForRefSelection else: isTargetRegionSelectionRequired = False applicationGroupName = self.prepopulatedFields[SavePlanFieldNames.APPLICATION_GROUP_NAME] for row in sample_table_list: sample_name = row.get(SavePlanFieldNames.SAMPLE_NAME, '').strip() if sample_name: sample_nucleotideType = row.get(SavePlanFieldNames.BARCODE_SAMPLE_NUCLEOTIDE_TYPE, "") sampleReference = row.get(SavePlanFieldNames.BARCODE_SAMPLE_REFERENCE, "") sampleTargetRegionBedFile = row.get(SavePlanFieldNames.BARCODE_SAMPLE_TARGET_REGION_BED_FILE, "") runType = self.prepopulatedFields[SavePlanFieldNames.RUN_TYPE] logger.debug("barcode_by_sample_step_data.validateField()() runType=%s; sample_nucleotideType=%s; sampleReference=%s; sampleTargetRegionBedFile=%s" % (runType, sample_nucleotideType, sampleReference, sampleTargetRegionBedFile)) errors = [] # if the plan has been sequenced, do not enforce the target bed file to be selected if planStatus != "run": errors = validate_targetRegionBedFile_for_runType(sampleTargetRegionBedFile, runType, sampleReference, sample_nucleotideType, applicationGroupName, "Target Regions BED File for " + sample_name) if errors: samples_errors.append('\n'.join(errors)) if samples_errors: logger.debug("barcode_by_sample_step_data.validateField()() samples_errors=%s" % (samples_errors)) self.validationErrors[field_name] = '\n'.join(samples_errors)
def validateField(self, field_name, new_field_value): self.validationErrors.pop(field_name, None) # if the plan has been sequenced, do not enforce the target bed file to be selected planStatus = self.getDefaultSectionPrepopulatedFieldDict().get("planStatus", "") if field_name == SavePlanFieldNames.PLAN_NAME: errors = validate_plan_name(new_field_value, 'Plan Name') if errors: self.validationErrors[field_name] = '\n'.join(errors) elif field_name == SavePlanFieldNames.NOTE: errors = validate_notes(new_field_value) if errors: self.validationErrors[field_name] = '\n'.join(errors) elif field_name == SavePlanFieldNames.BARCODE_SAMPLE_TUBE_LABEL: errors = validate_sample_tube_label(new_field_value) if errors: self.validationErrors[field_name] = '\n'.join(errors) elif field_name == SavePlanFieldNames.CHIP_BARCODE_LABEL: errors = validate_chipBarcode(new_field_value) if errors: self.validationErrors[field_name] = '\n'.join(errors) elif field_name in self.qcNames: ''' All qc thresholds must be positive integers ''' errors = validate_QC(new_field_value, field_name) if errors: self.validationErrors[field_name] = errors[0] else: self.validationErrors.pop(field_name, None) elif field_name == SavePlanFieldNames.SAMPLES_TABLE: sample_table_list = json.loads(new_field_value) samples_errors = [] applProduct = self.savedObjects[SavePlanFieldNames.APPL_PRODUCT] # applProduct object is not saved yet if applProduct: isTargetRegionSelectionRequired = applProduct.isTargetRegionBEDFileSelectionRequiredForRefSelection else: isTargetRegionSelectionRequired = False applicationGroupName = self.prepopulatedFields[SavePlanFieldNames.APPLICATION_GROUP_NAME] for row in sample_table_list: sample_name = row.get(SavePlanFieldNames.SAMPLE_NAME, '').strip() if sample_name: sample_nucleotideType = row.get(SavePlanFieldNames.BARCODE_SAMPLE_NUCLEOTIDE_TYPE, "") sampleReference = row.get(SavePlanFieldNames.BARCODE_SAMPLE_REFERENCE, "") sampleTargetRegionBedFile = row.get(SavePlanFieldNames.BARCODE_SAMPLE_TARGET_REGION_BED_FILE, "") runType = self.prepopulatedFields[SavePlanFieldNames.RUN_TYPE] errors = [] # if the plan has been sequenced, do not enforce the target bed file to be selected isMainBEDFileValidated = "default_targetBedFile" in self.validationErrors if not isMainBEDFileValidated and planStatus != "run" and (self.sh_type not in StepHelperType.TEMPLATE_TYPES): errors = validate_targetRegionBedFile_for_runType(sampleTargetRegionBedFile, runType, sampleReference, sample_nucleotideType, applicationGroupName, "Target Regions BED File for " + sample_name) if errors: samples_errors.append('\n'.join(errors)) if samples_errors: self.validationErrors[field_name] = '\n'.join(samples_errors)
def validateField_in_section(self, field_name, new_field_value): """ field validation for a step that acts as a section to another step """ # logger.debug("at validateField_in_section field_name=%s; new_field_value=%s" %(field_name, new_field_value)) if field_name == ReferenceFieldNames.REFERENCE: if new_field_value and new_field_value not in [ ref.short_name for ref in self.prepopulatedFields[ ReferenceFieldNames.REFERENCES] ]: self.prepopulatedFields[ ReferenceFieldNames.REFERENCE_MISSING] = True self.validationErrors[ field_name] = validation.invalid_not_found_error( _("workflow.step.reference.fields.default_reference.label" ), new_field_value, ) # Reference Library not found: %s" % new_field_value else: self.prepopulatedFields[ ReferenceFieldNames.REFERENCE_MISSING] = False self.validationErrors.pop(field_name, None) # if the plan has been sequenced, do not enforce the target bed file to be selected if self.prepopulatedFields[ReferenceFieldNames.PLAN_STATUS] != "run": if field_name == ReferenceFieldNames.TARGET_BED_FILE: reference = self.savedFields[ReferenceFieldNames.REFERENCE] targetRegionBedFile = new_field_value runType = ( self.prepopulatedFields[ReferenceFieldNames.RUN_TYPE] if self.prepopulatedFields[ReferenceFieldNames.RUN_TYPE] else "") applicationGroupName = self.prepopulatedFields[ ReferenceFieldNames.APPLICATION_GROUP_NAME] logger.debug( " validateField_in_section reference=%s; targetBed=%s; runType=%s; applicationGroupName=%s" % (reference, new_field_value, runType, applicationGroupName)) errors = [] isSameRefInfoPerSample = self.savedFields[ ReferenceFieldNames.SAME_REF_INFO_PER_SAMPLE] if isSameRefInfoPerSample: errors = validate_targetRegionBedFile_for_runType( targetRegionBedFile, field_label= _("workflow.step.reference.fields.default_targetBedFile.label" ), runType=runType, reference=reference, nucleotideType="", applicationGroupName=applicationGroupName, ) if errors: self.validationErrors[field_name] = "".join(errors) else: self.validationErrors.pop(field_name, None)