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()
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