koina

Democratizing ML in proteomics

https://github.com/wilhelm-lab/koina

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.5%) to scientific vocabulary

Keywords

bioinformatics deep-learning machine-learning mass-spectrometry proteomics python
Last synced: 6 months ago · JSON representation

Repository

Democratizing ML in proteomics

Basic Info
  • Host: GitHub
  • Owner: wilhelm-lab
  • License: apache-2.0
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage: https://koina.wilhelmlab.org/
  • Size: 26.3 MB
Statistics
  • Stars: 42
  • Watchers: 8
  • Forks: 21
  • Open Issues: 8
  • Releases: 3
Topics
bioinformatics deep-learning machine-learning mass-spectrometry proteomics python
Created about 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License

README.md

Koina

Accessing a public server

cURL

Here is an example HTTP request using only cURL sending a POST request to with a JSON body. You can find examples for all available models at https://koina.wilhelmlab.org/.

bash curl "https://koina.wilhelmlab.org/v2/models/Prosit_2019_intensity/infer" \ --data-raw ' { "id": "LGGNEQVTR_GAGSSEPVTGLDAK", "inputs": [ {"name": "peptide_sequences", "shape": [2,1], "datatype": "BYTES", "data": ["LGGNEQVTR","GAGSSEPVTGLDAK"]}, {"name": "collision_energies", "shape": [2,1], "datatype": "FP32", "data": [25,25]}, {"name": "precursor_charges", "shape": [2,1], "datatype": "INT32", "data": [1,2]} ] }'

The output of an HTTP request is always a JSON object. The outputs key contains the outputs the model provides. In this case, there are three outputs: annotation, mz, and intensities. For other models, the keys change.

json { "id": "LGGNEQVTR_GAGSSEPVTGLDAK", "model_name": "Prosit_2019_intensity", "model_version": "1", "parameters": { "sequence_id": 0, "sequence_start": false, "sequence_end": false }, "outputs": [ { "name": "annotation", "datatype": "BYTES", "shape": [ 2, 174 ], "data": [ "y1+1", "y1+2", "y1+3", "b1+1", ... "y29+3", "b29+1", "b29+2", "b29+3" ] }, { "name": "mz", "datatype": "FP32", "shape": [ 2, 174 ], "data": [ 175.11895751953125, -1.0, -1.0, 114.09133911132812, ... -1.0, -1.0, -1.0, -1.0 ] }, { "name": "intensities", "datatype": "FP32", "shape": [ 2, 174 ], "data": [ 0.2463880330324173, -1.0, -1.0, 0.006869315169751644, ... -1.0, -1.0, -1.0, -1.0 ] } ] }

Python

For examples of how to access models using Python, you can check out our OpenAPI documentation .

Hosting your own server

Dependencies

Koina depends on docker and nvidia-container-toolkit. It has only been tested on Linux (Debian/Ubuntu) with Nvidia GPUs.

You can find an ansible script that installs all dependencies here.

How to run it

After installing the dependencies, you can pull the docker image and run it. If you have multiple GPUs installed on your server, you can choose which one is used by modifying --gpus '"device=0"'. The time it takes to pull the image depends on your connection speed. The first time, it might take up to 5 min. Due to the layered design of Docker images, updating to the latest version will likely (depending on the amount of changes) only take seconds. When the server is first started, Model files are downloaded from Zenodo. The duration of this also depends on connection speed but might take ~10 min as well. Once models are downloaded, the server startup takes ~2 minutes.

When using this docker image, you need to accept the terms in the NVIDIA Deep Learning Container License bash docker run \ --gpus '"device=0"' \ --shm-size 8G \ --name koina \ -p 8500-8502:8500-8502 \ -d \ --restart unless-stopped \ ghcr.io/wilhelm-lab/koina:latest

If you want to stay up to date with the latest version of Koina we suggest you also deploy containrrr/watchtower.

bash docker run \ -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ --restart unless-stopped \ containrrr/watchtower -i 30 --rolling-restart

