Final - Modeling Breast Cancer Subtypes + TABPFN

statistics-flexynesis_classification/main-workflow

Author(s)
Amirhossein Naghsh Nilchi
version Version
1
last_modification Last updated
Aug 13, 2025
license License
MIT
galaxy-tags Tags
flexynesis
machine_learning
TABPFN

Features
Tutorial
hands_on Modeling Breast Cancer Subtypes with Flexynesis

Workflow Testing
Tests: ✅
Results: Not yet automated
FAIRness purl PURL
https://gxy.io/GTN:
RO-Crate logo with flask Download Workflow RO-Crate
Launch in Tutorial Mode question
galaxy-download Download
flowchart TD
  0["ℹ️ Input Dataset\nclin_train"];
  style 0 stroke:#2c3143,stroke-width:4px;
  1["ℹ️ Input Dataset\nclin_test"];
  style 1 stroke:#2c3143,stroke-width:4px;
  2["ℹ️ Input Dataset\ngex_train"];
  style 2 stroke:#2c3143,stroke-width:4px;
  3["ℹ️ Input Dataset\ngex_test"];
  style 3 stroke:#2c3143,stroke-width:4px;
  4["ℹ️ Input Dataset\ncna_train"];
  style 4 stroke:#2c3143,stroke-width:4px;
  5["ℹ️ Input Dataset\ncna_test"];
  style 5 stroke:#2c3143,stroke-width:4px;
  6["ℹ️ Input Parameter\nnumber of features to keep"];
  style 6 fill:#ded,stroke:#393,stroke-width:4px;
  317be0d5-bbba-4f29-95b3-d7c58c2736b3["Output\n"];
  6 --> 317be0d5-bbba-4f29-95b3-d7c58c2736b3;
  style 317be0d5-bbba-4f29-95b3-d7c58c2736b3 stroke:#2c3143,stroke-width:4px;
  7["ℹ️ Input Parameter\nPerforme TABPFN?"];
  style 7 fill:#ded,stroke:#393,stroke-width:4px;
  865c8339-1baa-42cd-a096-a5f159ae5221["Output\n"];
  7 --> 865c8339-1baa-42cd-a096-a5f159ae5221;
  style 865c8339-1baa-42cd-a096-a5f159ae5221 stroke:#2c3143,stroke-width:4px;
  8[" Flexynesis niter1"];
  5 -->|output| 8;
  4 -->|output| 8;
  1 -->|output| 8;
  3 -->|output| 8;
  0 -->|output| 8;
  2 -->|output| 8;
  9[" Flexynesis niter5"];
  5 -->|output| 9;
  4 -->|output| 9;
  1 -->|output| 9;
  3 -->|output| 9;
  0 -->|output| 9;
  2 -->|output| 9;
  b0c3401f-ab62-49f2-a314-30a4ec36155c["Output\nflexynesis output"];
  9 --> b0c3401f-ab62-49f2-a314-30a4ec36155c;
  style b0c3401f-ab62-49f2-a314-30a4ec36155c stroke:#2c3143,stroke-width:4px;
  6d26fdb7-6fb0-403d-a484-7b0abdb5bd67["Output\nembedding plots pca"];
  9 --> 6d26fdb7-6fb0-403d-a484-7b0abdb5bd67;
  style 6d26fdb7-6fb0-403d-a484-7b0abdb5bd67 stroke:#2c3143,stroke-width:4px;
  10["🛠️ Subworkflow\nPrepare data for TABPFN"];
  style 10 fill:#edd,stroke:#900,stroke-width:4px;
  6 -->|output| 10;
  1 -->|output| 10;
  3 -->|output| 10;
  0 -->|output| 10;
  2 -->|output| 10;
  7 -->|output| 10;
  b93c8cbe-538d-4875-96b6-2073943f3f65["Output\n"];
  10 --> b93c8cbe-538d-4875-96b6-2073943f3f65;
  style b93c8cbe-538d-4875-96b6-2073943f3f65 stroke:#2c3143,stroke-width:4px;
  11["🛠️ Subworkflow\nPrepare data for TABPFN"];
  style 11 fill:#edd,stroke:#900,stroke-width:4px;
  6 -->|output| 11;
  1 -->|output| 11;
  5 -->|output| 11;
  0 -->|output| 11;
  4 -->|output| 11;
  7 -->|output| 11;
  8b726af8-7712-453e-b987-2e549248089c["Output\n"];
  11 --> 8b726af8-7712-453e-b987-2e549248089c;
  style 8b726af8-7712-453e-b987-2e549248089c stroke:#2c3143,stroke-width:4px;
  12["Extract prediction table - niter1"];
  8 -->|results| 12;
  13["Extract test embeddings - niter1"];
  8 -->|results| 13;
  14["Extract prediction table - niter5"];
  9 -->|results| 14;
  15["Extract test embeddings - niter5"];
  9 -->|results| 15;
  16["Pick parameter value"];
  10 -->|ready_train| 16;
  17["Pick parameter value"];
  10 -->|ready_test| 17;
  18["Pick parameter value"];
  11 -->|ready_train| 18;
  19["Pick parameter value"];
  11 -->|ready_test| 19;
  20["Sort"];
  12 -->|output| 20;
  21["Sort"];
  14 -->|output| 21;
  22["PR cruve plot - flexynesis"];
  14 -->|output| 22;
  c64e7cb2-2e54-4176-a914-b5b291c3f8da["Output\nPR curve - Flexynesis"];
  22 --> c64e7cb2-2e54-4176-a914-b5b291c3f8da;
  style c64e7cb2-2e54-4176-a914-b5b291c3f8da stroke:#2c3143,stroke-width:4px;
  23["TABPFN on gex data 2"];
  17 -->|data_param| 23;
  16 -->|data_param| 23;
  cc9c63af-9aca-4030-9e5a-f196d30c849d["Output\nTABPFN predictions - gex"];
  23 --> cc9c63af-9aca-4030-9e5a-f196d30c849d;
  style cc9c63af-9aca-4030-9e5a-f196d30c849d stroke:#2c3143,stroke-width:4px;
  5f9a68f4-fa2c-400e-b78b-8b2bba3c7b91["Output\nPR curve - TABPFN - gex"];
  23 --> 5f9a68f4-fa2c-400e-b78b-8b2bba3c7b91;
  style 5f9a68f4-fa2c-400e-b78b-8b2bba3c7b91 stroke:#2c3143,stroke-width:4px;
  24["TABPFN on cna data 2"];
  19 -->|data_param| 24;
  18 -->|data_param| 24;
  229fd7b2-f8b8-4257-919c-550c2154c689["Output\nPR curve - TABPFN - cna"];
  24 --> 229fd7b2-f8b8-4257-919c-550c2154c689;
  style 229fd7b2-f8b8-4257-919c-550c2154c689 stroke:#2c3143,stroke-width:4px;
  e99d56b0-8486-4344-9fdc-78ac8f92402e["Output\nTABPFN predictions - cna"];
  24 --> e99d56b0-8486-4344-9fdc-78ac8f92402e;
  style e99d56b0-8486-4344-9fdc-78ac8f92402e stroke:#2c3143,stroke-width:4px;
  25["Flexynesis plot"];
  13 -->|output| 25;
  20 -->|outfile| 25;
  1bd99aab-3844-4496-9597-bb7e49258f66["Output\nembedding plot umap - niter1"];
  25 --> 1bd99aab-3844-4496-9597-bb7e49258f66;
  style 1bd99aab-3844-4496-9597-bb7e49258f66 stroke:#2c3143,stroke-width:4px;
  26["UMAP plot on test embeddings"];
  15 -->|output| 26;
  21 -->|outfile| 26;
  69108048-9068-4c4f-b8bf-b422b0d31625["Output\nembedding plot umap - niter5"];
  26 --> 69108048-9068-4c4f-b8bf-b422b0d31625;
  style 69108048-9068-4c4f-b8bf-b422b0d31625 stroke:#2c3143,stroke-width:4px;

