diff --git a/README.md b/README.md index 094718e23..6ca2fff6c 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,15 @@ Choose your preferred interface for working with the Aignostics Platform. Each i | **Use when** | Running analyses on individual cases or small cohorts (1-20 slides) and exploring results interactively | | **Get started** | Get started with Launchpad | +### ๐ŸŒ Console (Web Interface) + +| | | +|---|---| +| **What it is** | Web interface at [platform.aignostics.com](https://platform.aignostics.com) for creating and monitoring analyses in your browser, combined with a single Python SDK command to upload your slides | +| **Best for** | Pathologists and researchers who prefer working in a browser and want the least software to install | +| **Use when** | Analyzing slides that are already on your computer or file server (1-100s of slides), without installing a desktop application | +| **Get started** | Get started with Console | + ### โŒจ๏ธ CLI (Command-Line Interface) | | | @@ -49,6 +58,9 @@ Choose your preferred interface for working with the Aignostics Platform. Each i | **Use when** | Building custom analysis pipeline in Python for repeated usage and processing large datasets (10s-1000s of slides) | | **Get started** | Get started with the Python Library | + > ๐Ÿ’ก Each interface has its own step-by-step guide (linked above) that includes installation. Launchpad and the CLI handle authentication for you; the Python Library guide covers credential setup. @@ -132,18 +145,6 @@ manage your organization, applications, quotas, and users registered with the Ai 2. Administrators of your organization can invite additional users, manage the organisation and user specific quotas and monitor usage. 3. Both roles can trigger application runs. -#### Inviting and managing users - -If you have the Administrator role, you invite colleagues to your organization directly from the Console: - -1. Log in to the [Console](https://platform.aignostics.com) and select **Admin** in the sidebar, then open **Members**. -2. At the bottom of the Members page, enter the colleague's email address and assign a role: - - **Member** โ€” a regular user who can run applications and manage their own runs. - - **Admin** โ€” everything a member can do, plus inviting and managing other users. -3. Click **Send**. The colleague receives a signup email from `support@aignostics.com` inviting them to accept the invitation, set a password, and configure two-factor authentication. - -The email address must use your organization's official domain (see the registration requirements above). Return to the Members page at any time to review your organization's users and their roles. - ### Applications An application is a fully automated advanced machine learning based workflow composed of one or more specific tasks (e.g. Tissue Quality Control, Tissue Segmentation, Cell Detection, Cell Classification and predictive analysis). Each application is designed for a particular analysis purpose (e.g. Tumor Micro Environment analysis or biomarker scoring). For each application we define input requirements, processing tasks and output formats. @@ -296,6 +297,9 @@ The organization's Google Cloud Storage bucket stores uploaded files with automa - **Cost efficiency**: Pay-per-use GPU provisioning, automatic storage cleanup, no idle infrastructure costs - **Operational simplicity**: Python SDK abstracts all cloud complexity; IT teams manage access through existing identity systems +```{include} ../partials/_invite_your_team.md +``` + ## Further Reading diff --git a/docs/partials/README_main.md b/docs/partials/README_main.md index 3d594e853..62cd98ea7 100644 --- a/docs/partials/README_main.md +++ b/docs/partials/README_main.md @@ -15,6 +15,15 @@ Choose your preferred interface for working with the Aignostics Platform. Each i | **Use when** | Running analyses on individual cases or small cohorts (1-20 slides) and exploring results interactively | | **Get started** | Get started with Launchpad | +### ๐ŸŒ Console (Web Interface) + +| | | +|---|---| +| **What it is** | Web interface at [platform.aignostics.com](https://platform.aignostics.com) for creating and monitoring analyses in your browser, combined with a single Python SDK command to upload your slides | +| **Best for** | Pathologists and researchers who prefer working in a browser and want the least software to install | +| **Use when** | Analyzing slides that are already on your computer or file server (1-100s of slides), without installing a desktop application | +| **Get started** | Get started with Console | + ### โŒจ๏ธ CLI (Command-Line Interface) | | | @@ -33,6 +42,9 @@ Choose your preferred interface for working with the Aignostics Platform. Each i | **Use when** | Building custom analysis pipeline in Python for repeated usage and processing large datasets (10s-1000s of slides) | | **Get started** | Get started with the Python Library | + > ๐Ÿ’ก Each interface has its own step-by-step guide (linked above) that includes installation. Launchpad and the CLI handle authentication for you; the Python Library guide covers credential setup. diff --git a/docs/partials/get_started_console.md b/docs/partials/get_started_console.md new file mode 100644 index 000000000..3cabe7feb --- /dev/null +++ b/docs/partials/get_started_console.md @@ -0,0 +1,216 @@ +# Get started with Console + +[Console](https://platform.aignostics.com) is the web interface of the Aignostics Platform. This guide walks you through running [Atlas H&E-TME](https://www.aignostics.com/products/he-tme-profiling-product) โ€” which analyzes the tumor microenvironment in H&E-stained tissue โ€” on your own slides: you upload the slides with one command, then analyze them, review the results, and download them in your browser. You do not need any programming experience, and the setup takes about 15 minutes plus the time your slides take to upload. Results stay available in Console for 30 days. + +**What you need:** a Mac, Windows (Windows 10 or later), or Linux (Ubuntu) computer, a web browser, a mobile phone for the login security step, and your whole slide images in a supported format โ€” `.svs`, `.tif`, `.tiff`, or DICOM (`.dcm`). No slides at hand? [Step 4](#optional-get-an-example-slide) downloads a public example slide for you. + +```{include} ../partials/_get_started_signup.md +``` + +## Upload your slides + +### 1. Install the Aignostics Python SDK + +The SDK runs in a terminal โ€” a text window where you type commands. You only need it for the upload; everything after that happens in your browser. If a command does not work, see [Troubleshooting](#troubleshooting). + +**On macOS or Linux:** open the **Terminal** app โ€” on macOS, press `Cmd` + `Space`, type `Terminal`, and press `Enter`. Paste this command and press `Enter`: + +```bash +curl -LsSf https://astral.sh/uv/install.sh | sh +``` + +**On Windows:** open **PowerShell** โ€” click the Start menu, type `PowerShell`, and press `Enter`. Paste this command and press `Enter`: + +```powershell +powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" +``` + +When it finishes, **close that window and open a new one.** Then check the install worked by pasting this command and pressing `Enter`: + +```bash +uvx aignostics --help +``` + +The first run takes a minute to get ready. A list of command groups (`application`, `bucket`, `dataset`, and more) means the install worked. If you see an error instead, see [Troubleshooting](#troubleshooting). + +### 2. Log in + +In the same window, paste this command and press `Enter`: + +```bash +uvx aignostics user login +``` + +A browser window opens at `platform.aignostics.com`. Enter your email and password, then the six-digit code from your authenticator app, and return to your terminal. You stay logged in for future sessions. + +### 3. Prepare your slides for upload + +Collect the slides you want to analyze in a single folder on your computer โ€” for example a folder called `my-slides`. Subfolders are fine; they are preserved during upload. + +Only files of the supported formats (`.svs`, `.tif`, `.tiff`, `.dcm`) can be analyzed. Other files in the folder are uploaded but will not appear as slides when you start the analysis. + +### 4. (Optional) Get an example slide + +To try the workflow before using your own data, download a public example slide โ€” a TCGA lung adenocarcinoma case from the NCI Image Data Commons. + +The target folder has to exist before you download into it, so create it first. Paste these commands and press `Enter` after each: + +```bash +mkdir my-slides +uvx aignostics dataset idc download 1.3.6.1.4.1.5962.99.1.1069745200.1645485340.1637452317744.2.0 my-slides/ +``` + +Skip the first command if you already created `my-slides` in Step 3 โ€” and if you named your folder something else, use that name in both commands. Downloading a folder that does not exist stops with `Invalid value for 'target': Directory 'my-slides/' does not exist`. + +The download takes a few minutes and puts the slide in `my-slides/tcga_luad`, ready for the next step. + +### 5. Run the upload + +Your organization has a private storage area on the Aignostics Platform โ€” your **bucket**. Only you and the other members of your organization can see what is in it. Uploading a slide does not start an analysis; it just puts the slide where Console can find it. + +Paste this command and press `Enter`, replacing `./my-slides` with the path to your folder: + +```bash +uvx aignostics bucket upload ./my-slides +``` + +The command first reports how many files it found and their total size, then names each slide as it goes up. When it is finished it lists what it uploaded and prints `All files uploaded successfully!`. A progress bar is part of that output, but it only shows up if your terminal window is wide enough โ€” in a standard-width window there is no room for it, so you see the messages alone. + +**Keep the terminal open and your computer awake until then** โ€” a single whole slide image is often 1โ€“4 GB, so this can take a while. If the upload is interrupted, run the same command again. + +Your slides are filed in a folder named after the user account you are logged in with on your computer, so they stay separate from your colleagues' slides. If that account is `jdoe`, then `my-slides/slide1.svs` becomes `jdoe/slide1.svs`. Run `whoami` if you are unsure what your account is called โ€” you will need the folder name in the next step. + +To list what arrived in your bucket: + +```bash +uvx aignostics bucket find +``` + +## Analyze your slides with Atlas H&E-TME + +### 6. Start the analysis + +Open [platform.aignostics.com](https://platform.aignostics.com) and log in. Select **Analyze** โ†’ **My Application Runs** in the sidebar, then click **Create run** in the top right. + +![The My Application Runs page with the Create run button in the top right](../source/_static/console/01-analyze-create-run.png) + +Fill in the **Create run** form: + +- **Slides.** You see the contents of your organization's bucket. Use the breadcrumb (**Bucket ยป โ€ฆ**) to open the folder named after your computer account, then tick the slides you want to analyze. Your selection is listed under the table, so you can check it before you continue. + + ![The Create run form with the bucket contents listed and one slide ticked](../source/_static/console/02-select-slides.png) + +- **Version.** Pick the entry starting with `he-tme` โ€” that is Atlas H&E-TME. Unless you need to reproduce an earlier analysis, use the highest version number. +- **Staining method.** Already fixed to `H&E` for Atlas H&E-TME, so there is nothing to choose. +- **Indication.** The disease your slides relate to โ€” for the example slide, `Lung cancer`. +- **Tissue.** The tissue your slides were taken from โ€” for the example slide, `Lung`. +- **Name.** A name of your choice, which makes the analysis easier to recognise later. + +Your entries apply to every slide you selected, so all slides you analyze together must share the same staining method, indication, and tissue. Click **Run now** to start the analysis. + +![The lower half of the Create run form with Version, Staining method, Indication, Tissue and Name filled in](../source/_static/console/03-metadata.png) + +Your analysis now appears at the top of **My Application Runs**. + +### 7. Wait for results + +The analysis runs on Aignostics servers, so you can close your browser and switch off your computer. How long it takes depends on the size and number of your slides โ€” anywhere from a few minutes to several hours. Return to **My Application Runs** any time: the **Status** column shows how far the analysis has got, and **Completed** means it has finished. + +### 8. Review your results in the viewer + +Select your analysis in **My Application Runs** to open **Run Details**, then click a slide name to open it in the built-in viewer. + +The **Overlays** panel on the right switches the results on and off on top of your slide: **Tissue Segmentation** colours the tissue regions that were found, **Cell Classification** colours the individual cells by type โ€” with a legend of the cell types and a slider to make the colours more or less transparent โ€” and **Tissue QC** shows areas flagged during quality control. Use the zoom buttons at the top right (`0.4ร—` to `40ร—`) to look at an area closely. + +![A slide in the viewer with tissue and cell overlays switched on and the Overlays panel open](../source/_static/console/04-viewer-overlays.png) + +### 9. Download your results + +On **Run Details**, click **Download Available Results** for all your slides, or use the download icon in the **Actions** column to get a single slide. For each slide you get the tissue regions that were found, the individual cells that were detected and classified by type, and a spreadsheet of measurements such as cell counts and densities. + +![The Run Details page with the Download Available Results button and per-slide download icons](../source/_static/console/05-download-results.png) + +> โš ๏ธ **Results are kept for 30 days**, counting from the day you started the analysis. After that they can no longer be viewed or downloaded, and the only way to get them back is to analyze the slides again โ€” so download whatever you want to keep in time. + +**Congratulations** โ€” you have run your first analysis, reviewed it in the viewer, and downloaded the results. + +### (Optional) Clean up your bucket + +Your slides stay in your bucket until you delete them, so analyzing the same slides again needs no new upload. Deletion works on patterns and is a dry run by default. Replace `jdoe` with your own folder name from step 5: + +```bash +uvx aignostics bucket delete "jdoe/.*" # shows how many objects would be deleted +uvx aignostics bucket delete "jdoe/.*" --no-dry-run # actually deletes them +``` + +> โš ๏ธ Deleting objects from your bucket cannot be undone. It does not affect results you have already downloaded. + +```{include} ../partials/_invite_your_team.md +``` + +## Troubleshooting + +
+The install command failed + +First, make sure you copied the whole command, including everything from the start of the line to the end. Paste it again and press `Enter`. + +If `uvx aignostics --help` did not work right after installing, close that terminal window, open a new one, and try again. The install command is only fully active in a freshly opened window. + +If it still fails, copy the error message and email it to `support@aignostics.com`. + +
+ +
+My upload was interrupted + +Run the same `uvx aignostics bucket upload` command again. Files that were already uploaded are simply uploaded again and replace the earlier copy, so nothing is duplicated and nothing is lost. + +If uploads are interrupted repeatedly, check that your computer does not go to sleep while the upload runs, and that your network connection is stable. + +
+ +
+My slides don't show up when I start an analysis + +1. Confirm the upload arrived by running `uvx aignostics bucket find --detail` and looking for your files. +2. Check that you are browsing the right folder in Console โ€” the one named after your computer account, or the one you passed to `--destination-prefix`. +3. Check the file format. Only `.svs`, `.tif`, `.tiff`, and `.dcm` files can be analyzed. For DICOM slides, the complete set of `.dcm` files belonging to the slide must be uploaded together, so upload the whole folder rather than individual files. + +If your slides are in the bucket, in the right format, and still not selectable, email `support@aignostics.com`. + +
+ +
+A slide failed, or the whole analysis failed + +Open the analysis on **My Application Runs** to see which slides failed โ€” the **Status** column on **Run Details** shows the outcome per slide. Results for the slides that succeeded are unaffected โ€” you can review and download them as usual. + +A single failed slide usually points at the slide itself: an unsupported or incomplete file, or metadata that does not match the tissue on the slide. Check the file opens on your computer, then analyze that slide on its own. + +If the whole analysis failed, or a slide fails again on a second attempt, email `support@aignostics.com` with the name or ID shown on **Run Details** and we will look into it. + +
+ +
+I can't log in, or my six-digit code is rejected + +The six-digit code from your authenticator app changes every 30 seconds. If yours was rejected, wait for the app to show a new code and enter that one promptly. + +Make sure your phone's clock is set to update automatically โ€” if it is wrong by even a minute, the codes will not match. + +If you have forgotten your password, use the "Forgot password" link on the login page. If you still can't get in, email `support@aignostics.com`. + +
+ +
+I want to upload and analyze hundreds of slides + +The upload command handles large folders, but for larger cohorts you may prefer to script the whole workflow โ€” including submission and result download โ€” instead of clicking through Console for every batch. See [Get started with the CLI](https://aignostics.readthedocs.io/en/latest/get_started_cli.html) and [Get started with the Python Library](https://aignostics.readthedocs.io/en/latest/get_started_library.html), or email `support@aignostics.com` and we will help you choose an approach. + +
+ +Still stuck? Email `support@aignostics.com` and describe what you were doing and what you saw. + + diff --git a/docs/source/_static/console/01-analyze-create-run.png b/docs/source/_static/console/01-analyze-create-run.png new file mode 100644 index 000000000..8324bff89 Binary files /dev/null and b/docs/source/_static/console/01-analyze-create-run.png differ diff --git a/docs/source/_static/console/02-select-slides.png b/docs/source/_static/console/02-select-slides.png new file mode 100644 index 000000000..3316b715d Binary files /dev/null and b/docs/source/_static/console/02-select-slides.png differ diff --git a/docs/source/_static/console/03-metadata.png b/docs/source/_static/console/03-metadata.png new file mode 100644 index 000000000..01689cad8 Binary files /dev/null and b/docs/source/_static/console/03-metadata.png differ diff --git a/docs/source/_static/console/04-viewer-overlays.png b/docs/source/_static/console/04-viewer-overlays.png new file mode 100644 index 000000000..1609c1c3b Binary files /dev/null and b/docs/source/_static/console/04-viewer-overlays.png differ diff --git a/docs/source/_static/console/05-download-results.png b/docs/source/_static/console/05-download-results.png new file mode 100644 index 000000000..5c4009d4d Binary files /dev/null and b/docs/source/_static/console/05-download-results.png differ diff --git a/docs/source/conf.py b/docs/source/conf.py index 132fd2b02..51faba7aa 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -88,7 +88,9 @@ ] templates_path = ["_templates"] -exclude_patterns = [] +# Hidden from the published documentation for now: the MCP server is not yet usable +# for customers. The guide is kept in the repository, excluded only from the build. +exclude_patterns = ["get_started_mcp.rst"] html_theme = "furo" html_static_path = ["_static"] diff --git a/docs/source/get_started_console.rst b/docs/source/get_started_console.rst new file mode 100644 index 000000000..d0094011e --- /dev/null +++ b/docs/source/get_started_console.rst @@ -0,0 +1,2 @@ +.. include:: ../partials/get_started_console.md + :parser: myst_parser.sphinx_ diff --git a/docs/source/index.rst b/docs/source/index.rst index b12c53ab1..d1fba1906 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -14,9 +14,9 @@ :caption: Get started get_started_launchpad + get_started_console get_started_cli get_started_library - get_started_mcp .. toctree:: :maxdepth: 1