Skip to content

Commit

Permalink
Merge branch 'main' of github.com:sybila/biodivine-aeon-sketchbook
Browse files Browse the repository at this point in the history
  • Loading branch information
ondrej33 committed Nov 19, 2024
2 parents 2ce2e9f + 1ec4172 commit 9e7ac93
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Biodivine Sketchbook

SketchBook is a multi-platform application for synthesis of Boolean network models.
It provides a user-friendly interface for designing a Boolean network sketch, and then inferring admissible BNs.
SketchBook is a multi-platform application for the synthesis of Boolean network models.
It provides a user-friendly interface for designing a Boolean network sketch and inferring admissible BNs.

Boolean network sketches, introduced in [this paper](https://doi.org/10.1093/bioinformatics/btad158), are a framework for integrating various kinds of prior knowledge and experimental data. The sketch consists of an influence graph, a partially specified update functions, update function properties, and dynamic properties (including experimental data).
Sketchbook presents a way for designing all these components and more.
Boolean network sketches, introduced in [this paper](https://doi.org/10.1093/bioinformatics/btad158), are a framework for integrating various kinds of prior knowledge and experimental data. The sketch consists of an influence graph, partially specified update functions, update function properties, and dynamic properties (including experimental data).
Sketchbook presents a way to design all these components and more.

Once you finish designing your sketch, you can run the state-of-the-art synthesis algorithms and symbolically compute all BNs consistent with your requirements. You can then sample individual BNs, or export the results and process it with libraries like [AEON.py](https://pypi.org/project/biodivine-aeon/).

Expand All @@ -21,29 +21,29 @@ Bioinformatics, 39(4), https://doi.org/10.1093/bioinformatics/btad158.
## Installation

We provide pre-built binaries and installation files for the application in the [release section](https://github.com/sybila/biodivine-sketchbook/releases) (includes versions for Windows, Linux and macOS).
To start using Sketchbook, download binary for your operating system - you choose between `.app` and `.dmg` for macOS, `.AppImage` or `.deb` for Linux, and `.exe` or `.msi` for Windows.
If you'd need a different pre-built binary for specific platform, let us know!
To start using Sketchbook, download binary for your operating system - you choose between `.app` and `.dmg` for macOS, `.AppImage`, `.deb` and `.rpm` for Linux, or `.exe` and `.msi` for Windows.
If you need a different pre-built binary for a specific platform, let us know!

> Note that the binaries are not signed, so macOS and Windows will likely ask if you trust the application or otherwise require you to explicitly allow it to run. We do not include instructions for these steps.
> Note that the binaries are not signed, so macOS and Windows will likely ask if you trust the application or otherwise require you to allow it to run explicitly. We do not include instructions for these steps.
Alternatively, if you want to build the tool locally, the instructions are provided below in the Development guide. Note that the local build requires installing additional dependencies.
Alternatively, if you want to build the tool locally, the instructions are provided in the Development guide below. Note that the local build requires additional dependencies to be installed.

## Development

The following instructions desribe the local installation of the application and relevant frameworks. We recommend using the pre-built binaries described in the previous section.
The following instructions describe the local installation of the application and relevant frameworks. We recommend using the pre-built binaries described in the previous section.

For a summary of all technologies and detailed project structure, see `project-docs/ARCHITECTURE.md`. The directory `project-docs` also contains other documents relevant to the design/development.

### Installation of dependencies

First, make sure you have Rust and NPM installed. For Rust, we recommend following the instructions on [rustlang.org](https://www.rust-lang.org/learn/get-started). For instructions on NPM and Node installation, feel free to check [their website](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).

We have tested the app using following versions:
We have tested the app using the following versions:
- npm 10.9.0
- node 22.11.0
- rust 1.82.0

Then, after cloning the repository, run `npm install` to download all JS/TS dependencies. Rust dependencies are downloaded automatically during build (next step).
Then, after cloning the repository, run `npm install` to download all JS/TS dependencies. Rust dependencies are downloaded automatically during the build (next step).

### Building the app

Expand All @@ -54,9 +54,9 @@ To start the application in debug mode, run `npm run tauri dev`. Note that upon

### Static analysis, tests, documentation

This section describes the setup and instructions for static analysis tools, testing frameworks, and documentation generating. You dont need any of these to run the application, but they are useful for development. For all the following, run the cargo commands inside `src-tauri` folder, and npm/npx commands in the main project directory.
This section describes the setup and instructions for static analysis tools, testing frameworks, and documentation generation. You don't need any of these to run the application, but they are useful for development. For all the following, run the cargo commands inside `src-tauri` folder, and npm/npx commands in the main project directory.

For format checking/fixing for TypeScript part of the project, you can run `npx eslint "src/**/*.{js,jsx,ts,tsx}" --config .eslintrc.yml --fix`. You can use `cargo fmt` and `cargo clippy` for the Rust side.
For format checking/fixing for the TypeScript part of the project, you can run `npx eslint "src/**/*.{js,jsx,ts,tsx}" --config .eslintrc.yml --fix`. You can use `cargo fmt` and `cargo clippy` for the Rust side.

To run the full Rust test suite, use `cargo test`. To run the TypeScript tests, run `npx vitest --run` or `npm test`.

Expand All @@ -76,6 +76,6 @@ cargo doc --no-deps --document-private-items
#### End-to-end tests
We also utilize an end-to-end Selenium-based testing framework. Note that these tests require additional dependencies, and they are limited for Linux and Windows (due to MacOS issues with WebDriver).

You can follow this [detailed tutorial](https://jonaskruckenberg.github.io/tauri-docs-wip/development/testing.html) for setup. In short, you should install `tauri-driver` (with `cargo install tauri-driver`) and then you will need either `WebKitWebDriver` on Linux, or `Microsoft Edge Driver` on Windows (make sure that you have updated Microsoft Edge too). The mocha test runner can be installed with `npm install mocha chai selenium-webdriver`.
You can follow this [detailed tutorial](https://jonaskruckenberg.github.io/tauri-docs-wip/development/testing.html) for setup. In short, you should install `tauri-driver` (with `cargo install tauri-driver`), and then you will need either `WebKitWebDriver` on Linux or `Microsoft Edge Driver` on Windows (make sure that you have updated Microsoft Edge too). The mocha test runner can be installed with `npm install mocha chai selenium-webdriver`.
To run the tests, first build the app with `cargo tauri build` and then use `npx mocha`.
The framework was tested on Windows with `Microsoft Edge WebDriver` version `130.0.2849.89`.

0 comments on commit 9e7ac93

Please sign in to comment.