Skip to content

Commit d7ab0ee

Browse files
committed
Add additional columns to the 'ImagingSite' table to keep track of stage position, image field of view, and rotation
1 parent b84ecd7 commit d7ab0ee

1 file changed

Lines changed: 46 additions & 25 deletions

File tree

src/murfey/util/db.py

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -99,29 +99,27 @@ class ImagingSite(SQLModel, table=True): # type: ignore
9999
image_path: Optional[str] = Field(default=None)
100100
thumbnail_path: Optional[str] = Field(default=None)
101101

102-
# Link to Session table
103-
session: Optional["Session"] = Relationship(
104-
back_populates="imaging_sites"
105-
) # Many to one
106-
session_id: Optional[int] = Field(
107-
foreign_key="session.id", default=None, unique=False
108-
)
109-
110102
# Type of data (atlas/overview or grid square)
111103
data_type: Optional[str] = Field(default=None) # "atlas" or "grid_square"
112104

113-
# Link to data collection group
114-
data_collection_group: Optional["DataCollectionGroup"] = Relationship(
115-
back_populates="imaging_sites"
116-
)
117-
dcg_id: Optional[int] = Field(
118-
foreign_key="datacollectiongroup.dataCollectionGroupId", default=None
119-
)
120-
dcg_name: Optional[str] = Field(default=None)
105+
# Stage position (image centre) and rotation
106+
pos_x: Optional[float] = Field(default=None)
107+
pos_y: Optional[float] = Field(default=None)
108+
pos_z: Optional[float] = Field(default=None)
109+
rotation: Optional[float] = Field(default=None)
110+
tilt_alpha: Optional[float] = Field(default=None)
111+
tilt_beta: Optional[float] = Field(default=None)
121112

122-
# Link to grid squares
123-
grid_square: Optional["GridSquare"] = Relationship(back_populates="imaging_sites")
124-
grid_square_id: Optional[int] = Field(foreign_key="gridsquare.id", default=None)
113+
# Field and depth of view
114+
len_x: Optional[float] = Field(default=None)
115+
len_y: Optional[float] = Field(default=None)
116+
len_z: Optional[float] = Field(default=None)
117+
118+
# Extent of the imaged area in real space
119+
x0: Optional[float] = Field(default=None)
120+
x1: Optional[float] = Field(default=None)
121+
y0: Optional[float] = Field(default=None)
122+
y1: Optional[float] = Field(default=None)
125123

126124
# Shape and resolution information
127125
image_pixels_x: Optional[int] = Field(default=None)
@@ -130,13 +128,9 @@ class ImagingSite(SQLModel, table=True): # type: ignore
130128
thumbnail_pixels_x: Optional[int] = Field(default=None)
131129
thumbnail_pixels_y: Optional[int] = Field(default=None)
132130
thumbnail_pixel_size: Optional[float] = Field(default=None)
133-
units: Optional[str] = Field(default=None)
134131

135-
# Extent of the imaged area in real space
136-
x0: Optional[float] = Field(default=None)
137-
x1: Optional[float] = Field(default=None)
138-
y0: Optional[float] = Field(default=None)
139-
y1: Optional[float] = Field(default=None)
132+
# Spatial units
133+
units: Optional[str] = Field(default=None)
140134

141135
# Colour channel-related fields
142136
number_of_members: Optional[int] = Field(default=None)
@@ -150,6 +144,33 @@ class ImagingSite(SQLModel, table=True): # type: ignore
150144
collection_mode: Optional[str] = Field(default=None)
151145
composite_created: bool = False # Has a composite image been created?
152146

147+
# -------------
148+
# Relationships
149+
# -------------
150+
151+
# Session
152+
session: Optional["Session"] = Relationship(
153+
back_populates="imaging_sites"
154+
) # Many-to-one
155+
session_id: Optional[int] = Field(
156+
foreign_key="session.id", default=None, unique=False
157+
)
158+
159+
# DataCollectionGroup
160+
data_collection_group: Optional["DataCollectionGroup"] = Relationship(
161+
back_populates="imaging_sites"
162+
) # Many-to-one
163+
dcg_id: Optional[int] = Field(
164+
foreign_key="datacollectiongroup.dataCollectionGroupId", default=None
165+
)
166+
dcg_name: Optional[str] = Field(default=None)
167+
168+
# GridSquare
169+
grid_square: Optional["GridSquare"] = Relationship(
170+
back_populates="imaging_sites"
171+
) # Many-to-one
172+
grid_square_id: Optional[int] = Field(foreign_key="gridsquare.id", default=None)
173+
153174

154175
"""
155176
TEM SESSION AND PROCESSING WORKFLOW

0 commit comments

Comments
 (0)