Create Plugins
In this section you will find documentation on how to create your own plugin for PickCells.
If you are new to creating plugins for PickCells, you should also look at how to set up a plugin development environment.
There are several plugin types that you can create. The flowchart below is designed to help you find the type that you need.
graph LR
db_access(I need access to the database ?)
db_access -->|yes| db_create{I want to create}
db_create-->db_vis(Visualisations)
db_create-->db_analyse(Analysis Methods)
db_create-->db_image(Image Interactions)
db_vis-->mod_docfctry[Document Factory]
db_analyse-->db_rsrc(Resource Intensive ?)
db_rsrc-->|no|db_launch(With a launcher)
db_rsrc-->|yes|mod_analysis[Analysis]
db_launch-->|In the Menu|mod_utility[Utility]
db_launch-->|In theTask Bar|mod_task[Simple Task]
db_image-->mod_mgr[Annotation Manager]
db_access-->|no| no_db{I want to provide}
no_db-->|generic charts| mod_chart[Chart Factory]
no_db-->|new object descriptors| mod_feature[Feature Computer]
no_db-->|image processing| mod_todo[Not yet available as a plugin.
Please see Contributing to PickCells] no_db-->|something else| mod_desk[Desktop Module] click mod_desk "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/desktop_module/" "Link to the tutorial" click mod_docfctry "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/document_factory/" "Link to the tutorial" click mod_chart "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/chart_factory/" "Link to the tutorial" click mod_feature "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/feature_computer/" "Link to the tutorial" click mod_analysis "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/analysis/#analysis" "Link to the tutorial" click mod_utility "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/analysis/#utility" "Link to the tutorial" click mod_task "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/analysis/#simple-task" "Link to the tutorial" click mod_mgr "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/annotation_manager/" "Link to the tutorial" classDef module fill:#FFD37D, stroke:#0C090A, stroke-width:2px, color:#2B65EC, font-weight: bold; class mod_desk,mod_docfctry,mod_chart,mod_analysis,mod_utility,mod_task,mod_feature,mod_mgr module; classDef type fill:#FFE5B3, stroke:#0C090A, color:#0C090A; class db_vis,db_analyse,db_image type; classDef question fill:#FFFBF3, stroke:#0C090A, color:#0C090A; class db_access,no_db,mod_todo,db_create,db_rsrc,db_launch question;
Please see Contributing to PickCells] no_db-->|something else| mod_desk[Desktop Module] click mod_desk "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/desktop_module/" "Link to the tutorial" click mod_docfctry "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/document_factory/" "Link to the tutorial" click mod_chart "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/chart_factory/" "Link to the tutorial" click mod_feature "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/feature_computer/" "Link to the tutorial" click mod_analysis "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/analysis/#analysis" "Link to the tutorial" click mod_utility "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/analysis/#utility" "Link to the tutorial" click mod_task "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/analysis/#simple-task" "Link to the tutorial" click mod_mgr "https://pickcellslab.frama.io/docs/developers/plugins/tutorials/annotation_manager/" "Link to the tutorial" classDef module fill:#FFD37D, stroke:#0C090A, stroke-width:2px, color:#2B65EC, font-weight: bold; class mod_desk,mod_docfctry,mod_chart,mod_analysis,mod_utility,mod_task,mod_feature,mod_mgr module; classDef type fill:#FFE5B3, stroke:#0C090A, color:#0C090A; class db_vis,db_analyse,db_image type; classDef question fill:#FFFBF3, stroke:#0C090A, color:#0C090A; class db_access,no_db,mod_todo,db_create,db_rsrc,db_launch question;
In the above flowchart, plugin nodes are in dark orange and you can click on the nodes to access the corresponding tutorial.
PickCells supports the following types of plugin:
- Feature Computer: A Feature Computer computes new descriptors for Segmented Objects.
- Chart Factory: These Factories provide runtime implementations for simple charts. Unlike data visualisations created by a Document Factory, simple charts are destined to be available for analysis modules to be used to preview results or to show the histogram of an image region for example.
- Desktop Module: These plugins are launched from the Utility Desktop. They do not deal with the data present in the database and can be used independently from an Experiment.
- Utility: Utility plugins are launched from the Utilities menu. They can perform data related tasks but are by convention not resource intensive.
- Simple Task: Simple Tasks are similar to Utility plugins except that they get more visibility from a user perspective as the launcher is located in the task bar with a large icon.
- Analysis: An Analysis, like a Simple Task posesses a launcher in the task bar. Analyses can perform any forms of data processing, image segmentation, etc. They update the user with their progress using stepwise progress bars and any registered listeners.
- Document Factory: These modules create a launcher in the ‘visualisation’ toolbar. They can create new windows to display any kind of data visualisation
- Annotation Manager: These modules provide image interaction functionalities. For example editing segmented shapes, or lineage tracks.