rrwick / Unicycler

hybrid assembly pipeline for bacterial genomes
GNU General Public License v3.0
535 stars 132 forks source link

spades --isolate automatically applied? #308

Open lxsteiner opened 1 year ago

lxsteiner commented 1 year ago

https://github.com/rrwick/Unicycler/blob/69e712eb95c4b9f8a46aade467260260a9ce7a91/unicycler/spades_func.py#L226

    command = [spades_path, '-o', spades_dir, '-k', kmer_string, '--threads', str(threads)]
    if i == 0:  # first k-mer
        command += ['--isolate']

Based on the code, it seems like the --isolate parameter is "automatically" applied at the start of the assembly command. Is there a reason why this is preferred or was set like this?

From the SPAdes manual:

--isolate
    This flag is highly recommended for high-coverage isolate and multi-cell Illumina data; improves the assembly quality and running time.
We also recommend to trim your reads prior to the assembly. More details can be found [here](http://cab.spbu.ru/benchmarking-tools-for-de-novo-microbial-assembly/).
This option is not compatible with --only-error-correction or --careful options.

Unfortunately, "More details..." doesn't really give me more details and doesn't mention the --isolate flag at all, only --careful which is how I incidently found that --isolate was applied at the beginning. I tried to pass --careful via --spades_options "--careful" and ran into an error:

== Error ==  you cannot specify --mismatch-correction or --careful in isolate mode!

I think that commenting out the line might just solve my issue with passing --careful, but I'm curious why --isolate was needed.

Thanks!

JustdukeP commented 1 year ago

Hi, I would also be interested in not using the --isolate option of spades.py automatically with Unicycler. Indeed, for some reads I get errors with Unicycler (Errors finished abnormally, OS return value: -9) and spades.py (Errors finished abnormally, OS return value: -6) maybe because of the --isolate option. Without the --isolate option, the assembly works with spades.py.

Unicycler v0.5.0 and Spades 3.15.5 in Conda

Regards,