-
Notifications
You must be signed in to change notification settings - Fork 6
CWL Feature Extraction workflow #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 4 commits
9b67a6c
1d589e6
81af032
2dcc5e6
03c6d18
88b6c82
a9ed5f6
8d93e8a
b7689d0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,84 @@ | ||||||
| # Common Workflow Language (CWL) Feature Extraction worflow | ||||||
|
|
||||||
| CWL feature extraction workflow for imaging dataset | ||||||
|
|
||||||
| ## Workflow Steps: | ||||||
|
|
||||||
| create a [Conda](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#activating-an-environment) environment using python = ">=3.9,<3.12" | ||||||
|
|
||||||
| #### 1. Install polus-plugins. | ||||||
|
|
||||||
| - clone a image-tools reporsitory | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. done |
||||||
| `git clone https://github.com/camilovelezr/image-tools.git` | ||||||
| - cd `image-tools` | ||||||
| - `pip install .` | ||||||
|
|
||||||
| #### 2. Install workflow-inference-compiler. | ||||||
| - clone a workflow-inference-compiler reporsitory | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. fixed |
||||||
| `git clone https://github.com/camilovelezr/workflow-inference-compiler.git` | ||||||
| - cd `workflow-inference-compiler` | ||||||
| - `pip install -e ".[all]"` | ||||||
|
|
||||||
| ## Details | ||||||
| This workflow integrates eight distinct plugins, starting from data retrieval from [Broad Bioimage Benchmark Collection](https://bbbc.broadinstitute.org/), renaming files, correcting uneven illumination, segmenting nuclear objects, and culminating in the extraction of features from identified objects | ||||||
|
|
||||||
| Below are the specifics of the plugins employed in the workflow | ||||||
| 1. [bbbc-download-plugin](https://github.com/saketprem/polus-plugins/tree/bbbc_download/utils/bbbc-download-plugin) | ||||||
| 2. [file-renaming-tool](https://github.com/PolusAI/image-tools/tree/master/formats/file-renaming-tool) | ||||||
| 3. [ome-converter-tool](https://github.com/PolusAI/image-tools/tree/master/formats/ome-converter-tool) | ||||||
| 4. [basic-flatfield-estimation-tool](https://github.com/PolusAI/image-tools/tree/master/regression/basic-flatfield-estimation-tool) | ||||||
| 5. [apply-flatfield-tool](https://github.com/PolusAI/image-tools/tree/master/transforms/images/apply-flatfield-tool) | ||||||
| 6. [kaggle-nuclei-segmentation](https://github.com/hamshkhawar/image-tools/tree/kaggle-nuclei_seg/segmentation/kaggle-nuclei-segmentation) | ||||||
| 7. [polus-ftl-label-plugin](https://github.com/hamshkhawar/image-tools/tree/kaggle-nuclei_seg/transforms/images/polus-ftl-label-plugin) | ||||||
| 8. [nyxus-plugin](https://github.com/PolusAI/image-tools/tree/kaggle-nuclei_seg/features/nyxus-plugin) | ||||||
|
|
||||||
| ## Execute CWL feature extraction workflow | ||||||
|
|
||||||
| The parameters for each imaging dataset are pre-defined and stored in JSON format. A Pydantic model in a utils Python file can be utilized to store parameters for any new dataset | ||||||
|
|
||||||
| `python cwl_workflows/__main__.py --name="BBBC039" --workflow=feature` | ||||||
|
|
||||||
| A directory named `workflow` is generated, encompassing CLTs for each plugin, YAML files, and all outputs are stored within the `outdir` directory. | ||||||
| ``` | ||||||
| workflows | ||||||
| ├── experiment | ||||||
| │ └── cwl_adapters | ||||||
| | experiment.cwl | ||||||
| | experiment.yml | ||||||
| | | ||||||
| └── outdir | ||||||
| └── experiment | ||||||
| ├── step 1 BbbcDownload | ||||||
| │ └── outDir | ||||||
| │ └── bbbc.outDir | ||||||
| │ └── BBBC | ||||||
| │ └── BBBC039 | ||||||
| │ └── raw | ||||||
| │ ├── Ground_Truth | ||||||
| │ │ ├── masks | ||||||
| │ │ └── metadata | ||||||
| │ └── Images | ||||||
| │ └── images | ||||||
| ├── step 2 FileRenaming | ||||||
| │ └── outDir | ||||||
| │ └── rename.outDir | ||||||
| ├── step 3 OmeConverter | ||||||
| │ └── outDir | ||||||
| │ └── ome_converter.outDir | ||||||
| ├── step 4 BasicFlatfieldEstimation | ||||||
| │ └── outDir | ||||||
| │ └── estimate_flatfield.outDir | ||||||
| ├── step 5 ApplyFlatfield | ||||||
| │ └── outDir | ||||||
| │ └── apply_flatfield.outDir | ||||||
| ├── step 6 KaggleNucleiSegmentation | ||||||
| │ └── outDir | ||||||
| │ └── kaggle_nuclei_segmentation.outDir | ||||||
| ├── step 7 FtlLabel | ||||||
| │ └── outDir | ||||||
| │ └── ftl_plugin.outDir | ||||||
| └── step 8 NyxusPlugin | ||||||
| └── outDir | ||||||
| └── nyxus_plugin.outDir | ||||||
|
|
||||||
| ``` | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| { | ||
| "data": { | ||
| "BBBC039": { | ||
| "name": "BBBC039", | ||
| "file_pattern": ".*_{row:c}{col:dd}_s{s:d}_w{channel:d}.*.tif", | ||
| "out_file_pattern": "x{row:dd}_y{col:dd}_p{s:dd}_c{channel:d}.tif", | ||
| "image_pattern": "images_x{x:dd}_y{y:dd}_p{p:dd}_c{c:d}.ome.tif", | ||
| "seg_pattern": "images_x{x:dd}_y{y:dd}_p{p:dd}_c1.ome.tif", | ||
| "map_directory": "raw", | ||
| "ff_pattern": "images_x\\(00-15\\)_y\\(01-24\\)_p0\\(1-9\\)_c{c:d}_flatfield.ome.tif", | ||
| "df_pattern": "images_x\\(00-15\\)_y\\(01-24\\)_p0\\(1-9\\)_c{c:d}_darkfield.ome.tif", | ||
| "group_by": "c", | ||
| "features": "ALL_INTENSITY,ALL_MORPHOLOGY", | ||
| "file_extension": "pandas" | ||
| } | ||
| } | ||
| } |
This file was deleted.
This file was deleted.
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.