Documentation Lab
Collaboratory.Lab
The Lab gives EBRAINS users the ability to develop and run programs in the cloud from their web browser, without needing to install anything on their local machine. The Lab offers a readily installed programming environment and all of the EBRAINS tools and libraries which can be run from it. These programs will be run on the EBRAINS servers. The Lab gives users a JupyterLab user interface manage, edit and run their Jupyter Notebooks. A notebook is a programming environment which includes code (typically in Python), text for documentation purposes, and which stores the output of the previous execution of the code.
JupyterLab offers users a solution for reproducible science with a user-friendly interface for programming. It is a great way for trial and error, executing code segments and reordering them. EBRAINS tools come pre-installed in the Lab so users don't have to build and install tools on their own, and more importantly, the don't have to resolve potential incompatibility among versions of dependencies. Instead, users get to use the official releases of EBRAINS tools, which have been tested by the EBRAINS team, and which remain available in order to run older Jupyter Notebooks.
Users can access the Lab from the Lab navigation element in every collab that they are a member of (not from a public collab if they are not a member of its team). Once in the Lab, users see all of the files in the Drive of the corresponding collab (including the notebook files with the *.ipynb extension which can be opened in JupyterLab) and can navigate to the Drive of other collabs. More instructions can be found in the Tutorial section.
Container and Kernel
In the Lab, a user runs a notebook in a container, i.e. an environment isolated from other notebook executions of other users. All the notebooks of a user on a given server run in the same container. So files produced by one notebook can be accessed from another notebook but only by the same user. The context of a container is lost (including files stored in the container) when the container is reset.
The Drive is mounted in the container as an additional partition (at /shared) and files in the Drive are not affected by container resets.
The term "Kernel" in the Jupyter notebook environment indicates the language interpreter used for a given notebook. The Lab currently supports the Python 3 language as well as the R language and others may be added in the future.