def create_setting_from_file(cls, args): """ TODO: switch between assembler(genovo/xgenovo)+glimmer+blast and MINE ignore metasim for now do we need assembler(genovo/xgenovo)+glimmer+blast+MINE? """ # print type(args.control_file), dir(args.control_file) # print args.control_file.closed, args.control_file.name try: if args.control_file is "control": print "Use control file at ./control" # args.control_file = "control" control_file = os.path.abspath(args.control_file) path_utils.check_file(control_file) all_pars = parse_control_file2(control_file) if args.sub_command == "process": print "Subcommand: process" infile = os.path.abspath(args.infile) wdir = os.path.dirname(infile) path_utils.check_file(infile) path_utils.check_directory(wdir) setting = cls(wdir=wdir) if "genovo_pdir" in all_pars and "xgenovo_pdir" in all_pars: raise NameError("Error!! both genovo_pdir and xgenovo_pdir exist in the control file.") if "genovo_pdir" in all_pars: assembler_pdir_full = os.path.abspath(os.path.expanduser(all_pars["genovo_pdir"])) assembler_prog = "genovo" elif "xgenovo_pdir" in all_pars: assembler_pdir_full = os.path.abspath(os.path.expanduser(all_pars["xgenovo_pdir"])) assembler_prog = "xgenovo" else: raise NameError("Error! No assembler specified! genovo_pdir or xgenovo_pdir is required") glimmer_pdir_full = os.path.abspath(os.path.expanduser(all_pars["glimmer_pdir"])) blast_pdir_full = os.path.abspath(os.path.expanduser(all_pars["blast_pdir"])) blast_db_full = os.path.abspath(os.path.expanduser(all_pars["blast_db"])) path_utils.check_directory(assembler_pdir_full) path_utils.check_directory(glimmer_pdir_full) path_utils.check_directory(blast_pdir_full) # path_utils.check_directory(blast_db_full) setting.add_all( assembler_infile=infile, assembler_prog=assembler_prog, assembler_pdir=assembler_pdir_full, glimmer_pdir=glimmer_pdir_full, blast_pdir=blast_pdir_full, blast_db=blast_db_full ) setting.check_parameters_program(assembler_prog) setting.check_parameters_program("glimmer") setting.check_parameters_program("blast") setting._set_master_file_tag() elif args.sub_command == "summary": print "Subcommand: summary " csv_dir = os.path.abspath(args.csv_dir) # wdir path_utils.check_directory(csv_dir) wdir = csv_dir setting = cls(wdir=wdir, run_mine=True) mine_pdir_full = os.path.abspath(os.path.expanduser(all_pars["mine_pdir"])) # infile = path_utils.check_wdir_prefix(all_pars["wdir"], ) infile = setting.generate_default_outfile_name(args.mine_infile, ".csv") infile = os.path.abspath(infile) # #FIXME, should be able to do it better csv_list = [] for name in glob.glob(wdir + '/*.csv'): if name.find(args.mine_infile) > 0: continue if name.find("Results.csv") > 0 : continue if name.find("tmp.csv") > 0 : continue print "Found CSV file: ", name csv_list.append(name) print "Total: %d CSV files in %s.\nPlease remove unwanted *.csv file and restart." % (len(csv_list), wdir) setting.add_all( mine_pdir=mine_pdir_full, mine_infile=infile, csv_files=csv_list, mine_overwrite=args.mine_overwrite ) setting.check_parameters_program("mine") except KeyError as e: # raise KeyError("Missing essential setting", e) print "ERROR: Missing essential setting %s in control file:%s" % (e, control_file) if args.debug > 1: raise sys.exit(5) except IOError as e: print e if args.debug > 1: raise sys.exit(6) # keys = controlfile.all_arguments.keys() # print keys for parameter in list_all_optionals: if parameter in all_pars.keys(): if args.debug > 0: print "ADDING: ", parameter, all_pars[parameter] setting.add(parameter, all_pars[parameter]) setting.print_all(args.debug) return setting
def check_file_exist(self, filename, check_exist): warnings.warn("Deprecated method ", DeprecationWarning) if check_exist: path_utils.check_file(filename)