Inputs

Input Label
Input dataset clin_train
Input dataset clin_test
Input dataset gex_train
Input dataset gex_test
Input dataset cna_train
Input dataset cna_test
Input parameter number of features to keep
Input parameter Performe TABPFN?

Outputs

From Output Label
Input parameter number of features to keep
Input parameter Performe TABPFN?
toolshed.g2.bx.psu.edu/repos/bgruening/flexynesis/flexynesis/0.2.20+galaxy3 Flexynesis Flexynesis niter5
Prepare data for TABPFN
Prepare data for TABPFN
toolshed.g2.bx.psu.edu/repos/bgruening/flexynesis_plot/flexynesis_plot/0.2.20+galaxy3 Flexynesis plot PR cruve plot - flexynesis
toolshed.g2.bx.psu.edu/repos/bgruening/tabpfn/tabpfn/2.0.9+galaxy0 Tabular data prediction using TabPFN TABPFN on gex data 2
toolshed.g2.bx.psu.edu/repos/bgruening/tabpfn/tabpfn/2.0.9+galaxy0 Tabular data prediction using TabPFN TABPFN on cna data 2
toolshed.g2.bx.psu.edu/repos/bgruening/flexynesis_plot/flexynesis_plot/0.2.20+galaxy3 Flexynesis plot
toolshed.g2.bx.psu.edu/repos/bgruening/flexynesis_plot/flexynesis_plot/0.2.20+galaxy3 Flexynesis plot UMAP plot on test embeddings

