Skip to content

Start with SLIM

Adrià Antich edited this page Oct 16, 2024 · 13 revisions

Welcome to SLIM.

SLIM is a platform that allows you to run genomics pipelines with a Graphical User Interface (GUI). This documentation is addressed to the user that wants to analyse the data with the available modules but also to the developers and IT people that wants to install the container and/or develop new modules to expand the platform.

Disclaimer:

Before starting, SLIM is build in a docker/podman container. The installation and construction of this container can be time consuming and errors derived from requirements in some specific company certificates requires medium to advanced knowledge in IT. Even though, we encourage everybody to try to play with the program and report the issues and bugs found. Also remember that this new version has been updated and documented by a Biologist playing bioinformatics. Terminology, explanations and the software itself can be improved. Feel free to open an issue if something is not clear or things can be upgraded. Thus, be awared that this is a documentation from Biologists to Biologists and will try to remain User friendly as possible.

What is SLIM and how it works.

General concept

Imagine that you want to use metabarcoding tools in your experiments. You're knowledge from the sampling to the laboratory is bast and you have managed it very well. However, the black screen is terrifying and your colleagues have shown you their scripts and tried to teach them to you. However, they did not created the scripts to be shared, your time is limited and you have funnier things to do other than learning to code just for one part of the process. On the other hand, that friend of yours that have experience in bioinformatics, is dealing with hundreds of fires at the same time and the promise of processing your data is probably going to be delayed and placed in a long queue of important things to do.

If you are reading this and feel identified, maybe you are close to your solution!!!

SLIM is a platform that includes a client side (the window to which you interact with), like a website, and a server that will run your analysis. However, even though you can install and run SLIM in a desktop linux/MAC machine is possible, it will demand resources that may not be available in your personal computer. Then, installing SLIM in a HPC or computing server is recommended. Ask your IT responsible to install it for you and tell you how to access to the client.

SLIM follows this philosophy: you will upload your initial data, then you will select the modules that want to run and finally run them.

What is a Module

In SLIM a Module is referred to a unit of processes that can be run on your data. These Modules can be single software based of multiple processes including different software and/or formatting of your data. As User you will see these Modules as boxes with some fields to fill or select to specify the inputs, outputs and options. You can open many modules in the same session but be aware that these will run in order and it is very important that a Module have as input data that will be available once it starts. That means that if a Module requires a fasta file as input, this must be uploaded by the user or will be an output of previous Modules. In addition, is important a good design of your pipeline for an efficient processing of your data. i.e. If you want to run a dereplication of sequences and a taxonomic assignment, it is better to do it in this order, on the contrary a sequence repeated maybe thousands of times will be compared to the database for each copy while it could be done just one time for unique sequence.

What will happen when you use SLIM

Start a session

At the beginning, when you type in your browser the address to the port in that give you access to SLIM, you will be sending a request to start a session. In response, the client will show you a web page like this: You will see that the link address has also changed and now it has a token in it. Keep this link so it will be the one that will bring you to your session.

i.e.

from: http://localhost:8080

to: http://localhost:8080/?token=GxgG6vSsdgrNzYBJ7b99CsvDhmWM7C

Upload data

When you have started a session in SLIM, in the server side (see this as the computer that really is doing the hard work) a folder will be created. For the generic user this may seem unimportant, but for Module developers this might be useful. You can access to this folder from the server side using docker or podman exec (see podman documentation).

The files uploaded in SLIM can be called in Modules separately, however, when you want to run multiple files together, you may need a "joker". This joker is a regular expression which have the common part of the names of the files and an "*" for the unshared part:

files: file_a.txt file_b.txt

joker: file_*.txt

These jokers are generated by the Modules in the output but if you want them to be generated from multiple uploaded files, upload these files together in a .tar.gz compressed object.

Module run

Once the Modules are chosen and you start the analyis, the code of the Module will run. This is coded in the module script in the server folder. The scripts in the www folder are meant to handle the client part of the module with two scripts: the graphical interface with the html script and the specification of the different fields in the module in the js file. If you want to develope a module, but you are not used to code in JavaScript, you can develop your code in bash/R/python and call this script in the js file in server. (See How to write a module for further information)

Download

Once your analysis is finished you will be able to download the different ouputs using the download icon. In addition, while the Modules were running, a pipeline.conf file will be created with information in json format of all the Modules of the session with their inputs and outputs. This file that you can download with the Save button, can also be used in a new session to set the Modules automatically by using the Load button.