Skip to content

Instantly share code, notes, and snippets.

@colindaven
Last active November 15, 2024 21:07
Show Gist options
  • Save colindaven/27f49a8e79fa384499c5f81b2fa888de to your computer and use it in GitHub Desktop.
Save colindaven/27f49a8e79fa384499c5f81b2fa888de to your computer and use it in GitHub Desktop.
Using Nextflow in Galaxy
# Using Nextflow in Galaxy
* Nextflow is the workflow management tool used widely in bioinformatics
* Galaxy is a server based GUI tool with a nice interface and is also used to start workflows
## Can it be done ?
* There are few reports online, but it is possible. eg https://galaxyproject.org/blog/2022-08-15-making-nextflow-work-with-galaxy-at-cfsan-fda/
* The main requirements:
* a) install Nextflow using a direct JAR download, not via conda. This may be because it collides with the internal Galaxy conda environments
* b) Output files directly to the Galaxy tool output dir directory (ie the current galaxy tool directory). It is not sufficient to write temporary files to nextflows' work directories. Use the nextflow publishDir directive.
An install script for getting the nextflow.jar file
```
#!/bin/bash
source /etc/profile
set -e
# Download nextflow jar directly - no conda needed
wget -q -c -nc https://github.com/nextflow-io/nextflow/releases/download/v23.04.2/nextflow-23.04.2-all
mv nextflow-23.04.2-all nextflow
chmod a+x nextflow*
echo Done
```
Then if you use a shell script to start your nextflow tool, you need to set up a system Java installation and tell bash where to find it.
This is just an example
run.sh script
```
#!/bin/bash
set -e
# Setup java env - in MO for omics user
unset JAVA_HOME
unset _JAVA_OPTIONS
unset JAVA_OPTIONS
export JAVA_HOME=/path/to/software/java/jdk/jdk-16/
# Run nextflow - note that nextflow is a self contained ca 95 MB JAR file
/path/to/nextflow run pipeline.nf -c $src/src/nextflow_large.config --ref_fasta $ref --outdir $output -with-timeline -with-report -with-dag EDTA_flowchart.dot -resume
```
Now you should be able to set up Galaxy using the tool xml to run the `run.sh` script here.
@colindaven
Copy link
Author

I have had a couple of questions about this - yes, it really does work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment