A command-line utility and Galaxy platform integration for the Reactome pathway analysis service. This project provides both a standalone Java CLI tool and Galaxy tool wrappers for performing pathway analysis using the Reactome database.
This application enables users to perform pathway analysis using Reactome's comprehensive biological pathway database. It supports multiple types of analysis including gene set analysis, tissue-specific analysis, and species comparison analysis. The tool can be used both as a standalone command-line application and as integrated tools within the Galaxy bioinformatics platform.
- Multiple Analysis Types: Supports gene, tissue, and species pathway analysis
- Galaxy Platform Ready: Includes complete Galaxy tool configurations with tests
- Comprehensive Input: Accepts various identifier formats and gene lists
- Comprehensive Output: Generates detailed pathway analysis results in multiple formats
- Gene Analysis: Analyze gene lists against Reactome pathways
- Tissue Analysis: Perform tissue-specific pathway analysis
- Species Analysis: Compare pathways across different species
- GSA Analysis: Gene Set Analysis using the ReactomeGSA R package
The Reactome CLI is a simple command line interface which wraps calls to the Reactome web apis written in Kotlin. It provides an easy entrypoint for workflow engines to call these apis, without needing to worry about constructing input HTTP requests and processing outputs.
- Java Development Kit (JDK): Version 11 or higher
- Apache Maven: For building the Java CLI
- Conda: For managing Galaxy tool dependencies
- Python: For Galaxy integration and testing
- Planemo: For Galaxy tool testing and linting
-
Clone the repository:
git clone https://github.com/reactome/reactome_galaxy.git cd reactome_galaxy -
Build the Java CLI:
mvn package -Dconda.location=/path/to/your/miniconda
-
Test the CLI build:
java -jar target/reactome-jar-with-dependencies.jar \ genes \ --reactome_url https://release.reactome.org \ --identifiers_file src/test/resources/uniprot_input.txt \ --pathways pathways_output.csv
- Make an issue and branch the branch correspond to the issue number.
- Make code changes to the Java source files or Galaxy tool configurations
- Test and build using Maven (automatically runs all tests and linting):
mvn package -Dconda.location=/path/to/your/miniconda
- Verify results the build will fail if any tests or linting checks fail
- Commit changes once all automated checks pass
- Create a PR and have someone review the changes
- Merge the PR
The project includes comprehensive testing for both components, integrated into the Maven build process:
All testing (Java CLI and Galaxy tools) is automated through Maven:
# This single command runs:
# - Java unit tests
# - Planemo lint for both Galaxy tools
# - Planemo test for both Galaxy tools
mvn package -Dconda.location=/path/to/your/minicondaThe Maven build automatically executes:
- Java CLI unit tests
planemo lintongalaxy/local_tools/reactomeplanemo testongalaxy/local_tools/reactomeplanemo lintongalaxy/local_tools/reactome-gsaplanemo testongalaxy/local_tools/reactome-gsa
reactome_galaxy/
├── src/ # Java source code
├── target/ # Maven build output
├── galaxy/
│ └── local_tools/
│ ├── reactome/ # Main Reactome Galaxy tool
│ └── reactome-gsa/ # ReactomeGSA R client tool
├── src/test/resources/ # Test data files
└── pom.xml # Maven configuration
The CLI supports multiple analysis types with comprehensive help documentation:
# View main help
java -jar target/reactome-jar-with-dependencies.jar --help
# View help for specific analysis type
java -jar target/reactome-jar-with-dependencies.jar genes --helpGene Analysis:
java -jar target/reactome-jar-with-dependencies.jar \
genes \
--reactome_url https://release.reactome.org \
--identifiers_file input_genes.txt \
--pathways results.csvTissue Analysis:
java -jar target/reactome-jar-with-dependencies.jar \
tissue \
--reactome_url https://release.reactome.org \
--identifiers_file src/test/resources/uniprot_input.txt \
--tissue liver \
--pathways tissue_results.csvThe project provides two Galaxy tools:
- reactome: Java CLI-based tool for gene, tissue, and species analysis
- reactome-gsa: R-based tool using the ReactomeGSA package for advanced gene set analysis
Both tools include complete Galaxy tool definitions with parameter validation, help documentation, and test cases.
Once installed in a Galaxy instance, the tools can be accessed through the Galaxy interface. Please refer to the help provided in the Galaxy tool for documentation on running the tool and the input and output data supported.
The Reactome Galaxy tools are distributed via bioconda, which handles dependency management for the Galaxy platform. The tools automatically install required dependencies when deployed in a Galaxy instance.
The conda packaging and integration with galaxy is tested as part of the integrated tests above, but to actually release to bioconda the recipes must be added to the central bioconda recipe repo. Follow these steps to release to bioconda:
- Read and get setup with the bioconda recipe repo using their contribution workflow
- Run
mvn clean package -Dconda.location=/path/to/your/minicondaand ensure all tests pass and a jar is built. - Create a release in GitHub from the release page. Add the local
[reactome-jar-with-dependencies.jar](target%2Freactome-jar-with-dependencies.jar)you've built to the release, named of the formatreacome-v{new_version}.jarwherenew_versionis the version to be released. - Update
bioconda-recipes/recipes/reactome-cliwith your new version, and follow their PR workflow to get it merged and released. - When complete you can now release a new version of the Galaxy XML to the toolshed.
Installation in Galaxy:
- Tools are installed through Galaxy's tool installation interface
- Dependencies are automatically resolved via Conda
- No manual dependency installation required
The tools are available through the Galaxy ToolShed, the official repository for Galaxy tools:
ToolShed Distribution:
Both tools are packages and distributed together in the central toolshed. Currently, distribution is a manual process. New revisions can be released to the toolshed by following the following steps:
- Update the tool versions in reactome.xml and reactome_gsa.xml
- If the tool requires a new version of CLI, you must first release to bioconda by following the bioconda packaging above. Then update the dependency in reactome.xml
planemo shed_update --shed_target toolshedfrom thegalaxy/local_toolsdirectory.
When installing the Reactome tools in a Galaxy instance:
- HTML Rendering: Ensure tools are configured for "HTML Rendered" output in Admin → Manage Allowlist
- Dependencies: Conda must be properly configured for automatic dependency resolution
- Testing: Run the included test cases to verify proper installation
For any questions or issues with running these tools contact Reactome HelpDesk
- ReactomeGSA: R package for gene set analysis
- Reactome: Main Reactome pathway database
- Galaxy Project: Open source bioinformatics platform