def runRaxmlNg(fastaFilePath, workingDir, outputPath, threads = 8): # raxml-ng --msa prim.phy --model GTR+G --prefix T4 --threads 2 --seed 2 --tree pars{25},rand{25} baseName = os.path.basename(outputPath).replace(".","") raxmlFile = os.path.join(workingDir, "{}.raxml.bestTree".format(baseName)) seed = random.randint(1, 1000000) args = [Configs.raxmlPath, "--msa", fastaFilePath, "--prefix", baseName, "--threads", str(threads), "--seed", str(seed)] if Configs.inferDataType(fastaFilePath) == "protein": args.extend(["--model", "LG+G"]) else: args.extend(["--model", "GTR+G"]) args.extend(["--tree", "pars{{{}}}".format(1)]) taskArgs = {"command" : subprocess.list2cmdline(args), "fileCopyMap" : {raxmlFile : outputPath}, "workingDir" : workingDir} return Task(taskType = "runCommand", outputFile = outputPath, taskArgs = taskArgs)
def runFastTree(fastaFilePath, workingDir, outputPath, mode = "normal", intree = None): tempPath = os.path.join(os.path.dirname(outputPath), "temp_{}".format(os.path.basename(outputPath))) args = [Configs.fasttreePath] if Configs.inferDataType(fastaFilePath) == "protein": args.extend(["-lg"]) else: args.extend(["-nt", "-gtr"]) if intree is not None: args.extend(["-intree", intree]) if mode == "fast": args.extend(["-fastest", "-nosupport"]) elif mode == "faster": args.extend(["-fastest", "-nosupport", "-mlnni", "4" ]) elif mode == "noml": args.extend(["-fastest", "-nosupport", "-noml"]) args.extend([fastaFilePath, ">", tempPath]) taskArgs = {"command" : subprocess.list2cmdline(args), "fileCopyMap" : {tempPath : outputPath}, "workingDir" : workingDir} return Task(taskType = "runCommand", outputFile = outputPath, taskArgs = taskArgs)