Open Standards and Best Practices
This page describes Ersilia's Open Standards and Best Practices Principles
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. |
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 | We endorse the Principles for Digital Development. | 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. |
Last updated