Open standards and best practices

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

circle-info

Ersilia is recognised as a Digital Public Goodarrow-up-right by the Digital Public Goods Alliance.

Open standards

We follow DPG Alliance tips for Open Standardsarrow-up-right. 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 profilearrow-up-right for more information. A summary of our GitHub security usage can be found herearrow-up-right.

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 herearrow-up-right.

Application Programming Interfaces (APIs)

OpenAPI, especially via Swagger UI as facilitated by BentoML.

Check one of our deployed models herearrow-up-right.

Data Exchange and Configuration Formats

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

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 herearrow-up-right. We store videos in MP4 format, and upload them to Youtubearrow-up-right.

Best practices and principles

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

Concept
Comment
Proof of Adherence

ICT4D

Signed proof of endorsement available herearrow-up-right.

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 Mediumarrow-up-right. Activity in GitHub Issuesarrow-up-right. Other stories by the community: GDI examplearrow-up-right.

Change management and version control

We use all version control functionalities of GitHub.

Commit historyarrow-up-right of our main repository.

Test driven development using automated tests

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

CI/CD

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

A subset of GitHub Actions can be found herearrow-up-right.

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 herearrow-up-right.

Agile development

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

Agile templatearrow-up-right 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.

DockerHubarrow-up-right model registry of Ersilia.

Component based architecture

By design, our architecture is component based.

Find a high-level diagram herearrow-up-right.

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 scriptsarrow-up-right for the Ersilia Model Hub.

AI/ML

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

This in-house library (olindaarrow-up-right) 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 Discoveryarrow-up-right 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 CLIarrow-up-right is our primary tool. For some selected models, we offer online deployment with a GUIarrow-up-right.

Coding Styles and Standards

We follow PEP 8 and format with Black.

Black label in our README filearrow-up-right.

Open Source

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

Software Sustainability Institute cohortarrow-up-right. Code for Science and Society cohortarrow-up-right.

Last updated

Was this helpful?