Source code for fluxpyt.free_flux_null

# -*- coding: utf-8 -*-
"""
Created on Mon Jun 19 10:39:54 2017

@author: Trunil
"""

import sympy as sp
from fluxpyt.utility import space

[docs]def get_null_mat(stoich_matrix,model_metabolite): space() #print(stoich_matrix) space() S = sp.Matrix(stoich_matrix) #calculate null space and rreduced row echelon form S_null = S.nullspace() ref = S.rref() #calculate free indices dep_inds = ref[1] V = model_metabolite[0] free_ind = [x for x in range(len(V)) if x not in dep_inds] free_ind = sp.Matrix(free_ind) space() #calculate null matrix null_mat = sp.zeros(S_null[0].shape[0],1) for k in S_null: null_mat = null_mat.row_join(k) null_mat.col_del(0) return null_mat,free_ind
# #def nullspace(A, atol=1e-13, rtol=0): # #http://scipy-cookbook.readthedocs.io/items/RankNullspace.html # import numpy as np # from scipy.linalg import svd # A = np.atleast_2d(A) # u, s, vh = svd(A) # tol = max(atol, rtol * s[0]) # nnz = (s >= tol).sum() # ns = vh[nnz:].conj().T # return ns # # ##