Adding your own model

You can find a detailed description under docs/. If you run into any issues please open an issue on GitHub.

Owner

  • Name: Wilhelmlab
  • Login: wilhelm-lab
  • Kind: organization

GitHub Events

Total
  • Create event: 46
  • Release event: 2
  • Issues event: 17
  • Watch event: 15
  • Delete event: 24
  • Issue comment event: 32
  • Push event: 73
  • Pull request review comment event: 14
  • Pull request review event: 14
  • Pull request event: 90
  • Fork event: 13
Last Year
  • Create event: 46
  • Release event: 2
  • Issues event: 17
  • Watch event: 15
  • Delete event: 24
  • Issue comment event: 32
  • Push event: 73
  • Pull request review comment event: 14
  • Pull request review event: 14
  • Pull request event: 90
  • Fork event: 13

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 24
  • Total pull requests: 171
  • Average time to close issues: 29 days
  • Average time to close pull requests: 6 days
  • Total issue authors: 19
  • Total pull request authors: 19
  • Average comments per issue: 1.75
  • Average comments per pull request: 0.12
  • Merged pull requests: 135
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 15
  • Pull requests: 100
  • Average time to close issues: 18 days
  • Average time to close pull requests: 6 days
  • Issue authors: 12
  • Pull request authors: 13
  • Average comments per issue: 1.6
  • Average comments per pull request: 0.16
  • Merged pull requests: 69
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • yangkl96 (4)
  • daichengxin (2)
  • KaiLiCn (2)
  • jonasfoe (1)
  • heejongkim (1)
  • picciama (1)
  • nwamsley1 (1)
  • WassimG (1)
  • 5h4ng (1)
  • MatteoLacki (1)
  • trvadams (1)
  • tkschmidt (1)
  • tobiasko (1)
  • wenbostar (1)
  • ChrisMcGann (1)
Pull Request Authors
  • LLautenbacher (116)
  • jlapin1 (34)
  • Moomboh (12)
  • WassimG (10)
  • ErBarb (6)
  • arminsl (6)
  • jesseangelis (6)
  • cpanse (4)
  • rodvrees (4)
  • RobbinBouwmeester (4)
  • mwang87 (3)
  • victorgiurcoiu (2)
  • mshahneh (2)
  • RalfG (2)
  • yangkl96 (2)
Top Labels
Issue Labels
Pull Request Labels
patch (98) docs (59) python-client (24) minor (1) major (1)

Dependencies

Dockerfile docker
  • develop latest build
  • nvcr.io/nvidia/tritonserver 22.09-py3 build
  • python 3.8.16-slim build
.github/workflows/mergeCi.yaml actions
  • actions/checkout v3 composite
.github/workflows/release_docker.yml actions
  • K-Phoen/semver-release-action v1.3.1 composite
  • actions/checkout v3 composite
  • docker/build-push-action ad44023a93711e3deb337508980b4b5e9bcdc5dc composite
  • docker/login-action f054a8b539a109f9f41c372932f1ae047eff08c9 composite
  • docker/metadata-action 98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 composite
  • garygrossgarten/github-action-scp release composite
docker-compose.yml docker
web/package-lock.json npm
  • 1053 dependencies
web/package.json npm
  • @nuxtjs/eslint-config-typescript ^12.0.0 development
  • @nuxtjs/eslint-module ^4.1.0 development
  • @nuxtjs/tailwindcss ^6.7.0 development
  • @types/color ^3.0.3 development
  • @types/node ^18 development
  • @typescript-eslint/parser ^5.59.8 development
  • color ^4.2.3 development
  • eslint ^8.41.0 development
  • eslint-config-prettier ^8.8.0 development
  • nuxt ^3.5.2 development
  • prettier ^2.8.8 development
  • typescript ^5.0.4 development
  • vue-eslint-parser ^9.3.0 development
  • rapidoc ^9.3.4