For participants of the FAIR Codeathon August 10-12 2024, we have compiled the parts of the full documentation that are likely to be most useful to you. As a very brief introduction.
o²S²PARC is a cloud-based computational platform for running code that is contained in various modules, called Services. These Services can be chained together which allows for information transfer (see Connecting Services) from one Service to another*. A project on o²S²PARC, which contains these chained pipelines is called a Study.
*Support for numerical, boolean, arrays, enums (e.g. categorical choices), string and file (any extension) data types is currently available.
Services come in generally two flavors: computational or interactive. Computational Services such as a Python Runner will allow setting of some parameters (e.g. input files) and will perform a computation with no user interaction required. Interactive Services only perform tasks with user interaction, as is the case for Services such as the JupyterLab. JupyterLab Services will allow you to write and execute code within the JupyterLab GUI, but as with all interactive Services, will not run automatically when a Study pipeline is launched. Computational Services, on the other hand, will automatically read all input parameters at runtime and execute the static code embedded inside them.
o²S²PARC supports sharing and duplication of Studies so that you may share projects with your team members. The typical steps are:
- Check that all the team members have an o²S²PARC account (let us know ASAP who needs an account)
- Create an Organization and add all the members of your team
If you want to collaborate on the same instance of a Study, you may then share it, though you should note that only one team member can access a Study at a time to avoid conflicting changes.
When you are happy with your Study and you'd like to share with all the o²S²PARC users (including the judges), please publish your Study as a Template.
You can import any type of file in o²S²PARC using the File Picker Service or Drag and Drop the file directly.
We have services where you can use JupyterLab with different kernels (e.g. Python, Octave, C++, R, Julia) and git integration. You can also customise your environment by installing custom packages.
Hint: for the purpose of the Codeathon, if you are developing Python (or Octave) code, the most useful service is called "JupyterLab Math (Python+Octave)"
If you prefer to have your Python code as a Computational Service (e.g. if you want to build a pipeline that doesn't require user interaction), you can use the o²S²PARC Python Runner.
If you have other custom code, it needs to be containerized (using Docker) to create a new Computational Service, we have a template library (cookiecutter) that can help you. If you need to create a new Service, please let us know ASAP through email or Slack to determine if we are able to meet Codeathon deadlines. Most probably, you can start by using the cookiecutter and sharing your prototype code on Github, that will be turned into a Service later on.
Extensive information about the o²S²PARC API is documented here and it was created to allow for running of pipelines through a Python client. In particular, the Basic Tutorial is a great place to start! Certain issues to keep in mind, however, are that:
- The API can be used to set parameters for, run and export the outputs of only Computational Services, not interactive ones
- The API can run full Studies containing Computational Services, but this feature is not documented yet. If you wish to use this feature, please let us know, so we can help you.
...and don't hesitate to reach out on Slack or e-mail if you have questions/problems.