BEDmaker GUI is a web-based tool developed by the Synnovis Bioinformatics teams at Guy's and St Thomas' NHS Foundation Trust. It allows users to generate BED (Browser Extensible Data) files using the Ensembl Tark and VEP RESTful APIs.
- Gene Symbols and Transcript IDs: When users input gene symbols or transcript IDs, the BED File Generator queries the Tark API to retrieve the corresponding transcript data, including exon boundaries and other relevant information.
- rsIDs and Genomic Coordinates: For rsIDs and specific genomic coordinates, the tools uses the VEP API to fetch detailed variant annotations and their genomic positions.
Figure 1: User interface of the BED File Generator showing the input form.
Figure 2: Results viewer displaying generated BED file data with options for customisation and download.
- Generate BED files from:
- Gene symbols
- Transcript IDs
- rsIDs
- Genomic coordinates
- Support for both GRCh37 (hg19) and GRCh38 (hg38) genome assemblies
- Integration with PanelApp for importing gene lists from predefined panels
- Custom padding to gene regions
- UTRs inclusion/exclusion
- Interactive results view with IGV (Integrative Genomics Viewer) integration
- User customisable BED file output in various formats (.bed, .data, .sambamba, .exomeDepth, .CNV)
- User authentication and authorisation system
- Python 3.9+
- Flask
- SQLite3
- Docker (optional, for containerized deployment)
-
Clone the repository:
git clone <repository_url> cd bed-file-generator
-
Set up a virtual environment:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install the required packages:
pip install -r requirements.txt
-
Set up environment variables: Create a
.env
file in the project root and add the following:BED_GENERATOR_FLASK_KEY=<your_secret_key> DATABASE_URL=sqlite:///instance/transcript.db
-
Initialize the database:
flask db init flask db migrate flask db upgrade
-
Create an initial admin user:
python create_user.py
Run the following command:
flask run
The application will be available at http://localhost:5000
.
For production deployment, it's recommended to use Gunicorn:
gunicorn -b 0.0.0.0:5000 run:app
-
Build the Docker image:
docker build -t bed-file-generator:1.0.0 .
-
Run the container:
docker run -p 5000:5000 -e BED_GENERATOR_FLASK_KEY=<your_secret_key> bed-file-generator:1.0.0
Alternatively, use Docker Compose:
docker-compose up
- Navigate to the application in your web browser.
- Log in using your credentials.
- Use the BED Generator form to input gene symbols, rsIDs, or coordinates.
- Select the desired genome assembly and adjust settings as needed.
- Generate the BED file and review the results in the interactive viewer.
- Download the BED file in your preferred format or submit it for review.
app/
: Main application packageauth/
: Authentication-related modulesbed_generator/
: Core BED file generation logicbed_manager/
: BED file management systemtemplates/
: HTML templatesstatic/
: Static files (CSS, JS, images)
config.py
: Configuration settingscreate_user.py
: Script to create admin users (can also be accessed via the web app)run.py
: Application entry point
- Developed by the Synnovis Bioinformatics Team @ Guy's and St Thomas' NHS Foundation Trust (2024)
- Uses IGV.js v3.0.8 for genomic visualization
- Integrates with PanelApp v2 API
- Utilises Ensembl VEP (v113) and TARK (v1.0.1) RESTful APIs for metadata