Skip to content

ppaa23/chip-seq-ppaa23

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Testing assignment for Intelligent search through public ChIP-Seq data

Description

This is a Flask-based web application that provides ability to search for similar .bed files (similarity is based on Jaccard index) through database.

Installation

  1. Clone the repository:

    git https://github.com/ppaa23/chip-seq-ppaa23.git
    cd your-repo
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the application:

    python -m flask --app app/server.py run
  4. (Optional) Run the tests:

    python -m pytest

Requirements

  • Python 3.11+
  • Flask
  • Flask-SQLAlchemy
  • pytest
  • requests
  • flasgger

All the required packages (with the appropriate versions) are stated in the requirements.txt file.

Features

  • Logging: The app uses Singleton pattern to avoid multiple instances of logger.
  • Using database: The app uses SQLite database to store the .bed files which might be helpful in the future.
  • API Documentation: The app uses flasgger to provide API documentation (also for the future development).
  • Testing: The app uses pytest to test the application (including negative tests, e.g. 404 error).

Current version of the app is appropriate for development purposes only.

API Endpoints

  • / (GET, POST) - Displays the landing page with file upload and input N fields.
  • /results (GET) - Displays the results of the search.

Project structure

chip-seq-ppaa23/
│
├── app/
│   ├── instance/
│   │   └── chipseq_data.db   # Database with given .bed files (helpful for future development)
│   ├── static/               # Stores basic .css style
│   ├── templates/            # Contains .html files
│   ├── __init__.py
│   ├── jaccard.py            # Jaccard index calculation
│   ├── server.py             # Main application file
│   └── app.log
├── bed_data/                 # Hardcore storing .bed files for loading to chipseq_data.db
├── tests/
│   └── test_app.py           # Tests for the application
├── README.md
└── requirements.txt

It is important to mention that given above tree doesn't contain all the files (e.g. .gitignore, pytest.ini, etc.).

About

Repository for test assignment for Intelligent Search through public Chip-Seq data JetBrains Internship

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors