diff --git a/gctree/cli.py b/gctree/cli.py index 904ef95..f1e5b44 100644 --- a/gctree/cli.py +++ b/gctree/cli.py @@ -15,6 +15,7 @@ import random import ete3 import itertools +from pathlib import Path def test(args): @@ -164,6 +165,9 @@ def isotype_add(forest): isotype_names=args.isotype_names, ) + # Make parent directory of output file base string if it doesn't exist + Path(args.outbase).parent.mkdir(parents=True, exist_ok=True) + if len(args.infiles) == 2: forest = bp.CollapsedForest( pp.parse_outfile(args.infiles[0], args.infiles[1], args.root) diff --git a/tests/smalltest.sh b/tests/smalltest.sh index 9011f4a..5bffda7 100755 --- a/tests/smalltest.sh +++ b/tests/smalltest.sh @@ -14,7 +14,7 @@ wget -O $substitutions https://bitbucket.org/kleinstein/shazam/raw/ba4b30fc6791e # testing backward compatibility: -gctree infer tests/small_outfile tests/abundances.csv --outbase tests/smalltest_output/gctree.infer --root GL --frame 1 --verbose --idlabel --idmapfile tests/idmap.txt --isotype_mapfile tests/isotypemap.txt --mutability HS5F_Mutability.csv --substitution HS5F_Substitution.csv --ranking_coeffs 1 1 0 --use_old_mut_parsimony --branching_process_ranking_coeff 0 +gctree infer tests/small_outfile tests/abundances.csv --outbase tests/smalltest_output/nonexistant_dir/gctree.infer --root GL --frame 1 --verbose --idlabel --idmapfile tests/idmap.txt --isotype_mapfile tests/isotypemap.txt --mutability HS5F_Mutability.csv --substitution HS5F_Substitution.csv --ranking_coeffs 1 1 0 --use_old_mut_parsimony --branching_process_ranking_coeff 0 gctree infer tests/smalltest_output/gctree.infer.inference.parsimony_forest.p --outbase tests/smalltest_output/gctree.infer --root GL --frame 1 --verbose --idlabel --idmapfile tests/idmap.txt --isotype_mapfile tests/isotypemap.txt --mutability HS5F_Mutability.csv --substitution HS5F_Substitution.csv --ranking_coeffs 1 -1 0 --use_old_mut_parsimony