Пример #1
0
    def run(self, excelPathInputValue, errbox):
        try:

            targetExcel = load_workbook(excelPathInputValue,
                                        data_only=True)  # 엑셀 연다.

            bioProjectSheetName = ''
            bioSampleSheetName = []
            sampleTypeSheetName = []
            experimentSheetName = []

            sheets = targetExcel.sheetnames
            #시트 이름들을 가져와서 포함되는 단어에 따라서 각각의 배열에 추가
            for sheet in sheets:
                if 'BioProject' in str(sheet):
                    bioProjectSheetName += str(sheet)
                elif 'BioSample' in str(sheet):
                    bioSampleSheetName.append(str(sheet))
                elif 'Sample type' in str(sheet):
                    sampleTypeSheetName.append(str(sheet))
                elif 'Experiment' in str(sheet):
                    experimentSheetName.append(str(sheet))

            #biosample,sampletype,experiment 쌍의 개수만큼 반복한다.
            rotation = len(bioSampleSheetName)

            bioProject = targetExcel[bioProjectSheetName]
            Validation.bioProject_Validation(
                bioProject, bioProjectSheetName,
                errbox)  #BioProject는 1개뿐이므로 그냥 validation 실행

            #나머지 시트들은 존재하는 개수만큼 실행한다.
            #bioSample_SampleName = []

            i = 0
            while i < rotation:
                bioSample = targetExcel[bioSampleSheetName[i]]
                sampleType = targetExcel[sampleTypeSheetName[i]]
                experiment = targetExcel[experimentSheetName[i]]

                Validation.bioSample_Validation(bioSample, sampleType,
                                                bioSampleSheetName[i], errbox)
                bioSample_SampleName = Validation.sampleType_Validation(
                    sampleType, sampleTypeSheetName[i], errbox)
                Validation.Experiment_Validation(experiment,
                                                 experimentSheetName[i],
                                                 errbox, bioSample_SampleName)
                i += 1

        except IOError as err:
            errbox.insertPlainText("IO Error : " + str(err))