Skip to content

Commit

Permalink
Enhance readme
Browse files Browse the repository at this point in the history
  • Loading branch information
oeway committed Sep 2, 2024
1 parent 3c685b1 commit dda6706
Showing 1 changed file with 30 additions and 20 deletions.
50 changes: 30 additions & 20 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,48 +10,58 @@ Recognizing the paramount importance of data privacy and the need for scalable s

BioEngine stands as a beacon for developers and researchers alike, providing an accessible gateway to the forefront of AI-powered bioimage analysis. By simplifying complex processes and fostering an environment of innovation, BioEngine is not just a tool but a partner in advancing the boundaries of bioimage research.

## Installation
## BioEngine Apps: Extending BioEngine's Capabilities

You can setup the BioEngine worker on your own HPC by following the instructions in the [BioEngine HPC worker](./bioengine-hpc-worker.md) guide.
### What Are BioEngine Apps?

## Using the BioEngine
BioEngine Apps are specialized applications designed to leverage the full power of the BioEngine platform. These apps are divided into two categories:
- **UI Apps**: User-facing applications that provide interactive interfaces for data upload, parameter configuration, and result visualization. These apps are typically developed using web technologies such as ImJoy, React, or Vue.js, and run directly in the user's web browser.
- **Compute Apps**: Backend services that handle the heavy computational tasks, such as AI model inference, training, and data processing. Compute Apps can be deployed in cloud environments or run on local workstations with GPU support, depending on the computational requirements.

### How to Develop BioEngine Apps

You can access the BioEngine directly from the [BioImage.IO website](https://bioimage.io), for most of the models, you will find a test run button to execute it with your own images.
Developing BioEngine Apps is a straightforward process that allows you to create both UI and Compute Apps to extend the functionality of the BioEngine platform. Here’s how you can get started:

1. **UI Apps Development**:
- UI Apps are designed to provide an interface for users to interact with the BioEngine’s backend services. You can use web development frameworks like ImJoy, React, or Vue.js to build these applications.
- To connect your UI App with BioEngine services, you can use the `hypha-rpc` library, which facilitates real-time communication between the UI and backend services.
- For more detailed steps and code examples, refer to the [BioEngine Apps Development Documentation](./bioengine-apps.md).

2. **Compute Apps Development**:
- Compute Apps handle the backend processing tasks such as AI model inference, data analysis, and more. These apps can either be developed as services running in independent containers or executed directly on local workstations with GPU support.
- To contribute your Compute App to BioEngine, wrap it as a Ray app and provide the necessary configuration files, then submit it via a pull request to the BioEngine GitHub repository.
- Detailed guidelines for developing and submitting Compute Apps are available in the [BioEngine Apps Tutorial](./tutorial-bioengine-apps.md).

## Installation

You can set up the BioEngine worker on your own HPC by following the instructions in the [BioEngine HPC worker guide](./bioengine-hpc-worker.md).

## Using the BioEngine

You can access the BioEngine directly from the [BioImage.IO website](https://bioimage.io). For most models, you will find a test run button to execute it with your own images.

To use the BioEngine, you can try it with:
- [bioengine-web-client](https://bioimage-io.github.io/bioengine-web-client/): A simple web app which allows you to run models from the BioImage Model Zoo.
- [BioImage Model Zoo](https://bioimage.io): A repository of models for bioimage analysis, click any model and scroll down to the section about "Test this model".


## Development

BioEngine is an engine running behind the scenes, developers can interact with it python, javascript code or any other language that supports HTTP. Please take a look at our [API document](api.md).
BioEngine is an engine running behind the scenes, allowing developers to interact with it via Python, JavaScript, or any other language that supports HTTP. Please refer to our [API documentation](api.md) for more information.

## Tutorial

To get started with BioEngine, please see
- [BioEngine tutorial for "Microscopy data analysis: machine learning and the BioImage Archive virtual course" hosted by EMBL-EBI](https://imjoy-notebook.netlify.app/lab/index.html?load=https://raw.githubusercontent.com/bioimage-io/bioengine/main/notebooks/bioengine-tutorial-embl-2024.ipynb&open=1) (NOTE: In case of issue in running the notebook, please try to start this notebook in Chrome, using incognito mode)
- Developing BioEngine Apps: [Tutorial](./tutorial-bioengine-apps.md)
To get started with BioEngine, please see:
- [BioEngine tutorial for "Microscopy data analysis: machine learning and the BioImage Archive virtual course" hosted by EMBL-EBI](https://imjoy-notebook.netlify.app/lab/index.html?load=https://raw.githubusercontent.com/bioimage-io/bioengine/main/notebooks/bioengine-tutorial-embl-2024.ipynb&open=1) (NOTE: In case of issues running the notebook, please try to start this notebook in Chrome, using incognito mode).
- [BioEngine Tutorial for I2K 2023](https://slides.imjoy.io/?slides=https://raw.githubusercontent.com/bioimage-io/BioEngine/main/slides/i2k-2023-bioengine-workshop.md).

Please read the documentation at: https://bioimage-io.github.io/bioengine/
Please read the full documentation at: [BioEngine Documentation](https://bioimage-io.github.io/bioengine/).

## Deployment toolkits
## Deployment Toolkits

You are welcome to deploy your own BioEngine in your own workstation, HPC or Kubernetes cluster. We provide toolkits for support various settings, currently the following instructions are provided:
* [x] HPC: [Deployment instructions](bioengine-hpc-worker.md)
- [x]Slurm
- other cluster setting please submit an issue
* [x] Kubernetes: [Deployment instructions](k8s-toolkit.md)

## TODO

+ Runtime types support via hypha-launcher:
* [x] HPC: Slurm / PBS / LFS ...
* [ ] Conda environment
* [x] Docker / Apptainer / podman ...
* [ ] Web Browser
* [ ] pytriton(python package)
* [ ] SSH + X(other runtime types)
* [x] K8S

0 comments on commit dda6706

Please sign in to comment.