Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When the configuration is missing Mikado generates an unrelated error #396

Closed
ljyanesm opened this issue Mar 26, 2021 · 0 comments · Fixed by #400
Closed

When the configuration is missing Mikado generates an unrelated error #396

ljyanesm opened this issue Mar 26, 2021 · 0 comments · Fixed by #400
Assignees

Comments

@ljyanesm
Copy link
Collaborator

For example, when running:

mikado pick --source Mikado_permissive_ms --mode=permissive --procs=2 --start-method=spawn --json-conf mikado_config.yaml -od Daijin/5-mikado/pick/permissive_ms -l Daijin/5-mikado/pick/permissive_ms/mikado-permissive_ms.pick.log --loci-out mikado-permissive_ms.loci.gff3 -lv INFO -db Daijin/5-mikado/mikado.db Daijin/5-mikado/mikado_prepared.gtf

Having a missing scoring file in the mikado configuration i.e: /redacted/mikado/Mikado/configuration/scoring_files_not_here/plant.yaml

Mikado generates the following error:

2021-03-26 12:08:38,252 - pick - configurator.py:188 - CRITICAL - load_and_validate_config - MainProcess - The configuration file is invalid. Validation errors:
['No scoring configuration file found. Options: '
 '/redacted/mikado/Mikado/configuration/scoring_files_not_here/plant.yaml,/redacted/mikado/Mikado/configuration/scoring_files_not_here/plant.yaml,/redacted/mikado/Mikado/configuration/scoring_files_not_here/plant.yaml,/redacted/mikado/sample_data/plant.yaml']
{'name': ['Missing data for required field.'],
 'out_dir': ['Missing data for required field.']}


2021-03-26 12:08:38,252 - pick - configurator.py:191 - CRITICAL - load_and_validate_config - MainProcess - {'name': ['Missing data for required field.'], 'out_dir': ['Missing data for required field.']}
2021-03-26 12:08:38,252 - pick - configurator.py:204 - ERROR - load_and_validate_config - MainProcess - Loading the configuration file failed with error:
{'name': ['Missing data for required field.'], 'out_dir': ['Missing data for required field.']}


Traceback (most recent call last):
  File "/redacted/mikado/Mikado/configuration/configurator.py", line 183, in load_and_validate_config
    config = MikadoConfiguration.Schema().load(config, partial=external)
  File "/python/site-packages/marshmallow_dataclass/__init__.py", line 582, in load
    return clazz(**all_loaded)
  File "<string>", line 14, in __init__
  File "/redacted/mikado/Mikado/configuration/configuration.py", line 76, in __post_init__
    self.check()
  File "/redacted/mikado/Mikado/configuration/configuration.py", line 86, in check
    self.load_scoring(logger=logger)
  File "/redacted/mikado/Mikado/configuration/configuration.py", line 164, in load_scoring
    raise InvalidConfiguration("No scoring configuration file found. Options: {}".format(",".join(options)))
Mikado.exceptions.InvalidConfiguration: 'No scoring configuration file found. Options: /redacted/mikado/Mikado/configuration/scoring_files_not_here/plant.yaml,/redacted/mikado/Mikado/configuration/scoring_files_not_here/plant.yaml,/redacted/mikado/Mikado/configuration/scoring_files_not_here/plant.yaml,/redacted/mikado/sample_data/plant.yaml'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/redacted/mikado/Mikado/configuration/configurator.py", line 186, in load_and_validate_config
    config = DaijinConfiguration.Schema().load(config, partial=external)
  File "/python/site-packages/marshmallow_dataclass/__init__.py", line 577, in load
    all_loaded = super().load(data, many=many, **kwargs)
  File "/python/site-packages/marshmallow/schema.py", line 727, in load
    return self._do_load(
  File "/python/site-packages/marshmallow/schema.py", line 909, in _do_load
    raise exc
marshmallow.exceptions.ValidationError: {'name': ['Missing data for required field.'], 'out_dir': ['Missing data for required field.']}
Mikado crashed, cause:
'The configuration file passed is invalid. Please double check.'
Traceback (most recent call last):
  File "/redacted/mikado/Mikado/configuration/configurator.py", line 183, in load_and_validate_config
    config = MikadoConfiguration.Schema().load(config, partial=external)
  File "/python/site-packages/marshmallow_dataclass/__init__.py", line 582, in load
    return clazz(**all_loaded)
  File "<string>", line 14, in __init__
  File "/redacted/mikado/Mikado/configuration/configuration.py", line 76, in __post_init__
    self.check()
  File "/redacted/mikado/Mikado/configuration/configuration.py", line 86, in check
    self.load_scoring(logger=logger)
  File "/redacted/mikado/Mikado/configuration/configuration.py", line 164, in load_scoring
    raise InvalidConfiguration("No scoring configuration file found. Options: {}".format(",".join(options)))
Mikado.exceptions.InvalidConfiguration: 'No scoring configuration file found. Options: /redacted/mikado/Mikado/configuration/scoring_files_not_here/plant.yaml,/redacted/mikado/Mikado/configuration/scoring_files_not_here/plant.yaml,/redacted/mikado/Mikado/configuration/scoring_files_not_here/plant.yaml,/redacted/mikado/sample_data/plant.yaml'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/redacted/mikado/Mikado/configuration/configurator.py", line 186, in load_and_validate_config
    config = DaijinConfiguration.Schema().load(config, partial=external)
  File "/python/site-packages/marshmallow_dataclass/__init__.py", line 577, in load
    all_loaded = super().load(data, many=many, **kwargs)
  File "/python/site-packages/marshmallow/schema.py", line 727, in load
    return self._do_load(
  File "/python/site-packages/marshmallow/schema.py", line 909, in _do_load
    raise exc
marshmallow.exceptions.ValidationError: {'name': ['Missing data for required field.'], 'out_dir': ['Missing data for required field.']}

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/redacted/mikado/Mikado/__main__.py", line 68, in main
    args.func(args)
  File "/redacted/mikado/Mikado/subprograms/pick.py", line 248, in pick
    mikado_configuration = load_and_validate_config(args.configuration, logger=logger)
  File "/redacted/mikado/Mikado/configuration/configurator.py", line 205, in load_and_validate_config
    raise InvalidConfiguration("The configuration file passed is invalid. Please double check.")
Mikado.exceptions.InvalidConfiguration: 'The configuration file passed is invalid. Please double check.'

Of which only the first exception relate to the issue at hand, but the final exception listed is unrelated.

lucventurini added a commit that referenced this issue Mar 26, 2021
lucventurini added a commit that referenced this issue Apr 1, 2021
…ue-395-pick-pad-crash' and 'issue-389-prepare-bed12-output' into version-2.2.4.

Fix #136 #395 #389 #397 #396 #385
@lucventurini lucventurini linked a pull request Apr 1, 2021 that will close this issue
lucventurini added a commit that referenced this issue Apr 6, 2021
Fix documentation and GHA tests.

Fix #385
Fix #389 
Fix #395 
Fix #396 
Fix #397
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants