@Article{Kumar-tool-prediction-galaxy-2021, author = {Anup Kumar and Helena Rasche and Bj\"orn A. Gr\"uning and Rolf Backofen}, title = {Tool recommender system in Galaxy using deep learning}, journal = {GigaScience}, year = {2021}, volume = {10}, issn = {2047-217X}, number = {1}, note = {giaa152}, url = {https://doi.org/10.1093/gigascience/giaa152}, eprint = {https://academic.oup.com/gigascience/article-pdf/10/1/giaa152/35531816/giaa152.pdf}, doi = {10.1093/gigascience/giaa152}, abstract = "{Background: Galaxy is a web-based and open-source scientific data-processing platform. Researchers compose pipelines in Galaxy to analyse scientific data. These pipelines, also known as workflows, can be complex and difficult to create from thousands of tools, especially for researchers new to Galaxy. To help researchers with creating workflows, a system is developed to recommend tools that can facilitate further data analysis. Findings: A model is developed to recommend tools using a deep learning approach by analysing workflows composed by researchers on the European Galaxy server. The higher-order dependencies in workflows, represented as directed acyclic graphs, are learned by training a gated recurrent units neural network, a variant of a recurrent neural network. In the neural network training, the weights of tools used are derived from their usage frequencies over time and the sequences of tools are uniformly sampled from training data. Hyperparameters of the neural network are optimized using Bayesian optimization. Mean accuracy of 98 percent in recommending tools is achieved for the top-1 metric. Conclusions: The model is accessed by a Galaxy API to provide researchers with recommended tools in an interactive manner using multiple user interface integrations on the European Galaxy server. High-quality and highly used tools are shown at the top of the recommendations. The scripts and data to create the recommendation system are available under MIT license at https://github.com/anuprulez/galaxy_tool_recommendation.}", user = {miladim} }