bindmc 0.1.4__tar.gz → 0.1.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bindmc-0.1.4 → bindmc-0.1.5}/PKG-INFO +1 -1
- {bindmc-0.1.4 → bindmc-0.1.5}/pyproject.toml +1 -1
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/main.py +1 -1
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/bayes.py +7 -2
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/fitting.py +1 -1
- {bindmc-0.1.4 → bindmc-0.1.5}/README.md +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/__init__.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/__main__.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/Class model.md +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/TODO.md +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/TODO_old.md +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/__init__.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/app.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/BindingConstant.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/ChemicalShiftParam.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/Component.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/ExptData.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/ExptDataType.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/FitResult.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/MCMCSim.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/Model.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/RawData.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/Simulation.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/UIBindings.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/classes/__init__.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/__init__.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/base.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/bayes_priors.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/binding_model.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/body.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/data_gen.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/data_import.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/data_model.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/graph.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/header.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/components/simulation.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/default_models.json +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/export/__init__.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/export/notebook_exporter.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/state/__init__.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/state/statemanager.py +0 -0
- {bindmc-0.1.4 → bindmc-0.1.5}/src/bindmc/webgui/utils.py +0 -0
|
@@ -107,7 +107,7 @@ storage_path.mkdir(parents=True, exist_ok=True)
|
|
|
107
107
|
# Redirect native window persistence data away from default paths
|
|
108
108
|
app.native.start_args["storage_path"] = str(storage_path)
|
|
109
109
|
|
|
110
|
-
if __name__
|
|
110
|
+
if __name__ in {"__main__", "__mp_main__"}:
|
|
111
111
|
ui.run(title="BindMC", reload=reload, native=native_mode, port=native.find_open_port(), storage_secret="bindmc_secret")
|
|
112
112
|
|
|
113
113
|
|
|
@@ -245,7 +245,7 @@ class BayesPanel(BaseComponent):
|
|
|
245
245
|
return
|
|
246
246
|
|
|
247
247
|
if active_fit.bd_model is None:
|
|
248
|
-
|
|
248
|
+
logger.info("No bindtools model selected for fitting, generating one.")
|
|
249
249
|
ui.notify("Running an initial fit using least_sq")
|
|
250
250
|
m1 = self.sm.generate_binding_model_for_fit(active_fit)
|
|
251
251
|
m1 = await run.cpu_bound(
|
|
@@ -262,6 +262,7 @@ class BayesPanel(BaseComponent):
|
|
|
262
262
|
nwalkers = int(self.nwalkers_input.value)
|
|
263
263
|
obslist = self.sm.active_expt_data.get_obs_list(self.sm._expt_dtypes)
|
|
264
264
|
|
|
265
|
+
logger.info("Setting up for MCMC run")
|
|
265
266
|
# Create MCMC simulation (not yet registered in state)
|
|
266
267
|
self.mcmc = MCMCSim(
|
|
267
268
|
model=self.sm.active_model,
|
|
@@ -281,12 +282,13 @@ class BayesPanel(BaseComponent):
|
|
|
281
282
|
type="info",
|
|
282
283
|
timeout=60000,
|
|
283
284
|
)
|
|
285
|
+
logger.info("Running a trial run")
|
|
284
286
|
try:
|
|
285
287
|
trial_elapsed = await run.cpu_bound(partial(_run_mcmc_trial, self.mcmc.mc, _TRIAL_STEPS))
|
|
286
288
|
it_s = _TRIAL_STEPS / trial_elapsed
|
|
287
289
|
full_seconds = nsteps_target * trial_elapsed / _TRIAL_STEPS
|
|
288
290
|
full_time_str = _format_duration(full_seconds)
|
|
289
|
-
|
|
291
|
+
logger.info("Trial run finished; took {trial_elapsed:.1f} s ({it_s:.2f} it/s).")
|
|
290
292
|
with ui.dialog() as timing_dialog, ui.card().classes("w-[min(560px,92vw)]"):
|
|
291
293
|
ui.label("Runtime estimate").classes("text-lg font-bold")
|
|
292
294
|
ui.label(f"{_TRIAL_STEPS:,} steps took {trial_elapsed:.1f} s ({it_s:.2f} it/s).").classes(
|
|
@@ -296,6 +298,8 @@ class BayesPanel(BaseComponent):
|
|
|
296
298
|
f"The full run ({nsteps_target:,} steps, {nwalkers} walkers) "
|
|
297
299
|
f"will take approximately {full_time_str}."
|
|
298
300
|
).classes("mt-2")
|
|
301
|
+
logger.info(f"The full run ({nsteps_target:,} steps, {nwalkers} walkers) "
|
|
302
|
+
f"will take approximately {full_time_str}.")
|
|
299
303
|
ui.label("Do you want to continue?").classes("mt-1 font-medium")
|
|
300
304
|
with ui.row().classes("w-full justify-end gap-2 mt-3"):
|
|
301
305
|
ui.button("Cancel", on_click=lambda: timing_dialog.submit(False))
|
|
@@ -320,6 +324,7 @@ class BayesPanel(BaseComponent):
|
|
|
320
324
|
self.run_button.set_enabled(False)
|
|
321
325
|
self.stop_button.set_enabled(True)
|
|
322
326
|
self.progress_bar.value = 0
|
|
327
|
+
logger.info("Starting MCMC analysis")
|
|
323
328
|
self.progress_label.text = "Starting MCMC analysis..."
|
|
324
329
|
self._log_status("Starting MCMC analysis...")
|
|
325
330
|
self._start_run_timers()
|
|
@@ -535,7 +535,7 @@ class FittingPanel(BaseComponent):
|
|
|
535
535
|
|
|
536
536
|
def _update_fit_graphs(self, e=None) -> None:
|
|
537
537
|
"""Update the fit results display."""
|
|
538
|
-
|
|
538
|
+
logger.info("Updating fit results...")
|
|
539
539
|
self.fit_graph.clear_graph(update=False)
|
|
540
540
|
if len(self.sm.fits) > 0:
|
|
541
541
|
self.speciation_graph.clear_graph(update=False)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|