[1]:
import sigopt
import os
import numpy as np
import logging
import deeptime.markov.msm as dm
import tqdm.auto as tqdm
import mr_toolkit.trajectory_analysis.traj_analysis as ta
from mr_toolkit.reweighting.analysis import get_set_kls
import synd.core
from mr_toolkit.reweighting import analysis as rwa
import matplotlib.pyplot as plt
from scipy.stats import entropy
WARNING msm_we not found, fpt_distribution calculations will be unavailable analysis.py:18
Hyperparameter optimization with SigOpt
To build a reweighted MSM using a given set of trajectories, there are a number of sensitive hyperparameters. These include: - MSM lagtime - Fragment length - Last-fraction of trajectories to use
Besides lagtime, it’s not necessarily clear how to choose these.
This notebook demonstrates a heuristic optimization approach that works by splitting up the input dataset into subsets, and identifying the hyperparameters that provide maximal similarity across subsets. This assumes that self-consistency across subsets means we’re getting reasonably consistent estimates.
This criteria is just a loose guide – by no means is it rigorously considered an optimal criterion!
[2]:
n_trajectories = 400
trajectory_length = 20
n_subsets = 4
# From the underlying model
n_states = 100
First, verify an API key is stored in the environment. To get an API key for sigopt, register for an account and then visit the token page.
[3]:
if os.environ.get('SIGOPT_API_TOKEN', None) is None:
raise Exception('Set $SIGOPT_API_TOKEN in your environment to use this notebook.')
Then create the sigopt project, or use the existing one.
NB: One nice detail about sigopt is that successive optimizations in the same project will learn from previous runs, even if they’re in a new experiment.
[4]:
if 'SIGOPT_PROJECT' not in os.environ.keys():
project_name = 'sample_optimization'
print(f'$SIGOPT_PROJECT not set in environment -- creating a new project named {project_name}.')
try:
sigopt.create_project(project_name)
except sigopt.factory.ConflictingProjectException as e:
print("Sigopt project already exists, using that.")
os.environ['SIGOPT_PROJECT'] = project_name
$SIGOPT_PROJECT not set in environment -- creating a new project named sample_optimization.
Sigopt project already exists, using that.
Generate sample data
[5]:
state_definitions = np.load('sample_data/coarser-state_definitions.npz')
source_states = state_definitions['source']
target_states = state_definitions['target']
[6]:
synd_model = synd.core.load_model('sample_data/coarser-model.synd')
# Set the SynD model seed so we get the same random trajectories
synd_model.rng = np.random.default_rng(seed=50)
[7]:
ref_equil = np.load('sample_data/coarser-reference_distributions.npz')['equil']
[8]:
initial_points = synd_model.rng.choice(np.arange(n_states), n_trajectories)
trajectories = synd_model.generate_trajectory(
initial_states = initial_points,
n_steps = trajectory_length
)
Split data into subsets
First, let’s split our data up into equal-size subsets.
[9]:
datasets = np.array([trajectories[i::n_subsets] for i in range(n_subsets)])
Test parameters on subsets to identify optimal
Now, we’ll run a Sigopt experiment to identify the “optimal” set of parameters.
[10]:
metaparameters = dict(
trajectory_length=trajectory_length,
n_trajectories_per_set=n_trajectories // n_subsets,
n_trajectory_sets=n_subsets,
# These below probably won't change much
min_weight=1e-12, # This just helps with numerical stability during the reweighting iteration
n_reweight_iters=100,
)
Define parameter space
[11]:
experiment = sigopt.create_experiment(
name=f"Sample optimization",
budget=50,
parameters=[
dict(name='N',
type='int',
bounds={'min': 2, 'max':trajectory_length-1 }),
dict(name='last_frac',
type='double',
grid=[0.25, 0.5, 0.75, 1.0]),
dict(name='lag',
type='int',
bounds={'min': 1, 'max': trajectory_length-1 }),
],
metrics=[
{
"name": "lag_vs_N",
"strategy": "constraint",
"objective": "minimize",
"threshold": 1.0,
},
{
"name": "avg_set_iterative_kl",
"strategy": "optimize",
"objective": "minimize",
},
],
metadata=dict(
trajectory_length=trajectory_length,
n_trajectories_per_set=n_trajectories // n_subsets,
n_trajectory_sets=n_subsets,
# These below probably won't change much
min_weight=1e-12, # This just helps with numerical stability during the reweighting iteration
n_reweight_iters=100,
),
)
[17:26:04] INFO AI Experiment created, view it on the SigOpt dashboard at factory.py:54 https://app.sigopt.com/aiexperiment/570847
Perform optimization
We’ll do a number of runs now (determined by the budget above) to explore the hyperparameter space.
We’ll let Sigopt’s ML engine guide the parameter choices, and only concern ourselves with the final result.
[12]:
for run in tqdm.tqdm(experiment.loop(), desc='SigOpt runs', total=int(experiment.progress.remaining_budget)):
with run:
# Lag time must be shorter than N, so this must be below 1
lag_vs_N = run.params["lag"] / run.params["N"]
run.log_metric("lag_vs_N", lag_vs_N)
if lag_vs_N >= 1.0:
print("Invalid lag / N combination, skipping to next run")
continue
# Estimate reweighted equilibrium distribution for each set
reweighted_equil_estimates = np.full((n_subsets, n_states), fill_value=np.nan)
for i, trajectory_set in enumerate(datasets):
(states, stationaries, last_iter, reweighted_matrices,) = rwa.compute_reweighted_stationary(
trajectory_set,
N=run.params["N"],
lag=run.params["lag"],
last_frac=run.params['last_frac'],
n_clusters=n_states,
n_reweighting_iters=metaparameters['n_reweight_iters'],
min_weight=metaparameters['min_weight'],
)
print(last_iter)
reweighted_equil_estimates[i] = stationaries[last_iter]
mean_kl = get_set_kls(reweighted_equil_estimates)
if np.isnan(mean_kl):
mean_kl = 10
# Log set-set KL divergence
run.log_metric('avg_set_iterative_kl', mean_kl)
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604117
Invalid lag / N combination, skipping to next run
[17:26:05] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604117
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604118
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604118
[17:26:06] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604119
reweighted iteration is converged at iter 26
26
reweighted iteration is converged at iter 22
22
reweighted iteration is converged at iter 24
24
reweighted iteration is converged at iter 33
33
[17:26:07] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604119
[17:26:08] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604120
/home/jd/anaconda3/envs/mr_toolkit/lib/python3.11/site-packages/mr_toolkit/trajectory_analysis/traj_analysis.py:510: RuntimeWarning: divide by zero encountered in log
np.log(stationary_distributions[-1]) - np.log(stationary_distributions[-2])
/home/jd/anaconda3/envs/mr_toolkit/lib/python3.11/site-packages/mr_toolkit/trajectory_analysis/traj_analysis.py:510: RuntimeWarning: invalid value encountered in subtract
np.log(stationary_distributions[-1]) - np.log(stationary_distributions[-2])
reweighted iteration is converged at iter 33
33
reweighted iteration is converged at iter 32
32
reweighted iteration is converged at iter 32
32
reweighted iteration is converged at iter 29
29
[17:26:09] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604120
[17:26:10] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604121
reweighted iteration is converged at iter 40
40
reweighted iteration is converged at iter 34
34
reweighted iteration is converged at iter 26
26
reweighted iteration is converged at iter 29
29
[17:26:11] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604121
[17:26:12] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604122
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604122
[17:26:13] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604123
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604123
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604124
reweighted iteration is converged at iter 65
65
reweighted iteration is converged at iter 39
39
reweighted iteration is converged at iter 23
23
reweighted iteration is converged at iter 33
33
[17:26:15] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604124
[17:26:16] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604125
reweighted iteration is converged at iter 23
23
reweighted iteration is converged at iter 24
24
reweighted iteration is converged at iter 23
23
reweighted iteration is converged at iter 26
26
[17:26:17] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604125
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604126
[17:26:18] WARNING Stationary solution 1 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 2 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 3 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 4 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 5 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 6 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 7 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 8 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 9 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 10 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 11 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 12 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 13 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 14 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 15 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 16 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 17 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 18 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 19 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 20 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 21 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 22 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 23 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 24 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 25 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 26 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 27 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 28 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 29 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 30 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 31 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 32 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 33 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 34 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 35 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 36 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 37 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 38 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 39 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 40 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 41 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 42 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 43 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 44 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 45 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 46 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 47 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 48 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 49 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 50 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 51 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 52 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 53 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 54 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 55 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 56 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 57 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 58 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 59 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 60 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 61 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 62 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 63 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 64 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 65 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 66 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 67 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 68 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 69 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 70 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 71 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 72 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 73 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 74 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 75 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 76 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 77 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 78 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 79 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 80 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 81 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 82 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 83 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 84 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 85 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 86 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 87 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 88 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 89 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 90 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 91 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 92 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 93 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 94 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 95 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 96 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 97 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 98 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 99 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
CRITICAL No good stationary solution exists! Stopping iteration at iter 0 traj_analysis.py:470
0
WARNING Stationary solution 1 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 2 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 3 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 4 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 5 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 6 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 7 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 8 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 9 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 10 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 11 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 12 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 13 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 14 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 15 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 16 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 17 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 18 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 19 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 20 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 21 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 22 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 23 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 24 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 25 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 26 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 27 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 28 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 29 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 30 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 31 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 32 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 33 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 34 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 35 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 36 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 37 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 38 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 39 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 40 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 41 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 42 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 43 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 44 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 45 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 46 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 47 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 48 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 49 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 50 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 51 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 52 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 53 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 54 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 55 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 56 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 57 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 58 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 59 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 60 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 61 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 62 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 63 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 64 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 65 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 66 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 67 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 68 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 69 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 70 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 71 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 72 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 73 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 74 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 75 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 76 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 77 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 78 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 79 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 80 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 81 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 82 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 83 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 84 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 85 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 86 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 87 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 88 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 89 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 90 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 91 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 92 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 93 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 94 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 95 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 96 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 97 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 98 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 99 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
CRITICAL No good stationary solution exists! Stopping iteration at iter 0 traj_analysis.py:470
0
WARNING Stationary solution 1 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 2 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 3 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 4 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 5 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 6 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 7 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 8 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 9 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 10 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 11 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 12 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 13 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 14 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 15 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 16 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 17 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 18 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 19 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 20 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 21 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 22 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 23 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 24 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 25 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 26 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 27 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 28 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 29 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 30 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 31 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 32 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 33 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 34 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 35 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 36 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 37 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 38 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 39 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 40 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 41 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 42 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 43 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 44 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 45 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 46 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 47 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 48 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 49 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 50 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 51 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 52 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 53 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 54 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 55 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 56 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 57 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 58 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 59 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 60 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 61 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 62 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 63 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 64 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 65 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 66 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 67 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 68 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 69 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 70 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 71 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 72 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 73 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 74 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 75 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 76 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 77 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 78 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 79 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 80 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 81 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 82 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 83 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 84 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 85 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 86 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 87 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 88 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 89 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 90 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 91 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 92 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 93 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 94 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 95 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 96 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 97 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 98 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 99 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
CRITICAL No good stationary solution exists! Stopping iteration at iter 0 traj_analysis.py:470
0
WARNING Stationary solution 1 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 2 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 3 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 4 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 5 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 6 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 7 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 8 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 9 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 10 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 11 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 12 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 13 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 14 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 15 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 16 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 17 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 18 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 19 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 20 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 21 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 22 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 23 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 24 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 25 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 26 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 27 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 28 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 29 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 30 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 31 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 32 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 33 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 34 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 35 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 36 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 37 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 38 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 39 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 40 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 41 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 42 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 43 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 44 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 45 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 46 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 47 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 48 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 49 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 50 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 51 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 52 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 53 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 54 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 55 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 56 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 57 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 58 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 59 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 60 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 61 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 62 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 63 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 64 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 65 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 66 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 67 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 68 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 69 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 70 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 71 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 72 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 73 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 74 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 75 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 76 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 77 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 78 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 79 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 80 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 81 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 82 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 83 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 84 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 85 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 86 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 87 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 88 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 89 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 90 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 91 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 92 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 93 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 94 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 95 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 96 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 97 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 98 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 99 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
CRITICAL No good stationary solution exists! Stopping iteration at iter 0 traj_analysis.py:470
0
[17:26:19] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604126
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604127
reweighted iteration is converged at iter 25
25
reweighted iteration is converged at iter 30
30
reweighted iteration is converged at iter 24
24
reweighted iteration is converged at iter 24
24
[17:26:21] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604127
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604128
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604128
[17:26:22] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604129
reweighted iteration is converged at iter 79
79
99
[17:26:23] WARNING Stationary solution 1 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 2 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 3 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 4 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 5 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 6 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 7 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 8 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 9 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 10 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 11 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 12 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 13 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 14 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 15 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 16 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 17 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 18 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 19 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 20 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 21 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 22 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 23 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 24 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 25 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 26 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 27 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 28 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 29 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 30 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 31 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 32 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 33 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 34 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 35 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 36 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 37 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 38 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 39 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 40 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 41 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 42 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 43 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 44 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 45 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 46 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 47 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 48 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 49 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 50 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 51 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 52 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 53 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 54 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 55 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 56 is all in one bin in iter 0 -- picking next-biggest traj_analysis.py:476 eigenvalue
WARNING Stationary solution 57 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 58 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 59 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 60 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 61 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 62 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 63 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 64 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 65 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 66 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 67 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 68 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 69 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 70 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 71 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 72 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 73 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 74 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 75 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 76 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 77 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 78 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 79 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 80 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 81 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 82 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 83 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 84 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 85 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 86 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 87 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 88 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 89 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 90 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 91 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 92 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 93 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 94 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 95 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 96 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 97 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 98 is not positive semidefinite, trying the next one traj_analysis.py:478
WARNING Stationary solution 99 is not positive semidefinite, trying the next one traj_analysis.py:478
CRITICAL No good stationary solution exists! Stopping iteration at iter 0 traj_analysis.py:470
0
reweighted iteration is converged at iter 45
45
[17:26:24] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604129
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604130
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604130
[17:26:25] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604131
reweighted iteration is converged at iter 54
54
99
99
reweighted iteration is converged at iter 38
38
[17:26:27] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604131
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604132
reweighted iteration is converged at iter 33
33
reweighted iteration is converged at iter 21
21
reweighted iteration is converged at iter 37
37
reweighted iteration is converged at iter 30
30
[17:26:29] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604132
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604133
reweighted iteration is converged at iter 25
25
reweighted iteration is converged at iter 23
23
reweighted iteration is converged at iter 22
22
reweighted iteration is converged at iter 22
22
[17:26:31] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604133
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604134
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604134
[17:26:32] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604135
reweighted iteration is converged at iter 31
31
reweighted iteration is converged at iter 30
30
reweighted iteration is converged at iter 37
37
reweighted iteration is converged at iter 35
35
[17:26:34] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604135
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604136
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604136
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604137
Invalid lag / N combination, skipping to next run
[17:26:35] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604137
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604138
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604138
[17:26:36] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604139
reweighted iteration is converged at iter 59
59
reweighted iteration is converged at iter 26
26
reweighted iteration is converged at iter 22
22
reweighted iteration is converged at iter 29
29
[17:26:38] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604139
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604140
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604140
[17:26:39] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604141
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604141
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604142
reweighted iteration is converged at iter 28
28
reweighted iteration is converged at iter 37
37
reweighted iteration is converged at iter 40
40
reweighted iteration is converged at iter 27
27
[17:26:41] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604142
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604143
Invalid lag / N combination, skipping to next run
[17:26:42] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604143
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604144
99
reweighted iteration is converged at iter 30
30
reweighted iteration is converged at iter 23
23
reweighted iteration is converged at iter 28
28
[17:26:45] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604144
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604145
reweighted iteration is converged at iter 29
29
reweighted iteration is converged at iter 28
28
reweighted iteration is converged at iter 29
29
reweighted iteration is converged at iter 32
32
[17:26:47] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604145
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604146
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604146
[17:26:48] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604147
reweighted iteration is converged at iter 27
27
reweighted iteration is converged at iter 31
31
reweighted iteration is converged at iter 25
25
reweighted iteration is converged at iter 24
24
[17:26:49] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604147
[17:26:50] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604149
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604149
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604150
Invalid lag / N combination, skipping to next run
[17:26:51] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604150
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604151
99
reweighted iteration is converged at iter 30
30
reweighted iteration is converged at iter 23
23
reweighted iteration is converged at iter 28
28
[17:26:53] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604151
[17:26:54] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604152
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604152
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604153
Invalid lag / N combination, skipping to next run
[17:26:55] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604153
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604154
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604154
[17:26:56] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604155
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604155
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604156
Invalid lag / N combination, skipping to next run
[17:26:57] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604156
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604157
reweighted iteration is converged at iter 29
29
reweighted iteration is converged at iter 28
28
reweighted iteration is converged at iter 26
26
reweighted iteration is converged at iter 31
31
[17:26:58] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604157
[17:26:59] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604158
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604158
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604159
99
reweighted iteration is converged at iter 38
38
reweighted iteration is converged at iter 24
24
reweighted iteration is converged at iter 36
36
[17:27:02] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604159
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604160
reweighted iteration is converged at iter 30
30
reweighted iteration is converged at iter 35
35
reweighted iteration is converged at iter 31
31
reweighted iteration is converged at iter 32
32
[17:27:04] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604160
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604161
Invalid lag / N combination, skipping to next run
[17:27:05] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604161
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604162
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604162
[17:27:06] INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604163
reweighted iteration is converged at iter 25
25
reweighted iteration is converged at iter 25
25
reweighted iteration is converged at iter 25
25
reweighted iteration is converged at iter 24
24
[17:27:07] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604163
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604164
Invalid lag / N combination, skipping to next run
[17:27:08] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604164
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604165
Invalid lag / N combination, skipping to next run
INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604165
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604166
Invalid lag / N combination, skipping to next run
[17:27:09] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604166
INFO Run started, view it on the SigOpt dashboard at run_factory.py:13 https://app.sigopt.com/run/604167
reweighted iteration is converged at iter 45
45
reweighted iteration is converged at iter 26
26
reweighted iteration is converged at iter 31
31
reweighted iteration is converged at iter 37
37
[17:27:11] INFO Run finished, view it on the SigOpt dashboard at run_context.py:371 https://app.sigopt.com/run/604167
Analyze global model using optimal parameters
Now let’s take the “best” set of parameters, i.e. those that produced most similar estimates across the trajectory subsets, and analyze the full set of trajectories with those.
[13]:
best_run = next(experiment.get_best_runs())
best_N = best_run.assignments["N"]
best_lag = best_run.assignments["lag"]
best_last_frac = best_run.assignments["last_frac"]
print(f"Identified optimal fragment length as {best_N}, optimal lag as {best_lag}, and last trajectory fraction to use as {best_last_frac}.")
Identified optimal fragment length as 16, optimal lag as 1, and last trajectory fraction to use as 0.25.
[14]:
(states, stationaries, last_iter, reweighted_matrices,) = rwa.compute_reweighted_stationary(
trajectories,
N=best_N,
lag=best_lag,
last_frac=best_last_frac,
n_clusters=n_states,
n_reweighting_iters=metaparameters['n_reweight_iters'],
min_weight=metaparameters['min_weight'],
)
reweighted_equil = stationaries[last_iter]
reweighted iteration is converged at iter 18
Compare to standard MSM
[15]:
msm = dm.MaximumLikelihoodMSM().fit_from_discrete_timeseries(trajectories, best_lag)
msm_equil = msm.fetch_model().stationary_distribution
[16]:
plt.plot(msm_equil, label='MSM')
plt.plot(reweighted_equil, label='Optimized reweighted')
plt.plot(ref_equil, color='k')
plt.legend()
[16]:
<matplotlib.legend.Legend at 0x7efc7e60b450>
[17]:
msm_entropy = entropy(msm_equil, ref_equil)
reweighted_entropy = entropy(reweighted_equil, ref_equil)
[18]:
print("Relative entropies to reference (lower is better)")
print(f"MSM estimate: \t{msm_entropy:.2e}")
print(f"Reweighted estimate: \t{reweighted_entropy:.2e}")
Relative entropies to reference (lower is better)
MSM estimate: 1.09e-02
Reweighted estimate: 9.92e-03
[ ]: