name "ABySS - de-novo genome assembly" icon "$BIRCH/dat/blreads/gsc-logo.png" tip "assemble a set of DNA reads into a genome, with no reference genome" #----------------------- # This menu does not implement the pe parameter of abyss-pe. An attempt was made # to do that in abyss.blmenu.with-pe. However, when there are two tabs in a tabset, # both having internal panels, the variables in the first tab fail to get substituted # on the shell line. This is not explicitly forbidden in the formal PCD definition, # but may not be fully implemented in BioLegato. # # In summary, BioLegato seems to be able to handle one tab having panels, but not # more than one may have panels. #----------------------- var "in1" type tempfile direction in format tsv save false tabset # - - - - - - - - - - - - - - - - - - - - - - - tab "Parameters" var "jobname" type text label "Name for assembly" default "abyss" var "klength" type number label "k-mer length" min 32 max 96 default 64 var "threads" type number label "Number of threads to use" min 1 max $BL_CORES_MAX default $BL_CORES_DEFAULT var "ADDITIONAL" type text label "Additional abyss-pe parameters (eg. p=0.95)" default "" var "outdir" type text label "Name for output directory" default "../reads.trimmed.corrected.abyss" var "email" type chooser label "Notify of completion by email" default 1 choices "Yes" "bl_email.py --recipient %ADDRESS% --subject 'ABySS completed' --message abyss.log;" "No" "" var "address" type text label " email address" default "$BL_EMAIL" # - - - - - - - - - - - - - - - - - - - - - - - tab "mate-pair reads" panel var "MPL1" type file label "Mate-pair 1 Left" var "MPR1" type file label "Right" panel var "MPL2" type file label "Mate-pair 2 Left" var "MPR2" type file label "Right" panel var "MPL3" type file label "Mate-pair 3 Left" var "MPR3" type file label "Right" panel var "MPL4" type file label "Mate-pair 4 Left" var "MPR4" type file label "Right" panel var "MPL5" type file label "Mate-pair 5 Left" var "MPR5" type file label "Right" panel var "MPL6" type file label "Mate-pair 6 Left" var "MPR6" type file label "Right" # - - - - - - - - - - - - - - - - - - - - - - - tab "long reads" var "long1" type file label "long read file 1" var "long2" type file label "long read file 2" var "long3" type file label "long read file 3" var "long4" type file label "long read file 4" var "long5" type file label "long read file 5" var "long6" type file label "long read file 6" # - - - - - - - - - - - - - - - - - - - - - - - tab "SE reads" var "SE1" type file label "SE read file 1" var "SE2" type file label "SE read file 2" var "SE3" type file label "SE read file 3" var "SE4" type file label "SE read file 4" var "SE5" type file label "SE read file 5" var "SE6" type file label "SE read file 6" panel # abyss-pe is a makefile. For whatever reasons, it simply will not allow command line substitution # of quoted lists eg. lib1='seqL.fq seqR.fq'. make seems to swallow the quotes, leaving things unquoted, # whenever quoted strings are passed to a script. The script itself must have the quotes. # I've tried all permutations I can think of to get # parameters to substitute into the abyss-pe command line, but it doesn't process the lists as the man page # implies. The hack is to create a bash script that hard wires in the file paths with quotes, and then # run the bash script. I wasted a full day on this! Sheeeesh!! var "Run" type button label "Run" # shell "echo %JOBNAME% %MPL1% %MPR1% %SE1% %SE2% %LONG1% %LONG2%" # shell "echo %MPL1%,%MPR1%'|'%MPL2%,%MPR2%'|'%MPL3%,%MPR3%'|'%MPL4%,%MPR4%'|'%MPL5%,%MPR5%'|'%MPL6%,%MPR6% > %in1%.mpfiles; echo %long1%'|'%long2%'|'%long3%'|'%long4%'|'%long5%'|'%long6% > %in1%.longfiles; echo %SE1%'|'%SE2%'|'%SE3%'|'%SE4%'|'%SE5%'|'%SE6% > %in1%.sefiles; (if test ! -e %OUTDIR% ; then (mkdir %OUTDIR%) fi); nice abyss-pe `bl_seqreadlist.py --tsv %in1% --mp %in1%.mpfiles --long %in1%.longfiles --s %in1%.sefiles --outtype abysscom` name=%JOBNAME% -j %THREADS% -o %OUTDIR% ; cd %OUTDIR%; %EMAIL% blreads " shell "echo %MPL1%,%MPR1%'|'%MPL2%,%MPR2%'|'%MPL3%,%MPR3%'|'%MPL4%,%MPR4%'|'%MPL5%,%MPR5%'|'%MPL6%,%MPR6% > %in1%.mpfiles; echo %long1%'|'%long2%'|'%long3%'|'%long4%'|'%long5%'|'%long6% > %in1%.longfiles; echo %SE1%'|'%SE2%'|'%SE3%'|'%SE4%'|'%SE5%'|'%SE6% > %in1%.sefiles; if test ! -e %OUTDIR% ; then (mkdir %OUTDIR%) fi; echo '#!/bin/bash' > %JOBNAME%.sh; echo abyss-pe j=%THREADS% name=%JOBNAME% k=%KLENGTH% %ADDITIONAL% `bl_seqreadlist.py --tsv %in1% --mp %in1%.mpfiles --long %in1%.longfiles --s %in1%.sefiles --outtype abysscom --fullpaths` >> %JOBNAME%.sh; chmod u+x %JOBNAME%.sh; mv %JOBNAME%.sh %OUTDIR%; rm %in1%.*; cd %OUTDIR%; ./%JOBNAME%.sh 2>abyss.log; %EMAIL% blreads " close true var "Manual" type button label "Manual" shell "chooseviewer.py http://manpages.ubuntu.com/manpages/bionic/en/man1/abyss-pe.1.html" close false