Hi all, I would like to create a module for masurc...
# modules
l
Hi all, I would like to create a module for masurca, which is primarily a short reads assembler, that can do also hybrid assembly with long reads. I opened an issue: https://github.com/nf-core/modules/issues/10945 This tool would need a config file to be set up in order to receive the input reads: https://github.com/alekseyzimin/masurca#configuration Then it requires the command
masurca config_file
to be run, and this create a script called
assemble.sh
which is the script that runs the tool. Replacing the fields in the template config file shouldn't be difficult, but I was wondering how can I input a template to the module? Or is there any other way to achieve this?
s
I would first ask yourself whether you really want to go through the pain of dealing with a tool that doesn't accept command line arguments šŸ˜‰
Is the template file inside the container?
i.e. /install_path/sr_config_example.txt
Because if it is, then you can use that as your base for updating with the read positions. The tricky part will be supporting different parameters
m
I would implement this in a similar way to the QUARTONOTEBOOK module https://github.com/nf-core/modules/blob/master/modules/nf-core/quartonotebook/main.nf It supplies default parameters which can be overridden by input. It uses a HEREDOC to write out the params file (config file in your case).
m
Controlfreec
But @Rike Hanssen and I still have nightmares about it
l
Thank you all for your suggestions! šŸ™‚ Unfortunately the template is not in the environment, and I suspected it was going to be a headache! but I think I can take QUARTONOTEBOOK and Controlfreec as reference and see what I manage to do. I will probably as for some help! šŸ™‚
m
2 slack accounts?
l
Yes sorry, I have to solve this problem as one it's with my work account and one with my personal accountšŸ¤¦šŸ¼ā€ā™€ļø
šŸ‘ 1
m
good luck, and don't hesitate to shout if you need help
šŸ™šŸ¼ 1
this 1
l
Hey! Thank you so much again for your suggestions. I think I went as far as I possibly can and I drafted a PR: https://github.com/nf-core/modules/pull/11049 I resolved the config generation using
echo
commands. It looks sensible to me, but if you have any other suggestion I'd be happy to change. I tried all the combinations of commands locally first with the same nf-core datasets I used in the
main.nf.test
, using the conda package and they all worked, except for those including Flye and SOAPdenovo, which appear broken/not present in the environment. Therefore these are always set to 0 in the config file. I am also avoiding the use of "other reads", therefore the module supports only illumina, mate pair, and long reads. I think now I need help and I can't go ahead by myself: • conda tests work in the first run, but in the second run the MD5 of the outputs is different, and I can't figure out why • docker doesn't work. I tried multiple builds with wave without success. If you have the time to have a look and let me know if there is anything I can adjust that would be great. šŸ™‚ p.s. I know that I have to update the meta.yml and I didn't yet! I also need to do the linting