Skip to content
Snippets Groups Projects

QuaC - First major review

Merged Manavalan Gajapathy requested to merge make_it_production_ready into master
1 file
+ 48
50
Compare changes
  • Side-by-side
  • Inline
+ 48
50
@@ -19,13 +19,6 @@ import yaml
@@ -19,13 +19,6 @@ import yaml
from utility_cgds.cgds.pipeline.src.submit_slurm_job import submit_slurm_job
from utility_cgds.cgds.pipeline.src.submit_slurm_job import submit_slurm_job
def is_valid_file(p, arg):
if not Path(arg).is_file():
p.error("The file '%s' does not exist!" % arg)
else:
return arg
def make_dir(d):
def make_dir(d):
"""
"""
Ensure directory exists
Ensure directory exists
@@ -149,25 +142,69 @@ def main(args):
@@ -149,25 +142,69 @@ def main(args):
return None
return None
 
def is_valid_file(p, arg):
 
if not Path(arg).is_file():
 
p.error("The file '%s' does not exist!" % arg)
 
else:
 
return arg
 
 
 
def is_valid_dir(p, arg):
 
if not Path(os.path.expandvars(arg)).is_dir():
 
p.error("The directory '%s' does not exist!" % arg)
 
else:
 
return os.path.expandvars(arg)
 
 
if __name__ == "__main__":
if __name__ == "__main__":
PARSER = argparse.ArgumentParser(
PARSER = argparse.ArgumentParser(
description="A wrapper for QuaC pipeline.",
description="A wrapper for QuaC pipeline.",
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)
)
 
############ Args for QuaC workflow ############
 
WORKFLOW = PARSER.add_argument_group("QuaC workflow options")
 
 
WORKFLOW.add_argument(
 
"--project_name",
 
help="Project name",
 
metavar="",
 
)
 
WORKFLOW.add_argument(
 
"--pedigree",
 
help="Pedigree filepath. Must be specific for the project supplied via --project_name",
 
type=lambda x: is_valid_file(PARSER, x),
 
metavar="",
 
)
 
QUAC_OUTDIR_DEFAULT = "$USER_SCRATCH/tmp/quac/results"
 
WORKFLOW.add_argument(
 
"--outdir",
 
help="Out directory path",
 
default=QUAC_OUTDIR_DEFAULT,
 
type=lambda x: is_valid_dir(PARSER, x),
 
metavar="",
 
)
 
WORKFLOW.add_argument(
 
"-m",
 
"--select_modules",
 
help="Runs only these user-specified modules(s). If >1, use comma as delimiter. \
 
Useful for development.",
 
default="all",
 
metavar="",
 
)
 
############ Args for QuaC wrapper tool ############
############ Args for QuaC wrapper tool ############
WRAPPER = PARSER.add_argument_group("QuaC wrapper options")
WRAPPER = PARSER.add_argument_group("QuaC wrapper options")
cluster_config_fname_default = (
CLUSTER_CONFIG_DEFAULT = Path(__file__).absolute().parents[1] / "configs/cluster_config.json"
Path(__file__).absolute().parents[1] / "configs/cluster_config.json"
)
WRAPPER.add_argument(
WRAPPER.add_argument(
"--cluster_config",
"--cluster_config",
help="Cluster config json file. Needed for snakemake to run jobs in cluster.",
help="Cluster config json file. Needed for snakemake to run jobs in cluster.",
default=cluster_config_fname_default,
default=CLUSTER_CONFIG_DEFAULT,
type=lambda x: is_valid_file(PARSER, x),
type=lambda x: is_valid_file(PARSER, x),
metavar="",
metavar="",
)
)
 
WRAPPER.add_argument(
WRAPPER.add_argument(
"-e",
"-e",
"--extra_args",
"--extra_args",
@@ -198,45 +235,6 @@ if __name__ == "__main__":
@@ -198,45 +235,6 @@ if __name__ == "__main__":
metavar="",
metavar="",
)
)
# REQUIRED_ARGS = PARSER.add_argument_group("required named arguments")
# REQUIRED_ARGS.add_argument(
# "--io_config",
# help="Input-output config yaml file provided by user",
# required=True,
# type=lambda x: is_valid_file(PARSER, x),
# metavar="",
# )
############ Args for QuaC workflow ############
WORKFLOW = PARSER.add_argument_group("QuaC workflow options")
WORKFLOW.add_argument(
"--project_name",
help="Project name",
metavar="",
)
WORKFLOW.add_argument(
"--pedigree",
help="Pedigree filepath. Must be specific for the project supplied via --project_name",
metavar="",
)
WORKFLOW.add_argument(
"--outdir",
help="Out directory path",
metavar="",
)
WORKFLOW.add_argument(
"-m",
"--select_modules",
help="Runs only these user-specified modules(s). If >1, use comma as delimiter. \
Useful for development.",
default="all",
metavar="",
)
ARGS = PARSER.parse_args()
ARGS = PARSER.parse_args()
main(ARGS)
main(ARGS)
Loading