Skip to content
Snippets Groups Projects

Data explorer

1 file
+ 61
23
Compare changes
  • Side-by-side
  • Inline
+ 61
23
@@ -69,12 +69,7 @@ class Interface:
interactive=True,
)
def make_pipeline(self, session):
print(session.operations)
return session
def show_results(self, operations):
print(operations)
update_list = []
for operation in self.operations:
if operation in operations:
@@ -145,7 +140,6 @@ class Interface:
# Visualization and results
with gr.Row(elem_classes="mt-64"):
# Text box with data summary
with gr.Column(visible=False) as result_data_summary:
data_summary = gr.Text(
@@ -195,8 +189,9 @@ class Interface:
hist_plot = gr.Plot(label="Volume intensity histogram")
### Gradio objects lists
pipeline = Pipeline()
session = gr.State([])
pipeline = Pipeline()
# Results
results = [
@@ -239,15 +234,15 @@ class Interface:
btn_run.click(
fn=self.set_spinner, inputs=[], outputs=btn_run).success(
fn=self.start_session, inputs=inputs, outputs=session).success(
fn=self.make_pipeline, inputs=session, outputs=session).success(
fn=pipeline.process_input, inputs=session, outputs=session).success(
fn=pipeline.show_summary_str, inputs=session, outputs=data_summary).success(
fn=pipeline.create_zslice_fig, inputs=session, outputs=zslice_plot).success(
fn=pipeline.create_yslice_fig, inputs=session, outputs=yslice_plot).success(
fn=pipeline.create_xslice_fig, inputs=session, outputs=xslice_plot).success(
fn=pipeline.create_projections_figs, inputs=session, outputs=projection_outputs).success(
fn=pipeline.show_summary_str, inputs=session, outputs=data_summary).success(
fn=pipeline.plot_vol_histogram, inputs=session, outputs=hist_plot).success(
fn=pipeline.run_pipeline, inputs=session, outputs=outputs).success(
# fn=pipeline.process_input, inputs=session, outputs=session).success(
# fn=pipeline.show_summary_str, inputs=session, outputs=data_summary).success(
# fn=pipeline.create_zslice_fig, inputs=session, outputs=zslice_plot).success(
# fn=pipeline.create_yslice_fig, inputs=session, outputs=yslice_plot).success(
# fn=pipeline.create_xslice_fig, inputs=session, outputs=xslice_plot).success(
# fn=pipeline.create_projections_figs, inputs=session, outputs=projection_outputs).success(
# fn=pipeline.show_summary_str, inputs=session, outputs=data_summary).success(
# fn=pipeline.plot_vol_histogram, inputs=session, outputs=hist_plot).success(
fn=self.show_results, inputs=operations, outputs=results).success(
fn=self.set_relaunch_button, inputs=[], outputs=btn_run)
@@ -273,6 +268,7 @@ class Interface:
session = Session()
session.root_path = os.path.expanduser("~")
session.interface = "gradio"
session.all_operations = Interface().operations
session.operations = args[0]
session.base_path = args[1]
session.explorer = args[2]
@@ -436,19 +432,61 @@ class Pipeline:
self.figsize = 8 # Used for matplotlig figure size
self.display_saturation_percentile = 99
self.verbose = False
self.session = None
def run_pipeline(self, session):
self.session = session
outputs = []
print(session.all_operations)
for operation in session.all_operations:
if operation in session.operations:
outputs.append(self.run_operation(operation))
else:
print(f"Skipping {operation}")
outputs.append(None)
return outputs
def run_operation(self, operation):
print(f"Running {operation}")
def process_input(self, session):
if operation == "Data summary":
return "Hello from Pipeline!"
elif operation == "Z Slicer":
return None
elif operation == "Y Slicer":
return None
elif operation == "X Slicer":
return None
elif operation == "Z max projection":
return None
elif operation == "Z min projection":
return None
elif operation == "Intensity histogram":
return None
else:
raise ValueError("Unknown operation")
def process_input(self):
# Get info from Tiff file
session.get_data_info()
session.create_summary_dict()
self.session.get_data_info()
self.session.create_summary_dict()
# Memory map data as a virtual stack
try:
session.vol = load(
session.file_path,
virtual_stack=session.virtual_stack,
dataset_name=session.dataset_name,
self.session.vol = load(
self.session.file_path,
virtual_stack=self.session.virtual_stack,
dataset_name=self.session.dataset_name,
)
except:
return session
Loading