Trp-cage haMSM Construction and Analysis
For these examples, we’ll be constructing an haMSM from simulations of Trp-cage unfolding.
[1]:
from msm_we import modelWE
import numpy as np
import ray
Prep
First, let’s set some parameters for haMSM building.
[3]:
h5file_paths = ['../tests/reference/1000ns_ntl9/west.h5']
# Number of MSM microstates to initially put in each stratum/WE bin
clusters_per_stratum = 25
dimreduce_method = 'pca'
# Boundaries of the basis/target, in progress coordinate space
pcoord_bounds = {
'basis': [[0, 0.15]],
'target': [[0.7, 100]]
}
model_name = 'NaCl Sample'
# Reference structure
ref_file = 'data/2JOF.pdb'
# WESTPA resampling time
tau = 1e-9
Define MSM featurization
The function processCoordinates defines a transformation that’s applied to the coordinates in auxdata/coord before dimensionality reduction/clustering.
The inputs are the coordinates (read from auxdata/coord) for each segment in the loaded iteration(s), and it should return an array of features for each.
We could just use full XYZ coordinates for our MSM features. This would be a very simple (and very poor) choice – it doesn’t capture some of the translational invariance that something like pairwise distances might.
[4]:
def processCoordinates(self, coords):
return coords.reshape(coords.shape[0], -1)
modelWE.processCoordinates = processCoordinates
So, let’s use pairwise distances instead, at the cost of a more expensive calculation.
Note that because of how work is serialized for parallelization, we have to define the Universe objects within processCoordinates. Otherwise, there would be multiple workers acting on the same object.
[5]:
import MDAnalysis as mda
from MDAnalysis.analysis import distances
def processCoordinates(self, coords):
u_ref = mda.Universe(ref_file)
u_check = mda.Universe(ref_file)
dist_out = []
u_check.load_new(coords)
for frame in u_check.trajectory:
dists = distances.dist(
u_check.select_atoms('backbone'),
u_ref.select_atoms('backbone')
)[2]
dist_out.append(dists)
dist_out = np.array(dist_out)
return dist_out
modelWE.processCoordinates = processCoordinates
Model-building with build_analyze_model()
You can construct an haMSM (and validation haMSMs) with one call to build_analyze_model()
[6]:
model = modelWE()
model.build_analyze_model(
file_paths=h5file_paths,
# ref_struct=basis_ref_dict,
ref_struct=ref_file,
modelName=model_name,
basis_pcoord_bounds=pcoord_bounds['basis'],
target_pcoord_bounds=pcoord_bounds['target'],
dimreduce_method=dimreduce_method,
n_clusters=clusters_per_stratum,
tau=tau
)
2022-10-10 10:41:57,299 INFO worker.py:1509 -- Started a local
Ray instance. View the dashboard at 127.0.0.1:8265
INFO Be aware: Number of cluster centers _clustering.py:141 is an important parameter, and can drastically affect model quality. We recommend examining block-validation results with a range of numbers of clusters, to check for overfitting.
INFO Beginning stratified clustering. _clustering.py:148
INFO Obtaining bin definitions from _clustering.py:568 iteration 2 in file ../tests/reference/1000ns_ntl9/west.h 5
INFO Loading pickled bin mapper from H5 _clustering.py:572 for stratified clustering...
INFO Doing stratified clustering stratified_clustering.py:66 with 300 total clusters
(do_stratified_ray_discretization pid=185903) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185910) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185906) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185908) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185913) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185916) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185904) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185915) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185911) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185914) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185912) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185909) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185907) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185902) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185905) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
(do_stratified_ray_discretization pid=185917) Warning: importing
'simtk.openmm' is deprecated. Import 'openmm' instead.
INFO Discretization complete _clustering.py:1204
INFO Fluxmatrices all obtained _fluxmatrix.py:497
INFO Started with 300 clusters, and _clustering.py:1020 removed 108
WARNING All clusters were cleaned from bins _clustering.py:1036 {11}
INFO Using cached model for _clustering.py:1132 discretization
INFO Discretization complete _clustering.py:1204
/home/jd/msm_we/msm_we/_hamsm/_clustering.py:1532: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray. self.targetRMSD_all = np.array(cluster_pcoord_all)[pcoord_sort_indices]
INFO Fluxmatrices all obtained _fluxmatrix.py:497
INFO _analysis.py:170 Flux converged to 1.8830e+06 after 1 iterations of inverse iteration.
INFO Done with steady-state estimation. _analysis.py:181
INFO Fluxmatrices all obtained _fluxmatrix.py:497
INFO Started with 300 clusters, and _clustering.py:1020 removed 128
WARNING All clusters were cleaned from bins _clustering.py:1036 {11}
INFO Using cached model for _clustering.py:1132 discretization
INFO Discretization complete _clustering.py:1204
INFO Fluxmatrices all obtained _fluxmatrix.py:497
INFO _analysis.py:170 Flux converged to 5.5930e+05 after 1 iterations of inverse iteration.
INFO Done with steady-state estimation. _analysis.py:181
INFO Fluxmatrices all obtained _fluxmatrix.py:497
INFO Started with 300 clusters, and _clustering.py:1020 removed 123
WARNING All clusters were cleaned from bins _clustering.py:1036 {11}
INFO Using cached model for _clustering.py:1132 discretization
INFO Discretization complete _clustering.py:1204
INFO Fluxmatrices all obtained _fluxmatrix.py:497
INFO _analysis.py:170 Flux converged to 2.8846e+06 after 1 iterations of inverse iteration.
INFO Done with steady-state estimation. _analysis.py:181
Model-building step by step
build_analyze_model() is just a convenient wrapper around the following steps.
You can run them manually if you want to observe each step of the process.
It’s helpful to start off by running step-by-step while you’re starting analysis for a system, to fine-tune parameters without re-running the entire workflow.
First, we launch Ray, which is the backend for the parallel work manager.
[7]:
ray.init(ignore_reinit_error=True)
2022-10-10 10:42:47,151 INFO worker.py:1351 -- Calling ray.init() again after it has already been called.
[7]:
Ray
| Python version: | 3.9.13 |
| Ray version: | 2.0.0 |
| Dashboard: | http://127.0.0.1:8265 |
[8]:
model = modelWE()
[9]:
model.initialize(
fileSpecifier=['../tests/reference/1000ns_ntl9/west.h5'],
refPDBfile=ref_file,
modelName=model_name,
basis_pcoord_bounds=pcoord_bounds['basis'],
target_pcoord_bounds=pcoord_bounds['target'],
dim_reduce_method=dimreduce_method,
tau=tau
)
[11]:
model.get_iterations()
model.get_coordSet(last_iter = model.maxIter, streaming=True)
[13]:
model.dimReduce()
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
store_validation_model=True is necessary for block validation. It enables caching the model immediately after discretization in model.post_cluster_model, so that the blocks can be efficiently created later.
[14]:
model.cluster_coordinates(
n_clusters=clusters_per_stratum,
use_ray=True,
stratified=True,
store_validation_model=True, # Required for block validation
random_state=1337,
)
INFO Be aware: Number of cluster centers _clustering.py:141 is an important parameter, and can drastically affect model quality. We recommend examining block-validation results with a range of numbers of clusters, to check for overfitting.
INFO Beginning stratified clustering. _clustering.py:148
INFO Obtaining bin definitions from _clustering.py:568 iteration 2 in file ../tests/reference/1000ns_ntl9/west.h 5
INFO Loading pickled bin mapper from H5 _clustering.py:572 for stratified clustering...
ERROR Stratified clustering currently MUST _clustering.py:608 run in streaming mode (and with ray enabled for discretization). Enabling both and continuing...
INFO Doing stratified clustering stratified_clustering.py:66 with 300 total clusters
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
Warning: importing 'simtk.openmm' is deprecated. Import 'openmm' instead.
INFO Discretization complete _clustering.py:1204
[16]:
model.get_fluxMatrix(n_lag=0)
It’s likely our flux matrix isn’t strongly connected. This cleaning step removes all clusters that aren’t in the largest connected set, then rediscretizes all the trajectories according to the new, reduced set of clusters.
[18]:
model.organize_fluxMatrix()
INFO Started with 300 clusters, and _clustering.py:1020 removed 109
WARNING All clusters were cleaned from bins _clustering.py:1036 {11}
INFO Using cached model for _clustering.py:1132 discretization
INFO Discretization complete _clustering.py:1204
[19]:
if generate_test_files:
with open('../tests/reference/1000ns_ntl9/models/organized.obj', 'wb') as outfile:
pickle.dump(model, outfile)
np.save('../tests/reference/1000ns_ntl9/models/fluxmatrix.npy', model.fluxMatrix)
Transition matrix estimation
[20]:
model.get_Tmatrix()
[21]:
model.Tmatrix
[21]:
array([[0.32293215, 0.30579927, 0.01005867, ..., 0. , 0.33022179,
0. ],
[0.27769355, 0.31023711, 0.0148812 , ..., 0. , 0.2590533 ,
0. ],
[0.28155956, 0.24801922, 0.00295366, ..., 0. , 0.26514922,
0. ],
...,
[0. , 0. , 0. , ..., 0. , 0. ,
0.32410505],
[0.31693347, 0.27896914, 0.0031783 , ..., 0. , 0.35730547,
0. ],
[0. , 0. , 0. , ..., 0. , 1. ,
0. ]])
[22]:
model.get_steady_state()
INFO _analysis.py:170 Flux converged to 2.0346e+06 after 1 iterations of inverse iteration.
INFO Done with steady-state estimation. _analysis.py:181
[23]:
model.get_steady_state_target_flux()
Model validation
This block validation step
[25]:
model.do_block_validation(
cross_validation_groups=2,
cross_validation_blocks=4
)
INFO Fluxmatrices all obtained _fluxmatrix.py:497
INFO Started with 300 clusters, and _clustering.py:1020 removed 127
WARNING All clusters were cleaned from bins _clustering.py:1036 {11}
INFO Using cached model for _clustering.py:1132 discretization
INFO Discretization complete _clustering.py:1204
INFO Fluxmatrices all obtained _fluxmatrix.py:497
INFO _analysis.py:170 Flux converged to 1.6309e+06 after 1 iterations of inverse iteration.
INFO Done with steady-state estimation. _analysis.py:181
INFO Fluxmatrices all obtained _fluxmatrix.py:497
INFO Started with 300 clusters, and _clustering.py:1020 removed 119
WARNING All clusters were cleaned from bins _clustering.py:1036 {11}
INFO Using cached model for _clustering.py:1132 discretization
INFO Discretization complete _clustering.py:1204
INFO Fluxmatrices all obtained _fluxmatrix.py:497
INFO _analysis.py:170 Flux converged to 4.4589e+06 after 1 iterations of inverse iteration.
INFO Done with steady-state estimation. _analysis.py:181
Generate lists of structures in each cluster
[26]:
model.update_cluster_structures()
Save model
[28]:
with open('data/pickled_model', 'wb') as of:
pickle.dump(model, of)
[ ]: