From 9956ae5c989d753eec72a2eda1d905ff135150ea Mon Sep 17 00:00:00 2001 From: Michael Wykes Date: Wed, 6 May 2020 10:35:33 +0100 Subject: [PATCH] restore ability of medaka_variant to show help when run with no args --- CHANGELOG.md | 8 ++++++++ medaka/__init__.py | 2 +- medaka/medaka.py | 15 +++++++++------ medaka/models.py | 1 - medaka/options.py | 2 +- scripts/medaka_variant | 8 +++++--- 6 files changed, 24 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51bde392..9be3c0b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +v1.0.1 +------- +Minor fixes release, resolving issues introduced in v1.0.0. + +* Fix default model for SNP calling. +* Fix issue causing medaka_consensus to crash. + + v1.0.0 ------- Models, features and fixes release diff --git a/medaka/__init__.py b/medaka/__init__.py index 7b2b1f1e..76dff04b 100644 --- a/medaka/__init__.py +++ b/medaka/__init__.py @@ -4,7 +4,7 @@ import os import subprocess -__version__ = '1.0.0' +__version__ = '1.0.1' def check_minimap2_version(): diff --git a/medaka/medaka.py b/medaka/medaka.py index 611eab5a..1c92f15b 100644 --- a/medaka/medaka.py +++ b/medaka/medaka.py @@ -152,8 +152,9 @@ def _log_level(): def _model_arg(): parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter, add_help=False) - parser.add_argument('--model', action=ResolveModel, default=medaka.options.default_models['consensus'], - help='Model definition, default is equivalent to {}.'.format(medaka.options.default_models['consensus'])) + parser.add_argument('--model', action=ResolveModel, + default=medaka.options.default_models['consensus'], + help='Model to use.') parser.add_argument('--allow_cudnn', dest='allow_cudnn', default=True, action='store_true', help=argparse.SUPPRESS) parser.add_argument('--disable_cudnn', dest='allow_cudnn', default=False, action='store_false', help='Disable use of cuDNN model layers.') @@ -200,9 +201,9 @@ def is_rle_encoder(model_name): def get_alignment_params(args): if is_rle_encoder(args.model): - align_params = alignment_params['rle'] + align_params = medaka.options.alignment_params['rle'] else: - align_params = alignment_params['non-rle'] + align_params = medaka.options.alignment_params['non-rle'] print(align_params) @@ -389,10 +390,9 @@ def main(): # Consensus from features input cfparser = subparsers.add_parser('consensus_from_features', help='Run inference from a trained model on existing features.', - parents=[_log_level()], + parents=[_log_level(), _model_arg()], formatter_class=argparse.ArgumentDefaultsHelpFormatter) cfparser.add_argument('features', nargs='+', help='Pregenerated features (from medaka features).') - cfparser.add_argument('--model', action=ResolveModel, default=medaka.options.default_models['consensus'], help='Model definition.') # Compression of fasta/q to quality-RLE fastq rleparser = subparsers.add_parser('fastrle', @@ -637,4 +637,7 @@ def main(): if RG is not None: msg = "Reads will be filtered to only those with RG tag: {}" logger.info(msg.format(RG)) + # if model is default, resolve to file, save mess in help text + if hasattr(args, 'model'): + args.model = medaka.models.resolve_model(args.model) args.func(args) diff --git a/medaka/models.py b/medaka/models.py index e7bfa15b..4d2b263c 100644 --- a/medaka/models.py +++ b/medaka/models.py @@ -64,7 +64,6 @@ def resolve_model(model): pathlib.Path(d).mkdir(parents=True, exist_ok=True) with open(fp, 'wb') as fh: fh.write(data) - print("returning ", fp) return fp except Exception: # we might not have write access pass diff --git a/medaka/options.py b/medaka/options.py index 99667b38..7b27effc 100644 --- a/medaka/options.py +++ b/medaka/options.py @@ -39,7 +39,7 @@ allowed_models = sorted(current_models + archived_models) default_models = { 'consensus': 'r941_min_high_g351', - 'snp': 'r941_min_high_g351', + 'snp': 'r941_prom_snp_g322', 'variant': 'r941_prom_variant_g322'} alignment_params = { diff --git a/scripts/medaka_variant b/scripts/medaka_variant index ee0528b8..57954b86 100755 --- a/scripts/medaka_variant +++ b/scripts/medaka_variant @@ -1,7 +1,9 @@ #!/usr/bin/env bash set -eo pipefail -myInvocation="CL=\"$(printf %q "$BASH_SOURCE")$((($#)) && printf ' %q' "$@")\"" +printf -v args ' %q' $@ +src=${BASH_SOURCE} +INVOCATION=$([ $# -ne 0 ] && echo $src $args || echo $src) medaka_version=$(medaka --version) modeldata=() @@ -388,8 +390,8 @@ else ${REF} ${UNFILTERED} # Add invocation of this script to VCF header - INVOCATION_DATE="##${myInvocation}; $(date)" - sed -i "/^#CHROM.*/i $INVOCATION_DATE" ${UNFILTERED} + INVOCATION_DATE="##CL=${INVOCATION}; $(date)" + sed -i "/^#CHROM.*/i ${INVOCATION_DATE}" ${UNFILTERED} if $FILTER_FLAG; then # Filter resulting vcf