Skip to content

PhenoPredict is an advanced application that analyzes genetic data and images to provide insights into an individual’s appearance, behavioral traits, ancestry, and potential health risks.

License

Notifications You must be signed in to change notification settings

iebgit/phenopredict

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PhenoPredict - Genetic and Image-Based Prediction Platform

Overview

PhenoPredict is an innovative web-based platform that allows users to upload genetic data or an image of a person's face to receive predictions about their appearance, behavior, ancestry, and potential health risks. The application is built using a microservices architecture to ensure scalability, flexibility, and ease of maintenance.

Table of Contents

  1. Project Structure
  2. Microservices Overview
  3. Technology Stack
  4. Getting Started
  5. Contributing
  6. License

Project Structure

The project is divided into several microservices, each handling a specific aspect of the application. These services communicate through an API Gateway and use a variety of technologies to perform their tasks.

project-root/
├── ui-service/                      # Frontend React application
├── auth-service/                    # User authentication and authorization service
├── genetic-data-processing-service/ # Genetic data parsing and processing
├── image-processing-service/        # Image analysis and facial recognition
├── prediction-service/              # Predictive modeling for appearance, behavior, and health
├── reporting-service/               # Report generation and data visualization
├── data-storage-service/            # Database and storage management
├── notification-service/            # Email and notification handling
└── api-gateway/                     # API Gateway for routing and communication

Microservices Overview

User Interface Service

  • Purpose: Provides the user interface for uploading genetic data and images, viewing predictions, and managing accounts.
  • Technology: React.js, Redux, Axios, Material-UI.

Authentication and Authorization Service

  • Purpose: Manages user authentication, registration, and authorization using JWT tokens.
  • Technology: Python, Django/Flask, OAuth2, JWT.

Genetic Data Processing Service

  • Purpose: Processes and analyzes uploaded genetic data, extracting relevant SNPs for predictions.
  • Technology: Python, Biopython.

Image Processing Service

  • Purpose: Analyzes uploaded images to extract facial features and perform ancestry, behavior, and health predictions.
  • Technology: Python, OpenCV, TensorFlow/PyTorch.

Prediction and Analysis Service

  • Purpose: Runs machine learning models to predict appearance, behavior, ancestry, and health risks based on genetic or image data.
  • Technology: Python, Scikit-learn, TensorFlow/PyTorch.

Reporting and Visualization Service

  • Purpose: Generates detailed reports and visualizations based on the analysis results.
  • Technology: Node.js/Python, D3.js, Plotly.

Data Storage Service

  • Purpose: Manages the storage of user data, including genetic data, images, and analysis results.
  • Technology: PostgreSQL, AWS S3, MongoDB/DynamoDB.

Notification Service

  • Purpose: Handles email and in-app notifications to inform users about the status of their data processing and results.
  • Technology: Node.js/Python, AWS SES, SendGrid.

API Gateway

  • Purpose: Routes requests from the frontend to the appropriate backend services and handles authentication and authorization.
  • Technology: AWS API Gateway, Kong, Express.js.

Technology Stack

  • Frontend: React.js, Redux, Material-UI
  • Backend: Python (Django/Flask), Node.js
  • Machine Learning: Scikit-learn, TensorFlow, PyTorch
  • Database: PostgreSQL, MongoDB, AWS S3
  • API Gateway: AWS API Gateway, Kong
  • Authentication: OAuth2, JWT
  • Containerization: Docker, Kubernetes
  • CI/CD: Jenkins, GitHub Actions, AWS CodePipeline
  • Hosting: AWS (EC2, S3, Lambda)

Getting Started

Prerequisites

  • Node.js: v12.x or later
  • Python: v3.7 or later
  • Docker: v19.x or later
  • Git: v2.x or later
  • AWS Account (optional for cloud deployment)

Installation

Clone the repository and navigate to the desired service directory:

git clone https://github.com/iebgit/phenopredict.git
cd phenopredict

Install dependencies for each service:

cd ui-service
npm install

cd ../auth-service
pip install -r requirements.txt

# Repeat for other services

Running the Services

  1. Start Docker: Ensure Docker is running on your machine.

  2. Start Services:

    • For each service, use Docker Compose to build and run the containers:

      docker-compose up --build
  3. Access the Application:

    • Navigate to http://localhost:3000 to access the User Interface Service.
    • The API Gateway will route requests to the appropriate backend services.

Contributing

Contributions are welcome! Please follow these steps to contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/YourFeature).
  3. Make your changes.
  4. Commit your changes (git commit -m 'Add YourFeature').
  5. Push to the branch (git push origin feature/YourFeature).
  6. Create a Pull Request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

PhenoPredict is an advanced application that analyzes genetic data and images to provide insights into an individual’s appearance, behavioral traits, ancestry, and potential health risks.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published