Multi-omics (x) PipelinE for Dataset Integration and Translational Exploration (xPEDITE) is a web-based platform to generate interactive HTML data reports
The following are basic setup instructions.
xPEDITE uses several other images:
- Pathways Visualization (pathwaysviz): available on GitHub
- Follow build instructions: https://github.com/MD-Anderson-Bioinformatics/sbgnviz_pathway
- NG-CHM (ngchm): available from docker hub
- Will be pulled automatically by docker compose
Authentication is configured by a required JSON-formatted .authenticators file that
is mounted to the container at run time.
Example .authenticators for no authentication (where every user is 'Guest User'):
(note the ":" as part of the key):
{
"default:": "none"
}Example .authenticators for LDAP-JWT authentication
(note the ":" as part of the "default:" key):
{
"ldapjwt": {
"name": "ldapjwt",
"type": "ldapjwt",
"spec": {
"href": "https://<host name of LDAP-JWT server>/ldap-jwt/",
"clientID":"<client ID of LDAP-JWT server>"
}
},
"default:":"ldapjwt"
}There are two required environment variables related to this file: AUTHENTICATORS_PATH_HOST
(the path to .authenticators on the host machine) and AUTHENTICATORS_PATH (the path to .authenticators
inside the container). See defaults in docker-compose.yml.
If using LDAP-JWT authentication: set appropriate values for environment
variables LDAP_JWT_HOST and optional AUTHORIZED_GROUP before running docker compose.
Create the network, build images, and start containers:
docker network create xpedite-net
docker compose build
docker compose upVisit https://localhost:9433/xPEDITE/index. Fill out the form, and upload a pdata.csv file. Examples are provided in the test_data directory.
Upon form submission, a new study will be created. Each study has exactly one pdata.csv file, but can have multiple analyzed data files.
If using authentication, visit https://localhost:9433/xPEDITE/login to log in.
Visit https://localhost:9433/xPEDITE/admin to view a table of existing studies.
For a given study, click the 'Select' button to go to that study's page.
On that study's page, click the check box to upload an analyzed data file. Examples are provided in the test_data directory.
On that same study's page, select appropriate options from the rest of the dropdowns and click the 'Generate Report' button.
xPEDITE supports an optional custom post-processing script that runs automatically after a report is generated. This is useful for tasks such as sending notification emails, copying reports to an external location, or triggering downstream pipelines.
When a post-processing script is configured and present in the container, a Run custom post-processing step after report generation checkbox will appear on the report generation page. If checked, the script is executed after the report is saved.
The script receives the path to the report's metadata.json file as its first
argument. This file contains fields including studyNumber, reportName,
submitterEmail, pdataPath, analyzedDataPath, reportFolder, and studyFolder.
Progress and any output from the script are written to the report's logfile.txt
and displayed in the status area of the report generation page.
-
Write a post-processing script. The script must be executable and accept the path to
metadata.jsonas its first argument. Exit code0is treated as success; any other exit code is treated as failure. -
Mount the script into the container. In
docker-compose.yml, uncomment and update the optional volume line under thebackendservice:volumes: - ${POST_PROCESS_SCRIPT_HOST:-/path/to/post_process.sh}:${POST_PROCESS_SCRIPT:-/post_process.sh}:ro
-
Set the environment variables:
environment: POST_PROCESS_SCRIPT: ${POST_PROCESS_SCRIPT:-/post_process.sh} POST_PROCESS_TIMEOUT: ${POST_PROCESS_TIMEOUT:-5000}
If the script is not present at the configured path, the checkbox will not appear and no post-processing will run.
This project contains code and templates under multiple licenses:
- .Rmd, javascript, and HTML files: MIT
- scripts/pipeline_report_template.Rmd
- scripts/child_templates/*
- scripts/js/dynamicANOVA.js
- scripts/js/dynamicVolcano.js
- scripts/js/plotMetabolites.js
- scripts/js/Smooth.js
- module_sources/*
- Third-party libraries in /scripts/resources: as noted
- The license and copyright information is as shown in these files
- Everything else: GPLv2
- Mary Rohrdanz
- Jun Ma
- Thomas Laroche
- Bradley Broom
- Tod Casasent
- Chris Wakefiled