Menu
Introduction
Getting Started
Use cases
Cell Culture App
Technical documentations
Version
Publication date

Sep 19, 2024

Confidentiality
Public
Reactions
0
Share

Introduction Architecture

Overview


This guide explains how to create a custom Cell Culture application compatible with your own data format. The Cell Culture App framework (cell_culture_app_core) provides a flexible, reusable architecture that can be extended to work with different data sources and formats.


Architecture Overview


The Cell Culture App follows a modular architecture with seven main components you need to implement:


Your Custom App
├── 1. Load Data Task       (data ingestion - YOUR IMPLEMENTATION)
├── 2. State Manager        (session state - extends CellCultureState)
├── 3. Recipe Class         (data model - extends CellCultureRecipe)
├── 4. Functions Steps      (helper functions - YOUR IMPLEMENTATION)
├── 5. New Recipe Page      (UI for data upload - YOUR IMPLEMENTATION)
├── 6. Main App             (Streamlit app wiring - YOUR IMPLEMENTATION)
└── 7. Translation Files    (en.json, fr.json - YOUR IMPLEMENTATION)

Core Framework (cell_culture_app_core):


  • Provides reusable UI pages (selection, quality check, visualizations, analyses)
    • Abstract base classes for state and recipe management
      • Common analysis workflows (PCA, UMAP, Feature Extraction, ML models)

        Your Custom Implementation (7 components):


        1. Load Data Task: Reads YOUR data format and converts to standardized ResourceSet
          1. State Manager: Defines tags and constants specific to your data
            1. Recipe Class: Extracts metadata from your scenarios with custom methods
              1. Functions Steps: Helper functions for recipe management, table display, file info
                1. New Recipe Page: UI for uploading/selecting your specific file formats
                  1. Main App: Wires together all pages with StreamlitRouter
                    1. Translation Files: Internationalization (en.json, fr.json)

                      Technical bricks to reuse or customize

                      Have you developed a brick?

                      Share it to accelerate projects for the entire community.