Skip to content

UK-SBCoA-EbbertLab/AD_RNAseq_dash_app

Repository files navigation

AD_RNAseq_dash_app

Overview

This repository hosts a Python Dash web application designed to visualize, download, and explore various datasets related to Alzheimer's disease research. The app provides interactive views for gene and RNA isoform expression data (long read RNAseq), genotyping data, technical sequencing/genotyping variables, demographics, and pathology data from post-mortem brain tissue. Its modular design—with multiple tabs for different types of data—ensures scalability and ease of maintenance.

Folder Structure

my_dash_app/
├── app/                    
│   ├── __init__.py         # Initializes the Dash app and sets up the Flask server.
│   ├── app.py              # The main entry point for launching the application.
│   ├── layout.py           # Defines the overall layout (header, footer, etc.) of the app.
│   ├── callbacks.py        # Contains global callback functions for app interactivity.
│   └── tabs/               # Contains individual modules for each tab in the app.
│       ├── tab1.py         # Tab 1:
│       ├── tab2.py         # Tab 2: 
│       ├── tab3.py         # Tab 3: 
│       └── ...             # Additional tabs as needed.
├── assets/                 # Static assets that Dash automatically serves.
│   ├── custom.css          # Custom CSS for styling the app.
│   ├── custom.js           # Optional JavaScript for additional interactivity.
│   └── images/             # Images, logos, and other media.
├── data/                   # Contains sample data files and database migration scripts.
│   └── migrations/         # SQL scripts for managing database schema migrations.
├── tests/                  # Unit and integration tests for the app.
│   └── test_app.py         # Test scripts for verifying app functionality.
├── config.py               # Configuration file for app settings and environment variables.
├── Procfile                # Heroku process file defining how to run the app (e.g., using gunicorn).
├── runtime.txt             # Specifies the Python version for the Heroku environment.
├── requirements.txt        # Lists all Python package dependencies.
├── README.md               # This file: documentation and project overview.
└── .gitignore              # Specifies files and directories to ignore in Git.

Explanation of Folders and Files

  • app/
    Contains the core application code:

    • __init__.py: Initializes the Dash application and configures the Flask server.
    • app.py: The main entry point that starts the app.
    • layout.py: Defines the app’s overall layout, including common elements like headers and footers.
    • callbacks.py: Houses the callback functions that control app interactivity.
    • tabs/: Splits the app into modular sections (tabs) for different data views:
      • tab1.py:
      • tab2.py:
      • tab3.py:
      • Additional tabs can be added as required.
  • assets/
    A special folder automatically served by Dash for static content:

    • custom.css: Custom styling to override or extend default styles.
    • custom.js: Optional JavaScript for added functionality.
    • images/: Stores images and logos used throughout the app.
  • data/
    Contains data files and scripts:

    • migrations/: SQL scripts for database schema changes, useful for versioning your PostgreSQL database.
  • tests/
    Contains testing scripts to ensure the app works as intended:

    • test_app.py: Unit and integration tests for verifying the layout, callbacks, and overall functionality.
  • config.py
    Central configuration for the app, managing settings and environment variables without hardcoding sensitive information.

  • Procfile
    Used by Heroku to determine how to run the application. For example:

    web: gunicorn app:server
    
  • runtime.txt
    Specifies the Python version (e.g., python-3.9.7) that Heroku should use when running the app.

  • requirements.txt
    Lists all Python dependencies so that the environment can be set up consistently.

  • README.md
    This documentation file provides an overview of the project, details on the folder structure, and setup instructions.

  • .gitignore
    Specifies which files and directories Git should ignore (e.g., virtual environments, temporary files).

Getting Started

Installation

  1. Clone the repository:
    git clone https://github.com/yourusername/my_dash_app.git
    cd my_dash_app

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages