Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
169 changes: 169 additions & 0 deletions .codeboarding/Core_Infrastructure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
```mermaid

graph LR

Versioning_Component["Versioning Component"]

Data_Types_and_Structures_Component["Data Types and Structures Component"]

Configuration_Management_Component["Configuration Management Component"]

Logging_and_System_Info_Component["Logging and System Info Component"]

Execution_Orchestration_Component["Execution Orchestration Component"]

Image_Level_Adjustment_Component["Image Level Adjustment Component"]

Versioning_Component -- "provides version to" --> Logging_and_System_Info_Component

Data_Types_and_Structures_Component -- "defines" --> Configuration_Management_Component

Data_Types_and_Structures_Component -- "consumed by" --> Execution_Orchestration_Component

Configuration_Management_Component -- "configures" --> Execution_Orchestration_Component

Configuration_Management_Component -- "provides settings to" --> Logging_and_System_Info_Component

Logging_and_System_Info_Component -- "records operations of" --> Execution_Orchestration_Component

Logging_and_System_Info_Component -- "reports on" --> Data_Types_and_Structures_Component

Execution_Orchestration_Component -- "uses" --> Configuration_Management_Component

Execution_Orchestration_Component -- "logs activities via" --> Logging_and_System_Info_Component

Image_Level_Adjustment_Component -- "processes" --> Data_Types_and_Structures_Component

Image_Level_Adjustment_Component -- "configured by" --> Configuration_Management_Component

```



[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org)



## Details



This section provides an overview of the `Core Infrastructure` components within the `starfish` project. These components are fundamental because they address the essential, cross-cutting concerns of the library, providing foundational services, defining core data representations, and offering basic utilities that higher-level modules depend on. They are not specific image processing algorithms but rather the underlying framework that enables the entire system to function robustly and consistently.



### Versioning Component

This component is responsible for programmatically determining and managing the version of the `starfish` software. It interacts with version control systems (like Git) to extract version information and format it according to standard conventions (e.g., PEP 440). This ensures that the software version can be consistently identified and reported.





**Related Classes/Methods**:



- <a href="https://github.com/spacetx/starfish/starfish/core/_version.py#L0-L0" target="_blank" rel="noopener noreferrer">`starfish.core._version` (0:0)</a>





### Data Types and Structures Component

This component defines the fundamental data models, structures (e.g., `DecodedSpots`, `SpotAttributes`, `ValidatedTable`), and enumerations (e.g., `Axes`, `Levels`, `Coordinates`) used throughout the `starfish` library. It ensures consistent data representation and interoperability across different modules and algorithms.





**Related Classes/Methods**:



- <a href="https://github.com/spacetx/starfish/starfish/core/starfish.py#L0-L0" target="_blank" rel="noopener noreferrer">`starfish.core.types` (0:0)</a>





### Configuration Management Component

This component handles the loading, parsing, and centralized management of application-wide configurations. It provides a flexible and centralized way to define and access parameters that control the behavior of various `starfish` algorithms and processes, supporting nested configuration structures.





**Related Classes/Methods**:



- <a href="https://github.com/spacetx/starfish/starfish/core/starfish.py#L0-L0" target="_blank" rel="noopener noreferrer">`starfish.core.config` (0:0)</a>

- <a href="https://github.com/spacetx/starfish/starfish/core/util/config.py#L0-L0" target="_blank" rel="noopener noreferrer">`starfish.core.util.config` (0:0)</a>





### Logging and System Info Component

This component provides comprehensive logging capabilities for the `starfish` application, enabling detailed tracking of execution flow, warnings, and errors. It also gathers system and dependency information, which is vital for diagnostics, error reporting, and understanding the execution environment.





**Related Classes/Methods**:



- <a href="https://github.com/spacetx/starfish/starfish/core/util/logging.py#L0-L0" target="_blank" rel="noopener noreferrer">`starfish.core.util.logging` (0:0)</a>





### Execution Orchestration Component

This component is responsible for orchestrating the execution flow of different processing stages within the `starfish` pipeline. It manages the sequence of operations, ensuring proper order and dependencies, and can integrate utilities like timing for performance monitoring and optimization.





**Related Classes/Methods**:



- <a href="https://github.com/spacetx/starfish/starfish/core/util/exec.py#L0-L0" target="_blank" rel="noopener noreferrer">`starfish.core.util.exec` (0:0)</a>





### Image Level Adjustment Component

This component offers a set of utility functions specifically designed for adjusting the intensity levels of images. This is a common and fundamental preprocessing step in image analysis pipelines, used to enhance contrast, normalize data, or prepare images for subsequent processing.





**Related Classes/Methods**:



- <a href="https://github.com/spacetx/starfish/starfish/core/util/levels.py#L45-L119" target="_blank" rel="noopener noreferrer">`starfish.core.util.levels` (45:119)</a>









### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
223 changes: 223 additions & 0 deletions .codeboarding/Experiment_Data_Core.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
```mermaid

graph LR

Experiment["Experiment"]

FieldOfView["FieldOfView"]

ImageStack["ImageStack"]

Codebook["Codebook"]

StarfishConfig["StarfishConfig"]

SpaceTx_Validator["SpaceTx Validator"]

CropParameters["CropParameters"]

TileCollectionData["TileCollectionData"]

TileData["TileData"]

Experiment -- "contains" --> FieldOfView

Experiment -- "references" --> Codebook

Experiment -- "uses" --> StarfishConfig

Experiment -- "uses" --> SpaceTx_Validator

FieldOfView -- "manages" --> ImageStack

FieldOfView -- "uses" --> CropParameters

ImageStack -- "uses" --> CropParameters

ImageStack -- "composed of" --> TileCollectionData

TileCollectionData -- "composed of" --> TileData

```



[![CodeBoarding](https://img.shields.io/badge/Generated%20by-CodeBoarding-9cf?style=flat-square)](https://github.com/CodeBoarding/GeneratedOnBoardings)[![Demo](https://img.shields.io/badge/Try%20our-Demo-blue?style=flat-square)](https://www.codeboarding.org/demo)[![Contact](https://img.shields.io/badge/Contact%20us%20-%20contact@codeboarding.org-lightgrey?style=flat-square)](mailto:contact@codeboarding.org)



## Details



The `Experiment Data Core` subsystem in Starfish is designed to encapsulate and manage all data associated with a spatial transcriptomics experiment. It provides a structured, hierarchical representation of experimental data, from the top-level experiment down to individual image tiles, along with essential metadata and validation mechanisms. The chosen components are fundamental because they directly represent the data, define its structure, enable its interpretation, and ensure its integrity.



### Experiment

The top-level container representing an entire spatial transcriptomics experiment. It orchestrates access to all associated data, including multiple fields of view (FOVs) and the experiment's codebook. It provides methods for loading experiment data from standardized formats (e.g., JSON) and offers iterable access to its constituent FOVs.





**Related Classes/Methods**:



- <a href="https://github.com/spacetx/starfish/starfish/core/experiment/experiment.py#L212-L453" target="_blank" rel="noopener noreferrer">`Experiment` (212:453)</a>





### FieldOfView

Represents a single field of view within an experiment, corresponding to a specific spatial region imaged. It acts as a direct interface to the raw imaging data for that region, providing methods to retrieve individual images or entire image stacks.





**Related Classes/Methods**:



- `FieldOfView` (1:1)





### ImageStack

A multi-dimensional array-like structure that holds the actual image data (raw or processed fluorescent images). It provides functionalities for accessing, manipulating, and iterating over image data across various dimensions (e.g., channels, imaging rounds, Z-planes). It's a core component for any image-based processing.





**Related Classes/Methods**:



- `ImageStack` (1:1)





### Codebook

Stores the mapping between fluorescent probes (or imaging channels) and the specific gene targets they represent. This information is critical for decoding the spatial transcriptomics data, translating raw intensity measurements into gene expression profiles. It can be loaded from a JSON format.





**Related Classes/Methods**:



- <a href="https://github.com/spacetx/starfish/starfish/core/codebook/codebook.py#L28-L804" target="_blank" rel="noopener noreferrer">`Codebook` (28:804)</a>





### StarfishConfig

A centralized configuration management component for the Starfish application. It provides a structured way to store and retrieve various settings that influence the behavior of different parts of the software, including data loading, processing, and analysis.





**Related Classes/Methods**:



- `StarfishConfig` (1:1)





### SpaceTx Validator

A utility component responsible for validating the structure and content of experiment data against the SpaceTx format specification. This ensures that the input data adheres to predefined standards, promoting interoperability and data quality.





**Related Classes/Methods**:



- `SpaceTx Validator` (1:1)





### CropParameters

A data structure that defines the parameters for cropping image data. It specifies the region of interest to be extracted from a larger image stack, enabling focused analysis on specific parts of the field of view.





**Related Classes/Methods**:



- `CropParameters` (1:1)





### TileCollectionData

An internal class that manages the underlying data storage and access for collections of individual image tiles. It serves as a foundational layer for `ImageStack`, handling the organization and retrieval of image data chunks.





**Related Classes/Methods**:



- `TileCollectionData` (1:1)





### TileData

An internal class that manages the underlying data storage and access for individual image tiles. It represents a single chunk of image data and is a building block for `TileCollectionData`.





**Related Classes/Methods**:



- `TileData` (1:1)









### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
Loading