def run(parser, args): args.tomlfile = args.toml args.toml = toml.load(args.toml) print(args) # TODO: Move logging config to separate configuration file # set up logging to file logging.basicConfig( level=logging.DEBUG, format='%(levelname)s::%(asctime)s::%(name)s::%(message)s', filename=args.log_file, filemode='w') # define a Handler that writes INFO messages or higher to the sys.stderr console = logging.StreamHandler() console.setLevel(logging.INFO) # set a format which is simpler for console use formatter = logging.Formatter('%(name)-15s: %(levelname)-8s %(message)s') console.setFormatter(formatter) # add the handler to the root logger logging.getLogger('').addHandler(console) # Start by logging sys.argv and the parameters used logger = logging.getLogger("Manager") logger.info(" ".join(sys.argv)) print_args(args, logger=logger) logger.info("Initialising iterAlign.") logger.info("Setting up FastQ monitoring.") #### Check if a run is active - if not, wait. args.simulation = True connection = None if args.watch is None: args.simulation = False logger.info("Creating rpc connection for device {}.".format( args.device)) try: connection, messageport = get_rpc_connection(args.device) except ValueError as e: print(e) sys.exit(1) send_message(connection, "Iteralign Connected to MinKNOW", Severity.WARN) logger.info("Loaded RPC") while parse_message(connection.acquisition.current_status() )['status'] != "PROCESSING": time.sleep(1) #### Check if we know where data is being written to , if not... wait args.watch = parse_message(connection.acquisition.get_acquisition_info( ))['config_summary']['reads_directory'] else: messageport = "" event_handler = FastqHandler(args, logging, messageport, connection) # This block handles the fastq observer = Observer() observer.schedule(event_handler, path=args.watch, recursive=True) observer.daemon = True try: observer.start() logger.info("FastQ Monitoring Running.") while 1: time.sleep(1) except KeyboardInterrupt: logger.info("Exiting - Will take a few seconds to clean up!") observer.stop() observer.join() os._exit(0)
def run(parser, args): # new code block: change the reference path within the args.toml file into the args.mindex path d = toml.load(args.toml) print(d["conditions"]["reference"]) args.tomlfile = args.toml args.toml = toml.load(args.toml) print(args) # TODO: Move logging config to separate configuration file # set up logging to file logging.basicConfig(level=logging.DEBUG, format='%(levelname)s::%(asctime)s::%(name)s::%(message)s', filename=args.log_file, filemode='w') # define a Handler that writes INFO messages or higher to the sys.stderr console = logging.StreamHandler() console.setLevel(logging.INFO) # set a format which is simpler for console use formatter = logging.Formatter('%(name)-15s: %(levelname)-8s %(message)s') console.setFormatter(formatter) # add the handler to the root logger logging.getLogger('').addHandler(console) # Start by logging sys.argv and the parameters used logger = logging.getLogger("Manager") logger.info(" ".join(sys.argv)) print_args(args, logger=logger) logger.info("Initialising iterAlign.") logger.info("Setting up FastQ monitoring.") #### Check if a run is active - if not, wait. args.simulation = True connection = None #set default message severity level. severity = 2 if args.watch is None: args.simulation = False logger.info("Creating rpc connection for device {}.".format(args.device)) try: connection, messageport = get_rpc_connection(args.device) except ValueError as e: print(e) sys.exit(1) #send_message_port("Iteralign Connected to MinKNOW", args.host, messageport) send_message(connection, "Iteralign Connected to MinKNOW.", Severity.WARN) logger.info("Loaded RPC") while parse_message(connection.acquisition.current_status())['status'] != "PROCESSING": time.sleep(1) ### Check if we know where data is being written to , if not... wait args.watch = parse_message(connection.acquisition.get_acquisition_info())['config_summary'][ 'reads_directory'] else: messageport = "" event_handler = FastqHandler(args, logging, messageport, connection) # This block handles the fastq observer = Observer() observer.schedule(event_handler, path=args.watch, recursive=True) observer.daemon = True try: observer.start() logger.info("FastQ Monitoring Running.") while 1: time.sleep(1) except KeyboardInterrupt: logger.info("Exiting - Will take a few seconds to clean up!") observer.stop() observer.join() if args.keepfiles: logging.info("The 'keepfiles' argument was set, files generated by classifier have been retained") else: if os.path.isdir(args.path): for path, dirs, files in os.walk(args.path): for f in files: if f.startswith(args.prefix): os.unlink(f) logging.info("file removed: {}".format(f)) if os.path.isdir("./"): for path, dirs, files in os.walk("./"): for f in files: if f.endswith(args.creport): os.unlink(f) logging.info("file removed: {}".format(f)) logging.info("All files generated by classifier have been removed.") os._exit(0)