Tools

Tool Links
Show beginning1
__EXTRACT_DATASET__
join1
toolshed.g2.bx.psu.edu/repos/bgruening/flexynesis/flexynesis/0.2.20+galaxy3
toolshed.g2.bx.psu.edu/repos/bgruening/flexynesis_plot/flexynesis_plot/0.2.20+galaxy3
toolshed.g2.bx.psu.edu/repos/bgruening/tabpfn/tabpfn/2.0.9+galaxy0
toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_cut_tool/9.5+galaxy2
toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_easyjoin_tool/9.5+galaxy2
toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sort_header_tool/9.5+galaxy2
toolshed.g2.bx.psu.edu/repos/iuc/datamash_transpose/datamash_transpose/1.9+galaxy0
toolshed.g2.bx.psu.edu/repos/iuc/pick_value/pick_value/0.2.0 View in ToolShed
toolshed.g2.bx.psu.edu/repos/iuc/table_compute/table_compute/1.2.4+galaxy2

To use these workflows in Galaxy you can either click the links to download the workflows, or you can right-click and copy the link to the workflow which can be used in the Galaxy form to import workflows.

Importing into Galaxy

Below are the instructions for importing these workflows directly into your Galaxy server of choice to start using them!
Hands On: Importing a workflow
  1. Click on galaxy-workflows-activity Workflows in the Galaxy activity bar (on the left side of the screen, or in the top menu bar of older Galaxy instances). You will see a list of all your workflows
  2. Click on galaxy-upload Import at the top-right of the screen
  3. Provide your workflow
    • Option 1: Paste the URL of the workflow into the box labelled “Archived Workflow URL”
    • Option 2: Upload the workflow file in the box labelled “Archived Workflow File”
  4. Click the Import workflow button

Below is a short video demonstrating how to import a workflow from GitHub using this procedure:

Video: Importing a workflow from URL

Version History

Version Commit Time Comments
3 51720f0d6 2025-08-05 08:49:26 update WF and test
2 40931e556 2025-08-01 11:37:41 add test
1 839f89865 2025-07-31 21:02:27 start classification

For Admins

Installing the workflow tools

wget https://training.galaxyproject.org/training-material/topics/statistics/tutorials/flexynesis_classification/workflows/main_workflow.ga -O workflow.ga
workflow-to-tools -w workflow.ga -o tools.yaml
shed-tools install -g GALAXY -a API_KEY -t tools.yaml
workflow-install -g GALAXY -a API_KEY -w workflow.ga --publish-workflows