UPHL-BioNGS / Cecret

Reference-based consensus creation
MIT License
44 stars 22 forks source link

Issue with nanopore workflow generating consensus genomes #331

Closed garfinjm closed 1 month ago

garfinjm commented 1 month ago

Hello!

I was testing out the nanopore option in cecret and ran into an issue where consensus genomes weren't being generated.

After some digging, it looks like there's an extra curly brace on this line that prevents medaka consensus from working: https://github.com/UPHL-BioNGS/Cecret/blob/a3b709bff23923ddeff311b39a9ad60dedc354c5/modules/artic.nf#L29

In the .command.err file for the artic process you get an error that looks like:

Running: medaka consensus --model r1041_e82_400bps_sup_v4.3.0} --threads 8 --chunk_len 800 --chunk_ovlp 400 --RG 2 artic/H24-03922_GXB03107_240517_1B.trimmed.rg.sorted.bam artic/H24-03922_GXB03107_240517_1B.2.hdf
Failed to interpret 'r1041_e82_400bps_sup_v4.3.0}' as a basecaller model.
Traceback (most recent call last):
  File "/opt/conda/envs/artic/lib/python3.9/site-packages/medaka/medaka.py", line 36, in __call__
    model_fp = medaka.models.resolve_model(val)
  File "/opt/conda/envs/artic/lib/python3.9/site-packages/medaka/models.py", line 46, in resolve_model
    raise ValueError(
ValueError: Model r1041_e82_400bps_sup_v4.3.0} is not a known model or existant file.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/conda/envs/artic/bin//medaka", line 11, in <module>
    sys.exit(main())
  File "/opt/conda/envs/artic/lib/python3.9/site-packages/medaka/medaka.py", line 801, in main
    args = parser.parse_args()
  File "/opt/conda/envs/artic/lib/python3.9/argparse.py", line 1825, in parse_args
    args, argv = self.parse_known_args(args, namespace)
  File "/opt/conda/envs/artic/lib/python3.9/argparse.py", line 1858, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/opt/conda/envs/artic/lib/python3.9/argparse.py", line 2049, in _parse_known_args
    positionals_end_index = consume_positionals(start_index)
  File "/opt/conda/envs/artic/lib/python3.9/argparse.py", line 2026, in consume_positionals
    take_action(action, args)
  File "/opt/conda/envs/artic/lib/python3.9/argparse.py", line 1935, in take_action
    action(self, namespace, argument_values, option_string)
  File "/opt/conda/envs/artic/lib/python3.9/argparse.py", line 1214, in __call__
    subnamespace, arg_strings = parser.parse_known_args(arg_strings, None)
  File "/opt/conda/envs/artic/lib/python3.9/argparse.py", line 1858, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/opt/conda/envs/artic/lib/python3.9/argparse.py", line 2067, in _parse_known_args
    start_index = consume_optional(start_index)
  File "/opt/conda/envs/artic/lib/python3.9/argparse.py", line 2007, in consume_optional
    take_action(action, args, option_string)
  File "/opt/conda/envs/artic/lib/python3.9/argparse.py", line 1935, in take_action
    action(self, namespace, argument_values, option_string)
  File "/opt/conda/envs/artic/lib/python3.9/site-packages/medaka/medaka.py", line 39, in __call__
    raise RuntimeError(msg.format(self.dest, str(e)))
RuntimeError: Error validating model from '--model' argument: Model r1041_e82_400bps_sup_v4.3.0} is not a known model or existant file..
Command failed:medaka consensus --model r1041_e82_400bps_sup_v4.3.0} --threads 8 --chunk_len 800 --chunk_ovlp 400 --RG 2 artic/H24-03922_GXB03107_240517_1B.trimmed.rg.sorted.bam artic/H24-03922_GXB03107_240517_1B.2.hdf

Taking out the extra curly brace seems to resolve the issue. Let me know if there's any other info I can provide!

erinyoung commented 1 month ago

Oh no! That's definitely a typo that I should remove ASAP! I should have a new release later today.

Thank you for catching this!

garfinjm commented 1 month ago

Awesome, thanks for your help!

erinyoung commented 1 month ago

This should be resolved with this PR: https://github.com/UPHL-BioNGS/Cecret/pull/332

Thank you, again, for pointing this out. minimap2 also had the same issue!!! (How embarrassing!)

erinyoung commented 1 month ago

Let me know if you run into other issues!!!

It IS possible that the container that Cecret uses for artic doesn't have that model. A new version of medaka came out recently.