comparison image_workflow.py @ 22:ccbcc012d78d draft default tip

planemo upload for repository https://github.com/goeckslab/gleam.git commit d8308188856a1dd8d40d3ccfe4c4ec03c4fd36de
author goeckslab
date Fri, 23 Jan 2026 20:25:27 +0000
parents d5c582cf74bc
children
comparison
equal deleted inserted replaced
21:d5c582cf74bc 22:ccbcc012d78d
127 logger.info(f"Loaded metadata file: {self.args.csv_file}") 127 logger.info(f"Loaded metadata file: {self.args.csv_file}")
128 except Exception: 128 except Exception:
129 logger.error("Error loading metadata file", exc_info=True) 129 logger.error("Error loading metadata file", exc_info=True)
130 raise 130 raise
131 131
132 label_col = self.args.target_column or LABEL_COLUMN_NAME 132 def resolve_column_name(value: Optional[str], columns, label: str) -> Optional[str]:
133 image_col = self.args.image_column or IMAGE_PATH_COLUMN_NAME 133 """Resolve Galaxy data_column index (1-based) to header if needed."""
134 134 if value is None:
135 # Remember the user-specified columns for reporting 135 return None
136 if str(value).isdigit():
137 idx = int(value) - 1
138 if 0 <= idx < len(columns):
139 resolved = columns[idx]
140 if value in columns:
141 logger.warning(
142 "%s column value '%s' matches a header, but Galaxy data_column "
143 "inputs are interpreted as 1-based indices; using column #%s header '%s'.",
144 label,
145 value,
146 idx + 1,
147 resolved,
148 )
149 logger.info(
150 "%s column '%s' not found; using column #%s header '%s' instead.",
151 label,
152 value,
153 idx + 1,
154 resolved,
155 )
156 return resolved
157 raise ValueError(
158 f"{label} column index '{value}' is out of range for dataset with "
159 f"{len(columns)} columns. Update the XML selections or rename your columns."
160 )
161 if value in columns:
162 return value
163 return value
164
165 label_col = resolve_column_name(self.args.target_column, df.columns, "Target") or LABEL_COLUMN_NAME
166 image_col = resolve_column_name(self.args.image_column, df.columns, "Image") or IMAGE_PATH_COLUMN_NAME
167 self.args.sample_id_column = resolve_column_name(
168 self.args.sample_id_column, df.columns, "Sample ID"
169 )
170
171 # Remember the resolved columns for reporting
136 self.args.report_target_column = label_col 172 self.args.report_target_column = label_col
137 self.args.report_image_column = image_col 173 self.args.report_image_column = image_col
138 174
139 missing_cols = [] 175 missing_cols = []
140 if label_col not in df.columns: 176 if label_col not in df.columns: