@staticmethod
def standardCBBFluxByPartition(alpha, beta, scale=1.0, TK3=False):
    """
        calculated CBB flux distribution
        :param beta: fraction of carbon exported as starch
        :param alpha: fraction of trioses (1-beta) exported through TPTGAP
        :param scale: optional, scales all fluxes by this factor
        :param TK3: optional, if set adds a third TK reaction (E4P+S7P=R5P+F6P). Value is 0..1 proportion of vTK1. TK fluxes are adjusted as (vTK1, vTK2, 0) -> ((1-TK3)*vTK1, vTK2+TK3*vTK1, TK3*vTK1)
        :return: dict with fluxes. Keys are standard 13 reactions (7 reversible, among these two standard TKs; 6 irreversible). Normalized so that v_RuBisCO=scale (defaults to 1)
        """
    v = {}
    v['TPI'] = 6.0 - 2.0 * alpha + (2.0 * alpha - 1.0) * beta
    v['RPE'] = 4.0
    v['RPI'] = 2.0
    v['TK1'] = 2.0
    v['TK2'] = 2.0
    v['Ald1'] = 2.0 + beta
    v['Ald2'] = 2.0
    v['RuBisCO'] = 6.0
    v['TPTGAP'] = (2.0 - 2.0 * beta) * alpha
    v['TPTDHAP'] = (2.0 - 2.0 * beta) * (1.0 - alpha)
    v['vstarch'] = beta
    v['FBP'] = 2.0 + beta
    v['SBP'] = 2.0
    if TK3 is not False:
        v['TK3'] = TK3 * v['TK1']
        v['TK2'] = v['TK2'] + TK3 * v['TK1']
        v['TK1'] = (1 - TK3) * v['TK1']
    for r in v.keys():
        v[r] = v[r] / 6.0 * scale
    return v
