mouseaniridia / main.py
Arts-of-coding's picture
Upload 7 files
6f1f3b5 verified
raw
history blame
1.79 kB
import uvicorn
from fastapi import FastAPI
from fastapi.middleware.wsgi import WSGIMiddleware
from dash_plotly_QC_scRNA import app as dashboard1
#from app2 import app as dashboard2
#########################################################
import dash
from dash import dcc, html, Output, Input
import plotly.express as px
import dash_callback_chain
import yaml
import polars as pl
pl.enable_string_cache(False)
# Set custom resolution for plots:
config_fig = {
'toImageButtonOptions': {
'format': 'svg',
'filename': 'custom_image',
'height': 600,
'width': 700,
'scale': 1,
}
}
config_path = "./app/azure/config.yaml"
# Add the read-in data from the yaml file
def read_config(filename):
with open(filename, 'r') as yaml_file:
config = yaml.safe_load(yaml_file)
return config
config = read_config(config_path)
path_parquet = config.get("path_parquet")
conditions = config.get("conditions")
col_features = config.get("col_features")
col_counts = config.get("col_counts")
col_mt = config.get("col_mt")
# Import the data from one .parquet file
df = pl.read_parquet(path_parquet)
#df = df.rename({"__index_level_0__": "Unnamed: 0"})
# Setup the app
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
######################################################################
# Define the FastAPI server
app = FastAPI()
# Mount the Dash app as a sub-application in the FastAPI server
app.mount("/dashboard1", WSGIMiddleware(dashboard1.server))
#app.mount("/dashboard2", WSGIMiddleware(dashboard2.server))
# Define the main API endpoint
@app.get("/")
def index():
return "Hello"
# Start the FastAPI server
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0")