SODAR Core is a framework for Django web application development.
It was conceived to facilitate the creation of scientific data management and analysis web applications, but can be useful in other contexts as well. In that it is similar to the CMS or ecommerce frameworks that you can find Awesome Django List but you will find the components/libraries provided in SODAR Core are more generic and in this reflecting the broader range of applications that we target.
SODAR Core is a framework for developing Django web applications. The following data management and analysis web applications are based on SODAR Core and have been made available as open source:
- SODAR is the system for Omics data access and retrieval. It is used to model study metadata and manage associated data files in different Omics research projects. SODAR Core was created by separating re-usable research project management components from the SODAR project. The source code of SODAR can be found on github.com/bihealth/sodar-server.
- VarFish is a web-based tool for the analysis of variants. It showcases how to build a complex data warehousing and data analysis web appliction using SODAR Core. More details are described in the NAR Web Server Issue publication (doi:10.1093/nar/gkaa241). The source code can be found on github.com/bihealth/varfish-server. A demo is available at varfish-demo.bihealth.org.
- Digestiflow is a web-based data system for the management and demultiplexing of Illumina Flow Cells. It further implements various tools for sanity checking Illumina sample sheets and quality control (e.g., comparing barcode adapter sequence and actual sequence present in the sequencer output). You can find out more in our publication in Bioinformatics (doi:10.1093/bioinformatics/btz850). The source code can be found on github.com/bihealth/digestiflow-server.
- Kiosc is a web application that allows to build scheduler Docker containers for "data science" apps and dashboards. You can find the source code on github.com/bihealth/kiosc.
SODAR Core can only be used from within Django projects. The easiest way to start out is following the For the Impatient section in our documentation.
The SODAR Core repository containes reusable and non-domain-specific apps making up the base of the SODAR system. These apps can be used for any Django application which wants to make use of the following features:
- Project-based user access control
- Dynamic app content management
- Advanced project activity logging
- Small file uploading and browsing
- Managing server-side background jobs
- Caching and aggregation of data from external services
- Tracking site information and statistics
- API token management
This repository provides the following installable Django apps:
- projectroles: Base app for project access management and dynamic app content management. All other apps require the integration of projectroles.
- adminalerts: Site app for displaying site-wide messages to all users.
- appalerts: Site app and backend for raising alerts to users from apps.
- bgjobs: Project app for managing background jobs.
- filesfolders: Storage and management of small files.
- siteinfo: Site app for displaying site information and statistics for administrators.
- sodarcache: Generic caching and aggregation of data referring to external services.
- timeline: Project app for logging and viewing project-related activity.
- tokens: Token management for API access.
- userprofile: Site app for viewing user profiles.
Also included are resources and examples for developing SODAR compatible apps.
The django-sodar-core
package can be installed into your Django project
from PyPI as follows. Note that it is strongly recommended to freeze the
dependency to a specific version, as this package is under active development
and breaking changes are possible.
pip install django-sodar-core==1.0.2
For installing a development version you can point your dependency to a specific commit ID in GitHub. Note that these versions may not be stable.
pip install -e git+https://github.com/bihealth/sodar-core.git@xxxxxxxxxxxxx#egg=django-sodar-core
Please note that This package installs a collection of Django apps to be used in a Django web site project. See SODAR Core documentation for detailed documentation on use, integration and development.
The branches of the SODAR Core repository are organized as follows:
main
- The latest stable release.
dev
- The current development branch. Most recent features go here, but stability is not guaranteed. Pull requests should always be based on this branch.
When including SODAR Core in your Django project, it is highly recommended to freeze your dependency to a specific release tag or commit ID. The project is under development and breaking changes may be introduced frequently.