Skip to main content
. 2022 Jun 15;12(8):jkac146. doi: 10.1093/g3journal/jkac146

Fig. 1.

Fig. 1.

Diagram of QTLViewer data flow. (1) URL is parsed and, if not an API call, returns requested information (Flask is used as the web application framework and Bootstrap 4 as the interface framework). (2) If the requested URL is an API call, the tool either returns a cached version if found or proceeds to call the API (Celery is used as a distributed task queue). (3) R/RestRserve package routes the URL to the correct R method to be performed. (4) A compressed JSON object is returned and if the HTTP request creates several QTL API calls, Redis will store the intermediate result from each call until all of them are finished. (5) Results are cached, and data is returned to Flask/Python. (6) The request is complete. The headers are checked and, if the response needs to be compressed, Flask will compress the data and send to the end-user. The front-end user interface is now responsible for rendering the data.