{"openapi":"3.1.0","info":{"title":"NovaFlow API","version":"0.1.0"},"paths":{"/health":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Health Check","description":"Check if Fiber-seq service is available","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/ready":{"get":{"tags":["health"],"summary":"Readiness Check","description":"Readiness check for Kubernetes/ECS deployments.\nChecks if the application is ready to serve traffic.","operationId":"readiness_check_health_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/live":{"get":{"tags":["health"],"summary":"Liveness Check","description":"Liveness check for Kubernetes/ECS deployments.\nSimple check to verify the application process is alive.","operationId":"liveness_check_health_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/me":{"get":{"tags":["auth"],"summary":"Get Current User Info","description":"Get the current authenticated user's information.","operationId":"get_current_user_info_api_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSyncResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/auth/diagnostics":{"get":{"tags":["authentication"],"summary":"Auth Diagnostics","description":"Diagnostic endpoint to debug auth configuration - NO AUTH REQUIRED","operationId":"auth_diagnostics_api_auth_diagnostics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/workflows/suggest":{"post":{"tags":["workflows"],"summary":"Suggest Workflows","description":"Get AI-powered workflow suggestions based on uploaded files","operationId":"suggest_workflows_api_workflows_suggest_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSuggestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowSuggestion"},"title":"Response Suggest Workflows Api Workflows Suggest Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/test-llm":{"post":{"tags":["workflows"],"summary":"Test Llm","description":"Test LLM connectivity and responses","operationId":"test_llm_api_workflows_test_llm_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestLLMRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/agent/chat":{"post":{"tags":["workflows"],"summary":"Chat With Agent","description":"Chat with the BioFlow agent for bioinformatics assistance","operationId":"chat_with_agent_api_workflows_agent_chat_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentChatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/agent/suggest":{"post":{"tags":["workflows"],"summary":"Agent Suggest Workflows","description":"Get agent-powered workflow suggestions with detailed reasoning","operationId":"agent_suggest_workflows_api_workflows_agent_suggest_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSuggestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowSuggestion"},"title":"Response Agent Suggest Workflows Api Workflows Agent Suggest Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/available":{"get":{"tags":["workflows"],"summary":"Get Available Workflows","description":"Get list of all available workflow types","operationId":"get_available_workflows_api_workflows_available_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/compute/workflows":{"get":{"tags":["compute"],"summary":"List Workflows","description":"List available workflows on Galaxy","operationId":"list_workflows_api_compute_workflows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/workflows/execute":{"post":{"tags":["compute"],"summary":"Execute Workflow","description":"Execute a workflow on Galaxy","operationId":"execute_workflow_api_compute_workflows_execute_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/jobs/{job_id}/status":{"get":{"tags":["compute"],"summary":"Get Job Status","description":"Get status of a running job","operationId":"get_job_status_api_compute_jobs__job_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/compute/files/upload":{"post":{"tags":["compute"],"summary":"Upload File","description":"Upload file to Galaxy","operationId":"upload_file_api_compute_files_upload_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__compute__FileUploadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/literature/search":{"post":{"tags":["compute"],"summary":"Search Literature","description":"Search scientific literature using PubMed","operationId":"search_literature_api_compute_literature_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiteratureSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/literature/paper/{pubmed_id}":{"get":{"tags":["compute"],"summary":"Get Paper Details","description":"Get detailed information about a specific paper","operationId":"get_paper_details_api_compute_literature_paper__pubmed_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pubmed_id","in":"path","required":true,"schema":{"type":"string","title":"Pubmed Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/compute/methods/recommend":{"post":{"tags":["compute"],"summary":"Recommend Methods","description":"Get method recommendations for analysis type","operationId":"recommend_methods_api_compute_methods_recommend_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MethodRecommendationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/galaxy/server-info":{"get":{"tags":["compute"],"summary":"Get Galaxy Server Info","description":"Get Galaxy server information","operationId":"get_galaxy_server_info_api_compute_galaxy_server_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/galaxy/histories":{"get":{"tags":["compute"],"summary":"List Galaxy Histories","description":"List Galaxy histories","operationId":"list_galaxy_histories_api_compute_galaxy_histories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["compute"],"summary":"Create Galaxy History","description":"Create a new Galaxy history","operationId":"create_galaxy_history_api_compute_galaxy_histories_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/galaxy/tools/search":{"post":{"tags":["compute"],"summary":"Search Galaxy Tools","description":"Search Galaxy tools","operationId":"search_galaxy_tools_api_compute_galaxy_tools_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/galaxy/tools/run":{"post":{"tags":["compute"],"summary":"Run Galaxy Tool","description":"Run a specific Galaxy tool","operationId":"run_galaxy_tool_api_compute_galaxy_tools_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/health":{"get":{"tags":["compute"],"summary":"Health Check","description":"Check health of compute services","operationId":"health_check_api_compute_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/compute/literature/semantic-search":{"post":{"tags":["compute"],"summary":"Semantic Search Literature","description":"Search the paper embedding cache using semantic similarity.","operationId":"semantic_search_literature_api_compute_literature_semantic_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SemanticSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/literature/mesh-search":{"post":{"tags":["compute"],"summary":"Mesh Search Literature","description":"Semantic search filtered by MeSH terms.","operationId":"mesh_search_literature_api_compute_literature_mesh_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeshSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/literature/mesh-lookup":{"post":{"tags":["compute"],"summary":"Mesh Lookup","description":"Look up MeSH vocabulary terms for a query string.","operationId":"mesh_lookup_api_compute_literature_mesh_lookup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeshLookupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/compute/literature/cache-stats":{"get":{"tags":["compute"],"summary":"Literature Cache Stats","description":"Return statistics about the paper embedding cache.","operationId":"literature_cache_stats_api_compute_literature_cache_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/upload-expression-data":{"post":{"tags":["visualization"],"summary":"Upload Expression Data","description":"Upload and parse gene expression data file","operationId":"upload_expression_data_api_visualization_upload_expression_data_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_expression_data_api_visualization_upload_expression_data_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/create-heatmap":{"post":{"tags":["visualization"],"summary":"Create Heatmap","description":"Create expression heatmap","operationId":"create_heatmap_api_visualization_create_heatmap_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomPlotRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/create-pca":{"post":{"tags":["visualization"],"summary":"Create Pca Plot","description":"Create PCA plot","operationId":"create_pca_plot_api_visualization_create_pca_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomPlotRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/create-violin-plot":{"post":{"tags":["visualization"],"summary":"Create Violin Plot","description":"Create violin plot for specific genes","operationId":"create_violin_plot_api_visualization_create_violin_plot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneVisualizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/create-correlation":{"post":{"tags":["visualization"],"summary":"Create Correlation Plot","description":"Create sample correlation heatmap","operationId":"create_correlation_plot_api_visualization_create_correlation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__visualization__VisualizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/create-clustering":{"post":{"tags":["visualization"],"summary":"Create Clustering Plot","description":"Create clustering visualization","operationId":"create_clustering_plot_api_visualization_create_clustering_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClusteringRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/create-box-plot":{"post":{"tags":["visualization"],"summary":"Create Box Plot","description":"Create box plot for sample distributions","operationId":"create_box_plot_api_visualization_create_box_plot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomPlotRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/data-summary/{file_id}":{"get":{"tags":["visualization"],"summary":"Get Data Summary","description":"Get summary statistics for uploaded data","operationId":"get_data_summary_api_visualization_data_summary__file_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/visualization/clear-preprocessing-cache":{"post":{"tags":["visualization"],"summary":"Clear Preprocessing Cache","description":"Clear the preprocessing cache (admin/debug endpoint)","operationId":"clear_preprocessing_cache_api_visualization_clear_preprocessing_cache_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/available-plots":{"post":{"tags":["visualization"],"summary":"Get Available Plots","description":"Get list of available plot types based on data","operationId":"get_available_plots_api_visualization_available_plots_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__visualization__VisualizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/create-plot":{"post":{"tags":["visualization"],"summary":"Create Custom Plot","description":"Create any type of plot based on request","operationId":"create_custom_plot_api_visualization_create_plot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomPlotRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/create-dynamic-visualization":{"post":{"tags":["visualization"],"summary":"Create Dynamic Visualization","description":"Automatically create appropriate visualizations based on data type","operationId":"create_dynamic_visualization_api_visualization_create_dynamic_visualization_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DynamicVisualizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/get-recommendations":{"post":{"tags":["visualization"],"summary":"Get Visualization Recommendations","description":"Get visualization recommendations based on data type","operationId":"get_visualization_recommendations_api_visualization_get_recommendations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__visualization__VisualizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/recommend":{"post":{"tags":["visualization"],"summary":"Recommend Visualizations","description":"Simplified endpoint to get appropriate visualization types for a file","operationId":"recommend_visualizations_api_visualization_recommend_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__visualization__VisualizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/cache-stats":{"get":{"tags":["visualization"],"summary":"Get Cache Statistics","description":"Get cache statistics for debugging and monitoring","operationId":"get_cache_statistics_api_visualization_cache_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/clear-cache":{"post":{"tags":["visualization"],"summary":"Clear File Cache","description":"Clear the file cache (admin only or for debugging)","operationId":"clear_file_cache_api_visualization_clear_cache_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/data-info":{"post":{"tags":["visualization"],"summary":"Get Data Info","description":"Get detailed information about data columns and types","operationId":"get_data_info_api_visualization_data_info_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__visualization__VisualizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization/create-single-cell-visualization":{"post":{"tags":["visualization"],"summary":"Create Single Cell Visualization","description":"Create visualizations for single-cell data (MEX or H5AD format)","operationId":"create_single_cell_visualization_api_visualization_create_single_cell_visualization_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleCellVisualizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/visualization-public/upload-expression-data":{"post":{"tags":["visualization-public"],"summary":"Upload Expression Data","description":"Upload gene expression data file","operationId":"upload_expression_data_api_visualization_public_upload_expression_data_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_expression_data_api_visualization_public_upload_expression_data_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/visualization-public/available-plots":{"get":{"tags":["visualization-public"],"summary":"Get Available Plots","description":"Get list of available plot types","operationId":"get_available_plots_api_visualization_public_available_plots_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/visualization-public/create-plot":{"post":{"tags":["visualization-public"],"summary":"Create Plot","description":"Create a visualization plot","operationId":"create_plot_api_visualization_public_create_plot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__visualization_public__VisualizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/visualization-public/dynamic-plot":{"post":{"tags":["visualization-public"],"summary":"Create Dynamic Plot","description":"Create a plot using dynamic configuration","operationId":"create_dynamic_plot_api_visualization_public_dynamic_plot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DynamicPlotRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/visualization-public/cleanup/{file_path}":{"delete":{"tags":["visualization-public"],"summary":"Cleanup Uploaded File","description":"Clean up uploaded file after processing","operationId":"cleanup_uploaded_file_api_visualization_public_cleanup__file_path__delete","parameters":[{"name":"file_path","in":"path","required":true,"schema":{"type":"string","title":"File Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/visualization-public/nlp-visualization":{"post":{"tags":["visualization-public"],"summary":"Create Nlp Visualization","description":"Create visualization from natural language query","operationId":"create_nlp_visualization_api_visualization_public_nlp_visualization_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NLPVisualizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/visualization-public/visualization-suggestions":{"get":{"tags":["visualization-public"],"summary":"Get Visualization Suggestions","description":"Get suggested visualizations for uploaded data","operationId":"get_visualization_suggestions_api_visualization_public_visualization_suggestions_get","parameters":[{"name":"file_path","in":"query","required":true,"schema":{"type":"string","title":"File Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/files/health":{"get":{"tags":["files","files"],"summary":"Health Check","description":"Health check endpoint","operationId":"health_check_api_files_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/files/upload-url":{"post":{"tags":["files","files"],"summary":"Get Upload Url","description":"Generate presigned URL for file upload","operationId":"get_upload_url_api_files_upload_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__models_files__file_models__FileUploadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileUploadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/files/request-upload":{"post":{"tags":["files","files"],"summary":"Request Upload Alias","description":"Generate upload token for local file upload (replaces S3 presigned URL)","operationId":"request_upload_alias_api_files_request_upload_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__models_files__file_models__FileUploadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Request Upload Alias Api Files Request Upload Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/files/complete-multipart":{"post":{"tags":["files","files"],"summary":"Complete Multipart Upload","description":"Complete multipart upload","operationId":"complete_multipart_upload_api_files_complete_multipart_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteMultipartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileOperationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/files/confirm-upload":{"post":{"tags":["files","files"],"summary":"Confirm File Upload","description":"Confirm file upload and save metadata to project_files table","operationId":"confirm_file_upload_api_files_confirm_upload_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileOperationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/files/":{"get":{"tags":["files","files"],"summary":"List Files","description":"List user's files","operationId":"list_files_api_files__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["files","files"],"summary":"Delete File","description":"Delete a file\n\nRequest body should contain:\n- s3_key: The S3 key of the file to delete","operationId":"delete_file_api_files__delete","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileOperationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/files/download-url":{"post":{"tags":["files","files"],"summary":"Get Download Url","description":"Get presigned download URL for a file\n\nRequest body should contain:\n- s3_key: The S3 key of the file to download","operationId":"get_download_url_api_files_download_url_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Request"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileDownloadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/files/quota":{"get":{"tags":["files","files"],"summary":"Get Storage Quota","description":"Get user's storage quota information","operationId":"get_storage_quota_api_files_quota_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserStorageQuota"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/files/stream":{"post":{"tags":["files","files"],"summary":"Stream File","description":"Stream file content (useful for SSH integration)\n\nRequest body should contain:\n- s3_key: The S3 key of the file to stream","operationId":"stream_file_api_files_stream_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Request"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/files/process-aws-url":{"post":{"tags":["files","files"],"summary":"Process Aws Url","description":"Process a file from an AWS S3 or HTTPS URL","operationId":"process_aws_url_api_files_process_aws_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessAWSUrlRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessAWSUrlResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/files/upload-local":{"post":{"tags":["files","files"],"summary":"Upload File Local","description":"Direct file upload to local storage.\nUses upload_token for authentication (generated from /request-upload endpoint).","operationId":"upload_file_local_api_files_upload_local_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file_local_api_files_upload_local_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Upload File Local Api Files Upload Local Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bioinformatics/upload":{"post":{"tags":["bioinformatics"],"summary":"Upload Bioinformatics File","description":"Upload and parse a bioinformatics file","operationId":"upload_bioinformatics_file_api_bioinformatics_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_bioinformatics_file_api_bioinformatics_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bioinformatics/file-summary":{"get":{"tags":["bioinformatics"],"summary":"Get File Summary","description":"Get summary of an uploaded file","operationId":"get_file_summary_api_bioinformatics_file_summary_get","parameters":[{"name":"file_path","in":"query","required":true,"schema":{"type":"string","title":"File Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bioinformatics/parse-file":{"post":{"tags":["bioinformatics"],"summary":"Parse Bioinformatics File","description":"Parse and analyze a bioinformatics file","operationId":"parse_bioinformatics_file_api_bioinformatics_parse_file_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_parse_bioinformatics_file_api_bioinformatics_parse_file_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bioinformatics/supported-formats":{"get":{"tags":["bioinformatics"],"summary":"Get Supported Formats","description":"Get list of supported bioinformatics file formats","operationId":"get_supported_formats_api_bioinformatics_supported_formats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/bioinformatics/convert-to-visualization":{"post":{"tags":["bioinformatics"],"summary":"Convert To Visualization Format","description":"Convert parsed bioinformatics data to visualization format","operationId":"convert_to_visualization_format_api_bioinformatics_convert_to_visualization_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat":{"post":{"tags":["chat","chat"],"summary":"Chat","description":"Handle chat messages and generate AI responses","operationId":"chat_api_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/projects/":{"get":{"tags":["projects","projects"],"summary":"List Projects","description":"List all projects for the current user","operationId":"list_projects_api_projects__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Project"},"type":"array","title":"Response List Projects Api Projects  Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["projects","projects"],"summary":"Create Project","description":"Create a new project","operationId":"create_project_api_projects__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/projects/{project_id}":{"get":{"tags":["projects","projects"],"summary":"Get Project","description":"Get a specific project","operationId":"get_project_api_projects__project_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["projects","projects"],"summary":"Update Project","description":"Update a project","operationId":"update_project_api_projects__project_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["projects","projects"],"summary":"Delete Project","description":"Delete a project (cascades to files and conversations)","operationId":"delete_project_api_projects__project_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{project_id}/stats":{"get":{"tags":["projects","projects"],"summary":"Get Project Stats","description":"Get statistics for a specific project","operationId":"get_project_stats_api_projects__project_id__stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"detailed","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Detailed"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectStats"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{project_id}/analyses":{"get":{"tags":["projects","projects"],"summary":"List Project Analyses","description":"List analyses for a specific project with pagination\n\nArgs:\n    project_id: The project ID\n    current_user: The authenticated user\n    limit: Maximum number of analyses to return (default 50, max 100)\n    offset: Number of analyses to skip (for pagination)\n\nReturns:\n    List of analyses with limited fields for performance.\n    Large fields (results, error, config) are excluded from list view.","operationId":"list_project_analyses_api_projects__project_id__analyses_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/sync-user":{"post":{"tags":["auth"],"summary":"Sync User","description":"Sync the authenticated user from Clerk to our database.\nThis endpoint is called after Clerk authentication to ensure the user exists in our database.","operationId":"sync_user_api_auth_sync_user_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserSyncResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/conversations":{"get":{"tags":["conversations","conversations"],"summary":"Get Conversations","description":"Get all conversations for the current user","operationId":"get_conversations_api_conversations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ConversationResponse"},"type":"array","title":"Response Get Conversations Api Conversations Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["conversations","conversations"],"summary":"Create Conversation","description":"Create a new conversation","operationId":"create_conversation_api_conversations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/conversations/{conversation_id}":{"get":{"tags":["conversations","conversations"],"summary":"Get Conversation","description":"Get a specific conversation","operationId":"get_conversation_api_conversations__conversation_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/conversations/{conversation_id}/messages":{"get":{"tags":["conversations","conversations"],"summary":"Get Messages","description":"Get all messages for a conversation","operationId":"get_messages_api_conversations__conversation_id__messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MessageResponse"},"title":"Response Get Messages Api Conversations  Conversation Id  Messages Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["conversations","conversations"],"summary":"Create Message","description":"Create a new message in a conversation (user messages only)","operationId":"create_message_api_conversations__conversation_id__messages_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"content","in":"query","required":true,"schema":{"type":"string","title":"Content"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analyses/":{"get":{"tags":["analyses","analyses"],"summary":"List Analyses","description":"List all analyses for the current user or a specific project","operationId":"list_analyses_api_analyses__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Analysis"},"title":"Response List Analyses Api Analyses  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["analyses","analyses"],"summary":"Create Analysis","description":"Create a new analysis","operationId":"create_analysis_api_analyses__post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Analysis"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analyses/{analysis_id}":{"get":{"tags":["analyses","analyses"],"summary":"Get Analysis","description":"Get a specific analysis","operationId":"get_analysis_api_analyses__analysis_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"analysis_id","in":"path","required":true,"schema":{"type":"string","title":"Analysis Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Analysis"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["analyses","analyses"],"summary":"Update Analysis","description":"Update an analysis","operationId":"update_analysis_api_analyses__analysis_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"analysis_id","in":"path","required":true,"schema":{"type":"string","title":"Analysis Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Analysis"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["analyses","analyses"],"summary":"Delete Analysis","description":"Delete an analysis","operationId":"delete_analysis_api_analyses__analysis_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"analysis_id","in":"path","required":true,"schema":{"type":"string","title":"Analysis Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/submit":{"post":{"tags":["fiberseq","fiberseq"],"summary":"Submit Fiberseq Job","description":"Submit a BAM file for Fiber-seq processing\n\nArgs:\n    request: Contains BAM URL and processing parameters\n    \nReturns:\n    Job information including job_id and status","operationId":"submit_fiberseq_job_submit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiberseqSubmitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiberseqJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/status/{job_id}":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get Job Status","description":"Get the status of a Fiber-seq processing job (public endpoint - job IDs are UUIDs)","operationId":"get_job_status_status__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/manifest/{job_id}":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get Job Manifest","description":"Get the manifest for a completed Fiber-seq job (public endpoint - job IDs are UUIDs)","operationId":"get_job_manifest_manifest__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FiberseqManifest"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/region/{job_id}":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get Region Data","description":"Get Fiber-seq data for a specific genomic region\n\nArgs:\n    job_id: Job identifier\n    chrom: Chromosome name (e.g., \"chr1\")\n    start: Region start position\n    end: Region end position\n    tracks: Comma-separated list of tracks to retrieve\n    \nReturns:\n    BED features for the requested region and tracks","operationId":"get_region_data_region__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"chrom","in":"query","required":true,"schema":{"type":"string","title":"Chrom"}},{"name":"start","in":"query","required":true,"schema":{"type":"integer","title":"Start"}},{"name":"end","in":"query","required":true,"schema":{"type":"integer","title":"End"}},{"name":"tracks","in":"query","required":false,"schema":{"type":"string","default":"m6a,cpg,msp,nuc","title":"Tracks"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/summary/{job_id}":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get Summary Data","description":"Get a summary of Fiber-seq data with just statistics and first 1000 fibers\nfor quick initial display.\n\nReturns:\n    Summary statistics and initial fiber sample","operationId":"get_summary_data_summary__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/all-data/{job_id}":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get All Data","description":"Get Fiber-seq data for a job with pagination support\n\nArgs:\n    job_id: Job identifier\n    limit: Maximum number of fibers to return (default 10000)\n    offset: Number of fibers to skip (default 0)\n    include_modifications: Whether to include modification data (default True)\n    max_features_per_track: Maximum features per modification track (default 50000)\n\nReturns:\n    Paginated fiber and modification data for the chromosome","operationId":"get_all_data_all_data__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10000,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"include_modifications","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Modifications"}},{"name":"max_features_per_track","in":"query","required":false,"schema":{"type":"integer","default":50000,"title":"Max Features Per Track"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/data-range/{job_id}":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get Data Range","description":"Get the full data range for a FiberSeq job without loading all data\n\nReturns:\n    The chromosome and position range that contains data","operationId":"get_data_range_data_range__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/default-region/{job_id}":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get Default Region","description":"Get a default genomic region with good data coverage\n\nReturns:\n    Suggested region with reasonable feature density","operationId":"get_default_region_default_region__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/stats/{job_id}":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get Job Stats","description":"Get processing statistics for a Fiber-seq job","operationId":"get_job_stats_stats__job_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/job/{job_id}":{"delete":{"tags":["fiberseq","fiberseq"],"summary":"Delete Job","description":"Delete a Fiber-seq job and its associated data","operationId":"delete_job_job__job_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/qc-data/{job_id}":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get Qc Data","description":"Extract QC metrics from FiberSeq data for quality control plots.\nUses ft extract --all to get comprehensive statistics.\n\nReturns:\n    QC metrics including fiber lengths, nucleosome sizes, MSP sizes, and modification counts","operationId":"get_qc_data_qc_data__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/gene-annotations":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get Gene Annotations","description":"Get gene annotations for a specific genomic region\n\nArgs:\n    genome: Reference genome (e.g., 'hg38', 'mm10')\n    chromosome: Chromosome name (e.g., 'chr22')\n    start: Region start position\n    end: Region end position\n    detail_level: 'simple' for gene boundaries only, 'full' for transcript/exon structure\n    \nReturns:\n    List of genes with their positions (simple) or full transcript structure (full)","operationId":"get_gene_annotations_gene_annotations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"genome","in":"query","required":true,"schema":{"type":"string","title":"Genome"}},{"name":"chromosome","in":"query","required":true,"schema":{"type":"string","title":"Chromosome"}},{"name":"start","in":"query","required":true,"schema":{"type":"integer","title":"Start"}},{"name":"end","in":"query","required":true,"schema":{"type":"integer","title":"End"}},{"name":"detail_level","in":"query","required":false,"schema":{"type":"string","default":"full","title":"Detail Level"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/available-genomes":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Get Available Genomes","description":"Get list of available reference genomes","operationId":"get_available_genomes_available_genomes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/test":{"get":{"tags":["fiberseq","fiberseq"],"summary":"Test Endpoint","description":"Test endpoint to verify routes are working","operationId":"test_endpoint_test_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/use-cases":{"get":{"tags":["use-cases"],"summary":"Get Use Cases","description":"Get all available use cases","operationId":"get_use_cases_api_use_cases_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Use Cases Api Use Cases Get"}}}}}}},"/api/use-cases/{use_case_id}":{"get":{"tags":["use-cases"],"summary":"Get Use Case Details","description":"Get detailed information about a specific use case","operationId":"get_use_case_details_api_use_cases__use_case_id__get","parameters":[{"name":"use_case_id","in":"path","required":true,"schema":{"type":"string","title":"Use Case Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Use Case Details Api Use Cases  Use Case Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/use-cases/{use_case_id}/pipeline":{"get":{"tags":["use-cases"],"summary":"Get Use Case Pipeline","description":"Get recommended pipeline configuration for a use case","operationId":"get_use_case_pipeline_api_use_cases__use_case_id__pipeline_get","parameters":[{"name":"use_case_id","in":"path","required":true,"schema":{"type":"string","title":"Use Case Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Use Case Pipeline Api Use Cases  Use Case Id  Pipeline Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/use-cases/{use_case_id}/start":{"post":{"tags":["use-cases"],"summary":"Start Use Case Analysis","description":"Start analysis with use case sample data","operationId":"start_use_case_analysis_api_use_cases__use_case_id__start_post","parameters":[{"name":"use_case_id","in":"path","required":true,"schema":{"type":"string","title":"Use Case Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Start Use Case Analysis Api Use Cases  Use Case Id  Start Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/use-cases/{use_case_id}/sample-data":{"get":{"tags":["use-cases"],"summary":"Get Sample Data Info","description":"Get information about available sample data files","operationId":"get_sample_data_info_api_use_cases__use_case_id__sample_data_get","parameters":[{"name":"use_case_id","in":"path","required":true,"schema":{"type":"string","title":"Use Case Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Sample Data Info Api Use Cases  Use Case Id  Sample Data Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/use-cases/{use_case_id}/download/{file_name}":{"get":{"tags":["use-cases"],"summary":"Download Sample File","description":"Download a specific sample data file","operationId":"download_sample_file_api_use_cases__use_case_id__download__file_name__get","parameters":[{"name":"use_case_id","in":"path","required":true,"schema":{"type":"string","title":"Use Case Id"}},{"name":"file_name","in":"path","required":true,"schema":{"type":"string","title":"File Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/use-cases/init-sample-data":{"post":{"tags":["use-cases"],"summary":"Initialize Sample Data","description":"Initialize sample datasets for all use cases","operationId":"initialize_sample_data_api_use_cases_init_sample_data_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Initialize Sample Data Api Use Cases Init Sample Data Post"}}}}}}},"/api/use-cases/{use_case_id}/related-pipelines":{"get":{"tags":["use-cases"],"summary":"Get Related Pipelines","description":"Get related pipelines that can be used with this use case data","operationId":"get_related_pipelines_api_use_cases__use_case_id__related_pipelines_get","parameters":[{"name":"use_case_id","in":"path","required":true,"schema":{"type":"string","title":"Use Case Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Related Pipelines Api Use Cases  Use Case Id  Related Pipelines Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/analyze-files":{"post":{"tags":["agents","agents"],"summary":"Analyze Files","description":"Initial file analysis to start agent session","operationId":"analyze_files_api_agents_analyze_files_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeFilesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Analyze Files Api Agents Analyze Files Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/agents/message":{"post":{"tags":["agents","agents"],"summary":"Send Message","description":"Send message to agent","operationId":"send_message_api_agents_message_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__agents__SendMessageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Send Message Api Agents Message Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/agents/session/{session_id}":{"get":{"tags":["agents","agents"],"summary":"Get Session Info","description":"Get session information","operationId":"get_session_info_api_agents_session__session_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Session Info Api Agents Session  Session Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/session/{session_id}/status":{"get":{"tags":["agents","agents"],"summary":"Get Session Status","description":"Get session status only","operationId":"get_session_status_api_agents_session__session_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Get Session Status Api Agents Session  Session Id  Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/sessions":{"get":{"tags":["agents","agents"],"summary":"List Sessions","description":"List user's agent sessions","operationId":"list_sessions_api_agents_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Sessions Api Agents Sessions Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/agents/update-design":{"post":{"tags":["agents","agents"],"summary":"Update Experiment Design","description":"Update experiment design in session","operationId":"update_experiment_design_api_agents_update_design_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDesignRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Update Experiment Design Api Agents Update Design Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/agents/execute-pipeline":{"post":{"tags":["agents","agents"],"summary":"Execute Pipeline","description":"Execute pipeline in session context","operationId":"execute_pipeline_api_agents_execute_pipeline_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecutePipelineRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Execute Pipeline Api Agents Execute Pipeline Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/agents/tools":{"get":{"tags":["agents","agents"],"summary":"List Available Tools","description":"List available agent tools","operationId":"list_available_tools_api_agents_tools_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Available Tools Api Agents Tools Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/ai-chat/session/create":{"post":{"tags":["claude-chat","ai-chat"],"summary":"Create Session","description":"Create a new chat session.\n\nArgs:\n    request: Session creation parameters (project_id, title)\n    current_user: Authenticated user\n\nReturns:\n    Session information including session_id and WebSocket URL","operationId":"create_session_api_ai_chat_session_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Session Api Ai Chat Session Create Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/ai-chat/message":{"post":{"tags":["claude-chat","ai-chat"],"summary":"Send Message","description":"Send a message and get AI response (non-streaming).\nIf no session_id provided, creates a new session.","operationId":"send_message_api_ai_chat_message_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__routes__claude_chat__SendMessageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Send Message Api Ai Chat Message Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/ai-chat/session/{session_id}/upload":{"post":{"tags":["claude-chat","ai-chat"],"summary":"Upload Dataset","description":"Upload one or more datasets for analysis in the chat session.\n\nSupports: CSV, TSV, H5AD, HDF5, MEX, etc.","operationId":"upload_dataset_api_ai_chat_session__session_id__upload_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_dataset_api_ai_chat_session__session_id__upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Upload Dataset Api Ai Chat Session  Session Id  Upload Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-chat/session/{session_id}/suggestions":{"get":{"tags":["claude-chat","ai-chat"],"summary":"Get Suggestions","description":"Get AI-powered analysis suggestions based on the uploaded dataset.\nUses literature search to find best practices.","operationId":"get_suggestions_api_ai_chat_session__session_id__suggestions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Get Suggestions Api Ai Chat Session  Session Id  Suggestions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-chat/session/{session_id}/export":{"post":{"tags":["claude-chat","ai-chat"],"summary":"Export Session","description":"Export the entire session as a Jupyter notebook, Python script, or report.\n\nArgs:\n    session_id: The chat session ID\n    request: Export request with format (jupyter, python, html)\n    current_user: Authenticated user\n\nReturns:\n    File download response","operationId":"export_session_api_ai_chat_session__session_id__export_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-chat/session/{session_id}/report":{"get":{"tags":["claude-chat","ai-chat"],"summary":"Download Latest Report","description":"Download the latest PDF report for a session.\nGenerates the report if it does not already exist.","operationId":"download_latest_report_api_ai_chat_session__session_id__report_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-chat/session/{session_id}/files/{filename}":{"get":{"tags":["claude-chat","ai-chat"],"summary":"Download Generated File","description":"Download a generated file from the session workspace.\n\nArgs:\n    session_id: The chat session ID\n    filename: Name of the file to download\n    current_user: Authenticated user\n\nReturns:\n    File download response","operationId":"download_generated_file_api_ai_chat_session__session_id__files__filename__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-chat/session/{session_id}/history":{"get":{"tags":["claude-chat","ai-chat"],"summary":"Get Session History","description":"Get the full history of a chat session.\n\nReturns:\n    Session history including messages, code, and plots","operationId":"get_session_history_api_ai_chat_session__session_id__history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Session History Api Ai Chat Session  Session Id  History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-chat/sessions":{"get":{"tags":["claude-chat","ai-chat"],"summary":"List Sessions","description":"List all chat sessions for the current user.\n\nArgs:\n    project_id: Optional filter by project\n    limit: Maximum number of sessions to return\n    current_user: Authenticated user\n\nReturns:\n    List of session summaries","operationId":"list_sessions_api_ai_chat_sessions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Sessions Api Ai Chat Sessions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-chat/session/{session_id}":{"delete":{"tags":["claude-chat","ai-chat"],"summary":"Delete Session","description":"Delete a chat session.\n\nArgs:\n    session_id: The session ID to delete\n    current_user: Authenticated user\n\nReturns:\n    Success status","operationId":"delete_session_api_ai_chat_session__session_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Session Api Ai Chat Session  Session Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["claude-chat","ai-chat"],"summary":"Update Session","description":"Update a chat session (e.g., rename).\n\nArgs:\n    session_id: The session ID to update\n    request: Update parameters (title)\n    current_user: Authenticated user\n\nReturns:\n    Updated session information","operationId":"update_session_api_ai_chat_session__session_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Session Api Ai Chat Session  Session Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-chat/folder":{"post":{"tags":["claude-chat","ai-chat"],"summary":"Create Folder","description":"Create a new folder for organizing chat sessions.\n\nArgs:\n    request: Folder creation parameters (name)\n    current_user: Authenticated user\n\nReturns:\n    Created folder information","operationId":"create_folder_api_ai_chat_folder_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Folder Api Ai Chat Folder Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/ai-chat/folders":{"get":{"tags":["claude-chat","ai-chat"],"summary":"List Folders","description":"List all folders for the current user.\n\nReturns:\n    List of folders with id, name, and timestamps","operationId":"list_folders_api_ai_chat_folders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Folders Api Ai Chat Folders Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/ai-chat/folder/{folder_id}":{"patch":{"tags":["claude-chat","ai-chat"],"summary":"Update Folder","description":"Update a folder (e.g., rename).\n\nArgs:\n    folder_id: The folder ID to update\n    request: Update parameters (name)\n    current_user: Authenticated user\n\nReturns:\n    Updated folder information","operationId":"update_folder_api_ai_chat_folder__folder_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Folder Api Ai Chat Folder  Folder Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["claude-chat","ai-chat"],"summary":"Delete Folder","description":"Delete a folder and all chats inside it.\n\nArgs:\n    folder_id: The folder ID to delete\n    current_user: Authenticated user\n\nReturns:\n    Success status","operationId":"delete_folder_api_ai_chat_folder__folder_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"folder_id","in":"path","required":true,"schema":{"type":"string","title":"Folder Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Folder Api Ai Chat Folder  Folder Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-chat/session/{session_id}/move":{"patch":{"tags":["claude-chat","ai-chat"],"summary":"Move Session To Folder","description":"Move a chat session to a folder (or to root if folder_id is None).\n\nArgs:\n    session_id: The session ID to move\n    request: Move parameters (folder_id, or None for root)\n    current_user: Authenticated user\n\nReturns:\n    Success status","operationId":"move_session_to_folder_api_ai_chat_session__session_id__move_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveSessionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Move Session To Folder Api Ai Chat Session  Session Id  Move Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai-chat/session/{session_id}/usage":{"get":{"tags":["claude-chat","ai-chat"],"summary":"Get Session Usage Stats","description":"Return cumulative LLM usage stats for a session.","operationId":"get_session_usage_stats_api_ai_chat_session__session_id__usage_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow/pipelines/available":{"get":{"tags":["nextflow","nextflow"],"summary":"List Available Pipelines","description":"List all available Nextflow pipelines","operationId":"list_available_pipelines_api_nextflow_pipelines_available_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow/pipelines/{pipeline_id}/details":{"get":{"tags":["nextflow","nextflow"],"summary":"Get Pipeline Details","description":"Get detailed information about a specific pipeline","operationId":"get_pipeline_details_api_nextflow_pipelines__pipeline_id__details_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string","title":"Pipeline Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow/pipelines/{pipeline_id}/test-params":{"get":{"tags":["nextflow","nextflow"],"summary":"Get Test Parameters","description":"Get test parameters for a pipeline","operationId":"get_test_parameters_api_nextflow_pipelines__pipeline_id__test_params_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pipeline_id","in":"path","required":true,"schema":{"type":"string","title":"Pipeline Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow/pipelines/validate":{"post":{"tags":["nextflow","nextflow"],"summary":"Validate Pipeline Inputs","description":"Validate inputs for a pipeline","operationId":"validate_pipeline_inputs_api_nextflow_pipelines_validate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pipeline_id","in":"query","required":true,"schema":{"type":"string","title":"Pipeline Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Inputs"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow/pipelines/run":{"post":{"tags":["nextflow","nextflow"],"summary":"Run Pipeline","description":"Submit a Nextflow pipeline for execution","operationId":"run_pipeline_api_nextflow_pipelines_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/nextflow/runs/{run_id}/status":{"get":{"tags":["nextflow","nextflow"],"summary":"Get Run Status","description":"Get status of a pipeline run","operationId":"get_run_status_api_nextflow_runs__run_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow/runs/{run_id}/cancel":{"post":{"tags":["nextflow","nextflow"],"summary":"Cancel Run","description":"Cancel a running pipeline","operationId":"cancel_run_api_nextflow_runs__run_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow/runs/{run_id}/outputs":{"get":{"tags":["nextflow","nextflow"],"summary":"Get Run Outputs","description":"Get output files from a completed pipeline run","operationId":"get_run_outputs_api_nextflow_runs__run_id__outputs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow/runs/active":{"get":{"tags":["nextflow","nextflow"],"summary":"List Active Runs","description":"List all active pipeline runs for the current user","operationId":"list_active_runs_api_nextflow_runs_active_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/nextflow/runs/{run_id}/metrics":{"get":{"tags":["nextflow","nextflow"],"summary":"Get Resource Usage","description":"Get resource usage metrics for a pipeline run","operationId":"get_resource_usage_api_nextflow_runs__run_id__metrics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow/pipelines/search":{"get":{"tags":["nextflow","nextflow"],"summary":"Search Pipelines","description":"Search for pipelines by name or description","operationId":"search_pipelines_api_nextflow_pipelines_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","description":"Search query","title":"Query"},"description":"Search query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow/pipelines/stats":{"get":{"tags":["nextflow","nextflow"],"summary":"Get Pipeline Statistics","description":"Get statistics about available pipelines","operationId":"get_pipeline_statistics_api_nextflow_pipelines_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/nextflow-local/test-setup":{"post":{"tags":["nextflow-local","nextflow-local"],"summary":"Test Docker Setup","description":"Test if Docker container is properly set up","operationId":"test_docker_setup_api_nextflow_local_test_setup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/nextflow-local/fastqc":{"post":{"tags":["nextflow-local","nextflow-local"],"summary":"Run Fastqc","description":"Run FastQC analysis on FASTQ files","operationId":"run_fastqc_api_nextflow_local_fastqc_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FastQCRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow-local/salmon":{"post":{"tags":["nextflow-local","nextflow-local"],"summary":"Run Salmon","description":"Run Salmon quantification","operationId":"run_salmon_api_nextflow_local_salmon_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalmonRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow-local/nfcore":{"post":{"tags":["nextflow-local","nextflow-local"],"summary":"Run Nfcore Pipeline","description":"Run nf-core pipeline","operationId":"run_nfcore_pipeline_api_nextflow_local_nfcore_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NFCoreRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow-local/runs":{"get":{"tags":["nextflow-local","nextflow-local"],"summary":"List Runs","description":"List all pipeline runs","operationId":"list_runs_api_nextflow_local_runs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/nextflow-local/runs/{run_id}":{"get":{"tags":["nextflow-local","nextflow-local"],"summary":"Get Run Status","description":"Get status of a specific run","operationId":"get_run_status_api_nextflow_local_runs__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow-local/runs/{run_id}/outputs":{"get":{"tags":["nextflow-local","nextflow-local"],"summary":"Get Run Outputs","description":"Get output files from a run","operationId":"get_run_outputs_api_nextflow_local_runs__run_id__outputs_get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/nextflow-local/upload-fastq":{"post":{"tags":["nextflow-local","nextflow-local"],"summary":"Upload Fastq Files","description":"Upload FASTQ files for analysis","operationId":"upload_fastq_files_api_nextflow_local_upload_fastq_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_fastq_files_api_nextflow_local_upload_fastq_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stripe/create-checkout-session":{"post":{"tags":["stripe","stripe"],"summary":"Create Checkout Session","description":"Create a Stripe Checkout session for subscription signup.\nRequires authentication.","operationId":"create_checkout_session_api_stripe_create_checkout_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutSessionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/stripe/webhook":{"post":{"tags":["stripe","stripe"],"summary":"Handle Stripe Webhook","description":"Handle Stripe webhook events.\nPublic endpoint but signature verified.","operationId":"handle_stripe_webhook_api_stripe_webhook_post","parameters":[{"name":"Stripe-Signature","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stripe/subscription":{"get":{"tags":["stripe","stripe"],"summary":"Get Subscription","description":"Get current user's subscription information.\nReturns default free tier if not authenticated or on any error.","operationId":"get_subscription_api_stripe_subscription_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}}}}},"/api/stripe/sync-subscription":{"post":{"tags":["stripe","stripe"],"summary":"Sync Subscription","description":"Manually sync subscription status from Stripe.\nUseful as a fallback if webhooks fail or for recovery.","operationId":"sync_subscription_api_stripe_sync_subscription_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/api/stripe/create-portal-session":{"post":{"tags":["stripe","stripe"],"summary":"Create Portal Session","description":"Create a Stripe billing portal session for subscription management.\nRequires authentication and an existing Stripe customer.","operationId":"create_portal_session_api_stripe_create_portal_session_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"return_url","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/check-dormant-users":{"post":{"tags":["admin","admin"],"summary":"Check Dormant Users","description":"Check for dormant users and send re-engagement emails.\n\nDesigned to be called by an external cron job, e.g.:\n    curl -X POST -H \"X-Admin-Key: $ADMIN_API_KEY\" \\\n        https://api.novaflowapp.com/api/admin/check-dormant-users","operationId":"check_dormant_users_api_admin_check_dormant_users_post","parameters":[{"name":"x-admin-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/evaluations/evaluate":{"post":{"tags":["evaluations","evaluations"],"summary":"Trigger Evaluation","description":"Manually evaluate an AI generation against all criteria.\n\nRequires ADMIN_API_KEY in the X-Admin-Key header.","operationId":"trigger_evaluation_api_evaluations_evaluate_post","parameters":[{"name":"x-admin-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/evaluations/recent":{"get":{"tags":["evaluations","evaluations"],"summary":"List Recent Evaluations","description":"Return the most recent evaluation reports (up to `limit`).\n\nRequires ADMIN_API_KEY in the X-Admin-Key header.","operationId":"list_recent_evaluations_api_evaluations_recent_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"x-admin-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/evaluations/config":{"get":{"tags":["evaluations","evaluations"],"summary":"Get Eval Config","description":"Return current evaluation configuration.","operationId":"get_eval_config_api_evaluations_config_get","parameters":[{"name":"x-admin-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/upload":{"post":{"summary":"Upload Files","description":"Handle file uploads and detect file types","operationId":"upload_files_api_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_files_api_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/suggest-workflows":{"post":{"summary":"Suggest Workflows","description":"Use LLM to suggest appropriate workflows based on file types","operationId":"suggest_workflows_api_suggest_workflows_post","requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Files"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/start-analysis":{"post":{"summary":"Start Analysis","description":"Start a bioinformatics analysis workflow","operationId":"start_analysis_api_start_analysis_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analysis/{analysis_id}":{"get":{"summary":"Get Analysis Status","description":"Get the status of an analysis","operationId":"get_analysis_status_api_analysis__analysis_id__get","parameters":[{"name":"analysis_id","in":"path","required":true,"schema":{"type":"string","title":"Analysis Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pubmed/search":{"get":{"summary":"Search Pubmed","description":"Search PubMed for relevant articles","operationId":"search_pubmed_api_pubmed_search_get","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","title":"Query"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AgentChatRequest":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"AgentChatRequest"},"Analysis":{"properties":{"id":{"type":"string","title":"Id"},"project_id":{"type":"string","title":"Project Id"},"user_id":{"type":"string","title":"User Id"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status","default":"pending"},"data_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Type"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"results":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Results"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","project_id","user_id","name","created_at","updated_at"],"title":"Analysis"},"AnalysisCreate":{"properties":{"project_id":{"type":"string","title":"Project Id"},"name":{"type":"string","title":"Name"},"data_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Type"}},"type":"object","required":["project_id","name"],"title":"AnalysisCreate"},"AnalysisUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"data_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Type"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"results":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Results"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","title":"AnalysisUpdate"},"AnalyzeFilesRequest":{"properties":{"file_ids":{"items":{"type":"string"},"type":"array","title":"File Ids"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["file_ids"],"title":"AnalyzeFilesRequest"},"Body_parse_bioinformatics_file_api_bioinformatics_parse_file_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_parse_bioinformatics_file_api_bioinformatics_parse_file_post"},"Body_upload_bioinformatics_file_api_bioinformatics_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["file"],"title":"Body_upload_bioinformatics_file_api_bioinformatics_upload_post"},"Body_upload_dataset_api_ai_chat_session__session_id__upload_post":{"properties":{"files":{"items":{"type":"string","format":"binary"},"type":"array","title":"Files"}},"type":"object","required":["files"],"title":"Body_upload_dataset_api_ai_chat_session__session_id__upload_post"},"Body_upload_expression_data_api_visualization_public_upload_expression_data_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_expression_data_api_visualization_public_upload_expression_data_post"},"Body_upload_expression_data_api_visualization_upload_expression_data_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_expression_data_api_visualization_upload_expression_data_post"},"Body_upload_fastq_files_api_nextflow_local_upload_fastq_post":{"properties":{"files":{"items":{"type":"string","format":"binary"},"type":"array","title":"Files"}},"type":"object","required":["files"],"title":"Body_upload_fastq_files_api_nextflow_local_upload_fastq_post"},"Body_upload_file_local_api_files_upload_local_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"filename":{"type":"string","title":"Filename"},"file_size":{"type":"string","title":"File Size"},"upload_token":{"type":"string","title":"Upload Token"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["file","filename","file_size","upload_token"],"title":"Body_upload_file_local_api_files_upload_local_post"},"Body_upload_files_api_upload_post":{"properties":{"files":{"items":{"type":"string","format":"binary"},"type":"array","title":"Files"}},"type":"object","required":["files"],"title":"Body_upload_files_api_upload_post"},"ChatRequest":{"properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"message":{"type":"string","title":"Message"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["conversation_id","message"],"title":"ChatRequest"},"ChatResponse":{"properties":{"message":{"type":"string","title":"Message"},"message_id":{"type":"string","title":"Message Id"},"visualization":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Visualization"},"suggestions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Suggestions"}},"type":"object","required":["message","message_id"],"title":"ChatResponse"},"CheckoutSessionRequest":{"properties":{"tier":{"type":"string","title":"Tier"},"success_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success Url"},"cancel_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Url"}},"type":"object","required":["tier"],"title":"CheckoutSessionRequest"},"CheckoutSessionResponse":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"CheckoutSessionResponse"},"ClusteringRequest":{"properties":{"file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Path"},"file_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Id"},"n_clusters":{"type":"integer","title":"N Clusters","default":3}},"type":"object","title":"ClusteringRequest"},"CompleteMultipartRequest":{"properties":{"file_id":{"type":"string","title":"File Id"},"upload_id":{"type":"string","title":"Upload Id"},"s3_key":{"type":"string","title":"S3 Key"},"parts":{"items":{"additionalProperties":true,"type":"object"},"type":"array","minItems":1,"title":"Parts"}},"type":"object","required":["file_id","upload_id","s3_key","parts"],"title":"CompleteMultipartRequest","description":"Request model for completing multipart upload"},"ConversationCreate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","default":"New Conversation"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},"type":"object","title":"ConversationCreate"},"ConversationResponse":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"title":{"type":"string","title":"Title"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","user_id","title","created_at","updated_at"],"title":"ConversationResponse"},"CreateSessionRequest":{"properties":{"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","title":"CreateSessionRequest"},"CustomPlotRequest":{"properties":{"file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Path"},"file_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Id"},"plot_type":{"type":"string","title":"Plot Type"},"sample_groups":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Sample Groups"},"genes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Genes"},"max_genes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Genes","default":50},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"color_scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color Scheme"},"cluster_rows":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cluster Rows","default":true},"cluster_cols":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cluster Cols","default":true},"options":{"additionalProperties":true,"type":"object","title":"Options","default":{}}},"type":"object","required":["plot_type"],"title":"CustomPlotRequest"},"DynamicPlotRequest":{"properties":{"file_path":{"type":"string","title":"File Path"},"config":{"additionalProperties":true,"type":"object","title":"Config"}},"type":"object","required":["file_path","config"],"title":"DynamicPlotRequest"},"DynamicVisualizationRequest":{"properties":{"file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Path"},"file_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"max_plots":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Plots","default":3}},"type":"object","title":"DynamicVisualizationRequest"},"EvalRequest":{"properties":{"user_input":{"type":"string","title":"User Input"},"ai_output":{"type":"string","title":"Ai Output"},"model":{"type":"string","title":"Model","default":""},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"distinct_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Distinct Id"}},"type":"object","required":["user_input","ai_output"],"title":"EvalRequest","description":"Payload to manually trigger an evaluation."},"EvalResponse":{"properties":{"eval_id":{"type":"string","title":"Eval Id"},"overall_score":{"type":"number","title":"Overall Score"},"overall_passed":{"type":"boolean","title":"Overall Passed"},"results":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Results"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["eval_id","overall_score","overall_passed","results"],"title":"EvalResponse"},"ExecutePipelineRequest":{"properties":{"session_id":{"type":"string","title":"Session Id"},"pipeline_id":{"type":"string","title":"Pipeline Id"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","default":{}}},"type":"object","required":["session_id","pipeline_id"],"title":"ExecutePipelineRequest"},"ExportRequest":{"properties":{"format":{"type":"string","title":"Format","default":"jupyter"}},"type":"object","title":"ExportRequest"},"FastQCRequest":{"properties":{"input_files":{"items":{"type":"string"},"type":"array","title":"Input Files","description":"List of input FASTQ files"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Optional run ID"}},"type":"object","required":["input_files"],"title":"FastQCRequest","description":"Request model for FastQC analysis"},"FiberseqJobResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["job_id","status","created_at"],"title":"FiberseqJobResponse"},"FiberseqManifest":{"properties":{"job_id":{"type":"string","title":"Job Id"},"genome":{"type":"string","title":"Genome"},"chromosome":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chromosome"},"tracks":{"additionalProperties":{"type":"string"},"type":"object","title":"Tracks"},"stats":{"additionalProperties":true,"type":"object","title":"Stats"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["job_id","genome","tracks","stats","created_at"],"title":"FiberseqManifest"},"FiberseqSubmitRequest":{"properties":{"bam_url":{"type":"string","title":"Bam Url"},"genome":{"type":"string","title":"Genome","default":"hg38"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["bam_url"],"title":"FiberseqSubmitRequest"},"FileDownloadResponse":{"properties":{"download_url":{"type":"string","title":"Download Url"},"filename":{"type":"string","title":"Filename"},"size":{"type":"integer","title":"Size"},"content_type":{"type":"string","title":"Content Type"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["download_url","filename","size","content_type","expires_at"],"title":"FileDownloadResponse","description":"Response model for file download URL"},"FileListResponse":{"properties":{"files":{"items":{"$ref":"#/components/schemas/UserFile"},"type":"array","title":"Files"},"total_count":{"type":"integer","title":"Total Count"},"total_size":{"type":"integer","title":"Total Size"},"has_more":{"type":"boolean","title":"Has More","default":false},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["files","total_count","total_size"],"title":"FileListResponse","description":"Response model for file listing"},"FileOperationResult":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"errors":{"anyOf":[{"items":{"$ref":"#/components/schemas/FileValidationError"},"type":"array"},{"type":"null"}],"title":"Errors"}},"type":"object","required":["success"],"title":"FileOperationResult","description":"Model for file operation results"},"FileType":{"type":"string","enum":["FASTQ","FASTA","BAM","SAM","VCF","CSV","TSV","H5AD","GFF","GTF","Expression Matrix","QC Statistics","Unknown"],"title":"FileType"},"FileUploadResponse":{"properties":{"file_id":{"type":"string","title":"File Id"},"upload_type":{"$ref":"#/components/schemas/UploadType"},"s3_key":{"type":"string","title":"S3 Key"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"upload_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upload Id"},"part_urls":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Part Urls"},"part_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Part Size"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["file_id","upload_type","s3_key","expires_at"],"title":"FileUploadResponse","description":"Response model for file upload URL generation"},"FileValidationError":{"properties":{"field":{"type":"string","title":"Field"},"message":{"type":"string","title":"Message"},"code":{"type":"string","title":"Code"}},"type":"object","required":["field","message","code"],"title":"FileValidationError","description":"Model for file validation errors"},"FolderCreate":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"FolderCreate"},"FolderUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"FolderUpdate"},"GeneVisualizationRequest":{"properties":{"file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Path"},"file_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Id"},"genes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Genes"},"plot_type":{"type":"string","title":"Plot Type","default":"violin"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","title":"GeneVisualizationRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HistoryCreateRequest":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"HistoryCreateRequest"},"LiteratureSearchRequest":{"properties":{"query":{"type":"string","title":"Query"},"max_results":{"type":"integer","title":"Max Results","default":10}},"type":"object","required":["query"],"title":"LiteratureSearchRequest"},"MeshLookupRequest":{"properties":{"query":{"type":"string","title":"Query"},"max_terms":{"type":"integer","title":"Max Terms","default":5}},"type":"object","required":["query"],"title":"MeshLookupRequest"},"MeshSearchRequest":{"properties":{"query":{"type":"string","title":"Query"},"mesh_terms":{"items":{"type":"string"},"type":"array","title":"Mesh Terms"},"max_results":{"type":"integer","title":"Max Results","default":10},"threshold":{"type":"number","title":"Threshold","default":0.4}},"type":"object","required":["query","mesh_terms"],"title":"MeshSearchRequest"},"MessageResponse":{"properties":{"id":{"type":"string","title":"Id"},"conversation_id":{"type":"string","title":"Conversation Id"},"user_id":{"type":"string","title":"User Id"},"content":{"type":"string","title":"Content"},"role":{"type":"string","title":"Role"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","conversation_id","user_id","content","role","created_at"],"title":"MessageResponse"},"MethodRecommendationRequest":{"properties":{"analysis_type":{"type":"string","title":"Analysis Type"},"organism":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organism"},"data_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Type"}},"type":"object","required":["analysis_type"],"title":"MethodRecommendationRequest"},"MoveSessionRequest":{"properties":{"folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Id"}},"type":"object","title":"MoveSessionRequest"},"NFCoreRequest":{"properties":{"pipeline":{"type":"string","title":"Pipeline","description":"Pipeline name","default":"nf-core/rnaseq"},"input_samplesheet":{"type":"string","title":"Input Samplesheet","description":"Path to samplesheet CSV"},"params":{"additionalProperties":true,"type":"object","title":"Params","description":"Pipeline parameters"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Optional run ID"}},"type":"object","required":["input_samplesheet"],"title":"NFCoreRequest","description":"Request model for nf-core pipeline"},"NLPVisualizationRequest":{"properties":{"file_path":{"type":"string","title":"File Path"},"query":{"type":"string","title":"Query"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"}},"type":"object","required":["file_path","query"],"title":"NLPVisualizationRequest"},"NextflowExecutor":{"type":"string","enum":["local","awsbatch","k8s","porter"],"title":"NextflowExecutor","description":"Supported Nextflow executors"},"PipelineListResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"total_pipelines":{"type":"integer","title":"Total Pipelines"},"pipelines":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Pipelines"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categories"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","total_pipelines","pipelines","categories","error"],"title":"PipelineListResponse","description":"Response model for pipeline list"},"PipelineRunRequest":{"properties":{"pipeline_id":{"type":"string","title":"Pipeline Id","description":"Pipeline identifier (e.g., nf-core/rnaseq)"},"params":{"additionalProperties":true,"type":"object","title":"Params","description":"Pipeline parameters"},"profile":{"type":"string","title":"Profile","description":"Nextflow profile to use","default":"awsbatch"},"executor":{"$ref":"#/components/schemas/NextflowExecutor","description":"Execution backend","default":"awsbatch"},"test_mode":{"type":"boolean","title":"Test Mode","description":"Run with test data","default":false},"resume_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resume Run Id","description":"Resume from previous run"}},"type":"object","required":["pipeline_id"],"title":"PipelineRunRequest","description":"Request model for running a pipeline"},"PipelineStatusResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"details":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Details"},"logs":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logs"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","run_id","status","details","logs","error"],"title":"PipelineStatusResponse","description":"Response model for pipeline status"},"PortalSessionResponse":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"PortalSessionResponse"},"ProcessAWSUrlRequest":{"properties":{"url":{"type":"string","title":"Url"},"file_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Type"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"process_as_fiberseq":{"type":"boolean","title":"Process As Fiberseq","default":false}},"type":"object","required":["url"],"title":"ProcessAWSUrlRequest","description":"Request model for processing files from AWS URLs"},"ProcessAWSUrlResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Path"},"file_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Type"},"message":{"type":"string","title":"Message"},"processing_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Processing Type"}},"type":"object","required":["success","message"],"title":"ProcessAWSUrlResponse","description":"Response model for AWS URL processing"},"Project":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"user_id":{"type":"string","title":"User Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"settings":{"additionalProperties":true,"type":"object","title":"Settings","default":{}},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["id","name","user_id","created_at","updated_at"],"title":"Project"},"ProjectCreate":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"settings":{"additionalProperties":true,"type":"object","title":"Settings","default":{}}},"type":"object","required":["name"],"title":"ProjectCreate"},"ProjectStats":{"properties":{"file_count":{"type":"integer","title":"File Count"},"total_file_size":{"type":"integer","title":"Total File Size"},"conversation_count":{"type":"integer","title":"Conversation Count"},"message_count":{"type":"integer","title":"Message Count"},"analysis_count":{"type":"integer","title":"Analysis Count","default":0},"analyses_by_status":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Analyses By Status"},"last_activity":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity"}},"type":"object","required":["file_count","total_file_size","conversation_count","message_count"],"title":"ProjectStats"},"ProjectUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Settings"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"ProjectUpdate"},"SalmonRequest":{"properties":{"read1":{"type":"string","title":"Read1","description":"Path to read 1 FASTQ file"},"read2":{"type":"string","title":"Read2","description":"Path to read 2 FASTQ file"},"reference":{"type":"string","title":"Reference","default":"https://raw.githubusercontent.com/nf-core/test-datasets/rnaseq/reference/transcriptome.fasta"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id","description":"Optional run ID"}},"type":"object","required":["read1","read2"],"title":"SalmonRequest","description":"Request model for Salmon quantification"},"SemanticSearchRequest":{"properties":{"query":{"type":"string","title":"Query"},"max_results":{"type":"integer","title":"Max Results","default":10},"threshold":{"type":"number","title":"Threshold","default":0.5}},"type":"object","required":["query"],"title":"SemanticSearchRequest"},"SingleCellVisualizationRequest":{"properties":{"file_ids":{"items":{"type":"string"},"type":"array","title":"File Ids"},"plot_type":{"type":"string","title":"Plot Type"},"options":{"additionalProperties":true,"type":"object","title":"Options","default":{}},"mex_group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mex Group Id"},"preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Preview","default":false}},"type":"object","required":["file_ids","plot_type"],"title":"SingleCellVisualizationRequest"},"SubscriptionResponse":{"properties":{"tier":{"type":"string","title":"Tier"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"current_period_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Period End"},"customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Id"}},"type":"object","required":["tier","status","current_period_end","customer_id"],"title":"SubscriptionResponse"},"TestLLMRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"use_openai":{"type":"boolean","title":"Use Openai","default":true},"use_anthropic":{"type":"boolean","title":"Use Anthropic","default":true}},"type":"object","required":["prompt"],"title":"TestLLMRequest"},"ToolRunRequest":{"properties":{"tool_id":{"type":"string","title":"Tool Id"},"inputs":{"additionalProperties":true,"type":"object","title":"Inputs"},"history_id":{"type":"string","title":"History Id"}},"type":"object","required":["tool_id","inputs","history_id"],"title":"ToolRunRequest"},"ToolSearchRequest":{"properties":{"query":{"type":"string","title":"Query"}},"type":"object","required":["query"],"title":"ToolSearchRequest"},"UpdateDesignRequest":{"properties":{"session_id":{"type":"string","title":"Session Id"},"experiment_design":{"additionalProperties":true,"type":"object","title":"Experiment Design"}},"type":"object","required":["session_id","experiment_design"],"title":"UpdateDesignRequest"},"UpdateSessionRequest":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","title":"UpdateSessionRequest"},"UploadStatus":{"type":"string","enum":["pending","uploading","completed","failed"],"title":"UploadStatus"},"UploadType":{"type":"string","enum":["simple","multipart"],"title":"UploadType"},"UserFile":{"properties":{"id":{"type":"string","title":"Id"},"user_id":{"type":"string","title":"User Id"},"file_key":{"type":"string","title":"File Key"},"original_name":{"type":"string","title":"Original Name"},"size":{"type":"integer","title":"Size"},"mime_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mime Type"},"checksum":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checksum"},"upload_status":{"$ref":"#/components/schemas/UploadStatus","default":"pending"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"uploaded_at":{"type":"string","format":"date-time","title":"Uploaded At"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["user_id","file_key","original_name","size"],"title":"UserFile","description":"Model for user file metadata"},"UserStorageQuota":{"properties":{"user_id":{"type":"string","title":"User Id"},"used_bytes":{"type":"integer","title":"Used Bytes"},"quota_bytes":{"type":"integer","title":"Quota Bytes"},"file_count":{"type":"integer","title":"File Count"},"percentage_used":{"type":"number","title":"Percentage Used"}},"type":"object","required":["user_id","used_bytes","quota_bytes","file_count","percentage_used"],"title":"UserStorageQuota","description":"Model for user storage quota information"},"UserSyncResponse":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"type":"string","title":"Name"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"clerk_id":{"type":"string","title":"Clerk Id"},"clerk_organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Clerk Organization Id"}},"type":"object","required":["id","email","name","clerk_id"],"title":"UserSyncResponse","description":"Response model for user sync"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WorkflowExecutionRequest":{"properties":{"workflow_id":{"type":"string","title":"Workflow Id"},"inputs":{"additionalProperties":true,"type":"object","title":"Inputs","default":{}},"history_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"History Name"}},"type":"object","required":["workflow_id"],"title":"WorkflowExecutionRequest"},"WorkflowRequest":{"properties":{"workflow_id":{"type":"string","title":"Workflow Id"},"files":{"items":{"type":"string"},"type":"array","title":"Files"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","default":{}}},"type":"object","required":["workflow_id","files"],"title":"WorkflowRequest"},"WorkflowStep":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"estimated_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Estimated Time"}},"type":"object","required":["name","description"],"title":"WorkflowStep"},"WorkflowSuggestRequest":{"properties":{"files":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Files"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"}},"type":"object","required":["files"],"title":"WorkflowSuggestRequest"},"WorkflowSuggestion":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence"},"estimated_time":{"type":"string","title":"Estimated Time"},"steps":{"items":{"$ref":"#/components/schemas/WorkflowStep"},"type":"array","title":"Steps"},"required_files":{"items":{"$ref":"#/components/schemas/FileType"},"type":"array","title":"Required Files"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters","default":{}}},"type":"object","required":["id","name","description","confidence","estimated_time","steps","required_files"],"title":"WorkflowSuggestion"},"app__models_files__file_models__FileUploadRequest":{"properties":{"filename":{"type":"string","maxLength":255,"minLength":1,"title":"Filename"},"file_size":{"type":"integer","maximum":5368709120.0,"exclusiveMinimum":0.0,"title":"File Size"},"content_type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Content Type"},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["filename","file_size"],"title":"FileUploadRequest","description":"Request model for file upload URL generation"},"app__routes__agents__SendMessageRequest":{"properties":{"session_id":{"type":"string","title":"Session Id"},"message":{"type":"string","title":"Message"}},"type":"object","required":["session_id","message"],"title":"SendMessageRequest"},"app__routes__claude_chat__SendMessageRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"message":{"type":"string","title":"Message"},"dataset_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Path"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["message"],"title":"SendMessageRequest"},"app__routes__compute__FileUploadRequest":{"properties":{"file_path":{"type":"string","title":"File Path"},"history_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"History Id"}},"type":"object","required":["file_path"],"title":"FileUploadRequest"},"app__routes__visualization__VisualizationRequest":{"properties":{"file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Path"},"file_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Id"},"plot_type":{"type":"string","title":"Plot Type"},"options":{"additionalProperties":true,"type":"object","title":"Options","default":{}}},"type":"object","required":["plot_type"],"title":"VisualizationRequest"},"app__routes__visualization_public__VisualizationRequest":{"properties":{"file_path":{"type":"string","title":"File Path"},"plot_type":{"type":"string","title":"Plot Type"},"options":{"additionalProperties":true,"type":"object","title":"Options","default":{}}},"type":"object","required":["file_path","plot_type"],"title":"VisualizationRequest"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}