Conversation
|
Are the value here pipeline wide, or specific to each genome being run? Is that why they need to be specific channel inpus? |
|
path(other_reads) doesn't appear to be used, so could be removed |
|
Looks like a specific build type, so I think seqera containers won't be able to handle that. Then we will need to do this: |
I think they are meant to be as realistic as possible for specific genomes. However, I ran all the tests locally and manually in a conda env using the same nf-core datasets I'm using in main.test.nf and using the same values, and they all gave me the expected outputs.
Yes, I was initially planning to integrate that as well, but then I decided to leave it. I forgot to remove it from the input tuple.
Thank you @chriswyatt1! 😊 |
|
OK, Just thinking to make this module more atomic, we should have these values as ext args. But if its helpful, to have this in a channel, I think it can be justified. If we think that any user would need to parse this information in for multiple genomes always, rather than set them generally in the modules.config say |
|
The only other thing of general comments, is about all the echo statements. Is this essential, or maybe we could move some of it into a script maybe. I will check out what other modules do in this case |
I think the ideal use would be to have a specific value per genome. Personally I'm using an average fixed value, as I often don't have information about the fragment size. Also from masurca documentation is not completely clear if they refer to the fragment size or the insert size. I don't know what would be more appropriate for the nf-core module, so I'll follow your suggestion 😊
Yes, so that's the main reason why I was so confused on how setting up this module. I asked in the community and they suggested to have a look to these two modules:
controlfreec also uses echo commands and I thought that was probably the easiest way to build the config for masurca. But happy to change if there is any better way to deal with this! 😊 |
|
I made a container, not sure it will work, but worth a try: quay.io/ecoflowucl/masurca so in the module you can just put ecoflowucl/masurca test with Dockerfile is here: https://github.com/Eco-Flow/docker-build/tree/main/masurca |
|
I think the container works. But yes, there are some output files that have time stamps and specific work dir paths, which will change on each run. So we need to make the nf-test more specific. Pick files that won't change assemble.sh generated by masurca:CONFIG_PATH="/Users/cwyatt/Downloads/modules-2/.nf-test/tests/aad480bb9b0561d1bd4bc958001b0e93/work/e4/920dca1167539f25218df125acaf84/test_masurca_config.txt" test-masurca.log: |
|
@LiaOb21 did you manage to test the container? I think it worked,,, but let me know if not, and I can look into it |
Hey @chriswyatt1 the container works! 😊 thank you so much!
We can proceed with this, in the meantime I'll try to set up the tests in a way that they can ignore the timestamps and so on |
|
@nf-core-bot fix linting please |
|
Hello @mashehu @maxulysse and @chriswyatt1! 😊 As regards the container, here is the conda recipe: https://github.com/bioconda/bioconda-recipes/blob/master/recipes/masurca/meta.yaml The reason why the biocontainer obtained from conda doesn't work is because some dependencies, like for example Also, I was having some linting issues: Then I saw this issue: #8716 And, finally, the tests. These are avoiding the md5 check because masurca works with absolute paths, and these paths change for every run making the md5 inconsistent. Please let me know if I used the right approach or if there is anything else to change. Thank you so much for your help! 😊 |
Co-authored-by: Famke Bäuerle <45968370+famosab@users.noreply.github.com>
|
Hi @mashehu, the bioconda recipe has been update and works. I tried to obtain the docker and singularity with wave cli using both pixi:v1 and default template: Again, the new conda recipe works, while both the docker versions (pixi and default) give me the error: Is there anything else I can try? I believe I added all the required dependencies to the bioconda recipe now. |
|
I forgot to add that I tested the docker container from bioconda fetch artifacts with same test data and masurca config files and it works without problems. |
| config_lines << "END" | ||
| config_lines << "" | ||
|
|
||
| // PARAMETERS section |
There was a problem hiding this comment.
It's been a very long time since I've used Masura so I don't remember much about what's required input. Can these be supplied through ext.args?
The idea would be that you would have
config_lines.addAll(args.collect{ key, value -> "${key}=${value}"})
So ext.args is a map in this case (for example like modules VIBER or MOBSTER).
The user would then supply lines through the ext.args
withName: 'MASURCA' {
ext.args = [
LHE_COVERAGE: 35,
SOAP_ASSEMBLY: 0,
]
There was a problem hiding this comment.
Hi @mahesh-panchal, I moved several arguments to inputs in this commit: LiaOb21@c3c4faf
I made this change because the linter was throwing an error, if I remember well it wanted those arguments documented in meta.yml, though I'm not entirely sure. I believe the map won't trigger the same issue, so we could try that approach.
However, regarding the Masurca inputs, the only guidance available on configuring it comes from comments within the config file itself. Unfortunately, those comments don't clearly specify which parameters are optional. In the past, I attempted to omit some non-required parameters based on the input files I was working with, but this caused the generation of assemble.sh to fail.
Masurca module [draft]
Supports assembly with Cabog assembly only. Flye and SOAPdenovo are not supported.
Supported reads:
Does not support other kinds of reads (Sanger, 454, etc) and synteny guided assembly with reference genome
PR checklist
Closes #10945
topic: versions- See version_topicslabelnf-core modules test <MODULE> --profile dockernf-core modules test <MODULE> --profile singularitynf-core modules test <MODULE> --profile condanf-core subworkflows test <SUBWORKFLOW> --profile dockernf-core subworkflows test <SUBWORKFLOW> --profile singularitynf-core subworkflows test <SUBWORKFLOW> --profile conda