예제 #1
0
    def __init__(self):
        #Le watchdog
        self.observer = Observer()

        # Parameters handler
        self.path_setter = ParameterHandler.PathSetter(my_debug_level)
        self.path_setter.OpenParamFile()
        self.path_setter.ParseParamFile()

        self.logfile = self.path_setter.GetLogginFile()

        # Le repertoire a scanner par le watchdog
        self.DIRECTORY_TO_WATCH = self.path_setter.GetMiSeqRootDir()
        #print('DIRECTORY_TO_WATCH ', self.DIRECTORY_TO_WATCH)

        self.path_setter.CloseParamFile()
예제 #2
0
    def on_created(self, event):
        '''
        Execute lorsque le watchdog a detecter qu une run MiSeq est terminee
        :param event:
        :return:
        '''

        #Lorsqu une run MiSeq est terminee, le fichier CompletedJobInfo.xml est cree dans D:\Illumina\MiSeqOutput\IdDeLaRun
        if (isinstance(event, FileCreatedEvent)):
            if ((event.src_path.endswith('CompletedJobInfo.xml')) and
                (not os.path.dirname(event.src_path).endswith('Alignment'))):
                # Parameters handler
                self.path_setter = ParameterHandler.PathSetter(my_debug_level)
                self.path_setter.OpenParamFile()
                self.path_setter.ParseParamFile()

                #Modif_20200211
                self.file_size_manager = ParameterHandler.FileSizeManager(
                    my_debug_level)
                self.file_size_manager.OpenParamFile()
                self.file_size_manager.ParseParamFile()

                #path vers la run sur le MiSeq
                runpath = os.path.dirname(event.src_path)

                #Id de la run
                runname = os.path.basename(runpath)

                #Un object structure de la run terminee sur le MiSeq
                self.MiSeqRunObj = RunOnMiSeq(runpath)

                #Modif_20200130
                #Object permettant la copie de run sur le disque 8T
                self.RunBackuperObj = RunBackuper(
                    runpath, self.path_setter.GetBackupDiskDir())

                # Message affichee dans la console
                self.ftl.LogMessage("La run {0} est termine".format(runname))

                #Arborescence de la run sur le MiSeq
                self.MiSeqRunObj.SetPath()

                #On defini le nouveau nom de la run
                self.SetNewRunName()

                #Un object structure du nouveau repertoire d analyse a cree sur S:\\Partage\LSPQ_MiSeq\
                self.LspqMiSeqRunObj = RunOnPartageLspqMiSeq(
                    self.new_run_name,
                    self.path_setter.GetPartageLspqMiSeqRootDir(),
                    self.cartridge_name)

                #Arborescence du repertoire d analyse a cree sur le S:\\Partage\LSPQ_MiSeq\
                self.LspqMiSeqRunObj.SetPath()

                self.ftl.LogMessage(
                    "Creation de l'arborescence de la run {new_runname} dans S:\Partage\LSPQ_MiSeq"
                    .format(new_runname=self.LspqMiSeqRunObj.GetRunName()))

                # On cree l arborescence du repertoire d analyse sur S:\\Partage\LSPQ_MiSeq\
                self.LspqMiSeqRunObj.CreatePath()

                self.ftl.LogMessage(
                    "Export des fichiers du MiSeq run {0} vers {1} en cours".
                    format(runname, self.LspqMiSeqRunObj.GetRunPath()))

                #Export des fichiers vers S:\\Partage\LSPQ_MiSeq\RunName\1_Experimental
                self.ExportToLspqMiSeqExperimental()

                if self.CheckIfIridaSamplesInRun(
                        self.MiSeqRunObj.GetSampleSheetPath()):

                    self.CreateIridaSampleSheet(self.file_size_manager,
                                                self.new_run_name)
                    #self.MiSeqRunObj.MonitorIridaSamplesTransfer(self.new_run_name)
                    self.MiSeqRunObj.LaunchIridaUploader(self.new_run_name)
                else:
                    self.ImportIridaUploaderInfoFile()

                #Concatener les sample sheet
                self.ConcatSampleSheet()

                self.ExportToLspqMiSeqMiSeqRunTrace()

                #Export des fichiers vers S:\\Partage\LSPQ_MiSeq\RunName\3_SequencesBrutes
                #Modif_20200211
                self.ExportToLspqMiSeqSequenceBrute()

                #Modif_20200306
                self.ftl.LogMessage(
                    "Calcul des statistiques pour {0}".format(runname))
                self.MiSeqRunObj.ComputeQualStat(
                    self.LspqMiSeqRunObj.GetRunPath())

                self.ftl.LogMessage(
                    "Export des fichiers du MiSeq run {0} vers {1} est termine"
                    .format(runname, self.LspqMiSeqRunObj.GetRunPath()))

                # Modif_20200130
                self.ftl.LogMessage("Debut Backup run {0}".format(runname))
                self.BackupMiSeqRun()
                self.ftl.LogMessage(
                    "Fin Backup run {0}\n ----------------------------------".
                    format(runname))

                self.path_setter.CloseParamFile()

                del self.MiSeqRunObj
                del self.LspqMiSeqRunObj
                del self.path_setter