Open standards and best practices

This page describes Ersilia's open standards and best practices principles

Ersilia is recognised as a Digital Public Good by the Digital Public Goods Alliance.

Open standards

We follow DPG Alliance tips for Open Standards. Below is a summary and proof of adherence to these standards.

Concept
Comment
Proof of Adherence

Accessibility, Security, Authentication and Authorization

Ersilia uses GitHub primarily. Accessibility, security and authentication/authorization is therefore reliant on GitHub solutions. We use DependaBot to monitor package dependencies and identify security liabilities. GitHub Secrets are used intensively in our workflows.

See our GitHub profile for more information. A summary of our GitHub security usage can be found here.

Internationalization

UTF-8 encodings is used in our scripts, most of them written in Python. Code is formatted with Black.

You can see our main codebase here.

Application Programming Interfaces (APIs)

OpenAPI, especially via Swagger UI as facilitated by BentoML.

Check one of our deployed models here.

Data Exchange and Configuration Formats

We primarily use YAML, JSON, CSV and TOML formats.

Setup file in TOML format. Metadata file in JSON. Workflow file in YAML. Data file in CSV.

Standard Content Formats and Multimedia

Content and multimedia are not our main assets. Internally, we store documents and media files with standard formats.

An example of a one-pager in PDF format can be found here. We store videos in MP4 format, and upload them to Youtube.

Best practices and principles

We follow DPG Alliance tips for Best Practices and Principles. Below is a summary and proof of adherence to these principles.

Concept
Comment
Proof of Adherence

ICT4D

Signed proof of endorsement available here.

User stories

We share community stories via our blog publication. We are active on social media and use GitHub Issues for the more technical aspects.

Ersilia stories in Medium. Activity in GitHub Issues. Other stories by the community: GDI example.

Change management and version control

We use all version control functionalities of GitHub.

Commit history of our main repository.

Test driven development using automated tests

Extensive and customized tests are performed, both for the main code and the models.

Testing module in the Ersilia CLI. Test workflow.

CI/CD

We use GitHub Actions for our CI/CD workflows, especially for model incorporation.

A subset of GitHub Actions can be found here.

Code review

We operate via pull requests and code reviewing is necessary previous to approval.

As an example, a video showing our model incorporation and reviewing process if found here.

Agile development

We use GitHub projects following the "Epic", "Sprint", etc. logic.

Agile template for defining projects.

Modularity and Maintainability, Reusability and extensibility

The Ersilia Model Hub is highly modular, with each model corresponding to one artifact stored in an isolated environment.

DockerHub model registry of Ersilia.

Component based architecture

By design, our architecture is component based.

Find a high-level diagram here.

Cloud Computing

We have infrastructure as service scripts for AWS. However, the Ersilia Model Hub is designed to be cloud-agnostic.

Example of AWS integration scripts for the Ersilia Model Hub.

AI/ML

We use ONNX format for interoperability as much as possible in our assets.

This in-house library (olinda) is specifically dedicated to distilling and converting models to ONNX.

Data Principles

We follow FAIR data principles in all our projects. Most of our projects are collaborative.

As an example, see our data sharing efforts as part of the Ligand Discovery project. These efforts were led by Ersilia.

User Interface and User Experience (UI/UX)

Graphical user interfaces and a simple command-line interface are available.

Ersilia CLI is our primary tool. For some selected models, we offer online deployment with a GUI.

Coding Styles and Standards

We follow PEP 8 and format with Black.

Black label in our README file.

Open Source

We are a fully open source project and are part of several open source communities.

Software Sustainability Institute cohort. Code for Science and Society cohort.

Last updated