def create_schema(): def msg(name=None): return ''' chewBBACA.py CreateSchema [CreateSchema ...] [-h] -i [I] -o [O] --cpu [CPU] [-b [B]] [--bsr [BSR]] [-v] [-l [L]]''' parser = argparse.ArgumentParser(description="This program creates a schema when provided the genomes",usage=msg()) parser.add_argument('CreateSchema', nargs='+', help='create a schema') parser.add_argument('-i', nargs='?', type=str, help='List of genome files (list of fasta files)', required=True) parser.add_argument('-o', nargs='?', type=str, help="Name of the output folder", required=True) parser.add_argument('--cpu', nargs='?', type=int, help="Number of cpus, if over the maximum uses maximum -2", required=True) parser.add_argument('-b', nargs='?', type=str, help="BLAST full path", required=False, default='blastp') parser.add_argument("--CDS", help="use a fasta file, one gene per entry, to call alleles", required=False, action="store_true", default=False) parser.add_argument('--bsr', nargs='?', type=float, help="minimum BSR similarity", required=False, default=0.6) #~ parser.add_argument('-t', nargs='?', type=str, help="taxon", required=False, default=False) parser.add_argument('--ptf', nargs='?', type=str, help="provide your own prodigal training file (ptf) path", required=False, default=False) parser.add_argument("-v", "--verbose", help="increase output verbosity", dest='verbose', action="store_true", default=False) parser.add_argument('-l', nargs='?', type=int, help="minimum bp locus lenght", required=False, default=201) args = parser.parse_args() genomeFiles = args.i cpuToUse = args.cpu outputFile = args.o BlastpPath = args.b bsr = args.bsr #~ chosenTaxon = args.t chosenTrainingFile = args.ptf verbose = args.verbose min_length = args.l inputCDS = args.CDS if inputCDS==True: genomeFiles=[os.path.abspath(genomeFiles)] else: genomeFiles = check_if_list_or_folder(genomeFiles) if isinstance(genomeFiles, list): with open("listGenomes2Call.txt", "w") as f: for genome in genomeFiles: f.write(genome + "\n") genomeFiles = "listGenomes2Call.txt" PPanGen.main(genomeFiles,cpuToUse,outputFile,bsr,BlastpPath,min_length,verbose,chosenTrainingFile,inputCDS) try: os.remove("listGenomes2Call.txt") except: pass
def create_schema(): def msg(name=None): return ''' chewBBACA.py CreateSchema [CreateSchema ...] [-h] -i [I] -o [O] --cpu [CPU] [-b [B]] [--bsr [BSR]] [-v] [-l [L]]''' parser = argparse.ArgumentParser(description="This program creates a schema when provided the genomes",usage=msg()) parser.add_argument('CreateSchema', nargs='+', help='create a schema') parser.add_argument('-i', nargs='?', type=str, help='List of genome files (list of fasta files)', required=True) parser.add_argument('-o', nargs='?', type=str, help="Name of the output folder", required=True) parser.add_argument('--cpu', nargs='?', type=int, help="Number of cpus, if over the maximum uses maximum -2", required=True) parser.add_argument('-b', nargs='?', type=str, help="BLAST full path", required=False, default='blastp') parser.add_argument("--CDS", help="use a fasta file, one gene per entry, to call alleles", required=False, action="store_true", default=False) parser.add_argument('--bsr', nargs='?', type=float, help="minimum BSR similarity", required=False, default=0.6) #~ parser.add_argument('-t', nargs='?', type=str, help="taxon", required=False, default=False) parser.add_argument('--ptf', nargs='?', type=str, help="provide your own prodigal training file (ptf) path", required=False, default=False) parser.add_argument("-v", "--verbose", help="increase output verbosity", dest='verbose', action="store_true", default=False) parser.add_argument('-l', nargs='?', type=int, help="minimum bp locus lenght", required=False, default=201) parser.add_argument('--prm', nargs='?', type=str, help="Prodigal run mode. Single or meta. Meta mode is necessary " "if input genomes/assemblies/plasmids have a total number of base pairs below 20000bp.", choices=['single', 'meta'], required=False, default='single') args = parser.parse_args() genomeFiles = args.i cpuToUse = args.cpu outputFile = args.o BlastpPath = args.b bsr = args.bsr #~ chosenTaxon = args.t chosenTrainingFile = args.ptf verbose = args.verbose min_length = args.l inputCDS = args.CDS prodigal_mode = args.prm if inputCDS==True: genomeFiles=[os.path.abspath(genomeFiles)] else: genomeFiles = check_if_list_or_folder(genomeFiles) if isinstance(genomeFiles, list): with open("listGenomes2Call.txt", "w") as f: for genome in genomeFiles: f.write(genome + "\n") genomeFiles = "listGenomes2Call.txt" try: chosenTrainingFileLocal=os.path.join(os.path.dirname(CHEWBBACA.__file__), "prodigal_training_files",chosenTrainingFile) except: chosenTrainingFileLocal=False pass if os.path.isfile(chosenTrainingFile): pass elif os.path.isfile(chosenTrainingFileLocal): chosenTrainingFile=chosenTrainingFileLocal pass elif not chosenTrainingFileLocal: pass else: print( chosenTrainingFile+ " file not found") return PPanGen.main(genomeFiles,cpuToUse,outputFile,bsr,BlastpPath,min_length,verbose,chosenTrainingFile,inputCDS,prodigal_mode) try: os.remove("listGenomes2Call.txt") except: pass